From d15f7705ca0c820dea0d491faf2808c0b7cb459e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=A2=E7=82=9C?= Date: Thu, 2 Jun 2022 16:27:49 +0800 Subject: [PATCH] Import Upstream version 3.1.0.2022+0310 --- AUTHORS | 19 + COPYING | 339 + ChangeLog | 2 + Makefile.am | 48 + NEWS | 2 + README | 11 + audio/audio.cpp | 97 + audio/audio.h | 73 + audio/audio.pro | 86 + audio/audio.ui | 49 + audio/customstyle.cpp | 371 + audio/customstyle.h | 158 + audio/switchbutton.cpp | 325 + audio/switchbutton.h | 119 + audio/titlelabel.cpp | 46 + audio/titlelabel.h | 34 + audio/translate_generation.sh | 15 + audio/translations/bo.ts | 406 + audio/translations/tr.ts | 406 + audio/translations/zh_CN.ts | 406 + audio/ukmedia_input_widget.cpp | 155 + audio/ukmedia_input_widget.h | 67 + audio/ukmedia_main_widget.cpp | 3059 ++++++++ audio/ukmedia_main_widget.h | 299 + audio/ukmedia_output_widget.cpp | 190 + audio/ukmedia_output_widget.h | 136 + audio/ukmedia_slider_tip_label_helper.cpp | 168 + audio/ukmedia_slider_tip_label_helper.h | 65 + audio/ukmedia_sound_effects_widget.cpp | 282 + audio/ukmedia_sound_effects_widget.h | 95 + audio/ukmedia_volume_control.cpp | 2145 ++++++ audio/ukmedia_volume_control.h | 243 + audio/ukui_custom_style.cpp | 449 ++ audio/ukui_custom_style.h | 118 + audio/ukui_list_widget_item.cpp | 115 + audio/ukui_list_widget_item.h | 82 + build-aux/git-version-gen | 154 + data/Makefile.am | 40 + data/icons/16x16/Makefile.am | 4 + data/icons/16x16/status/Makefile.am | 21 + .../status/audio-input-microphone-high.png | Bin 0 -> 853 bytes .../status/audio-input-microphone-low.png | Bin 0 -> 548 bytes .../status/audio-input-microphone-medium.png | Bin 0 -> 687 bytes .../status/audio-input-microphone-muted.png | Bin 0 -> 520 bytes data/icons/22x22/Makefile.am | 4 + data/icons/22x22/status/Makefile.am | 21 + .../status/audio-input-microphone-high.png | Bin 0 -> 1188 bytes .../status/audio-input-microphone-low.png | Bin 0 -> 827 bytes .../status/audio-input-microphone-medium.png | Bin 0 -> 968 bytes .../status/audio-input-microphone-muted.png | Bin 0 -> 817 bytes data/icons/24x24/Makefile.am | 4 + data/icons/24x24/status/Makefile.am | 21 + .../status/audio-input-microphone-high.png | Bin 0 -> 1214 bytes .../status/audio-input-microphone-low.png | Bin 0 -> 849 bytes .../status/audio-input-microphone-medium.png | Bin 0 -> 1001 bytes .../status/audio-input-microphone-muted.png | Bin 0 -> 851 bytes data/icons/32x32/Makefile.am | 4 + data/icons/32x32/status/Makefile.am | 21 + .../status/audio-input-microphone-high.png | Bin 0 -> 2182 bytes .../status/audio-input-microphone-low.png | Bin 0 -> 1818 bytes .../status/audio-input-microphone-medium.png | Bin 0 -> 1981 bytes .../status/audio-input-microphone-muted.png | Bin 0 -> 2005 bytes data/icons/Makefile.am | 24 + data/icons/scalable/Makefile.am | 4 + data/icons/scalable/devices/Makefile.am | 35 + .../audio-speaker-center-back-testing.svg | 539 ++ .../devices/audio-speaker-center-back.svg | 506 ++ .../devices/audio-speaker-center-testing.svg | 537 ++ .../scalable/devices/audio-speaker-center.svg | 504 ++ .../audio-speaker-left-back-testing.svg | 537 ++ .../devices/audio-speaker-left-back.svg | 504 ++ .../audio-speaker-left-side-testing.svg | 537 ++ .../devices/audio-speaker-left-side.svg | 504 ++ .../devices/audio-speaker-left-testing.svg | 537 ++ .../scalable/devices/audio-speaker-left.svg | 504 ++ .../audio-speaker-right-back-testing.svg | 537 ++ .../devices/audio-speaker-right-back.svg | 504 ++ .../audio-speaker-right-side-testing.svg | 537 ++ .../devices/audio-speaker-right-side.svg | 504 ++ .../devices/audio-speaker-right-testing.svg | 913 +++ .../scalable/devices/audio-speaker-right.svg | 504 ++ .../devices/audio-subwoofer-testing.svg | 240 + .../scalable/devices/audio-subwoofer.svg | 325 + data/icons/scalable/status/Makefile.am | 21 + .../status/audio-input-microphone-high.svg | 1076 +++ .../status/audio-input-microphone-low.svg | 1045 +++ .../status/audio-input-microphone-medium.svg | 1066 +++ .../status/audio-input-microphone-muted.svg | 1040 +++ data/images/application-audio.png | Bin 0 -> 392 bytes data/images/audio-input-microphone-high.png | Bin 0 -> 853 bytes data/images/audio-input-microphone-low.png | Bin 0 -> 548 bytes data/images/audio-input-microphone-medium.png | Bin 0 -> 687 bytes data/images/audio-input-microphone-muted.png | Bin 0 -> 520 bytes data/images/audio-volume-high.png | Bin 0 -> 255 bytes data/images/audio-volume-low.png | Bin 0 -> 307 bytes data/images/audio-volume-medium.png | Bin 0 -> 276 bytes data/images/audio-volume-muted.png | Bin 0 -> 243 bytes data/images/blank.png | Bin 0 -> 115 bytes data/images/emblem-unreadable.png | Bin 0 -> 137 bytes data/images/images.qrc | 15 + data/org.ukui.media.gschema.xml.in | 13 + data/org.ukui.media.sound.gschema.xml | 14 + data/org.ukui.sound.gschema.xml | 34 + data/ukui-media-control-mute-led.service | 11 + data/ukui-volume-control-applet.desktop | 17 + data/ukui-volume-control.desktop.in.in | 16 + man/Makefile.am | 3 + man/ukui-media-control-led.1 | 35 + man/ukui-volume-control-applet-qt.1 | 35 + po/ChangeLog | 6821 +++++++++++++++++ po/LINGUAS | 104 + po/POTFILES.in | 6 + po/POTFILES.skip | 9 + po/af.po | 437 ++ po/am.po | 438 ++ po/ar.po | 456 ++ po/as.po | 438 ++ po/ast.po | 437 ++ po/az.po | 438 ++ po/be.po | 447 ++ po/bg.po | 445 ++ po/bn.po | 437 ++ po/bn_IN.po | 441 ++ po/br.po | 438 ++ po/bs.po | 441 ++ po/ca.po | 444 ++ po/ca@valencia.po | 445 ++ po/cmn.po | 437 ++ po/cs.po | 451 ++ po/cy.po | 448 ++ po/da.po | 439 ++ po/de.po | 444 ++ po/dz.po | 434 ++ po/el.po | 447 ++ po/en_AU.po | 437 ++ po/en_CA.po | 438 ++ po/en_GB.po | 441 ++ po/es.po | 446 ++ po/es_AR.po | 433 ++ po/es_CO.po | 434 ++ po/es_MX.po | 433 ++ po/es_PR.po | 434 ++ po/et.po | 441 ++ po/eu.po | 440 ++ po/fa.po | 439 ++ po/fi.po | 439 ++ po/fr.po | 445 ++ po/fr_CA.po | 437 ++ po/frp.po | 437 ++ po/ga.po | 446 ++ po/gl.po | 446 ++ po/gnome-copyrights.txt | 1166 +++ po/gu.po | 439 ++ po/he.po | 438 ++ po/hi.po | 440 ++ po/hr.po | 443 ++ po/hu.po | 448 ++ po/hy.po | 437 ++ po/id.po | 436 ++ po/is.po | 433 ++ po/it.po | 443 ++ po/ja.po | 444 ++ po/jv.po | 437 ++ po/ka.po | 435 ++ po/kk.po | 435 ++ po/kn.po | 435 ++ po/ko.po | 440 ++ po/ku.po | 438 ++ po/ku_IQ.po | 435 ++ po/ky.po | 436 ++ po/lt.po | 447 ++ po/lv.po | 443 ++ po/mai.po | 438 ++ po/mg.po | 436 ++ po/mk.po | 442 ++ po/ml.po | 439 ++ po/mn.po | 440 ++ po/mr.po | 440 ++ po/ms.po | 436 ++ po/nb.po | 439 ++ po/nds.po | 437 ++ po/ne.po | 445 ++ po/nl.po | 447 ++ po/nn.po | 440 ++ po/oc.po | 437 ++ po/or.po | 439 ++ po/pa.po | 439 ++ po/pl.po | 446 ++ po/pms.po | 434 ++ po/pt.po | 440 ++ po/pt_BR.po | 451 ++ po/ro.po | 445 ++ po/ru.po | 451 ++ po/rw.po | 440 ++ po/sc.po | 434 ++ po/si.po | 437 ++ po/sk.po | 447 ++ po/sl.po | 448 ++ po/sq.po | 439 ++ po/sr.po | 443 ++ po/sr@latin.po | 441 ++ po/sv.po | 444 ++ po/ta.po | 442 ++ po/te.po | 437 ++ po/th.po | 438 ++ po/tk.po | 437 ++ po/tr.po | 444 ++ po/ug.po | 434 ++ po/uk.po | 447 ++ po/ur.po | 436 ++ po/uz.po | 436 ++ po/vi.po | 437 ++ po/wa.po | 439 ++ po/xh.po | 437 ++ po/zh_CN.po | 446 ++ po/zh_HK.po | 437 ++ po/zh_TW.po | 439 ++ scripts/detection_output_mode.sh | 27 + ukui-media-control-led/main.cpp | 12 + .../ukui-media-control-led.pro | 34 + .../ukui_media_control_led.cpp | 48 + .../ukui_media_control_led.h | 23 + ukui-media.pro | 10 + .../QtSingleApplication/QtLockedFile | 1 + .../QtSingleApplication/QtSingleApplication | 1 + .../QtSingleApplication/qtlocalpeer.cpp | 213 + .../QtSingleApplication/qtlocalpeer.h | 77 + .../QtSingleApplication/qtlockedfile.cpp | 193 + .../QtSingleApplication/qtlockedfile.h | 97 + .../QtSingleApplication/qtlockedfile_unix.cpp | 115 + .../QtSingleApplication/qtlockedfile_win.cpp | 211 + .../qtsingleapplication.cpp | 348 + .../QtSingleApplication/qtsingleapplication.h | 105 + .../qtsingleapplication.pri | 16 + .../qtsinglecoreapplication.cpp | 149 + .../qtsinglecoreapplication.h | 71 + .../qtsinglecoreapplication.pri | 10 + ukui-volume-control-applet-qt/config.h | 47 + ukui-volume-control-applet-qt/customstyle.cpp | 257 + ukui-volume-control-applet-qt/customstyle.h | 158 + .../data/img/application.svg | 16 + .../data/img/audio-headphones.svg | 10 + .../data/img/audio-input-microphone.svg | 1 + .../data/img/audio-volume-high-s.svg | 14 + .../data/img/audio-volume-high.svg | 16 + .../data/img/audio-volume-low-s.svg | 15 + .../data/img/audio-volume-low.svg | 16 + .../data/img/audio-volume-medium-s.svg | 16 + .../data/img/audio-volume-medium.svg | 16 + .../data/img/audio-volume-muted-s.svg | 17 + .../data/img/audio-volume-muted.svg | 17 + .../data/img/audiocard.svg | 1 + .../data/img/complete-module-s.svg | 15 + .../data/img/complete-module.svg | 15 + .../data/img/device.svg | 13 + .../data/img/microphone-high.svg | 15 + .../data/img/microphone-low.svg | 16 + .../data/img/microphone-medium.svg | 16 + .../data/img/microphone-mute.svg | 18 + .../data/img/mini-module-s.svg | 15 + .../data/img/mini-module.svg | 15 + .../data/img/setting.svg | 14 + .../data/img/tick.png | Bin 0 -> 161 bytes .../data/img/tick.svg | 9 + .../data/org.ukui.audio.gschema.xml | 74 + .../data/org.ukui.sound.gschema.xml | 39 + .../data/qss/ukuimedia.qss | 0 .../data/sounds/bark.ogg | Bin 0 -> 13322 bytes .../data/sounds/clang.ogg | Bin 0 -> 15569 bytes .../data/sounds/clank.ogg | Bin 0 -> 21913 bytes .../data/sounds/creak.ogg | Bin 0 -> 15844 bytes .../data/sounds/ding.ogg | Bin 0 -> 16407 bytes .../data/sounds/drip.ogg | Bin 0 -> 8495 bytes .../data/sounds/fizz.ogg | Bin 0 -> 13239 bytes .../data/sounds/flop.ogg | Bin 0 -> 14060 bytes .../data/sounds/glass.ogg | Bin 0 -> 18999 bytes .../data/sounds/gudou.ogg | Bin 0 -> 14156 bytes .../data/sounds/gurgle.ogg | Bin 0 -> 19935 bytes .../data/sounds/index.theme | 6 + .../data/sounds/jingle.ogg | Bin 0 -> 17361 bytes .../data/sounds/kaca.ogg | Bin 0 -> 13641 bytes .../data/sounds/plump.ogg | Bin 0 -> 16696 bytes .../data/sounds/quack.ogg | Bin 0 -> 12768 bytes .../data/sounds/rat-rat.ogg | Bin 0 -> 15075 bytes .../data/sounds/sonar.ogg | Bin 0 -> 20011 bytes .../data/sounds/splash.ogg | Bin 0 -> 15035 bytes .../data/sounds/thud.ogg | Bin 0 -> 18178 bytes .../data/sounds/ttlou.ogg | Bin 0 -> 17196 bytes .../data/sounds/ukui-sound.xml | 110 + ukui-volume-control-applet-qt/main.cpp | 95 + ukui-volume-control-applet-qt/res.qrc | 8 + .../translations/bo.qm | 1 + .../translations/bo.ts | 369 + .../translations/tr.qm | Bin 0 -> 1627 bytes .../translations/tr.ts | 107 + .../translations/zh_CN.ts | 462 ++ .../ukmedia_application_volume_widget.cpp | 169 + .../ukmedia_application_volume_widget.h | 68 + .../ukmedia_custom_class.cpp | 883 +++ .../ukmedia_custom_class.h | 314 + .../ukmedia_custom_sound.cpp | 211 + .../ukmedia_custom_sound.h | 44 + .../ukmedia_main_widget.cpp | 3165 ++++++++ .../ukmedia_main_widget.h | 358 + .../ukmedia_monitor_window_thread.cpp | 118 + .../ukmedia_monitor_window_thread.h | 50 + .../ukmedia_osd_display_widget.cpp | 167 + .../ukmedia_osd_display_widget.h | 50 + .../ukmedia_slider_tip_label_helper.cpp | 167 + .../ukmedia_slider_tip_label_helper.h | 64 + .../ukmedia_system_volume_widget.cpp | 138 + .../ukmedia_system_volume_widget.h | 51 + .../ukmedia_volume_control.cpp | 2111 +++++ .../ukmedia_volume_control.h | 264 + .../ukmedia_volume_slider.cpp | 423 + .../ukmedia_volume_slider.h | 186 + .../ukui-volume-control-applet-qt.pro | 98 + .../ukui_list_widget_item.cpp | 145 + .../ukui_list_widget_item.h | 64 + .../ukui_media_set_headset_widget.cpp | 490 ++ .../ukui_media_set_headset_widget.h | 86 + .../xatom/xatom-helper.cpp | 210 + .../xatom/xatom-helper.h | 110 + ukui-volume-control-applet-qt/xatom/xatom.pri | 7 + 324 files changed, 92228 insertions(+) create mode 100644 AUTHORS create mode 100644 COPYING create mode 100644 ChangeLog create mode 100644 Makefile.am create mode 100644 NEWS create mode 100644 README create mode 100644 audio/audio.cpp create mode 100644 audio/audio.h create mode 100644 audio/audio.pro create mode 100644 audio/audio.ui create mode 100644 audio/customstyle.cpp create mode 100644 audio/customstyle.h create mode 100644 audio/switchbutton.cpp create mode 100644 audio/switchbutton.h create mode 100644 audio/titlelabel.cpp create mode 100644 audio/titlelabel.h create mode 100755 audio/translate_generation.sh create mode 100644 audio/translations/bo.ts create mode 100644 audio/translations/tr.ts create mode 100644 audio/translations/zh_CN.ts create mode 100644 audio/ukmedia_input_widget.cpp create mode 100644 audio/ukmedia_input_widget.h create mode 100644 audio/ukmedia_main_widget.cpp create mode 100644 audio/ukmedia_main_widget.h create mode 100644 audio/ukmedia_output_widget.cpp create mode 100644 audio/ukmedia_output_widget.h create mode 100644 audio/ukmedia_slider_tip_label_helper.cpp create mode 100644 audio/ukmedia_slider_tip_label_helper.h create mode 100644 audio/ukmedia_sound_effects_widget.cpp create mode 100644 audio/ukmedia_sound_effects_widget.h create mode 100644 audio/ukmedia_volume_control.cpp create mode 100644 audio/ukmedia_volume_control.h create mode 100644 audio/ukui_custom_style.cpp create mode 100644 audio/ukui_custom_style.h create mode 100644 audio/ukui_list_widget_item.cpp create mode 100644 audio/ukui_list_widget_item.h create mode 100755 build-aux/git-version-gen create mode 100644 data/Makefile.am create mode 100644 data/icons/16x16/Makefile.am create mode 100644 data/icons/16x16/status/Makefile.am create mode 100644 data/icons/16x16/status/audio-input-microphone-high.png create mode 100644 data/icons/16x16/status/audio-input-microphone-low.png create mode 100644 data/icons/16x16/status/audio-input-microphone-medium.png create mode 100644 data/icons/16x16/status/audio-input-microphone-muted.png create mode 100644 data/icons/22x22/Makefile.am create mode 100644 data/icons/22x22/status/Makefile.am create mode 100644 data/icons/22x22/status/audio-input-microphone-high.png create mode 100644 data/icons/22x22/status/audio-input-microphone-low.png create mode 100644 data/icons/22x22/status/audio-input-microphone-medium.png create mode 100644 data/icons/22x22/status/audio-input-microphone-muted.png create mode 100644 data/icons/24x24/Makefile.am create mode 100644 data/icons/24x24/status/Makefile.am create mode 100644 data/icons/24x24/status/audio-input-microphone-high.png create mode 100644 data/icons/24x24/status/audio-input-microphone-low.png create mode 100644 data/icons/24x24/status/audio-input-microphone-medium.png create mode 100644 data/icons/24x24/status/audio-input-microphone-muted.png create mode 100644 data/icons/32x32/Makefile.am create mode 100644 data/icons/32x32/status/Makefile.am create mode 100644 data/icons/32x32/status/audio-input-microphone-high.png create mode 100644 data/icons/32x32/status/audio-input-microphone-low.png create mode 100644 data/icons/32x32/status/audio-input-microphone-medium.png create mode 100644 data/icons/32x32/status/audio-input-microphone-muted.png create mode 100644 data/icons/Makefile.am create mode 100644 data/icons/scalable/Makefile.am create mode 100644 data/icons/scalable/devices/Makefile.am create mode 100644 data/icons/scalable/devices/audio-speaker-center-back-testing.svg create mode 100644 data/icons/scalable/devices/audio-speaker-center-back.svg create mode 100644 data/icons/scalable/devices/audio-speaker-center-testing.svg create mode 100644 data/icons/scalable/devices/audio-speaker-center.svg create mode 100644 data/icons/scalable/devices/audio-speaker-left-back-testing.svg create mode 100644 data/icons/scalable/devices/audio-speaker-left-back.svg create mode 100644 data/icons/scalable/devices/audio-speaker-left-side-testing.svg create mode 100644 data/icons/scalable/devices/audio-speaker-left-side.svg create mode 100644 data/icons/scalable/devices/audio-speaker-left-testing.svg create mode 100644 data/icons/scalable/devices/audio-speaker-left.svg create mode 100644 data/icons/scalable/devices/audio-speaker-right-back-testing.svg create mode 100644 data/icons/scalable/devices/audio-speaker-right-back.svg create mode 100644 data/icons/scalable/devices/audio-speaker-right-side-testing.svg create mode 100644 data/icons/scalable/devices/audio-speaker-right-side.svg create mode 100644 data/icons/scalable/devices/audio-speaker-right-testing.svg create mode 100644 data/icons/scalable/devices/audio-speaker-right.svg create mode 100644 data/icons/scalable/devices/audio-subwoofer-testing.svg create mode 100644 data/icons/scalable/devices/audio-subwoofer.svg create mode 100644 data/icons/scalable/status/Makefile.am create mode 100644 data/icons/scalable/status/audio-input-microphone-high.svg create mode 100644 data/icons/scalable/status/audio-input-microphone-low.svg create mode 100644 data/icons/scalable/status/audio-input-microphone-medium.svg create mode 100644 data/icons/scalable/status/audio-input-microphone-muted.svg create mode 100644 data/images/application-audio.png create mode 100644 data/images/audio-input-microphone-high.png create mode 100644 data/images/audio-input-microphone-low.png create mode 100644 data/images/audio-input-microphone-medium.png create mode 100644 data/images/audio-input-microphone-muted.png create mode 100644 data/images/audio-volume-high.png create mode 100644 data/images/audio-volume-low.png create mode 100644 data/images/audio-volume-medium.png create mode 100644 data/images/audio-volume-muted.png create mode 100644 data/images/blank.png create mode 100644 data/images/emblem-unreadable.png create mode 100644 data/images/images.qrc create mode 100644 data/org.ukui.media.gschema.xml.in create mode 100644 data/org.ukui.media.sound.gschema.xml create mode 100644 data/org.ukui.sound.gschema.xml create mode 100644 data/ukui-media-control-mute-led.service create mode 100644 data/ukui-volume-control-applet.desktop create mode 100644 data/ukui-volume-control.desktop.in.in create mode 100644 man/Makefile.am create mode 100644 man/ukui-media-control-led.1 create mode 100644 man/ukui-volume-control-applet-qt.1 create mode 100644 po/ChangeLog create mode 100644 po/LINGUAS create mode 100644 po/POTFILES.in create mode 100644 po/POTFILES.skip create mode 100644 po/af.po create mode 100644 po/am.po create mode 100644 po/ar.po create mode 100644 po/as.po create mode 100644 po/ast.po create mode 100644 po/az.po create mode 100644 po/be.po create mode 100644 po/bg.po create mode 100644 po/bn.po create mode 100644 po/bn_IN.po create mode 100644 po/br.po create mode 100644 po/bs.po create mode 100644 po/ca.po create mode 100644 po/ca@valencia.po create mode 100644 po/cmn.po create mode 100644 po/cs.po create mode 100644 po/cy.po create mode 100644 po/da.po create mode 100644 po/de.po create mode 100644 po/dz.po create mode 100644 po/el.po create mode 100644 po/en_AU.po create mode 100644 po/en_CA.po create mode 100644 po/en_GB.po create mode 100644 po/es.po create mode 100644 po/es_AR.po create mode 100644 po/es_CO.po create mode 100644 po/es_MX.po create mode 100644 po/es_PR.po create mode 100644 po/et.po create mode 100644 po/eu.po create mode 100644 po/fa.po create mode 100644 po/fi.po create mode 100644 po/fr.po create mode 100644 po/fr_CA.po create mode 100644 po/frp.po create mode 100644 po/ga.po create mode 100644 po/gl.po create mode 100644 po/gnome-copyrights.txt create mode 100644 po/gu.po create mode 100644 po/he.po create mode 100644 po/hi.po create mode 100644 po/hr.po create mode 100644 po/hu.po create mode 100644 po/hy.po create mode 100644 po/id.po create mode 100644 po/is.po create mode 100644 po/it.po create mode 100644 po/ja.po create mode 100644 po/jv.po create mode 100644 po/ka.po create mode 100644 po/kk.po create mode 100644 po/kn.po create mode 100644 po/ko.po create mode 100644 po/ku.po create mode 100644 po/ku_IQ.po create mode 100644 po/ky.po create mode 100644 po/lt.po create mode 100644 po/lv.po create mode 100644 po/mai.po create mode 100644 po/mg.po create mode 100644 po/mk.po create mode 100644 po/ml.po create mode 100644 po/mn.po create mode 100644 po/mr.po create mode 100644 po/ms.po create mode 100644 po/nb.po create mode 100644 po/nds.po create mode 100644 po/ne.po create mode 100644 po/nl.po create mode 100644 po/nn.po create mode 100644 po/oc.po create mode 100644 po/or.po create mode 100644 po/pa.po create mode 100644 po/pl.po create mode 100644 po/pms.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/rw.po create mode 100644 po/sc.po create mode 100644 po/si.po create mode 100644 po/sk.po create mode 100644 po/sl.po create mode 100644 po/sq.po create mode 100644 po/sr.po create mode 100644 po/sr@latin.po create mode 100644 po/sv.po create mode 100644 po/ta.po create mode 100644 po/te.po create mode 100644 po/th.po create mode 100644 po/tk.po create mode 100644 po/tr.po create mode 100644 po/ug.po create mode 100644 po/uk.po create mode 100644 po/ur.po create mode 100644 po/uz.po create mode 100644 po/vi.po create mode 100644 po/wa.po create mode 100644 po/xh.po create mode 100644 po/zh_CN.po create mode 100644 po/zh_HK.po create mode 100644 po/zh_TW.po create mode 100755 scripts/detection_output_mode.sh create mode 100644 ukui-media-control-led/main.cpp create mode 100644 ukui-media-control-led/ukui-media-control-led.pro create mode 100644 ukui-media-control-led/ukui_media_control_led.cpp create mode 100644 ukui-media-control-led/ukui_media_control_led.h create mode 100644 ukui-media.pro create mode 100644 ukui-volume-control-applet-qt/QtSingleApplication/QtLockedFile create mode 100644 ukui-volume-control-applet-qt/QtSingleApplication/QtSingleApplication create mode 100644 ukui-volume-control-applet-qt/QtSingleApplication/qtlocalpeer.cpp create mode 100644 ukui-volume-control-applet-qt/QtSingleApplication/qtlocalpeer.h create mode 100644 ukui-volume-control-applet-qt/QtSingleApplication/qtlockedfile.cpp create mode 100644 ukui-volume-control-applet-qt/QtSingleApplication/qtlockedfile.h create mode 100644 ukui-volume-control-applet-qt/QtSingleApplication/qtlockedfile_unix.cpp create mode 100644 ukui-volume-control-applet-qt/QtSingleApplication/qtlockedfile_win.cpp create mode 100644 ukui-volume-control-applet-qt/QtSingleApplication/qtsingleapplication.cpp create mode 100644 ukui-volume-control-applet-qt/QtSingleApplication/qtsingleapplication.h create mode 100644 ukui-volume-control-applet-qt/QtSingleApplication/qtsingleapplication.pri create mode 100644 ukui-volume-control-applet-qt/QtSingleApplication/qtsinglecoreapplication.cpp create mode 100644 ukui-volume-control-applet-qt/QtSingleApplication/qtsinglecoreapplication.h create mode 100644 ukui-volume-control-applet-qt/QtSingleApplication/qtsinglecoreapplication.pri create mode 100644 ukui-volume-control-applet-qt/config.h create mode 100644 ukui-volume-control-applet-qt/customstyle.cpp create mode 100644 ukui-volume-control-applet-qt/customstyle.h create mode 100644 ukui-volume-control-applet-qt/data/img/application.svg create mode 100644 ukui-volume-control-applet-qt/data/img/audio-headphones.svg create mode 100644 ukui-volume-control-applet-qt/data/img/audio-input-microphone.svg create mode 100644 ukui-volume-control-applet-qt/data/img/audio-volume-high-s.svg create mode 100644 ukui-volume-control-applet-qt/data/img/audio-volume-high.svg create mode 100644 ukui-volume-control-applet-qt/data/img/audio-volume-low-s.svg create mode 100644 ukui-volume-control-applet-qt/data/img/audio-volume-low.svg create mode 100644 ukui-volume-control-applet-qt/data/img/audio-volume-medium-s.svg create mode 100644 ukui-volume-control-applet-qt/data/img/audio-volume-medium.svg create mode 100644 ukui-volume-control-applet-qt/data/img/audio-volume-muted-s.svg create mode 100644 ukui-volume-control-applet-qt/data/img/audio-volume-muted.svg create mode 100644 ukui-volume-control-applet-qt/data/img/audiocard.svg create mode 100644 ukui-volume-control-applet-qt/data/img/complete-module-s.svg create mode 100644 ukui-volume-control-applet-qt/data/img/complete-module.svg create mode 100644 ukui-volume-control-applet-qt/data/img/device.svg create mode 100644 ukui-volume-control-applet-qt/data/img/microphone-high.svg create mode 100644 ukui-volume-control-applet-qt/data/img/microphone-low.svg create mode 100644 ukui-volume-control-applet-qt/data/img/microphone-medium.svg create mode 100644 ukui-volume-control-applet-qt/data/img/microphone-mute.svg create mode 100644 ukui-volume-control-applet-qt/data/img/mini-module-s.svg create mode 100644 ukui-volume-control-applet-qt/data/img/mini-module.svg create mode 100644 ukui-volume-control-applet-qt/data/img/setting.svg create mode 100644 ukui-volume-control-applet-qt/data/img/tick.png create mode 100644 ukui-volume-control-applet-qt/data/img/tick.svg create mode 100644 ukui-volume-control-applet-qt/data/org.ukui.audio.gschema.xml create mode 100644 ukui-volume-control-applet-qt/data/org.ukui.sound.gschema.xml create mode 100644 ukui-volume-control-applet-qt/data/qss/ukuimedia.qss create mode 100644 ukui-volume-control-applet-qt/data/sounds/bark.ogg create mode 100644 ukui-volume-control-applet-qt/data/sounds/clang.ogg create mode 100644 ukui-volume-control-applet-qt/data/sounds/clank.ogg create mode 100644 ukui-volume-control-applet-qt/data/sounds/creak.ogg create mode 100644 ukui-volume-control-applet-qt/data/sounds/ding.ogg create mode 100644 ukui-volume-control-applet-qt/data/sounds/drip.ogg create mode 100644 ukui-volume-control-applet-qt/data/sounds/fizz.ogg create mode 100644 ukui-volume-control-applet-qt/data/sounds/flop.ogg create mode 100644 ukui-volume-control-applet-qt/data/sounds/glass.ogg create mode 100644 ukui-volume-control-applet-qt/data/sounds/gudou.ogg create mode 100644 ukui-volume-control-applet-qt/data/sounds/gurgle.ogg create mode 100644 ukui-volume-control-applet-qt/data/sounds/index.theme create mode 100644 ukui-volume-control-applet-qt/data/sounds/jingle.ogg create mode 100644 ukui-volume-control-applet-qt/data/sounds/kaca.ogg create mode 100644 ukui-volume-control-applet-qt/data/sounds/plump.ogg create mode 100644 ukui-volume-control-applet-qt/data/sounds/quack.ogg create mode 100644 ukui-volume-control-applet-qt/data/sounds/rat-rat.ogg create mode 100644 ukui-volume-control-applet-qt/data/sounds/sonar.ogg create mode 100644 ukui-volume-control-applet-qt/data/sounds/splash.ogg create mode 100644 ukui-volume-control-applet-qt/data/sounds/thud.ogg create mode 100644 ukui-volume-control-applet-qt/data/sounds/ttlou.ogg create mode 100644 ukui-volume-control-applet-qt/data/sounds/ukui-sound.xml create mode 100644 ukui-volume-control-applet-qt/main.cpp create mode 100644 ukui-volume-control-applet-qt/res.qrc create mode 100644 ukui-volume-control-applet-qt/translations/bo.qm create mode 100644 ukui-volume-control-applet-qt/translations/bo.ts create mode 100644 ukui-volume-control-applet-qt/translations/tr.qm create mode 100644 ukui-volume-control-applet-qt/translations/tr.ts create mode 100644 ukui-volume-control-applet-qt/translations/zh_CN.ts create mode 100644 ukui-volume-control-applet-qt/ukmedia_application_volume_widget.cpp create mode 100644 ukui-volume-control-applet-qt/ukmedia_application_volume_widget.h create mode 100644 ukui-volume-control-applet-qt/ukmedia_custom_class.cpp create mode 100644 ukui-volume-control-applet-qt/ukmedia_custom_class.h create mode 100644 ukui-volume-control-applet-qt/ukmedia_custom_sound.cpp create mode 100644 ukui-volume-control-applet-qt/ukmedia_custom_sound.h create mode 100644 ukui-volume-control-applet-qt/ukmedia_main_widget.cpp create mode 100644 ukui-volume-control-applet-qt/ukmedia_main_widget.h create mode 100644 ukui-volume-control-applet-qt/ukmedia_monitor_window_thread.cpp create mode 100644 ukui-volume-control-applet-qt/ukmedia_monitor_window_thread.h create mode 100644 ukui-volume-control-applet-qt/ukmedia_osd_display_widget.cpp create mode 100644 ukui-volume-control-applet-qt/ukmedia_osd_display_widget.h create mode 100644 ukui-volume-control-applet-qt/ukmedia_slider_tip_label_helper.cpp create mode 100644 ukui-volume-control-applet-qt/ukmedia_slider_tip_label_helper.h create mode 100644 ukui-volume-control-applet-qt/ukmedia_system_volume_widget.cpp create mode 100644 ukui-volume-control-applet-qt/ukmedia_system_volume_widget.h create mode 100644 ukui-volume-control-applet-qt/ukmedia_volume_control.cpp create mode 100644 ukui-volume-control-applet-qt/ukmedia_volume_control.h create mode 100644 ukui-volume-control-applet-qt/ukmedia_volume_slider.cpp create mode 100644 ukui-volume-control-applet-qt/ukmedia_volume_slider.h create mode 100644 ukui-volume-control-applet-qt/ukui-volume-control-applet-qt.pro create mode 100644 ukui-volume-control-applet-qt/ukui_list_widget_item.cpp create mode 100644 ukui-volume-control-applet-qt/ukui_list_widget_item.h create mode 100644 ukui-volume-control-applet-qt/ukui_media_set_headset_widget.cpp create mode 100644 ukui-volume-control-applet-qt/ukui_media_set_headset_widget.h create mode 100644 ukui-volume-control-applet-qt/xatom/xatom-helper.cpp create mode 100644 ukui-volume-control-applet-qt/xatom/xatom-helper.h create mode 100644 ukui-volume-control-applet-qt/xatom/xatom.pri diff --git a/AUTHORS b/AUTHORS new file mode 100644 index 0000000..187a374 --- /dev/null +++ b/AUTHORS @@ -0,0 +1,19 @@ +UKUI: +Hao Lee + +MATE: +Perberos +Steve Zesch +Stefano Karapetsas +Michal Ratajsky + +GNOME Maintainers: +Marc-Andre Lureau +Bastien Nocera + +GNOME Authors: +Andreas Hyden (grecord) +Seth Nickell (gst-mixer) +Ronald Bultje (gst-mixer) +Thomas Vander Stichele (profiles) +William Jon McCann (mate-volume-control) diff --git a/COPYING b/COPYING new file mode 100644 index 0000000..d159169 --- /dev/null +++ b/COPYING @@ -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/ChangeLog b/ChangeLog new file mode 100644 index 0000000..019ffa6 --- /dev/null +++ b/ChangeLog @@ -0,0 +1,2 @@ +The ChangeLog is auto-generated when releasing. If you are seeing this, use +'git log' for a detailed list of changes. diff --git a/Makefile.am b/Makefile.am new file mode 100644 index 0000000..6953c46 --- /dev/null +++ b/Makefile.am @@ -0,0 +1,48 @@ +NULL = + +SUBDIRS = data po man + +DISTCHECK_CONFIGURE_FLAGS = \ + --enable-more-warnings \ + --enable-compile-warnings=maximum \ + --enable-deprecated + +DIST_SUBDIRS = \ + data \ + po \ + man \ + $(NULL) + +EXTRA_DIST = \ + .version \ + autogen.sh \ + configure \ + ChangeLog \ + COPYING \ + COPYING-DOCS \ + build-aux/git-version-gen \ + $(INTLTOOL_BUILT:=.in) \ + $(NULL) + +DISTCLEANFILES = \ + po/.intltool-merge-cache \ + $(NULL) + +ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS} + +# see build-aux/git-version-get for details +BUILT_SOURCES = $(top_srcdir)/.version +$(top_srcdir)/.version: + echo $(VERSION) > $@-t && mv $@-t $@ + +# Build ChangeLog from GIT history +ChangeLog: + $(AM_V_GEN) if test -d $(top_srcdir)/.git; then \ + GIT_DIR="$(top_srcdir)/.git" git log --stat > $@; \ + fi + +dist: ChangeLog + +.PHONY: ChangeLog + +-include $(top_srcdir)/git.mk diff --git a/NEWS b/NEWS new file mode 100644 index 0000000..7ef6657 --- /dev/null +++ b/NEWS @@ -0,0 +1,2 @@ +### ukui-media 1.1.0 + Fork mate-media diff --git a/README b/README new file mode 100644 index 0000000..957cd2b --- /dev/null +++ b/README @@ -0,0 +1,11 @@ +These are the media tools for UKUI: + +ukui-volume-control - UKUI volume control application and applet + +Refer to the following files for license information for each sub-component +of ukui-media: + +ukui-volume-control - COPYING +documentation - COPYING-DOCS + +UKUI-Media is a fork of MATE-Media. diff --git a/audio/audio.cpp b/audio/audio.cpp new file mode 100644 index 0000000..b531888 --- /dev/null +++ b/audio/audio.cpp @@ -0,0 +1,97 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- + * + * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * + * 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. + * + */ +#include "audio.h" +#include "ui_audio.h" + +#include +#include +#include +Audio::Audio() : mFirstLoad(true) +{ +#ifndef QT_NO_TRANSLATION + QString translatorFileName = QLatin1String("qt_"); + translatorFileName += QLocale::system().name(); + QTranslator *pTranslator = new QTranslator(); + if (pTranslator->load(translatorFileName, QLibraryInfo::location(QLibraryInfo::TranslationsPath))) + QApplication::installTranslator(pTranslator); +#endif + QTranslator *translator = new QTranslator(this); + translator->load("/usr/share/ukui-media/translations/audio/" + QLocale::system().name()); + QApplication::installTranslator(translator); + pluginName = tr("Audio"); + pluginType = SYSTEM; +} + +Audio::~Audio() +{ +} + +QString Audio::plugini18nName() +{ + return pluginName; +} + +int Audio::pluginTypes() +{ + return pluginType; +} + +QWidget *Audio::pluginUi() +{ + if (mFirstLoad) { + mFirstLoad = false; + widget = new UkmediaMainWidget; + } + return widget; +} + +bool Audio::isEnable() const +{ + return true; +} + +const QString Audio::name() const +{ + return QStringLiteral("Audio"); +} + +bool Audio::isShowOnHomePage() const +{ + return true; +} + +QIcon Audio::icon() const +{ + return QIcon(); +} + +QString Audio::translationPath() const +{ + return "/usr/share/ukui-media/translations/audio/%1.ts"; +} + +void Audio::initSearchText() +{ + //~ contents_path /UkccPlugin/UkccPlugin + tr("UkccPlugin"); + //~ contents_path /UkccPlugin/ukccplugin test + tr("ukccplugin test"); +} + diff --git a/audio/audio.h b/audio/audio.h new file mode 100644 index 0000000..5ebff19 --- /dev/null +++ b/audio/audio.h @@ -0,0 +1,73 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- + * + * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * + * 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. + * + */ +#ifndef AUDIO_H +#define AUDIO_H + +#include +#include +#include +#include +#include "ukmedia_main_widget.h" +#include +#include +#include + +#if defined(LIBUKCC_LIBRARY) +# define LIBUKCC_EXPORT Q_DECL_EXPORT +#else +# define LIBUKCC_EXPORT Q_DECL_IMPORT +#endif + +namespace Ui { +class Audio; +} + +class Audio : public QObject, CommonInterface +{ + Q_OBJECT + Q_PLUGIN_METADATA(IID "org.ukcc.CommonInterface") + Q_INTERFACES(CommonInterface) + +public: + + Audio(); + ~Audio(); + + QString plugini18nName() Q_DECL_OVERRIDE; + int pluginTypes() Q_DECL_OVERRIDE; + QWidget *pluginUi() Q_DECL_OVERRIDE; + bool isEnable() const Q_DECL_OVERRIDE; + const QString name() const Q_DECL_OVERRIDE; + bool isShowOnHomePage() const Q_DECL_OVERRIDE; + QIcon icon() const Q_DECL_OVERRIDE; + QString translationPath() const Q_DECL_OVERRIDE; + +private: + QString pluginName; + int pluginType; + QWidget *widget; + bool mFirstLoad; + +private: + void initSearchText(); // 搜索翻译 +}; + + +#endif // AUDIO_H diff --git a/audio/audio.pro b/audio/audio.pro new file mode 100644 index 0000000..c3bdee0 --- /dev/null +++ b/audio/audio.pro @@ -0,0 +1,86 @@ +#------------------------------------------------- +# +# Project created by QtCreator 2019-05-30T09:45:54 +# +#------------------------------------------------- + +#include(../../../env.pri) + +QT += widgets xml dbus + +TEMPLATE = lib +CONFIG += plugin + +#include($$PROJECT_COMPONENTSOURCE/switchbutton.pri) +#include($$PROJECT_COMPONENTSOURCE/label.pri) + +INCLUDEPATH += ../../.. \ + $$PROJECT_COMPONENTSOURCE \ + +TARGET = $$qtLibraryTarget(audio) +DESTDIR = ../ +target.path = $$[QT_INSTALL_LIBS]/ukui-control-center + +CONFIG += c++11 \ + no_keywords link_pkgconfig + +PKGCONFIG += gio-2.0 \ + libxml-2.0 \ + Qt5Multimedia \ + gsettings-qt \ + libcanberra \ + dconf \ + libpulse \ + libpulse-mainloop-glib +#DEFINES += QT_DEPRECATED_WARNINGS + +SOURCES += \ + audio.cpp \ + ukmedia_input_widget.cpp \ + ukmedia_main_widget.cpp \ + ukmedia_output_widget.cpp \ + ukmedia_sound_effects_widget.cpp \ + ukmedia_volume_control.cpp \ + ukui_custom_style.cpp \ + customstyle.cpp \ + ukmedia_slider_tip_label_helper.cpp \ + ukui_list_widget_item.cpp \ + titlelabel.cpp \ + switchbutton.cpp + +HEADERS += \ + audio.h \ + ukmedia_input_widget.h \ + ukmedia_main_widget.h \ + ukmedia_output_widget.h \ + ukmedia_sound_effects_widget.h \ + ukmedia_volume_control.h \ + ukui_custom_style.h \ + customstyle.h \ + ukmedia_slider_tip_label_helper.h \ + ukui_list_widget_item.h \ + titlelabel.h \ + switchbutton.h + +FORMS += \ + audio.ui + +TRANSLATIONS += \ + translations/zh_CN.ts \ + translations/tr.ts \ + translations/bo.ts + +isEmpty(PREFIX) { + PREFIX = /usr +} + +qm_files.path = $${PREFIX}/share/ukui-media/translations/audio/ +qm_files.files = translations/* + +CONFIG(release, debug|release) { + !system($$PWD/translate_generation.sh): error("Failed to generate translation") +} + + +INSTALLS += target \ + qm_files \ diff --git a/audio/audio.ui b/audio/audio.ui new file mode 100644 index 0000000..b2cbade --- /dev/null +++ b/audio/audio.ui @@ -0,0 +1,49 @@ + + + Audio + + + + 0 + 0 + 800 + 710 + + + + + 0 + 0 + + + + + 16777215 + 16777215 + + + + Audio + + + + 0 + + + 0 + + + 0 + + + 32 + + + 48 + + + + + + + diff --git a/audio/customstyle.cpp b/audio/customstyle.cpp new file mode 100644 index 0000000..cf2b78c --- /dev/null +++ b/audio/customstyle.cpp @@ -0,0 +1,371 @@ +#include "customstyle.h" + +#include +#include +#include +#include +CustomStyle::CustomStyle(const QString &proxyStyleName, QObject *parent) : QProxyStyle (proxyStyleName) +{ + Q_UNUSED(parent); + m_helpTip = new SliderTipLabelHelper(this); +} +CustomStyle::~CustomStyle() +{ +} + +void CustomStyle::drawComplexControl(QStyle::ComplexControl control, const QStyleOptionComplex *option, QPainter *painter, const QWidget *widget) const +{ + if(control == CC_ToolButton) + { + /// 我们需要获取ToolButton的详细信息,通过qstyleoption_cast可以得到 + /// 对应的option,通过拷贝构造函数得到一份备份用于绘制子控件 + /// 我们一般不用在意option是怎么得到的,大部分的Qt控件都能够提供了option的init方法 + + } + return QProxyStyle::drawComplexControl(control, option, painter, widget); +} + +void CustomStyle::drawControl(QStyle::ControlElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget) const +{ + + switch (element) { + case CE_ProgressBar: + { + if (const QStyleOptionProgressBar *pb = qstyleoption_cast(option)) { + QStyleOptionProgressBar subopt = *pb; + subopt.rect = subElementRect(SE_ProgressBarGroove, pb, widget); + proxy()->drawControl(CE_ProgressBarGroove, &subopt, painter, widget); + subopt.rect = subElementRect(SE_ProgressBarContents, pb, widget); + proxy()->drawControl(CE_ProgressBarContents, &subopt, painter, widget); + + //这是这个控件的当前进度的文字,你那边看情况是否需要绘制 + // if (pb->textVisible) { + // subopt.rect = subElementRect(SE_ProgressBarLabel, pb, widget); + // proxy()->drawControl(CE_ProgressBarLabel, &subopt, painter, widget); + // } + return; + } + break; + } + + case CE_ProgressBarGroove: + { + //这是这个控件的背景,你那边看情况是否绘制 + return; + if (const QStyleOptionProgressBar *pbg = qstyleoption_cast(option)) { + const bool enable = pbg->state &State_Enabled; + painter->save(); + painter->setRenderHint(QPainter::Antialiasing, true); + painter->setPen(Qt::NoPen); + painter->setBrush(pbg->palette.brush(enable ? QPalette::Active : QPalette::Disabled, QPalette::Window)); + painter->drawRect(pbg->rect); + painter->restore(); + return; + } + break; + } + + case CE_ProgressBarContents: + { + if (const QStyleOptionProgressBar *bar = qstyleoption_cast(option)) { + if (bar->progress == bar->maximum) + return; + + const bool enable = bar->state & QStyle::State_Enabled; + const bool vertical = bar->orientation == Qt::Vertical; + const bool inverted = bar->invertedAppearance; + qint64 minimum = qint64(bar->minimum); + qint64 maximum = qint64(bar->maximum); + qint64 progress = qint64(bar->progress); + qint64 totalSteps = qMax(Q_INT64_C(1), maximum - minimum); + qint64 progressSteps = progress - bar->minimum; + qint64 progressBarWidth = progressSteps * (vertical ? bar->rect.height() : bar->rect.width()) / totalSteps; + + int ProgressBarItem_Width = 4; + int ProgressBarItem_Distance = 16; + int distance = ProgressBarItem_Distance + ProgressBarItem_Width; + int num = progressBarWidth / distance; + int totalnum = (vertical ? bar->rect.height() : bar->rect.width()) / distance; + + bool reverse = (!vertical && (bar->direction == Qt::RightToLeft)) || vertical; + if (inverted) + reverse = !reverse; + + int ProgressBarItem_Hight = 16; + QRect drawRect(bar->rect); + if (vertical) { + drawRect.setWidth(ProgressBarItem_Hight); + } else { + drawRect.setHeight(ProgressBarItem_Hight); + } + drawRect.moveCenter(bar->rect.center()); + + QRect itemRect(drawRect); + painter->save(); + painter->setPen(Qt::NoPen); + painter->setRenderHints(QPainter::Antialiasing, true); + for (int var = 0; var < totalnum; ++var) { + if (var < num) { + if (enable) + painter->setBrush(bar->palette.brush(QPalette::Active, QPalette::Highlight)); + else + painter->setBrush(bar->palette.color(QPalette::Active, QPalette::Highlight).light(150)); + } else { + painter->setBrush(bar->palette.brush(enable ? QPalette::Active : QPalette::Disabled, QPalette::Button)); + } + + if (vertical) + itemRect.setRect(drawRect.left(), !reverse ? drawRect.top() + var * distance : drawRect.bottom() - ProgressBarItem_Width - var * distance, + drawRect.width(), ProgressBarItem_Width); + else + itemRect.setRect(reverse ? drawRect.right() - ProgressBarItem_Width - var * distance : drawRect.left() + var * distance, drawRect.top(), + ProgressBarItem_Width, drawRect.height()); + painter->drawRoundedRect(itemRect, ProgressBarItem_Width/2, ProgressBarItem_Width/2); + } + painter->restore();; + return; + } + break; + } + + default: + break; + } + + return QProxyStyle::drawControl(element, option, painter, widget); +} + +void CustomStyle::drawItemPixmap(QPainter *painter, const QRect &rectangle, int alignment, const QPixmap &pixmap) const +{ + return QProxyStyle::drawItemPixmap(painter, rectangle, alignment, pixmap); +} + +void CustomStyle::drawItemText(QPainter *painter, const QRect &rectangle, int alignment, const QPalette &palette, bool enabled, const QString &text, QPalette::ColorRole textRole) const +{ + return QProxyStyle::drawItemText(painter, rectangle, alignment, palette, enabled, text, textRole); +} + +//绘制简单的颜色圆角等 +void CustomStyle::drawPrimitive(QStyle::PrimitiveElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget) const +{ + switch (element) { + //绘制 ToolButton + case PE_PanelButtonTool:{ + painter->save(); + painter->setRenderHint(QPainter::Antialiasing,true); + painter->setPen(Qt::NoPen); + painter->setBrush(QColor(0xff,0xff,0xff,0x00)); + painter->drawRoundedRect(option->rect,4,4); + if (option->state & State_MouseOver) { + if (option->state & State_Sunken) { + painter->setRenderHint(QPainter::Antialiasing,true); + painter->setPen(Qt::NoPen); + painter->setBrush(QColor(0xff,0xff,0xff,0x14)); + painter->drawRoundedRect(option->rect,4,4); + qDebug() << " 点击按钮"; + } else { + painter->setRenderHint(QPainter::Antialiasing,true); + painter->setPen(Qt::NoPen); + painter->setBrush(QColor(0xff,0xff,0xff,0x1f)); + painter->drawRoundedRect(option->rect,4,4); + qDebug() << "悬停按钮"; + } + } + painter->restore(); + return; + } + case PE_PanelTipLabel:{ + painter->save(); + painter->setRenderHint(QPainter::Antialiasing,true); + painter->setPen(Qt::NoPen); + painter->setBrush(QColor(0xff,0xff,0x00,0xff)); + painter->drawRoundedRect(option->rect,4,4); + painter->restore(); + return; + }break; + case PE_PanelButtonCommand:{ + painter->save(); + painter->setRenderHint(QPainter::TextAntialiasing,true); + painter->setPen(Qt::NoPen); + painter->setBrush(QColor(0xff,0xff,0xff,0x00)); + if (option->state & State_MouseOver) { + if (option->state & State_Sunken) { + painter->setRenderHint(QPainter::Antialiasing,true); + painter->setPen(Qt::NoPen); + painter->setBrush(QColor(0x3d,0x6b,0xe5,0xff)); + painter->drawRoundedRect(option->rect,4,4); + } else { + painter->setRenderHint(QPainter::Antialiasing,true); + painter->setPen(Qt::NoPen); + painter->setBrush(QColor(0xff,0xff,0xff,0x1f)); + painter->drawRoundedRect(option->rect.adjusted(2,2,-2,-2),4,4); + } + } + painter->restore(); + return; + }break; + } + return QProxyStyle::drawPrimitive(element, option, painter, widget); +} + +QPixmap CustomStyle::generatedIconPixmap(QIcon::Mode iconMode, const QPixmap &pixmap, const QStyleOption *option) const +{ + return QProxyStyle::generatedIconPixmap(iconMode, pixmap, option); +} + +QStyle::SubControl CustomStyle::hitTestComplexControl(QStyle::ComplexControl control, const QStyleOptionComplex *option, const QPoint &position, const QWidget *widget) const +{ + return QProxyStyle::hitTestComplexControl(control, option, position, widget); +} + +QRect CustomStyle::itemPixmapRect(const QRect &rectangle, int alignment, const QPixmap &pixmap) const +{ + return QProxyStyle::itemPixmapRect(rectangle, alignment, pixmap); +} + +QRect CustomStyle::itemTextRect(const QFontMetrics &metrics, const QRect &rectangle, int alignment, bool enabled, const QString &text) const +{ + return QProxyStyle::itemTextRect(metrics, rectangle, alignment, enabled, text); +} + +// +int CustomStyle::pixelMetric(QStyle::PixelMetric metric, const QStyleOption *option, const QWidget *widget) const +{ + switch (metric){ + case PM_ProgressBarChunkWidth: + { + int ProgressBarItem_Width = 4; + int ProgressBarItem_Distance = 16; + return ProgressBarItem_Width + ProgressBarItem_Distance; + } + case PM_ToolBarIconSize:{ + return (int)48*qApp->devicePixelRatio(); + } + default: + break; + } + return QProxyStyle::pixelMetric(metric, option, widget); +} + +// +void CustomStyle::polish(QWidget *widget) +{ + if (widget) { + if (widget->inherits("QTipLabel")) { + widget->setAttribute(Qt::WA_TranslucentBackground); + QPainterPath path; + auto rect = widget->rect(); + rect.adjust(0,0,0,0); + path.addRoundedRect(rect,6,6); + widget->setProperty("blurRegion",QRegion(path.toFillPolygon().toPolygon())); + } + } + if (widget) { + if (widget->inherits("QLable")) { + const_cast (widget)->setAttribute(Qt::WA_TranslucentBackground); + widget->setAttribute(Qt::WA_TranslucentBackground); + QPainterPath path; + auto rect = widget->rect(); + rect.adjust(0,0,0,0); + path.addRoundedRect(rect,6,6); + widget->setProperty("blurRegion",QRegion(path.toFillPolygon().toPolygon())); + } + } + if (widget){ + widget->setAttribute(Qt::WA_Hover); + widget->inherits("QSlider"); + m_helpTip->registerWidget(widget); + widget->installEventFilter(this); + } + + return QProxyStyle::polish(widget); +} + +void CustomStyle::polish(QApplication *application) +{ + return QProxyStyle::polish(application); +} + +// +void CustomStyle::polish(QPalette &palette) +{ + // return QProxyStyle::polish(palette); + // QProxyStyle::polish(palette); + // palette.setBrush(QPalette::Foreground, Qt::black); + QColor lightBlue(200, 0, 0); + palette.setBrush(QPalette::Highlight, lightBlue); +} + +void CustomStyle::unpolish(QWidget *widget) +{ + return QProxyStyle::unpolish(widget); +} + +void CustomStyle::unpolish(QApplication *application) +{ + return QProxyStyle::unpolish(application); +} + +QSize CustomStyle::sizeFromContents(QStyle::ContentsType type, const QStyleOption *option, const QSize &contentsSize, const QWidget *widget) const +{ + QSize newSize = contentsSize; + switch (type) { + case CT_ProgressBar: + { + qDebug()<pixelMetric(QStyle::PM_ProgressBarChunkWidth, option, widget); + newSize.setWidth(cw * ProgressBarItem_Num); + return newSize; + } + default: + break; + } + return QProxyStyle::sizeFromContents(type, option, contentsSize, widget); +} + +QIcon CustomStyle::standardIcon(QStyle::StandardPixmap standardIcon, const QStyleOption *option, const QWidget *widget) const +{ + return QProxyStyle::standardIcon(standardIcon, option, widget); +} + +QPalette CustomStyle::standardPalette() const +{ + return QProxyStyle::standardPalette(); +} + +//如果需要背景透明也许需要用到这个函数 +int CustomStyle::styleHint(QStyle::StyleHint hint, const QStyleOption *option, const QWidget *widget, QStyleHintReturn *returnData) const +{ + switch (hint) { + /// 让ScrollView viewport的绘制区域包含scrollbar和corner widget + /// 这个例子中没有什么作用,如果我们需要绘制一个背景透明的滚动条 + /// 这个style hint对我们的意义应该很大,因为我们希望视图能够帮助 + /// 我们填充滚动条的背景区域,否则当背景透明时底下会出现明显的分割 + + case SH_ScrollView_FrameOnlyAroundContents: { + return false; + } + default: + break; + } + return QProxyStyle::styleHint(hint, option, widget, returnData); +} + +QRect CustomStyle::subControlRect(QStyle::ComplexControl control, const QStyleOptionComplex *option, QStyle::SubControl subControl, const QWidget *widget) const +{ + return QProxyStyle::subControlRect(control, option, subControl, widget); +} + +QRect CustomStyle::subElementRect(QStyle::SubElement element, const QStyleOption *option, const QWidget *widget) const +{ + switch (element) { + case SE_ProgressBarGroove: + case SE_ProgressBarContents: + return option->rect; + + default: + break; + } + return QProxyStyle::subElementRect(element, option, widget); +} diff --git a/audio/customstyle.h b/audio/customstyle.h new file mode 100644 index 0000000..5ab8fe1 --- /dev/null +++ b/audio/customstyle.h @@ -0,0 +1,158 @@ +/* + * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * + * 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, 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 +#include +#include "ukmedia_slider_tip_label_helper.h" +/*! + * \brief The CustomStyle class + * \details + * 自定义QStyle + * 基于QProxyStyle,默认使用QProxyStyle的实例绘制控件,你需要针对某一个控件重新实现若干对应的接口。 + * QProxyStyle可以从现有的qt style实例化,我们只需要知道这个style的名字即可。 + * 这种做法带来了不错的扩展性和自由度,因为我们不需要将某个style的代码直接引入我们的项目中, + * 也能够“继承”这个style类进行二次开发。 + * + * 下面的方法展现了QStyle的所有的接口,使用QStyle进行控件的绘制使得qt应用能够进行风格的切换, + * 从而达到不修改项目源码却对应用外观产生巨大影响的效果。 + * + * \note + * 需要注意QStyle与QSS并不兼容,因为QSS本身其实上也是QStyle的一种实现,对一个控件而言,本身理论上只能 + * 在同一时间调用唯一一个QStyle进行绘制。 + */ +class CustomStyle : public QProxyStyle +{ + Q_OBJECT +public: + explicit CustomStyle(const QString &proxyStyleName = "windows", QObject *parent = nullptr); + ~CustomStyle(); + /*! + * \brief drawComplexControl + * \param control 比如ScrollBar,对应CC枚举类型 + * \param option + * \param painter + * \param widget + * \details + * drawComplexControl用于绘制具有子控件的复杂控件,它本身一般不直接绘制控件, + * 而是通过QStyle的其它方法将复杂控件分解成子控件再调用其它的draw方法绘制。 + * 如果你需要重新实现一个复杂控件的绘制方法,首先考虑的应该是在不改变它原有的绘制流程的情况下, + * 对它调用到的其它方法进行重写。 + * + * 如果你不想使用原有的绘制流程,那你需要重写这个接口,然后自己实现一切, + * 包括背景的绘制,子控件的位置和状态计算,子控件的绘制等。 + * 所以,你需要对这个控件有足够的了解之后再尝试直接重写这个接口。 + */ + virtual void drawComplexControl(QStyle::ComplexControl control, const QStyleOptionComplex *option, QPainter *painter, const QWidget *widget = nullptr) const; + /*! + * \brief drawControl + * \param element 比如按钮,对应CE枚举类型 + * \param option + * \param painter + * \param widget + * \details + * drawControl用于绘制基本控件元素,它本身一般只负责绘制控件的一部分或者一层。 + * 如果你想要知道控件具体如何绘制,你需要同时研究这个控件的源码和QStyle中的源码, + * 因为它们都有可能改变控件的绘制流程。 + * + * QStyle一般会遵循QCommonStyle的绘制流程,QCommenStyle是大部分主流style的最基类, + * 它本身不能完全称之为一个主题,如果你直接使用它,你的控件将不能被正常绘制,因为它有可能只是 + * 在特定的时候执行了特定却未实现的绘制方法,它更像一个框架或者规范。 + */ + virtual void drawControl(QStyle::ControlElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget = nullptr) const; + virtual void drawItemPixmap(QPainter *painter, const QRect &rectangle, int alignment, const QPixmap &pixmap) const; + virtual void drawItemText(QPainter *painter, const QRect &rectangle, int alignment, const QPalette &palette, bool enabled, const QString &text, QPalette::ColorRole textRole = QPalette::NoRole) const; + /*! + * \brief drawPrimitive + * \param element 背景绘制,对应PE枚举类型 + * \param option + * \param painter + * \param widget + * \details + * drawPrimitive用于绘制控件背景,比如按钮和菜单的背景, + * 我们一般需要判断控件的状态来绘制不同的背景, + * 比如按钮的hover和点击效果。 + */ + virtual void drawPrimitive(QStyle::PrimitiveElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget = nullptr) const; + virtual QPixmap generatedIconPixmap(QIcon::Mode iconMode, const QPixmap &pixmap, const QStyleOption *option) const; + virtual QStyle::SubControl hitTestComplexControl(QStyle::ComplexControl control, const QStyleOptionComplex *option, const QPoint &position, const QWidget *widget = nullptr) const; + virtual QRect itemPixmapRect(const QRect &rectangle, int alignment, const QPixmap &pixmap) const; + virtual QRect itemTextRect(const QFontMetrics &metrics, const QRect &rectangle, int alignment, bool enabled, const QString &text) const; + //virtual int layoutSpacing(QSizePolicy::ControlType control1, QSizePolicy::ControlType control2, Qt::Orientation orientation, const QStyleOption *option, const QWidget *widget); + virtual int pixelMetric(QStyle::PixelMetric metric, const QStyleOption *option = nullptr, const QWidget *widget = nullptr) const; + + /*! + * \brief polish + * \param widget + * \details + * polish用于对widget进行预处理,一般我们可以在polish中修改其属性, + * 另外,polish是对动画和特效实现而言十分重要的一个方法, + * 通过polish我们能够使widget和特效和动画形成对应关系。 + */ + virtual void polish(QWidget *widget); + virtual void polish(QApplication *application); + virtual void polish(QPalette &palette); + virtual void unpolish(QWidget *widget); + virtual void unpolish(QApplication *application); + + virtual QSize sizeFromContents(QStyle::ContentsType type, const QStyleOption *option, const QSize &contentsSize, const QWidget *widget = nullptr) const; + virtual QIcon standardIcon(QStyle::StandardPixmap standardIcon, const QStyleOption *option, const QWidget *widget) const; + virtual QPalette standardPalette() const; + /*! + * \brief styleHint + * \param hint 对应的枚举是SH + * \param option + * \param widget + * \param returnData + * \return + * \details + * styleHint比较特殊,通过它我们能够改变一些控件的绘制流程或者方式,比如说QMenu是否可以滚动。 + */ + virtual int styleHint(QStyle::StyleHint hint, const QStyleOption *option = nullptr, const QWidget *widget = nullptr, QStyleHintReturn *returnData = nullptr) const; + /*! + * \brief subControlRect + * \param control + * \param option + * \param subControl + * \param widget + * \return + * \details + * subControlRect返回子控件的位置和大小信息,这个方法一般在内置流程中调用, + * 如果我们要重写某个绘制方法,可能需要用到它 + */ + virtual QRect subControlRect(QStyle::ComplexControl control, const QStyleOptionComplex *option, QStyle::SubControl subControl, const QWidget *widget = nullptr) const; + /*! + * \brief subElementRect + * \param element + * \param option + * \param widget + * \return + * \details + * 与subControlRect类似 + */ + virtual QRect subElementRect(QStyle::SubElement element, const QStyleOption *option, const QWidget *widget = nullptr) const; + +Q_SIGNALS: + +public Q_SLOTS: +private: + SliderTipLabelHelper *m_helpTip; +}; + +#endif // CUSTOMSTYLE_H diff --git a/audio/switchbutton.cpp b/audio/switchbutton.cpp new file mode 100644 index 0000000..d21970d --- /dev/null +++ b/audio/switchbutton.cpp @@ -0,0 +1,325 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- + * + * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * + * 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. + * + */ +#include "switchbutton.h" + +#include +#define THEME_QT_SCHEMA "org.ukui.style" +#define THEME_GTK_SCHEMA "org.mate.interface" +#define TIMER_INTERVAL 5 //每隔5ms动画移动一次 +#define MOVING_STEPS 40 //动画总共移动40次 + +SwitchButton::SwitchButton(QWidget *parent) : + QWidget(parent) +{ +// this->resize(QSize(52, 24)); + this->setFixedSize(QSize(50, 24)); + + checked = false; + hover = false; + disabled = false; + isMoving = false; + isAnimation = true; + + space = 4; + rectRadius = height()/2; + + mStep = width()/MOVING_STEPS;//也就是40次动画就可以走完,每次时间间隔是固定的5ms + mStartX = 0; + mEndX= 0; + + mTimer = new QTimer(this); + mTimer->setInterval(TIMER_INTERVAL);//动画更新时间 + connect(mTimer, SIGNAL(timeout()), this, SLOT(updatevalue())); + if(QGSettings::isSchemaInstalled(THEME_GTK_SCHEMA) && QGSettings::isSchemaInstalled(THEME_QT_SCHEMA)) { + QByteArray qtThemeID(THEME_QT_SCHEMA); + QByteArray gtkThemeID(THEME_GTK_SCHEMA); + + m_gtkThemeSetting = new QGSettings(gtkThemeID,QByteArray(),this); + m_qtThemeSetting = new QGSettings(qtThemeID,QByteArray(),this); + + QString style = m_qtThemeSetting->get("styleName").toString(); + changeColor(style); + + connect(m_qtThemeSetting,&QGSettings::changed, [this] (const QString &key) { + QString style = m_qtThemeSetting->get("styleName").toString(); + if (key == "styleName") { + changeColor(style); + } + }); + } +} + +SwitchButton::~SwitchButton() +{ +} + +void SwitchButton::paintEvent(QPaintEvent *){ + + QPainter painter(this); + //启用反锯齿 + painter.setRenderHint(QPainter::Antialiasing, true); + painter.setCompositionMode(QPainter::CompositionMode_Source); + drawBg(&painter); + if(!isAnimation)//动画如果禁用,则圆形滑块isMoving始终为false + isMoving =false; + if(isMoving) + animation(&painter); + drawSlider(&painter); + painter.end(); +} + +void SwitchButton::changeColor(const QString &themes) { + if (hover) { + return ;//在鼠标下,禁止切换颜色鼠标离开时切换颜色 + } + if (themes == "ukui-dark" || themes == "ukui-black") { + bgColorOff = QColor(OFF_BG_DARK_COLOR); + bgColorOn = QColor(ON_BG_DARK_COLOR); + rectColorEnabled = QColor(ENABLE_RECT_DARK_COLOR); + rectColorDisabled = QColor(DISABLE_RECT_DARK_COLOR); + sliderColorDisabled = QColor(DISABLE_RECT_DARK_COLOR); + sliderColorEnabled = QColor(ENABLE_RECT_DARK_COLOR); + bgHoverOnColor = QColor(ON_HOVER_BG_DARK_COLOR); + bgHoverOffColor = QColor(OFF_HOVER_BG_DARK_COLOR); + bgColorDisabled = QColor(DISABLE_DARK_COLOR); + } else { + bgColorOff = QColor(OFF_BG_LIGHT_COLOR); + bgColorOn = QColor(ON_BG_LIGHT_COLOR); + rectColorEnabled = QColor(ENABLE_RECT_LIGHT_COLOR); + rectColorDisabled = QColor(DISABLE_RECT_LIGHT_COLOR); + sliderColorDisabled = QColor(DISABLE_RECT_LIGHT_COLOR); + sliderColorEnabled = QColor(ENABLE_RECT_LIGHT_COLOR); + bgHoverOnColor = QColor(ON_HOVER_BG_LIGHT_COLOR); + bgHoverOffColor = QColor(OFF_HOVER_BG_LIGHT_COLOR); + bgColorDisabled = QColor(DISABLE_LIGHT_COLOR); + } +} + +//动画绘制 +void SwitchButton::animation(QPainter *painter){ + painter->save(); + int h = height(); + int w = width(); + painter->setPen(Qt::NoPen); + //颜色设置 + if(checked){ + //开关在左侧时 + painter->setBrush(bgColorOn); + rect.setRect(0,0,h+mStartX,h); + }else{ + painter->setBrush(bgColorOff); + rect.setRect(mStartX,0,w-mStartX,h); + } + painter->drawRoundedRect(rect,rectRadius,rectRadius); + + painter->restore(); +} + +//绘制背景 +void SwitchButton::drawBg(QPainter *painter){ + int w = width(); + int h = height(); + painter->save(); + painter->setPen(Qt::NoPen); + if (disabled) { + painter->setPen(Qt::NoPen); + painter->setBrush(bgColorDisabled); + } else { + if(checked){ + if(isMoving){ + painter->setBrush(bgColorOff); + rect.setRect(mStartX,0,w-mStartX,h); + }else { + painter->setBrush(bgColorOn); + rect.setRect(0, 0, w, h); + } + }else{ + if(isMoving){ + painter->setBrush(bgColorOn); + rect.setRect(0,0,mStartX+h,h); + } + else { + painter->setBrush(bgColorOff); + rect.setRect(0, 0, w, h); + } + } + } + //半径为高度的一半 + painter->drawRoundedRect(rect,rectRadius,rectRadius); + + painter->restore(); +} + +//绘制滑块,也就是圆形按钮 +void SwitchButton::drawSlider(QPainter *painter){ + painter->save(); + painter->setPen(Qt::NoPen); + + if (!disabled){ + painter->setBrush(sliderColorEnabled); + } + else + painter->setBrush(sliderColorDisabled); + if (disabled) { + if (!checked){ + QRect smallRect(8, height() / 2 - 2, 10 , 4); + painter->drawRoundedRect(smallRect,3,3); + }else{ + QRect smallRect(width() - 8 * 2, height() / 2 - 2, 10 , 4); + painter->drawRoundedRect(smallRect,3,3); + } + } + + QRect rect(0, 0, width(), height()); + int sliderWidth = rect.height() - space * 2; + QRect sliderRect(mStartX + space, space, sliderWidth, sliderWidth); + painter->drawEllipse(sliderRect); + + painter->restore(); +} + +void SwitchButton::mousePressEvent(QMouseEvent *){ + qDebug()<start(); + isMoving = true; + } +} + +void SwitchButton::resizeEvent(QResizeEvent *){ + //每次开始的x坐标都是跳过圆角,从直线的地方开始计算 + mStep = width() / MOVING_STEPS; + + if (checked){ + //circle out +// startX = width() - height() + space; + //circle in + mStartX = width() - height(); + } + else + mStartX = 0; + + rectRadius = height()/2; + update(); +} +void SwitchButton::enterEvent(QEvent *event) { + bgColorOn = bgHoverOnColor; + bgColorOff = bgHoverOffColor; + + hover = true; + update(); + return QWidget::enterEvent(event); +} + +void SwitchButton::leaveEvent(QEvent *event) { + hover = false; + + QString style = m_qtThemeSetting->get("styleName").toString(); + changeColor(style); + + update(); + return QWidget::leaveEvent(event); +} + +//根据事件向左还是向右移动 +void SwitchButton::updatevalue(){ + if (checked) + if (mStartX < mEndX-mStep){ + mStartX = mStartX + mStep; + } + else{ + mStartX = mEndX; + mTimer->stop(); + isMoving = false; + } + else{ + if (mStartX > mEndX+mStep){ + mStartX = mStartX - mStep; + } + else{ + mStartX = mEndX; + mTimer->stop(); + isMoving = false; + } + } + update(); +} + +void SwitchButton::setChecked(bool checked){ + if (this->checked != checked){ + this->checked = checked; + Q_EMIT checkedChanged(checked); + update(); + } + + mStep = width() / MOVING_STEPS; + + if (checked){ + //circle out +// endX = width() - height() + space; + //circle in + mEndX = width() - height(); + } + else{ + mEndX = 0; + } + mTimer->start(); + isMoving = true; +} + +bool SwitchButton::isChecked(){ + return this->checked; +} + +void SwitchButton::setDisabledFlag(bool value) +{ + disabled = value; + update(); +} + +bool SwitchButton::getDisabledFlag() +{ + return disabled; +} + +void SwitchButton::setAnimation(bool on){ + isAnimation = on; +} + diff --git a/audio/switchbutton.h b/audio/switchbutton.h new file mode 100644 index 0000000..c9043f7 --- /dev/null +++ b/audio/switchbutton.h @@ -0,0 +1,119 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- + * + * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * + * 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. + * + */ +#ifndef SWITCHBUTTON_H +#define SWITCHBUTTON_H + +#include +#include +#include +#include +#include +#include + +#define OFF_BG_DARK_COLOR "#404040" +#define OFF_HOVER_BG_DARK_COLOR "#666666" +#define ON_BG_DARK_COLOR "#3790FA" +#define ON_HOVER_BG_DARK_COLOR "#40A9FB" +#define DISABLE_DARK_COLOR "#474747" +#define DISABLE_RECT_DARK_COLOR "#6E6E6E" +#define ENABLE_RECT_DARK_COLOR "#FFFFFF" + +#define OFF_BG_LIGHT_COLOR "#E0E0E0" +#define OFF_HOVER_BG_LIGHT_COLOR "#B3B3B3" +#define ON_BG_LIGHT_COLOR "#3790FA" +#define ON_HOVER_BG_LIGHT_COLOR "#40A9FB" +#define DISABLE_LIGHT_COLOR "#E9E9E9" +#define DISABLE_RECT_LIGHT_COLOR "#B3B3B3" +#define ENABLE_RECT_LIGHT_COLOR "#FFFFFF" + + +class SwitchButton : public QWidget +{ + Q_OBJECT + +public: + SwitchButton(QWidget *parent = 0); + ~SwitchButton(); + + void setChecked(bool checked); + void setAnimation(bool on); + + bool isChecked(); + void setDisabledFlag(bool); + bool getDisabledFlag(); +protected: + void mousePressEvent(QMouseEvent *); + void resizeEvent(QResizeEvent *); + void paintEvent(QPaintEvent *); + void enterEvent(QEvent *event); + void leaveEvent(QEvent *event); + + void drawBg(QPainter * painter); + void drawSlider(QPainter * painter); + void changeColor(const QString &themes); + +private: + bool checked; //切换的判断 + bool disabled; + + void animation(QPainter *painter); + QRect rect; + bool isMoving; //滑块动作判断 + bool isAnimation; // 是否允许动画执行 + + QColor bgColorOff; + QColor bgColorOn; + QColor bgHoverOnColor; + QColor bgHoverOffColor; + QColor bgColorDisabled; + + QColor sliderColorEnabled; + QColor sliderColorDisabled; + + + QColor rectColorEnabled; + QColor rectColorDisabled; + + QColor sliderColorOff; + QColor sliderColorOn; + QGSettings *m_qtThemeSetting; + QGSettings *m_gtkThemeSetting; + + int space; //滑块离背景间隔 + int rectRadius; //圆角角度 + + int mStep; //移动步长 + int mStartX; + int mEndX; + + bool hover; + QTimer * mTimer; + + +private Q_SLOTS: + void updatevalue(); + + +Q_SIGNALS: + void checkedChanged(bool checked); + +}; + +#endif // SWITCHBUTTON_H diff --git a/audio/titlelabel.cpp b/audio/titlelabel.cpp new file mode 100644 index 0000000..10ea302 --- /dev/null +++ b/audio/titlelabel.cpp @@ -0,0 +1,46 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- + * + * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * + * 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. + * + */ + +#include "titlelabel.h" +#include + +#include +#include +#include + +TitleLabel::TitleLabel(QWidget *parent): + QLabel(parent) +{ + /*初始化字体*/ +// QFont font; +// QGSettings *m_fontSetting = new QGSettings("org.ukui.style"); +// font.setFamily(m_fontSetting->get("systemFont").toString()); +// font.setPixelSize(m_fontSetting->get("systemFontSize").toInt() * 18 / 11); //设置的是pt,按照公式计算为px,标题默认字为18px +// font.setWeight(QFont::Medium); +// this->setFont(font); + this ->setContentsMargins(16,0,0,0); +// delete m_fontSetting; +// m_fontSetting = nullptr; +} + +TitleLabel::~TitleLabel() +{ + +} diff --git a/audio/titlelabel.h b/audio/titlelabel.h new file mode 100644 index 0000000..5e165c3 --- /dev/null +++ b/audio/titlelabel.h @@ -0,0 +1,34 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- + * + * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * + * 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. + * + */ +#ifndef TITLE_LABEL_H +#define TITLE_LABEL_H + +#include + +class TitleLabel : public QLabel +{ + Q_OBJECT +public: + TitleLabel(QWidget *parent = nullptr); + ~TitleLabel(); +}; + +#endif // TITLE_LABEL_H + diff --git a/audio/translate_generation.sh b/audio/translate_generation.sh new file mode 100755 index 0000000..72f748b --- /dev/null +++ b/audio/translate_generation.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +ts_list=(`ls translations/*.ts`) +source /etc/os-release +version=(`echo $ID`) + +for ts in "${ts_list[@]}" +do + printf "\nprocess ${ts}\n" + if [ "$version" == "fedora" ] || [ "$version" == "opensuse-leap" ] || [ "$version" == "opensuse-tumbleweed" ];then + lrelease-qt5 "${ts}" + else + lrelease "${ts}" + fi +done diff --git a/audio/translations/bo.ts b/audio/translations/bo.ts new file mode 100644 index 0000000..8fdcec2 --- /dev/null +++ b/audio/translations/bo.ts @@ -0,0 +1,406 @@ + + + + + Audio + + + + Audio + + + + + UkccPlugin + + /UkccPlugin/UkccPlugin + + + + ukccplugin test + + /UkccPlugin/ukccplugin test + + + + QObject + + + + + pa_context_get_server_info() failed + + + + + Card callback failure + + + + + + Sink callback failure + + + + + + Source callback failure + + + + + + Sink input callback failure + + + + + Source output callback failure + + + + + Client callback failure + + + + + Server info callback failure + + + + + Failed to initialize stream_restore extension: %s + + + + + pa_ext_stream_restore_read() failed + + + + + Failed to initialize device manager extension: %s + + + + + pa_ext_device_manager_read() failed + + + + + pa_context_get_sink_info_by_index() failed + + + + + pa_context_get_source_info_by_index() failed + + + + + + pa_context_get_sink_input_info() failed + + + + + pa_context_get_client_info() failed + + + + + pa_context_get_card_info_by_index() failed + + + + + pa_context_subscribe() failed + + + + + pa_context_client_info_list() failed + + + + + pa_context_get_card_info_list() failed + + + + + pa_context_get_sink_info_list() failed + + + + + pa_context_get_source_info_list() failed + + + + + pa_context_get_sink_input_info_list() failed + + + + + pa_context_get_source_output_info_list() failed + + + + + Connection failed, attempting reconnect + + + + + Ukui Media Volume Control + + + + + UkmediaInputWidget + + + Input + + /Audio/Input + + + + Input Device + + /Audio/Input Device + + + + Volume + + /Audio/Volume + + + + Input Level + + /Audio/Input Level + + + + UkmediaMainWidget + + + + + + None + + + + + UkmediaOutputWidget + + + Output + + /Audio/Output + + + + Output Device + + /Audio/Output Device + + + + Master Volume + + /Audio/Master Volume + + + + Balance + + /Audio/Balance + + + + Left + + + + + Right + + + + + UkmediaSoundEffectsWidget + + + System Sound + + + + + Sound Theme + + /Audio/Sound Theme + + + + Alert Sound + + /Audio/Alert Sound + + + + Beep Switch + + /Audio/Beep Switch + + + + Poweroff Music + + /Audio/Poweroff Music + + + + Startup Music + + /Audio/Startup Music + + + + Wakeup Music + + /Audio/Wakeup Music + + + + Volume Change + + /Audio/Volume Change + + + + Logout Music + + /Audio/Logout Music + + + + UkmediaVolumeControl + + + + + + + + + + + pa_context_set_sink_volume_by_index() failed + + + + + pa_context_set_source_mute_by_index() failed + + + + + + pa_context_set_source_output_volume() failed + + + + + pa_context_set_source_output_mute() failed + + + + + pa_context_set_card_profile_by_index() failed + + + + + pa_context_set_default_sink() failed + + + + + + + pa_context_set_default_source() failed + + + + + pa_context_get_source_info_by_name() failed + + + + + pa_context_set_sink_port_by_name() failed + + + + + pa_context_set_source_port_by_name() failed + + + + + (plugged in) + + + + + + (unavailable) + + + + + + (unplugged) + + + + + Failed to read data from stream + + + + + Peak detect + + + + + Failed to create monitoring stream + + + + + Failed to connect monitoring stream + + + + + Ignoring sink-input due to it being designated as an event and thus handled by the Event widget + + + + + Establishing connection to PulseAudio. Please wait... + + + + diff --git a/audio/translations/tr.ts b/audio/translations/tr.ts new file mode 100644 index 0000000..8fdcec2 --- /dev/null +++ b/audio/translations/tr.ts @@ -0,0 +1,406 @@ + + + + + Audio + + + + Audio + + + + + UkccPlugin + + /UkccPlugin/UkccPlugin + + + + ukccplugin test + + /UkccPlugin/ukccplugin test + + + + QObject + + + + + pa_context_get_server_info() failed + + + + + Card callback failure + + + + + + Sink callback failure + + + + + + Source callback failure + + + + + + Sink input callback failure + + + + + Source output callback failure + + + + + Client callback failure + + + + + Server info callback failure + + + + + Failed to initialize stream_restore extension: %s + + + + + pa_ext_stream_restore_read() failed + + + + + Failed to initialize device manager extension: %s + + + + + pa_ext_device_manager_read() failed + + + + + pa_context_get_sink_info_by_index() failed + + + + + pa_context_get_source_info_by_index() failed + + + + + + pa_context_get_sink_input_info() failed + + + + + pa_context_get_client_info() failed + + + + + pa_context_get_card_info_by_index() failed + + + + + pa_context_subscribe() failed + + + + + pa_context_client_info_list() failed + + + + + pa_context_get_card_info_list() failed + + + + + pa_context_get_sink_info_list() failed + + + + + pa_context_get_source_info_list() failed + + + + + pa_context_get_sink_input_info_list() failed + + + + + pa_context_get_source_output_info_list() failed + + + + + Connection failed, attempting reconnect + + + + + Ukui Media Volume Control + + + + + UkmediaInputWidget + + + Input + + /Audio/Input + + + + Input Device + + /Audio/Input Device + + + + Volume + + /Audio/Volume + + + + Input Level + + /Audio/Input Level + + + + UkmediaMainWidget + + + + + + None + + + + + UkmediaOutputWidget + + + Output + + /Audio/Output + + + + Output Device + + /Audio/Output Device + + + + Master Volume + + /Audio/Master Volume + + + + Balance + + /Audio/Balance + + + + Left + + + + + Right + + + + + UkmediaSoundEffectsWidget + + + System Sound + + + + + Sound Theme + + /Audio/Sound Theme + + + + Alert Sound + + /Audio/Alert Sound + + + + Beep Switch + + /Audio/Beep Switch + + + + Poweroff Music + + /Audio/Poweroff Music + + + + Startup Music + + /Audio/Startup Music + + + + Wakeup Music + + /Audio/Wakeup Music + + + + Volume Change + + /Audio/Volume Change + + + + Logout Music + + /Audio/Logout Music + + + + UkmediaVolumeControl + + + + + + + + + + + pa_context_set_sink_volume_by_index() failed + + + + + pa_context_set_source_mute_by_index() failed + + + + + + pa_context_set_source_output_volume() failed + + + + + pa_context_set_source_output_mute() failed + + + + + pa_context_set_card_profile_by_index() failed + + + + + pa_context_set_default_sink() failed + + + + + + + pa_context_set_default_source() failed + + + + + pa_context_get_source_info_by_name() failed + + + + + pa_context_set_sink_port_by_name() failed + + + + + pa_context_set_source_port_by_name() failed + + + + + (plugged in) + + + + + + (unavailable) + + + + + + (unplugged) + + + + + Failed to read data from stream + + + + + Peak detect + + + + + Failed to create monitoring stream + + + + + Failed to connect monitoring stream + + + + + Ignoring sink-input due to it being designated as an event and thus handled by the Event widget + + + + + Establishing connection to PulseAudio. Please wait... + + + + diff --git a/audio/translations/zh_CN.ts b/audio/translations/zh_CN.ts new file mode 100644 index 0000000..b23df83 --- /dev/null +++ b/audio/translations/zh_CN.ts @@ -0,0 +1,406 @@ + + + + + Audio + + + + Audio + 声音 + + + + UkccPlugin + + /UkccPlugin/UkccPlugin + + + + ukccplugin test + + /UkccPlugin/ukccplugin test + + + + QObject + + + + + pa_context_get_server_info() failed + + + + + Card callback failure + + + + + + Sink callback failure + + + + + + Source callback failure + + + + + + Sink input callback failure + + + + + Source output callback failure + + + + + Client callback failure + + + + + Server info callback failure + + + + + Failed to initialize stream_restore extension: %s + + + + + pa_ext_stream_restore_read() failed + + + + + Failed to initialize device manager extension: %s + + + + + pa_ext_device_manager_read() failed + + + + + pa_context_get_sink_info_by_index() failed + + + + + pa_context_get_source_info_by_index() failed + + + + + + pa_context_get_sink_input_info() failed + + + + + pa_context_get_client_info() failed + + + + + pa_context_get_card_info_by_index() failed + + + + + pa_context_subscribe() failed + + + + + pa_context_client_info_list() failed + + + + + pa_context_get_card_info_list() failed + + + + + pa_context_get_sink_info_list() failed + + + + + pa_context_get_source_info_list() failed + + + + + pa_context_get_sink_input_info_list() failed + + + + + pa_context_get_source_output_info_list() failed + + + + + Connection failed, attempting reconnect + + + + + Ukui Media Volume Control + + + + + UkmediaInputWidget + + + Input + 输入 + /Audio/Input + + + + Input Device + 选择输入设备 + /Audio/Input Device + + + + Volume + 音量 + /Audio/Volume + + + + Input Level + 输入反馈 + /Audio/Input Level + + + + UkmediaMainWidget + + + + + + None + + + + + UkmediaOutputWidget + + + Output + 输出 + /Audio/Output + + + + Output Device + 选择输出设备 + /Audio/Output Device + + + + Master Volume + 音量 + /Audio/Master Volume + + + + Balance + 声道平衡 + /Audio/Balance + + + + Left + + + + + Right + + + + + UkmediaSoundEffectsWidget + + + System Sound + 系统音效 + + + + Sound Theme + 音效主题 + /Audio/Sound Theme + + + + Alert Sound + 通知 + /Audio/Alert Sound + + + + Beep Switch + 提示音 + /Audio/Beep Switch + + + + Poweroff Music + 关机 + /Audio/Poweroff Music + + + + Startup Music + 开机 + /Audio/Startup Music + + + + Wakeup Music + 唤醒 + /Audio/Wakeup Music + + + + Volume Change + 音量调节 + /Audio/Volume Change + + + + Logout Music + 注销 + /Audio/Logout Music + + + + UkmediaVolumeControl + + + + + + + + + + + pa_context_set_sink_volume_by_index() failed + + + + + pa_context_set_source_mute_by_index() failed + + + + + + pa_context_set_source_output_volume() failed + + + + + pa_context_set_source_output_mute() failed + + + + + pa_context_set_card_profile_by_index() failed + + + + + pa_context_set_default_sink() failed + + + + + + + pa_context_set_default_source() failed + + + + + pa_context_get_source_info_by_name() failed + + + + + pa_context_set_sink_port_by_name() failed + + + + + pa_context_set_source_port_by_name() failed + + + + + (plugged in) + + + + + + (unavailable) + + + + + + (unplugged) + + + + + Failed to read data from stream + + + + + Peak detect + + + + + Failed to create monitoring stream + + + + + Failed to connect monitoring stream + + + + + Ignoring sink-input due to it being designated as an event and thus handled by the Event widget + + + + + Establishing connection to PulseAudio. Please wait... + + + + diff --git a/audio/ukmedia_input_widget.cpp b/audio/ukmedia_input_widget.cpp new file mode 100644 index 0000000..b35aaaf --- /dev/null +++ b/audio/ukmedia_input_widget.cpp @@ -0,0 +1,155 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- + * + * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * + * 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. + * + */ +#include "ukmedia_input_widget.h" +#include +#include +#include + +UkmediaInputWidget::UkmediaInputWidget(QWidget *parent) : QWidget(parent) +{ + m_pInputWidget = new QFrame(this); + m_pVolumeWidget = new QFrame(m_pInputWidget); + m_pInputLevelWidget = new QFrame(m_pInputWidget); + m_pInputSlectWidget = new QFrame(m_pInputWidget); + + m_pInputWidget->setFrameShape(QFrame::Shape::Box); + m_pVolumeWidget->setFrameShape(QFrame::Shape::Box); + m_pInputLevelWidget->setFrameShape(QFrame::Shape::Box); + m_pInputSlectWidget->setFrameShape(QFrame::Shape::Box); + + //设置大小 + m_pInputWidget->setMinimumSize(550,183); + m_pInputWidget->setMaximumSize(16777215,183); + m_pVolumeWidget->setMinimumSize(550,60); + m_pVolumeWidget->setMaximumSize(16777215,60); + m_pInputLevelWidget->setMinimumSize(550,60); + m_pInputLevelWidget->setMaximumSize(16777215,60); + m_pInputSlectWidget->setMinimumSize(550,60); + m_pInputSlectWidget->setMaximumSize(16777215,60); + + m_pInputLabel = new TitleLabel(this); + //~ contents_path /Audio/Input + m_pInputLabel->setText(tr("Input")); + m_pInputLabel->setStyleSheet("color: palette(windowText);}"); + + + //~ contents_path /Audio/Input Device + m_pInputDeviceLabel = new QLabel(tr("Input Device"),m_pInputSlectWidget); + m_pInputDeviceSelectBox = new QComboBox(m_pInputSlectWidget); + //~ contents_path /Audio/Volume + m_pIpVolumeLabel = new QLabel(tr("Volume"),m_pVolumeWidget); + m_pInputIconBtn = new UkuiButtonDrawSvg(m_pVolumeWidget); + m_pIpVolumeSlider = new AudioSlider(); + m_pIpVolumePercentLabel = new QLabel(m_pVolumeWidget); + //~ contents_path /Audio/Input Level + m_pInputLevelLabel = new QLabel(tr("Input Level"),m_pInputLevelWidget); + m_pInputLevelProgressBar = new QProgressBar(m_pInputLevelWidget); + + m_pInputLevelProgressBar->setStyle(new CustomStyle); + m_pInputLevelProgressBar->setTextVisible(false); + + m_pIpVolumeSlider->setOrientation(Qt::Horizontal); + m_pIpVolumeSlider->setRange(0,100); + m_pInputIconBtn->setFocusPolicy(Qt::NoFocus); + + + //输入设备添加布局 + m_pInputDeviceLabel->setFixedSize(120,40); + m_pInputDeviceSelectBox->setFixedHeight(40); + QHBoxLayout *inputdeviceSlectLayout = new QHBoxLayout(); + inputdeviceSlectLayout->addItem(new QSpacerItem(16,20,QSizePolicy::Fixed)); + inputdeviceSlectLayout->addWidget(m_pInputDeviceLabel); + inputdeviceSlectLayout->addItem(new QSpacerItem(113,20,QSizePolicy::Fixed)); + inputdeviceSlectLayout->addWidget(m_pInputDeviceSelectBox); + inputdeviceSlectLayout->addItem(new QSpacerItem(16,20,QSizePolicy::Fixed)); + inputdeviceSlectLayout->setSpacing(0); + m_pInputSlectWidget->setLayout(inputdeviceSlectLayout); + m_pInputSlectWidget->layout()->setContentsMargins(0,0,0,0); + + //主音量添加布局 + QHBoxLayout *m_pMasterLayout = new QHBoxLayout(m_pVolumeWidget); + m_pIpVolumeLabel->setFixedSize(110,40); + m_pInputIconBtn->setFixedSize(24,24); + m_pIpVolumeSlider->setFixedHeight(55); + m_pIpVolumePercentLabel->setFixedSize(55,20); + m_pIpVolumePercentLabel->setAlignment(Qt::AlignCenter); + m_pMasterLayout->addItem(new QSpacerItem(16,20,QSizePolicy::Fixed)); + m_pMasterLayout->addWidget(m_pIpVolumeLabel); + m_pMasterLayout->addItem(new QSpacerItem(123,20,QSizePolicy::Fixed)); + m_pMasterLayout->addWidget(m_pInputIconBtn); + m_pMasterLayout->addItem(new QSpacerItem(16,20,QSizePolicy::Fixed)); + m_pMasterLayout->addWidget(m_pIpVolumeSlider); + m_pMasterLayout->addItem(new QSpacerItem(13,20,QSizePolicy::Maximum)); + m_pMasterLayout->addWidget(m_pIpVolumePercentLabel); + m_pMasterLayout->addItem(new QSpacerItem(10,20,QSizePolicy::Maximum)); + m_pMasterLayout->setSpacing(0); + m_pVolumeWidget->setLayout(m_pMasterLayout); + m_pVolumeWidget->layout()->setContentsMargins(0,0,0,0); + + //输入反馈添加布局 + QHBoxLayout *m_pSoundLayout = new QHBoxLayout(m_pInputLevelWidget); + m_pInputLevelLabel->setFixedSize(110,40); + m_pSoundLayout->addItem(new QSpacerItem(16,20,QSizePolicy::Fixed)); + m_pSoundLayout->addWidget(m_pInputLevelLabel); + m_pSoundLayout->addItem(new QSpacerItem(123,20,QSizePolicy::Fixed)); + m_pSoundLayout->addWidget(m_pInputLevelProgressBar); + m_pSoundLayout->addItem(new QSpacerItem(5,20,QSizePolicy::Fixed)); + m_pSoundLayout->setSpacing(0); + m_pInputLevelWidget->setLayout(m_pSoundLayout); + m_pInputLevelWidget->layout()->setContentsMargins(0,0,0,0); + + QFrame *inputselectAndVolume = myLine(); + QFrame *volumeAndInputLevel = myLine(); + + //进行整体布局 + m_pVlayout = new QVBoxLayout(m_pInputWidget); + m_pVlayout->addWidget(m_pInputSlectWidget); + m_pVlayout->addWidget(inputselectAndVolume); + m_pVlayout->addWidget(m_pVolumeWidget); + m_pVlayout->addWidget(volumeAndInputLevel); + m_pVlayout->addWidget(m_pInputLevelWidget); + m_pVlayout->setSpacing(0); + m_pInputWidget->setLayout(m_pVlayout); + m_pInputWidget->layout()->setContentsMargins(0,0,0,0); + + QVBoxLayout *m_pVlayout1 = new QVBoxLayout(this); + m_pVlayout1->addWidget(m_pInputLabel); + m_pVlayout1->addItem(new QSpacerItem(16,4,QSizePolicy::Fixed)); + m_pVlayout1->addWidget(m_pInputWidget); + this->setLayout(m_pVlayout1); + this->layout()->setContentsMargins(0,0,0,0); +} + +QFrame* UkmediaInputWidget::myLine() +{ + QFrame *line = new QFrame(this); + line->setMinimumSize(QSize(0, 1)); + line->setMaximumSize(QSize(16777215, 1)); + line->setLineWidth(0); + line->setFrameShape(QFrame::HLine); + line->setFrameShadow(QFrame::Sunken); + + return line; +} + +UkmediaInputWidget::~UkmediaInputWidget() +{ + +} diff --git a/audio/ukmedia_input_widget.h b/audio/ukmedia_input_widget.h new file mode 100644 index 0000000..31460a2 --- /dev/null +++ b/audio/ukmedia_input_widget.h @@ -0,0 +1,67 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- + * + * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * + * 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. + * + */ +#ifndef UKMEDIAINPUTWIDGET_H +#define UKMEDIAINPUTWIDGET_H + +#include +#include +#include +#include +#include "ukmedia_output_widget.h" +#include +#include +#include +#include +#include "ukui_custom_style.h" + +class UkmediaInputWidget : public QWidget +{ + Q_OBJECT +public: + explicit UkmediaInputWidget(QWidget *parent = nullptr); + ~UkmediaInputWidget(); + friend class UkmediaMainWidget; +Q_SIGNALS: + +private: + QFrame* myLine(); + QFrame *m_pInputWidget; + QFrame *m_pVolumeWidget; + QFrame *m_pInputLevelWidget; + + TitleLabel *m_pInputLabel; + QLabel *m_pInputDeviceLabel; + QLabel *m_pIpVolumeLabel; + QLabel *m_pInputLevelLabel; + QLabel *m_pIpVolumePercentLabel; + + UkuiButtonDrawSvg *m_pInputIconBtn; + AudioSlider *m_pIpVolumeSlider; + QProgressBar *m_pInputLevelProgressBar; + + QString sliderQss; + QVBoxLayout *m_pVlayout; + + QComboBox *m_pInputDeviceSelectBox; + QFrame *m_pInputSlectWidget; + +}; + +#endif // UKMEDIAINPUTWIDGET_H diff --git a/audio/ukmedia_main_widget.cpp b/audio/ukmedia_main_widget.cpp new file mode 100644 index 0000000..2816034 --- /dev/null +++ b/audio/ukmedia_main_widget.cpp @@ -0,0 +1,3059 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- + * + * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * + * 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. + * + */ +#include "ukmedia_main_widget.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#define MATE_DESKTOP_USE_UNSTABLE_API +#define VERSION "1.12.1" +#define GVC_DIALOG_DBUS_NAME "org.mate.VolumeControl" +#define KEY_SOUNDS_SCHEMA "org.ukui.sound" +#define GVC_SOUND_SOUND (xmlChar *) "sound" +#define GVC_SOUND_NAME (xmlChar *) "name" +#define GVC_SOUND_FILENAME (xmlChar *) "filename" +#define SOUND_SET_DIR "/usr/share/ukui-media/sounds" + +#define KEYBINDINGS_CUSTOM_SCHEMA "org.ukui.media.sound" +#define KEYBINDINGS_CUSTOM_DIR "/org/ukui/sound/keybindings/" + +#define MAX_CUSTOM_SHORTCUTS 1000 + +#define FILENAME_KEY "filename" +#define NAME_KEY "name" + +guint appnum = 0; +extern bool isCheckBluetoothInput; + +enum { + SOUND_TYPE_UNSET, + SOUND_TYPE_OFF, + SOUND_TYPE_DEFAULT_FROM_THEME, + SOUND_TYPE_BUILTIN, + SOUND_TYPE_CUSTOM +}; + +UkmediaMainWidget::UkmediaMainWidget(QWidget *parent) + : QWidget(parent) +{ + m_pVolumeControl = new UkmediaVolumeControl; + initWidget(); + + m_pSoundList = new QStringList; + m_pThemeNameList = new QStringList; + m_pThemeDisplayNameList = new QStringList; + m_pSoundNameList = new QStringList; + m_pSoundThemeList = new QStringList; + m_pSoundThemeDirList = new QStringList; + m_pSoundThemeXmlNameList = new QStringList; + + initGsettings(); + setupThemeSelector(this); + updateTheme(this); + //报警声音,从指定路径获取报警声音文件 + populateModelFromDir(this,SOUND_SET_DIR); + //初始化combobox的值 + comboboxCurrentTextInit(); + + time = new QTimer(); + dealSlot();//处理槽函数 +} + +/* + * 初始化界面 + */ +void UkmediaMainWidget::initWidget() +{ + m_pOutputWidget = new UkmediaOutputWidget(); + m_pInputWidget = new UkmediaInputWidget(); + m_pSoundWidget = new UkmediaSoundEffectsWidget(); + cboxfirstEntry = true; + mThemeName = UKUI_THEME_WHITE; + QVBoxLayout *m_pvLayout = new QVBoxLayout(); + m_pvLayout->addWidget(m_pOutputWidget); + m_pvLayout->addWidget(m_pInputWidget); + m_pvLayout->addWidget(m_pSoundWidget); + m_pvLayout->setSpacing(40); + m_pvLayout->addStretch(); + + this->setLayout(m_pvLayout); + this->setMinimumWidth(0); + this->setMaximumWidth(16777215); + this->layout()->setContentsMargins(0,0,0,0); + + //设置滑动条的最大值为100 + m_pInputWidget->m_pIpVolumeSlider->setMaximum(100);//输入音量滑动条 + m_pOutputWidget->m_pOpVolumeSlider->setMaximum(100);//输出音量滑动条 + m_pOutputWidget->m_pOpBalanceSlider->setMaximum(100);//输出音量声道平衡滑动条 + m_pOutputWidget->m_pOpBalanceSlider->setMinimum(-100); + m_pOutputWidget->m_pOpBalanceSlider->setSingleStep(100);//声道平衡步长 + m_pInputWidget->m_pInputLevelProgressBar->setMaximum(101); +} + +QList UkmediaMainWidget::listExistsPath() +{ + char ** childs; + int len; + + DConfClient * client = dconf_client_new(); + childs = dconf_client_list (client, KEYBINDINGS_CUSTOM_DIR, &len); + g_object_unref (client); + + QList vals; + + for (int i = 0; childs[i] != NULL; i++){ + if (dconf_is_rel_dir (childs[i], NULL)){ + char * val = g_strdup (childs[i]); + + vals.append(val); + } + } + g_strfreev (childs); + return vals; +} + +QString UkmediaMainWidget::findFreePath(){ + int i = 0; + char * dir; + bool found; + QList existsdirs; + + existsdirs = listExistsPath(); + + for (; i < MAX_CUSTOM_SHORTCUTS; i++){ + found = true; + dir = QString("custom%1/").arg(i).toLatin1().data(); + for (int j = 0; j < existsdirs.count(); j++) + if (!g_strcmp0(dir, existsdirs.at(j))){ + found = false; + break; + } + if (found) + break; + } + + if (i == MAX_CUSTOM_SHORTCUTS){ + qDebug() << "Keyboard Shortcuts" << "Too many custom shortcuts"; + return ""; + } + + return QString("%1%2").arg(KEYBINDINGS_CUSTOM_DIR).arg(QString(dir)); +} + +void UkmediaMainWidget::addValue(QString name,QString filename) +{ + //在创建setting表时,先判断是否存在该设置,存在时不创建 + QList existsPath = listExistsPath(); + + for (char * path : existsPath) { + + char * prepath = QString(KEYBINDINGS_CUSTOM_DIR).toLatin1().data(); + char * allpath = strcat(prepath, path); + + const QByteArray ba(KEYBINDINGS_CUSTOM_SCHEMA); + const QByteArray bba(allpath); + if(QGSettings::isSchemaInstalled(ba)) + { + QGSettings * settings = new QGSettings(ba, bba); + QString filenameStr = settings->get(FILENAME_KEY).toString(); + QString nameStr = settings->get(NAME_KEY).toString(); + + g_warning("full path: %s", allpath); + qDebug() << filenameStr << FILENAME_KEY <set(FILENAME_KEY, filename); + settings->set(NAME_KEY, name); + } +} + +/* + * 初始化gsetting + */ +void UkmediaMainWidget::initGsettings() +{ + //获取声音gsettings值 + m_pSoundSettings = g_settings_new (KEY_SOUNDS_SCHEMA); + + g_signal_connect (G_OBJECT (m_pSoundSettings), + "changed", + G_CALLBACK (onKeyChanged), + this); + //检测系统主题 + if (QGSettings::isSchemaInstalled(UKUI_THEME_SETTING)){ + m_pThemeSetting = new QGSettings(UKUI_THEME_SETTING); + if (m_pThemeSetting->keys().contains("styleName")) { + mThemeName = m_pThemeSetting->get(UKUI_THEME_NAME).toString(); + } + connect(m_pThemeSetting, SIGNAL(changed(const QString &)),this,SLOT(ukuiThemeChangedSlot(const QString &))); + } + + //检测设计开关机音乐 + if (QGSettings::isSchemaInstalled(UKUI_SWITCH_SETTING)) { + m_pBootSetting = new QGSettings(UKUI_SWITCH_SETTING); + if (m_pBootSetting->keys().contains("startupMusic")) { + bool startup = m_pBootSetting->get(UKUI_STARTUP_MUSIC_KEY).toBool();//开机音乐 + m_pSoundWidget->m_pStartupButton->setChecked(startup); + } + if (m_pBootSetting->keys().contains("poweroffMusic")) { + bool poweroff = m_pBootSetting->get(UKUI_POWEROFF_MUSIC_KEY).toBool();//关机音乐 + m_pSoundWidget->m_pPoweroffButton->setChecked(poweroff); + } + if (m_pBootSetting->keys().contains("logoutMusic")) { + bool logout = m_pBootSetting->get(UKUI_LOGOUT_MUSIC_KEY).toBool();//注销音乐 + m_pSoundWidget->m_pLogoutButton->setChecked(logout); + } + if (m_pBootSetting->keys().contains("weakupMusic")) { + bool m_hasMusic = m_pBootSetting->get(UKUI_WAKEUP_MUSIC_KEY).toBool();//休眠音乐 + m_pSoundWidget->m_pWakeupMusicButton->setChecked(m_hasMusic); + } + connect(m_pBootSetting,SIGNAL(changed(const QString &)),this,SLOT(bootMusicSettingsChanged())); + } + bool status = g_settings_get_boolean(m_pSoundSettings, EVENT_SOUNDS_KEY); + m_pSoundWidget->m_pAlertSoundSwitchButton->setChecked(status); + if(m_pSoundWidget->m_pAlertSoundSwitchButton->isChecked()) + { + m_pSoundWidget->m_pAlertSoundWidget->show(); + m_pSoundWidget->m_pVolumeChangeWidget->show(); + m_pSoundWidget->m_pThemeWidget->show(); + m_pSoundWidget->line1->show(); + m_pSoundWidget->line2->show(); + m_pSoundWidget->line3->show(); + } + else { + m_pSoundWidget->m_pAlertSoundWidget->hide(); + m_pSoundWidget->m_pVolumeChangeWidget->hide(); + m_pSoundWidget->m_pThemeWidget->hide(); + m_pSoundWidget->line1->hide(); + m_pSoundWidget->line2->hide(); + m_pSoundWidget->line3->hide(); + } +} + +/* + * 处理槽函数 + */ +void UkmediaMainWidget::dealSlot() +{ + QTimer::singleShot(200, this, SLOT(initVoulmeSlider())); + connect(m_pInputWidget->m_pInputIconBtn,SIGNAL(clicked()),this,SLOT(inputMuteButtonSlot())); + connect(m_pOutputWidget->m_pOutputIconBtn,SIGNAL(clicked()),this,SLOT(outputMuteButtonSlot())); + connect(m_pSoundWidget->m_pStartupButton,SIGNAL(checkedChanged(bool)),this,SLOT(startupButtonSwitchChangedSlot(bool))); + connect(m_pSoundWidget->m_pPoweroffButton,SIGNAL(checkedChanged(bool)),this,SLOT(poweroffButtonSwitchChangedSlot(bool))); + connect(m_pSoundWidget->m_pLogoutButton,SIGNAL(checkedChanged(bool)),this,SLOT(logoutMusicButtonSwitchChangedSlot(bool))); + connect(m_pSoundWidget->m_pWakeupMusicButton,SIGNAL(checkedChanged(bool)),this,SLOT(wakeButtonSwitchChangedSlot(bool))); + connect(m_pSoundWidget->m_pAlertSoundSwitchButton,SIGNAL(checkedChanged(bool)),this,SLOT(alertSoundButtonSwitchChangedSlot(bool))); + //输出音量控制 + //输出滑动条音量控制 + timeSlider = new QTimer(this); + connect(timeSlider,SIGNAL(timeout()),this,SLOT(timeSliderSlot())); + //输出滑动条改变 + connect(m_pOutputWidget->m_pOpVolumeSlider,SIGNAL(valueChanged(int)),this,SLOT(outputWidgetSliderChangedSlot(int))); +// connect(m_pOutputWidget->m_pOpVolumeSlider,&AudioSlider::silderPressSignal,this,[=](){ +// mousePress = true; +// mouseReleaseState = false; +// }); +// connect(m_pOutputWidget->m_pOpVolumeSlider,&AudioSlider::silderReleaseSignal,this,[=](){ +// mouseReleaseState = true; +// }); + //输入滑动条音量控制 + connect(m_pInputWidget->m_pIpVolumeSlider,SIGNAL(valueChanged(int)),this,SLOT(inputWidgetSliderChangedSlot(int))); + //输入等级 + connect(m_pVolumeControl,SIGNAL(peakChangedSignal(double)),this,SLOT(peakVolumeChangedSlot(double))); + + connect(m_pVolumeControl,SIGNAL(updatePortSignal()),this,SLOT(updateCboxDevicePort()));//测试Combobox!!!!!!!!!!! + + connect(m_pVolumeControl,SIGNAL(deviceChangedSignal()),this,SLOT(updateComboboxListWidgetItemSlot())); + //切换输出设备或者音量改变时需要同步更新音量 + connect(m_pVolumeControl,&UkmediaVolumeControl::updateVolume,this,[=](int value,bool state){ + qDebug() << "Sink Volume Changed" << value << paVolumeToValue(value) << state; + QString percent = QString::number(paVolumeToValue(value)); + float balanceVolume = m_pVolumeControl->getBalanceVolume(); + + m_pOutputWidget->m_pOpVolumePercentLabel->setText(percent+"%"); + m_pOutputWidget->m_pOpVolumeSlider->blockSignals(true); + m_pOutputWidget->m_pOpBalanceSlider->blockSignals(true); + m_pOutputWidget->m_pOpBalanceSlider->setValue(balanceVolume*100); + m_pOutputWidget->m_pOpVolumeSlider->setValue(paVolumeToValue(value)); + + m_pOutputWidget->m_pOpVolumeSlider->blockSignals(false); + m_pOutputWidget->m_pOpBalanceSlider->blockSignals(false); + initOutputComboboxItem(); + themeChangeIcons(); + }); + connect(m_pVolumeControl,&UkmediaVolumeControl::updateSourceVolume,this,[=](int value,bool state){ + qDebug() << "Source Volume Changed" << value << paVolumeToValue(value) << state; + QString percent = QString::number(paVolumeToValue(value)); + + m_pInputWidget->m_pIpVolumePercentLabel->setText(percent+"%"); + + m_pInputWidget->m_pIpVolumeSlider->blockSignals(true); + m_pInputWidget->m_pIpVolumeSlider->setValue(paVolumeToValue(value)); + m_pInputWidget->m_pIpVolumeSlider->blockSignals(false); + + //当所有可用的输入设备全部移除,台式机才会出现该情况 + if(strstr(m_pVolumeControl->defaultSourceName,"monitor")) + m_pInputWidget->m_pInputLevelProgressBar->setValue(0); + + initInputComboboxItem(); + themeChangeIcons(); + }); + + connect(m_pOutputWidget->m_pOpBalanceSlider,SIGNAL(valueChanged(int)),this,SLOT(balanceSliderChangedSlot(int))); + //点击报警音量时播放报警声音 + connect(m_pSoundWidget->m_pAlertSoundCombobox,SIGNAL(currentIndexChanged(int)),this,SLOT(comboxIndexChangedSlot(int))); + connect(m_pSoundWidget->m_pLagoutCombobox ,SIGNAL(currentIndexChanged(int)),this,SLOT(comboxIndexChangedSlot(int))); + connect(m_pSoundWidget->m_pSoundThemeCombobox,SIGNAL(currentIndexChanged(int)),this,SLOT(themeComboxIndexChangedSlot(int))); + connect(m_pSoundWidget->m_pVolumeChangeCombobox,SIGNAL(currentIndexChanged (int)),this,SLOT(volumeChangedComboboxChangeSlot(int))); + + //输入输出Combobox槽函数的设置 + connect(m_pOutputWidget->m_pDeviceSelectBox,SIGNAL(currentIndexChanged(int)),this,SLOT(cboxoutputListWidgetCurrentRowChangedSlot(int))); + connect(m_pInputWidget->m_pInputDeviceSelectBox,SIGNAL(currentIndexChanged(int)),this,SLOT(cboxinputListWidgetCurrentRowChangedSlot(int))); +} + +/* + * 初始化滑动条的值 + */ +void UkmediaMainWidget::initVoulmeSlider() +{ + int sinkVolume = paVolumeToValue(m_pVolumeControl->getSinkVolume()); + int sourceVolume = paVolumeToValue(m_pVolumeControl->getSourceVolume()); + QString percent = QString::number(sinkVolume); + float balanceVolume = m_pVolumeControl->getBalanceVolume(); + qDebug() <<"initVolumeSlider" << "sourceVolume" << sourceVolume << "sinkVolume" << sinkVolume; + m_pOutputWidget->m_pOpVolumePercentLabel->setText(percent+"%"); + percent = QString::number(sourceVolume); + m_pInputWidget->m_pIpVolumePercentLabel->setText(percent+"%"); + m_pOutputWidget->m_pOpVolumeSlider->blockSignals(true); + m_pOutputWidget->m_pOpBalanceSlider->blockSignals(true); + m_pInputWidget->m_pIpVolumeSlider->blockSignals(true); + m_pOutputWidget->m_pOpBalanceSlider->setValue(balanceVolume*100); + m_pOutputWidget->m_pOpVolumeSlider->setValue(sinkVolume); + m_pInputWidget->m_pIpVolumeSlider->setValue(sourceVolume); + m_pOutputWidget->m_pOpVolumeSlider->blockSignals(false); + m_pOutputWidget->m_pOpBalanceSlider->blockSignals(false); + m_pInputWidget->m_pIpVolumeSlider->blockSignals(false); + initOutputComboboxItem(); + initInputComboboxItem(); + themeChangeIcons(); + +} + +void UkmediaMainWidget::themeChangeIcons() +{ + int nInputValue = paVolumeToValue(m_pVolumeControl->getSourceVolume()); + int nOutputValue = paVolumeToValue(m_pVolumeControl->getSinkVolume()); + bool inputStatus = m_pVolumeControl->getSourceMute(); + bool outputStatus = m_pVolumeControl->getSinkMute(); + + qDebug() << "themeChangeIcons" << nInputValue << inputStatus; + inputVolumeDarkThemeImage(nInputValue,inputStatus); + outputVolumeDarkThemeImage(nOutputValue,outputStatus); + m_pOutputWidget->m_pOutputIconBtn->repaint(); + m_pInputWidget->m_pInputIconBtn->repaint(); + +} + +/* + * 滑动条值转换成音量值 + */ +int UkmediaMainWidget::valueToPaVolume(int value) +{ + return value / UKMEDIA_VOLUME_NORMAL * PA_VOLUME_NORMAL; +} + +/* + * 音量值转换成滑动条值 + */ +int UkmediaMainWidget::paVolumeToValue(int value) +{ + return (value / PA_VOLUME_NORMAL * UKMEDIA_VOLUME_NORMAL) + 0.5; +} + + +QPixmap UkmediaMainWidget::drawDarkColoredPixmap(const QPixmap &source) +{ +// QColor currentcolor=HighLightEffect::getCurrentSymbolicColor(); + QColor gray(255,255,255); + QImage img = source.toImage(); + for (int x = 0; x < img.width(); x++) { + for (int y = 0; y < img.height(); y++) { + auto color = img.pixelColor(x, y); + if (color.alpha() > 0) { + if (qAbs(color.red()-gray.red())<20 && qAbs(color.green()-gray.green())<20 && qAbs(color.blue()-gray.blue())<20) { + color.setRed(0); + color.setGreen(0); + color.setBlue(0); + img.setPixelColor(x, y, color); + } + else { + color.setRed(0); + color.setGreen(0); + color.setBlue(0); + img.setPixelColor(x, y, color); + } + } + } + } + return QPixmap::fromImage(img); +} + +QPixmap UkmediaMainWidget::drawLightColoredPixmap(const QPixmap &source) +{ +// QColor currentcolor=HighLightEffect::getCurrentSymbolicColor(); + QColor gray(255,255,255); + QColor standard (0,0,0); + QImage img = source.toImage(); + for (int x = 0; x < img.width(); x++) { + for (int y = 0; y < img.height(); y++) { + auto color = img.pixelColor(x, y); + if (color.alpha() > 0) { + if (qAbs(color.red()-gray.red())<20 && qAbs(color.green()-gray.green())<20 && qAbs(color.blue()-gray.blue())<20) { + color.setRed(255); + color.setGreen(255); + color.setBlue(255); + img.setPixelColor(x, y, color); + } + else { + color.setRed(255); + color.setGreen(255); + color.setBlue(255); + img.setPixelColor(x, y, color); + } + } + } + } + return QPixmap::fromImage(img); +} + +/* + * 初始化combobox的值 + */ +void UkmediaMainWidget::comboboxCurrentTextInit() +{ + QList existsPath = listExistsPath(); + + for (char * path : existsPath) { + + char * prepath = QString(KEYBINDINGS_CUSTOM_DIR).toLatin1().data(); + char * allpath = strcat(prepath, path); + + const QByteArray ba(KEYBINDINGS_CUSTOM_SCHEMA); + const QByteArray bba(allpath); + if(QGSettings::isSchemaInstalled(ba)) + { + QGSettings * settings = new QGSettings(ba, bba); + QString filenameStr = settings->get(FILENAME_KEY).toString(); + QString nameStr = settings->get(NAME_KEY).toString(); + int index = 0; + for (int i=0;icount();i++) { + QString str = m_pSoundList->at(i); + if (str.contains(filenameStr,Qt::CaseSensitive)) { + index = i; + break; + } + } + if (nameStr == "alert-sound") { + QString displayName = m_pSoundNameList->at(index); + m_pSoundWidget->m_pAlertSoundCombobox->setCurrentText(displayName); + continue; + } + if (nameStr == "window-close") { + QString displayName = m_pSoundNameList->at(index); + continue; + } + else if (nameStr == "volume-changed") { + QString displayName = m_pSoundNameList->at(index); + m_pSoundWidget->m_pVolumeChangeCombobox->setCurrentText(displayName); + continue; + } + else if (nameStr == "system-setting") { + QString displayName = m_pSoundNameList->at(index); + continue; + } + } + else { + continue; + } + } +} + +/* + * 是否播放开机音乐 + */ +void UkmediaMainWidget::startupButtonSwitchChangedSlot(bool status) +{ + bool bBootStatus = true; + if (m_pBootSetting->keys().contains("startupMusic")) { + bBootStatus = m_pBootSetting->get(UKUI_STARTUP_MUSIC_KEY).toBool(); + if (bBootStatus != status) { + m_pBootSetting->set(UKUI_STARTUP_MUSIC_KEY,status); + } + } +} + +/* + * 是否播放关机音乐 + */ +void UkmediaMainWidget::poweroffButtonSwitchChangedSlot(bool status) +{ + bool bBootStatus = true; + if (m_pBootSetting->keys().contains("poweroffMusic")) { + bBootStatus = m_pBootSetting->get(UKUI_POWEROFF_MUSIC_KEY).toBool(); + if (bBootStatus != status) { + m_pBootSetting->set(UKUI_POWEROFF_MUSIC_KEY,status); + } + } +} + +/* + * 是否播放注销音乐 + */ +void UkmediaMainWidget::logoutMusicButtonSwitchChangedSlot(bool status) +{ + bool bBootStatus = true; + if (m_pBootSetting->keys().contains("logoutMusic")) { + bBootStatus = m_pBootSetting->get(UKUI_LOGOUT_MUSIC_KEY).toBool(); + if (bBootStatus != status) { + m_pBootSetting->set(UKUI_LOGOUT_MUSIC_KEY,status); + } + } +} + +/* + * 是否播放唤醒音乐 + */ +void UkmediaMainWidget::wakeButtonSwitchChangedSlot(bool status) +{ + bool bBootStatus = true; + if (m_pBootSetting->keys().contains("weakupMusic")) { + bBootStatus = m_pBootSetting->get(UKUI_WAKEUP_MUSIC_KEY).toBool(); + if (bBootStatus != status) { + m_pBootSetting->set(UKUI_WAKEUP_MUSIC_KEY,status); + } + } +} + +/* + * 提示音的开关 + */ +void UkmediaMainWidget::alertSoundButtonSwitchChangedSlot(bool status) +{ + g_settings_set_boolean (m_pSoundSettings, EVENT_SOUNDS_KEY, status); + + if (status == true) { + m_pSoundWidget->m_pAlertSoundWidget->show(); + m_pSoundWidget->m_pVolumeChangeWidget->show(); + m_pSoundWidget->m_pThemeWidget->show(); + m_pSoundWidget->line1->show(); + m_pSoundWidget->line2->show(); + m_pSoundWidget->line3->show(); + } + else { + m_pSoundWidget->m_pAlertSoundWidget->hide(); + m_pSoundWidget->m_pVolumeChangeWidget->hide(); + m_pSoundWidget->m_pThemeWidget->hide(); + m_pSoundWidget->line1->hide(); + m_pSoundWidget->line2->hide(); + m_pSoundWidget->line3->hide(); + } +} + +void UkmediaMainWidget::bootMusicSettingsChanged() +{ + bool bBootStatus = true; + bool status; + if (m_pBootSetting->keys().contains("startupMusic")) { + bBootStatus = m_pBootSetting->get(UKUI_STARTUP_MUSIC_KEY).toBool(); + if (status != bBootStatus ) { + m_pSoundWidget->m_pStartupButton->setChecked(bBootStatus); + } + } + if (m_pBootSetting->keys().contains("poweroffMusic")) { + bBootStatus = m_pBootSetting->get(UKUI_POWEROFF_MUSIC_KEY).toBool(); + if (status != bBootStatus ) { + m_pSoundWidget->m_pPoweroffButton->setChecked(bBootStatus); + } + } + if (m_pBootSetting->keys().contains("logoutMusic")) { + bBootStatus = m_pBootSetting->get(UKUI_LOGOUT_MUSIC_KEY).toBool(); + if (status != bBootStatus ) { + m_pSoundWidget->m_pLogoutButton->setChecked(bBootStatus); + } + } + if (m_pBootSetting->keys().contains("weakupMusic")) { + bBootStatus = m_pBootSetting->get(UKUI_WAKEUP_MUSIC_KEY).toBool(); + if (status != bBootStatus ) { + m_pSoundWidget->m_pWakeupMusicButton->setChecked(bBootStatus); + } + } +} + + +/* + * 系统主题更改 + */ +void UkmediaMainWidget::ukuiThemeChangedSlot(const QString &themeStr) +{ + if (m_pThemeSetting->keys().contains("styleName")) { + mThemeName = m_pThemeSetting->get(UKUI_THEME_NAME).toString(); + } + int nInputValue = getInputVolume(); + int nOutputValue = getOutputVolume(); + bool inputStatus = m_pVolumeControl->getSourceMute(); + bool outputStatus = m_pVolumeControl->getSinkMute(); + inputVolumeDarkThemeImage(nInputValue,inputStatus); + outputVolumeDarkThemeImage(nOutputValue,outputStatus); + m_pOutputWidget->m_pOutputIconBtn->repaint(); +// m_pSoundWidget->m_pAlertIconBtn->repaint(); + m_pInputWidget->m_pInputIconBtn->repaint(); +} + +/* + * 获取输入音量值 + */ +int UkmediaMainWidget::getInputVolume() +{ + return m_pInputWidget->m_pIpVolumeSlider->value(); +} + +/* + * 获取输出音量值 + */ +int UkmediaMainWidget::getOutputVolume() +{ + return m_pOutputWidget->m_pOpVolumeSlider->value(); +} + +/* + * 深色主题时输出音量图标 + */ +void UkmediaMainWidget::outputVolumeDarkThemeImage(int value,bool status) +{ + QImage image; + QColor color = QColor(0,0,0,216); + if (mThemeName == UKUI_THEME_WHITE || mThemeName == "ukui-default") { + color = QColor(0,0,0,216); + } + else if (mThemeName == UKUI_THEME_BLACK || mThemeName == "ukui-dark") { + color = QColor(255,255,255,216); + } + m_pOutputWidget->m_pOutputIconBtn->mColor = color; + if (status) { + image = QIcon::fromTheme("audio-volume-muted-symbolic").pixmap(24,24).toImage(); + } + else if (value <= 0) { + image = QIcon::fromTheme("audio-volume-muted-symbolic").pixmap(24,24).toImage(); + } + else if (value > 0 && value <= 33) { + image = QIcon::fromTheme("audio-volume-low-symbolic").pixmap(24,24).toImage(); + } + else if (value >33 && value <= 66) { + image = QIcon::fromTheme("audio-volume-medium-symbolic").pixmap(24,24).toImage(); + } + else { + image = QIcon::fromTheme("audio-volume-high-symbolic").pixmap(24,24).toImage(); + } + m_pOutputWidget->m_pOutputIconBtn->mImage = image; + +} + +/* + * 输入音量图标 + */ +void UkmediaMainWidget::inputVolumeDarkThemeImage(int value,bool status) +{ + QImage image; + QColor color = QColor(0,0,0,190); + if (mThemeName == UKUI_THEME_WHITE || mThemeName == "ukui-default") { + color = QColor(0,0,0,190); + } + else if (mThemeName == UKUI_THEME_BLACK || mThemeName == "ukui-dark") { + color = QColor(255,255,255,190); + } + m_pInputWidget->m_pInputIconBtn->mColor = color; + if (status) { + image = QIcon::fromTheme("microphone-sensitivity-muted-symbolic").pixmap(24,24).toImage(); + } + else if (value <= 0) { + image = QIcon::fromTheme("microphone-sensitivity-muted-symbolic").pixmap(24,24).toImage(); + } + else if (value > 0 && value <= 33) { + image = QIcon::fromTheme("microphone-sensitivity-low-symbolic").pixmap(24,24).toImage(); + } + else if (value >33 && value <= 66) { + image = QIcon::fromTheme("microphone-sensitivity-medium-symbolic").pixmap(24,24).toImage(); + } + else { + image = QIcon::fromTheme("microphone-sensitivity-high-symbolic").pixmap(24,24).toImage(); + } + m_pInputWidget->m_pInputIconBtn->mImage = image; +} + + +void UkmediaMainWidget::onKeyChanged (GSettings *settings,gchar *key,UkmediaMainWidget *m_pWidget) +{ + Q_UNUSED(settings); + g_debug("on key changed"); + if (!strcmp (key, EVENT_SOUNDS_KEY) || + !strcmp (key, SOUND_THEME_KEY) || + !strcmp (key, INPUT_SOUNDS_KEY)) { + updateTheme (m_pWidget); + } +} + +/* + * 更新主题 + */ +void UkmediaMainWidget::updateTheme (UkmediaMainWidget *m_pWidget) +{ + g_debug("update theme"); + char *pThemeName; + gboolean feedBackEnabled; + gboolean eventsEnabled; + feedBackEnabled = g_settings_get_boolean(m_pWidget->m_pSoundSettings, INPUT_SOUNDS_KEY); + eventsEnabled = g_settings_get_boolean(m_pWidget->m_pSoundSettings,EVENT_SOUNDS_KEY); +// eventsEnabled = FALSE; + if (eventsEnabled) { + pThemeName = g_settings_get_string (m_pWidget->m_pSoundSettings, SOUND_THEME_KEY); + } else { + pThemeName = g_strdup (NO_SOUNDS_THEME_NAME); + } + qDebug() << "updateTheme" << pThemeName; + //设置combox的主题 + setComboxForThemeName (m_pWidget, pThemeName); + updateAlertsFromThemeName (m_pWidget, pThemeName); +} + +/* + * 设置主题名到combox + */ +void UkmediaMainWidget::setupThemeSelector (UkmediaMainWidget *m_pWidget) +{ + g_debug("setup theme selector"); + GHashTable *hash; + const char * const *dataDirs; + const char *m_pDataDir; + char *dir; + guint i; + + /* Add the theme names and their display name to a hash table, + * makes it easy to avoid duplicate themes */ + hash = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free); + + dataDirs = g_get_system_data_dirs (); + for (i = 0; dataDirs[i] != nullptr; i++) { + dir = g_build_filename (dataDirs[i], "sounds", nullptr); + soundThemeInDir (m_pWidget,hash, dir); + } + + m_pDataDir = g_get_user_data_dir (); + dir = g_build_filename (m_pDataDir, "sounds", nullptr); + soundThemeInDir (m_pWidget,hash, dir); + + /* If there isn't at least one theme, make everything + * insensitive, LAME! */ + if (g_hash_table_size (hash) == 0) { + g_warning ("Bad setup, install the freedesktop sound theme"); + g_hash_table_destroy (hash); + return; + } + /* Add the themes to a combobox */ + g_hash_table_destroy (hash); +} + +/* + * 主题名所在目录 + */ +void UkmediaMainWidget::soundThemeInDir (UkmediaMainWidget *m_pWidget,GHashTable *hash,const char *dir) +{ + Q_UNUSED(hash); + qDebug() << "sound theme in dir" << dir; + GDir *d; + const char *m_pName; + d = g_dir_open (dir, 0, nullptr); + if (d == nullptr) { + return; + } + while ((m_pName = g_dir_read_name (d)) != nullptr) { + char *m_pDirName, *m_pIndex, *m_pIndexName; + /* Look for directories */ + m_pDirName = g_build_filename (dir, m_pName, nullptr); + if (g_file_test (m_pDirName, G_FILE_TEST_IS_DIR) == FALSE) { + continue; + } + + /* Look for index files */ + m_pIndex = g_build_filename (m_pDirName, "index.theme", nullptr); + + /* Check the name of the theme in the index.theme file */ + m_pIndexName = loadIndexThemeName (m_pIndex, nullptr); + if (m_pIndexName == nullptr) { + continue; + } + + gchar * themeName = g_settings_get_string (m_pWidget->m_pSoundSettings, SOUND_THEME_KEY); + //设置主题到combox中 + qDebug() << "sound theme in dir" << "displayname:" << m_pIndexName << "theme name:" << m_pName << "theme:"<< themeName; + //屏蔽ubuntu custom 主题 + if (m_pName && !strstr(m_pName,"ubuntu") && !strstr(m_pName,"freedesktop") && !strstr(m_pName,"custom")) { + m_pWidget->m_pThemeDisplayNameList->append(m_pIndexName); + m_pWidget->m_pThemeNameList->append(m_pName); + m_pWidget->m_pSoundWidget->m_pSoundThemeCombobox->addItem(m_pIndexName); + + } + } + g_dir_close (d); +} + +/* + * 加载下标的主题名 + */ +char *UkmediaMainWidget::loadIndexThemeName (const char *index,char **parent) +{ + g_debug("load index theme name"); + GKeyFile *file; + char *indexname = nullptr; + gboolean hidden; + + file = g_key_file_new (); + if (g_key_file_load_from_file (file, index, G_KEY_FILE_KEEP_TRANSLATIONS, nullptr) == FALSE) { + g_key_file_free (file); + return nullptr; + } + /* Don't add hidden themes to the list */ + hidden = g_key_file_get_boolean (file, "Sound Theme", "Hidden", nullptr); + if (!hidden) { + indexname = g_key_file_get_locale_string (file,"Sound Theme","Name",nullptr,nullptr); + /* Save the parent theme, if there's one */ + if (parent != nullptr) { + *parent = g_key_file_get_string (file,"Sound Theme","Inherits",nullptr); + } + } + g_key_file_free (file); + return indexname; +} + +/* + * 设置combox的主题名 + */ +void UkmediaMainWidget::setComboxForThemeName (UkmediaMainWidget *m_pWidget,const char *name) +{ + g_debug("set combox for theme name"); + gboolean found; + int count = 0; + /* If the name is empty, use "freedesktop" */ + if (name == nullptr || *name == '\0') { + name = "freedesktop"; + } + QString value; + int index = -1; + while(!found) { + value = m_pWidget->m_pThemeNameList->at(count); + found = (value != "" && value == name); + count++; + if( count >= m_pWidget->m_pThemeNameList->size() || found) { + count = 0; + break; + } + } + if (m_pWidget->m_pThemeNameList->contains(name)) { + index = m_pWidget->m_pThemeNameList->indexOf(name); + value = m_pWidget->m_pThemeNameList->at(index); + m_pWidget->m_pSoundWidget->m_pSoundThemeCombobox->setCurrentIndex(index); + } + /* When we can't find the theme we need to set, try to set the default + * one "freedesktop" */ + if (found) { + } else if (strcmp (name, "freedesktop") != 0) {//设置为默认的主题 + qDebug() << "设置为默认的主题" << "freedesktop"; + g_debug ("not found, falling back to fdo"); + setComboxForThemeName (m_pWidget, "freedesktop"); + } +} + +/* + * 更新报警音 + */ +void UkmediaMainWidget::updateAlertsFromThemeName (UkmediaMainWidget *m_pWidget,const gchar *m_pName) +{ + g_debug("update alerts from theme name"); + if (strcmp (m_pName, CUSTOM_THEME_NAME) != 0) { + /* reset alert to default */ + updateAlert (m_pWidget, DEFAULT_ALERT_ID); + } else { + int sound_type; + char *linkname; + linkname = nullptr; + sound_type = getFileType ("bell-terminal", &linkname); + g_debug ("Found link: %s", linkname); + if (sound_type == SOUND_TYPE_CUSTOM) { + updateAlert (m_pWidget, linkname); + } + } +} + +/* + 更新报警声音 +*/ +void UkmediaMainWidget::updateAlert (UkmediaMainWidget *pWidget,const char *alertId) +{ + Q_UNUSED(alertId) + g_debug("update alert"); + QString themeStr; + char *theme; + char *parent; + gboolean is_custom; + gboolean is_default; + gboolean add_custom = false; + gboolean remove_custom = false; + QString nameStr; + int index = -1; + /* Get the current theme's name, and set the parent */ + index = pWidget->m_pSoundWidget->m_pSoundThemeCombobox->currentIndex(); + if (index != -1) { + themeStr = pWidget->m_pThemeNameList->at(index); + nameStr = pWidget->m_pThemeNameList->at(index); + } + else { + themeStr = "freedesktop"; + nameStr = "freedesktop"; + } + QByteArray ba = themeStr.toLatin1(); + theme = ba.data(); + + QByteArray baParent = nameStr.toLatin1(); + parent = baParent.data(); + + is_custom = strcmp (theme, CUSTOM_THEME_NAME) == 0; + is_default = strcmp (alertId, DEFAULT_ALERT_ID) == 0; + + if (! is_custom && is_default) { + /* remove custom just in case */ + remove_custom = TRUE; + } else if (! is_custom && ! is_default) { + createCustomTheme (parent); + saveAlertSounds(pWidget->m_pSoundWidget->m_pSoundThemeCombobox, alertId); + add_custom = TRUE; + } else if (is_custom && is_default) { + saveAlertSounds(pWidget->m_pSoundWidget->m_pSoundThemeCombobox, alertId); + /* after removing files check if it is empty */ + if (customThemeDirIsEmpty ()) { + remove_custom = TRUE; + } + } else if (is_custom && ! is_default) { + saveAlertSounds(pWidget->m_pSoundWidget->m_pSoundThemeCombobox, alertId); + } + + if (add_custom) { + setComboxForThemeName (pWidget, CUSTOM_THEME_NAME); + } else if (remove_custom) { + setComboxForThemeName (pWidget, parent); + } +} + +/* + 获取声音文件类型 +*/ +int UkmediaMainWidget::getFileType (const char *sound_name,char **linked_name) +{ + g_debug("get file type"); + char *name, *filename; + *linked_name = nullptr; + name = g_strdup_printf ("%s.disabled", sound_name); + filename = customThemeDirPath (name); + if (g_file_test (filename, G_FILE_TEST_IS_REGULAR) != FALSE) { + return SOUND_TYPE_OFF; + } + /* We only check for .ogg files because those are the + * only ones we create */ + name = g_strdup_printf ("%s.ogg", sound_name); + filename = customThemeDirPath (name); + g_free (name); + + if (g_file_test (filename, G_FILE_TEST_IS_SYMLINK) != FALSE) { + *linked_name = g_file_read_link (filename, nullptr); + g_free (filename); + return SOUND_TYPE_CUSTOM; + } + g_free (filename); + return SOUND_TYPE_BUILTIN; +} + +/* + 自定义主题路径 +*/ +char *UkmediaMainWidget::customThemeDirPath (const char *child) +{ + g_debug("custom theme dir path"); + static char *dir = nullptr; + const char *data_dir; + + if (dir == nullptr) { + data_dir = g_get_user_data_dir (); + dir = g_build_filename (data_dir, "sounds", CUSTOM_THEME_NAME, nullptr); + } + if (child == nullptr) + return g_strdup (dir); + + return g_build_filename (dir, child, nullptr); +} + +/* + 获取报警声音文件的路径 +*/ +void UkmediaMainWidget::populateModelFromDir (UkmediaMainWidget *m_pWidget,const char *dirname)//从目录查找报警声音文件 +{ + g_debug("populate model from dir"); + GDir *d; + const char *name; + char *path; + d = g_dir_open (dirname, 0, nullptr); + if (d == nullptr) { + return; + } + while ((name = g_dir_read_name (d)) != nullptr) { + + if (! g_str_has_suffix (name, ".xml")) { + continue; + } + QString themeName = name; + QStringList temp = themeName.split("-"); + themeName = temp.at(0); + if (!m_pWidget->m_pSoundThemeList->contains(themeName)) { + m_pWidget->m_pSoundThemeList->append(themeName); + m_pWidget->m_pSoundThemeDirList->append(dirname); + m_pWidget->m_pSoundThemeXmlNameList->append(name); + } + path = g_build_filename (dirname, name, nullptr); + } + char *pThemeName = g_settings_get_string (m_pWidget->m_pSoundSettings, SOUND_THEME_KEY); + int themeIndex; + if(m_pWidget->m_pSoundThemeList->contains(pThemeName)) { + themeIndex = m_pWidget->m_pSoundThemeList->indexOf(pThemeName); + if (themeIndex < 0 ) + return; + + } + else { + themeIndex = 1; + } + + QString dirName = m_pWidget->m_pSoundThemeDirList->at(themeIndex); + QString xmlName = m_pWidget->m_pSoundThemeXmlNameList->at(themeIndex); + path = g_build_filename (dirName.toLatin1().data(), xmlName.toLatin1().data(), nullptr); + m_pWidget->m_pSoundWidget->m_pAlertSoundCombobox->blockSignals(true); + m_pWidget->m_pSoundWidget->m_pAlertSoundCombobox->clear(); + m_pWidget->m_pSoundWidget->m_pAlertSoundCombobox->blockSignals(false); + + populateModelFromFile (m_pWidget, path); + //初始化声音主题 + + g_free (path); + g_dir_close (d); +} + +/* + 获取报警声音文件 +*/ +void UkmediaMainWidget::populateModelFromFile (UkmediaMainWidget *m_pWidget,const char *filename) +{ + g_debug("populate model from file"); + xmlDocPtr doc; + xmlNodePtr root; + xmlNodePtr child; + gboolean exists; + + exists = g_file_test (filename, G_FILE_TEST_EXISTS); + if (! exists) { + return; + } + doc = xmlParseFile (filename); + if (doc == nullptr) { + return; + } + root = xmlDocGetRootElement (doc); + for (child = root->children; child; child = child->next) { + if (xmlNodeIsText (child)) { + continue; + } + if (xmlStrcmp (child->name, GVC_SOUND_SOUND) != 0) { + continue; + } + populateModelFromNode (m_pWidget, child); + } + xmlFreeDoc (doc); +} + +/* + 从节点查找声音文件并加载到组合框中 +*/ +void UkmediaMainWidget::populateModelFromNode (UkmediaMainWidget *m_pWidget,xmlNodePtr node) +{ + g_debug("populate model from node"); + xmlNodePtr child; + xmlChar *filename; + xmlChar *name; + + filename = nullptr; + name = xmlGetAndTrimNames (node); + for (child = node->children; child; child = child->next) { + if (xmlNodeIsText (child)) { + continue; + } + + if (xmlStrcmp (child->name, GVC_SOUND_FILENAME) == 0) { + filename = xmlNodeGetContent (child); + } else if (xmlStrcmp (child->name, GVC_SOUND_NAME) == 0) { + /* EH? should have been trimmed */ + } + } + + gchar * themeName = g_settings_get_string (m_pWidget->m_pSoundSettings, SOUND_THEME_KEY); + + //将找到的声音文件名设置到combox中 + if (filename != nullptr && name != nullptr) { + m_pWidget->m_pSoundList->append((const char *)filename); + m_pWidget->m_pSoundNameList->append((const char *)name); + m_pWidget->m_pSoundWidget->m_pAlertSoundCombobox->addItem((char *)name); + m_pWidget->m_pSoundWidget->m_pLagoutCombobox->addItem((char *)name); + m_pWidget->m_pSoundWidget->m_pVolumeChangeCombobox->addItem((char *)name); + } + xmlFree (filename); + xmlFree (name); +} + +/* Adapted from yelp-toc-pager.c */ +xmlChar *UkmediaMainWidget::xmlGetAndTrimNames (xmlNodePtr node) +{ + g_debug("xml get and trim names"); + xmlNodePtr cur; + xmlChar *keep_lang = nullptr; + xmlChar *value; + int j, keep_pri = INT_MAX; + const gchar * const * langs = g_get_language_names (); + + value = nullptr; + for (cur = node->children; cur; cur = cur->next) { + if (! xmlStrcmp (cur->name, GVC_SOUND_NAME)) { + xmlChar *cur_lang = nullptr; + int cur_pri = INT_MAX; + cur_lang = xmlNodeGetLang (cur); + + if (cur_lang) { + for (j = 0; langs[j]; j++) { + if (g_str_equal (cur_lang, langs[j])) { + cur_pri = j; + break; + } + } + } else { + cur_pri = INT_MAX - 1; + } + + if (cur_pri <= keep_pri) { + if (keep_lang) + xmlFree (keep_lang); + if (value) + xmlFree (value); + + value = xmlNodeGetContent (cur); + + keep_lang = cur_lang; + keep_pri = cur_pri; + } else { + if (cur_lang) + xmlFree (cur_lang); + } + } + } + + /* Delete all GVC_SOUND_NAME nodes */ + cur = node->children; + while (cur) { + xmlNodePtr p_this = cur; + cur = cur->next; + if (! xmlStrcmp (p_this->name, GVC_SOUND_NAME)) { + xmlUnlinkNode (p_this); + xmlFreeNode (p_this); + } + } + return value; +} + +/* + * 播放报警声音 +*/ +void UkmediaMainWidget::playAlretSoundFromPath (UkmediaMainWidget *w,QString path) +{ + g_debug("play alert sound from path"); + + gchar * themeName = g_settings_get_string (w->m_pSoundSettings, SOUND_THEME_KEY); + + if (strcmp (path.toLatin1().data(), DEFAULT_ALERT_ID) == 0) { + if (themeName != NULL) { + caPlayForWidget (w, 0, + CA_PROP_APPLICATION_NAME, _("Sound Preferences"), + CA_PROP_EVENT_ID, "bell-window-system", + CA_PROP_CANBERRA_XDG_THEME_NAME, themeName, + CA_PROP_EVENT_DESCRIPTION, _("Testing event sound"), + CA_PROP_CANBERRA_CACHE_CONTROL, "never", + CA_PROP_APPLICATION_ID, "org.mate.VolumeControl", + #ifdef CA_PROP_CANBERRA_ENABLE + CA_PROP_CANBERRA_ENABLE, "1", + #endif + NULL); + } else { + caPlayForWidget (w, 0, + CA_PROP_APPLICATION_NAME, _("Sound Preferences"), + CA_PROP_EVENT_ID, "bell-window-system", + CA_PROP_EVENT_DESCRIPTION, _("Testing event sound"), + CA_PROP_CANBERRA_CACHE_CONTROL, "never", + CA_PROP_APPLICATION_ID, "org.mate.VolumeControl", + #ifdef CA_PROP_CANBERRA_ENABLE + CA_PROP_CANBERRA_ENABLE, "1", + #endif + NULL); + } + } else { + caPlayForWidget (w, 0, + CA_PROP_APPLICATION_NAME, _("Sound Preferences"), + CA_PROP_MEDIA_FILENAME, path.toLatin1().data(), + CA_PROP_EVENT_DESCRIPTION, _("Testing event sound"), + CA_PROP_CANBERRA_CACHE_CONTROL, "never", + CA_PROP_APPLICATION_ID, "org.mate.VolumeControl", + #ifdef CA_PROP_CANBERRA_ENABLE + CA_PROP_CANBERRA_ENABLE, "1", + #endif + NULL); + } +} + +/* + 点击combox播放声音 +*/ +void UkmediaMainWidget::comboxIndexChangedSlot(int index) +{ + g_debug("combox index changed slot"); + QString sound_name = m_pSoundList->at(index); + updateAlert(this,sound_name.toLatin1().data()); + playAlretSoundFromPath(this,sound_name); + + QString fileName = m_pSoundList->at(index); + QStringList list = fileName.split("/"); + QString soundName = list.at(list.count()-1); + QStringList eventIdList = soundName.split("."); + QString eventId = eventIdList.at(0); + QList existsPath = listExistsPath(); + + for (char * path : existsPath) { + + char * prepath = QString(KEYBINDINGS_CUSTOM_DIR).toLatin1().data(); + char * allpath = strcat(prepath, path); + + const QByteArray ba(KEYBINDINGS_CUSTOM_SCHEMA); + const QByteArray bba(allpath); + if(QGSettings::isSchemaInstalled(ba)) + { + QGSettings * settings = new QGSettings(ba, bba); +// QString filenameStr = settings->get(FILENAME_KEY).toString(); + QString nameStr = settings->get(NAME_KEY).toString(); + if (nameStr == "alert-sound") { + settings->set(FILENAME_KEY,eventId); + return; + } + } + else { + continue; + } + } + +} + +/* + 设置窗口关闭的提示音 +*/ +void UkmediaMainWidget::windowClosedComboboxChangedSlot(int index) +{ + QString fileName = m_pSoundList->at(index); + QStringList list = fileName.split("/"); + QString soundName = list.at(list.count()-1); + QStringList eventIdList = soundName.split("."); + QString eventId = eventIdList.at(0); + QList existsPath = listExistsPath(); + + for (char * path : existsPath) { + + char * prepath = QString(KEYBINDINGS_CUSTOM_DIR).toLatin1().data(); + char * allpath = strcat(prepath, path); + + const QByteArray ba(KEYBINDINGS_CUSTOM_SCHEMA); + const QByteArray bba(allpath); + if(QGSettings::isSchemaInstalled(ba)) + { + QGSettings * settings = new QGSettings(ba, bba); +// QString filenameStr = settings->get(FILENAME_KEY).toString(); + QString nameStr = settings->get(NAME_KEY).toString(); + if (nameStr == "window-close") { + settings->set(FILENAME_KEY,eventId); + return; + } + } + else { + continue; + } + } +} + +/* + 设置音量改变的提示声音 +*/ +void UkmediaMainWidget::volumeChangedComboboxChangeSlot(int index) +{ + QString sound_name = m_pSoundList->at(index); +// updateAlert(this,sound_name.toLatin1().data()); + playAlretSoundFromPath(this,sound_name); + + QString fileName = m_pSoundList->at(index); + QStringList list = fileName.split("/"); + QString soundName = list.at(list.count()-1); + QStringList eventIdList = soundName.split("."); + QString eventId = eventIdList.at(0); + QList existsPath = listExistsPath(); + for (char * path : existsPath) { + + char * prepath = QString(KEYBINDINGS_CUSTOM_DIR).toLatin1().data(); + char * allpath = strcat(prepath, path); + const QByteArray ba(KEYBINDINGS_CUSTOM_SCHEMA); + const QByteArray bba(allpath); + if(QGSettings::isSchemaInstalled(ba)) + { + QGSettings * settings = new QGSettings(ba, bba); +// QString filenameStr = settings->get(FILENAME_KEY).toString(); + QString nameStr = settings->get(NAME_KEY).toString(); + if (nameStr == "volume-changed") { + settings->set(FILENAME_KEY,eventId); + return; + } + } + else { + continue; + } + } +} + +void UkmediaMainWidget::settingMenuComboboxChangedSlot(int index) +{ + QString fileName = m_pSoundList->at(index); + QStringList list = fileName.split("/"); + QString soundName = list.at(list.count()-1); + QStringList eventIdList = soundName.split("."); + QString eventId = eventIdList.at(0); + QList existsPath = listExistsPath(); + for (char * path : existsPath) { + + char * prepath = QString(KEYBINDINGS_CUSTOM_DIR).toLatin1().data(); + char * allpath = strcat(prepath, path); + const QByteArray ba(KEYBINDINGS_CUSTOM_SCHEMA); + const QByteArray bba(allpath); + if(QGSettings::isSchemaInstalled(ba)) + { + QGSettings * settings = new QGSettings(ba, bba); + QString nameStr = settings->get(NAME_KEY).toString(); + if (nameStr == "system-setting") { + settings->set(FILENAME_KEY,eventId); + return; + } + } + else { + continue; + } + } +} + +/* + 点击输入音量按钮静音 +*/ +void UkmediaMainWidget::inputMuteButtonSlot() +{ + m_pVolumeControl->setSourceMute(!m_pVolumeControl->sourceMuted); + inputVolumeDarkThemeImage(paVolumeToValue(m_pVolumeControl->sourceVolume),!m_pVolumeControl->sourceMuted); + m_pOutputWidget->m_pOutputIconBtn->repaint(); +} + +/* + 点击输出音量按钮静音 +*/ +void UkmediaMainWidget::outputMuteButtonSlot() +{ + m_pVolumeControl->setSinkMute(!m_pVolumeControl->sinkMuted); + outputVolumeDarkThemeImage(paVolumeToValue(m_pVolumeControl->sinkVolume),!m_pVolumeControl->sinkMuted); + m_pOutputWidget->m_pOutputIconBtn->repaint(); +} + + +/* + 点击声音主题实现主题切换 +*/ +void UkmediaMainWidget::themeComboxIndexChangedSlot(int index) +{ + Q_UNUSED(index); + g_debug("theme combox index changed slot"); + if (index == -1) { + return; + } + //设置系统主题 + QString theme = m_pThemeNameList->at(index); + QByteArray ba = theme.toLatin1(); + const char *m_pThemeName = ba.data(); + + if (strcmp(m_pThemeName,"freedesktop") == 0) { + int index = 0; + for (int i=0;icount();i++) { + QString str = m_pSoundList->at(i); + if (str.contains("gudou",Qt::CaseSensitive)) { + index = i; + break; + } + } + + QString displayName = m_pSoundNameList->at(index); + m_pSoundWidget->m_pAlertSoundCombobox->setCurrentText(displayName); + } + + QString dirName = m_pSoundThemeDirList->at(index); + int themeIndex = m_pSoundThemeList->indexOf(m_pThemeName); + if (themeIndex < 0 ) + return; + qDebug() << "index changed:" << m_pSoundThemeXmlNameList->at(themeIndex) << m_pThemeNameList->at(index) << m_pThemeName << dirName.toLatin1().data() ;//<< path; + QString xmlName = m_pSoundThemeXmlNameList->at(themeIndex); + const gchar *path = g_build_filename (dirName.toLatin1().data(), xmlName.toLatin1().data(), nullptr); + m_pSoundList->clear(); + m_pSoundNameList->clear(); + m_pSoundWidget->m_pAlertSoundCombobox->blockSignals(true); + m_pSoundWidget->m_pLagoutCombobox->blockSignals(true); + m_pSoundWidget->m_pVolumeChangeCombobox->blockSignals(true); + m_pSoundWidget->m_pAlertSoundCombobox->clear(); + m_pSoundWidget->m_pLagoutCombobox->clear(); + m_pSoundWidget->m_pVolumeChangeCombobox->clear(); + m_pSoundWidget->m_pAlertSoundCombobox->blockSignals(false); + m_pSoundWidget->m_pLagoutCombobox->blockSignals(false); + m_pSoundWidget->m_pVolumeChangeCombobox->blockSignals(false); + populateModelFromFile (this, path); + + /* special case for no sounds */ + if (strcmp (m_pThemeName, NO_SOUNDS_THEME_NAME) == 0) { + //设置提示音关闭 + g_settings_set_boolean (m_pSoundSettings, EVENT_SOUNDS_KEY, FALSE); + return; + } else { + g_settings_set_boolean (m_pSoundSettings, EVENT_SOUNDS_KEY, TRUE); + } + +} + +/* + 滚动输出音量滑动条 +*/ +void UkmediaMainWidget::outputWidgetSliderChangedSlot(int value) +{ + int volume = valueToPaVolume(value); + m_pVolumeControl->getDefaultSinkIndex(); + m_pVolumeControl->setSinkVolume(m_pVolumeControl->sinkIndex,volume); + qDebug() << "outputWidgetSliderChangedSlot" << value <m_pOpVolumePercentLabel->setText(percent); + m_pOutputWidget->m_pOutputIconBtn->repaint(); + +} + +void UkmediaMainWidget::timeSliderSlot() +{ + if(mouseReleaseState){ + int value = m_pOutputWidget->m_pOpVolumeSlider->value(); + + QString percent; + bool status = false; + percent = QString::number(value); + int volume = value*65536/100; + if (value <= 0) { + status = true; + + percent = QString::number(0); + } + else { + if (firstEnterSystem) { + + } + else { + + } + } + firstEnterSystem = false; + outputVolumeDarkThemeImage(value,status); + percent.append("%"); + m_pOutputWidget->m_pOpVolumePercentLabel->setText(percent); + m_pOutputWidget->m_pOutputIconBtn->repaint(); + + mouseReleaseState = false; + mousePress = false; + timeSlider->stop(); + } + else{ + timeSlider->start(50); + } +} + +/* + 滚动输入滑动条 +*/ +void UkmediaMainWidget::inputWidgetSliderChangedSlot(int value) +{ + int volume = valueToPaVolume(value); + m_pVolumeControl->getDefaultSinkIndex(); + m_pVolumeControl->setSourceVolume(m_pVolumeControl->sourceIndex,volume); + qDebug() << "inputWidgetSliderChangedSlot" << value <sourceMuted); + m_pInputWidget->m_pInputIconBtn->repaint(); + QString percent = QString::number(value); + percent.append("%"); + m_pInputWidget->m_pInputIconBtn->repaint(); + m_pInputWidget->m_pIpVolumePercentLabel->setText(percent); +} + +/* + * 平衡值改变 + */ +void UkmediaMainWidget::balanceSliderChangedSlot(int value) +{ + gdouble volume = value/100.0; + value = valueToPaVolume(m_pOutputWidget->m_pOpVolumeSlider->value()); + m_pVolumeControl->setBalanceVolume(m_pVolumeControl->sinkIndex,value,volume); + qDebug() << "balanceSliderChangedSlot" <= 0) { + m_pInputWidget->m_pInputLevelProgressBar->setEnabled(true); + //因为有些电脑MIC增益太大会引起反馈条消失先暂时固定最大值为101 + //int value = qRound(v * m_pInputWidget->m_pInputLevelProgressBar->maximum()); + int value = qRound(v * 100); + m_pInputWidget->m_pInputLevelProgressBar->setValue(value); + } else { + m_pInputWidget->m_pInputLevelProgressBar->setEnabled(false); + m_pInputWidget->m_pInputLevelProgressBar->setValue(0); + } +} + +gboolean UkmediaMainWidget::saveAlertSounds (QComboBox *combox,const char *id) +{ + const char *sounds[3] = { "bell-terminal", "bell-window-system", NULL }; + char *path; + + if (strcmp (id, DEFAULT_ALERT_ID) == 0) { + deleteOldFiles (sounds); + deleteDisabledFiles (sounds); + } else { + deleteOldFiles (sounds); + deleteDisabledFiles (sounds); + addCustomFile (sounds, id); + } + + /* And poke the directory so the theme gets updated */ + path = customThemeDirPath(NULL); + if (utime (path, NULL) != 0) { + g_warning ("Failed to update mtime for directory '%s': %s", + path, g_strerror (errno)); + } + g_free (path); + + return FALSE; +} + +void UkmediaMainWidget::deleteOldFiles (const char **sounds) +{ + guint i; + for (i = 0; sounds[i] != NULL; i++) { + deleteOneFile (sounds[i], "%s.ogg"); + } +} + +void UkmediaMainWidget::deleteOneFile (const char *sound_name, const char *pattern) +{ + GFile *file; + char *name, *filename; + + name = g_strdup_printf (pattern, sound_name); + filename = customThemeDirPath(name); + g_free (name); + file = g_file_new_for_path (filename); + g_free (filename); + cappletFileDeleteRecursive (file, NULL); + g_object_unref (file); +} + +void UkmediaMainWidget::deleteDisabledFiles (const char **sounds) +{ + guint i; + for (i = 0; sounds[i] != NULL; i++) { + deleteOneFile (sounds[i], "%s.disabled"); + } +} + +void UkmediaMainWidget::addCustomFile (const char **sounds, const char *filename) +{ + guint i; + + for (i = 0; sounds[i] != NULL; i++) { + GFile *file; + char *name, *path; + + /* We use *.ogg because it's the first type of file that + * libcanberra looks at */ + name = g_strdup_printf ("%s.ogg", sounds[i]); + path = customThemeDirPath(name); + g_free (name); + /* In case there's already a link there, delete it */ + g_unlink (path); + file = g_file_new_for_path (path); + g_free (path); + + /* Create the link */ + g_file_make_symbolic_link (file, filename, NULL, NULL); + g_object_unref (file); + } +} + +/** + * A utility routine to delete files and/or directories, + * including non-empty directories. + **/ +gboolean UkmediaMainWidget::cappletFileDeleteRecursive (GFile *file, GError **error) +{ + GFileInfo *info; + GFileType type; + + g_return_val_if_fail (error == NULL || *error == NULL, FALSE); + + info = g_file_query_info (file, + G_FILE_ATTRIBUTE_STANDARD_TYPE, + G_FILE_QUERY_INFO_NONE, + NULL, error); + if (info == NULL) { + return FALSE; + } + + type = g_file_info_get_file_type (info); + g_object_unref (info); + + if (type == G_FILE_TYPE_DIRECTORY) { + return directoryDeleteRecursive (file, error); + } + else { + return g_file_delete (file, NULL, error); + } +} + +gboolean UkmediaMainWidget::directoryDeleteRecursive (GFile *directory, GError **error) +{ + GFileEnumerator *enumerator; + GFileInfo *info; + gboolean success = TRUE; + + enumerator = g_file_enumerate_children (directory, + G_FILE_ATTRIBUTE_STANDARD_NAME "," + G_FILE_ATTRIBUTE_STANDARD_TYPE, + G_FILE_QUERY_INFO_NONE, + NULL, error); + if (enumerator == NULL) + return FALSE; + + while (success && + (info = g_file_enumerator_next_file (enumerator, NULL, NULL))) { + GFile *child; + + child = g_file_get_child (directory, g_file_info_get_name (info)); + + if (g_file_info_get_file_type (info) == G_FILE_TYPE_DIRECTORY) { + success = directoryDeleteRecursive (child, error); + } + g_object_unref (info); + + if (success) + success = g_file_delete (child, NULL, error); + } + g_file_enumerator_close (enumerator, NULL, NULL); + + if (success) + success = g_file_delete (directory, NULL, error); + + return success; +} + +void UkmediaMainWidget::createCustomTheme (const char *parent) +{ + GKeyFile *keyfile; + char *data; + char *path; + + /* Create the custom directory */ + path = customThemeDirPath(NULL); + g_mkdir_with_parents (path, 0755); + g_free (path); + + /* Set the data for index.theme */ + keyfile = g_key_file_new (); + g_key_file_set_string (keyfile, "Sound Theme", "Name", _("Custom")); + g_key_file_set_string (keyfile, "Sound Theme", "Inherits", parent); + g_key_file_set_string (keyfile, "Sound Theme", "Directories", "."); + data = g_key_file_to_data (keyfile, NULL, NULL); + g_key_file_free (keyfile); + + /* Save the index.theme */ + path = customThemeDirPath ("index.theme"); + g_file_set_contents (path, data, -1, NULL); + g_free (path); + g_free (data); + + customThemeUpdateTime (); +} + +/* This function needs to be called after each individual + * changeset to the theme */ +void UkmediaMainWidget::customThemeUpdateTime (void) +{ + char *path; + path = customThemeDirPath (NULL); + utime (path, NULL); + g_free (path); +} + +gboolean UkmediaMainWidget::customThemeDirIsEmpty (void) +{ + char *dir; + GFile *file; + gboolean is_empty; + GFileEnumerator *enumerator; + GFileInfo *info; + GError *error = NULL; + + dir = customThemeDirPath(NULL); + file = g_file_new_for_path (dir); + g_free (dir); + + is_empty = TRUE; + + enumerator = g_file_enumerate_children (file, + G_FILE_ATTRIBUTE_STANDARD_NAME "," + G_FILE_ATTRIBUTE_STANDARD_TYPE, + G_FILE_QUERY_INFO_NONE, + NULL, &error); + if (enumerator == NULL) { + g_warning ("Unable to enumerate files: %s", error->message); + g_error_free (error); + goto out; + } + + while (is_empty && + (info = g_file_enumerator_next_file (enumerator, NULL, NULL))) { + + if (strcmp ("index.theme", g_file_info_get_name (info)) != 0) { + is_empty = FALSE; + } + + g_object_unref (info); + } + g_file_enumerator_close (enumerator, NULL, NULL); + +out: + g_object_unref (file); + + return is_empty; +} + +int UkmediaMainWidget::caPlayForWidget(UkmediaMainWidget *w, uint32_t id, ...) +{ + va_list ap; + int ret; + ca_proplist *p; + + if ((ret = ca_proplist_create(&p)) < 0) + return ret; + + if ((ret = caProplistSetForWidget(p, w)) < 0) + return -1; + + va_start(ap, id); + ret = caProplistMergeAp(p, ap); + va_end(ap); + + if (ret < 0) + return -1; + ca_context *c ; + ca_context_create(&c); + ret = ca_context_play_full(c, id, p, NULL, NULL); + + return ret; +} + +int UkmediaMainWidget::caProplistMergeAp(ca_proplist *p, va_list ap) +{ + int ret; + for (;;) { + const char *key, *value; + + if (!(key = va_arg(ap, const char*))) + break; + + if (!(value = va_arg(ap, const char*))) + return CA_ERROR_INVALID; + + if ((ret = ca_proplist_sets(p, key, value)) < 0) + return ret; + } + + return CA_SUCCESS; +} + +int UkmediaMainWidget::caProplistSetForWidget(ca_proplist *p, UkmediaMainWidget *widget) +{ + int ret; + const char *t; + QScreen *screen; + gint x = -1; + gint y = -1; + gint width = -1; + gint height = -1; + gint screen_width = -1; + gint screen_height = -1; + + if ((t = widget->windowTitle().toLatin1().data())) + if ((ret = ca_proplist_sets(p, CA_PROP_WINDOW_NAME, t)) < 0) + return ret; + + if (t) + if ((ret = ca_proplist_sets(p, CA_PROP_WINDOW_ID, t)) < 0) + return ret; + + if ((t = widget->windowIconText().toLatin1().data())) + if ((ret = ca_proplist_sets(p, CA_PROP_WINDOW_ICON_NAME, t)) < 0) + return ret; + if (screen = qApp->primaryScreen()) { + if ((ret = ca_proplist_setf(p, CA_PROP_WINDOW_X11_SCREEN, "%i", 0)) < 0) + return ret; + } + + width = widget->size().width(); + height = widget->size().height(); + + if (width > 0) + if ((ret = ca_proplist_setf(p, CA_PROP_WINDOW_WIDTH, "%i", width)) < 0) + return ret; + if (height > 0) + if ((ret = ca_proplist_setf(p, CA_PROP_WINDOW_HEIGHT, "%i", height)) < 0) + return ret; + + if (x >= 0 && width > 0) { + screen_width = qApp->primaryScreen()->size().width(); + + x += width/2; + x = CA_CLAMP(x, 0, screen_width-1); + + /* We use these strange format strings here to avoid that libc + * applies locale information on the formatting of floating + * numbers. */ + + if ((ret = ca_proplist_setf(p, CA_PROP_WINDOW_HPOS, "%i.%03i", + (int) (x/(screen_width-1)), (int) (1000.0*x/(screen_width-1)) % 1000)) < 0) + return ret; + } + + if (y >= 0 && height > 0) { + screen_height = qApp->primaryScreen()->size().height(); + + y += height/2; + y = CA_CLAMP(y, 0, screen_height-1); + + if ((ret = ca_proplist_setf(p, CA_PROP_WINDOW_VPOS, "%i.%03i", + (int) (y/(screen_height-1)), (int) (1000.0*y/(screen_height-1)) % 1000)) < 0) + return ret; + } + return CA_SUCCESS; +} + +UkmediaMainWidget::~UkmediaMainWidget() +{ + +} + +//查找指定声卡名的索引 +int UkmediaMainWidget::findCardIndex(QString cardName, QMap cardMap) +{ + QMap::iterator it; + + for(it=cardMap.begin();it!=cardMap.end();) { + if (it.value() == cardName) { + return it.key(); + } + ++it; + } + return -1; +} + +/* + * 根据声卡索引查找声卡名 + */ +QString UkmediaMainWidget::findCardName(int index,QMap cardMap) +{ + QMap::iterator it; + + for(it=cardMap.begin();it!=cardMap.end();) { + if (it.key() == index) { + return it.value(); + } + ++it; + } + return ""; +} + +/* + 查找名称为PortLbael 的portName +*/ +QString UkmediaMainWidget::findOutputPortName(int index,QString portLabel) +{ + QMap>::iterator it; + QMapportMap; + QMap::iterator tempMap; + QString portName = ""; + for (it = m_pVolumeControl->outputPortMap.begin();it != m_pVolumeControl->outputPortMap.end();) { + if (it.key() == index) { + portMap = it.value(); + for (tempMap = portMap.begin();tempMap!=portMap.end();) { + if (tempMap.value() == portLabel) { + portName = tempMap.key(); + break; + } + ++tempMap; + } + } + ++it; + } + return portName; +} + +/* + 查找名称为PortName 的portLabel +*/ +QString UkmediaMainWidget::findOutputPortLabel(int index,QString portName) +{ + QMap>::iterator it; + QMapportMap; + QMap::iterator tempMap; + QString portLabel = ""; + for (it = m_pVolumeControl->outputPortMap.begin();it != m_pVolumeControl->outputPortMap.end();) { + if (it.key() == index) { + portMap = it.value(); + for (tempMap = portMap.begin();tempMap!=portMap.end();) { + qDebug() <<"findOutputPortLabel" <>::iterator it; + QMapportMap; + QMap::iterator tempMap; + QString portName = ""; + for (it = m_pVolumeControl->inputPortMap.begin();it != m_pVolumeControl->inputPortMap.end();) { + if (it.key() == index) { + portMap = it.value(); + for (tempMap = portMap.begin();tempMap!=portMap.end();) { + if (tempMap.value() == portLabel) { + portName = tempMap.key(); + break; + } + ++tempMap; + } + } + ++it; + } + return portName; +} + +/* + 查找名称为PortName 的portLabel +*/ +QString UkmediaMainWidget::findInputPortLabel(int index,QString portName) +{ + QMap>::iterator it; + QMapportMap; + QMap::iterator tempMap; + QString portLabel = ""; + for (it = m_pVolumeControl->inputPortMap.begin();it != m_pVolumeControl->inputPortMap.end();) { + if (it.key() == index) { + portMap = it.value(); + for (tempMap = portMap.begin();tempMap!=portMap.end();) { + if (tempMap.key() == portName) { + portLabel = tempMap.value(); + break; + } + ++tempMap; + } + } + ++it; + } + return portLabel; +} + + +QString UkmediaMainWidget::findHighPriorityProfile(int index,QString profile) +{ + QMap>::iterator it; + int priority = 0; + QString profileName = ""; + QMap profileNameMap; + QMap::iterator tempMap; + QString cardStr = findCardName(index,m_pVolumeControl->cardMap); + + QString profileStr = findCardActiveProfile(index) ; + + QStringList list = profileStr.split("+"); + QString includeProfile = ""; + + if (list.count() >1) { + if (profile.contains("output")) { + includeProfile = list.at(1); + } + else if (profile.contains("input")){ + includeProfile = list.at(0); + } + qDebug() << "profile str" <cardProfilePriorityMap.begin();it!=m_pVolumeControl->cardProfilePriorityMap.end();) { + if (it.key() == index) { + profileNameMap = it.value(); + for (tempMap=profileNameMap.begin();tempMap!=profileNameMap.end();) { + if (includeProfile != "" && tempMap.key().contains(includeProfile) && !tempMap.key().contains(includeProfile+"-") \ + && tempMap.key().contains(profile) && !tempMap.key().contains(profile+"-")) { + priority = tempMap.value(); + profileName = tempMap.key(); + qDebug() << "findHighPriorityProfile" << includeProfile < priority) { + priority = tempMap.value(); + profileName = tempMap.key(); + qDebug() << "findHighPriorityProfile" << includeProfile <m_pInputDeviceSelectBox->count();row++) { + + QString inputComboboxCardName = m_pInputWidget->m_pInputDeviceSelectBox->itemData(row).toString(); + if (inputComboboxCardName.contains("bluez")) { + return true; + } + } + return false; +} + +QString UkmediaMainWidget::blueCardNameInCombobox() +{ + for (int row=0;rowm_pInputDeviceSelectBox->count();row++) { + + QString inputComboboxCardName = m_pInputWidget->m_pInputDeviceSelectBox->itemData(row).toString(); + if (inputComboboxCardName.contains("bluez")) { + return inputComboboxCardName; + } + } + return ""; +} + +/* + 记录输入stream的card name +*/ +void UkmediaMainWidget::inputStreamMapCardName (QString streamName,QString cardName) +{ + if (inputCardStreamMap.count() == 0) { + inputCardStreamMap.insertMulti(streamName,cardName); + } + QMap::iterator it; + + for (it=inputCardStreamMap.begin();it!=inputCardStreamMap.end();) { + if (it.value() == cardName) { + break; + } + if (it == inputCardStreamMap.end()-1) { + qDebug() << "inputCardSreamMap " << streamName << cardName; + inputCardStreamMap.insertMulti(streamName,cardName); + } + ++it; + } +} + +/* + 记录输出stream的card name +*/ +void UkmediaMainWidget::outputStreamMapCardName(QString streamName, QString cardName) +{ + if (outputCardStreamMap.count() == 0) { + outputCardStreamMap.insertMulti(streamName,cardName); + } + QMap::iterator it; + + for (it=outputCardStreamMap.begin();it!=outputCardStreamMap.end();) { + if (it.value() == cardName) { + break; + } + if (it == outputCardStreamMap.end()-1) { + qDebug() << "outputCardStreamMap " << streamName << cardName; + outputCardStreamMap.insertMulti(streamName,cardName); + } + ++it; + } +} + +/* + 找输入stream对应的card name +*/ +QString UkmediaMainWidget::findInputStreamCardName(QString streamName) +{ + QString cardName; + QMap::iterator it; + for (it=inputCardStreamMap.begin();it!=inputCardStreamMap.end();) { + if (it.key() == streamName) { + cardName = it.value(); + qDebug() << "findInputStreamCardName:" << cardName; + break; + } + ++it; + } + return cardName; +} + +/* + 找输出stream对应的card name +*/ +QString UkmediaMainWidget::findOutputStreamCardName(QString streamName) +{ + QString cardName; + QMap::iterator it; + for (it=outputCardStreamMap.begin();it!=outputCardStreamMap.end();) { + if (it.key() == streamName) { + cardName = it.value(); + break; + } + ++it; + } + return cardName; +} + +/* + * 设置声卡的配置文件 + */ +void UkmediaMainWidget::setCardProfile(QString name, QString profile) +{ + int index = findCardIndex(name,m_pVolumeControl->cardMap); + m_pVolumeControl->setCardProfile(index,profile.toLatin1().data()); + + qDebug() << "set profile" << name << profile << index ; +} + +/* + * 设置默认的输出设备端口 + */ +void UkmediaMainWidget::setDefaultOutputPortDevice(QString devName, QString portName) +{ + int cardIndex = findCardIndex(devName,m_pVolumeControl->cardMap); + QString portStr = findOutputPortName(cardIndex,portName); + qDebug() << "setDefaultOutputPortDevice" << devName <start(100); + connect(timer,&QTimer::timeout,[=](){ + QString sinkStr = findPortSink(cardIndex,portStr); + + /*默认的stream 和设置的stream相同 需要更新端口*/ + if (strcmp(sinkStr.toLatin1().data(),m_pVolumeControl->defaultSinkName) == 0) { + m_pVolumeControl->setSinkPort(sinkStr.toLatin1().data(),portStr.toLatin1().data()); + } + else { + m_pVolumeControl->setDefaultSink(sinkStr.toLatin1().data()); + m_pVolumeControl->setSinkPort(sinkStr.toLatin1().data(),portStr.toLatin1().data()); + } + qDebug() << "set default output" << portName <cardMap); + QString portStr = findInputPortName(cardIndex,portName); + + QTimer *timer = new QTimer; + timer->start(100); + connect(timer,&QTimer::timeout,[=](){ + QString sourceStr = findPortSource(cardIndex,portStr); + + /*默认的stream 和设置的stream相同 需要更新端口*/ + if (strcmp(sourceStr.toLatin1().data(),m_pVolumeControl->defaultSourceName) == 0) { + m_pVolumeControl->setSourcePort(sourceStr.toLatin1().data(),portStr.toLatin1().data()); + } + else { + m_pVolumeControl->setDefaultSource(sourceStr.toLatin1().data()); + m_pVolumeControl->setSourcePort(sourceStr.toLatin1().data(),portStr.toLatin1().data()); + } + qDebug() << "set default input" << portName << cardIndex << portStr << devName <::iterator it; + for (it=m_pVolumeControl->cardActiveProfileMap.begin();it!=m_pVolumeControl->cardActiveProfileMap.end();) { + if (it.key() == index) { + activeProfileName = it.value(); + break; + } + ++it; + } + return activeProfileName; +} + +/* + * Find the corresponding sink according to the port name + */ +QString UkmediaMainWidget::findPortSink(int cardIndex,QString portName) +{ + QMap>::iterator it; + QMap portNameMap; + QMap::iterator tempMap; + QString sinkStr = ""; + for (it=m_pVolumeControl->sinkPortMap.begin();it!=m_pVolumeControl->sinkPortMap.end();) { + if (it.key() == cardIndex) { + portNameMap = it.value(); + for (tempMap=portNameMap.begin();tempMap!=portNameMap.end();) { + if (tempMap.value() == portName) { + sinkStr = tempMap.key(); + qDebug() <<"find port sink" << it.value() << portName<< it.key() <>::iterator it; + QMap portNameMap; + QMap::iterator tempMap; + QString sourceStr = ""; + for (it=m_pVolumeControl->sourcePortMap.begin();it!=m_pVolumeControl->sourcePortMap.end();) { + if (it.key() == cardIndex) { + portNameMap = it.value(); + for (tempMap=portNameMap.begin();tempMap!=portNameMap.end();) { + if (tempMap.value() == portName) { + sourceStr = tempMap.key(); + qDebug() << "find port source" <defaultOutputCard,m_pVolumeControl->cardMap); + QString outputPortLabel = findOutputPortLabel(m_pVolumeControl->defaultOutputCard,m_pVolumeControl->sinkPortName); + findOutputComboboxItem(outputCardName,outputPortLabel); + + int vol = m_pVolumeControl->getSinkVolume(); + m_pOutputWidget->m_pOpVolumeSlider->blockSignals(true); + m_pOutputWidget->m_pOpVolumeSlider->setValue(paVolumeToValue(vol)); + m_pOutputWidget->m_pOpVolumeSlider->blockSignals(false); + m_pOutputWidget->m_pOpVolumePercentLabel->setText(QString::number(paVolumeToValue(vol))+"%"); + + qDebug() <<"initComboboxItem(Output)" << m_pVolumeControl->defaultOutputCard << outputCardName + <sinkPortName << outputPortLabel; +} + +void UkmediaMainWidget::initInputComboboxItem() +{ + if (m_pVolumeControl->inputPortMap.count() == 1 && inputComboboxDeviceContainBluetooth()) { + int index = m_pInputWidget->m_pInputDeviceSelectBox->findText(tr("None")); + if(index != -1){ + + } + else{ + m_pInputWidget->m_pInputDeviceSelectBox->blockSignals(true); + qDebug() << "initInputComboboxItem" << "add none item"; + m_pInputWidget->m_pInputDeviceSelectBox->addItem(tr("None")); + m_pInputWidget->m_pInputDeviceSelectBox->blockSignals(false); + } + } + + QString inputCardName = findCardName(m_pVolumeControl->defaultInputCard,m_pVolumeControl->cardMap); + QString inputPortLabel = findInputPortLabel(m_pVolumeControl->defaultInputCard,m_pVolumeControl->sourcePortName); + findInputComboboxItem(inputCardName,inputPortLabel); + + qDebug() <<"initComboboxItem(Input)" << m_pVolumeControl->defaultInputCard << inputCardName + <sourcePortName << inputPortLabel; +} + +void UkmediaMainWidget::findOutputComboboxItem(QString cardName,QString portLabel) { + + for (int row=0;rowm_pDeviceSelectBox->count();row++) { + QString comboboxcardname = m_pOutputWidget->m_pDeviceSelectBox->itemData(row).toString(); + QString comboboxportname = m_pOutputWidget->m_pDeviceSelectBox->itemText(row); + if (comboboxcardname == cardName && comboboxportname == portLabel) { + m_pOutputWidget->m_pDeviceSelectBox->blockSignals(true); + m_pOutputWidget->m_pDeviceSelectBox->setCurrentIndex(row); + m_pOutputWidget->m_pDeviceSelectBox->blockSignals(false); + + break; + } + } +} + + +/* + * 当前的输出端口是否应该添加到Combobox output list widget上 + */ +bool UkmediaMainWidget::comboboxOutputPortIsNeedAdd(int index, QString name) +{ + QMap::iterator it; + for(it=currentCboxOutputPortLabelMap.begin();it!=currentCboxOutputPortLabelMap.end();) { + if (index == it.key() && name == it.value()) { + return false; + } + ++it; + } + return true; +} + + +/* + * 当前的输出端口是否应该在output list widget上删除 + */ +bool UkmediaMainWidget::comboboxOutputPortIsNeedDelete(int index, QString name) +{ + QMap>::iterator it; + QMap::iterator at; + QMap portMap; + for(it = m_pVolumeControl->outputPortMap.begin();it!=m_pVolumeControl->outputPortMap.end();) + { + if (it.key() == index) { + portMap = it.value(); + for (at=portMap.begin();at!=portMap.end();) { + if (name == at.value()) { + return false; + } + ++at; + } + } + ++it; + } + return true; +} + + +/* + * 添加可用的输出端口到ComBoBox output list widget + */ + +void UkmediaMainWidget::addComboboxAvailableOutputPort() +{ + QMap>::iterator at; + QMap::iterator it; + QMap tempMap; + + int i = m_pOutputWidget->m_pDeviceSelectBox->count(); + if (m_pVolumeControl->outputPortMap.count() == 0) { + m_pOutputWidget->m_pDeviceSelectBox->blockSignals(true); + m_pOutputWidget->m_pDeviceSelectBox->addItem(tr("None")); + m_pOutputWidget->m_pDeviceSelectBox->blockSignals(false); + } + else { + int index = m_pOutputWidget->m_pDeviceSelectBox->findText("None"); + if (index != -1){ + m_pOutputWidget->m_pDeviceSelectBox->blockSignals(true); + m_pOutputWidget->m_pDeviceSelectBox->removeItem(index); + m_pOutputWidget->m_pDeviceSelectBox->blockSignals(false); + } + for(at=m_pVolumeControl->outputPortMap.begin();at!=m_pVolumeControl->outputPortMap.end();) + { + tempMap = at.value(); + for (it=tempMap.begin();it!=tempMap.end();) + { + if (comboboxOutputPortIsNeedAdd(at.key(),it.value())) + { + currentCboxOutputPortLabelMap.insertMulti(at.key(),it.value()); + + m_pOutputWidget->m_pDeviceSelectBox->blockSignals(true); + m_pOutputWidget->m_pDeviceSelectBox->insertItem(i,it.value(),findCardName(at.key(),m_pVolumeControl->cardMap)); + m_pOutputWidget->m_pDeviceSelectBox->blockSignals(false); + } + ++it; + } + ++at; + } + } +} + + +/* + * 添加output port到Combobox output list widget + */ +void UkmediaMainWidget::addComboboxOutputListWidgetItem(QString portName, QString cardName) +{ + int i = m_pOutputWidget->m_pDeviceSelectBox->count(); + m_pOutputWidget->m_pDeviceSelectBox->blockSignals(true); + m_pOutputWidget->m_pDeviceSelectBox->insertItem(i,portName,cardName); + m_pOutputWidget->m_pDeviceSelectBox->blockSignals(false); + +} + +//传进来一个portName用来定位他的位置 +int UkmediaMainWidget::indexOfOutputPortInOutputCombobox(QString portName) +{ + for (int row=0;rowm_pDeviceSelectBox->count();row++) + { + QString text = m_pOutputWidget->m_pDeviceSelectBox->itemText(row); + if (text == portName) + return row; + } + return -1; +} + + +/* + * 移除combobox output list widget上不可用的输出端口 + */ +void UkmediaMainWidget::deleteNotAvailableComboboxOutputPort() +{ + //删除不可用的输出端口 + QMap::iterator it; + + for(it=currentCboxOutputPortLabelMap.begin();it!=currentCboxOutputPortLabelMap.end();) { + //没找到,需要删除 + if (comboboxOutputPortIsNeedDelete(it.key(),it.value())) { + int index = indexOfOutputPortInOutputCombobox(it.value()); + if (index == -1) + return; + + m_pOutputWidget->m_pDeviceSelectBox->blockSignals(true); + m_pOutputWidget->m_pDeviceSelectBox->removeItem(index); + m_pOutputWidget->m_pDeviceSelectBox->blockSignals(false); + qDebug()<< "deleteNotAvailableComboboxOutputPort" <m_pInputDeviceSelectBox->count();row++) { + QString comboboxcardname = m_pInputWidget->m_pInputDeviceSelectBox->itemData(row).toString(); + QString comboboxportname = m_pInputWidget->m_pInputDeviceSelectBox->itemText(row); + if (comboboxcardname == cardName && comboboxportname == portLabel) { + m_pInputWidget->m_pInputDeviceSelectBox->blockSignals(true); + m_pInputWidget->m_pInputDeviceSelectBox->setCurrentIndex(row); + m_pInputWidget->m_pInputDeviceSelectBox->blockSignals(false); + if (comboboxcardname.contains("bluez_card")) + isCheckBluetoothInput = true; + + break; + } + else if(comboboxportname == tr("None")) { + m_pInputWidget->m_pInputDeviceSelectBox->blockSignals(true); + m_pInputWidget->m_pInputDeviceSelectBox->setCurrentIndex(row); + m_pInputWidget->m_pInputDeviceSelectBox->blockSignals(false); + } + } +} + +/* + * 添加输入端口到input combobox widget + */ +void UkmediaMainWidget::addComboboxInputListWidgetItem(QString portName, QString cardName) +{ + int i = m_pInputWidget->m_pInputDeviceSelectBox->count(); + qDebug() << "addComboboxInputListWidgetItem" << portName << cardName; + m_pInputWidget->m_pInputDeviceSelectBox->blockSignals(true); + m_pInputWidget->m_pInputDeviceSelectBox->insertItem(i,portName,cardName); + m_pInputWidget->m_pInputDeviceSelectBox->blockSignals(false); + +} + + +/* + * 在input combobox list widget删除不可用的端口 + */ +void UkmediaMainWidget::deleteNotAvailableComboboxInputPort() +{ + //删除不可用的输入端口 + QMap::iterator it; + + for(it=currentCboxInputPortLabelMap.begin();it!=currentCboxInputPortLabelMap.end();) { + //没找到,需要删除 + if (comboboxInputPortIsNeedDelete(it.key(),it.value())) { + int index = indexOfInputPortInInputCombobox(it.value()); + if (index == -1) + return; + m_pInputWidget->m_pInputDeviceSelectBox->blockSignals(true); + m_pInputWidget->m_pInputDeviceSelectBox->removeItem(index); + m_pInputWidget->m_pInputDeviceSelectBox->blockSignals(false); + + it = currentCboxInputPortLabelMap.erase(it); + continue; + } + ++it; + } +} + + +//传进来input portName用来定位他的位置 +int UkmediaMainWidget::indexOfInputPortInInputCombobox(QString portName) +{ + for (int index=0;indexm_pInputDeviceSelectBox->count();index++) + { + QString textport = m_pInputWidget->m_pInputDeviceSelectBox->itemText(index); + // QString textcard = m_pInputWidget->m_pInputDeviceSelectBox->itemData(index).toString(); + if (textport == portName ) + { + return index; + } + } + return -1; +} + + +/* + * 添加可用的输入端口到input list widget + */ +void UkmediaMainWidget::addComboboxAvailableInputPort() +{ + QMap>::iterator at; + QMap::iterator it; + QMap tempMap; + qDebug() << "addComboboxAvailableInputPort"<< m_pVolumeControl->inputPortMap.count() << m_pInputWidget->m_pInputDeviceSelectBox->currentText(); + int i = m_pInputWidget->m_pInputDeviceSelectBox->count(); + //增加端口 + for(at=m_pVolumeControl->inputPortMap.begin();at!=m_pVolumeControl->inputPortMap.end();) + { + tempMap = at.value(); + for (it=tempMap.begin();it!=tempMap.end();){ + if (comboboxInputPortIsNeedAdd(at.key(),it.value())){ + currentCboxInputPortLabelMap.insertMulti(at.key(),it.value()); + + m_pInputWidget->m_pInputDeviceSelectBox->blockSignals(true); + m_pInputWidget->m_pInputDeviceSelectBox->insertItem(i,it.value(),findCardName(at.key(),m_pVolumeControl->cardMap)); + m_pInputWidget->m_pInputDeviceSelectBox->blockSignals(false); + } + ++it; + } + ++at; + } + if (m_pVolumeControl->inputPortMap.count() == 0 ||(m_pVolumeControl->inputPortMap.count() == 1 && inputComboboxDeviceContainBluetooth())) { + int index = m_pInputWidget->m_pInputDeviceSelectBox->findText(tr("None")); + if(index != -1){ + } + else{ + m_pInputWidget->m_pInputDeviceSelectBox->blockSignals(true); + qDebug() << "addComboboxAvailableInputPort" << "add None item"; + m_pInputWidget->m_pInputDeviceSelectBox->addItem(tr("None")); + m_pInputWidget->m_pInputDeviceSelectBox->blockSignals(false); + } + } + else if(m_pVolumeControl->inputPortMap.count() > 0){ + int index = m_pInputWidget->m_pInputDeviceSelectBox->findText(tr("None")); + if (index != -1) { + m_pInputWidget->m_pInputDeviceSelectBox->blockSignals(true); + qDebug() << "addComboboxAvailableInputPort" << "remove None item"; + m_pInputWidget->m_pInputDeviceSelectBox->removeItem(index); + m_pInputWidget->m_pInputDeviceSelectBox->blockSignals(false); + } + } + +} + + +/* + * 当前的输入端口是否应该添加到Combobox input list widget上 + */ +bool UkmediaMainWidget::comboboxInputPortIsNeedAdd(int index, QString name) +{ + QMap::iterator it; + for(it=currentCboxInputPortLabelMap.begin();it!=currentCboxInputPortLabelMap.end();) { + if (index == it.key() && name == it.value()) + return false; + ++it; + } + return true; +} + + +/* + * 当前的输入端口是否应该在Combobox list上删除 + */ +bool UkmediaMainWidget::comboboxInputPortIsNeedDelete(int index, QString name) +{ + QMap>::iterator it; + QMap::iterator at; + QMap portMap; + for(it = m_pVolumeControl->inputPortMap.begin();it!=m_pVolumeControl->inputPortMap.end();) + { + if (it.key() == index) { + portMap = it.value(); + for (at=portMap.begin();at!=portMap.end();) { + if (name == at.value()) + return false; + ++at; + } + } + ++it; + } + if(name == tr("None")){ + return false; + } + return true; +} + + +/* + * 更新设备端口 +*/ +void UkmediaMainWidget::updateCboxDevicePort() +{ + QMap>::iterator it; + QMap::iterator at; + QMap temp; + currentCboxInputPortLabelMap.clear(); + currentCboxOutputPortLabelMap.clear(); + qDebug() << "updateCboxDevicePort---------------" ; +// if (m_pVolumeControl->inputPortMap.count() == 0) { +// m_pInputWidget->m_pInputDeviceSelectBox->blockSignals(true); +// m_pInputWidget->m_pInputDeviceSelectBox->addItem(tr("None")); +// m_pInputWidget->m_pInputDeviceSelectBox->blockSignals(false); +// } +// else { +// int index = m_pInputWidget->m_pInputDeviceSelectBox->findText("None"); +// if (index != -1) { +// m_pInputWidget->m_pInputDeviceSelectBox->blockSignals(true); +// m_pInputWidget->m_pInputDeviceSelectBox->removeItem(index); +// m_pInputWidget->m_pInputDeviceSelectBox->blockSignals(false); +// } +// } + + if (m_pVolumeControl->outputPortMap.count() == 0) { + m_pOutputWidget->m_pDeviceSelectBox->blockSignals(true); + m_pOutputWidget->m_pDeviceSelectBox->addItem(tr("None")); + m_pOutputWidget->m_pDeviceSelectBox->blockSignals(false); + } + else { + int index = m_pOutputWidget->m_pDeviceSelectBox->findText("None"); + if (index != -1){ + m_pOutputWidget->m_pDeviceSelectBox->blockSignals(true); + m_pOutputWidget->m_pDeviceSelectBox->removeItem(index); + m_pOutputWidget->m_pDeviceSelectBox->blockSignals(false); + } + } + + if (cboxfirstEntry == true) { + for(it = m_pVolumeControl->outputPortMap.begin();it!=m_pVolumeControl->outputPortMap.end();) + { + temp = it.value(); + for (at=temp.begin();at!=temp.end();) { + qDebug() << "更新设备端口:" << cboxfirstEntry << it.key() << at.value(); + QString cardName = findCardName(it.key(),m_pVolumeControl->cardMap); + addComboboxOutputListWidgetItem(at.value(),cardName); + ++at; + } + ++it; + } + for(it = m_pVolumeControl->inputPortMap.begin();it!=m_pVolumeControl->inputPortMap.end();) + { + temp = it.value(); + for (at=temp.begin();at!=temp.end();) { + qDebug() << "更新输入设备端口" << cboxfirstEntry << it.key() << at.value(); + QString cardName = findCardName(it.key(),m_pVolumeControl->cardMap); + addComboboxInputListWidgetItem(at.value(),cardName); + ++at; + } + ++it; + } + + } + else { + //记录上一次output label + for (int i=0;im_pDeviceSelectBox->count();i++) { + QMap::iterator at; + QString cardname = m_pOutputWidget->m_pDeviceSelectBox->itemData(i).toString(); + QString portname = m_pOutputWidget->m_pDeviceSelectBox->itemText(i); + int index=-1; + for (at=m_pVolumeControl->cardMap.begin();at!=m_pVolumeControl->cardMap.end();) { + if (cardname == at.value()) { + index = at.key(); + break; + } + ++at; + } + currentCboxOutputPortLabelMap.insertMulti(index,portname); + +// qDebug() << index << "current cbox output item **" << cardname << portname; + } + + for(int i=0;im_pInputDeviceSelectBox->count();i++){ + QMap::iterator at; + QString cardname = m_pInputWidget->m_pInputDeviceSelectBox->itemData(i).toString(); + QString portname = m_pInputWidget->m_pInputDeviceSelectBox->itemText(i); + int index; + for (at=m_pVolumeControl->cardMap.begin();at!=m_pVolumeControl->cardMap.end();) { + if (cardname == at.value()) { + index = at.key(); + break; + } + ++at; + } + currentCboxInputPortLabelMap.insertMulti(index,portname); + } + + m_pInputWidget->m_pInputDeviceSelectBox->blockSignals(true); + m_pOutputWidget->m_pDeviceSelectBox->blockSignals(true); + deleteNotAvailableComboboxOutputPort(); + addComboboxAvailableOutputPort(); + deleteNotAvailableComboboxInputPort(); + addComboboxAvailableInputPort(); + m_pOutputWidget->m_pDeviceSelectBox->blockSignals(false); + m_pInputWidget->m_pInputDeviceSelectBox->blockSignals(false); + } + if (m_pOutputWidget->m_pDeviceSelectBox->count() > 0 || m_pInputWidget->m_pInputDeviceSelectBox->count() ) { + + cboxfirstEntry = false; + } +} + + +/* + * Combobox选项改变,设置对应的输出设备 + */ +void UkmediaMainWidget::cboxoutputListWidgetCurrentRowChangedSlot(int row) +{ + //当所有可用的输出设备全部移除,台式机才会出现该情况 + if (row == -1) + return; + + QString outputComboboxPortName = m_pOutputWidget->m_pDeviceSelectBox->itemText(row); + QString outputComboboxCardName = m_pOutputWidget->m_pDeviceSelectBox->itemData(row).toString(); + + QString inputComboboxPortName = m_pInputWidget->m_pInputDeviceSelectBox->currentText(); + QString inputComboboxCardName = m_pInputWidget->m_pInputDeviceSelectBox->currentData().toString(); + + bool isContainBlue = inputComboboxDeviceContainBluetooth(); + + + //当输出设备从蓝牙切换到其他设备时,需将蓝牙声卡的配置文件切换为a2dp-sink + if (isContainBlue && (strstr(m_pVolumeControl->defaultSourceName,\ + "headset_head_unit") || strstr(m_pVolumeControl->defaultSourceName,"bt_sco_sink"))){ + QString cardName = blueCardNameInCombobox(); + setCardProfile(cardName,"a2dp_sink"); + } + + QMap>::iterator outputProfileMap; + QMap>::iterator inputProfileMap; + QMap tempMap; + QMap::iterator at; + QString endOutputProfile = ""; + QString endInputProfile = ""; + int count,i; + int currentCardIndex = findCardIndex(outputComboboxCardName,m_pVolumeControl->cardMap); + + QStringList outputComboboxPortNameList = outputComboboxPortName.split("(");//新增设计combobox需要显示 端口名+(description); + QStringList inputComboboxPortNameList = inputComboboxPortName.split("("); + + for (outputProfileMap=m_pVolumeControl->profileNameMap.begin();outputProfileMap!= m_pVolumeControl->profileNameMap.end();) { + if(currentCardIndex == outputProfileMap.key()){ + tempMap = outputProfileMap.value(); + for(at=tempMap.begin(),i=0;at!= tempMap.end();++i){ + if (at.key() == outputComboboxPortNameList.at(0)) { + count = i; + endOutputProfile = at.value(); + } + ++at; + } + } + ++outputProfileMap; + } + + if (m_pInputWidget->m_pInputDeviceSelectBox->currentText().size()!=0) { + QMap ::iterator it; + QMap temp; + int index = findCardIndex(inputComboboxCardName,m_pVolumeControl->cardMap); + for (inputProfileMap=m_pVolumeControl->inputPortProfileNameMap.begin(),count=0;inputProfileMap!= m_pVolumeControl->inputPortProfileNameMap.end();count++) { + if (inputProfileMap.key() == index) { + temp = inputProfileMap.value(); + for(it = temp.begin(); it != temp.end();){ + if(it.key() == inputComboboxPortNameList.at(0)){ + endInputProfile = it.value(); + } + ++it; + } + } + ++inputProfileMap; + } + } + qDebug() << "outputListWidgetCurrentRowChangedSlot" << row << outputComboboxPortName << endOutputProfile <m_pInputDeviceSelectBox->currentText().size()!=0 && outputComboboxCardName == inputComboboxCardName ) || \ + outputComboboxCardName == "alsa_card.platform-sound_DA_combine_v5" && inputComboboxCardName == "3a.algo") { + + QString setProfile = endOutputProfile; + if (!endOutputProfile.contains("input:analog-stereo") || !endOutputProfile.contains("HiFi")) { + setProfile += "+"; + setProfile +=endInputProfile; + } + + setCardProfile(outputComboboxCardName,setProfile); + setDefaultOutputPortDevice(outputComboboxCardName,outputComboboxPortName); + } + //如果选择的输入输出设备不是同一块声卡,需要设置一个优先级高的配置文件 + else { + int index = findCardIndex(outputComboboxCardName,m_pVolumeControl->cardMap); + QMap >::iterator it; + QString profileName; + for(it=m_pVolumeControl->cardProfileMap.begin();it!=m_pVolumeControl->cardProfileMap.end();) { + if (it.key() == index) { + if (strstr(endOutputProfile.toLatin1().data(),"headset_head_unit")) + endOutputProfile = "a2dp_sink"; + profileName = findHighPriorityProfile(index,endOutputProfile); + } + ++it; + } + + QString setProfile = profileName; + setCardProfile(outputComboboxCardName,setProfile); + setDefaultOutputPortDevice(outputComboboxCardName,outputComboboxPortName); + } + qDebug() << "active combobox output port:" << outputComboboxPortName << outputComboboxCardName; +} + + +void UkmediaMainWidget::cboxinputListWidgetCurrentRowChangedSlot(int row) +{ + if (row == -1) + return; + + QString inputComboboxPortName = m_pInputWidget->m_pInputDeviceSelectBox->itemText(row); + QString inputComboboxCardName = m_pInputWidget->m_pInputDeviceSelectBox->itemData(row).toString(); + + QString outputComboboxPortName = m_pOutputWidget->m_pDeviceSelectBox->currentText(); + QString outputComboboxCardName = m_pOutputWidget->m_pDeviceSelectBox->currentData().toString(); + + bool isContainBlue = inputComboboxDeviceContainBluetooth(); + + //当输出设备从蓝牙切换到其他设备时,需将蓝牙声卡的配置文件切换为a2dp-sink + if (isContainBlue && (strstr(m_pVolumeControl->defaultSinkName,"headset_head_unit") || strstr(m_pVolumeControl->defaultSourceName,"bt_sco_source"))) + { + QString cardName = blueCardNameInCombobox(); + setCardProfile(cardName,"a2dp_sink"); + } + + if(inputComboboxCardName.contains("bluez_card")) { + isCheckBluetoothInput = true; + } + else { + isCheckBluetoothInput = false; + if(inputComboboxPortName == tr("None")){ + qDebug() << "come Back Bluetooth A2dp Model"; + return ; + } + } + + QMap>::iterator inputProfileMap; + QMap>::iterator outputProfileMap; + QMap temp; + QMap::iterator at; + QString endOutputProfile = ""; + QString endInputProfile = ""; + int index = findCardIndex(inputComboboxCardName,m_pVolumeControl->cardMap); + QStringList outputComboboxPortNameList = outputComboboxPortName.split("(");//新增设计combobox需要显示 端口名+(description); + QStringList inputComboboxPortNameList = inputComboboxPortName.split("("); + for (inputProfileMap=m_pVolumeControl->inputPortProfileNameMap.begin();inputProfileMap!= m_pVolumeControl->inputPortProfileNameMap.end();) { + if (inputProfileMap.key() == index) { + temp = inputProfileMap.value(); + for(at=temp.begin();at!=temp.end();){ + if(at.key() == inputComboboxPortNameList.at(0)){ + endInputProfile = at.value(); + } + ++at; + } + } + ++inputProfileMap; + } + if (m_pOutputWidget->m_pDeviceSelectBox->currentText().size()!=0) { + QMap ::iterator it; + QMap temp; + int index = findCardIndex(outputComboboxCardName,m_pVolumeControl->cardMap); + for (outputProfileMap=m_pVolumeControl->profileNameMap.begin();outputProfileMap!= m_pVolumeControl->profileNameMap.end();) { + if (outputProfileMap.key() == index) { + temp = outputProfileMap.value(); + for(it=temp.begin();it!=temp.end();){ + if(it.key() == outputComboboxPortNameList.at(0)){ + endOutputProfile = it.value(); + } + ++it; + } + } + ++outputProfileMap; + } + } + //如果选择的输入输出设备为同一个声卡,则追加指定输入输出端口属于的配置文件 + if (m_pOutputWidget->m_pDeviceSelectBox->currentText().size()!=0 && inputComboboxCardName == outputComboboxCardName) { + QString setProfile; + //有些声卡的配置文件默认只有输入/输出设备或者配置文件包含了输出输入设备,因此只需要取其中一个配置文件即可 + if (endOutputProfile == "a2dp-sink" || endInputProfile == "headset_head_unit" || endOutputProfile == "HiFi" ) { + setProfile += endInputProfile; + } + else { + setProfile += endOutputProfile; + setProfile += "+"; + setProfile +=endInputProfile; + } + setCardProfile(inputComboboxCardName,setProfile); + setDefaultInputPortDevice(inputComboboxCardName,inputComboboxPortName); + } + //如果选择的输入输出设备不是同一块声卡,需要设置一个优先级高的配置文件 + else { + int index = findCardIndex(inputComboboxCardName,m_pVolumeControl->cardMap); + QMap >::iterator it; + QString profileName; + for(it=m_pVolumeControl->cardProfileMap.begin();it!=m_pVolumeControl->cardProfileMap.end();) { + + if (it.key() == index) { + QStringList list= it.value(); + profileName = findHighPriorityProfile(index,endInputProfile); + if (list.contains(endOutputProfile)) { + + } + } + ++it; + } + QString setProfile = profileName; + setCardProfile(inputComboboxCardName,setProfile); + setDefaultInputPortDevice(inputComboboxCardName,inputComboboxPortName); + } + qDebug() << "active combobox input port:" << inputComboboxPortName << inputComboboxCardName<< isCheckBluetoothInput; +} + + +void UkmediaMainWidget::updateComboboxListWidgetItemSlot() { + qDebug() << "updateComboboxListWidgetItemSlot"; + initOutputComboboxItem(); + initInputComboboxItem(); + themeChangeIcons(); +} diff --git a/audio/ukmedia_main_widget.h b/audio/ukmedia_main_widget.h new file mode 100644 index 0000000..ffbe392 --- /dev/null +++ b/audio/ukmedia_main_widget.h @@ -0,0 +1,299 @@ + +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- + * + * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * + * 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. + * + */ +#ifndef WIDGET_H +#define WIDGET_H + +#include +#include "ukmedia_volume_control.h" +#include "ukmedia_output_widget.h" +#include "ukmedia_input_widget.h" +#include "ukmedia_sound_effects_widget.h" +#include "ukui_list_widget_item.h" +#include +#include +#include +#include +#include +#include +#include +#include +extern "C" { +#include +#include +#include +#include +#include +#include +#include +#include +} +#include +#include +#include +#include +#include +#include +#include +#include + +#define UKUI_THEME_SETTING "org.ukui.style" +#define UKUI_THEME_NAME "style-name" +#define UKUI_THEME_WHITE "ukui-white" +#define UKUI_THEME_BLACK "ukui-black" + +#define UKUI_INPUT_REAR_MIC "analog-input-rear-mic" //后置麦克风 +#define UKUI_INPUT_FRONT_MIC "analog-input-front-mic" //前置麦克风 +#define UKUI_OUTPUT_HEADPH "analog-output-headphones" //模拟耳机 + +#define KEYBINDINGS_CUSTOM_SCHEMA "org.ukui.media.sound" +#define KEYBINDINGS_CUSTOM_DIR "/org/ukui/sound/keybindings/" +#define MAX_CUSTOM_SHORTCUTS 1000 +#define FILENAME_KEY "filename" +#define NAME_KEY "name" + +#define KEY_SOUNDS_SCHEMA "org.ukui.sound" +#define UKUI_SWITCH_SETTING "org.ukui.session" +#define UKUI_STARTUP_MUSIC_KEY "startup-music" +#define UKUI_POWEROFF_MUSIC_KEY "poweroff-music" +#define UKUI_LOGOUT_MUSIC_KEY "logout-music" +#define UKUI_WAKEUP_MUSIC_KEY "weakup-music" + +#define EVENT_SOUNDS_KEY "event-sounds" +#define INPUT_SOUNDS_KEY "input-feedback-sounds" +#define SOUND_THEME_KEY "theme-name" + +#define DEFAULT_ALERT_ID "__default" +#define CUSTOM_THEME_NAME "__custom" +#define NO_SOUNDS_THEME_NAME "__no_sounds" + +#define PA_VOLUME_NORMAL 65536.0 +#define UKMEDIA_VOLUME_NORMAL 100.0 + +#ifdef __GNUC__ +#define CA_CLAMP(x, low, high) \ + __extension__ ({ typeof(x) _x = (x); \ + typeof(low) _low = (low); \ + typeof(high) _high = (high); \ + ((_x > _high) ? _high : ((_x < _low) ? _low : _x)); \ + }) +#else +#define CA_CLAMP(x, low, high) (((x) > (high)) ? (high) : (((x) < (low)) ? (low) : (x))) +#endif + +typedef enum +{ + GVC_LEVEL_SCALE_LINEAR, + GVC_LEVEL_SCALE_LOG +} LevelScale; + + +class UkmediaMainWidget : public QWidget +{ + Q_OBJECT + +public: + UkmediaMainWidget(QWidget *parent = nullptr); + ~UkmediaMainWidget(); + + void initWidget(); //初始化界面 + void initGsettings(); //初始化gsetting值 + void dealSlot(); //处理槽函数 + int valueToPaVolume(int value); //滑动条值转换成音量 + int paVolumeToValue(int value); //音量值转换成滑动条值 + void themeChangeIcons(); + static int connectContext(gpointer userdata); + static int caProplistMergeAp(ca_proplist *p, va_list ap); + static int caPlayForWidget(UkmediaMainWidget *w, uint32_t id, ...); + static int caProplistSetForWidget(ca_proplist *p, UkmediaMainWidget *widget); + + QPixmap drawDarkColoredPixmap(const QPixmap &source); + QPixmap drawLightColoredPixmap(const QPixmap &source); + + void inputVolumeDarkThemeImage(int value,bool status); + void outputVolumeDarkThemeImage(int value,bool status); + int getInputVolume(); + int getOutputVolume(); + void comboboxCurrentTextInit(); + QList listExistsPath(); + QString findFreePath(); + void addValue(QString name,QString filename); + + static void onKeyChanged (GSettings *settings,gchar *key,UkmediaMainWidget *w); + static void updateTheme (UkmediaMainWidget *w); + + static void setupThemeSelector (UkmediaMainWidget *w); + static void soundThemeInDir (UkmediaMainWidget *w,GHashTable *hash,const char *dir); + static char *loadIndexThemeName (const char *index,char **parent); + + static void setComboxForThemeName (UkmediaMainWidget *w,const char *name); + static void updateAlertsFromThemeName (UkmediaMainWidget *w,const gchar *name); + static void updateAlert (UkmediaMainWidget *w,const char *alert_id); + static int getFileType (const char *sound_name,char **linked_name); + static char *customThemeDirPath (const char *child); + + static void populateModelFromDir (UkmediaMainWidget *w,const char *dirname); + static void populateModelFromFile (UkmediaMainWidget *w,const char *filename); + static void populateModelFromNode (UkmediaMainWidget *w,xmlNodePtr node); + static xmlChar *xmlGetAndTrimNames (xmlNodePtr node); + + static void playAlretSoundFromPath (UkmediaMainWidget *w,QString path); + + static gboolean saveAlertSounds (QComboBox *combox,const char *id); + static void deleteOldFiles (const char **sounds); + static void deleteOneFile (const char *sound_name, const char *pattern); + static void deleteDisabledFiles (const char **sounds); + static void addCustomFile (const char **sounds, const char *filename); + static gboolean cappletFileDeleteRecursive (GFile *file, GError **error); + static gboolean directoryDeleteRecursive (GFile *directory, GError **error); + static void createCustomTheme (const char *parent); + static void customThemeUpdateTime (void); + static gboolean customThemeDirIsEmpty (void); + + + //TEST输出 + void initOutputComboboxItem();//初始化输出的Combobox选项框 + void initInputComboboxItem();//初始化输入的Combobox选项框 + void findOutputComboboxItem(QString cardName,QString portLabel); //初始化Combobox output/input list widget的选项 + + void addComboboxAvailableOutputPort(); + void addComboboxOutputListWidgetItem(QString portName, QString cardName); + void deleteNotAvailableComboboxOutputPort();//删除不可用的端口 + int indexOfOutputPortInOutputCombobox(QString portName); + bool comboboxOutputPortIsNeedAdd(int index,QString name);//port是否需要在Combobox list中添加 + bool comboboxOutputPortIsNeedDelete(int index,QString name);//port是否需要在Combobox list删除 + + void findInputComboboxItem(QString cardName,QString portLabel); //初始化Combobox output/input list widget的选项 + void addComboboxAvailableInputPort(); + void addComboboxInputListWidgetItem(QString portName, QString cardName); //添加input listwidget item + void deleteNotAvailableComboboxInputPort(); + int indexOfInputPortInInputCombobox(QString portName);//获取输入combobox当前的选项框的index + bool comboboxInputPortIsNeedAdd(int index,QString name);//port是否需要在Combobox list中添加 + bool comboboxInputPortIsNeedDelete(int index,QString name);//port是否需要在Combobox list删除 + int findCardIndex(QString cardName, QMap cardMap);//查找声卡指定的索引 + + QString findCardName(int index,QMap cardMap); + QString findHighPriorityProfile(int index,QString profile); + QString findPortSink(int cardIndex,QString portName); + QString findPortSource(int cardIndex,QString portName); + + bool inputComboboxDeviceContainBluetooth(); + QString blueCardNameInCombobox();//记录蓝牙声卡名称 + + void inputStreamMapCardName(QString streamName,QString cardName); + void outputStreamMapCardName(QString streamName,QString cardName); + QString findInputStreamCardName(QString streamName); + QString findOutputStreamCardName(QString streamName); + + bool exitBluetoochDevice(); + + QString findOutputPortName(int index,QString portLabel); //找到outputPortLabel对应的portName + QString findInputPortName(int index,QString portLabel); //找到inputPortLabel对应的portName + QString findOutputPortLabel(int index,QString portName); //查找名为portName对应的portLabel + QString findInputPortLabel(int index,QString portName); //查找名为portName对应的portLabel + void setCardProfile(QString name,QString profile); //设置声卡的配置文件 + void setDefaultOutputPortDevice(QString devName,QString portName); //设置默认的输出端口 + void setDefaultInputPortDevice(QString devName,QString portName); //设置默认的输入端口 + QString findCardActiveProfile(int index); //查找声卡的active profile + +private Q_SLOTS: + + void initVoulmeSlider(); //初始化音量滑动条的值 + void themeComboxIndexChangedSlot(int index); //主题下拉框改变 + void comboxIndexChangedSlot(int index); + void outputWidgetSliderChangedSlot(int v); //输出音量改变 + void inputWidgetSliderChangedSlot(int v); //输入滑动条更改 + void inputMuteButtonSlot(); //输入音量静音控制 + void outputMuteButtonSlot(); //输出音量静音控制 + void balanceSliderChangedSlot(int v); //平衡值改变 + void peakVolumeChangedSlot(double v); //输入等级 + void updateCboxDevicePort(); //更新combobox设备端口 + void updateComboboxListWidgetItemSlot(); + + void timeSliderSlot(); + void ukuiThemeChangedSlot(const QString &); + void startupButtonSwitchChangedSlot(bool status); //开机音乐开关 + void poweroffButtonSwitchChangedSlot(bool status); //关机音乐开关 + void logoutMusicButtonSwitchChangedSlot(bool status); //注销音乐开关 + void wakeButtonSwitchChangedSlot(bool status); //唤醒音乐开关 + void alertSoundButtonSwitchChangedSlot(bool status); + void bootMusicSettingsChanged(); + + void windowClosedComboboxChangedSlot(int index); + void volumeChangedComboboxChangeSlot(int index); + void settingMenuComboboxChangedSlot(int index); + + void cboxoutputListWidgetCurrentRowChangedSlot(int row);//combobox output list widget选项改变 + void cboxinputListWidgetCurrentRowChangedSlot(int row);//combobox input list widget选项改变 + + +private: + UkmediaInputWidget *m_pInputWidget; + UkmediaOutputWidget *m_pOutputWidget; + UkmediaSoundEffectsWidget *m_pSoundWidget; + UkmediaVolumeControl *m_pVolumeControl; + + QStringList *m_pSoundList; + QStringList *m_pThemeDisplayNameList; + QStringList *m_pThemeNameList; + QStringList *m_pSoundThemeList; + QStringList *m_pSoundThemeDirList; + QStringList *m_pSoundThemeXmlNameList; + QStringList *m_pSoundNameList; + QStringList *eventList; + QStringList *eventIdNameList; + + GSettings *m_pSoundSettings; + QGSettings *m_pBootSetting; + QGSettings *m_pThemeSetting; +// QGSettings *m_pWindowClosedSetting; + QString mThemeName; + bool m_hasMusic; + bool firstEnterSystem = true; + + const gchar* m_privOutputPortLabel = ""; + + int callBackCount = 0; + bool firstEntry = true; + + bool cboxfirstEntry = true; + QMap currentOutputPortLabelMap; + QMap currentInputPortLabelMap; + QMap inputCardStreamMap; + QMap outputCardStreamMap; + QMap currentCboxOutputPortLabelMap; + QMap currentCboxInputPortLabelMap; + + + bool updatePort = true; + bool setDefaultstream = true; + int reconnectTime; + QTimer *time; + + QTimer *timeSlider; + bool mousePress = false; + bool mouseReleaseState = false; + + QTimer *timeSliderBlance; + bool mousePressBlance = false; + bool mouseReleaseStateBlance = false; +}; + +#endif // WIDGET_H diff --git a/audio/ukmedia_output_widget.cpp b/audio/ukmedia_output_widget.cpp new file mode 100644 index 0000000..5c8e07d --- /dev/null +++ b/audio/ukmedia_output_widget.cpp @@ -0,0 +1,190 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- + * + * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * + * 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. + * + */ +#include "ukmedia_output_widget.h" +#include "ukui_list_widget_item.h" +#include +#include +AudioSlider::AudioSlider(QWidget *parent) +{ + Q_UNUSED(parent); +} + +AudioSlider::~AudioSlider() +{ + +} + +UkmediaOutputWidget::UkmediaOutputWidget(QWidget *parent) : QWidget(parent) +{ + //加载qss样式文件 + QFile QssFile("://combox.qss"); + QssFile.open(QFile::ReadOnly); + + if (QssFile.isOpen()){ + sliderQss = QLatin1String(QssFile.readAll()); + QssFile.close(); + } else { + qDebug()<<"combox.qss is not found"<setFrameShape(QFrame::Shape::Box); + m_pMasterVolumeWidget->setFrameShape(QFrame::Shape::Box); + m_pChannelBalanceWidget->setFrameShape(QFrame::Shape::Box); + m_pOutputSlectWidget->setFrameShape(QFrame::Shape::Box); + + //设置大小 + m_pOutputWidget->setMinimumSize(550,0); + m_pOutputWidget->setMaximumSize(16777215,180); + m_pMasterVolumeWidget->setMinimumSize(550,60); + m_pMasterVolumeWidget->setMaximumSize(16777215,60); + m_pChannelBalanceWidget->setMinimumSize(550,60); + m_pChannelBalanceWidget->setMaximumSize(16777215,60); + m_pOutputSlectWidget->setMinimumSize(550,60); + m_pOutputSlectWidget->setMaximumSize(16777215,60); + + m_pOutputLabel = new TitleLabel(this); + //~ contents_path /Audio/Output + m_pOutputLabel->setText(tr("Output")); + m_pOutputLabel->setStyleSheet("QLabel{color: palette(windowText);}"); + + //~ contents_path /Audio/Output Device + m_pOutputDeviceLabel = new QLabel(tr("Output Device"),m_pOutputSlectWidget); + m_pDeviceSelectBox = new QComboBox(m_pOutputSlectWidget); + //~ contents_path /Audio/Master Volume + m_pOpVolumeLabel = new QLabel(tr("Master Volume"),m_pMasterVolumeWidget); + m_pOutputIconBtn = new UkuiButtonDrawSvg(m_pMasterVolumeWidget); + m_pOpVolumeSlider = new AudioSlider(m_pMasterVolumeWidget); + m_pOpVolumePercentLabel = new QLabel(m_pMasterVolumeWidget); + //~ contents_path /Audio/Balance + m_pOpBalanceLabel = new QLabel(tr("Balance"),m_pChannelBalanceWidget); + m_pLeftBalanceLabel = new QLabel(tr("Left"),m_pChannelBalanceWidget); + m_pOpBalanceSlider = new UkmediaVolumeSlider(m_pChannelBalanceWidget,true); + m_pRightBalanceLabel = new QLabel(tr("Right"),m_pChannelBalanceWidget); + + m_pOpVolumeSlider->setOrientation(Qt::Horizontal); + m_pOpBalanceSlider->setOrientation(Qt::Horizontal); + m_pOpVolumeSlider->setRange(0,100); + m_pOutputIconBtn->setFocusPolicy(Qt::NoFocus); + + + //选择输出设备框添加布局 + m_pOutputDeviceLabel->setFixedSize(140,20); + m_pDeviceSelectBox->setFixedHeight(40); + QHBoxLayout *deviceSlectLayout = new QHBoxLayout(); + deviceSlectLayout->addItem(new QSpacerItem(16,20,QSizePolicy::Fixed)); + deviceSlectLayout->addWidget(m_pOutputDeviceLabel); + deviceSlectLayout->addItem(new QSpacerItem(93,20,QSizePolicy::Fixed)); + deviceSlectLayout->addWidget(m_pDeviceSelectBox); + deviceSlectLayout->addItem(new QSpacerItem(16,20,QSizePolicy::Fixed)); + deviceSlectLayout->setSpacing(0); + m_pOutputSlectWidget->setLayout(deviceSlectLayout); + m_pOutputSlectWidget->layout()->setContentsMargins(0,0,0,0); + + //主音量添加布局 + QHBoxLayout *masterLayout = new QHBoxLayout(m_pMasterVolumeWidget); + m_pOpVolumeLabel->setFixedSize(140,20); + m_pOutputIconBtn->setFixedSize(24,24); + m_pOpVolumeSlider->setFixedHeight(55); + m_pOpVolumePercentLabel->setFixedSize(55,20); + m_pOpVolumePercentLabel->setAlignment(Qt::AlignCenter); + masterLayout->addItem(new QSpacerItem(16,20,QSizePolicy::Fixed)); + masterLayout->addWidget(m_pOpVolumeLabel); + masterLayout->addItem(new QSpacerItem(93,20,QSizePolicy::Fixed)); + masterLayout->addWidget(m_pOutputIconBtn); + masterLayout->addItem(new QSpacerItem(16,20,QSizePolicy::Fixed)); + masterLayout->addWidget(m_pOpVolumeSlider); + masterLayout->addItem(new QSpacerItem(14,20,QSizePolicy::Fixed)); + masterLayout->addWidget(m_pOpVolumePercentLabel); + masterLayout->addItem(new QSpacerItem(10,20,QSizePolicy::Fixed)); + masterLayout->setSpacing(0); + m_pMasterVolumeWidget->setLayout(masterLayout); + m_pMasterVolumeWidget->layout()->setContentsMargins(0,0,0,0); + + //声道平衡添加布局 + QHBoxLayout *soundLayout = new QHBoxLayout(m_pChannelBalanceWidget); + m_pOpBalanceLabel->setFixedSize(110,20); + m_pLeftBalanceLabel->setFixedSize(40,30); + m_pOpBalanceSlider->setFixedHeight(55); + m_pRightBalanceLabel->setFixedSize(55,30); + m_pRightBalanceLabel->setAlignment(Qt::AlignCenter); + + + soundLayout->addItem(new QSpacerItem(16,20,QSizePolicy::Fixed)); + soundLayout->addWidget(m_pOpBalanceLabel); + soundLayout->addItem(new QSpacerItem(123,20,QSizePolicy::Fixed)); + soundLayout->addWidget(m_pLeftBalanceLabel); +// soundLayout->addItem(new QSpacerItem(26,20,QSizePolicy::Fixed)); + soundLayout->addWidget(m_pOpBalanceSlider); + soundLayout->addItem(new QSpacerItem(14,20,QSizePolicy::Fixed)); + soundLayout->addWidget(m_pRightBalanceLabel); + soundLayout->addItem(new QSpacerItem(10,20,QSizePolicy::Fixed)); + soundLayout->setSpacing(0); + m_pChannelBalanceWidget->setLayout(soundLayout); + m_pChannelBalanceWidget->layout()->setContentsMargins(0,0,0,0); + + QFrame *outputselectAndVolume = myLine(); + QFrame *volumeAndBalance = myLine(); + + //进行整体布局 + m_pVlayout = new QVBoxLayout(m_pOutputWidget); + m_pVlayout->setContentsMargins(0,0,0,0); + m_pVlayout->addWidget(m_pOutputSlectWidget); + m_pVlayout->addWidget(outputselectAndVolume); + m_pVlayout->addWidget(m_pMasterVolumeWidget); + m_pVlayout->addWidget(volumeAndBalance); + m_pVlayout->addWidget(m_pChannelBalanceWidget); + m_pVlayout->setSpacing(0); +// m_pOutputWidget->setLayout(m_pVlayout); +// m_pOutputWidget->layout()->setContentsMargins(0,0,0,0); + + QVBoxLayout *vLayout1 = new QVBoxLayout(this); + vLayout1->addWidget(m_pOutputLabel); + vLayout1->addItem(new QSpacerItem(16,4,QSizePolicy::Fixed)); + vLayout1->addWidget(m_pOutputWidget); + this->setLayout(vLayout1); + this->layout()->setContentsMargins(0,0,0,0); + + m_pMasterVolumeWidget->setObjectName("masterVolumeWidget"); + //设置样式 + m_pOutputLabel->setObjectName("m_pOutputLabel"); + +} + +QFrame* UkmediaOutputWidget::myLine() +{ + QFrame *line = new QFrame(this); + line->setMinimumSize(QSize(0, 1)); + line->setMaximumSize(QSize(16777215, 1)); + line->setLineWidth(0); + line->setFrameShape(QFrame::HLine); + line->setFrameShadow(QFrame::Sunken); + + return line; +} + +UkmediaOutputWidget::~UkmediaOutputWidget() +{ + +} diff --git a/audio/ukmedia_output_widget.h b/audio/ukmedia_output_widget.h new file mode 100644 index 0000000..97d140c --- /dev/null +++ b/audio/ukmedia_output_widget.h @@ -0,0 +1,136 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- + * + * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * + * 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. + * + */ +#ifndef UKMEDIAOUTPUTWIDGET_H +#define UKMEDIAOUTPUTWIDGET_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "ukui_custom_style.h" +#include "ukui_list_widget_item.h" +#include "customstyle.h" +#include +#include + +class AudioSlider : public QSlider +{ + Q_OBJECT +public: + AudioSlider(QWidget *parent = nullptr); + ~AudioSlider(); + friend class UkmediaInputWidget; + +Q_SIGNALS: + void silderPressSignal(); + void silderReleaseSignal(); + +protected: + void mousePressEvent(QMouseEvent *ev) + { + //注意应先调用父类的鼠标点击处理事件,这样可以不影响拖动的情况 + + //获取鼠标的位置,这里并不能直接从ev中取值(因为如果是拖动的话,鼠标开始点击的位置没有意义了) + int value = 0; + int currentX = ev->pos().x(); + double per = currentX * 1.0 / this->width(); + if ((this->maximum() - this->minimum()) >= 50) { //减小鼠标点击像素的影响 + value = qRound(per*(this->maximum() - this->minimum())) + this->minimum(); + if (value <= (this->maximum() / 2 - this->maximum() / 10 + this->minimum() / 10)) { + value = qRound(per*(this->maximum() - this->minimum() - 1)) + this->minimum(); + } else if (value > (this->maximum() / 2 + this->maximum() / 10 + this->minimum() / 10)) { + value = qRound(per*(this->maximum() - this->minimum() + 1)) + this->minimum(); + } else { + value = qRound(per*(this->maximum() - this->minimum())) + this->minimum(); + } + } else { + value = qRound(per*(this->maximum() - this->minimum())) + this->minimum(); + } + this->setValue(value); + QSlider::mousePressEvent(ev); + //向父窗口发送自定义事件event type,这样就可以在父窗口中捕获这个事件进行处理 + QEvent evEvent(static_cast(QEvent::User + 1)); + QCoreApplication::sendEvent(parentWidget(), &evEvent); + } + void mouseReleaseEvent(QMouseEvent *ev) + { + if(mousePress){ + Q_EMIT silderReleaseSignal(); + } + mousePress = false; + mouseClickFlag = true; + QSlider::mouseReleaseEvent(ev); + } + void wheelEvent(QWheelEvent* ev) + { + if(mouseClickFlag) + QSlider::wheelEvent(ev); + } + void leaveEvent(QEvent *ev) + { + mouseClickFlag = false; + QSlider::leaveEvent(ev); + } +private: + bool mousePress = false; + bool mouseClickFlag = false; +}; + +class UkmediaOutputWidget : public QWidget +{ + Q_OBJECT +public: + explicit UkmediaOutputWidget(QWidget *parent = nullptr); + ~UkmediaOutputWidget(); + friend class UkmediaMainWidget; +Q_SIGNALS: + +public Q_SLOTS: + +private: + QFrame* myLine(); + QFrame *m_pOutputWidget; + QFrame *m_pMasterVolumeWidget; + QFrame *m_pChannelBalanceWidget; + + TitleLabel *m_pOutputLabel; + QLabel *m_pOutputDeviceLabel; + QLabel *m_pOpVolumeLabel; + QLabel *m_pOpVolumePercentLabel; + QLabel *m_pOpBalanceLabel; + QLabel *m_pLeftBalanceLabel; + QLabel *m_pRightBalanceLabel; + + QComboBox *m_pDeviceSelectBox; + QFrame *m_pOutputSlectWidget; + + UkuiButtonDrawSvg *m_pOutputIconBtn; + AudioSlider *m_pOpVolumeSlider; + UkmediaVolumeSlider *m_pOpBalanceSlider; + QVBoxLayout *m_pVlayout; + QString sliderQss; +}; + +#endif // UKMEDIAOUTPUTWIDGET_H diff --git a/audio/ukmedia_slider_tip_label_helper.cpp b/audio/ukmedia_slider_tip_label_helper.cpp new file mode 100644 index 0000000..a20c534 --- /dev/null +++ b/audio/ukmedia_slider_tip_label_helper.cpp @@ -0,0 +1,168 @@ +/* + * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * + * 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, 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 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "ukui_custom_style.h" + +MediaSliderTipLabel::MediaSliderTipLabel(){ + setAttribute(Qt::WA_TranslucentBackground); +} + +MediaSliderTipLabel::~MediaSliderTipLabel(){ +} + +void MediaSliderTipLabel::paintEvent(QPaintEvent *e) +{ + QStyleOptionFrame opt; + initStyleOption(&opt); + QStylePainter p(this); +// p.setBrush(QBrush(QColor(0x1A,0x1A,0x1A,0x4C))); + p.setBrush(QBrush(QColor(0xFF,0xFF,0xFF,0x33))); + p.setPen(Qt::NoPen); + p.drawRoundedRect(this->rect(), 1, 1); + QPainterPath path; + path.addRoundedRect(opt.rect,6,6); + p.setRenderHint(QPainter::Antialiasing); + setProperty("blurRegion",QRegion(path.toFillPolygon().toPolygon())); + p.drawPrimitive(QStyle::PE_PanelTipLabel, opt); + this->setProperty("blurRegion", QRegion(QRect(0, 0, 1, 1))); + QLabel::paintEvent(e); +} + +SliderTipLabelHelper::SliderTipLabelHelper(QObject *parent) :QObject(parent) +{ + m_pTiplabel = new MediaSliderTipLabel(); + m_pTiplabel->setWindowFlags(Qt::ToolTip); + qApp->installEventFilter(new AppEventFilter(this)); + m_pTiplabel->setFixedSize(52,30); + m_pTiplabel->setAlignment(Qt::AlignHCenter | Qt::AlignVCenter); +} + +void SliderTipLabelHelper::registerWidget(QWidget *w) +{ + w->removeEventFilter(this); + w->installEventFilter(this); +} + +void SliderTipLabelHelper::unregisterWidget(QWidget *w) +{ + w->removeEventFilter(this); +} + +bool SliderTipLabelHelper::eventFilter(QObject *obj, QEvent *e) +{ + auto slider = qobject_cast(obj); + if (obj == slider) { + switch (e->type()) { + case QEvent::MouseMove: { + QMouseEvent *event = static_cast(e); + mouseMoveEvent(obj, event); + return false; + } + case QEvent::MouseButtonRelease: { + QMouseEvent *event = static_cast(e); + mouseReleaseEvent(obj, event); + return false; + } + case QEvent::MouseButtonPress:{ + QMouseEvent *event = static_cast(e); + mousePressedEvent(obj,event); + } + + default: + return false; + } + } + return QObject::eventFilter(obj,e); +} + + +void SliderTipLabelHelper::mouseMoveEvent(QObject *obj, QMouseEvent *e) +{ + Q_UNUSED(e); + QRect rect; + QStyleOptionSlider m_option; + auto slider = qobject_cast(obj); + slider->initStyleOption(&m_option); + rect = slider->style()->subControlRect(QStyle::CC_Slider, &m_option,QStyle::SC_SliderHandle,slider); + QPoint gPos = slider->mapToGlobal(rect.topLeft()); + QString percent; + percent = QString::number(slider->value()); + percent.append("%"); + m_pTiplabel->setText(percent); + m_pTiplabel->move(gPos.x()-(m_pTiplabel->width()/2)+9,gPos.y()-m_pTiplabel->height()-1); + m_pTiplabel->show(); +} + +void SliderTipLabelHelper::mouseReleaseEvent(QObject *obj, QMouseEvent *e) +{ + Q_UNUSED(obj); + Q_UNUSED(e); + m_pTiplabel->hide(); +} + +void SliderTipLabelHelper::mousePressedEvent(QObject *obj, QMouseEvent *e) +{ + Q_UNUSED(e); + QStyleOptionSlider m_option; + auto slider = qobject_cast(obj); + QRect rect; + //获取鼠标的位置,这里并不能直接从ev中取值(因为如果是拖动的话,鼠标开始点击的位置没有意义了) + double pos = e->pos().x() / (double)slider->width(); + slider->setValue(pos *(slider->maximum() - slider->minimum()) + slider->minimum()); + //向父窗口发送自定义事件event type,这样就可以在父窗口中捕获这个事件进行处理 + QEvent evEvent(static_cast(QEvent::User + 1)); + QCoreApplication::sendEvent(obj, &evEvent); + int value = pos *(slider->maximum() - slider->minimum()) + slider->minimum(); + + slider->initStyleOption(&m_option); + rect = slider->style()->subControlRect(QStyle::CC_Slider, &m_option,QStyle::SC_SliderHandle,slider); + QPoint gPos = slider->mapToGlobal(rect.topLeft()); + QString percent; + + percent = QString::number(slider->value());//(m_option.sliderValue); + percent.append("%"); + + m_pTiplabel->setText(percent); + m_pTiplabel->move(gPos.x()-(m_pTiplabel->width()/2)+9,gPos.y()-m_pTiplabel->height()-1); + m_pTiplabel->show(); +} + +// AppEventFilter +AppEventFilter::AppEventFilter(SliderTipLabelHelper *parent) : QObject(parent) +{ + m_wm = parent; +} + +bool AppEventFilter::eventFilter(QObject *obj, QEvent *e) +{ + Q_UNUSED(obj); + Q_UNUSED(e); + return false; +} + diff --git a/audio/ukmedia_slider_tip_label_helper.h b/audio/ukmedia_slider_tip_label_helper.h new file mode 100644 index 0000000..09e0cbc --- /dev/null +++ b/audio/ukmedia_slider_tip_label_helper.h @@ -0,0 +1,65 @@ +/* + * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * + * 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, 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 +#include +#include "ukui_custom_style.h" + +class MediaSliderTipLabel:public QLabel +{ + public: + MediaSliderTipLabel(); + ~MediaSliderTipLabel(); +protected: + void paintEvent(QPaintEvent*); +}; + +class SliderTipLabelHelper : public QObject +{ + Q_OBJECT + friend class AppEventFilter; +public: + SliderTipLabelHelper(QObject *parent = nullptr); + ~SliderTipLabelHelper() {} + void registerWidget(QWidget *w); + void unregisterWidget(QWidget *w); + bool eventFilter(QObject *obj, QEvent *e); + + void mouseMoveEvent(QObject *obj, QMouseEvent *e); + void mouseReleaseEvent(QObject *obj, QMouseEvent *e); + void mousePressedEvent(QObject *obj,QMouseEvent *e); +private: + MediaSliderTipLabel *m_pTiplabel; +}; + +class AppEventFilter : public QObject +{ + friend class SliderTipLabelHelper; + Q_OBJECT +private: + explicit AppEventFilter(SliderTipLabelHelper *parent); + ~AppEventFilter() {} + + bool eventFilter(QObject *obj, QEvent *e); + + SliderTipLabelHelper *m_wm = nullptr; +}; + +#endif // SLIDERTIPLABELHELPER_H diff --git a/audio/ukmedia_sound_effects_widget.cpp b/audio/ukmedia_sound_effects_widget.cpp new file mode 100644 index 0000000..1cf2b35 --- /dev/null +++ b/audio/ukmedia_sound_effects_widget.cpp @@ -0,0 +1,282 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- + * + * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * + * 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. + * + */ +#include "ukmedia_sound_effects_widget.h" +#include +#include +#include +#include + +UkuiMessageBox::UkuiMessageBox() +{ +} + +UkmediaSoundEffectsWidget::UkmediaSoundEffectsWidget(QWidget *parent) : QWidget(parent) +{ + m_pSystemSoundWidget = new QFrame(this); + m_pStartupMusicWidget = new QFrame(m_pSystemSoundWidget); + m_pPoweroffMusicWidget = new QFrame(m_pSystemSoundWidget); + m_pLagoutWidget = new QFrame(m_pSystemSoundWidget); + m_pWakeupMusicWidget = new QFrame(m_pSystemSoundWidget); + + m_pAlertSoundFrame = new QFrame(this); + m_pAlertSoundSwitchWidget = new QFrame(m_pAlertSoundFrame); + m_pThemeWidget = new QFrame(m_pAlertSoundSwitchWidget); + m_pAlertSoundWidget = new QFrame(m_pAlertSoundSwitchWidget); + m_pVolumeChangeWidget = new QFrame(m_pAlertSoundSwitchWidget); + + m_pSystemSoundWidget->setFrameShape(QFrame::Shape::Box); + m_pStartupMusicWidget->setFrameShape(QFrame::Shape::Box); + m_pPoweroffMusicWidget->setFrameShape(QFrame::Shape::Box); + m_pLagoutWidget->setFrameShape(QFrame::Shape::Box); + m_pWakeupMusicWidget->setFrameShape(QFrame::Shape::Box); + + m_pAlertSoundFrame->setFrameShape(QFrame::Shape::Box); + m_pAlertSoundSwitchWidget->setFrameShape(QFrame::Shape::Box); + m_pThemeWidget->setFrameShape(QFrame::Shape::Box); + m_pAlertSoundWidget->setFrameShape(QFrame::Shape::Box); + m_pVolumeChangeWidget->setFrameShape(QFrame::Shape::Box); + + //~ contents_path /Audio/System Sound 系统音效文本框 + m_pSoundEffectLabel = new TitleLabel(this); + m_pSoundEffectLabel->setText(tr("System Sound")); + m_pSoundEffectLabel->setStyleSheet("QLabel{color: palette(windowText);}"); + //~ contents_path /Audio/Sound Theme + m_pSoundThemeLabel = new QLabel(tr("Sound Theme"),m_pThemeWidget);//提示音下的系统音效主题 + m_pSoundThemeCombobox = new QComboBox(m_pThemeWidget); + //~ contents_path /Audio/Alert Sound + m_pShutdownlabel = new QLabel(tr("Alert Sound"),m_pAlertSoundWidget);//提示音下的通知提示 + m_pAlertSoundCombobox = new QComboBox(m_pAlertSoundWidget); + //~ contents_path /Audio/Beep Switch + m_pAlertSoundSwitchLabel = new QLabel(tr("Beep Switch"),m_pAlertSoundSwitchWidget);//提示音 + //~ contents_path /Audio/Poweroff Music + m_pPoweroffMusicLabel = new QLabel(tr("Poweroff Music"),m_pPoweroffMusicWidget);//关机 + //~ contents_path /Audio/Startup Music + m_pStartupMusicLabel = new QLabel(tr("Startup Music"),m_pStartupMusicWidget);//开机 + //~ contents_path /Audio/Wakeup Music + m_pWakeupMusicLabel = new QLabel(tr("Wakeup Music"),m_pWakeupMusicWidget);//唤醒 + //~ contents_path /Audio/Volume Change + m_pVolumeChangeLabel = new QLabel(tr("Volume Change"),m_pVolumeChangeWidget);//音量调节 + //~ contents_path /Audio/Logout Music + m_pLagoutLabel = new QLabel(tr("Logout Music"),m_pLagoutWidget);//注销 + + m_pLagoutCombobox = new QComboBox(m_pLagoutWidget); + m_pStartupButton = new SwitchButton(m_pStartupMusicWidget); + m_pLogoutButton = new SwitchButton(m_pLagoutWidget); + m_pWakeupMusicButton = new SwitchButton(m_pWakeupMusicWidget); + m_pPoweroffButton = new SwitchButton(m_pPoweroffMusicWidget); + m_pVolumeChangeCombobox = new QComboBox(m_pVolumeChangeWidget); + m_pAlertSoundSwitchButton = new SwitchButton(m_pAlertSoundSwitchWidget); + + //设置大小 + m_pSystemSoundWidget->setMinimumSize(550,0); + m_pSystemSoundWidget->setMaximumSize(16777215,240); + m_pStartupMusicWidget->setMinimumSize(550,60); + m_pStartupMusicWidget->setMaximumSize(16777215,60); + m_pPoweroffMusicWidget->setMinimumSize(550,60); + m_pPoweroffMusicWidget->setMaximumSize(16777215,60); + m_pLagoutWidget->setMinimumSize(550,60); + m_pLagoutWidget->setMaximumSize(16777215,60); + m_pWakeupMusicWidget->setMinimumSize(550,60); + m_pWakeupMusicWidget->setMaximumSize(16777215,60); + + m_pAlertSoundWidget->setMinimumSize(550,0); + m_pAlertSoundWidget->setMaximumSize(16777215,240); + m_pAlertSoundSwitchWidget->setMinimumSize(550,60); + m_pAlertSoundSwitchWidget->setMaximumSize(16777215,60); + m_pThemeWidget->setMinimumSize(550,60); + m_pThemeWidget->setMaximumSize(16777215,60); + m_pAlertSoundWidget->setMinimumSize(550,60); + m_pAlertSoundWidget->setMaximumSize(16777215,60); + m_pVolumeChangeWidget->setMinimumSize(550,60); + m_pVolumeChangeWidget->setMaximumSize(16777215,60); + + m_pSoundEffectLabel->setFixedSize(150,32); + m_pSoundThemeLabel->setFixedSize(150,40); + m_pShutdownlabel->setFixedSize(120,40); +// m_pLagoutLabel->setFixedSize(150,32); +// m_pWakeupMusicLabel->setFixedSize(150,32); + m_pVolumeChangeLabel->setFixedSize(150,40); + m_pPoweroffMusicLabel->setFixedSize(150,32); + +// m_pSoundThemeCombobox->setMinimumSize(50,32); +// m_pSoundThemeCombobox->setMaximumSize(900,32); + +// m_pAlertSoundCombobox->setMinimumSize(50,32); +// m_pAlertSoundCombobox->setMaximumSize(900,32); +// m_pLagoutCombobox->setMinimumSize(50,32); +// m_pLagoutCombobox->setMaximumSize(900,32); + +// m_pVolumeChangeCombobox->setMinimumSize(50,32); +// m_pVolumeChangeCombobox->setMaximumSize(900,32); + + m_pSoundThemeCombobox->setFixedHeight(40); + m_pAlertSoundCombobox->setFixedHeight(40); + m_pVolumeChangeCombobox->setFixedHeight(40); + + //添加布局 + QHBoxLayout *themeLayout = new QHBoxLayout(m_pThemeWidget); + themeLayout->addItem(new QSpacerItem(16,20,QSizePolicy::Fixed)); + themeLayout->addWidget(m_pSoundThemeLabel); + themeLayout->addItem(new QSpacerItem(83,20,QSizePolicy::Fixed)); + themeLayout->addWidget(m_pSoundThemeCombobox); + themeLayout->addItem(new QSpacerItem(16,20,QSizePolicy::Fixed)); + themeLayout->setSpacing(0); + m_pThemeWidget->setLayout(themeLayout); + m_pThemeWidget->layout()->setContentsMargins(0,0,0,0); + + QHBoxLayout *AlertLayout = new QHBoxLayout(m_pAlertSoundWidget); + AlertLayout->addItem(new QSpacerItem(16,20,QSizePolicy::Fixed)); + AlertLayout->addWidget(m_pShutdownlabel); + AlertLayout->addItem(new QSpacerItem(113,20,QSizePolicy::Fixed)); + AlertLayout->addWidget(m_pAlertSoundCombobox); + AlertLayout->addItem(new QSpacerItem(16,20,QSizePolicy::Fixed)); + AlertLayout->setSpacing(0); + m_pAlertSoundWidget->setLayout(AlertLayout); + m_pAlertSoundWidget->layout()->setContentsMargins(0,0,0,0); + + //开机音乐设置开关 + QHBoxLayout *startupLayout = new QHBoxLayout(m_pStartupMusicWidget); + startupLayout->addItem(new QSpacerItem(16,20,QSizePolicy::Fixed)); + startupLayout->addWidget(m_pStartupMusicLabel); + startupLayout->addWidget(m_pStartupButton); + startupLayout->addItem(new QSpacerItem(16,20,QSizePolicy::Fixed)); + startupLayout->setSpacing(0); + m_pStartupMusicWidget->setLayout(startupLayout); + m_pStartupMusicWidget->layout()->setContentsMargins(0,0,0,0); + + //注销提示音布局 + QHBoxLayout *lagoutLayout = new QHBoxLayout(m_pLagoutWidget); + lagoutLayout->addItem(new QSpacerItem(16,20,QSizePolicy::Fixed)); + lagoutLayout->addWidget(m_pLagoutLabel); +// lagoutLayout->addItem(new QSpacerItem(16,20,QSizePolicy::Expanding)); + lagoutLayout->addWidget(m_pLogoutButton); + lagoutLayout->addItem(new QSpacerItem(16,20,QSizePolicy::Fixed)); + lagoutLayout->setSpacing(0); + m_pLagoutWidget->setLayout(lagoutLayout); + m_pLagoutWidget->layout()->setContentsMargins(0,0,0,0); + m_pLagoutCombobox->setVisible(false); + + //提示音开关布局 + QHBoxLayout *alertSoundLayout = new QHBoxLayout(m_pAlertSoundSwitchWidget); + alertSoundLayout->addItem(new QSpacerItem(16,20,QSizePolicy::Fixed)); + alertSoundLayout->addWidget(m_pAlertSoundSwitchLabel); + alertSoundLayout->addItem(new QSpacerItem(16,20,QSizePolicy::Expanding)); + alertSoundLayout->addWidget(m_pAlertSoundSwitchButton); + alertSoundLayout->addItem(new QSpacerItem(16,20,QSizePolicy::Fixed)); + alertSoundLayout->setSpacing(0); + m_pAlertSoundSwitchWidget->setLayout(alertSoundLayout); + m_pAlertSoundSwitchWidget->layout()->setContentsMargins(0,0,0,0); + + //窗口关闭提示音 + QHBoxLayout *wakeupMusicLayout = new QHBoxLayout(m_pWakeupMusicWidget); + wakeupMusicLayout->addItem(new QSpacerItem(16,20,QSizePolicy::Fixed)); + wakeupMusicLayout->addWidget(m_pWakeupMusicLabel); +// wakeupMusicLayout->addItem(new QSpacerItem(16,20,QSizePolicy::Fixed)); + wakeupMusicLayout->addWidget(m_pWakeupMusicButton); + wakeupMusicLayout->addItem(new QSpacerItem(16,20,QSizePolicy::Fixed)); + wakeupMusicLayout->setSpacing(0); + m_pWakeupMusicWidget->setLayout(wakeupMusicLayout); + m_pWakeupMusicWidget->layout()->setContentsMargins(0,0,0,0); + + //音量改变提示音 + QHBoxLayout *volumeChangedLayout = new QHBoxLayout(m_pVolumeChangeWidget); + volumeChangedLayout->addItem(new QSpacerItem(16,20,QSizePolicy::Fixed)); + volumeChangedLayout->addWidget(m_pVolumeChangeLabel); + volumeChangedLayout->addItem(new QSpacerItem(83,20,QSizePolicy::Fixed)); + volumeChangedLayout->addWidget(m_pVolumeChangeCombobox); + volumeChangedLayout->addItem(new QSpacerItem(16,20,QSizePolicy::Fixed)); + volumeChangedLayout->setSpacing(0); + m_pVolumeChangeWidget->setLayout(volumeChangedLayout); + m_pVolumeChangeWidget->layout()->setContentsMargins(0,0,0,0); + //关机提示音 + QHBoxLayout *poweroffLayout = new QHBoxLayout(m_pPoweroffMusicWidget); + poweroffLayout->addItem(new QSpacerItem(16,20,QSizePolicy::Fixed)); + poweroffLayout->addWidget(m_pPoweroffMusicLabel); + poweroffLayout->addItem(new QSpacerItem(16,20,QSizePolicy::Expanding)); + poweroffLayout->addWidget(m_pPoweroffButton); + poweroffLayout->addItem(new QSpacerItem(16,20,QSizePolicy::Fixed)); + poweroffLayout->setSpacing(0); + m_pPoweroffMusicWidget->setLayout(poweroffLayout); + m_pPoweroffMusicWidget->layout()->setContentsMargins(0,0,0,0); + + QFrame *startupAndPoweroff = myLine(); + QFrame *poweroffAndLagout = myLine(); + QFrame *lagoutAndWakeup = myLine(); + line1 = myLine(); + line2 = myLine(); + line3 = myLine(); + + QVBoxLayout *systemSoundLayout = new QVBoxLayout(m_pSystemSoundWidget); + systemSoundLayout->setContentsMargins(0,0,0,0); + systemSoundLayout->addWidget(m_pStartupMusicWidget); + systemSoundLayout->addWidget(startupAndPoweroff); + systemSoundLayout->addWidget(m_pPoweroffMusicWidget); + systemSoundLayout->addWidget(poweroffAndLagout); + systemSoundLayout->addWidget(m_pLagoutWidget); + systemSoundLayout->addWidget(lagoutAndWakeup); + systemSoundLayout->addWidget(m_pWakeupMusicWidget); + systemSoundLayout->setSpacing(0); + m_pSystemSoundWidget->setLayout(systemSoundLayout); + + QVBoxLayout *SoundLayout = new QVBoxLayout(m_pAlertSoundFrame); + SoundLayout->setContentsMargins(0,0,0,0); + SoundLayout->addWidget(m_pAlertSoundSwitchWidget); + SoundLayout->addWidget(line1); + SoundLayout->addWidget(m_pThemeWidget); + SoundLayout->addWidget(line2); + SoundLayout->addWidget(m_pVolumeChangeWidget); + SoundLayout->addWidget(line3); + SoundLayout->addWidget(m_pAlertSoundWidget); + SoundLayout->setSpacing(0); + m_pAlertSoundFrame->setLayout(SoundLayout); + + //进行整体布局 + m_pSoundLayout = new QVBoxLayout(this); + m_pSoundLayout->addWidget(m_pSoundEffectLabel); + m_pSoundLayout->addItem(new QSpacerItem(16,4,QSizePolicy::Fixed)); + m_pSoundLayout->addWidget(m_pSystemSoundWidget); + m_pSoundLayout->addItem(new QSpacerItem(16,8,QSizePolicy::Fixed)); + m_pSoundLayout->addWidget(m_pAlertSoundFrame); + +// m_pAlertSoundWidget->hide(); +// m_pVolumeChangeWidget->hide(); +// m_pThemeWidget->hide(); + + this->setLayout(m_pSoundLayout); + m_pSoundLayout->setSpacing(0); + this->layout()->setContentsMargins(0,0,0,0); +} + +QFrame* UkmediaSoundEffectsWidget::myLine() +{ + QFrame *line = new QFrame(this); + line->setMinimumSize(QSize(0, 1)); + line->setMaximumSize(QSize(16777215, 1)); + line->setLineWidth(0); + line->setFrameShape(QFrame::HLine); + line->setFrameShadow(QFrame::Sunken); + + return line; +} + +UkmediaSoundEffectsWidget::~UkmediaSoundEffectsWidget() +{ + +} diff --git a/audio/ukmedia_sound_effects_widget.h b/audio/ukmedia_sound_effects_widget.h new file mode 100644 index 0000000..256359f --- /dev/null +++ b/audio/ukmedia_sound_effects_widget.h @@ -0,0 +1,95 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- + * + * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * + * 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. + * + */ +#ifndef UKMEDIASOUNDEFFECTSWIDGET_H +#define UKMEDIASOUNDEFFECTSWIDGET_H + +#include +#include +#include +#include +#include +#include +#include "ukui_custom_style.h" +#include "switchbutton.h" + +class UkuiMessageBox : public QMessageBox +{ +public: + explicit UkuiMessageBox(); +}; + +class UkmediaSoundEffectsWidget : public QWidget +{ + Q_OBJECT +public: + explicit UkmediaSoundEffectsWidget(QWidget *parent = nullptr); + ~UkmediaSoundEffectsWidget(); + friend class UkmediaMainWidget; +Q_SIGNALS: + +public Q_SLOTS: + +private: + QFrame *myLine(); + QFrame *m_pSystemSoundWidget;//存放注销、唤醒、开机、关机提示音的窗口 + QFrame *m_pLagoutWidget;//注销提示音窗口 + QFrame *m_pWakeupMusicWidget;//唤醒音乐窗口 + QFrame *m_pStartupMusicWidget;//设置开机音乐窗口 + QFrame *m_pPoweroffMusicWidget;//关机提示音 + + QFrame *m_pAlertSoundFrame;//存放注销、唤醒、开机、关机提示音的窗口 + QFrame *m_pAlertSoundSwitchWidget;//提示音开关窗口 + QFrame *m_pThemeWidget;//提示音下的系统音效主题 + QFrame *m_pAlertSoundWidget;//提示音下的通知提示 + QFrame *m_pVolumeChangeWidget;//提示音下的音量调节 + QFrame *line1; + QFrame *line2; + QFrame *line3; + + + QString qss; + QStyledItemDelegate *itemDelegate; + TitleLabel *m_pSoundEffectLabel; + QLabel *m_pSoundThemeLabel; + QLabel *m_pShutdownlabel; + QLabel *m_pLagoutLabel; + QLabel *m_pAlertSoundSwitchLabel; +// QLabel *m_pAlertSoundLabel; +// QLabel *m_pAlertVolumeLabel; + QLabel *m_pWakeupMusicLabel; + QLabel *m_pVolumeChangeLabel; + QLabel *m_pPoweroffMusicLabel; + QLabel *m_pStartupMusicLabel; + + QComboBox *m_pSoundThemeCombobox; + QComboBox *m_pAlertSoundCombobox; + QComboBox *m_pLagoutCombobox; + QComboBox *m_pVolumeChangeCombobox; + QVBoxLayout *m_pSoundLayout; + SwitchButton *m_pStartupButton; + SwitchButton *m_pPoweroffButton; + SwitchButton *m_pLogoutButton; + SwitchButton *m_pAlertSoundSwitchButton; + SwitchButton *m_pWakeupMusicButton; +// UkmediaVolumeSlider *m_pAlertSlider; +// UkuiButtonDrawSvg *m_pAlertIconBtn; +}; + +#endif // UKMEDIASOUNDEFFECTSWIDGET_H diff --git a/audio/ukmedia_volume_control.cpp b/audio/ukmedia_volume_control.cpp new file mode 100644 index 0000000..f212b99 --- /dev/null +++ b/audio/ukmedia_volume_control.cpp @@ -0,0 +1,2145 @@ +#include "ukmedia_volume_control.h" +#ifdef HAVE_CONFIG_H +#include +#endif + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +//pa_sink_info *m_pDefaultSink; +/* Used for profile sorting */ + +int reconnect_timeout; +struct profile_prio_compare { + bool operator() (pa_card_profile_info2 const * const lhs, pa_card_profile_info2 const * const rhs) const { + + if (lhs->priority == rhs->priority) + return strcmp(lhs->name, rhs->name) > 0; + + return lhs->priority > rhs->priority; + } +}; + +struct sink_port_prio_compare { + bool operator() (const pa_sink_port_info& lhs, const pa_sink_port_info& rhs) const { + + if (lhs.priority == rhs.priority) + return strcmp(lhs.name, rhs.name) > 0; + + return lhs.priority > rhs.priority; + } +}; + +struct source_port_prio_compare { + bool operator() (const pa_source_port_info& lhs, const pa_source_port_info& rhs) const { + + if (lhs.priority == rhs.priority) + return strcmp(lhs.name, rhs.name) > 0; + + return lhs.priority > rhs.priority; + } +}; + +UkmediaVolumeControl::UkmediaVolumeControl(): + canRenameDevices(false), + m_connected(false), + m_config_filename(nullptr) { + + profileNameMap.clear(); + connectToPulse(this); +} + +/* + * 设置输出设备静音 + */ +bool UkmediaVolumeControl::setSinkMute(bool status) +{ + pa_operation* o; + + if (!(o = pa_context_set_sink_mute_by_index(getContext(), sinkIndex, status, nullptr, nullptr))) { + showError(tr("pa_context_set_sink_volume_by_index() failed").toUtf8().constData()); + return false; + } + return true; +} + +/* + * 设置输出设备音量 + */ +bool UkmediaVolumeControl::setSinkVolume(int index,int value) +{ + pa_cvolume v = m_pDefaultSink->volume; + v.channels = channel; + + for (int i=0;ivolume; + v.channels = inputChannel; + + for (int i=0;ivolume; + v.channels = channel; + + for (int i=0;ivolume; + v.channels = sinkInputChannel; + for (int i=0;ivolume; + v.channels = sourceOutputChannel; + for (int i=0;i= 13) { + pa_operation* o; + qDebug() <<"killall source output index from setDefaultSource" << peakDetectIndex; + if (!(o = pa_context_kill_source_output(getContext(), peakDetectIndex, nullptr, nullptr))) + showError(tr("pa_context_set_default_source() failed").toUtf8().constData()); + if (sourceOutputVector.count()) + sourceOutputVector.removeAt(0); + sourceOutputVector.append(sourceIndex); + peak = createMonitorStreamForSource(sourceIndex, -1, !!(sourceFlags & PA_SOURCE_NETWORK)); + } + }); + + return true; +} + +/* + * 设置输出设备的端口 + */ +bool UkmediaVolumeControl::setSinkPort(const gchar *sinkName, const gchar *portName) +{ + qDebug() << "setSinkPort" << sinkName << portName; + pa_operation* o; + if (!(o = pa_context_set_sink_port_by_name(getContext(), sinkName, portName, nullptr, nullptr))) { + showError(tr("pa_context_set_sink_port_by_name() failed").toUtf8().constData()); + return false; + } + return true; +} + +/* + * 设置输入设备端口 + */ +bool UkmediaVolumeControl::setSourcePort(const gchar *sourceName, const gchar *portName) +{ + qDebug() << "setSourcePort" << sourceName << portName; + pa_operation* o; + if (!(o = pa_context_set_source_port_by_name(getContext(), sourceName, portName, nullptr, nullptr))) { + showError(tr("pa_context_set_source_port_by_name() failed").toUtf8().constData()); + return false; + } + return true; +} + +UkmediaVolumeControl::~UkmediaVolumeControl() { + + while (!clientNames.empty()) { + auto i = clientNames.begin(); + g_free(i->second); + clientNames.erase(i); + } +} + +static void updatePorts(UkmediaVolumeControl *d, std::map &ports) { + std::map::iterator it; + PortInfo p; + for (auto & port : d->dPorts) { + QByteArray desc; + it = ports.find(port.first); + + if (it == ports.end()) + continue; + + p = it->second; + desc = p.description; + + if (p.available == PA_PORT_AVAILABLE_YES) + desc += UkmediaVolumeControl::tr(" (plugged in)").toUtf8().constData(); + else if (p.available == PA_PORT_AVAILABLE_NO) { + if (p.name == "analog-output-speaker" || + p.name == "analog-input-microphone-internal") + desc += UkmediaVolumeControl::tr(" (unavailable)").toUtf8().constData(); + else + desc += UkmediaVolumeControl::tr(" (unplugged)").toUtf8().constData(); + } + + port.second = desc; + qDebug() << "updatePorts" << p.name << p.description; + } + + Q_EMIT d->updatePortSignal(); + it = ports.find(d->activePort); + + if (it != ports.end()) { + p = it->second; +// d->setLatencyOffset(p.latency_offset); + } +} + +static void setIconByName(QLabel* label, const char* name) { + QIcon icon = QIcon::fromTheme(name); + int size = label->style()->pixelMetric(QStyle::PM_ToolBarIconSize); + QPixmap pix = icon.pixmap(size, size); + label->setPixmap(pix); +} + +void UkmediaVolumeControl::updateCard(UkmediaVolumeControl *c, const pa_card_info &info) { + bool insertInputPort = false; + bool insertOutputPort = false; + bool is_new = false; + const char *description; + QMap tempInput; + QMap tempOutput; + QList profileName; + QMapportMap; + QMap outputPortNameLabelMap; + QMapinputPortNameLabelMap; + QMap profilePriorityMap; + std::set profile_priorities; + + description = pa_proplist_gets(info.proplist, PA_PROP_DEVICE_DESCRIPTION);//获取device.description字符串 + + hasSinks = c->hasSources = false; + profile_priorities.clear(); + for (pa_card_profile_info2 ** p_profile = info.profiles2; *p_profile != nullptr; ++p_profile) { + // c->hasSinks = c->hasSinks || ((*p_profile)->n_sinks > 0); + // c->hasSources = c->hasSources || ((*p_profile)->n_sources > 0); + profile_priorities.insert(*p_profile); + profileName.append((*p_profile)->name); + profilePriorityMap.insertMulti((*p_profile)->name,(*p_profile)->priority); + } + // cardProfilePriorityMap.insertMulti(info.index,profilePriorityMap); + QList> cardProfilePriorityMapList; + if(cardProfilePriorityMap.isEmpty()) + cardProfilePriorityMap.insertMulti(info.index,profilePriorityMap); + + cardProfilePriorityMapList = cardProfilePriorityMap.values(); + if(!cardProfilePriorityMapList.contains(profilePriorityMap)) + cardProfilePriorityMap.insertMulti(info.index,profilePriorityMap); + + c->ports.clear(); + for (uint32_t i = 0; i < info.n_ports; ++i) { + PortInfo p; + + p.name = info.ports[i]->name; + p.description = info.ports[i]->description; + p.priority = info.ports[i]->priority; + p.available = info.ports[i]->available; + p.direction = info.ports[i]->direction; + p.latency_offset = info.ports[i]->latency_offset; + if (info.ports[i]->profiles2) + for (pa_card_profile_info2 ** p_profile = info.ports[i]->profiles2; *p_profile != nullptr; ++p_profile) { + p.profiles.push_back((*p_profile)->name); + } + if (p.direction == 1 && p.available != PA_PORT_AVAILABLE_NO) { + // portMap.insertMulti(p.name,p.description.data()); + insertOutputPort = true; + + //新增UI设计,combobox显示portname+description + QString outputPortName = p.description.data();//端口名(如:扬声器,模拟耳机..) + QString outputPortName_and_description = outputPortName + "(" + description + ")"; + + qDebug() << "add sink port name "<< info.index << p.name << p.description.data() << description ; + tempOutput.insertMulti(p.name,outputPortName_and_description); + + QList portProfileName; + for (auto p_profile : p.profiles) { + portProfileName.append(p_profile.data()); + outputPortNameLabelMap.insertMulti(p.description.data(),p_profile.data()); + qDebug() << "ctf profilename map insert -----------" << p.description.data() << p_profile.data(); + } + profileNameMap.insert(info.index,outputPortNameLabelMap); + cardProfileMap.insert(info.index,portProfileName); + } + else if (p.direction == 2 && p.available != PA_PORT_AVAILABLE_NO){ + insertInputPort = true; + + //新增UI设计,combobox显示portname+description + QString inputPortName = p.description.data();//端口名(如:扬声器,模拟耳机..) + QString inputPortName_and_description = inputPortName + "(" + description + ")"; + + + qDebug() << "add source port name "<< info.index << p.name << p.description.data(); + tempInput.insertMulti(p.name,inputPortName_and_description); + for (auto p_profile : p.profiles) { + inputPortNameLabelMap.insertMulti(p.description.data(),p_profile.data()); + } + inputPortProfileNameMap.insert(info.index,inputPortNameLabelMap); + } + c->ports[p.name] = p; + } + if (insertInputPort) { + inputPortMap.insert(info.index,tempInput); + } + else { + inputPortMap.remove(info.index); + } + if (insertOutputPort) { + outputPortMap.insert(info.index,tempOutput); + } + else { + outputPortMap.remove(info.index); + } + cardActiveProfileMap.insert(info.index,info.active_profile->name); + + c->profiles.clear(); + for (auto p_profile : profile_priorities) { + bool hasNo = false, hasOther = false; + std::map::iterator portIt; + QByteArray desc = p_profile->description; + + for (portIt = c->ports.begin(); portIt != c->ports.end(); portIt++) { + PortInfo port = portIt->second; + + if (std::find(port.profiles.begin(), port.profiles.end(), p_profile->name) == port.profiles.end()) + continue; + + if (port.available == PA_PORT_AVAILABLE_NO) + hasNo = true; + else { + hasOther = true; + break; + } + } + if (hasNo && !hasOther) + desc += tr(" (unplugged)").toUtf8().constData(); + + if (!p_profile->available) + desc += tr(" (unavailable)").toUtf8().constData(); + + c->profiles.push_back(std::pair(p_profile->name, desc)); + if (p_profile->n_sinks == 0 && p_profile->n_sources == 0) + c->noInOutProfile = p_profile->name; + } + c->activeProfile = info.active_profile ? info.active_profile->name : ""; + + /* Because the port info for sinks and sources is discontinued we need + * to update the port info for them here. */ + updatePorts(c,c->ports); + if (is_new) + updateDeviceVisibility(); + + Q_EMIT checkDeviceSelectionSianal(&info); + // c->updating = false; +} + +/* + * Update output device when the default output device or port is updated + */ +bool UkmediaVolumeControl::updateSink(UkmediaVolumeControl *w,const pa_sink_info &info) { + bool is_new = false; + m_defaultSinkVolume = info.volume; + QMaptemp; + int volume; + if (info.volume.channels >= 2) + volume = MAX(info.volume.values[0],info.volume.values[1]); + else + volume = info.volume.values[0]; + + //默认的输出音量 + if (info.name && strcmp(defaultSinkName.data(),info.name) == 0) { + //channel和sinkIndex在此处必须更新 + channel = info.volume.channels; + sinkIndex= info.index; + balance = pa_cvolume_get_balance(&info.volume,&info.channel_map); + defaultChannelMap = info.channel_map; + channelMap = info.channel_map; + if (info.active_port) { + sinkActivePortMap.insert(info.name,info.active_port->name);//huawei特殊处理 + if(strcmp(sinkPortName.toLatin1().data(),info.active_port->name) != 0){ + sinkPortName = info.active_port->name; + //QTimer::singleShot(100,this,SLOT(timeoutSlot())); + } + else + sinkPortName = info.active_port->name; + } + defaultOutputCard = info.card; +/* + bug:96232、95568、95523 解决 hw-panguw 机型,找不到对于sinkPortName导致音量无法同步、静音按钮只能按一次等问题 +*/ + QString temp = ""; + if (sinkPortName.contains("histen-algo",Qt::CaseInsensitive)) { + sinkPortName = findSinkActivePortName(PANGUW_SINK); + temp = "histen-algo"; + } + if (sinkVolume != volume || sinkMuted != info.mute) + { + if(temp != "") + sinkPortName = temp; + + sinkVolume = volume; + sinkMuted = info.mute; + Q_EMIT updateVolume(sinkVolume,sinkMuted); + } + + } + + if (info.ports) { + for (pa_sink_port_info ** sinkPort = info.ports; *sinkPort != nullptr; ++sinkPort) { + temp.insertMulti(info.name,(*sinkPort)->name); + } + QList > sinkPortMapList; + if(sinkPortMap.isEmpty()) + sinkPortMap.insertMulti(info.card,temp); + sinkPortMapList = sinkPortMap.values(); + + if(!sinkPortMapList.contains(temp)) + sinkPortMap.insertMulti(info.card,temp); + + qDebug() << "updateSink" << "defauleSinkName:" << defaultSinkName.data() << "sinkport" << sinkPortName << "sinkVolume" << sinkVolume ; + + const char *icon; + // std::map::iterator cw; + std::set port_priorities; + + + port_priorities.clear(); + for (uint32_t i=0; iports.clear(); + } + if (is_new) + updateDeviceVisibility(); + return is_new; +} + +QString UkmediaVolumeControl::findSinkActivePortName(QString name) +{ + QString portName = ""; + QMap::iterator at; + for (at=sinkActivePortMap.begin();at!=sinkActivePortMap.end();++at) { + if (at.key() == name) { + portName = at.value(); + break; + } + } + return portName; +} + +QString UkmediaVolumeControl::stringRemoveUnrecignizedChar(QString str) { + str.remove(" "); + str.remove("/"); + str.remove("("); + str.remove(")"); + str.remove("["); + str.remove("]"); + return str; +} + + +/* + * stream suspend callback + */ +static void suspended_callback(pa_stream *s, void *userdata) { + UkmediaVolumeControl *w = static_cast(userdata); + + if (pa_stream_is_suspended(s)) + w->updateVolumeMeter(pa_stream_get_device_index(s), PA_INVALID_INDEX, -1); +} + +void UkmediaVolumeControl::readCallback(pa_stream *s, size_t length, void *userdata) { + UkmediaVolumeControl *w = static_cast(userdata); + const void *data; + double v; + int index; + + index = pa_stream_get_device_index(s); + QString deviceName = pa_stream_get_device_name(s); + QString sourceName = w->defaultSourceName; + + if(strcmp(deviceName.toLatin1().data(),sourceName.toLatin1().data()) == 0) { + if (pa_stream_peek(s, &data, &length) < 0) { + w->showError(UkmediaVolumeControl::tr("Failed to read data from stream").toUtf8().constData()); + return; + } + } + else { + return; + } + + if (!data) { + /* nullptr data means either a hole or empty buffer. + * Only drop the stream when there is a hole (length > 0) */ + if (length) + pa_stream_drop(s); + return; + } + + assert(length > 0); + assert(length % sizeof(float) == 0); + + v = ((const float*) data)[length / sizeof(float) -1]; + + pa_stream_drop(s); + + if (v < 0) + v = 0; + if (v > 1) + v = 1; +// qDebug() << "readCallback" << index << w->sourceIndex; + if(/*index == w->sourceIndex && */strcmp(deviceName.toLatin1().data(),sourceName.toLatin1().data()) == 0 && !strstr(deviceName.toLatin1().data(),"monitor")) { + w->updateVolumeMeter(index,pa_stream_get_monitor_stream(s),v); + } +} + +pa_stream* UkmediaVolumeControl::createMonitorStreamForSource(uint32_t source_idx, uint32_t stream_idx = -1, bool suspend = false) { + pa_stream *s; + char t[16]; + pa_buffer_attr attr; + pa_sample_spec ss; + pa_stream_flags_t flags; + + ss.channels = 1; + ss.format = PA_SAMPLE_FLOAT32; + ss.rate = 25; + + memset(&attr, 0, sizeof(attr)); + attr.fragsize = sizeof(float); + attr.maxlength = (uint32_t) -1; + + snprintf(t, sizeof(t), "%u", source_idx); + m_pPaContext = getContext(); + if (!(s = pa_stream_new(getContext(), tr("Peak detect").toUtf8().constData(), &ss, nullptr))) { + showError(tr("Failed to create monitoring stream").toUtf8().constData()); + return nullptr; + } + + if (stream_idx != (uint32_t) -1) + pa_stream_set_monitor_stream(s, stream_idx); + + pa_stream_set_read_callback(s, readCallback, this); + pa_stream_set_suspended_callback(s, suspended_callback, this); + + flags = (pa_stream_flags_t) (PA_STREAM_DONT_MOVE | PA_STREAM_PEAK_DETECT | PA_STREAM_ADJUST_LATENCY | + (suspend ? PA_STREAM_DONT_INHIBIT_AUTO_SUSPEND : PA_STREAM_NOFLAGS) /*| + (!showVolumeMetersCheckButton->isChecked() ? PA_STREAM_START_CORKED : PA_STREAM_NOFLAGS)*/); + + if (pa_stream_connect_record(s, t, &attr, flags) < 0) { + showError(tr("Failed to connect monitoring stream").toUtf8().constData()); + pa_stream_unref(s); + return nullptr; + } + return s; +} + + +void UkmediaVolumeControl::updateSource(const pa_source_info &info) { + bool is_new = false; + int volume; + if (info.volume.channels >= 2) + volume = MAX(info.volume.values[0],info.volume.values[1]); + else + volume = info.volume.values[0]; + + //默认的输出音量 + if (info.name && strcmp(defaultSourceName.data(),info.name) == 0) { + //sourceIndex和inputChannel必须在此处刷新 + sourceIndex = info.index; + inputChannel = info.volume.channels; + if (info.active_port) { + if(strcmp(sourcePortName.toLatin1().data(),info.active_port->name) != 0) { + sourcePortName = info.active_port->name; + QTimer::singleShot(100,this,SLOT(timeoutSlot())); + } + else + sourcePortName = info.active_port->name; + } + defaultInputCard = info.card; + if (sourceVolume != volume || sourceMuted != info.mute) { + sourceVolume = volume; + sourceMuted = info.mute; + Q_EMIT updateSourceVolume(sourceVolume,sourceMuted); + } + } + if (info.index == sourceIndex && !strstr(info.name,".monitor") && !sourceOutputVector.contains(info.index) && pa_context_get_server_protocol_version(getContext()) >= 13) { + sourceFlags = info.flags; + qDebug() << "createMonitorStreamForSource" <temp; + + if(info.ports) { + for (pa_source_port_info ** sourcePort = info.ports; *sourcePort != nullptr; ++sourcePort) { + temp.insertMulti(info.name,(*sourcePort)->name); + } + QList> sourcePortMapList; + if(sourcePortMap.isEmpty()) + sourcePortMap.insertMulti(info.card,temp); + sourcePortMapList = sourcePortMap.values(); + if(!sourcePortMapList.contains(temp)){ + sourcePortMap.insertMulti(info.card,temp); + } + qDebug() << "update Source" << "defauleSourceName:" << defaultSourceName.data() << "sinkport" << sourcePortName << "sourceVolume" << sourceVolume ; + } + + if (is_new) + updateDeviceVisibility(); +} + + +void UkmediaVolumeControl::setIconFromProplist(QLabel *icon, pa_proplist *l, const char *def) { + const char *t; + + if ((t = pa_proplist_gets(l, PA_PROP_MEDIA_ICON_NAME))) + goto finish; + + if ((t = pa_proplist_gets(l, PA_PROP_WINDOW_ICON_NAME))) + goto finish; + + if ((t = pa_proplist_gets(l, PA_PROP_APPLICATION_ICON_NAME))) + goto finish; + + if ((t = pa_proplist_gets(l, PA_PROP_MEDIA_ROLE))) { + + if (t && strcmp(t, "video") == 0 || + strcmp(t, "phone") == 0) + goto finish; + + if (strcmp(t, "music") == 0) { + t = "audio"; + goto finish; + } + + if (strcmp(t, "game") == 0) { + t = "applications-games"; + goto finish; + } + + if (strcmp(t, "event") == 0) { + t = "dialog-information"; + goto finish; + } + } + + t = def; + +finish: + + setIconByName(icon, t); +} + + +void UkmediaVolumeControl::updateSinkInput(const pa_sink_input_info &info) { + sinkInputChannel = info.volume.channels; + const char *t; + if ((t = pa_proplist_gets(info.proplist, "module-stream-restore.id"))) { + if (t && strcmp(t, "sink-input-by-media-role:event") == 0) { + g_debug("%s", tr("Ignoring sink-input due to it being designated as an event and thus handled by the Event widget").toUtf8().constData()); + return; + } + } + const gchar *description = pa_proplist_gets(info.proplist, PA_PROP_APPLICATION_NAME); + const gchar *appId = pa_proplist_gets(info.proplist, PA_PROP_APPLICATION_ID); + //没制定应用名称的不加入到应用音量中 + if (description && !strstr(description,"QtPulseAudio")) { + if (!info.corked) { + + sinkInputMap.insert(description,info.volume.values[0]); + if (!sinkInputList.contains(description)) { + sinkInputList.append(description); + Q_EMIT addSinkInputSignal(description,appId,info.index); + } + } + else { + Q_EMIT removeSinkInputSignal(description); + sinkInputList.removeAll(description); + QMap::iterator it; + for(it = sinkInputMap.begin();it!=sinkInputMap.end();) + { + if(it.key() == description) + { + sinkInputMap.erase(it); + break; + } + ++it; + } + } + } +} + +void UkmediaVolumeControl::updateSourceOutput(const pa_source_output_info &info) { + sourceOutputChannel = info.volume.channels; + const char *app; + // bool is_new = false; + + if(info.name && strstr(info.name,"Peak detect") && !sourceOutputVector.contains(info.source)) { + pa_operation* o; + qDebug() <<"killall source output index====" <::iterator it; + for(it = sourceOutputMap.begin();it!=sourceOutputMap.end();) + { + if(it.key() == description) + { + sourceOutputMap.erase(it); + break; + } + ++it; + } + } + } +} + +void UkmediaVolumeControl::updateClient(const pa_client_info &info) { + g_free(clientNames[info.index]); + clientNames[info.index] = g_strdup(info.name); +} + +void UkmediaVolumeControl::updateServer(const pa_server_info &info) { + m_pServerInfo = &info; + defaultSourceName = info.default_source_name ? info.default_source_name : ""; + defaultSinkName = info.default_sink_name ? info.default_sink_name : ""; + qDebug() << "updateServer" << "default_sink:" << info.default_sink_name << "default_source:" << info.default_source_name; + +} + +void UkmediaVolumeControl::updateVolumeMeter(uint32_t index, uint32_t sinkInputIdx, double v) +{ + Q_UNUSED(index); + Q_UNUSED(sinkInputIdx); + if (lastPeak >= DECAY_STEP) + if (v < lastPeak - DECAY_STEP) + v = lastPeak - DECAY_STEP; + + lastPeak = v; + for(int i=0;ireallyUpdateDeviceVisibility(); + idleSource = 0; + return FALSE; +} + +void UkmediaVolumeControl::setConnectionState(gboolean connected) { + if (m_connected != connected) { + m_connected = connected; + if (m_connected) { +// connectingLabel->hide(); +// notebook->show(); + } else { +// notebook->hide(); +// connectingLabel->show(); + } + } +} + +void UkmediaVolumeControl::updateDeviceVisibility() { + + if (idleSource) + return; + + idleSource = g_idle_add(idleCb, this); +} + +void UkmediaVolumeControl::reallyUpdateDeviceVisibility() { + bool is_empty = true; + +// for (auto & sinkInputWidget : sinkInputWidgets) { +// SinkInputWidget* w = sinkInputWidget.second; + +// if (sinkWidgets.size() > 1) { +// w->directionLabel->show(); +// w->deviceButton->show(); +// } else { +// w->directionLabel->hide(); +// w->deviceButton->hide(); +// } + +// if (showSinkInputType == SINK_INPUT_ALL || w->type == showSinkInputType) { +// w->show(); +// is_empty = false; +// } else +// w->hide(); +// } + +// if (eventRoleWidget) +// is_empty = false; + +// if (is_empty) +// noStreamsLabel->show(); +// else +// noStreamsLabel->hide(); + + is_empty = true; + +// for (auto & sourceOutputWidget : sourceOutputWidgets) { +// SourceOutputWidget* w = sourceOutputWidget.second; + +// if (sourceWidgets.size() > 1) { +// w->directionLabel->show(); +// w->deviceButton->show(); +// } else { +// w->directionLabel->hide(); +// w->deviceButton->hide(); +// } + +// if (showSourceOutputType == SOURCE_OUTPUT_ALL || w->type == showSourceOutputType) { +// w->show(); +// is_empty = false; +// } else +// w->hide(); +// } + +// if (is_empty) +// noRecsLabel->show(); +// else +// noRecsLabel->hide(); + +// is_empty = true; + +// for (auto & sinkWidget : sinkWidgets) { +// SinkWidget* w = sinkWidget.second; + +// if (showSinkType == SINK_ALL || w->type == showSinkType) { +// w->show(); +// is_empty = false; +// } else +// w->hide(); +// } + +// if (is_empty) +// noSinksLabel->show(); +// else +// noSinksLabel->hide(); + +// is_empty = true; + +// for (auto & cardWidget : cardWidgets) { +// CardWidget* w = cardWidget.second; + +// w->show(); +// is_empty = false; +// } + +// if (is_empty) +// noCardsLabel->show(); +// else +// noCardsLabel->hide(); + +// is_empty = true; + +// for (auto & sourceWidget : sourceWidgets) { +// SourceWidget* w = sourceWidget.second; + +// if (showSourceType == SOURCE_ALL || +// w->type == showSourceType || +// (showSourceType == SOURCE_NO_MONITOR && w->type != SOURCE_MONITOR)) { +// w->show(); +// is_empty = false; +// } else +// w->hide(); +// } + +// if (is_empty) +// noSourcesLabel->show(); +// else +// noSourcesLabel->hide(); + +// /* Hmm, if I don't call hide()/show() here some widgets will never +// * get their proper space allocated */ +// sinksVBox->hide(); +// sinksVBox->show(); +// sourcesVBox->hide(); +// sourcesVBox->show(); +// streamsVBox->hide(); +// streamsVBox->show(); +// recsVBox->hide(); +// recsVBox->show(); +// cardsVBox->hide(); +// cardsVBox->show(); +} + +void UkmediaVolumeControl::removeCard(uint32_t index) { +// if (!cardWidgets.count(index)) +// return; + +// delete cardWidgets[index]; +// cardWidgets.erase(index); + updateDeviceVisibility(); +} + +void UkmediaVolumeControl::removeSink(uint32_t index) +{ + QMap::iterator it; + for (it=sinkMap.begin();it!=sinkMap.end();) { + if (it.key() == index) { + qDebug() << "removeSink" << index; + sinkMap.erase(it); + break; + } + ++it; + } + + updateDeviceVisibility(); +} + +void UkmediaVolumeControl::removeSource(uint32_t index) +{ + QMap::iterator it; + for (it=sourceMap.begin();it!=sourceMap.end();) { + if (it.key() == index) { + qDebug() << "removeSource" << index; + sourceMap.erase(it); + break; + } + ++it; + } + updateDeviceVisibility(); +} + +void UkmediaVolumeControl::removeSinkInput(uint32_t index) { + updateDeviceVisibility(); +} + +void UkmediaVolumeControl::removeSourceOutput(uint32_t index) { + updateDeviceVisibility(); +} + +void UkmediaVolumeControl::removeClient(uint32_t index) { + g_free(clientNames[index]); + clientNames.erase(index); +} + + +void UkmediaVolumeControl::setConnectingMessage(const char *string) { + QByteArray markup = ""; + if (!string) + markup += tr("Establishing connection to PulseAudio. Please wait...").toUtf8().constData(); + else + markup += string; + markup += ""; +// connectingLabel->setText(QString::fromUtf8(markup)); +} + +void UkmediaVolumeControl::showError(const char *txt) { + char buf[256]; + + snprintf(buf, sizeof(buf), "%s: %s", txt, pa_strerror(pa_context_errno(context))); + + qDebug() <get_window()->set_cursor(); + w->setConnectionState(true); + } +} + +void UkmediaVolumeControl::cardCb(pa_context *c, const pa_card_info *i, int eol, void *userdata) { + UkmediaVolumeControl *w = static_cast(userdata); + + if (eol < 0) { + if (pa_context_errno(c) == PA_ERR_NOENTITY) + return; + + w->showError(QObject::tr("Card callback failure").toUtf8().constData()); + return; + } + + if (eol > 0) { + decOutstanding(w); + return; + } + w->cardMap.insert(i->index,i->name); + w->updateCard(w,*i); +} + +void UkmediaVolumeControl::sinkIndexCb(pa_context *c, const pa_sink_info *i, int eol, void *userdata) { + UkmediaVolumeControl *w = static_cast(userdata); + if (eol < 0) { + if (pa_context_errno(c) == PA_ERR_NOENTITY) + return; + + w->showError(QObject::tr("Sink callback failure").toUtf8().constData()); + return; + } + + if (eol > 0) { + decOutstanding(w); + return; + } + int volume; + if(i->volume.channels >= 2) + volume = MAX(i->volume.values[0],i->volume.values[1]); + else + volume = i->volume.values[0]; + w->defaultOutputCard = i->card; + w->sinkIndex = i->index; + w->balance = pa_cvolume_get_balance(&i->volume,&i->channel_map); + + if(i->active_port) + w->sinkPortName = i->active_port->name; + else + w->sinkPortName = ""; + + if(w->sinkVolume != volume || w->sinkMuted != i->mute){ + w->sinkVolume = volume; + w->sinkMuted = i->mute; + Q_EMIT w->updateVolume(w->sinkVolume,w->sinkMuted); + } + +} + +void UkmediaVolumeControl::sourceIndexCb(pa_context *c, const pa_source_info *i, int eol, void *userdata) { + UkmediaVolumeControl *w = static_cast(userdata); + if (eol < 0) { + if (pa_context_errno(c) == PA_ERR_NOENTITY) + return; + + w->showError(QObject::tr("Source callback failure").toUtf8().constData()); + return; + } + + if (eol > 0) { + decOutstanding(w); + return; + } + int volume; + if(i->volume.channels >= 2) + volume = MAX(i->volume.values[0],i->volume.values[1]); + else + volume = i->volume.values[0]; + + w->defaultInputCard = i->card; + w->sourceIndex = i->index; + if(i->active_port) + w->sourcePortName = i->active_port->name; + else + w->sourcePortName = ""; + + if(w->sourceVolume != volume || w->sourceMuted != i->mute){ + w->sourceVolume = volume; + w->sourceMuted = i->mute; + Q_EMIT w->updateSourceVolume(w->sourceVolume,w->sourceMuted); + } + + if (!w->sourceOutputVector.contains(w->sourceIndex) && pa_context_get_server_protocol_version(w->getContext()) >= 13) { + pa_operation* o; + qDebug() <<"killall source output index form sourceIndexCb" <peakDetectIndex; + if (!(o = pa_context_kill_source_output(w->getContext(), w->peakDetectIndex, nullptr, nullptr))) { + w->showError(tr("pa_context_set_default_source() failed").toUtf8().constData()); + } + if (w->sourceOutputVector.count()) + w->sourceOutputVector.removeAt(0); + qDebug() << "sinkIndexCb " << w->sourceOutputVector.count(); + w->sourceOutputVector.append(w->sourceIndex); + w->peak = w->createMonitorStreamForSource(w->sourceIndex, -1, !!(w->sourceFlags & PA_SOURCE_NETWORK)); + } +} + +void UkmediaVolumeControl::sinkCb(pa_context *c, const pa_sink_info *i, int eol, void *userdata) { + UkmediaVolumeControl *w = static_cast(userdata); + if (eol < 0) { + if (pa_context_errno(c) == PA_ERR_NOENTITY) + return; + + w->showError(QObject::tr("Sink callback failure").toUtf8().constData()); + return; + } + + if (eol > 0) { + decOutstanding(w); + return; + } + w->m_pDefaultSink = i; + qDebug() << "SinkCb" << i->index << i->name; + w->sinkMap.insert(i->index,i->name); + + w->updateSink(w,*i); +} + +void UkmediaVolumeControl::sourceCb(pa_context *c, const pa_source_info *i, int eol, void *userdata) { + UkmediaVolumeControl *w = static_cast(userdata); + if (eol < 0) { + if (pa_context_errno(c) == PA_ERR_NOENTITY) + return; + + w->showError(QObject::tr("Source callback failure").toUtf8().constData()); + return; + } + + if (eol > 0) { + decOutstanding(w); + return; + } + w->m_pDefaultSource = i; + qDebug() << "sourceCb" << i->index << i->name; + w->sourceMap.insert(i->index,i->name); + + w->updateSource(*i); + +} + +void UkmediaVolumeControl::sinkInputCb(pa_context *c, const pa_sink_input_info *i, int eol, void *userdata) { + UkmediaVolumeControl *w = static_cast(userdata); + if (eol < 0) { + if (pa_context_errno(c) == PA_ERR_NOENTITY) + return; + + w->showError(QObject::tr("Sink input callback failure").toUtf8().constData()); + return; + } + + if (eol > 0) { + decOutstanding(w); + return; + } + + w->updateSinkInput(*i); +} + +void UkmediaVolumeControl::sourceOutputCb(pa_context *c, const pa_source_output_info *i, int eol, void *userdata) { + UkmediaVolumeControl *w = static_cast(userdata); + + if (eol < 0) { + if (pa_context_errno(c) == PA_ERR_NOENTITY) + return; + + w->showError(QObject::tr("Source output callback failure").toUtf8().constData()); + return; + } + + if (eol > 0) { + + if (n_outstanding > 0) { + /* At this point all notebook pages have been populated, so + * let's open one that isn't empty */ + // if (default_tab != -1) { + // if (default_tab < 1 || default_tab > w->notebook->count()) { + // if (!w->sinkInputWidgets.empty()) + // w->notebook->setCurrentIndex(0); + // else if (!w->sourceOutputWidgets.empty()) + // w->notebook->setCurrentIndex(1); + // else if (!w->sourceWidgets.empty() && w->sinkWidgets.empty()) + // w->notebook->setCurrentIndex(3); + // else + // w->notebook->setCurrentIndex(2); + // } else { + // w->notebook->setCurrentIndex(default_tab - 1); + // } + // default_tab = -1; + // } + } + + decOutstanding(w); + return; + } + if (i->name) + qDebug() << "sourceOutputCb" << i->name << i->source <sourceOutputVector.contains(i->index)) { +// w->sourceOutputVector.append(i->index); + w->updateSourceOutput(*i); + if (i->name && strstr(i->name,"Peak detect")) + w->peakDetectIndex = i->index; + qDebug() << "update source output" << w->peakDetectIndex <name; + } + +} + +void UkmediaVolumeControl::clientCb(pa_context *c, const pa_client_info *i, int eol, void *userdata) { + UkmediaVolumeControl *w = static_cast(userdata); + + if (eol < 0) { + if (pa_context_errno(c) == PA_ERR_NOENTITY) + return; + + w->showError(QObject::tr("Client callback failure").toUtf8().constData()); + return; + } + + if (eol > 0) { + decOutstanding(w); + return; + } +// qDebug() << "clientCb" << i->name; + w->updateClient(*i); +} + +void UkmediaVolumeControl::serverInfoIndexCb(pa_context *, const pa_server_info *i, void *userdata) { + UkmediaVolumeControl *w = static_cast(userdata); + + if (!i) { + w->showError(QObject::tr("Server info callback failure").toUtf8().constData()); + return; + } + pa_operation *o; + + qDebug() << "serverInfoIndexCb" << i->default_sink_name << i->default_source_name; + w->updateServer(*i); + decOutstanding(w); +} + +void UkmediaVolumeControl::serverInfoCb(pa_context *, const pa_server_info *i, void *userdata) { + UkmediaVolumeControl *w = static_cast(userdata); + + if (!i) { + w->showError(QObject::tr("Server info callback failure").toUtf8().constData()); + return; + } + + pa_operation *o; + //默认的输出设备改变时需要获取默认的输出音量 + if(!(o = pa_context_get_sink_info_by_name(w->getContext(),i->default_sink_name,sinkIndexCb,w))) { + + } + + if(!(o = pa_context_get_source_info_by_name(w->getContext(),i->default_source_name,sourceIndexCb,w))) { + + } + qDebug() << "serverInfoCb" << i->user_name << i->default_sink_name << i->default_source_name; + w->updateServer(*i); + QTimer::singleShot(50, w, SLOT(timeoutSlot())); + + decOutstanding(w); +} + +void UkmediaVolumeControl::timeoutSlot() +{ + Q_EMIT deviceChangedSignal(); +} + +void UkmediaVolumeControl::extStreamRestoreReadCb( + pa_context *c, + const pa_ext_stream_restore_info *i, + int eol, + void *userdata) { + + UkmediaVolumeControl *w = static_cast(userdata); + + if (eol < 0) { + decOutstanding(w); + g_debug(QObject::tr("Failed to initialize stream_restore extension: %s").toUtf8().constData(), pa_strerror(pa_context_errno(c))); + return; + } + + if (eol > 0) { + decOutstanding(w); + return; + } +// qDebug() << "extStreamRestoreReadCb" << i->name; +// w->updateRole(*i); +} + +void UkmediaVolumeControl::extStreamRestoreSubscribeCb(pa_context *c, void *userdata) { + UkmediaVolumeControl *w = static_cast(userdata); + pa_operation *o; + + if (!(o = pa_ext_stream_restore_read(c, extStreamRestoreReadCb, w))) { + w->showError(QObject::tr("pa_ext_stream_restore_read() failed").toUtf8().constData()); + return; + } + qDebug() << "extStreamRestoreSubscribeCb" ; + pa_operation_unref(o); +} + +void UkmediaVolumeControl::extDeviceManagerReadCb( + pa_context *c, + const pa_ext_device_manager_info *, + int eol, + void *userdata) { + + UkmediaVolumeControl *w = static_cast(userdata); + + if (eol < 0) { + decOutstanding(w); + g_debug(QObject::tr("Failed to initialize device manager extension: %s").toUtf8().constData(), pa_strerror(pa_context_errno(c))); + return; + } + + w->canRenameDevices = true; + + if (eol > 0) { + decOutstanding(w); + return; + } + qDebug() << "extDeviceManagerReadCb"; + /* Do something with a widget when this part is written */ +} + +void UkmediaVolumeControl::extDeviceManagerSubscribeCb(pa_context *c, void *userdata) { + UkmediaVolumeControl *w = static_cast(userdata); + pa_operation *o; + + if (!(o = pa_ext_device_manager_read(c, extDeviceManagerReadCb, w))) { + w->showError(QObject::tr("pa_ext_device_manager_read() failed").toUtf8().constData()); + return; + } + qDebug() << "extDeviceManagerSubscribeCb"; + pa_operation_unref(o); +} + +void UkmediaVolumeControl::subscribeCb(pa_context *c, pa_subscription_event_type_t t, uint32_t index, void *userdata) { + UkmediaVolumeControl *w = static_cast(userdata); + + switch (t & PA_SUBSCRIPTION_EVENT_FACILITY_MASK) { + case PA_SUBSCRIPTION_EVENT_SINK: + if ((t & PA_SUBSCRIPTION_EVENT_TYPE_MASK) == PA_SUBSCRIPTION_EVENT_REMOVE) + w->removeSink(index); + else { + pa_operation *o; + if (!(o = pa_context_get_sink_info_by_index(c, index, sinkCb, w))) { + w->showError(QObject::tr("pa_context_get_sink_info_by_index() failed").toUtf8().constData()); + return; + } + pa_operation_unref(o); + } + break; + + case PA_SUBSCRIPTION_EVENT_SOURCE: + if ((t & PA_SUBSCRIPTION_EVENT_TYPE_MASK) == PA_SUBSCRIPTION_EVENT_REMOVE) + w->removeSource(index); + else { + pa_operation *o; + if (!(o = pa_context_get_source_info_by_index(c, index, sourceCb, w))) { + w->showError(QObject::tr("pa_context_get_source_info_by_index() failed").toUtf8().constData()); + return; + } + pa_operation_unref(o); + } + break; + + case PA_SUBSCRIPTION_EVENT_SINK_INPUT: + if ((t & PA_SUBSCRIPTION_EVENT_TYPE_MASK) == PA_SUBSCRIPTION_EVENT_REMOVE) + w->removeSinkInput(index); + else { + pa_operation *o; + if (!(o = pa_context_get_sink_input_info(c, index, sinkInputCb, w))) { + w->showError(QObject::tr("pa_context_get_sink_input_info() failed").toUtf8().constData()); + return; + } + pa_operation_unref(o); + } + break; + + case PA_SUBSCRIPTION_EVENT_SOURCE_OUTPUT: + if ((t & PA_SUBSCRIPTION_EVENT_TYPE_MASK) == PA_SUBSCRIPTION_EVENT_REMOVE) + w->removeSourceOutput(index); + else { + pa_operation *o; + if (!(o = pa_context_get_source_output_info(c, index, sourceOutputCb, w))) { + w->showError(QObject::tr("pa_context_get_sink_input_info() failed").toUtf8().constData()); + return; + } + pa_operation_unref(o); + } + break; + + case PA_SUBSCRIPTION_EVENT_CLIENT: + if ((t & PA_SUBSCRIPTION_EVENT_TYPE_MASK) == PA_SUBSCRIPTION_EVENT_REMOVE) + w->removeClient(index); + else { + pa_operation *o; + if (!(o = pa_context_get_client_info(c, index, clientCb, w))) { + w->showError(QObject::tr("pa_context_get_client_info() failed").toUtf8().constData()); + return; + } + pa_operation_unref(o); + } + break; + + case PA_SUBSCRIPTION_EVENT_SERVER: { + pa_operation *o; + if (!(o = pa_context_get_server_info(c, serverInfoCb, w))) { + w->showError(QObject::tr("pa_context_get_server_info() failed").toUtf8().constData()); + return; + } + pa_operation_unref(o); + } + break; + + case PA_SUBSCRIPTION_EVENT_CARD: + //remove card + if ((t & PA_SUBSCRIPTION_EVENT_TYPE_MASK) == PA_SUBSCRIPTION_EVENT_REMOVE) { + qDebug() << "remove cards------"; + //移除outputPort + w->removeSinkPortMap(index); + w->removeSourcePortMap(index); + w->removeOutputPortMap(index); + w->removeInputPortMap(index); + w->removeCardMap(index); + w->removeCardProfileMap(index); + + w->removeProfileMap(index); + w->removeInputProfile(index); + w->removeCard(index); + Q_EMIT w->updatePortSignal(); + + } + else { + pa_operation *o; + if (!(o = pa_context_get_card_info_by_index(c, index, cardCb, w))) { + w->showError(QObject::tr("pa_context_get_card_info_by_index() failed").toUtf8().constData()); + return; + } + pa_operation_unref(o); + } + break; + + } +} + +void UkmediaVolumeControl::contextStateCallback(pa_context *c, void *userdata) { + UkmediaVolumeControl *w = static_cast(userdata); + + g_assert(c); + + switch (pa_context_get_state(c)) { + case PA_CONTEXT_UNCONNECTED: + case PA_CONTEXT_CONNECTING: + case PA_CONTEXT_AUTHORIZING: + case PA_CONTEXT_SETTING_NAME: + + break; + + case PA_CONTEXT_READY: { + pa_operation *o; + qDebug() << "pa_context_get_state" << "PA_CONTEXT_READY" << pa_context_get_state(c); + reconnect_timeout = 1; + + /* Create event widget immediately so it's first in the list */ + + pa_context_set_subscribe_callback(c, subscribeCb, w); + + if (!(o = pa_context_subscribe(c, (pa_subscription_mask_t) + (PA_SUBSCRIPTION_MASK_SINK| + PA_SUBSCRIPTION_MASK_SOURCE| + PA_SUBSCRIPTION_MASK_SINK_INPUT| + PA_SUBSCRIPTION_MASK_SOURCE_OUTPUT| + PA_SUBSCRIPTION_MASK_CLIENT| + PA_SUBSCRIPTION_MASK_SERVER| + PA_SUBSCRIPTION_MASK_CARD), nullptr, nullptr))) { + w->showError(QObject::tr("pa_context_subscribe() failed").toUtf8().constData()); + return; + } + pa_operation_unref(o); + + /* Keep track of the outstanding callbacks for UI tweaks */ + n_outstanding = 0; + + if (!(o = pa_context_get_server_info(c, serverInfoCb, w))) { + w->showError(QObject::tr("pa_context_get_server_info() failed").toUtf8().constData()); + return; + } + pa_operation_unref(o); + n_outstanding++; + + if (!(o = pa_context_get_client_info_list(c, clientCb, w))) { + w->showError(QObject::tr("pa_context_client_info_list() failed").toUtf8().constData()); + return; + } + pa_operation_unref(o); + n_outstanding++; + + if (!(o = pa_context_get_card_info_list(c, cardCb, w))) { + w->showError(QObject::tr("pa_context_get_card_info_list() failed").toUtf8().constData()); + return; + } + pa_operation_unref(o); + n_outstanding++; + + if (!(o = pa_context_get_sink_info_list(c, sinkCb, w))) { + w->showError(QObject::tr("pa_context_get_sink_info_list() failed").toUtf8().constData()); + return; + } + pa_operation_unref(o); + n_outstanding++; + + if (!(o = pa_context_get_source_info_list(c, sourceCb, w))) { + w->showError(QObject::tr("pa_context_get_source_info_list() failed").toUtf8().constData()); + return; + } + pa_operation_unref(o); + n_outstanding++; + + if (!(o = pa_context_get_sink_input_info_list(c, sinkInputCb, w))) { + w->showError(QObject::tr("pa_context_get_sink_input_info_list() failed").toUtf8().constData()); + return; + } + pa_operation_unref(o); + n_outstanding++; + + if (!(o = pa_context_get_source_output_info_list(c, sourceOutputCb, w))) { + w->showError(QObject::tr("pa_context_get_source_output_info_list() failed").toUtf8().constData()); + return; + } + pa_operation_unref(o); + n_outstanding++; + Q_EMIT w->paContextReady(); + break; + } + + case PA_CONTEXT_FAILED: + w->setConnectionState(false); + w->updateDeviceVisibility(); + pa_context_unref(w->m_pPaContext); + w->m_pPaContext = nullptr; + + if (reconnect_timeout > 0) { + g_debug("%s", QObject::tr("Connection failed, attempting reconnect").toUtf8().constData()); +// g_timeout_add_seconds(reconnect_timeout, connectToPulse, w); + } + return; + + case PA_CONTEXT_TERMINATED: + default: + return; + } +} + +pa_context* UkmediaVolumeControl::getContext(void) { + return context; +} + +gboolean UkmediaVolumeControl::connectToPulse(gpointer userdata) { + pa_glib_mainloop *m = pa_glib_mainloop_new(g_main_context_default()); + api = pa_glib_mainloop_get_api(m); + + pa_proplist *proplist = pa_proplist_new(); + pa_proplist_sets(proplist, PA_PROP_APPLICATION_NAME, QObject::tr("Ukui Media Volume Control").toUtf8().constData()); + pa_proplist_sets(proplist, PA_PROP_APPLICATION_ID, "org.PulseAudio.pavucontrol"); + pa_proplist_sets(proplist, PA_PROP_APPLICATION_ICON_NAME, "audio-card"); + pa_proplist_sets(proplist, PA_PROP_APPLICATION_VERSION, "PACKAGE_VERSION"); + context = pa_context_new_with_proplist(api, nullptr, proplist); + g_assert(context); + + pa_proplist_free(proplist); + + pa_context_set_state_callback(getContext(), contextStateCallback, this); + if (pa_context_connect(getContext(), nullptr, PA_CONTEXT_NOFAIL, nullptr) < 0) { + if (pa_context_errno(getContext()) == PA_ERR_INVALID) { + /*w->setConnectingMessage(QObject::tr("Connection to PulseAudio failed. Automatic retry in 5s\n\n" + "In this case this is likely because PULSE_SERVER in the Environment/X11 Root Window Properties\n" + "or default-server in client.conf is misconfigured.\n" + "This situation can also arrise when PulseAudio crashed and left stale details in the X11 Root Window.\n" + "If this is the case, then PulseAudio should autospawn again, or if this is not configured you should\n" + "run start-pulseaudio-x11 manually.").toUtf8().constData());*/ + qFatal("connect pulseaudio failed") ; + } + else { +// g_timeout_add_seconds(5,connectToPulse,w); + } + } + + return false; +} + + +/* + * 根据名称获取sink input音量 + */ +int UkmediaVolumeControl::getSinkInputVolume(const gchar *name) +{ + QMap::iterator it; + int value = 0; + for(it = sinkInputMap.begin();it!=sinkInputMap.end();) + { + if(it.key() == name) + { + qDebug() << "getSinkInputVolume" << "name:" <::iterator it; + int value = 0; + for(it = sourceOutputMap.begin();it!=sourceOutputMap.end();) + { + if(it.key() == name) + { + qDebug() << "getSourceOutputVolume" << "name:" <(userdata); + if (eol < 0) { + if (pa_context_errno(c) == PA_ERR_NOENTITY) + return; + + w->showError(QObject::tr("Sink input callback failure").toUtf8().constData()); + return; + } + if (eol > 0) { + decOutstanding(w); + return; + } + w->sinkInputMuted = i->mute; + if (i->volume.channels >= 2) + w->sinkInputVolume = MAX(i->volume.values[0],i->volume.values[1]); + else + w->sinkInputVolume = i->volume.values[0]; + qDebug() << "sinkInputCallback" <sinkInputVolume ; +} + +/* + * 更新output port map + */ +void UkmediaVolumeControl::updateOutputPortMap() +{ + QMap::iterator at; + QMap::iterator cardNameMap; +// if (firstEntry == true) { + +// for(at = outputPortMap.begin();at!=w->outputPortMap.end();) +// { + +// UkuiListWidgetItem *itemW = new UkuiListWidgetItem(w); + +// QListWidgetItem * item = new QListWidgetItem(w->m_pOutputWidget->m_pOutputListWidget); +// item->setSizeHint(QSize(200,64)); //QSize(120, 40) spacing: 12px; +// w->m_pOutputWidget->m_pOutputListWidget->blockSignals(true); +// w->m_pOutputWidget->m_pOutputListWidget->setItemWidget(item, itemW); +// w->m_pOutputWidget->m_pOutputListWidget->blockSignals(false); +// QString cardName; +// for(cardNameMap = w->cardMap.begin();cardNameMap!=w->cardMap.end();) +// { +// if (cardNameMap.key() == at.key()) { +// cardName = cardNameMap.value(); +// break; +// } +// ++cardNameMap; +// } + +// itemW->setLabelText(at.value(),cardName); +// w->m_pOutputWidget->m_pOutputListWidget->blockSignals(true); +// w->m_pOutputWidget->m_pOutputListWidget->insertItem(i++,item); +// w->m_pOutputWidget->m_pOutputListWidget->blockSignals(false); + +// ++at; +// } +// for(at = w->inputPortLabelMap.begin();at!=w->inputPortLabelMap.end();) +// { +// UkuiListWidgetItem *itemW = new UkuiListWidgetItem(w); + +// QListWidgetItem * item = new QListWidgetItem(w->m_pInputWidget->m_pInputListWidget); +// item->setSizeHint(QSize(200,64)); //QSize(120, 40) spacing: 12px; +// w->m_pInputWidget->m_pInputListWidget->setItemWidget(item, itemW); +// QString cardName; +// for(cardNameMap = w->cardMap.begin();cardNameMap!=w->cardMap.end();) +// { +// if (cardNameMap.key() == at.key()) { +// cardName = cardNameMap.value(); +// break; +// } +// ++cardNameMap; +// } +// itemW->setLabelText(at.value(),cardName); +// w->m_pInputWidget->m_pInputListWidget->blockSignals(true); +// w->m_pInputWidget->m_pInputListWidget->insertItem(i++,item); +// w->m_pInputWidget->m_pInputListWidget->blockSignals(false); + +// ++at; +// } + +// } +// else { +// //记录上一次output label +// for (i=0;im_pOutputWidget->m_pOutputListWidget->count();i++) { + +// QListWidgetItem *item = w->m_pOutputWidget->m_pOutputListWidget->item(i); +// UkuiListWidgetItem *wid = (UkuiListWidgetItem *)w->m_pOutputWidget->m_pOutputListWidget->itemWidget(item); +// int index; +// for (at=w->cardMap.begin();at!=w->cardMap.end();) { +// if (wid->deviceLabel->text() == at.value()) { +// index = at.key(); +// break; +// } +// ++at; +// } +// w->currentOutputPortLabelMap.insertMulti(index,wid->portLabel->text()); +// w->m_pCurrentOutputPortLabelList->append(wid->portLabel->text()); +// w->m_pCurrentOutputCardList->append(wid->deviceLabel->text()); +// //qDebug() << index << "current output item ************" << item->text() <portLabel->text() << w->m_pOutputPortLabelList->count() ;//<< w->m_pOutputPortLabelList->at(i); +// } + +// for (i=0;im_pInputWidget->m_pInputListWidget->count();i++) { + +// QListWidgetItem *item = w->m_pInputWidget->m_pInputListWidget->item(i); +// UkuiListWidgetItem *wid = (UkuiListWidgetItem *)w->m_pInputWidget->m_pInputListWidget->itemWidget(item); +// int index; +// int count; +// for (at=w->cardMap.begin();at!=w->cardMap.end();) { +// if (wid->deviceLabel->text() == at.value()) { +// index = at.key(); +// break; +// } +// ++at; +// ++count; +// } +// w->currentInputPortLabelMap.insertMulti(index,wid->portLabel->text()); +// w->m_pCurrentInputPortLabelList->append(wid->portLabel->text()); +// w->m_pCurrentInputCardList->append(wid->deviceLabel->text()); +// qDebug() <<"current input port label insert " << index << wid->deviceLabel->text(); +// } +//// w->m_pInputWidget->m_pInputListWidget->blockSignals(true); +//// w->deleteNotAvailableOutputPort(); +//// w->addAvailableOutputPort(); +//// w->deleteNotAvailableInputPort(); +//// w->addAvailableInputPort(); +//// w->m_pInputWidget->m_pInputListWidget->blockSignals(false); +// } +} + + +/* + * 移除指定索引的output port + */ +void UkmediaVolumeControl::removeOutputPortMap(int index) +{ + QMap>::iterator it; + for (it=outputPortMap.begin();it!=outputPortMap.end();) { + if (it.key() == index) { + qDebug() << "removeoutputport" <>::iterator it; + for (it=inputPortMap.begin();it!=inputPortMap.end();) { + if (it.key() == index) { + inputPortMap.erase(it); + break; + } + ++it; + } +} + +/* + * 移除指定索引的card + */ +void UkmediaVolumeControl::removeCardMap(int index) +{ + QMap::iterator it; + for (it=cardMap.begin();it!=cardMap.end();) { + if (it.key() == index) { + cardMap.erase(it); + break; + } + ++it; + } +} + +void UkmediaVolumeControl::removeCardProfileMap(int index) +{ + QMap>::iterator it; + QMap>::iterator at; + for (it=cardProfileMap.begin();it!=cardProfileMap.end();) { + if (it.key() == index) { + cardProfileMap.erase(it); + break; + } + ++it; + } + + for (at=cardProfilePriorityMap.begin();at!=cardProfilePriorityMap.cend();) { + if (at.key() == index) { + cardProfilePriorityMap.erase(at); + break; + } + ++at; + } +} + +void UkmediaVolumeControl::removeSinkPortMap(int index) +{ + qDebug() << "removeSinkPortMap///"; + QMap>::iterator it; + for(it=sinkPortMap.begin();it!=sinkPortMap.end();){ + if(it.key() == index) { + sinkPortMap.erase(it); + break; + } + ++it; + } +} + +void UkmediaVolumeControl::removeSourcePortMap(int index) +{ + qDebug() << "removeSinkPortMap///"; + QMap>::iterator it; + for(it=sourcePortMap.begin();it!=sourcePortMap.end();){ + if(it.key() == index) { + sourcePortMap.erase(it); + break; + } + ++it; + } +} + +void UkmediaVolumeControl::removeProfileMap(int index) +{ + QMap>::iterator it; + qDebug() << "removeProfileMap" << index << profileNameMap; + + for (it=profileNameMap.begin();it!=profileNameMap.end();) { + if(it.key() == index){ + profileNameMap.erase(it); + break; + } + ++it; + } +} + +bool UkmediaVolumeControl::isExitOutputPort(QString name) +{ + QMap>::iterator it; + QMap::iterator at; + QMap portMap; + for (it=outputPortMap.begin();it!=outputPortMap.end();) { + portMap = it.value(); + for (at=portMap.begin();at!=portMap.end();) { + if (at.value() == name) + return true; + ++at; + } + ++it; + } + return false; +} + +void UkmediaVolumeControl::removeInputProfile(int index) +{ + QMap>::iterator it; + qDebug() << "removeInputProfile" << index << inputPortProfileNameMap; + + for (it=inputPortProfileNameMap.begin();it!=inputPortProfileNameMap.end();) { + if(it.key() == index){ + inputPortProfileNameMap.erase(it); + break; + } + ++it; + } +} + +bool UkmediaVolumeControl::isExitInputPort(QString name) +{ + QMap>::iterator it; + QMap::iterator at; + QMap portMap; + for (it=inputPortMap.begin();it!=inputPortMap.end();) { + portMap = it.value(); + for (at=portMap.begin();at!=portMap.end();) { + if (at.value() == name) + return true; + ++at; + } + ++it; + } + return false; +} diff --git a/audio/ukmedia_volume_control.h b/audio/ukmedia_volume_control.h new file mode 100644 index 0000000..b3417b6 --- /dev/null +++ b/audio/ukmedia_volume_control.h @@ -0,0 +1,243 @@ +#ifndef UKMEDIAVOLUMECONTROL_H +#define UKMEDIAVOLUMECONTROL_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "ukui_custom_style.h" + +#define PANGUW_SINK "alsa_output.platform-raoliang-sndcard.analog-stereo" + +#define DECAY_STEP .04 + +static int n_outstanding = 0; + +class PortInfo { +public: + QByteArray name; + QByteArray description; + uint32_t priority; + int available; + int direction; + int64_t latency_offset; + std::vector profiles; +}; + +class UkmediaVolumeControl : public QObject{ + Q_OBJECT +public: + UkmediaVolumeControl(); + virtual ~UkmediaVolumeControl(); + + void updateCard(UkmediaVolumeControl *c,const pa_card_info &info); + bool updateSink(UkmediaVolumeControl *c,const pa_sink_info &info); + void updateSource(const pa_source_info &info); + void updateSinkInput(const pa_sink_input_info &info); + void updateSourceOutput(const pa_source_output_info &info); + void updateClient(const pa_client_info &info); + void updateServer(const pa_server_info &info); + void updateVolumeMeter(uint32_t source_index, uint32_t sink_input_index, double v); +// void updateRole(const pa_ext_stream_restore_info &info); + + void updateDeviceInfo(const pa_ext_device_restore_info &info) ; + bool setSinkMute(bool status); //设置输出设备静音状态 + bool setSinkVolume(int index,int value); //设置输出设备音量值 + bool setSourceMute(bool status); //设置输入设备静音状态 + bool setSourceVolume(int index,int value); //设置输入设备音量值 + bool setBalanceVolume(int index,int value,float balance); //设置平衡值 + bool getSinkMute(); //获取输出设备静音状态 + int getSinkVolume(); //获取输出设备音量值 + bool getSourceMute(); //获取输入设备静音状态 + int getSourceVolume(); //获取输入设备音量值 + float getBalanceVolume();//获取平衡音量 + int getDefaultSinkIndex(); + int getSinkInputVolume(const gchar *name); //根据name获取sink input的音量值 + void setSinkInputVolume(int index,int value); //设置sink input 音量值 + void setSinkInputMuted(int index,bool status); //设置sink input 静音状态 + + int getSourceOutputVolume(const gchar *name); //根据name获取source output的音量值 + bool setCardProfile(int index,const gchar *name); //设置声卡的配置文件 + bool setDefaultSink(const gchar *name); //设置默认的输出设备 + bool setDefaultSource(const gchar *name); //设置默认的输入设备 + bool setSinkPort(const gchar *sinkName ,const gchar *portName); //设置输出设备的端口 + bool setSourcePort(const gchar *sourceName, const gchar *portName); //设置输入设备的端口 + + void setSourceOutputVolume(int index, int value); + void setSourceOutputMuted(int index, bool status); + + void removeCard(uint32_t index); + void removeSink(uint32_t index); + void removeSource(uint32_t index); + void removeSinkInput(uint32_t index); + void removeSourceOutput(uint32_t index); + void removeClient(uint32_t index); + + void setConnectingMessage(const char *string = NULL); + + void showError(const char *txt); + static void decOutstanding(UkmediaVolumeControl *w); + static void readCallback(pa_stream *s, size_t length, void *userdata); + static void sinkIndexCb(pa_context *c, const pa_sink_info *i, int eol, void *userdata); + static void sourceIndexCb(pa_context *c, const pa_source_info *i, int eol, void *userdata); + + static void cardCb(pa_context *, const pa_card_info *i, int eol, void *userdata); + static void sinkCb(pa_context *c, const pa_sink_info *i, int eol, void *userdata); + static void sourceCb(pa_context *, const pa_source_info *i, int eol, void *userdata); + static void sinkInputCb(pa_context *, const pa_sink_input_info *i, int eol, void *userdata); + static void sinkInputCallback(pa_context *c, const pa_sink_input_info *i, int eol, void *userdata); //不更新sink input + static void sourceOutputCb(pa_context *, const pa_source_output_info *i, int eol, void *userdata); + static void clientCb(pa_context *, const pa_client_info *i, int eol, void *userdata); + static void serverInfoCb(pa_context *, const pa_server_info *i, void *userdata); + static void serverInfoIndexCb(pa_context *, const pa_server_info *i, void *userdata); + static void extStreamRestoreReadCb(pa_context *,const pa_ext_stream_restore_info *i,int eol,void *userdata); + static void extStreamRestoreSubscribeCb(pa_context *c, void *userdata); +// void ext_device_restore_read_cb(pa_context *,const pa_ext_device_restore_info *i,int eol,void *userdata); +// static void ext_device_restore_subscribe_cb(pa_context *c, pa_device_type_t type, uint32_t idx, void *userdata); + static void extDeviceManagerReadCb(pa_context *,const pa_ext_device_manager_info *,int eol,void *userdata); + static void extDeviceManagerSubscribeCb(pa_context *c, void *userdata); + static void subscribeCb(pa_context *c, pa_subscription_event_type_t t, uint32_t index, void *userdata); + static void contextStateCallback(pa_context *c, void *userdata); + pa_context* getContext(void); + gboolean connectToPulse(gpointer userdata); + + void updateOutputPortMap(); + void removeOutputPortMap(int index); //移除指定索引的output port + void removeInputPortMap(int index); //移除指定索引的input port + void removeCardMap(int index); //移除指定索引的 card + void removeCardProfileMap(int index); //移除声卡profile map + void removeSinkPortMap(int index); + void removeSourcePortMap(int index); + void removeProfileMap(int index); + bool isExitOutputPort(QString name); + QString findSinkActivePortName(QString name); + void removeInputProfile(int index); + bool isExitInputPort(QString name); + QString stringRemoveUnrecignizedChar(QString str); + + + std::vector< std::pair > profiles; + std::map ports; + QByteArray activeProfile; + QByteArray noInOutProfile; + QByteArray lastActiveProfile; + + QVector sourceOutputVector;//存储source output索引 + bool hasSinks; + bool hasSources; + pa_cvolume m_defaultSinkVolume; + + const pa_sink_info *m_pDefaultSink; + pa_context* m_pPaContext; + std::map clientNames; + + int sinkVolume; //输出音量 + int sourceVolume; //输入音量 + bool sinkMuted; //输出静音状态 + bool sourceMuted; //输入静音状态 + int sinkInputVolume; //sink input 音量 + bool sinkInputMuted; //sink input 静音状态 + float balance; //平衡音量值 + int channel; //通道数 + int inputChannel; + int sinkInputChannel; + int sourceOutputChannel; + QString sinkPortName; //输出设备端口名 + QString sourcePortName; //输入设备端口名 + int defaultOutputCard; + int defaultInputCard; + + pa_channel_map defaultChannelMap; + friend class UkmediaMainWidget; + + pa_stream *peak; + double lastPeak; + QByteArray name; + QByteArray description; + uint32_t index, card_index; + int peakDetectIndex=0; + pa_source_flags sourceFlags; + + bool offsetButtonEnabled; + + pa_channel_map channelMap; + pa_cvolume volume; + std::vector< std::pair > dPorts; + QByteArray activePort; + + QMap sinkMap; //输出设备 + QMap sinkActivePortMap; //输出设备活跃端口 + QMap sourceMap; //输入设备 + QMap> outputPortMap; //输出端口 + QMap> inputPortMap; //输入端口 + QMap> profileNameMap; //声卡输出配置文件 + QMap> inputPortProfileNameMap; //声卡输入配置文件 + QMap> cardProfilePriorityMap; //记录声卡优先级配置文件 + QMap> cardProfileMap; + QMap cardMap; + QMap> sinkPortMap; + QMap> sourcePortMap; + QMap cardActiveProfileMap; + +Q_SIGNALS: + void paContextReady(); + void updateVolume(int value,bool state); + void updateSourceVolume(int value,bool state); + void addSinkInputSignal(const gchar* name,const gchar *id,int index); + void removeSinkInputSignal(const gchar* name); + void addSourceOutputSignal(const gchar* name,const gchar *id,int index); + void removeSourceOutputSignal(const gchar* name); + void checkDeviceSelectionSianal(const pa_card_info *info); + void peakChangedSignal(double v); + void updatePortSignal(); + void updateCboxPortSignal(); + void deviceChangedSignal(); + + +protected Q_SLOTS: + void timeoutSlot(); + +public: + void setConnectionState(gboolean connected); + void updateDeviceVisibility(); + void reallyUpdateDeviceVisibility(); + pa_stream* createMonitorStreamForSource(uint32_t source_idx, uint32_t stream_idx, bool suspend); + + + void setIconFromProplist(QLabel *icon, pa_proplist *l, const char *name); + + pa_context *context; + QByteArray defaultSinkName, defaultSourceName; + + bool canRenameDevices; + const pa_server_info *m_pServerInfo; + const pa_source_info *m_pDefaultSource; + int sinkIndex; + int sourceIndex; + pa_mainloop_api* api; + QStringList sinkInputList; + QMap sinkInputMap; + QMap sourceOutputMap; + +private: + + gboolean m_connected; + gchar* m_config_filename; + +}; + + +#endif // UKMEDIAVOLUMECONTROL_H diff --git a/audio/ukui_custom_style.cpp b/audio/ukui_custom_style.cpp new file mode 100644 index 0000000..7598552 --- /dev/null +++ b/audio/ukui_custom_style.cpp @@ -0,0 +1,449 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- + * + * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * + * 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. + * + */ +#include "ukui_custom_style.h" +#include +#include +#include +#include +#include +#include +#include +#include + +UkuiMediaSliderTipLabel::UkuiMediaSliderTipLabel(){ + setAttribute(Qt::WA_TranslucentBackground); +} + +UkuiMediaSliderTipLabel::~UkuiMediaSliderTipLabel(){ +} + +void UkuiMediaSliderTipLabel::paintEvent(QPaintEvent *e) +{ + QStyleOptionFrame opt; + initStyleOption(&opt); + QStylePainter p(this); +// p.setBrush(QBrush(QColor(0x1A,0x1A,0x1A,0x4C))); + p.setBrush(QBrush(QColor(0xFF,0xFF,0xFF,0x33))); + p.setPen(Qt::NoPen); + p.drawRoundedRect(this->rect(), 1, 1); + QPainterPath path; + path.addRoundedRect(opt.rect,6,6); + p.setRenderHint(QPainter::Antialiasing); + setProperty("blurRegion",QRegion(path.toFillPolygon().toPolygon())); + p.drawPrimitive(QStyle::PE_PanelTipLabel, opt); + this->setProperty("blurRegion", QRegion(QRect(0, 0, 1, 1))); + QLabel::paintEvent(e); +} + +UkmediaVolumeSlider::UkmediaVolumeSlider(QWidget *parent,bool needTip) +{ + Q_UNUSED(parent); + if (needTip) { + state = needTip; + m_pTiplabel = new UkuiMediaSliderTipLabel(); + m_pTiplabel->setWindowFlags(Qt::ToolTip); + // qApp->installEventFilter(new AppEventFilter(this)); + m_pTiplabel->setFixedSize(70,30); + m_pTiplabel->setAlignment(Qt::AlignHCenter | Qt::AlignVCenter); + } +} + +void UkmediaVolumeSlider::mousePressEvent(QMouseEvent *ev) +{ + if (state) { + m_pTiplabel->show(); + } + //注意应先调用父类的鼠标点击处理事件,这样可以不影响拖动的情况 + QSlider::mousePressEvent(ev); + //获取鼠标的位置,这里并不能直接从ev中取值(因为如果是拖动的话,鼠标开始点击的位置没有意义了) + int value = 0; + int currentX = ev->pos().x(); + double per = currentX * 1.0 / this->width(); + if ((this->maximum() - this->minimum()) >= 50) { //减小鼠标点击像素的影响 + value = qRound(per*(this->maximum() - this->minimum())) + this->minimum(); + if (value <= (this->maximum() / 2 - this->maximum() / 10 + this->minimum() / 10)) { + value = qRound(per*(this->maximum() - this->minimum() - 1)) + this->minimum(); + } else if (value > (this->maximum() / 2 + this->maximum() / 10 + this->minimum() / 10)) { + value = qRound(per*(this->maximum() - this->minimum() + 1)) + this->minimum(); + } else { + value = qRound(per*(this->maximum() - this->minimum())) + this->minimum(); + } + } else { + value = qRound(per*(this->maximum() - this->minimum())) + this->minimum(); + } + this->setValue(value); + //向父窗口发送自定义事件event type,这样就可以在父窗口中捕获这个事件进行处理 + QEvent evEvent(static_cast(QEvent::User + 1)); + QCoreApplication::sendEvent(parentWidget(), &evEvent); +} + +void UkmediaVolumeSlider::mouseReleaseEvent(QMouseEvent *ev) +{ + mouseClickFlag = true; + QSlider::mouseReleaseEvent(ev); +} +void UkmediaVolumeSlider::wheelEvent(QWheelEvent* ev) +{ + if(mouseClickFlag) + QSlider::wheelEvent(ev); +} + +void UkmediaVolumeSlider::initStyleOption(QStyleOptionSlider *option) +{ + QSlider::initStyleOption(option); +} + +void UkmediaVolumeSlider::leaveEvent(QEvent *e) +{ + if (state) { + m_pTiplabel->hide(); + } + mouseClickFlag = false; + QSlider::leaveEvent(e); +} + +void UkmediaVolumeSlider::enterEvent(QEvent *e) +{ + if (state) { + m_pTiplabel->show(); + } +} + +void UkmediaVolumeSlider::paintEvent(QPaintEvent *e) +{ + QRect rect; + QStyleOptionSlider m_option; + QSlider::paintEvent(e); + if (state) { + + this->initStyleOption(&m_option); + rect = this->style()->subControlRect(QStyle::CC_Slider, &m_option,QStyle::SC_SliderHandle,this); + QPoint gPos = this->mapToGlobal(rect.topLeft()); + QString percent; + percent = QString::number(this->value()); + percent.append("%"); + m_pTiplabel->setText(percent); + m_pTiplabel->move(gPos.x()-(m_pTiplabel->width()/2)+9,gPos.y()-m_pTiplabel->height()-1); + } + + +} + +UkmediaVolumeSlider::~UkmediaVolumeSlider() +{ +} + +void UkuiButtonDrawSvg::init(QImage img, QColor color) +{ + mImage = img; + mColor = color; +} + +void UkuiButtonDrawSvg::paintEvent(QPaintEvent *event) +{ + QStyleOption opt; + opt.init(this); + QPainter p(this); + p.setBrush(QBrush(QColor(0x13,0x13,0x14,0x00))); + p.setPen(Qt::NoPen); + QPainterPath path; + opt.rect.adjust(0,0,0,0); + path.addRoundedRect(opt.rect,6,6); + p.setRenderHint(QPainter::Antialiasing); // 反锯齿; + p.drawRoundedRect(opt.rect,6,6); + setProperty("blurRegion",QRegion(path.toFillPolygon().toPolygon())); + style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this); +} + +QRect UkuiButtonDrawSvg::IconGeometry() +{ + QRect res = QRect(QPoint(0,0),QSize(24,24)); + res.moveCenter(QRect(0,0,width(),height()).center()); + return res; +} + +void UkuiButtonDrawSvg::draw(QPaintEvent* e) +{ + Q_UNUSED(e); + QPainter painter(this); + QRect iconRect = IconGeometry(); + if (mImage.size() != iconRect.size()) + { + mImage = mImage.scaled(iconRect.size(), Qt::KeepAspectRatio, Qt::SmoothTransformation); + QRect r = mImage.rect(); + r.moveCenter(iconRect.center()); + iconRect = r; + } + + this->setProperty("fillIconSymbolicColor", true); + filledSymbolicColoredPixmap(mImage,mColor); + painter.drawImage(iconRect, mImage); +} + +bool UkuiButtonDrawSvg::event(QEvent *event) +{ + switch (event->type()) + { + case QEvent::Paint: + draw(static_cast(event)); + break; + + case QEvent::Move: + case QEvent::Resize: + { + QRect rect = IconGeometry(); + } + break; + + case QEvent::MouseButtonPress: + case QEvent::MouseButtonRelease: + case QEvent::MouseButtonDblClick: + event->accept(); + break; + + default: + break; + } + + return QPushButton::event(event); +} + + +UkuiButtonDrawSvg::UkuiButtonDrawSvg(QWidget *parent) +{ + Q_UNUSED(parent); +} +UkuiButtonDrawSvg::~UkuiButtonDrawSvg() +{ + +} + +QPixmap UkuiButtonDrawSvg::filledSymbolicColoredPixmap(QImage &img, QColor &baseColor) +{ + + for (int x = 0; x < img.width(); x++) { + for (int y = 0; y < img.height(); y++) { + auto color = img.pixelColor(x, y); + if (color.alpha() > 0) { + int hue = color.hue(); + if (!qAbs(hue - symbolic_color.hue()) < 10) { + color.setRed(baseColor.red()); + color.setGreen(baseColor.green()); + color.setBlue(baseColor.blue()); + img.setPixelColor(x, y, color); + } + } + } + } + + return QPixmap::fromImage(img); +} + + +CustomSound::CustomSound() +{ +} + +CustomSound::~CustomSound() +{ + delete(file); + delete(doc); + file->close(); +} + +bool CustomSound::createAudioFile() +{ + //打开或创建文件 + QFile *file; + QString audioPath = QDir::homePath() + "/.config/customAudio.xml"; + if(!QFile::exists(audioPath)){ + file = new QFile(audioPath); + if(!file->open(QFile::WriteOnly)) + return false; + //写入xml头部 + QDomDocument doc; + QDomProcessingInstruction instruction; //添加处理命令 + + instruction = doc.createProcessingInstruction("xml","version=\"1.0\" encoding=\"UTF-8\""); + doc.appendChild(instruction); + //添加根节点 + QDomElement root = doc.createElement("root"); + doc.appendChild(root); + //添加子节点 + QDomElement node = doc.createElement("firstRun"); + QDomElement init = doc.createElement("init"); //创建子元素 + QDomText text = doc.createTextNode("true"); + init.appendChild(text); + node.appendChild(init); + root.appendChild(node); + + //输出到文件 + QTextStream out_stream(file); + doc.save(out_stream,4); //缩进4格 + file->close(); + return true; + } + return true; +} + +//判断某个节点是否存在 +bool CustomSound::isExist(QString nodeName) +{ + if (nodeName == "") + return false; + //打开文件 + QString errorStr; + int errorLine; + int errorCol; + + QString audioPath = QDir::homePath() + "/.config/customAudio.xml"; + QFile file(audioPath); + + if(!file.exists()) + createAudioFile(); + + if(file.open(QFile::ReadOnly)){ + QDomDocument doc; + if(doc.setContent(&file,true,&errorStr,&errorLine,&errorCol)){ + file.close(); + QDomElement root = doc.documentElement(); + QDomElement ele = root.firstChildElement(); + nodeName.remove(" "); + nodeName.remove("/"); + nodeName.remove("("); + nodeName.remove(")"); + nodeName.remove("["); + nodeName.remove("]"); + if(nodeName.at(0)>='0' && nodeName.at(0)<='9'){ + nodeName = "Audio_"+nodeName; + } + while(!ele.isNull()) { + if(ele.nodeName() == nodeName) + return true; + ele = ele.nextSiblingElement(); + } + } + else + { + qDebug() << errorStr << "line: " << errorLine << "col: " << errorCol; + } + + file.close(); + } + + return false; +} + +//添加第一个子节点及其子元素 +int CustomSound::addXmlNode(QString nodeName, bool initState) +{ + //打开文件 + QString audioPath = QDir::homePath() + "/.config/customAudio.xml"; + QFile file(audioPath); + QDomDocument doc;//增加一个一级子节点以及元素 + if(file.open(QFile::ReadOnly)){ + if(doc.setContent(&file)){ + file.close(); + } + else { + file.close(); + return -1; + } + } + else + return -1; + + //添加新节点 + nodeName.remove(" "); + nodeName.remove("/"); + nodeName.remove("("); + nodeName.remove(")"); + nodeName.remove("["); + nodeName.remove("]"); + if(nodeName.at(0)>='0' && nodeName.at(0)<='9'){ + nodeName = "Audio_"+nodeName; + } + QDomElement root=doc.documentElement(); + QDomElement node=doc.createElement(nodeName); + + QDomElement init=doc.createElement("init"); + QDomText text; + if(initState) + text = doc.createTextNode("true"); + else + text = doc.createTextNode("false"); + init.appendChild(text); + node.appendChild(init); + root.appendChild(node); + qDebug() << "addXmlNode" << nodeName ; + //修改first-run状态 + QDomElement ele = root.firstChildElement(); + while(!ele.isNull()) { + if(ele.nodeName() == "firstRun"){ + QString value = ele.firstChildElement().firstChild().nodeValue(); + if(value == "true") + ele.firstChildElement().firstChild().setNodeValue("false"); + } + ele = ele.nextSiblingElement(); + } + + if(file.open(QFile::WriteOnly|QFile::Truncate)) { + //输出到文件 + QTextStream out_stream(&file); + doc.save(out_stream,4); //缩进4格 + file.close(); + } + + return 0; +} + +bool CustomSound::isFirstRun() +{ + + QString audioPath = QDir::homePath() + "/.config/customAudio.xml"; + QFile file(audioPath); + if(!file.exists()){ + createAudioFile(); + } + + if(file.open(QFile::ReadOnly)){ + QDomDocument doc; + if(doc.setContent(&file)){ + file.close(); + QDomElement root = doc.documentElement(); + QDomElement ele = root.firstChildElement(); + + qDebug()<<"===================ele.nodeName() :"< +#include +#include +#include +#include +#include +#include "titlelabel.h" +#include +#include +#include +#include + +static QColor symbolic_color = Qt::gray; + +class UkuiMediaSliderTipLabel:public QLabel +{ + public: + UkuiMediaSliderTipLabel(); + ~UkuiMediaSliderTipLabel(); +protected: + void paintEvent(QPaintEvent*); +}; + +class UkmediaVolumeSlider : public QSlider +{ + Q_OBJECT +public: +// UkmediaVolumeSlider(QWidget *parent = nullptr); + UkmediaVolumeSlider(QWidget *parent = nullptr,bool needTip = false); + void initStyleOption(QStyleOptionSlider *option); + ~UkmediaVolumeSlider(); +private: + UkuiMediaSliderTipLabel *m_pTiplabel; + bool state = false; + bool mouseClickFlag = false; + bool mousePress =false; +Q_SIGNALS: + void silderPressedSignal(int); + +protected: + void mousePressEvent(QMouseEvent *ev); + void mouseReleaseEvent(QMouseEvent *ev); + void mouseMoveEvent(QMouseEvent *e) + { +// setCursor(QCursor(Qt::OpenHandCursor)); +// m_displayLabel->move((this->width()-m_displayLabel->width())*this->value()/(this->maximum()-this->minimum()),3); + QSlider::mouseMoveEvent(e); + } + void leaveEvent(QEvent *e); + void wheelEvent(QWheelEvent* ev); + void enterEvent(QEvent *e); + void paintEvent(QPaintEvent *e); +}; + + +class UkuiButtonDrawSvg:public QPushButton +{ + Q_OBJECT +public: + UkuiButtonDrawSvg(QWidget *parent = nullptr); + ~UkuiButtonDrawSvg(); + QPixmap filledSymbolicColoredPixmap(QImage &source, QColor &baseColor); + QRect IconGeometry(); + void draw(QPaintEvent* e); + void init(QImage image ,QColor color); + friend class UkmediaMainWidget; +protected: + void paintEvent(QPaintEvent *event); + bool event(QEvent *e); +private: + QImage mImage; + QColor mColor; + + bool mousePress = false; +}; + +class CustomSound +{ +public: + CustomSound(); + ~CustomSound(); + bool createAudioFile(); + bool isExist(QString nodeName); + int addXmlNode(QString nodeNane, bool initState); + bool isFirstRun(); + + +public: + QFile *file; +private: + QDomDocument *doc; + QString audioPath; +}; + + +#endif // UKUICUSTOMSTYLE_H diff --git a/audio/ukui_list_widget_item.cpp b/audio/ukui_list_widget_item.cpp new file mode 100644 index 0000000..e8eda3f --- /dev/null +++ b/audio/ukui_list_widget_item.cpp @@ -0,0 +1,115 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- + * + * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * + * 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. + * + */ +#include "ukui_list_widget_item.h" + +#include +#include +#include +#include +//#include +#include +bool isCheckBluetoothInput; +UkuiListWidget::UkuiListWidget(QWidget *parent) : + QListWidget(parent) +{ + +} + +UkuiListWidget::~UkuiListWidget() +{ + +} + +UkuiListWidgetItem::UkuiListWidgetItem(QWidget *parent) : + QWidget(parent) +{ + this->setFixedSize(500,64); + + QVBoxLayout *vLayout = new QVBoxLayout; + + portLabel = new QLabel(this); + deviceLabel = new QLabel(this); + + portLabel->setFixedSize(600,24); + deviceLabel->setFixedSize(600,24); + vLayout->addWidget(portLabel); + vLayout->addWidget(deviceLabel); + this->setLayout(vLayout); + + this->show(); +} + +UkuiListWidgetItem::~UkuiListWidgetItem() +{ +} + +void UkuiListWidgetItem::setSelected(bool selected){ + if (selected) { + widget->setStyleSheet("QWidget{background: #3D6BE5; border-radius: 4px;}"); + } else { + widget->setStyleSheet("QListWidget::Item:hover{background:#FF3D6BE5;border-radius: 4px;}"); + } +} + + +//设置输出设备的设备名字和名称 +void UkuiListWidgetItem::setLabelText(QString portLabel, QString deviceLabel){ + + this->portLabel->setText(portLabel); + this->deviceLabel->setText(deviceLabel); +} + +void UkuiListWidgetItem::mousePressEvent(QMouseEvent *event) +{ + QWidget::mousePressEvent(event); + qDebug() << "Mouse Press Event" << this->portLabel->text() << this->deviceLabel->text() << isCheckBluetoothInput; + //蓝牙输入去除勾选 + if (this->deviceLabel->text().contains("bluez_card")) { + if (isCheckBluetoothInput == false) + isCheckBluetoothInput = true; + else { + isCheckBluetoothInput = false; + QString cmd = "pactl set-card-profile "+this->deviceLabel->text()+" a2dp_sink"; + system(cmd.toLocal8Bit().data()); + } + } +} + +//void UkuiListWidgetItem::paintEvent(QPaintEvent *event) +//{ +// QStyleOption opt; +// opt.init(this); +// QPainter p(this); +//// double transparence = transparency * 255; +// QColor color = palette().color(QPalette::Base); +//// color.setAlpha(transparence); +// QBrush brush = QBrush(color); +// p.setBrush(brush); +// p.setPen(Qt::NoPen); +// QPainterPath path; +// opt.rect.adjust(0,0,0,0); +// path.addRoundedRect(opt.rect,6,6); +// p.setRenderHint(QPainter::Antialiasing); // 反锯齿; +// p.drawRoundedRect(opt.rect,6,6); +// setProperty("blurRegion",QRegion(path.toFillPolygon().toPolygon())); +// style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this); +//// QWidget::paintEvent(event); +//} + diff --git a/audio/ukui_list_widget_item.h b/audio/ukui_list_widget_item.h new file mode 100644 index 0000000..2a9d55f --- /dev/null +++ b/audio/ukui_list_widget_item.h @@ -0,0 +1,82 @@ +#ifndef UKUILISTWIDGETITEM_H +#define UKUILISTWIDGETITEM_H + + +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- + * + * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * + * 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. + * + */ + +#include +#include +#include +#include +#include +#include +#include +#include + +class UkuiListWidget : public QListWidget +{ + Q_OBJECT +public: + UkuiListWidget(QWidget *parent = nullptr); + ~UkuiListWidget(); +protected: + void paintEvent(QPaintEvent*event) { + int i; + for (i = 0 ;i < this->count();i++) { + QListWidgetItem *item = this->item(i); +// item->setTextColor(QColor(0,0,0,0)); + delete item; + } + QListWidget::paintEvent(event); + } + +}; + +class UkuiListWidgetItem : public QWidget +{ + Q_OBJECT + +public: + UkuiListWidgetItem(QWidget *parent = 0); + ~UkuiListWidgetItem(); + +public: + void setLabelText(QString portText,QString deviceLabel); +// void setLabelTextIsWhite(bool selected); + + void setSelected(bool selected); + +// QString text(); + + QString portName; + QLabel * portLabel; + QLabel * deviceLabel; + +protected: +// void paintEvent(QPaintEvent *event); + void mousePressEvent(QMouseEvent *ev); + +private: + QWidget * widget; + +}; + +#endif // UKUILISTWIDGETITEM_H diff --git a/build-aux/git-version-gen b/build-aux/git-version-gen new file mode 100755 index 0000000..d55dceb --- /dev/null +++ b/build-aux/git-version-gen @@ -0,0 +1,154 @@ +#!/bin/sh +# Print a version string. +scriptversion=2009-05-04.22 + +# Copyright (C) 2007-2008 Free Software Foundation +# +# 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, 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. + +# This script is derived from GIT-VERSION-GEN from GIT: http://git.or.cz/. +# It may be run two ways: +# - from a git repository in which the "git describe" command below +# produces useful output (thus requiring at least one signed tag) +# - from a non-git-repo directory containing a .tarball-version file, which +# presumes this script is invoked like "./git-version-gen .tarball-version". + +# In order to use intra-version strings in your project, you will need two +# separate generated version string files: +# +# .tarball-version - present only in a distribution tarball, and not in +# a checked-out repository. Created with contents that were learned at +# the last time autoconf was run, and used by git-version-gen. Must not +# be present in either $(srcdir) or $(builddir) for git-version-gen to +# give accurate answers during normal development with a checked out tree, +# but must be present in a tarball when there is no version control system. +# Therefore, it cannot be used in any dependencies. GNUmakefile has +# hooks to force a reconfigure at distribution time to get the value +# correct, without penalizing normal development with extra reconfigures. +# +# .version - present in a checked-out repository and in a distribution +# tarball. Usable in dependencies, particularly for files that don't +# want to depend on config.h but do want to track version changes. +# Delete this file prior to any autoconf run where you want to rebuild +# files to pick up a version string change; and leave it stale to +# minimize rebuild time after unrelated changes to configure sources. +# +# It is probably wise to add these two files to .gitignore, so that you +# don't accidentally commit either generated file. +# +# Use the following line in your configure.ac, so that $(VERSION) will +# automatically be up-to-date each time configure is run (and note that +# since configure.ac no longer includes a version string, Makefile rules +# should not depend on configure.ac for version updates). +# +# AC_INIT([GNU project], +# m4_esyscmd([build-aux/git-version-gen .tarball-version]), +# [bug-project@example]) +# +# Then use the following lines in your Makefile.am, so that .version +# will be present for dependencies, and so that .tarball-version will +# exist in distribution tarballs. +# +# BUILT_SOURCES = $(top_srcdir)/.version +# $(top_srcdir)/.version: +# echo $(VERSION) > $@-t && mv $@-t $@ +# dist-hook: +# echo $(VERSION) > $(distdir)/.tarball-version + +case $# in + 1) ;; + *) echo 1>&2 "Usage: $0 \$srcdir/.tarball-version"; exit 1;; +esac + +tarball_version_file=$1 +nl=' +' + +# First see if there is a tarball-only version file. +# then try "git describe", then default. +if test -f $tarball_version_file +then + v=`cat $tarball_version_file` || exit 1 + case $v in + *$nl*) v= ;; # reject multi-line output + [0-9]*) ;; + *) v= ;; + esac + test -z "$v" \ + && echo "$0: WARNING: $tarball_version_file seems to be damaged" 1>&2 +fi + +if test -n "$v" +then + : # use $v +elif test -d .git \ + && v=`git describe --abbrev=4 --match='${UKUI_TAG_PATTERN}_*' HEAD 2>/dev/null \ + || git describe --abbrev=4 HEAD 2>/dev/null` \ + && case $v in + ${UKUI_TAG_PATTERN}_[0-9]*) ;; + *) (exit 1) ;; + esac +then + # Is this a new git that lists number of commits since the last + # tag or the previous older version that did not? + # Newer: v6.10-77-g0f8faeb + # Older: v6.10-g0f8faeb + case $v in + *-*-*) : git describe is okay three part flavor ;; + *-*) + : git describe is older two part flavor + # Recreate the number of commits and rewrite such that the + # result is the same as if we were using the newer version + # of git describe. + vtag=`echo "$v" | sed 's/-.*//'` + numcommits=`git rev-list "$vtag"..HEAD | wc -l` + v=`echo "$v" | sed "s/\(.*\)-\(.*\)/\1-$numcommits-\2/"`; + ;; + esac + + # Change the first '-' to a '.', so version-comparing tools work properly. + # Remove the "g" in git describe's output string, to save a byte. + v=`echo "$v" | sed 's/-/./;s/\(.*\)-g/\1-/'`; +else + v=UNKNOWN +fi + +#v=`echo "$v" |sed 's/^v//'` + +v=`echo "$v" | sed "s/${UKUI_TAG_PATTERN}_//" | tr _ .` + +# Don't declare a version "dirty" merely because a time stamp has changed. +git status > /dev/null 2>&1 + +dirty=`sh -c 'git diff-index --name-only HEAD' 2>/dev/null` || dirty= +case "$dirty" in + '') ;; + *) # Append the suffix only if there isn't one already. + case $v in + *-dirty) ;; + *) v="$v-dirty" ;; + esac ;; +esac + +# Omit the trailing newline, so that m4_esyscmd can use the result directly. +echo "$v" | tr -d '\012' + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-end: "$" +# End: diff --git a/data/Makefile.am b/data/Makefile.am new file mode 100644 index 0000000..f16f680 --- /dev/null +++ b/data/Makefile.am @@ -0,0 +1,40 @@ +NULL = + +SUBDIRS = \ + icons \ + $(NULL) + +@INTLTOOL_DESKTOP_RULE@ +autostartdir = $(sysconfdir)/xdg/autostart +autostart_in_files = ukui-volume-control-applet.desktop.in +autostart_DATA = $(autostart_in_files:.desktop.in=.desktop) + +appsdir = $(datadir)/applications +apps_in_files = ukui-volume-control.desktop.in +apps_DATA = $(apps_in_files:.desktop.in=.desktop) + +gsettingsschema_in_files = org.ukui.media.gschema.xml.in +gsettings_SCHEMAS = $(gsettingsschema_in_files:.xml.in=.xml) +@GSETTINGS_RULES@ +@INTLTOOL_XML_RULE@ + +EXTRA_DIST = \ + $(autostart_in_files) \ + ukui-volume-control.desktop.in.in \ + $(gsettingsschema_in_files) \ + $(NULL) + +CLEANFILES = \ + ukui-volume-control.desktop \ + $(gsettings_SCHEMAS) \ + $(NULL) + +DISTCLEANFILES = \ + ukui-volume-control-applet.desktop \ + $(NULL) + +MAINTAINERCLEANFILES = \ + Makefile.in \ + $(gsettings_SCHEMAS:.xml=.valid) + +-include $(top_srcdir)/git.mk diff --git a/data/icons/16x16/Makefile.am b/data/icons/16x16/Makefile.am new file mode 100644 index 0000000..05a9700 --- /dev/null +++ b/data/icons/16x16/Makefile.am @@ -0,0 +1,4 @@ +SUBDIRS = status + + +-include $(top_srcdir)/git.mk diff --git a/data/icons/16x16/status/Makefile.am b/data/icons/16x16/status/Makefile.am new file mode 100644 index 0000000..9ca7ba0 --- /dev/null +++ b/data/icons/16x16/status/Makefile.am @@ -0,0 +1,21 @@ +NULL = + +themedir = $(pkgdatadir)/icons/hicolor +size = 16x16 +context = status + +iconsdir = $(themedir)/$(size)/$(context) + +icons_DATA = \ + audio-input-microphone-high.png \ + audio-input-microphone-low.png \ + audio-input-microphone-medium.png \ + audio-input-microphone-muted.png \ + $(NULL) + +EXTRA_DIST = \ + $(icons_DATA) \ + $(NULL) + + +-include $(top_srcdir)/git.mk diff --git a/data/icons/16x16/status/audio-input-microphone-high.png b/data/icons/16x16/status/audio-input-microphone-high.png new file mode 100644 index 0000000000000000000000000000000000000000..160d2b8ec7cbb32e2a280f85b6f712dd09c58660 GIT binary patch literal 853 zcmV-b1FHOqP)A>ZJH?=7m#*GmurxPj z*u7^jgSeO|%yA2tz)k_;um9P9{{R1v{rji4e}G(;RV&uO)5F(q-x+i?)fkSSJj-Bh zZO!oT@l!+~KD+lk?)vq6`~JRvqx0_V$7}x>ndQHH{{9d-41n>^aO&&@25CughNDN1 zGRR6xA`JNa>2u`!m+vb+d<4>O->v)c@rTjpFJCVp>31n9uVGMCR%FmnRbX&;v1gb$ zYc5E9HrRmsTPqCMdAa1@z5NjN>D9NnU%!5f{qp7OGN|S?z$CjDNV_(*bTCYuGLvD; zHgNixy=1|xG$6f>McJ=Y?(g6K8<-dwvc$y2w1Bp&vPvoJgc@)g7?=gX@R$IJHAMOX z#y~!hy3DBJ*(vk;|6e_3UZ$g5OkAf~7+DI>FVEZxQwTJm0Z1hSu?&*8o&fP&pur7{ zpwy)5)yVgUk$n@;6<639y!!=c93{sL3 z40{e7Vfg;zCqr0R2uOSvu?8?GE6OvRIe&>kQ9+(z*WN=6k`m%@Iid^z*=ne#&2Z${ zDF!_q4Tgu09)ra}USv}6?zpV#)g^<^01kFGhVz%Mf;Dg1zK20ZS_&)<3`ABYK0e+h zg5vxg*ffTQ2gku&pr@_DaNzI>1`AUohG)-Tz~rNtq?9BVX=tiAp=%C{2mxBaxDdqV z*);zkT}gK}dve8NZ-#3N`~c*x4A)U%Cp`yk+|y1{rB7usARfS(*6wc$Wx@^LGdc z3a%0o5ePxn7#bcN2Xld*wg$t2!zUOlOpO?xJ%0g{k7ANil3b*rsp7=T&vi#gSWpF~ zIV>UsXaVCw5Sx>Oo#E2e8w{4_#tggn>}3!a6NM>Tzyx**5P$v8{`3F;f9x=sRV&uO z6Uf(Z-x+i?)fkSSJj-BhZO!oT@l!+~KD+lk?)vq6`~JRvqx0_V$7|Ta02u!ar_Nqr zkd_o@IC}IbgRHb9!hp}8K1aTP`M%=AM4Vaqmf`kB3C!K^eO zy^clMuT$>t-~St!7#XteZK-&PX25M=U={$wV*(`B7?EQrA4pwhRPpST`ThT|-h=Ix z+pzf`Xg~vyN(N#XB;hAOJQrwi10ylH5o%Bykg5dYcA&;8cp#Ff83Zb!d@ukAFaW{| V^}yXyvP=K~002ovPDHLkV1fngFzo;U literal 0 HcmV?d00001 diff --git a/data/icons/16x16/status/audio-input-microphone-muted.png b/data/icons/16x16/status/audio-input-microphone-muted.png new file mode 100644 index 0000000000000000000000000000000000000000..7aed52c30bf974f61fe815c31eda2b73c520a386 GIT binary patch literal 520 zcmV+j0{8uiP)39y!!=c93{sL3 z40{e7Vfg;zCqr0R2uOSvu?8?GE6OvRIe&>kQ9+(z*WN=6k`m%@ITmDvAGNf$0zW0=1`q}T82jJRqYURST?K32 zvV9MOjIQE0d(U15aWPSt^a3VAHpBQjnraNkPo8D4wzg(?`1mPY9;X-3U2^K|1qNwJafYM7 z@Q{_3#2yR4bhQnr(F@&>YXU+Hs>+HCABEpDurk{-%$zkBBs?34QyK9k<*<$Cc z%FfI{WWe|lFa-x=8{2L_-ro1iM%$dpbNAf)yzle*e!kE9e4pp}QV1dNiEOLtvIn8c z;pU1ivZp8tg5`zc(kJoK0ryMJcQw_W3p+yWQ(4~8+~mAthSkbrIsPy7C&h|x>jse1 z=|rYkGjcc_NH?HITho6RXodHzHx*++8YKBNV_+^5Uxq`@g6(Jd2;U_d_% zNr?&2`O9yhSSyF&kx_pb#SrV7D<;K4;d4S!#G$N`8cFlXEe-+AJx>eioy4DCxcx-} zCN?*G35fgzBuS_$nPSK*1wbud0*@R5=$*07>uqPi2K6Fw$~5n|!R z$jGJJn8*ZlKPFEu*tvs=wEp}BX613iVdS52kV#j-^&8!=VSNU)wrL?IdO7&xSSf1~ z56e@NnNKQ+;Oj+Vp^VsHm*-5^@31~I9W)vZ#KtTSz_ELK z`cGiSGh{P2V_t0w3+rP%c6+SF<2D2n&zdbvX%W)2M^oU3`UcprF&ieQ?gd6{G#V$U zZeVgeGh^O0Z8V)Dw#jTsw^?o1gNfa4H~e|C2UaD^K%?z|tc=G&)6x`N$H3AzR=j@g zTB$RuM4dT3J^PG(?rt3uu+_HRYPDSm;@$N2y9bzRpa4Pswk_CBf|8et;B+-}Y4t)X zn9frkSFkDSM~WR*eD%y*mZ!?Y>Jpi{xEqO$t3^iR6#C-SN#xJrQ?~z8 z$mKci0;JS6y>s&c(RjQHqu!xoFx&|V3?SAwz4sU_PBO;FCm6$IGC}GZ`Q}?ay_$gW z_JAw@2cRf+)kjB)MUf)4|M{-M-OM_6XB3)#Y6h!yj@i>RAJ%20m;5g=HUHD&96a>C zW8a(m?(-AUP(og`7~&54;Qt}~E5HDZ$IfoGMiuk`00000ttg?Sw0xO5 zmz$;z=Ihp+x946q*>r1n9XOolKF_(oo#)(h&NviB!JlwAoK1UYOUn-sqx0c@@JVAs z_xckJ_NTs}M5)1HJ>_sXDC_(JWw+a@Vf`3I?-M=j_T?ft(N$GmgE&rv;ZXx@HXAy- zy0K!jqo}BWK5ut(g9T%!T!!B>vk=5YV_Qu6{$%D{=mf1E6GdCE0Bss z7#bNxMtUl=T|H2#R4^DPz24(GSGR0+tU4CiRz*a37)Hk@n238md`3=oCNvri;)JnY ze!QOpBezM5Jz@)BQG>14vGi zL!;GUuW}DGZLJ&Y7~HXz8<%=}%N;Dahpt|)Vyb}y3WX<*l64}=&Y!`<2IkW0^;87Y zb!5nB>3MLowywj+v6`HhuXhNW=|*a^f*1*@kV+QKR87nrTQJ?BmxRQRx47|6h}6t z@n1Q1<(XG|tEMz+Ta?;!|8#K)V<)GLXnp+#OH0elb7W)$vXq%+yZ})8>v8S2KWaC~ zQ)nnHdB=}=?UNsR9H=U2aLC1q3pPHV&pJ=!{}6u#7yu5@P#5g&kZ=G1002ovPDHLk FV1hx=fe`=z literal 0 HcmV?d00001 diff --git a/data/icons/22x22/status/audio-input-microphone-medium.png b/data/icons/22x22/status/audio-input-microphone-medium.png new file mode 100644 index 0000000000000000000000000000000000000000..c1efeb5757df9294c832ac52d5ed82dc43514dbf GIT binary patch literal 968 zcmV;(12_DMP)5uSoLe^M zyv{CaSyZBC*0(NXbfdJ3MGnFbMbU>S6eANMp@b-+%ZS91ipYp8nL4o4?od%$UZ*an z=9A=Ve%y#Z--9m`QsFQq$Iwq0)i*y1V%|tHxIp zJXLoDC7rEnXkslE3v2A_XU%3a+t8$8=|1TjthPMNtW{=aoPx|>iiYM^m`o;=S5#rx zWJYrGZhBs7<#OP##N0FTExGBgkQc~9@UvSFiLV&7b&ZgRhM-ja68=&@TeDFxAMAC3 zz%3!P@uA|cmrB}@7N&I|kf+c|$=%%+=Smfg~ zcZV%8dGBt{(}xcpapPkDqH09~X_Xay9%U^I>bp3ttkP6%o0Rdr~iN zPmM?{l-q)dp`FNsL&FG^Nm1X}jAc=gP*+qVAt3>++IG7u@<#sfy)1t$1EUGSb0bM% zaTXPxvpvw<(#CmQ{rWxPVpc+>Qo-MEzMY-mdu?MLA>N{kq2B(*!+d_dGjL!302f*m zx@>7U?mc{h_%#XW*8j5i*kCYpFg4&b?(Oa0*JCi=cLp9A8NsJ7wOF)J4wbqRvC%7_ zDtR_Bj=|Furyu$7AP3u8+PHvflViZ12+I+0*A3930}-bLMzrRrE@QU>YcWJ)YV0TWJN^HVUO}%hp7@eey@Q qUD24)>-EUW&T?5N@;$^q0R{lRb%G*PW#%OS0000fy3{2&hPv__wYN1a~YOp5ltwH3iDm5YdAv|Q-tu+wr8z_ z0gD4i(@0RF?6hT;-P+n>oxfeI*Xw01v)@_HPqa*kr4gH$Za3XRYKjb&xp{az9`p?i zV$aD{-i}800ySeprFteiKgQW?_E8x}!W{V2Y++suc=pqC^swt;6lc#Pw@P z*Y`o0Cda4IaUS}jvm4s#ia=ad%_VIZc-!ZbbI>@mnYVxC?Qf0}Q{Axi~ z#u0SCHK4e#0QRM20m_OhUH}>-3pP7c$~269nM6sE8ohl+NRyNJv#wXKsa?TbrqOIg zstn&|=8%`04dcKNG#U-&t&2P2X|b6G+jBn__>6~!M^IFl54~QG6lsz;aJ0-h;acnS z$QbgDXX1mQA0?+XSaq!J4&G1GHm>>{P=E^iRpLJ=mt%awjErL{=#3_vQlEtWeNSi~ zBdjY(|7u5VHolKT&uE5OA1*6TXe8a>a=B1daUPo+Zq#4BjK{4{xDZ{SZN&^Bu7!kZ zlX-BKEWHuJbz}%N2=QXUH^?F<@TR?LLSmcAvc`xU5iLX;h34NwZjuBZ#xyql#paUP z*WU4*U0-*wk6IqEk?t}v4mY1)Vf7E4<>eJb%iw=RZMQG+8>iEW?3}D~VfERqc>V%1 z_wL`Ri;s)f1^a7jwEVibVnxrJcW}Emcv~VlfC6=XJ+lXtYYW=z`J)p+!NNf~xp1+3 vho5}tshBsW91aJX?>38mC-OhUKLG{+^lMl~r7bO#00000NkvXXu0mjf>UMxI literal 0 HcmV?d00001 diff --git a/data/icons/24x24/Makefile.am b/data/icons/24x24/Makefile.am new file mode 100644 index 0000000..05a9700 --- /dev/null +++ b/data/icons/24x24/Makefile.am @@ -0,0 +1,4 @@ +SUBDIRS = status + + +-include $(top_srcdir)/git.mk diff --git a/data/icons/24x24/status/Makefile.am b/data/icons/24x24/status/Makefile.am new file mode 100644 index 0000000..6b9b71c --- /dev/null +++ b/data/icons/24x24/status/Makefile.am @@ -0,0 +1,21 @@ +NULL = + +themedir = $(pkgdatadir)/icons/hicolor +size = 24x24 +context = status + +iconsdir = $(themedir)/$(size)/$(context) + +icons_DATA = \ + audio-input-microphone-high.png \ + audio-input-microphone-low.png \ + audio-input-microphone-medium.png \ + audio-input-microphone-muted.png \ + $(NULL) + +EXTRA_DIST = \ + $(icons_DATA) \ + $(NULL) + + +-include $(top_srcdir)/git.mk diff --git a/data/icons/24x24/status/audio-input-microphone-high.png b/data/icons/24x24/status/audio-input-microphone-high.png new file mode 100644 index 0000000000000000000000000000000000000000..fe10ab2af044c4baa027bc03effe080f0c61f6df GIT binary patch literal 1214 zcmV;v1VQ_WP)pH6j$(o|5RZP#8mOqZCeinH-Uo#JD{j&A349|q2u^I1QK@Ey@{`wkdfggT?w9Uz&o0#+`qgE(TcUH~HB$C|{Y3N&7WzF)=hCGLu7M!Og^nP+) zSiJW+FOwkT0hpYcfw=Y2aO3w|jPQ$HJrEPE@JYw?&-fIO$cfHBD*CbIMXgLKIlDGo zTt@aqVqrTi6cl)PS}>E_>w!WZ0VAX1kh~!Q`ueZJqnTS^dPeURPF!yGDTs&+ABv5L zd57SkGRfCrVQcme;;Fc+xZL3EEI&m#2?e3j9U-aZw$e%gDRryyxlY)x`XA`=4QP?1(DlPC%PX+_Q~O$*mxh82%sU9>@rLJlLEF-YB<0=<2M zke!_ky2+_k0l_F(c5%f{m(%ihVsZF5xts)lsqq)S|2ug>Box5d_yps@;FX_YYi2sA zR4RyyT*sctw}&;Su;eoYUz|5@v~js3%&FZTWpOX-1DO`g7A7Q#@YIKr;H$QF*!Ea9 z%o_e=_rPd0&QL?Zyutju`M{jfbdKOAvnAbTwOtQnT3%j;UvCb>hD0T(dixqnUAp#VYQo;-}l zL)r5s@Npw^2~DiUE}`IL8jqsBp?KWVt7l%ZJaMp1&f~jw@ZIi1{tUR7^^$sXthTP3 zCCQucc{!^B|=$W1*O2N$6zo(&9R!G|0Zz14*rV% c3;ZR(05YoSbt@oHkN^Mx07*qoM6N<$f~lWDyZ`_I literal 0 HcmV?d00001 diff --git a/data/icons/24x24/status/audio-input-microphone-low.png b/data/icons/24x24/status/audio-input-microphone-low.png new file mode 100644 index 0000000000000000000000000000000000000000..ee180d85ec39a7e20749f0bdc751321ace74bd77 GIT binary patch literal 849 zcmV-X1FrmuP)M$1Nwo4YwIs)T>9SdQh~CfJj1Kk zZy3Zxgcz>fyu+ZVAkVOC?;!?B32|g)#9M$KR3O(13kfpZz5kFwK~9F@$gxuldO8{m z4<9{7i9V8i5E>pF3)95G&c^Wg>2n5oS!srgSFVE%-?DuVgN(Ekvic~v1&ZDs2c`WQ zxd_;?2&m~F%m-2uVhp$LK48#LRbn`B_ymK6sS(4o=PzJ}gS@-|Zh@G%$W=KpnQmMr zhed>dUA}tdS}@JY!OrmL$ukB;d0B?@7q2o{nj16h-m{lMTuhV!SsmO0buGCD4Na90 zTowQ|phUvgZ{HbYq$C(_-MPo0tE0)V_rOsGYinzUhmW6P=mlHw_YX7A??1o45E~y{ zoE!}I9y|j3;OOzw4CbbW3_Ex3WRMgW#h#OIT)Wc?%(8Qdwcyj|FW@8zGF(?%oniUv zjSQAn)(o%Tyv6Q=ckkXkXS~YLO{@if|NdpTaQPa8s){1R&b@~j%!~~fc5dH_o(~Wf z+}~1}b>>XkZz9ciDJic3ryfRz{|uo4o zWYE;oaK{?N#MH^acwlL1Z%hyr5JX9Wk>TJ1li}&h#|&FHZ)5oS^&6Pa&CSJNWNet| z>g2hAm^v90%S=Ci{F)6j5E+0B2LW$iFBEa0h4YEB0A|mdH*Xjkni_}>KVW@Ld=OCr b00ImEAya-jW&vmb00000NkvXXu0mjfgOYws literal 0 HcmV?d00001 diff --git a/data/icons/24x24/status/audio-input-microphone-medium.png b/data/icons/24x24/status/audio-input-microphone-medium.png new file mode 100644 index 0000000000000000000000000000000000000000..eb6aa283483ee128de1192a2d4ad597bc0c1fe39 GIT binary patch literal 1001 zcmVM$1Nwo4YwIs)T>9Sd5K!{!s8#gt zs3gV)Wkq?0SFhhNh=~X>T)TOPK~X`TVb|V643ZM!$jVSHU}pF~gN21PT0O8g4c$QW zpaQv8SV)lJ?)`@h3UV?GM~tMsTY~RBmBQ1rjJ_>FDFlY`+`!#Z%T$FNONRWTA zun12gmXKKl)btPL11SkHhFfM9b zAghC0pspp?prNS(P69l9T=xZq_!W^Y0BS&qgs*cRK&%}!Eo=vBd`yS9zV@sZfeM|bLUP5 zNpVr^Ir+x5JH0@Y=YrVZK73aD&dhuZp9P;je*q^+km0)8>I}2B0jg^N;#`n^Mnd%gthfeh00n0*5Kkb&jyzz}o=jG84UIQY(6TOFvFQK1 zcW?eroj&P5F8wTI6xaWtnBg(BaC`CMB~Ham6x4>s&z?O8Gd_O&$e^jE;f^(kiK&x; z@xap3-k2aLAc&F#Bg4T3Cd1R0j~TXZ-p26t>o+i;o12Tl$k;H^)yZ=KF?BL1mYIJ3 z_%$15ATj_M4g%i3UMS)~3+EGM0nDB^Z{9F8G&K+%e!%*gxK_n~NErTvRW_sofB*vk XM8K&qZFPs300000NkvXXu0mjf#rD^` literal 0 HcmV?d00001 diff --git a/data/icons/24x24/status/audio-input-microphone-muted.png b/data/icons/24x24/status/audio-input-microphone-muted.png new file mode 100644 index 0000000000000000000000000000000000000000..b96973808c290bb3a000b66d6677de0d11da2172 GIT binary patch literal 851 zcmV-Z1FZasP)=)pv)=OQGflF%|G2*PUWM4FBJ@@?Xx%YR^WjKz*{}j=74h+Kt*vc!aPLoC-#67RM zsiDu$LNnM(g9RtbjZaQ<8yg#(^_PuvI-T6)^f!*$iRSzIvteYdzjON*;^U;4oSB2e z;Xrq9AJ!dCl$2be^PRr2!vVlyr2^m07Q{wJ!7x4rWugL|x=)CcN&+??^bT4XCJ!vz z{>SZ>G;f-7wY6ZO>=F*-J!c#8>7`i%=>OF!JRqaefLL8^h1F zzkb7b+Gkq={7g*^IhMyuF)=lR^t2S{di$YPt1)L>2#CS%Waqx)nb~9t2g7jlY@v*Z9xu?`HTYd-w*vqme$`%^f8{FGB6Z?Ld45MQP zBpp#gtJCA8>IAeOIyS$9(6xy0Uo&hn@$VpDM-sJwaw zPa2+5m&R=YE^{0$WK!Q^N2$lN!{tJ`M0&Qi?m<_OrH!Q6RfSdT2*3@Z_k`RT@v9+P zEvQ`kNIlVN&m-DSZjx*tg;lOS#Go77)6)8aTV1tqkLw?Dq1KDSD5h?Y!ssb(%gZYv zo!MRdhN{KICB9>|T9J~Pd@g9=6!Iq%CW-3q->ry@i1ediS*eC^7gmhuc=sN5`x-wM zi}xW@l~I|0rl3j4pG=LgEu5BmPh~q002ovPDHLkV1it(k>3CS literal 0 HcmV?d00001 diff --git a/data/icons/32x32/Makefile.am b/data/icons/32x32/Makefile.am new file mode 100644 index 0000000..05a9700 --- /dev/null +++ b/data/icons/32x32/Makefile.am @@ -0,0 +1,4 @@ +SUBDIRS = status + + +-include $(top_srcdir)/git.mk diff --git a/data/icons/32x32/status/Makefile.am b/data/icons/32x32/status/Makefile.am new file mode 100644 index 0000000..24d4e98 --- /dev/null +++ b/data/icons/32x32/status/Makefile.am @@ -0,0 +1,21 @@ +NULL = + +themedir = $(pkgdatadir)/icons/hicolor +size = 32x32 +context = status + +iconsdir = $(themedir)/$(size)/$(context) + +icons_DATA = \ + audio-input-microphone-high.png \ + audio-input-microphone-low.png \ + audio-input-microphone-medium.png \ + audio-input-microphone-muted.png \ + $(NULL) + +EXTRA_DIST = \ + $(icons_DATA) \ + $(NULL) + + +-include $(top_srcdir)/git.mk diff --git a/data/icons/32x32/status/audio-input-microphone-high.png b/data/icons/32x32/status/audio-input-microphone-high.png new file mode 100644 index 0000000000000000000000000000000000000000..8bd9d5bdfcb69b7529084d3307496b03bdebeecc GIT binary patch literal 2182 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 literal 0 HcmV?d00001 diff --git a/data/icons/32x32/status/audio-input-microphone-medium.png b/data/icons/32x32/status/audio-input-microphone-medium.png new file mode 100644 index 0000000000000000000000000000000000000000..a45c79cde63b388f36d2667e18df19d98a72af93 GIT binary patch literal 1981 zcmV;u2SWIXP)C;=BD__MUI0q9jfnb<#fR_&ff-<8z+#zR!8y$CN0F z@c+En)eNR6D($=8i#^*}hW#zib5D^?Q9uogAinu*%lF?)_Zw;Rg3>)nE;4JBMOG5p{}kDoK7dy)YO2z-wqWO z6@Z)omSrIpiz`M{cm1CHZy=T2$ocKcN*FE0Zpevd>V zn2MM*W<>y$Na@x`pR6W*PGsC7MQ_dwKonA3Qd*o4u&SyGoDL_LOeQG>1OyqgatcJs zA&S%<(w)}%ZsELLqkK5N~Iu?NMr^eYx02?WyV7K|LEx8 zDG*l_sa-$Z)lMeoI1XxSYa|Yk2n-_uOG`^Z5Cn+hX&_@dIy%-atAua7(Zs#leVtxu z(IZC>iDt7UIWaNL_xC$gWb#BZ0mJrTsHv@mOMQJ{Hk&0dx-2acFeU+LZf%}w+*~J- z0RgKz_aC4ZOYt{^X=&Z1k@3&Aw#gHTIGn$55pr>IvOr~JB{&=ouv)F)a5|v4xEO*n z0SGOGr1yrrJm}cDOGRdV`^53ZDd>EAFdNnD0qK8r8n~qZ@H`J>@l${8hEO<$Ax^-| z%nUB>l)^qZ_$ic>lz`XkMX(Ia%mtB%G5FWnv(j$}Czj*@r=*|8^Y0@4;)unB$6|a* z{Ra3V5D389wMC%OY7U0N(Y^tfD^XRoQ6iwpRDv9EL-B@UP$`u#GBT1}2#5PMYV9uy z3k$*T_mep;FXDh8P&JguoR<2cxCy}wELjl&dIknvKX2RiJqQK^J8zFqwhdkX)V^VT zaY1!;H8YR$OVW`fyl{WU2ZH|Ds`8CLd!oqrVMBc*^j+#ByEwN907cQxV|zDFN&sl; zX&FNwUlM>Q{4o&lzv%IJ)X)Fuh4ORf-*=CWD!Sk6`S-RfS1%QqO3cb+A}NmE8cD_z z@j$7?dZoC;G}yegMd9^&V0Lz9R^+J@534Knc$vi=Qg|Brj_s{(O6LcT968i3QsQZ= zwN%}*^}8@L8-$y_8{ix9r9=V5`}gk&dcB^pSS&KD#R_?A4A6J^BN!XIH75YIzC|B%TQhj0KRJtCw^k6k32lFaYD@ zV{mJ16v-=mgrWUuXJ_Y^Uz?Go0PH(C)QmEG^AA7SbY~?;)Ya8RE0yeae6a^3vKd{_ zx*u%cL2?hbZ%+`rGmal0(;{{1wbu^xEpkH-JDIj+Y@Gs|=BDbFRu0rjc?Q3z0rAFRyYw^uQ1fhfp6vFdLk!ZEbD3F+6-@6eGvsV#3m- zUWF@uGzIN1v=_1*{gRB8|5&b&85IgeO0JNrTAEuJkJk-DgP$d^81ZtYOoqqq_Z%zy z>D|-s`u`^YcI|HeO;%R+0W7&pz9COWGqj|TKA#Wj>g&Mc_QIX%X|P(%Kzt&J$kgOi z1n<+aNOH%SGiN?eYf4wTc6K~>5Rcb^)|O`Fx^+*;D4GbDfI`NjN7UXidG>%kEjaEyQm6vJrv-C$FuDvP}YBWl#vA~EEf;2Jl zdklu3q=tY{A((YVMJNw6zGFb(1vDkx*Ni6yB_}(FVOSY)UNUTnRYhQAWXyeMYC5G- zYA~z{kjYp;@<~x3-?bVw;Awy?oepHIOaemDlmw789X_9*pHE-~?IDW4>J&^&Ox*qA z%gL8}d(X!R2%Rn)L_w5X57`}$=9IV~sXcPm2@wqjBa$(ay5YMy^@-ha7^h3EIt8R^ z_nzzhI}+>O+}z#c7OPc{l~1A7>L{|)R4OTfAdMV*9v9~@1^#J2=k|Dby#Moa@6CN! z&S$^14&bG1-L|zYJ1b{*PImTIrAoC%t=4cDdMrl*6^+Ljv}1fI6!I-BES&Mr1^;%< zevO!2{!uypHUPdM$C!InSy@>j%8rVoDKUI6JcrKs?pL7}()~I8j{pMzt}pCr2Cd&a P00000NkvXXu0mjfg&?1T literal 0 HcmV?d00001 diff --git a/data/icons/32x32/status/audio-input-microphone-muted.png b/data/icons/32x32/status/audio-input-microphone-muted.png new file mode 100644 index 0000000000000000000000000000000000000000..8161f1fa0fe07647397d86cf7349ce59d71dd63b GIT binary patch literal 2005 zcmV;`2P*i9P)2C}g5SQrkDc#AqKw2yA)WR~pYP*){q8xxbI#ASBuVi9 z>_#>2yIP8il*}?m@cIoD__PkN(d9go5GH zb*Tn$I2=%3Q7&IgOH08yGz5PCeMmE=0T+#wCR)$@lcEY3nm)-(k`-3)Gty2{(DWED ziaYS}>Z9Y~a7c~gP*zq3eSLjUTwDyDU7b)+Pyo~3X&FEy64fLGprYx|N~)`$HRa~Y zhhY~VC5qSWe)e*E`)44Eo0bEJ0M83BIM@$m<>k=X(E<7SdC=9>1%~wobVWp-lMp~$ z6bsBYn;6FhAP7J`N_YG^^Oh|TKYzYpr47R2FvNLIHaj6;QBe_ec6LHeP7d6DUYVTe;`Qk-pA^s)V8!H3gI1YW^52aKuy`km5dHXLV4Ip~?FSzy*nu!ILrF=o%mHG7 zAtYcfx>O{4Vl(22fL1GgbLqnM?)*%r?D!h*}ng>OFfv zxosO2Z)=m3H8qra|NdoRN+Ty;sB2KY^74MxAAI0n(hCa-?C-V z?A(bHqQ9boUkF7qPre7Z>GgVH!-h=I>2*f}!LYsG;fNI#ZITI?laq}ca6;BIS-@&E z;C8z?e=yji)9MdoWMqKH;~{%oSmc0`rmte0=bNgk7ED5|kOwF-j}Q_ETl)tbziX&} z5qv)HOE)HNHw<36-2KecS?0}~H!J2b{StR@gcr{51h3CCTa>@)w@+o7zNsj$1be%k ze8rhX0Guf9zSQ1+lDFGQCM1U|5@f>N^0OrV#q0IF>~guZdw#hu|IF84IY&p;$G&X+ zqQ0Z6-JFwc(Qq+N8Xa?U(OA@*YqfP`W#gTbJ%TCGZ()dt4(X<)x_9>&MV z=Fo;a4!(V`drbgHYiW762q^j=3Wh1RT5L$X959>Aux_2<0s8}f@cO(kF)F>urlHU6L8+-5_iFwrzrU?_IavBSf!DuuV z&Ij(N1%m<14*{6<&6U*ERbLw#x;BcI!)hzJP06T!rBW+RYPCA9 zQmfe7np%Zx*a?FJ-^H*P2`Y_JiDCC=o)Q20`KOgVcQ^haIXUGJmRv=8no&tB zXgNcUjEtZrCOe;dMF^;&z-mb?WL9i_({N{rm`q*P*)F z8qLOyPbn$fL6k_*6fot6A^5O9m`x_os5O8J88ny?Q6cFH^7Ab^J=;^=P@VZiny{*> z>S2C5Nv=<1V+IdZp!tbw2nZIzY|PBW^g!d70z^SXQNk}Wo(PoG zlvIU+QEtZVl-OgdvVhw??)-jgI?ifzXjU~Sl?)*HWGj$oy-o`l4Un9a1WHCJ1EH|o z5rCv8;rsdd`50EvR(PmAR|Q~la`Mj2Ten|tYx_DvKqMulfFw$?>LFhzpg1KeNbXBw zoe(iC&4gqO#jlNApSsxH+k)H0SM35KX4=lQ{R@e8cW&;^->f#90V|(cuTP@Lm&W6q z41#nL_5vQxqYFIK9^UD433&bY)#2-JVL6{&a~{B^sjJ`GkdmCbJ2fR`tA=IQYqdHa zO^@YBq{7jN0_B(x2n0s_e*Y=YobSY??n`4t(=1KLYpMlH(=qy<&CAQnz_i2iG$jS^ n2Io*2-+5?iG0~sX{|GPu4BL0q(DqqT00000NkvXXu0mjfu-Lqi literal 0 HcmV?d00001 diff --git a/data/icons/Makefile.am b/data/icons/Makefile.am new file mode 100644 index 0000000..7362b10 --- /dev/null +++ b/data/icons/Makefile.am @@ -0,0 +1,24 @@ +NULL = + +SUBDIRS = \ + scalable \ + 16x16 \ + 22x22 \ + 24x24 \ + 32x32 \ + $(NULL) + +gtk_update_icon_cache = gtk-update-icon-cache -f -t $(datadir)/icons/ukui + +install-data-hook: update-icon-cache +uninstall-hook: update-icon-cache +update-icon-cache: + @-if test -z "$(DESTDIR)"; then \ + echo "Updating Gtk icon cache."; \ + $(gtk_update_icon_cache); \ + else \ + echo "*** Icon cache not updated. After (un)install, run this:"; \ + echo "*** $(gtk_update_icon_cache)"; \ + fi + +-include $(top_srcdir)/git.mk diff --git a/data/icons/scalable/Makefile.am b/data/icons/scalable/Makefile.am new file mode 100644 index 0000000..2cf31cf --- /dev/null +++ b/data/icons/scalable/Makefile.am @@ -0,0 +1,4 @@ +SUBDIRS = status devices + + +-include $(top_srcdir)/git.mk diff --git a/data/icons/scalable/devices/Makefile.am b/data/icons/scalable/devices/Makefile.am new file mode 100644 index 0000000..404f6e5 --- /dev/null +++ b/data/icons/scalable/devices/Makefile.am @@ -0,0 +1,35 @@ +NULL = + +themedir = $(pkgdatadir)/icons/hicolor +size = 48x48 +context = devices + +iconsdir = $(themedir)/$(size)/$(context) + +icons_DATA = \ + audio-speaker-center.svg \ + audio-speaker-center-testing.svg \ + audio-speaker-left-back.svg \ + audio-speaker-left-back-testing.svg \ + audio-speaker-left.svg \ + audio-speaker-left-side.svg \ + audio-speaker-left-side-testing.svg \ + audio-speaker-left-testing.svg \ + audio-speaker-right-back.svg \ + audio-speaker-right-back-testing.svg \ + audio-speaker-right.svg \ + audio-speaker-right-side.svg \ + audio-speaker-right-side-testing.svg \ + audio-speaker-right-testing.svg \ + audio-speaker-center-back-testing.svg \ + audio-speaker-center-back.svg \ + audio-subwoofer.svg \ + audio-subwoofer-testing.svg \ + $(NULL) + +EXTRA_DIST = \ + $(icons_DATA) \ + $(NULL) + + +-include $(top_srcdir)/git.mk diff --git a/data/icons/scalable/devices/audio-speaker-center-back-testing.svg b/data/icons/scalable/devices/audio-speaker-center-back-testing.svg new file mode 100644 index 0000000..55f3e4d --- /dev/null +++ b/data/icons/scalable/devices/audio-speaker-center-back-testing.svg @@ -0,0 +1,539 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + audio + device + speaker + output + center + testing + highlighted + + + audio-speaker-center-testing + + + Evangeline McGlynn + + + + + + + + + + + + + + + + + + + + diff --git a/data/icons/scalable/devices/audio-speaker-center-back.svg b/data/icons/scalable/devices/audio-speaker-center-back.svg new file mode 100644 index 0000000..fa93c18 --- /dev/null +++ b/data/icons/scalable/devices/audio-speaker-center-back.svg @@ -0,0 +1,506 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + audio + device + speaker + output + center + + + audio-speaker-center + + + Evangeline McGlynn + + + + + + + + + + + + + + + + + + + + diff --git a/data/icons/scalable/devices/audio-speaker-center-testing.svg b/data/icons/scalable/devices/audio-speaker-center-testing.svg new file mode 100644 index 0000000..e9f37b9 --- /dev/null +++ b/data/icons/scalable/devices/audio-speaker-center-testing.svg @@ -0,0 +1,537 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + audio + device + speaker + output + center + testing + highlighted + + + audio-speaker-center-testing + + + Evangeline McGlynn + + + + + + + + + + + + + + + + + + + + diff --git a/data/icons/scalable/devices/audio-speaker-center.svg b/data/icons/scalable/devices/audio-speaker-center.svg new file mode 100644 index 0000000..2833128 --- /dev/null +++ b/data/icons/scalable/devices/audio-speaker-center.svg @@ -0,0 +1,504 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + audio + device + speaker + output + center + + + audio-speaker-center + + + Evangeline McGlynn + + + + + + + + + + + + + + + + + + + + diff --git a/data/icons/scalable/devices/audio-speaker-left-back-testing.svg b/data/icons/scalable/devices/audio-speaker-left-back-testing.svg new file mode 100644 index 0000000..07c8ae8 --- /dev/null +++ b/data/icons/scalable/devices/audio-speaker-left-back-testing.svg @@ -0,0 +1,537 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + audio + device + speaker + output + left-back + testing + highlighted + + + audio-speaker-left-b-testing + + + Evangeline McGlynn + + + + + + + + + + + + + + + + + + + + diff --git a/data/icons/scalable/devices/audio-speaker-left-back.svg b/data/icons/scalable/devices/audio-speaker-left-back.svg new file mode 100644 index 0000000..df4a81b --- /dev/null +++ b/data/icons/scalable/devices/audio-speaker-left-back.svg @@ -0,0 +1,504 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + audio + device + speaker + output + left-back + + + audio-speaker-left-back + + + Evangeline McGlynn + + + + + + + + + + + + + + + + + + + + diff --git a/data/icons/scalable/devices/audio-speaker-left-side-testing.svg b/data/icons/scalable/devices/audio-speaker-left-side-testing.svg new file mode 100644 index 0000000..0639ea2 --- /dev/null +++ b/data/icons/scalable/devices/audio-speaker-left-side-testing.svg @@ -0,0 +1,537 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + audio + device + speaker + output + left-side + testing + highlighted + + + audio-speaker-left-side-testing + + + Evangeline McGlynn + + + + + + + + + + + + + + + + + + + + diff --git a/data/icons/scalable/devices/audio-speaker-left-side.svg b/data/icons/scalable/devices/audio-speaker-left-side.svg new file mode 100644 index 0000000..90b95aa --- /dev/null +++ b/data/icons/scalable/devices/audio-speaker-left-side.svg @@ -0,0 +1,504 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + audio + device + speaker + output + left-side + + + audio-speaker-left-side + + + Evangeline McGlynn + + + + + + + + + + + + + + + + + + + + diff --git a/data/icons/scalable/devices/audio-speaker-left-testing.svg b/data/icons/scalable/devices/audio-speaker-left-testing.svg new file mode 100644 index 0000000..0c40d37 --- /dev/null +++ b/data/icons/scalable/devices/audio-speaker-left-testing.svg @@ -0,0 +1,537 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + audio + device + speaker + output + left + testing + highlighted + + + audio-speaker-left-testing + + + Evangeline McGlynn + + + + + + + + + + + + + + + + + + + + diff --git a/data/icons/scalable/devices/audio-speaker-left.svg b/data/icons/scalable/devices/audio-speaker-left.svg new file mode 100644 index 0000000..55579f2 --- /dev/null +++ b/data/icons/scalable/devices/audio-speaker-left.svg @@ -0,0 +1,504 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + audio + device + speaker + output + left + + + audio-speaker-left + + + Evangeline McGlynn + + + + + + + + + + + + + + + + + + + + diff --git a/data/icons/scalable/devices/audio-speaker-right-back-testing.svg b/data/icons/scalable/devices/audio-speaker-right-back-testing.svg new file mode 100644 index 0000000..26ea427 --- /dev/null +++ b/data/icons/scalable/devices/audio-speaker-right-back-testing.svg @@ -0,0 +1,537 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + audio + device + speaker + output + right-back + testing + highlighted + + + audio-speaker-right-back-testing + + + Evangeline McGlynn + + + + + + + + + + + + + + + + + + + + diff --git a/data/icons/scalable/devices/audio-speaker-right-back.svg b/data/icons/scalable/devices/audio-speaker-right-back.svg new file mode 100644 index 0000000..f7f8178 --- /dev/null +++ b/data/icons/scalable/devices/audio-speaker-right-back.svg @@ -0,0 +1,504 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + audio + device + speaker + output + right-back + + + audio-speaker-right-back + + + Evangeline McGlynn + + + + + + + + + + + + + + + + + + + + diff --git a/data/icons/scalable/devices/audio-speaker-right-side-testing.svg b/data/icons/scalable/devices/audio-speaker-right-side-testing.svg new file mode 100644 index 0000000..ad16311 --- /dev/null +++ b/data/icons/scalable/devices/audio-speaker-right-side-testing.svg @@ -0,0 +1,537 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + audio + device + speaker + output + right-side + testing + highlighted + + + audio-speaker-right-side-testing + + + Evangeline McGlynn + + + + + + + + + + + + + + + + + + + + diff --git a/data/icons/scalable/devices/audio-speaker-right-side.svg b/data/icons/scalable/devices/audio-speaker-right-side.svg new file mode 100644 index 0000000..9712896 --- /dev/null +++ b/data/icons/scalable/devices/audio-speaker-right-side.svg @@ -0,0 +1,504 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + audio + device + speaker + output + right-side + + + audio-speaker-right-side + + + Evangeline McGlynn + + + + + + + + + + + + + + + + + + + + diff --git a/data/icons/scalable/devices/audio-speaker-right-testing.svg b/data/icons/scalable/devices/audio-speaker-right-testing.svg new file mode 100644 index 0000000..028ca8c --- /dev/null +++ b/data/icons/scalable/devices/audio-speaker-right-testing.svg @@ -0,0 +1,913 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + audio + device + speaker + output + right + testing + highlighted + + + audio-speaker-right-testing + + + Evangeline McGlynn + + + + + + + + + + + + + + + + + + + + diff --git a/data/icons/scalable/devices/audio-speaker-right.svg b/data/icons/scalable/devices/audio-speaker-right.svg new file mode 100644 index 0000000..f532b61 --- /dev/null +++ b/data/icons/scalable/devices/audio-speaker-right.svg @@ -0,0 +1,504 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + audio + device + speaker + output + right + + + audio-speaker-right + + + Evangeline McGlynn + + + + + + + + + + + + + + + + + + + + diff --git a/data/icons/scalable/devices/audio-subwoofer-testing.svg b/data/icons/scalable/devices/audio-subwoofer-testing.svg new file mode 100644 index 0000000..a689150 --- /dev/null +++ b/data/icons/scalable/devices/audio-subwoofer-testing.svg @@ -0,0 +1,240 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + audio + device + subwoofer + output + testing + highlighted + + + audio-subwoofer-testing + + + Evangeline McGlynn + + + + + + + + + + + + + + + + + + + diff --git a/data/icons/scalable/devices/audio-subwoofer.svg b/data/icons/scalable/devices/audio-subwoofer.svg new file mode 100644 index 0000000..36dce73 --- /dev/null +++ b/data/icons/scalable/devices/audio-subwoofer.svg @@ -0,0 +1,325 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + audio + device + subwoofer + output + + + audio-subwoofer + + + Evangeline McGlynn + + + + + + + + + + + + + + + + + + + diff --git a/data/icons/scalable/status/Makefile.am b/data/icons/scalable/status/Makefile.am new file mode 100644 index 0000000..29c6369 --- /dev/null +++ b/data/icons/scalable/status/Makefile.am @@ -0,0 +1,21 @@ +NULL = + +themedir = $(pkgdatadir)/icons/hicolor +size = scalable +context = status + +iconsdir = $(themedir)/$(size)/$(context) + +icons_DATA = \ + audio-input-microphone-high.svg \ + audio-input-microphone-low.svg \ + audio-input-microphone-medium.svg \ + audio-input-microphone-muted.svg \ + $(NULL) + +EXTRA_DIST = \ + $(icons_DATA) \ + $(NULL) + + +-include $(top_srcdir)/git.mk diff --git a/data/icons/scalable/status/audio-input-microphone-high.svg b/data/icons/scalable/status/audio-input-microphone-high.svg new file mode 100644 index 0000000..fa30895 --- /dev/null +++ b/data/icons/scalable/status/audio-input-microphone-high.svg @@ -0,0 +1,1076 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/data/icons/scalable/status/audio-input-microphone-low.svg b/data/icons/scalable/status/audio-input-microphone-low.svg new file mode 100644 index 0000000..2aec722 --- /dev/null +++ b/data/icons/scalable/status/audio-input-microphone-low.svg @@ -0,0 +1,1045 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/data/icons/scalable/status/audio-input-microphone-medium.svg b/data/icons/scalable/status/audio-input-microphone-medium.svg new file mode 100644 index 0000000..ba8b5a4 --- /dev/null +++ b/data/icons/scalable/status/audio-input-microphone-medium.svg @@ -0,0 +1,1066 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/data/icons/scalable/status/audio-input-microphone-muted.svg b/data/icons/scalable/status/audio-input-microphone-muted.svg new file mode 100644 index 0000000..962b4de --- /dev/null +++ b/data/icons/scalable/status/audio-input-microphone-muted.svg @@ -0,0 +1,1040 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/data/images/application-audio.png b/data/images/application-audio.png new file mode 100644 index 0000000000000000000000000000000000000000..e4d717ede8ec99267003d497163b22081b6977be GIT binary patch literal 392 zcmV;30eAk1P)K@>)hi47g0v!XOHF-m1(vz-MNwmyfQKb1s% z1Rp~oL4=Ny4#CDoW3^G#tO;aTc6P4Cy35bb5~jNO=H7G9Y<5jV0NC5S=@tt)j}^}Q zkIHvmPIm#;K-AZ~>005JoM}YcOE7N9b zAQ0LJz~OmhQL8kQ-W0%ype+CqxVwC0-c&LSLSucxVxDO*38S0iN_nPvnlCjl0uyag z8(^B-KK7h}ucMpAhs61E0|Wm5rrVS1(jUnfi$N&DSR3oWwzHMgYOLwFy^_U1@B@>v zF;Z5(=Dyxn?!a>_2B0zk+Q8Tks5PFIJMi{v1=O4A;W@z25Attc m!?q3Z(dd^xzki*@VSqoyBEqcX1GqE*0000A>ZJH?=7m#*GmurxPj z*u7^jgSeO|%yA2tz)k_;um9P9{{R1v{rji4e}G(;RV&uO)5F(q-x+i?)fkSSJj-Bh zZO!oT@l!+~KD+lk?)vq6`~JRvqx0_V$7}x>ndQHH{{9d-41n>^aO&&@25CughNDN1 zGRR6xA`JNa>2u`!m+vb+d<4>O->v)c@rTjpFJCVp>31n9uVGMCR%FmnRbX&;v1gb$ zYc5E9HrRmsTPqCMdAa1@z5NjN>D9NnU%!5f{qp7OGN|S?z$CjDNV_(*bTCYuGLvD; zHgNixy=1|xG$6f>McJ=Y?(g6K8<-dwvc$y2w1Bp&vPvoJgc@)g7?=gX@R$IJHAMOX z#y~!hy3DBJ*(vk;|6e_3UZ$g5OkAf~7+DI>FVEZxQwTJm0Z1hSu?&*8o&fP&pur7{ zpwy)5)yVgUk$n@;6<639y!!=c93{sL3 z40{e7Vfg;zCqr0R2uOSvu?8?GE6OvRIe&>kQ9+(z*WN=6k`m%@Iid^z*=ne#&2Z${ zDF!_q4Tgu09)ra}USv}6?zpV#)g^<^01kFGhVz%Mf;Dg1zK20ZS_&)<3`ABYK0e+h zg5vxg*ffTQ2gku&pr@_DaNzI>1`AUohG)-Tz~rNtq?9BVX=tiAp=%C{2mxBaxDdqV z*);zkT}gK}dve8NZ-#3N`~c*x4A)U%Cp`yk+|y1{rB7usARfS(*6wc$Wx@^LGdc z3a%0o5ePxn7#bcN2Xld*wg$t2!zUOlOpO?xJ%0g{k7ANil3b*rsp7=T&vi#gSWpF~ zIV>UsXaVCw5Sx>Oo#E2e8w{4_#tggn>}3!a6NM>Tzyx**5P$v8{`3F;f9x=sRV&uO z6Uf(Z-x+i?)fkSSJj-BhZO!oT@l!+~KD+lk?)vq6`~JRvqx0_V$7|Ta02u!ar_Nqr zkd_o@IC}IbgRHb9!hp}8K1aTP`M%=AM4Vaqmf`kB3C!K^eO zy^clMuT$>t-~St!7#XteZK-&PX25M=U={$wV*(`B7?EQrA4pwhRPpST`ThT|-h=Ix z+pzf`Xg~vyN(N#XB;hAOJQrwi10ylH5o%Bykg5dYcA&;8cp#Ff83Zb!d@ukAFaW{| V^}yXyvP=K~002ovPDHLkV1fngFzo;U literal 0 HcmV?d00001 diff --git a/data/images/audio-input-microphone-muted.png b/data/images/audio-input-microphone-muted.png new file mode 100644 index 0000000000000000000000000000000000000000..7aed52c30bf974f61fe815c31eda2b73c520a386 GIT binary patch literal 520 zcmV+j0{8uiP)39y!!=c93{sL3 z40{e7Vfg;zCqr0R2uOSvu?8?GE6OvRIe&>kQ9+(z*WN=6k`m%@ITmDvAGNf$0zW0=1`q}T82jJRqYURST?K32 zvV9MOjIQE0d(U15aWPSt^a3VAHpBQjnraNkPo8D4wzg(?`1mPY9;X-3U2^K|1qNwJafYM7 z@Q{_3#2yR4bhQnr(F@&>YXU+Hs>+HCABEpDurk{-%$zkBBs?34QyK9k<*2BR0px{PN z7sn8b(`zS3^By+fab4fGK!7b#fNdda_I2{6<_4>Z#bj@hk$$r42|3J?EJIpG=yQ}}Xvae;Y@Tdy=r|~lMXS2#%O{J&z z^8~AN=lJAYK33oS#q8~Eo=cgFYfc%xjeE}ja`of>l}m(cfR1PIboFyt=akR{0Pz1{ AeEEyheDIIuW8yKiNx5J`19D8TC~wisn}G~SW>eLu+Up6K+6D= z0P(?@ZHzORNa{H|Gsrjqyu#f*pl6Ull*v?5UXvuC#;0Om3m5_?pfKM6Xx1s0fR)W} zz!}J0`~tMA06Spm>?_cA_5+{_@Rh0nb71Z4j-?%x0W>NAaS^+~Ap&0Ou3!ST2~Zyx zS@katm;*(_oiqdXQJUeTqkF#0p70J7fBnjTX{Mjs`3YA`u!J1W8Y2Jz002ovPDHLk FV1ns#dn*6{ literal 0 HcmV?d00001 diff --git a/data/images/audio-volume-medium.png b/data/images/audio-volume-medium.png new file mode 100644 index 0000000000000000000000000000000000000000..99eba0407faf7a8a0378ffe4a2c852dcd417810b GIT binary patch literal 276 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GGLLkg|>2BR0px`l2 z7sn8b(`zRmrRqx&898|CA28=&x>Uqs5B@#mK08rU)wx0C7@7w zf*s?QOE*mwI8>z6`%>DQVrNUUJPLj1^Qp)ol0_ipFN*==hgEjW8QFY`R>u0?nN(uR zK0Ac@4#S;L8>WgCJ0kgZ{T0$&`)}6~-P}1oxmS2BR0px{zZ z7sn8b({m>u{(?hprEt;%F zbvJ1~*|u&%wjIkCh1}xZM-&e@-n(~E^8jO{cFHeF>D$@o9V^4G;OXk;vd$@?2>?;|VBY`$ literal 0 HcmV?d00001 diff --git a/data/images/blank.png b/data/images/blank.png new file mode 100644 index 0000000000000000000000000000000000000000..9e938b3fbf0dc52f57216433c5db82ef5cc84e43 GIT binary patch literal 115 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1SGw4HSYi^QBN1g5RU7~fByfsXEr-x?>}0?88Bh?3y^w370~qEv?Ty!_l$-Qwh;)YQD2BR0prEy< zi(`ny<>WvA|JyU$9XN6T2m}`PtmIPr_Wyr92VeNF{@$}4NvuBCyLR`i2z$WXvgW`P fm*68FCuTD&cpluoRAyES&=>|!S3j3^P6 literal 0 HcmV?d00001 diff --git a/data/images/images.qrc b/data/images/images.qrc new file mode 100644 index 0000000..cb77645 --- /dev/null +++ b/data/images/images.qrc @@ -0,0 +1,15 @@ + + + blank.png + emblem-unreadable.png + audio-volume-muted.png + audio-volume-medium.png + audio-volume-low.png + audio-volume-high.png + application-audio.png + audio-input-microphone-muted.png + audio-input-microphone-medium.png + audio-input-microphone-low.png + audio-input-microphone-high.png + + diff --git a/data/org.ukui.media.gschema.xml.in b/data/org.ukui.media.gschema.xml.in new file mode 100644 index 0000000..00e7b73 --- /dev/null +++ b/data/org.ukui.media.gschema.xml.in @@ -0,0 +1,13 @@ + + + + + + + + 'vertical' + ukui-volume-control-applet orientation + Used to set the orientation of ukui-volume-control-applet + + + diff --git a/data/org.ukui.media.sound.gschema.xml b/data/org.ukui.media.sound.gschema.xml new file mode 100644 index 0000000..add9b80 --- /dev/null +++ b/data/org.ukui.media.sound.gschema.xml @@ -0,0 +1,14 @@ + + + + '' + Filename + Prompt sound file name. + + + '' + Name + Description associated with a custom keybinding. + + + diff --git a/data/org.ukui.sound.gschema.xml b/data/org.ukui.sound.gschema.xml new file mode 100644 index 0000000..18914b7 --- /dev/null +++ b/data/org.ukui.sound.gschema.xml @@ -0,0 +1,34 @@ + + + + '' + Default mixer device + The default mixer device used by the multimedia key bindings. + + + [] + Default mixer tracks + The default mixer tracks used by the multimedia key bindings. + + + false + Enable ESD + Enable sound server startup. + + + false + Sounds for events + Whether to play sounds on user events. + + + 'freedesktop' + Sound theme name + The XDG sound theme to use for event sounds. + + + false + Input feedback sounds + Whether to play sounds on input events. + + + diff --git a/data/ukui-media-control-mute-led.service b/data/ukui-media-control-mute-led.service new file mode 100644 index 0000000..437ed84 --- /dev/null +++ b/data/ukui-media-control-mute-led.service @@ -0,0 +1,11 @@ +[Unit] +Description=Mate media control leds daemon +After=lightdm.service + +[Service] +Restart=always +RestartSec=2 +ExecStart=/usr/bin/ukui-media-control-led + +[Install] +WantedBy=multi-user.target diff --git a/data/ukui-volume-control-applet.desktop b/data/ukui-volume-control-applet.desktop new file mode 100644 index 0000000..1308a38 --- /dev/null +++ b/data/ukui-volume-control-applet.desktop @@ -0,0 +1,17 @@ +[Desktop Entry] +_Name=Volume Control +_Comment=Show desktop volume control +Icon=multimedia-volume-control +Exec=ukui-volume-control-applet-qt +Terminal=false +Type=Application +Categories=AudioVideo;Mixer;Settings;HardwareSettings; +Keywords=UKUI;volume;control;mixer;settings;sound; +NoDisplay=true +OnlyShowIn=UKUI; +X-UKUI-Bugzilla-Bugzilla=UKUI +X-UKUI-Bugzilla-Product=ukui-media +X-UKUI-Bugzilla-Component=ukui-volume-control +# See http://bugzilla.ukui.org/show_bug.cgi?id=568320 +X-UKUI-AutoRestart=true +X-UKUI-Autostart-Phase=Application diff --git a/data/ukui-volume-control.desktop.in.in b/data/ukui-volume-control.desktop.in.in new file mode 100644 index 0000000..0c9c0b7 --- /dev/null +++ b/data/ukui-volume-control.desktop.in.in @@ -0,0 +1,16 @@ +[Desktop Entry] +_Name=Sound +_Comment=Change sound volume and sound events +Exec=ukui-volume-control +Icon=multimedia-volume-control +Terminal=false +Type=Application +StartupNotify=true +Categories=AudioVideo;Mixer;Settings;HardwareSettings; +Keywords=UKUI;volume;control;mixer;settings;sound;events; +OnlyShowIn=UKUI; +X-UKUI-Bugzilla-Bugzilla=UKUI +X-UKUI-Bugzilla-Product=ukui-media +X-UKUI-Bugzilla-Component=ukui-volume-control +X-UKUI-Bugzilla-Version=@VERSION@ +NoDisplay=true diff --git a/man/Makefile.am b/man/Makefile.am new file mode 100644 index 0000000..83ba2fd --- /dev/null +++ b/man/Makefile.am @@ -0,0 +1,3 @@ +man_MANS = ukui-volume-control.1 ukui-volume-control-applet.1 ukui-volume-control-applet-qt.1 + +EXTRA_DIST = $(man_MANS) diff --git a/man/ukui-media-control-led.1 b/man/ukui-media-control-led.1 new file mode 100644 index 0000000..41a1c58 --- /dev/null +++ b/man/ukui-media-control-led.1 @@ -0,0 +1,35 @@ +.\" Man Page for ukui-volume-control-applet-qt +.TH UKUI-MEDIA-CONTROL-LED 1 "20 February 2019" "UKUI Desktop Environment" +.\" Please adjust this date when revising the manpage. +.\" +.SH "NAME" +\fBukui-media-control-led\fR \- The UKUI Volume Control Applet(Qt) +.SH "SYNOPSIS" +.B ukui-media-control-led [OPTIONS] +.SH "DESCRIPTION" +The UKUI Volume Control Applet is used for adjusting audio levels from the notification area. +.SH "OPTIONS" +.TP +\fB\-v, \-\-version\fR +Output version information and exit. +.TP +\fB\-d, \-\-debug\fR +Enable debugging code. +.TP +\fB\-\-display=DISPLAY\fR +X display to use. +.TP +\fB\-?, \-h, \-\-help\fR +Print standard command line options. +.TP +\fB\-\-help\-all\fR +Print all command line options. +.SH "BUGS" +.SS Should you encounter any bugs, they may be reported at: +http://github.com/ukui/ukui-media/issues +.SH "AUTHORS" +.SS This Manual Page has been written for the UKUI Desktop Environment by: +Adam Erdman (2014) +.SH "SEE ALSO" +.SS Further information may also be available at: http://ukui.org +.BR ukui-media-control-led (1) diff --git a/man/ukui-volume-control-applet-qt.1 b/man/ukui-volume-control-applet-qt.1 new file mode 100644 index 0000000..abcea6b --- /dev/null +++ b/man/ukui-volume-control-applet-qt.1 @@ -0,0 +1,35 @@ +.\" Man Page for ukui-volume-control-applet-qt +.TH UKUI-VOLUME-CONTROL-APPLET-QT 1 "20 February 2019" "UKUI Desktop Environment" +.\" Please adjust this date when revising the manpage. +.\" +.SH "NAME" +\fBukui-volume-control-applet-qt\fR \- The UKUI Volume Control Applet(Qt) +.SH "SYNOPSIS" +.B ukui-volume-control-qt [OPTIONS] +.SH "DESCRIPTION" +The UKUI Volume Control Applet is used for adjusting audio levels from the notification area. +.SH "OPTIONS" +.TP +\fB\-v, \-\-version\fR +Output version information and exit. +.TP +\fB\-d, \-\-debug\fR +Enable debugging code. +.TP +\fB\-\-display=DISPLAY\fR +X display to use. +.TP +\fB\-?, \-h, \-\-help\fR +Print standard command line options. +.TP +\fB\-\-help\-all\fR +Print all command line options. +.SH "BUGS" +.SS Should you encounter any bugs, they may be reported at: +http://github.com/ukui/ukui-media/issues +.SH "AUTHORS" +.SS This Manual Page has been written for the UKUI Desktop Environment by: +Adam Erdman (2014) +.SH "SEE ALSO" +.SS Further information may also be available at: http://ukui.org +.BR ukui-volume-control (1) diff --git a/po/ChangeLog b/po/ChangeLog new file mode 100644 index 0000000..06cd42c --- /dev/null +++ b/po/ChangeLog @@ -0,0 +1,6821 @@ +2009-04-18 Funda Wang + + * zh_CN.po: Updated zh_CN translation. + +2009-04-08 Mark Krapivner + + * he.po: Updated Hebrew translation. + +2009-04-03 Simos Xenitellis + + * el.po: Updated Greek translation (Sterios Prosiniklis). + +2009-04-03 Baris Cicek + + * tr.po: Updated Turkish translation. + +2009-03-26 Amitakhya Phukan + + * as.po: Updated Assamese translations. + +2009-03-26 Amitakhya Phukan + + * as.po: Updated Assamese translations. + +2009-03-25 Shankar Prasad + + * kn.po: Updated few correction to Kannada translations. + +2009-03-23 Reinout van Schouwen + + * nl.po: Fixed typo (geluidgen -> geluiden) + +2009-03-23 Shankar Prasad + + * kn.po: Updated Kannada translations. + +2008-03-22 Nickolay V. Shmyrev + + * ru.po: Updated Russian translation. + +2009-03-21 Goran Rakic + + * sr.po, sr@latin.po: Updated Serbian translation by Miloš Popović. + +2009-03-18 Alexander Shopov + + * bg.po: Updated Bulgarian translation by + Alexander Shopov + +2009-03-18 Djihed Afifi + + * ar.po: Updated Arabic translation by Anas Afif Emad. + +2009-03-18 Gabor Kelemen + + * hu.po: Translation updated. + +2009-03-16 Marc-André Lureau + + * POTFILES.skip: added + sound-theme/sounds/mate-sounds-default.xml.in. + +2009-03-16 Kostas Papadimas + + * el.po: Updated Greek Translation by Fotis Tsamis. + +2009-03-15 Rajesh Ranjan + + * mai.po: corrected msgfmt chk for Maithili translation. + +2009-03-15 Ignacio Casal Quinteiro + + * gl.po: Updated Galician translation by Suso Baleato + +2009-03-15 Rajesh Ranjan + + * mai.po: added Maithili translation. + * LINGUAS: Added Maithili (mai) to the list of Languages. + +2009-03-14 Rajesh Ranjan + + * hi.po: Updated Hindi Translation. + +2009-03-14 Praveen Arimbrathodiyil + + * ml.po: Malayalam Translation updated by Abhishek Jacob. + +2009-03-14 Mișu Moldovan + + * ro.po: Updated Romanian translation by Adi Roiban. + +2009-03-14 Gabor Kelemen + + * hu.po: Translation updated. + +2009-03-14 Kenneth Nielsen + + * da.po: Updated Danish translation by Ask H. Larsen + +2009-03-13 Sandeep Shedmake + + * mr.po: Updated Marathi Translations. + +2009-03-13 felix@redhat.com> + + * ta.po: Tamil Translation updated + +2009-03-13 Runa Bhattacharjee + + * bn_IN.po: Updated Bengali India Translation + +2009-03-12 Duarte Loreto + + * pt.po: Updated Portuguese translation. + +2009-03-12 Gintautas Miliauskas + + * lt.po: Updated Lithuanian translation. + +2009-03-12 Kjartan Maraas + + * nb.po: Updated Norwegian bokmål translation. + +2009-03-11 Theppitak Karoonboonyanan + + * th.po: Updated Thai translation. + +2009-03-10 Inaki Larranaga Murgoitio + + * eu.po: Updated Basque translation. + +2009-03-10 Ankitkumar Patel + + * gu.po: Updated Gujarati Translations. + +2009-03-10 Tommi Vainikainen + + * fi.po: Updated Finnish translation. + +2009-03-10 Hendrik Richter + + * de.po: Updated German translation. + +2009-03-09 Tomasz Dominikowski + + * pl.po: Updated Polish translation + +2009-03-09 Krishnababu K + + * te.po: Updated Telugu Translation. + +2009-03-08 Yair Hershkovitz + + * he.po: Updated Hebrew translation. + +2009-03-08 Petr Kovar + + * cs.po: Updated Czech translation. + +2009-03-08 Daniel Nylander + + * sv.po: Updated Swedish translation. + +2009-03-07 Jorge Gonzalez + + * es.po: Updated Spanish translation. + +2009-03-07 Milo Casagrande + + * it.po: Updated Italian translation. + +2009-03-07 Gabor Kelemen + + * hu.po: Translation updated. + +2009-03-07 Changwoo Ryu + + * ko.po: Updated Korean translation. + +2009-03-07 Claude Paroz + + * fr.po: Updated French translation. + +2009-03-07 Takeshi AIHANA + + * ja.po: Updated Japanese translation. + +2009-03-07 Wouter Bolsterlee + + * nl.po: Updated Dutch translation by Wouter Bolsterlee. + +2009-03-06 Krishnababu K + + * te.po: Updated Telugu Translation. + +2009-03-06 Philip Withnall + + * en_GB.po: Updated British English translation. + +2009-03-05 Jorge Gonzalez + + * es.po: Updated Spanish translation + +2009-03-05 Gil Forcada + + * ca.po: Updated Catalan translation. + +2009-03-05 Jonh Wendell + + * pt_BR.po: Updated Brazilian Portuguese translation by Krix Apolinário + and myself. + +2009-03-05 Manoj Kumar Giri + + * or.po: Updated Oriya Translation + +2009-03-05 Jonh Wendell + + * POTFILES.in: Updated. + +2009-03-03 Claude Paroz + + * fr.po: Updated French translation. + +2009-03-03 Gabor Kelemen + + * hu.po: Translation updated. + +==================== 2.25.92 ==================== + +2009-03-02 Priit Laes + + * et.po: Translation updated by Ivar Smolin + +2009-03-01 Og Maciel + + * it.po: Updated Italian translation by Milo Casagrande. + +2009-02-28 Duarte Loreto + + * pt.po: Updated Portuguese translation. + +2009-02-28 Chao-Hsiung Liao + + * zh_HK.po: Updated Traditional Chinese translation(Hong Kong). + * zh_TW.po: Updated Traditional Chinese translation(Taiwan). + +2009-02-26 Changwoo Ryu + + * ko.po: Updated Korean translation. + +2009-02-25 Ihar Hrachyshka + + * be@latin.po: Updated Belarusian Latin translation by Ihar Hrachyshka. + +2009-02-25 Christian Kirbach + + * de.po: Updated German translation. + +2008-09-24 Theppitak Karoonboonyanan + + * th.po: Updated Thai translation. + +2009-02-23 Philip Withnall + + * en_GB.po: Updated British English translation. + +2008-09-19 Theppitak Karoonboonyanan + + * th.po: Updated Thai translation. + +2009-02-18 Ilkka Tuohela + + * fi.po: Updated Finnish translation. + +2009-02-18 Changwoo Ryu + + * ko.po: Updated Korean translation. + +2009-02-17 Gabor Kelemen + + * hu.po: Translation updated. + +2009-02-17 Jani Monoses + + * ro.po: Updated Romanian translation + by Adi Roiban + +2009-02-17 Gil Forcada + + * ca.po: Updated Catalan translation. + +2009-02-17 Sweta Kothari + + * gu.po: Committed Gujarati Translation. + +2009-02-15 Wouter Bolsterlee + + * nl.po: Updated Dutch translation by Wouter Bolsterlee. + +2009-02-15 Kenneth Nielsen + + * da.po: Updated Danish translation by Ask H. Larsen + +2009-02-14 Tomasz Dominikowski + + * pl.po: Updated Polish translation + +2009-02-14 Jani Monoses + + * ro.po: Updated Romanian translation + by Adi Roiban + +2009-02-14 Daniel Nylander + + * sv.po: Updated Swedish translation. + +2009-02-14 Takeshi AIHANA + + * ja.po: Updated Japanese translation. + +2009-02-13 Clytie Siddall + + * vi.po: Updated Vietnamese translation. + +2009-02-12 Jorge Gonzalez + + * es.po: Updated Spanish translation + +2009-02-12 Inaki Larranaga Murgoitio + + * eu.po: Updated Basque translation. + +2009-02-11 Daniel Nylander + + * sv.po: Updated Swedish translation. + +2009-02-11 Clytie Siddall + + * vi.po: Updated Vietnamese translation. + +2009-02-10 Jorge Gonzalez + + * es.po: Updated Spanish translation. + +2009-02-10 Kjartan Maraas + + * nb.po: Updated Norwegian bokmål translation. + +2009-02-07 Clytie Siddall + + * vi.po: Updated Vietnamese translation. + +2009-02-07 Gabor Kelemen + + * hu.po: Translation updated. + +2009-02-05 Sweta Kothari + + * gu.po: Committed Gujarati Translation. + +2009-02-05 Chao-Hsiung Liao + + * zh_HK.po: Updated Traditional Chinese translation(Hong Kong). + * zh_TW.po: Updated Traditional Chinese translation(Taiwan). + +2009-01-27 Jorge Gonzalez + + * es.po: Updated Spanish translation + +2009-01-25 Raivis Dejus + + * lv.po: Updated Latvian translation. + +2009-01-25 Changwoo Ryu + + * ko.po: Updated Korean translation. + +2009-01-23 Jorge Gonzalez + + * es.po: Updated Spanish translation. + +2009-01-21 Daniel Nylander + + * sv.po: Updated Swedish translation. + +2009-01-20 Bastien Nocera + + * POTFILES.in: + * POTFILES.skip: Update for distcheck + +2009-01-19 Kjartan Maraas + + * nb.po: Updated Norwegian bokmål translation. + +2009-01-18 Jorge Gonzalez + + * es.po: Updated Spanish translation. + +2009-01-16 Thierry Randrianiriana + + * mg.po: Updated Malagasy translation. + +2009-01-08 Leonardo Ferreira Fontenelle + + * pt_BR.po: Updated Brazilian Portuguese translation. Contributed by + Djavan Fagundes. + +2009-01-05 Kjartan Maraas + + * nb.po: Updated Norwegian bokmål translation. + +2009-01-04 Raivis Dejus + + * lv.po: Updated latvian translation + +2009-01-03 Priit Laes + + * et.po: Translation updated by Ivar Smolin + +2008-12-26 Jorge Gonzalez + + * es.po: Updated Spanish translation. + +2008-12-21 Jorge Gonzalez + + * es.po: Updated Spanish translation. + +2008-12-20 Claude Paroz + + * fr.po: Updated French translation. + +2008-12-19 Bastien Nocera + + * POTFILES.in: Add a .desktop file for g-v-c + +2008-12-17 Jorge Gonzalez + + * es.po: Updated Spanish translation. + +2008-12-16 William Jon McCann + + * POTFILES.in: Add missing files. + +2008-12-15 Kjartan Maraas + + * nb.po: Updated Norwegian bokmål translation. + +2008-12-15 Jorge Gonzalez + + * es.po: Updated Spanish translation. + +2008-11-14 Jorge Gonzalez + + * es.po: Updated Spanish translation. + +2008-11-08 Jorge Gonzalez + + * es.po: Updated Spanish translation + +2008-11-05 Nickolay V. Shmyrev + + * ru.po: Updated Russian translation by Anton Shestakov. + +2008-11-03 William Jon McCann + + * POTFILES.in: + +2008-11-02 Hendrik Richter + + * de.po: Updated German translation, fix #556582. + +2008-10-19 Djihed Afifi + + * ar.po: Updated Arabic Translation by Anas Afif Emad. + +2008-10-11 Ihar Hrachyshka + + * be@latin.po: Updated Belarusian Latin translation by Ihar Hračyška. + +2008-09-25 Jovan Naumovski + + * mk.po: Updated Macedonian translation. + +2008-09-24 Takeshi AIHANA + + * ja.po: Fixed wrong translation. + +2008-09-23 Laurent Dhima + + * sq.po: Updated Albanian Translation. + +2008-09-21 Kenneth Nielsen + + * da.po: Updated Danish translation by Kenneth Nielsen + +2008-09-22 Mugurel Tudor + + * ro.po: Updated Romanian translation by + Mişu Moldovan + +2008-09-21 Djihed Afifi + + * ar.po: Updated Arabic Translation by Anas Afif Emad. + +2008-09-21 Takeshi AIHANA + + * ja.po: Updated Japanese translation. + +2008-09-20 Simos Xenitellis + + * el.po: Updated Greek translation. + +2008-09-20 Goran Rakić + + * sr.po, sr@latin.po: Updated Serbian Translation. + +2008-09-19 Tommi Vainikainen + + * fi.po: Fix from Timo Jyrinki. + +2008-09-19 Shankar Prasad + + * kn.po: Updated Kannada Translation. + +2008-09-18 I. Felix + + * ta.po: Tamil Translation updated + +2008-09-18 Shankar Prasad + + * kn.po: Added Kannada Translation. + * LINGUAS: Added kn to list of Languages + +2008-09-18 Inaki Larrañaga Murgoitio + + * eu.po: Updated Basque translation. + +2008-09-18 Djihed Afifi + + * ar.po: Updated Arabic Translation by Khaled Hosny. + +2008-09-18 Gil Forcada + + * ca.po: Updated Catalan translation. + +2008-09-17 Rajesh Ranjan + + * hi.po: Updated Hindi Translation. + +2008-09-15 Gabor Kelemen + + * hu.po: Translation updated. + +2008-09-15 Djihed Afifi + + * ar.po: Updated Arabic Translation by Khaled Hosny. + +2008-09-15 Alexander Shopov + + * bg.po: Updated Bulgarian translation by + Alexander Shopov + +2008-09-14 Goran Rakić + + * sr.po, sr@latin.po: Updated Serbian translation (by Miloš Popović). + +2008-09-14 Ilkka Tuohela + + * fi.po: Updated Finnish translation. + +2008-09-14 Baris Cicek + + * tr.po: Updated Turkish Translation. + +2008-09-13 Gintautas Miliauskas + + * lt.po: Updated Lithuanian translation. + +2008-09-12 Sandeep Shedmake + + * mr.po: Updated Marathi Translations. + +2008-09-11 Robert Sedak + + * hr.po: Updated Croatian translation. + +2008-09-10 Krishnababu K + + * te.po: Updated Telugu Translation. + +2008-09-09 Luca Ferretti + + * it.po: Updated Italian translation by Milo Casagrande. + +2008-09-09 Robert Sedak + + * hr.po: Updated Croatian translation. + +2008-09-08 Tomasz Dominikowski + + * pl.po: Updated Polish translation + +2008-09-08 Robert Sedak + + * hr.po: Updated Croatian translation. + +2008-09-08 Petr Kovar + + * cs.po: Updated Czech translation. + +2008-09-07 Duarte Loreto + + * pt.po: Updated Portuguese translation. + +2008-09-07 Wouter Bolsterlee + + * nl.po: Updated Dutch translation by Wouter Bolsterlee. + +2008-09-06 Philip Withnall + + * en_GB.po: Updated British English translation. + +2008-09-06 Funda Wang + + * zh_CN.po: Updated zh_CN translation. + +2008-09-05 Runa Bhattacharjee + + * bn_IN.po: Updated Bengali India Translation + +2008-09-04 Theppitak Karoonboonyanan + + * th.po: Updated Thai translation. + +2008-09-04 Changwoo Ryu + + * ko.po: Updated Korean translation. + +2008-09-04 Sweta Kothari + + * gu.po: Committed Gujarati Translation. + +2008-09-03 Hendrik Richter + + * de.po: Updated German translation. + +2008-09-02 Ignacio Casal Quinteiro + + * gl.po: Updated Galician translation + +2008-09-02 Daniel Nylander + + * sv.po: Updated Swedish translation. + +2008-09-02 Robert-André Mauchin + + * fr.po: Updated French translation. + +2008-09-02 Jorge Gonzalez + + * es.po: Updated Spanish translation + +2008-09-02 Nguyễn Thái Ngọc Duy + + * vi.po: Updated Vietnamese translation + +2008-09-02 Priit Laes + + * et.po: Translation updated by Ivar Smolin + +2008-09-02 Kjartan Maraas + + * nb.po: Updated Norwegian bokmål translation. + +2008-09-01 Leonardo Ferreira Fontenelle + + * pt_BR.po: Updated Brazilian Portuguese translation and fixed some + terminology. + +2008-08-30 Chao-Hsiung Liao + + * zh_HK.po: Updated Traditional Chinese translation(Hong Kong). + * zh_TW.po: Updated Traditional Chinese translation(Taiwan). + +2008-08-29 Seán de Búrca + + * ga.po: Updated Irish translation. + +2008-08-29 Jorge Gonzalez + + * es.po: Updated Spanish translation + +2008-08-28 Petr Kovar + + * cs.po: Updated Czech translation. + +2008-08-27 Runa Bhattacharjee + + * bn_IN.po: Updated Bengali India Translation + +2008-08-26 Inaki Larranaga Murgoitio + + * eu.po: Updated Basque translation. + +2008-08-25 Daniel Nylander + + * sv.po: Updated Swedish translation. + +2008-08-25 Goran Rakic + + * LINGUAS, sr@latin.po, sr@Latn.po: Conversion from sr@Latn to sr@latin. + +2008-80-24 Arangel Angov + + * mk.po: Updated Macedonian translation. + +2008-08-22 Inaki Larranaga Murgoitio + + * eu.po: Updated Basque translation. + +2008-08-17 Yair Hershkovitz + + * he.po: Updated Hebrew translation. + +2008-08-12 Duarte Loreto + + * pt.po: Updated Portuguese translation. + +2008-08-11 Og Maciel + + * pt_BR.po: Updated translation by Djavan Fagundes. + +2008-08-11 Ilkka Tuohela <> + + * fi.po: Updated Finnish translation. + +2008-08-10 Takeshi AIHANA + + * ja.po: Updated Japanese translation. + +2008-08-02 Leonardo Ferreira Fontenelle + + * pt_BR.po: Terminology fixes by Fabrício Godoy. + +2008-08-01 Sweta Kothari + + * gu.po: Updated Gujarati Translation by Sweta Kothari + +2008-07-29 Djihed Afifi + + * ar.po: Updated Arabic Translation by Khaled Hosny. + +2008-07-27 Leonardo Ferreira Fontenelle + + * pt_BR.po: Fixed translation of "lock" (by Vladimir Melo). + +2008-07-16 Yair Hershkovitz + + * he.po: Updated Hebrew translation. + +2008-07-10 Matej Urbančič + + * sl.po: Updated Slovenian translation. + +2008-07-02 Yannig Marchegay + + * oc.po: Updated Occitan translation. + +2008-06-21 Claude Paroz + + * fr.po: Updated French translation. + +2008-06-11 Djihed Afifi + + * ar.po: Updated Arabic Translation by Khaled Hosny. + +2008-06-11 Theppitak Karoonboonyanan + + * th.po: Updated Thai translation. + +2008-06-07 Kjartan Maraas + + * nb.po: Updated Norwegian bokmål translation. + +2008-06-03 Priit Laes + + * et.po: Translation updated by Ivar Smolin + +2008-06-01 Clytie Siddall + + * vi.po: Updated Vietnamese translation. + +2008-06-01 Ignacio Casal Quinteiro + + * gl.po: Updated Galician Translation. + +2008-05-28 Jorge Gonzalez + + * es.po: Updated Spanish translation + +2008-05-25 Clytie Siddall + + * vi.po: Updated Vietnamese translation. + +2008-05-22 Djihed Afifi + + * ar.po: Updated Arabic Translation by Khaled Hosny. + +2008-05-22 Yair Hershkovitz + + * he.po: Updated Hebrew translation. + +2008-05-21 Ankit Patel + + * gu.po: Updated Gujarati Translation on behalf of Sweta Kothari. + +2008-05-19 Djihed Afifi + + * ar.po: Updated Arabic Translation by Khaled Hosny. + +2008-05-08 Vincent van Adrighem + + * nl.po: Translation updated by Tino Meinen. + +2008-05-06 Kjartan Maraas + + * nb.po: Updated Norwegian bokmål translation. + +2008-04-29 Ignacio Casal Quinteiro + + * gl.po: Updated Galician Translation. + +>>>>>>> .r3888 +2008-04-19 Daniel Nylander + + * sv.po: Updated Swedish translation. + +2008-04-19 Jorge Gonzalez + + * es.po: Updated Spanish translation + +2008-03-25 Philip Withnall + + * en_GB.po: Updated British English translation. + +2008-03-30 Jorge Gonzalez + + * es.po: Updated Spanish translation + +2008-03-12 Sunil Mohan Adapa + + * te.po: Added Telugu traslation done by + Krishna Babu K . + +2008-03-09 Gabor Kelemen + + * hu.po: Translation updated + +2008-03-05 Stéphane Raimbault + + * fr.po: Updated French translation. + +2008-03-05 Rahul Bhalerao + + * mr.po: Updated Marathi Translations by Sandeep Shedmake. + +2008-03-03 Jorge Gonzalez + + * es.po: Updated Spanish translation + +2008-03-03 Vasiliy Faronov + + * ru.po: Updated Russian translation. + +2008-03-03 Changwoo Ryu + + * ko.po: Updated Korean translation. + +2008-03-01 Luca Ferretti + + * it.po: Updated Italian translation by Milo Casagrande. + +2008-02-27 Nikos Charonitakis + + * el.po: Updated Greek translation. + +2008-02-22 Ilkka Tuohela + + * fi.po: Updated Finnish translation (bug #490774). + +2008-02-20 Inaki Larranaga Murgoitio + + * eu.po: Fixed some term. + +2008-02-17 Vincent van Adrighem + + * nl.po: Translation updated by Tino Meinen. + +2008-02-14 Pawan Chitrakar + + * ne.po: Updated Nepali Translation. + +2008-02-01 Amitakhya Phukan + + * LINGUAS: Added as to LINGUAS. + * as.po: Updated assamese translations. + +2008-01-31 Djihed Afifi + + * ar.po: Updated Arabic Translation by Khaled Hosny. + +2008-01-25 Petr Kovar + + * cs.po: Updated Czech translation. + +2008-01-25 Petr Kovar + + * cs.po: Fixed Czech translation. + +2008-01-08 Inaki Larranaga Murgoitio + + * eu.po: Updated Basque translation. + +2007-12-31 Yannig Marchegay + + * oc.po: Updated Occitan translation. + +2007-12-08 Jakub Friedl + + * cs.po: Czech Translation updated by Petr Kovar. + +2007-12-01 Ignacio Casal Quinteiro + + * gl.po: Updated Galician Translation. + +2007-11-17 Ihar Hrachyshka + + * be@latin.po: Updated Belarusian Latin translation. + +2007-11-14 Matej Urbančič + + * sl.po: Updated Slovenian translation. + +2007-11-09 Ilkka Tuohela + + * fi.po: Updated Finnish translation. + +2007-11-04 Alessio Frusciante + + * it.po: Updated Italian translation by + Milo Casagrande . + +2007-11-01 Gil Forcada + + * ca.po: Updated Catalan translation by Joan Duran. + +2007-10-23 Djihed Afifi + + * ar.po: Updated Arabic Translation by Khaled Hosny. + +2007-10-21 Djihed Afifi + + * ar.po: Updated Arabic Translation by Khaled Hosny. + +2007-10-21 Djihed Afifi + + * ar.po: Updated Arabic Translation by Khaled Hosny. + +2007-10-08 Priit Laes + + * et.po: Translation update by Ivar Smolin. + +2007-09-27 Gintautas Miliauskas + + * lt.po: Updated Lithuanian translation. + +2007-09-25 Kostas Papadimas + + * el.po: Updated Greek translation. + +2007-09-23 Ihar Hrachyshka + + * be@latin.po: Added Belarusian Latin translation by Alaksandar Navicki. + * LINGUAS: Added be@latin. + +2007-09-17 Baris Cicek + + * tr.po: Updated Turkish translation from Emrah Unal + +2007-09-17 Wouter Bolsterlee + + * nl.po: Translation updated by Wouter Bolsterlee. + +2007-09-16 Ilkka Tuohela + + * fi.po: Updated Finnish translation. + +2007-09-15 Mugurel Tudor + + * ro.po: Updated Romanian translation + +2007-09-15 Andre Klapper + + * sk.po: Updated Slovak translation on behalf of Peter Tuharsky + . + +2007-09-13 Djihed Afifi + + * ar.po: Updated Arabic Translation by Khaled Hosny. + +2007-09-08 Inaki Larranaga Murgoitio + + * eu.po: Fixed some typos in Basque translation. + +2007-09-07 Ilkka Tuohela + + * fi.po: Updated Finnish translation. + +2007-09-06 Vincent van Adrighem + + * nl.po: Translation updated by Tino Meinen. + +2007-09-06 Stéphane Raimbault + + * fr.po: Fixed French translation by Claude Paroz. + +2007-09-02 Artur Flinta + + * pl.po: Updated Polish translation by MATE PL Team. + +2007-08-28 Priit Laes + + * et.po: Estonian translation updates by Ivar Smolin + +2007-08-20 Daniel Nylander + + * sv.po: Updated Swedish translation. + +2007-08-20 Stéphane Raimbault + + * fr.po: Updated French translation. + +2007-08-18 Daniel Nylander + + * sv.po: Updated Swedish translation. + +2007-08-17 Stéphane Raimbault + + * fr.po: Fixed typo found by Claude Paroz. + +2007-08-17 Kjartan Maraas + + * nb.po: Updated Norwegian bokmål translation. + +2007-08-16 Priit Laes + + * et.po: Fixed typo in Estonian translation. + +2007-08-16 Ani Peter + + * ml.po: Updated Malayalam Translation + +2007-08-05 Leonardo Ferreira Fontenelle + + * pt_BR.po: s/_Conteúdo/S_umário; see bug #461308. + +2007-08-03 Danishka Navin + + * si.po: Added Sinhala translation by Danishka Navin + * LINGUAS: Added "si". + +2007-07-16 Ilkka Tuohela + + * fi.po: Updated Finnish translation. + +2007-06-18 I Felix + + * ta.po: Updated Tamil Translation. + +2007-06-08 Theppitak Karoonboonyanan + + * th.po: Updated Thai translation. + +2007-06-04 Daniel Nylander + + * sv.po: Updated Swedish translation. + +2007-05-31 Priit Laes + + * et.po: Updated Estonian translation by Ivar Smolin . + +2007-05-22 Yair Hershkovitz + + * he.po: Updated Hebrew translation. + +2007-05-13 Alexander Shopov + + * bg.po: Updated Bulgarian translation by + Alexander Shopov + +2007-05-06 Kjartan Maraas + + * nb.po: Updated Norwegian bokmål translation. + +2007-04-22 Funda Wang + + * zh_CN.po: Updated Simplified Chinese translation from + Yang Zhang. + +2007-04-18 Sven Herzberg + + * de.po: Fixed German translation + +2007-04-15 Christophe Merlet + + * oc.po: Added Occitan translation from + Yannig MARCHEGAY (Kokoyaya) . + * LINGUAS: Added "oc". + +2007-04-09 Ignacio Casal Quinteiro + + * gl.po: Updated Galician Translation. + +2007-04-05 Kjartan Maraas + + * nb.po: Updated Norwegian bokmål translation from + Espen Stefansen. + +2007-04-04 Inaki Larranaga Murgoitio + + * eu.po: Updated Basque translation + +2007-03-29 Claudio Saavedra + + * es.po: Updated Spanish translation by Jorge González. + +2007-03-25 Ignacio Casal Quinteiro + + * gl.po: Updated Galician Translation. + +2007-03-21 Pema Geyleg + + * dz.po: Updated Dzongkha Translation. + +2007-03-12 Goran Rakić + + * sr.po, sr@Latn.po: Updated Serbian translation. + +2007-03-11 Gintautas Miliauskas + + * lt.po: Updated Lithuanian translation. + +2007-03-11 Josep Puigdemont i Casamajó + + * ca.po: Updated Catalan translation by + Jordi Mallach . + +2007-03-10 Nickolay V. Shmyrev + + * ru.po: Updated Russian translation. + +2007-03-07 Artur Flinta + + * pl.po: Updated Polish translation by MATE PL Team. + +2007-03-05 Ankit Patel + + * gu.po: Updated Gujarati Translation. + +2007-03-05 Maxim Dziumanenko + + * uk.po: Update Ukrainian translation. + +2007-03-05 Jovan Naumovski + + * mk.po: Updated Macedonian translation. + +2007-03-04 Erdal Ronahi + + * ku.po: Updated Kurdish translation + +2007-03-03 Yair Hershkovitz + + * he.po: Updaed Hebrew translation. + +2007-03-03 Funda Wang + + * zh_CN.po: Updated Simplified Chinese translation. + +2007-03-02 Chao-Hsiung Liao + + * zh_HK.po: Updated Traditional Chinese translation(Hong Kong). + * zh_TW.po: Updated Traditional Chinese translation(Taiwan). + +2007-02-27 Gintautas Miliauskas + + * lt.po: Updated Lithuanian translation. + +2007-02-27 Priit Laes + + * et.po: Updated Estonian translation by Ivar Smolin . + +2007-02-27 Hendrik Richter + + * de.po: Updated German translation, by + Christian Kintner + +2007-02-25 Peter Bach + + * da.po: Updated Danish translation. + +2007-02-25 Matic Zgur + + * sl.po: Updated Slovenian translation. + +2007-02-25 Gabor Kelemen + + * hu.po: Translation updated. + +2007-02-23 Kjartan Maraas + + * nb.po: Updated Norwegian bokmål translation. + +2007-02-23 Nguyễn Thái Ngọc Duy + + * vi.po: Updated Vietnamese translation + +2007-02-22 Alexander Shopov + + * bg.po: Updated Bulgarian translation by + Alexander Shopov + +2007-02-22 Alexander Shopov + + * bg.po: Updated Bulgarian translation by + Vladimir Petkov + +2007-02-18 Alessio Frusciante + + * it.po: Updated Italian translation by + Milo Casagrande . + +2007-02-18 Priit Laes + + * et.po: Updated Estonian translation by Ivar Smolin . + +2007-02-17 Takeshi AIHANA + + * ja.po: Updated Japanese translation. + +2007-02-16 Yair Hershkovitz + + * he.po: Updated Hebrew translation + +2007-02-14 Duarte Loreto + + * pt.po: Updated Portuguese translation. + +2007-02-14 Ilkka Tuohela + + * fi.po: Updated Finnish translation. + +2007-02-12 Ilkka Tuohela + + * fi.po: Updated Finnish translation. + +2007-02-11 Changwoo Ryu + + * ko.po: Updated Korean translation by Young-Ho Cha. + +2007-02-09 David Lodge + + * en_GB.po: Updated English (British) translation + +2007-02-8 Djihed Afifi + + * ar.po: Updated Arabic Translation by Khaled Hosny. + +2007-02-07 Daniel Nylander + + * sv.po: Updated Swedish translation. + +2007-02-04 Stéphane Raimbault + + * fr.po: Updated French translation by Jonathan Ernst. + +2007-02-04 Raphael Higino + + * pt_BR.po: Updated Brazilian Portuguese translation + by Og Maciel . + +2007-02-04 Theppitak Karoonboonyanan + + * th.po: Updated Thai translation. + +2007-02-03 Ihar Hrachyshka + + * be.po: Updated Belarusian translation. + +2007-02-02 Stéphane Raimbault + + * fr.po: Updated French translation by Robert-André Mauchin, + Claude Paroz et Stéphane Raimbault. + +2007-01-31 Ihar Hrachyshka + + * be.po: Updated Belarusian translation. + +2007-01-30 Gabor Kelemen + + * hu.po: Translation updated. + +2007-01-29 Priit Laes + + * et.po: Updated Estonian translation by Ivar Smolin . + +2007-01-26 Alexander Shopov + + * bg.po: Updated Bulgarian translation by + Yavor Doganov + +2007-01-24 Kjartan Maraas + + * nb.po: Updated Norwegian bokmål translation. + +2007-01-23 David Lodge + + * en_GB.po: Updated English (British) translation + +2007-01-15 Theppitak Karoonboonyanan + + * th.po: Updated Thai translation. + +2007-01-15 Djihed Afifi + + * ar.po: Updated Arabic Translation by Khaled Hosny. + +2007-01-13 Djihed Afifi + + * ar.po: Updated Arabic Translation by Mohamed Magdy. + +2007-01-12 Daniel Nylander + + * sv.po: Updated Swedish translation. + * POTFILES.in: Added 1 missing file. + +2007-01-09 Daniel Nylander + + * sv.po: Updated Swedish translation. + +2007-01-09 Priit Laes + + * et.po: Estonian translation update by Ivar Smolin . + +2007-01-08 David Lodge + + * en_GB.po: Updated English (British) translation + +2007-01-07 Priit Laes + + * et.po: Estonian translation update by Ivar Smolin. + +2007-01-05 Clytie Siddall + + * vi.po: Updated Vietnamese translation. + +2007-01-3 Djihed Afifi + + * ar.po: Updated Arabic Translation by Mohamed Magdy. + +2006-12-29 David Lodge + + * en_GB.po: Updated English (British) translation + +2006-12-29 Ilkka Tuohela + + * fi.po: Updated Finnish translation. + +2006-12-28 Kjartan Maraas + + * POTFILES.skip: Add some missing files. + * nb.po: Updated Norwegian bokmål translation. + +2006-12-27 Djihed Afifi + + * ar.po: Updated Arabic Translation. + +2006-12-24 Djihed Afifi + + * ar.po: Updated Arabic Translation. + +2006-12-23 Ales Nyakhaychyk + + * be.po: Updated Belarusina Translation by Ihar Hrachyshka. + +2006-12-22 Daniel Nylander + + * sv.po: Updated Swedish translation. + +2006-12-22 Francisco Javier F. Serrador + + * es.po: Updated Spanish translation. + +2006-12-20 Theppitak Karoonboonyanan + + * th.po: Updated Thai translation. + +2006-12-20 Raivis Dejus + + * lv.po: Updated Latvian Translation. + +2006-12-20 Ankit Patel + + * gu.po: Updated Gujarati Translation. + +2006-12-20 Jovan Naumovski + + * mk.po: Updated Macedonian translation. + +2006-12-1 Djihed Afifi + + * ar.po: Updated Arabic Translation. + +2006-11-19 Wouter Bolsterlee + + * pl.po: Translation updated by Artur Flinta. + +2006-11-18 Djihed Afifi + + * ar.po: Updated Arabic Translation. + +2006-11-10 Djihed Afifi + + * ar.po: Updated Arabic Translation. + +2006-11-02 Christophe Merlet + + * fr.po: Updated French translation. + +2006-11-01 Daniel Nylander + + * sv.po: Updated Swedish translation. + +2006-10-30 Djihed Afifi + + * ar.po: Updated Arabic Translation. + +2006-10-30 Satoru SATOH + + * ja.po: Fixed wrong plural form entries. + +2006-10-15 Ilkka Tuohela + + * fi.po: Updated Finnish translation. + +2006-10-01 Guilherme de S. Pastore + + * pt_BR.po: Updated Brazilian Portuguese translation (bug #355852). + +2006-09-21 Pawan Chitrakar + + * ne.po: Updated Nepali Translation + +2006-09-10 David Lodge + + * en_GB.po: Updated English (British) translation. + +2006-09-06 Ilkka Tuohela + + * fi.po: Updated Finnish translation. + +2006-09-05 Lucas Rocha + + * pt_BR.po: Updated Brazilian Portuguese translation + by Leonardo Ferreira Fontenelle + +2006-09-04 Runa Bhattacharjee + + * bn_IN.po: Updated Bengali India Translation. + +2006-09-01 Jovan Naumovski + + * mk.po: Updated Macedonian translation. + +2006-08-31 Alessio Frusciante + + * it.po: Updated Italian translation by + Milo Casagrande . + +2006-08-31 Rajesh Ranjan + + * hi.po: Updated Hindi Translation. + +2006-08-31 Duarte Loreto + + * pt.po: Updated Portuguese translation. + +2006-08-29 Rajesh Ranjan + + * hi.po: Updated Hindi Translation. + +2006-08-29 Rahul Bhalerao + + * LINGUAS: Added an entry for Marathi(mr). + * mr.po: Added the file and updated Marathi translation. + +2006-08-27 Theppitak Karoonboonyanan + + * POTFILES.in: Removed mate-cd/eggtrayicon.c + * th.po: Updated Thai translation. + +2006-08-25 Josep Puigdemont i Casamajó + + * ca.po: Updated Catalan translation. + +2006-08-24 Raivis Dejus + + * lv.po: Updated Latvian translation. + +2006-08-24 Abel Cheung + + * zh_HK.po, zh_TW.po: Updated traditional Chinese translations. + +2006-08-22 Daniel Nylander + + * sv.po: Updated Swedish translation. + +2006-08-22 Matic Žgur + + * sl.po: Updated Slovenian translation. + +2006-08-22 Leonid Kanter + + * ru.po: Updated Russian translation + +2006-08-17 Jordi Mas + + * ca.po: Fixes small mistakes in Catalan translation + +2006-08-17 Artur Flinta + + * pl.po: Updated Polish translation by MATE PL Team. + +2006-08-16 Baris Cicek + + * tr.po: Updated Turkish Translation from Onur Can Cakmak + +2006-08-16 Gabor Kelemen + + * hu.po: Translation updated. + +2006-08-15 Sanlig Badral + + * mn.po: Updated Mongolian translation. + +2006-08-14 Maxim Dziumanenko + + * uk.po: Update Ukrainian translation. + +2006-08-11 Wouter Bolsterlee + + * nl.po: Translation updated by Wouter Bolsterlee. + +2006-08-07 Inaki Larranaga + + * eu.po: Fixed some typos. + +2006-08-06 Ani Peter + + * ml.po: Updated Malayalam translation + +2006-08-04 Thierry Randrianiriana + + * mg.po: Added Malagasy translation. + * LINGUAS: Added Malagasy 'mg'. + +2006-08-01 Jovan Naumovski + + * mk.po: Updated/fixed Macedonian translation. + +2006-07-28 Francisco Javier F. Serrador + + * es.po: Updated Spanish translation. + +2006-07-09 Changwoo Ryu + + * ko.po: Updated Korean translation by Young-Ho Cha. + +2006-07-03 Runa Bhattacharjee + + * bn_IN.po: Added Bengali India Translation + * LINGUAS: Added Bengali India (bn_IN) to the list of languages. + +2006-06-29 Rajesh Ranjan + + * hi.po: Updated Hindi Translation. + +2006-06-27 I. Felix + + * ta.po: Updated Tamil translation. + +2006-06-25 Martin Willemoes Hansen + + * da.po: Updated Danish translation. + +2006-06-15 Hendrik Richter + + * de.po: Updated German translation. + +2006-06-08 Ahmad Riza H Nst + + * id.po: Updated. + +2006-06-05 Gabor Kelemen + + * hu.po: Translation updated. + +2006-06-04 Takeshi AIHANA + + * ja.po: Updated Japanese translation. + +2006-05-28 Pema Geyleg + + * dz.po: Updated Dzongkha translation. + +2006-05-25 Åsmund Skjæveland + + * nn.po: Updated Norwegian Nynorsk translation. + +2006-05-24 Ilkka Tuohela + + * fi.po: Updated Finnish translation. + +2006-05-21 Benoît Dejean + + * fr.po: Updated French translation. + +2006-05-10 Inaki Larranaga + + * eu.po: Updated Basque translation. + +2006-05-06 Benoît Dejean + + * fr.po: Updated French translation. + +2006-05-01 Hendrik Richter + + * de.po: Updated German translation. + +2006-04-30 Kjartan Maraas + + * nb.po: Updated Norwegian bokmål translation + +2006-04-29 Priit Laes + + * et.po: Translation updated by Ivar Smolin. + +2006-04-26 Daniel Nylander + + * sv.po: Updated Swedish translation. + +2006-04-24 Rhys Jones + + * cy.po: Updated Welsh translation. + +2006-04-24 Kostas Papadimas + + * el.po Updated Greek Translation + +2006-04-24 Funda Wang + + * zh_CN.po: Updated Simplified Chinese translation. + +2006-04-23 Lukas Novotny + + * cs.po: Updated Czech translation. + +2006-04-23 Chao-Hsiung Liao + + * zh_HK.po: Updated Traditional Chinese translation(Hong Kong). + * zh_TW.po: Updated Traditional Chinese translation(Taiwan). + +2006-04-21 Francisco Javier F. Serrador + + * es.po: Updated Spanish translation. + +2006-04-21 Priit Laes + + * et.po: Translation updated by Ivar Smolin. + +2006-04-21 Laurent Dhima + + * sq.po: Updated Albanian translation. + +2006-04-21 Theppitak Karoonboonyanan + + * th.po: Updated Thai translation. + +2006-04-18 Žygimantas Beručka + + * lt.po: Updated Lithuanian translation. + +2006-04-17 Kjartan Maraas + + * LINGUAS: Remove obsolete entry for no_NO. + * no.po: And the translation. + +2006-04-17 Josep Puigdemont Casamajó + + * ca.po: Updated Catalan translation. + +2006-04-17 Alexander Shopov + + * bg.po: Updated Bulgarian translation by + Alexander Shopov + +2006-04-17 Clytie Siddall + + * vi.po: Updated Vietnamese translation. + +2006-04-17 Ankit Patel + + * gu.po: Updated Gujarati Translation. + +2006-04-16 Ignacio Casal Quinteiro + + * gl.po: Updated Galician Translation. + +2006-04-16 Ilkka Tuohela + + * fi.po: Updated Finnish translation. + +2006-04-16 Funda Wang + + * zh_CN.po: Updated Simplified Chinese translation. + +2006-04-15 Daniel Nylander + + * sv.po: Swedish translation updated. + +2006-04-15 Vincent van Adrighem + + * nl.po: Translation updated. + +2006-04-14 Åsmund Skjæveland + + * nn.po: Updated Norwegian Nynorsk translation. + +2006-04-13 Pema Geyleg + + * dz.po: Updated Dzongkha translation. + +2006-04-09 Daniel Nylander + + * sv.po: Updated Swedish translation. + +2006-04-04 Jérémy Ar Floc'h + + * br.po: Updated Breton translation. + +2006-04-04 Gora Mohanty + + * or.po: Added Oriya translation. + +2006-04-02 Raphael Higino + + * lv.po: Updated Latvian translation with corrections by + Raivis Dejus + +2006-04-01 Raphael Higino + + * lv.po: Updated Latvian translation by + Raivis Dejus + +2006-03-30 Daniel Nylander + + * sv.po: Updated Swedish translation. + +2006-03-29 Jérémy Ar Floc'h + + * br.po: Added Breton translation. + +2006-03-24 Tommi Vainikainen + + * dz.po: Added Dzongkha translation from Pema Geyleg. + +2006-03-24 Ales Nyakhaychyk + + * be.po: Updated Belarusian translation by Ihar Hrachyshka. + +2006-03-18 Priit Laes + + * et.po: Translation updated by Ivar Smolin. + +2006-03-12 Miloslav Trmac + + * cs.po: Updated Czech translation by Petr Tomeš. + +2006-03-09 Ole Laursen + + * da.po: Updated Danish translation. + +2006-03-09 Jordi Mallach + + * ca.po: Updated Catalan translation. + +2006-03-06 Rajesh Ranjan + + * hi.po: Updated Hindi Translation. + +2006-03-06 Daniel Nylander + + * sv.po: Updated Swedish translation + +2006-03-05 Mugurel Tudor + + * ro.po: Updated Romanian translation + +2006-03-05 Artur Flinta + + * pl.po: Updated Polish translation by MATE PL Team. + +2006-03-03 Maxim Dziumanenko + + * uk.po: Updated Ukrainian translation. + +2006-03-02 Hendrik Richter + + * de.po: Updated German translation. + +2006-02-26 Alessio Frusciante + + * it.po: Updated Italian translation by + Milo Casagrande . + +2006-02-25 Rhys Jones + + * cy.po: Updated Welsh translation. + +2006-02-25 Chao-Hsiung Liao + + * zh_TW.po: Updated Traditional Chinese translation(Taiwan). + * zh_HK.po: Updated Traditional Chinese translation(Hong Kong). + +2006-02-23 Raphael Higino + + * pt_BR.po: Updated Brazilian Portuguese translation. + +2006-02-23 Laurent Dhima + + * sq.po: Updated Albanian translation. + +2006-02-23 Clytie Siddall + + * ka.po: Added Georgian translation by Alexander Didebulidze . + +2006-02-22 Inaki Larranaga + + * eu.po: Updated Basque translation. + +2006-02-22 Leonid Kanter + + * ru.po: Updated Russian translation + +2006-02-21 Theppitak Karoonboonyanan + + * th.po: Updated Thai translation. + +2006-02-18 Kjartan Maraas + + * nb.po: Updated Norwegian bokmål translation. + * no.po: Same. + +2006-02-17 Kostas Papadimas + + * el.po: Updated Greek Translation + +2006-02-17 Gabor Kelemen + + * hu.po: Hungarian translation updated by Mate ORY. + +2006-02-17 Satoru SATOH + + * ja.po: Updated Japanese translation. + +2006-02-17 Duarte Loreto + + * pt.po: Updated Portuguese translation. + +2006-02-16 Francisco Javier F. Serrador + + * es.po: Updated Spanish translation. + +2005-02-15 Yair Hershkovitz + + * he.po: Updated Hebrew translation. + +2006-02-15 Žygimantas Beručka + + * lt.po: Updated Lithuanian translation. + +2006-02-13 Miloslav Trmac + + * cs.po: Updated Czech translation. + +2006-02-13 Kjartan Maraas + + * nb.po: Updated Norwegian bokmål translation. + * no.po: Same. + +2006-02-10 Raphael Higino + + * pt_BR.po: Updated Brazilian Portuguese translation. + +2006-02-07 Ignacio Casal Quinteiro + + * gl.po: Updated Galician Translation. + +2006-02-07 Francisco Javier F. Serrador + + * es.po: Updated Spanish translation. + +2006-02-07 Priit Laes + + * et.po: Translation updated by Ivar Smolin. + +2006-02-05 Funda Wang + + * zh_CN.po: Updated Simplified Chinese translation. + +2006-02-03 Vincent van Adrighem + + * nl.po: Translation updated by Reinout van Schouwen. + +2006-02-02 Alexander Shopov + + * bg.po: Updated Bulgarian translation by + Rostislav Raykov + +2006-01-31 Adam Weinberger + + * en_CA.po: Updated Canadian English translation. + +2006-01-31 Ilkka Tuohela + + * fi.po: Updated Finnish translation. + +2006-01-31 Priit Laes + + * et.po: Translation updated by Ivar Smolin. + +2006-01-31 Slobodan D. Sredojevic + + * sr.po, sr@Latn.po: Updated Serbian translation + +2006-01-31 Ankit Patel + + * gu.po: Updated Gujarati Translation. + +2006-01-31 Theppitak Karoonboonyanan + + * th.po: Updated Thai translation. + +2006-01-30 Theppitak Karoonboonyanan + + * th.po: Updated Thai translation (merged from BRANCH-GSTREAMER-0-10). + +2006-01-27 Evandro Fernandes Giovanini + + * pt_BR.po: Updated Brazilian Portuguese translation. + +2006-01-26 Adam Weinberger + + * en_CA.po: Updated Canadian English translation. + +2006-01-23 Ankit Patel + + * gu.po: Updated Gujarati Translation. + +2006-01-22 Clytie Siddall + + * vi.po: Updated Vietnamese translation. + +2006-01-21 Ilkka Tuohela + + * fi.po: Updated Finnish translation. + +2006-01-21 Francisco Javier F. Serrador + + * es.po: Updated Spanish translation. + +2006-01-21 Funda Wang + + * zh_CN.po: Updated Simplified Chinese translation. + +2006-01-20 Ignacio Casal Quinteiro + + * gl.po: Updated Galician Translation. + +2006-01-19 Clytie Siddall + + * vi.po: Updated Vietnamese translation. + +2006-01-18 Ankit Patel + + * gu.po: Updated Gujarati Translation. + +2006-01-08 Ilkka Tuohela + + * fi.po: Updated Finnish translation + +2006-01-17 Ignacio Casal Quinteiro + + * gl.po: Updated Galician Translation. + +2006-01-17 Adam Weinberger + + * en_CA.po: Updated Canadian English translation. + +2006-01-16 Erdal Ronahi + + * ku.po: Updated Kurdish translation. + +2006-01-16 Ilkka Tuohela + + * fi.po: Updated Finnish translation. + +2006-01-15 Christian Rose + + * sv.po: Updated Swedish translation. + +2006-01-14 Francisco Javier F. Serrador + + * es.po: Updated Spanish translation. + +2006-01-14 Chao-Hsiung Liao + + * zh_TW.po: Updated Traditional Chinese translation(Taiwan). + * zh_HK.po: Added Traditional Chinese translation(Hong Kong). + +2006-01-13 Kjartan Maraas + + * nb.po: Updated Norwegian bokmål translation. + * no.po: Same. + +2006-01-12 Priit Laes + + * et.po: Translation updated by Ivar Smolin. + +2006-01-11 Gabor Kelemen + + * hu.po: Hungarian translation updated. + +2006-01-11 Adam Weinberger + + * en_CA.po: Updated Canadian English translation. + +2006-01-11 Theppitak Karoonboonyanan + + * th.po: Updated Thai translation. + +2006-01-11 Ankit Patel + + * gu.po: Updated Gujarati Translation. + +2006-01-11 Clytie Siddall + + * vi.po: Updated Vietnamese translation. + +2006-01-10 Ignacio Casal Quinteiro + + * gl.po: Updated Galician Translation. + +2006-01-09 Ignacio Casal Quinteiro + + * gl.po: Updated Galician Translation. + +2006-01-04 Priit Laes + + * et.po: Translation updated by Ivar Smolin. + +2006-01-03 Alexander Shopov + + * bg.po: Updated Bulgarian translation by + Alexander Shopov + +2006-01-02 Kjartan Maraas + + * nb.po: Updated Norwegian bokmål translation. + * no.po: Same. + +2005-12-30 Ilkka Tuohela + + * fi.po: Updatd Finnish translation + +2005-12-30 Žygimantas Beručka + + * lt.po: Updated Lithuanian translation. + +2005-12-29 Clytie Siddall + + * vi.po: Updated Vietnamese translation. + +2005-12-28 Marcel Telka + + * sk.po: Updated Slovak translation. + +2005-12-27 Vincent van Adrighem + + * nl.po: Translation updated by Reinout van Schouwen. + +2005-12-26 Ankit Patel + + * gu.po: Updated Gujarati Translation. + +2005-12-25 Funda Wang + + * zh_CN.po: Updated Simplified Chinese translation. + +2005-12-25 Francisco Javier F. Serrador + + * es.po: Updated Spanish translation. + +2005-12-25 Theppitak Karoonboonyanan + + * th.po: Updated Thai translation. + +2005-12-23 Adam Weinberger + + * en_CA.po: Updated Canadian English translation. + +2005-12-14 Inaki Larranaga + + * eu.po: Updated Basque translation. + +2005-12-12 Christophe Merlet + + * fr.po: Updated French translation. + +2005-12-09 Alessio Frusciante + + * it.po: Updated Italian translation by + Luca Ferretti . + +2005-12-09 Ankit Patel + + * gu.po: Updated Gujarati Translation. + +2005-12-07 Priit Laes + + * et.po: Translation updated by Ivar Smolin. + +2005-12-07 Žygimantas Beručka + + * lt.po: Oops.. forgot fuzzy entries. + +2005-12-07 Žygimantas Beručka + + * lt.po: Updated Lithuanian translation. + +2005-12-06 Clytie Siddall + + * vi.po: Updated Vietnamese translation. + +2005-12-06 Francisco Javier F. Serrador + + * es.po: Updated Spanish translation. + +2005-12-04 Kjartan Maraas + + * nb.po: Updated Norwegian bokmål translation. + * no.po: Same + +2005-12-03 Adam Weinberger + + * en_CA.po: Updated Canadian English translation. + +2005-12-02 Miloslav Trmac + + * cs.po: Updated Czech translation. + +2005-11-30 Marcel Telka + + * sk.po: Updated Slovak translation. + +2005-11-30 Funda Wang + + * zh_CN.po: Updated Simplified Chinese translation. + +2005-11-28 Theppitak Karoonboonyanan + + * th.po: Updated Thai translation. + +2005-11-28 Alexander Shopov + + * bg.po: Updated Bulgarian translation by + Alexander Shopov + +2005-11-28 Ignacio Casal Quinteiro + + * gl.po: Updated Galician Translation. + +2005-11-19 Theppitak Karoonboonyanan + + * th.po: Updated Thai translation. + +2005-11-16 Priit Laes + + * et.po: Translation updated by Ivar Smolin. + +2005-10-29 Erdal Ronahi + + * ku.po: Added Kurdish translation. + +2005-10-13 Priit Laes + + * et.po: Translation updated by Ivar Smolin. + +2005-10-06 Christian Rose + + * sv.po: Updated Swedish translation. + +2005-09-21 Priit Laes + + * et.po: Translation updated by Ivar Smolin. + +2005-09-19 Josep Puigdemont + + * ca.po: Fixed string in Catalan translation. + +2005-09-16 Clytie Siddall + + * vi.po: Updated Vietnamese translation. + +2005-09-14 Runa Bhattacharjee + * bn.po: Updated Bengali (bn) Translation by + Progga + +2005-09-12 Priit Laes + + * et.po: Translation updated by Ivar Smolin. + +2005-09-08 Inaki Larranaga + + * eu.po: Updated Basque translation. + +2005-09-07 Ignacio Casal Quinteiro + + * gl.po: Updated Galician Translation. + +2005-09-05 Baris Cicek + + * tr.po: Updated Turkish Translation + +2005-09-02 Josep Puigdemont + + * ca.po: Reviewed Catalan translation, fixed typos, etc. + Mostly by Xavier Conde Rueda . + +2005-09-01 Rhys Jones + + * cy.po: Updated Welsh translation. + +2005-08-31 Alessio Frusciante + + * it.po: Updated Italian translation by + Salvatore Isaja . + +2005-08-30 Hendrik Richter + + * de.po: Updated German translation. + +2005-08-29 Changwoo Ryu + + * ko.po: Updated Korean translation by Young-Ho Cha. + +2005-08-28 Duarte Loreto + + * pt.po: Updated Portuguese translation. + +2005-08-28 Christophe Merlet + + * fr.po: Updated French translation. + +2005-08-27 Clytie Siddall + + * vi.po: Updated Vietnamese translation. + +2005-08-26 Leonid Kanter + + * ru.po: Updated Russian translation + +2005-08-25 Jordi Mallach + + * ca.po: Updated Catalan translation. + +2005-08-24 Raphael Higino + + * pt_BR.po: Updated Brazilian Portuguese translation. + +2005-08-23 Gabor Kelemen + + * hu.po: Hungarian translation updated. + +2005-08-22 Vincent van Adrighem + + * nl.po: Translation updated by Reinout van Schouwen. + +2005-08-22 Mugurel Tudor + + * ro.po: Updated Romanian translation + +2005-08-21 Maxim Dziumanenko + + * uk.po: Updated Ukrainian translation. + +2005-08-21 Artur Flinta + + * pl.po: Updated Polish translation by MATE PL Team. + +2005-08-21 Priit Laes + + * et.po: Translation updated by Ivar Smolin. + +2005-08-20 Roozbeh Pournader + + * fa.po: Updated Persian translation by Alireza Kheirkhahan + , Meelad Zakaria , + and myself. + +2005-08-18 Mugurel Tudor + + * ro.po: Updated Romanian translation + +2005-08-17 Priit Laes + + * et.po: Translation updated. + +2005-08-17 Chao-Hsiung Liao + + * zh_TW.po: Updated Traditional Chinese translation. + +2005-08-16 Laurent Dhima + + * sq.po: Updated Albanian translation. + +2005-08-14 Mugurel Tudor + + * ro.po: Updated Romanian translation + +2005-08-14 Terance Sola + + * nb.po: Updated Norwegian bokmål translation. + * no.po: Same. + +2005-08-13 Mohammad DAMT + + * id.po: Updated Indonesian translation + +2005-08-13 Kostas Papadimas + + * el.po Updated Greek Translation + +2005-08-12 Mohammad DAMT + + * id.po: Updated Indonesian translation + +2005-08-08 Danilo Šegan + + * sr.po, sr@Latn.po: Updated by Igor Nestorović. + +2005-08-06 Alexander Shopov + + * bg.po: Updated Bulgarian translation by + Philip Dimitrov + +2005-08-07 Guilherme de S. Pastore + + * pt_BR.po: fixed HIG compliance by pushing the verbs + in the Comment in the .desktop file to the imperative + form, as well as some other minor fixes. + +2005-08-02 Priit Laes + + * et.po: Translation updated by Ivar Smolin. + +2005-08-02 Nikos Charonitakis + + * el.po: Updated Greek translation. + +2005-08-01 Vincent van Adrighem + + * nl.po: Translation updated. + +2005-07-31 Ilkka Tuohela + + * fi.po: Bulk updates to Finnish translation + for new mate.fi website. + +2005-07-30 Francisco Javier F. Serrador + + * es.po: Updated Spanish translation. + +2005-07-28 Ilkka Tuohela + + * fi.po: Bulk change to some Finnish translations. + +2005-07-27 Ankit Patel + + * gu.po: Updated Gujarati Translation. + +2005-07-24 Ilkka Tuohela + + * fi.po: Updated Finnish translation. + +2005-07-24 Kjartan Maraas + + * nb.po: Updated Norwegian bokmål translation. + * no.po: Same + +2005-07-23 Miloslav Trmac + + * cs.po: Updated Czech translation. + +2005-07-23 Funda Wang + + * zh_CN.po: Updated Simplified Chinese translation. + +2005-07-22 Clytie Siddall + + * vi.po: Updated Vietnamese translation. + +2005-07-22 Žygimantas Beručka + + * lt.po: Updated Lithuanian translation by Justina Klingaitė. + +2005-07-21 Gabor Kelemen + + * hu.po: Hungarian translation updated. + +2005-07-21 Francisco Javier F. Serrador + + * es.po: Updated Spanish translation. + +2005-07-20 Takeshi AIHANA + + * ja.po: Updated Japanese translation. + +2005-07-19 Clytie Siddall + + * vi.po: Updated Vietnamese translation. + +2005-07-18 Marcel Telka + + * sk.po: Updated Slovak translation. + +2005-07-18 Adam Weinberger + + * en_CA.po: Updated Canadian English translation. + +2005-07-18 Theppitak Karoonboonyanan + + * th.po: Updated Thai translation. + +2005-07-18 Priit Laes + + * et.po: Translation updated. + +2005-07-17 Francisco Javier F. Serrador + + * es.po: Updated Spanish translation. + +2005-07-15 Ignacio Casal Quinteiro + + * gl.po: Updated Galician Translation. + +2005-07-10 Miloslav Trmac + + * cs.po: Updated Czech translation. + +2005-07-06 Marcel Telka + + * sk.po: Updated Slovak translation. + +2005-07-06 Francisco Javier F. Serrador + + * es.po: Updated Spanish translation. + +2005-07-04 Hendrik Richter + + * de.po: Fixed German translation by + Jens Seidel . + +2005-07-03 Adam Weinberger + + * en_CA.po: Updated Canadian English translation. + +2005-07-03 Priit Laes + + * et.po: Translation updated by Ivar Smolin. + +2005-07-03 Theppitak Karoonboonyanan + + * th.po: Updated Thai translation. + +2005-07-02 Priit Laes + + * et.po: Translation updated. + +2005-07-02 Takeshi AIHANA + + * ja.po: Updated Japanese translation. + +2005-07-02 Priit Laes + + * et.po: Translation updated. + +2005-06-22 Abel Cheung + + * zh_TW.po: Fix language team reference. + +2005-06-20 Vincent van Adrighem + + * nl.po: Translation updated by Reinout van Schouwen. + +2005-06-17 Adam Weinberger + + * en_CA.po: Updated Canadian English translation. + +2005-06-15 Alexander Shopov + + * bg.po: Updated Bulgarian translation by + Rostislav Raykov + +2005-06-15 Priit Laes + + * et.po: Translation updated by Ivar Smolin. + +2005-06-15 Jordi Mallach + + * ca.po: Updated Catalan translation. + +2005-06-14 Marcel Telka + + * sk.po: Updated Slovak translation. + +2005-06-12 Miloslav Trmac + + * cs.po: Updated Czech translation. + +2005-06-12 Takeshi AIHANA + + * ja.po: Updated Japanese translation. + +2005-06-10 Martin Willemoes Hansen + + * da.po: Updated Danish translation. + +2005-06-10 Theppitak Karoonboonyanan + + * th.po: Updated Thai translation. + +2005-06-09 Terance Sola + + * nb.po: Updated Norwegian translation + * no.po: Same as above + +2005-06-09 Funda Wang + + * zh_CN.po: Updated Simplified Chinese translation. + +2005-06-09 Martin Willemoes Hansen + + * da.po: Updated Danish translation. + +2005-06-08 Adam Weinberger + + * en_CA.po: Updated Canadian English translation. + +2005-06-08 Sebastien Bacher + + * POTFILES.in: removed obsolete file. + +2005-06-08 Alexander Shopov + + * bg.po: Updated Bulgarian translation by + Vladimir Petkov + +2005-05-27 Pawan Chitrakar + + * ne.po: Updated Nepali Translation + +2005-05-11 Kostas Papadimas + + * el.po Updated Greek Translation + +2005-05-04 Priit Laes + + * et.po: Translation updated by Ivar Smolin. + +2005-05-03 Priit Laes + + * et.po: Translation updated. + +2005-04-15 Miloslav Trmac + + * cs.po: Updated Czech translation. + +2005-04-12 Francisco Javier F. Serrador + + * es.po: Updated Spanish translation. + +2005-04-07 Gareth Owen + + * en_GB.po: Updated British English translation. + +2005-03-31 Steve Murphy + + * rw.po: Added Kinyarwanda translation. + +2005-03-30 Adam Weinberger + + * en_CA.po: Updated Canadian English translation. + +2005-03-30 Adi Attar + + * xh.po: Updated Xhosa translation. + +2005-03-29 Adam Weinberger + + * en_CA.po: Updated Canadian English translation. + +2005-03-29 Frank Arnold + + * POTFILES.in: Removed missing file and added new ones. + * de.po: Updated German translation. + +2005-03-22 Adi Attar + + * xh.po: Added Xhosa translation. + +2005-03-12 Adam Weinberger + + * en_CA.po: Updated Canadian English translation. + +2005-03-07 Abel Cheung + + * zh_TW.po: Updated traditional Chinese translation from MATE HK Team + +2005-03-07 Mugurel Tudor + + * ro.po: Updated Romanian translation. + +2005-03-06 Danilo Šegan + + * sr.po, sr@Latn.po: Updated Serbian translation. + +2005-03-05 Artur Flinta + + * pl.po: Updated Polish translation by MATE PL Team. + +2005-03-04 Christophe Merlet + + * fr.po: Updated French translation from + Baptiste Mille-Mathias . + +2005-03-04 Laszlo Dvornik + + * hu.po: Hungarian translation updated by Gabor Kelemen. + +2005-03-03 Baris Cicek + + * tr.po: Updated Turkish Translation by Furkan Duman + +2005-03-02 Takeshi AIHANA + + * ja.po: Updated Japanese translation. + +2005-02-28 Kostas Papadimas + + * el.po: Updated Greek translation. + +2005-02-25 Nikos Charonitakis + + * el.po: Updated Greek translation. + +2005-02-25 Alexander Shopov + + * bg.po: Updated Bulgarian translation by + Vladimir Petkov + +2005-02-23 Žygimantas Beručka + + * lt.po: Updated Lithuanian translation. + +2004-02-23 Ankit Patel + + * gu.po: Updated Gujarati Translation. + +2004-02-22 Roozbeh Pournader + + * fa.po: Updated Persian translation by Sara Khalatbari + . + +2004-02-22 Leonid Kanter + + * ru.po: Updated Russian translation + +2005-02-22 Vincent van Adrighem + + * nl.po: Translation updated by Reinout van Schouwen. + +2005-02-22 Miloslav Trmac + + * cs.po: Updated Czech translation. + +2005-02-22 Martin Willemoes Hansen + + * da.po: Updated Danish translation. + +2005-02-21 Theppitak Karoonboonyanan + + * th.po: Updated Thai translation. + +2005-02-21 Martin Willemoes Hansen + + * da.po: Updated Danish translation. + +2005-02-21 Priit Laes + + * et.po: Translation updated by Ivar Smolin. + +2005-02-20 Raphael Higino + + * pt_BR.po: Updated Brazilian Portuguese translation. + +2005-02-18 Marcel Telka + + * sk.po: Updated Slovak translation. + +2005-02-18 Kostas Papadimas + + * el.po: Updated Greek translation + +2005-02-18 Duarte Loreto + + * pt.po: Updated Portuguese translation. + +2005-02-17 Ilkka Tuohela + + * Updated Finnish translation. + +2005-02-18 Changwoo Ryu + + * ko.po: Updated Korean translation. + +2005-02-17 Hendrik Richter + + * de.po: Updated German translation. + +2005-02-17 Laurent Dhima + + * sq.po: Updated Albanian translation. + +2005-02-17 Francisco Javier F. Serrador + + * es.po: Updated Spanish translation. + +2005-02-16 Alexander Shopov + + * bg.po: Updated Bulgarian translation by + Alexander Shopov + +2005-02-16 Francisco Javier Fernandez + + * es.po: Updated Spanish translation. + +2005-02-16 Maxim Dziumanenko + + * uk.po: Updated Ukrainian translation. + +2005-02-16 Kjartan Maraas + + * nb.po: + +2005-02-15 Adam Weinberger + + * en_CA.po: Updated Canadian English translation. + +2005-02-15 David Lodge + + * en_GB.po: Update English (British) translation. + +2005-02-15 Jordi Mallach + + * ca.po: Updated Catalan translation. + +2005-02-14 Christian Rose + + * sv.po: Updated Swedish translation. + +2005-02-14 Vincent van Adrighem + + * nl.po: Translation updated by Reinout van Schouwen. + +2005-02-14 Hendrik Richter + + * de.po: Updated German translation. + +2005-02-14 Laurent Dhima + + * sq.po: Updated Albanian translation. + +2005-02-14 Žygimantas Beručka + + * lt.po: Updated Lithuanian translation. + +2005-02-13 David Lodge + + * en_GB.po: Updated British translation. + +2005-02-13 Theppitak Karoonboonyanan + + * th.po: Updated Thai translation. + +2005-02-13 Priit Laes + + * et.po: Translation updated. + +2005-02-13 Miloslav Trmac + + * cs.po: Updated Czech translation. + +2005-02-12 Marcel Telka + + * sk.po: Updated Slovak translation. + +2005-02-11 Francisco Javier F. Serrador + + * es.po: Updated Spanish translation. + +2005-02-11 Adam Weinberger + + * en_CA.po: Updated Canadian English translation. + +2005-02-11 Christian Rose + + * POTFILES.in: Added UTF-8 keyword. + * sv.po: Updated Swedish translation. + +2005-02-09 Priit Laes + + * et.po: Translation updated by Ivar Smolin. + +2005-02-07 Priit Laes + + * et.po: Translation updated by Ivar Smolin. + +2005-02-06 Miloslav Trmac + + * cs.po: Updated Czech translation. + +2005-02-05 Žygimantas Beručka + + * lt.po: Updated Lithuanian translation. + +2005-02-04 Francisco Javier F. Serrador + + * es.po: Updated Spanish translation. + +2005-02-04 Miloslav Trmac + + * cs.po: Updated Czech translation. + +2005-02-04 Priit Laes + + * et.po: Translation updated by Ivar Smolin. + +2005-02-04 Adam Weinberger + + * en_CA.po: Updated Canadian English translation. + +2005-02-04 Changwoo Ryu + + * ko.po: Updated Korean translation. + +2005-02-02 Alessio Frusciante + + * it.po: Updated Italian translation by + Salvatore Isaja . + +2005-02-02 Laurent Dhima + + * sq.po: Updated Albanian translation. + +2005-01-31 Alessio Frusciante + + * it.po: Updated Italian translation by + Salvatore Isaja . + +2005-01-31 Priit Laes + + * et.po: Translation updated by Ivar Smolin. + +2005-01-30 Žygimantas Beručka + + * lt.po: Updated Lithuanian translation. + +2005-01-29 Raphael Higino + + * pt_BR.po: Updated Brazilian Portuguese translation. + +2005-01-29 Marcel Telka + + * sk.po: Updated Slovak translation. + +2005-01-28 Francisco Javier F. Serrador + + * es.po: Updated Spanish translation. + +2005-01-28 Kjartan Maraas + + * nb.po: Update + * no.po: Update + +2005-01-28 Åsmund Skjæveland + + * nn.po: Updated Norwegian Nynorsk translation. + +2005-01-28 Miloslav Trmac + + * cs.po: Updated Czech translation. + +2005-01-28 Adam Weinberger + + * en_CA.po: Updated Canadian English translation. + +2005-01-28 Duarte Loreto + + * pt.po: Updated Portuguese translation. + +2005-01-26 Francisco Javier F. Serrador + + * es.po: Updated Spanish translation. + +2005-01-26 Takeshi AIHANA + + * ja.po: Updated Japanese translation. + +2005-01-26 Marcel Telka + + * sk.po: Updated Slovak translation. + +2005-01-25 Adam Weinberger + + * en_CA.po: Updated Canadian English translation. + +2005-01-25 Hendrik Richter + + * de.po: Updated German translation. + +2005-01-23 Christian Rose + + * .cvsignore: Added notexist file. + +2005-01-23 Christian Rose + + * POTFILES.skip: Removed no longer existing files. + * sv.po: Updated Swedish translation. + +2005-01-22 Funda Wang + + * zh_CN.po: Updated Simplified Chinese translation. + +2005-01-21 Francisco Javier F. Serrador + + * es.po: Updated Spanish translation by Lucas Vieites. + +2005-01-21 Žygimantas Beručka + + * lt.po: Updated Lithuanian translation. + +2005-01-20 Miloslav Trmac + + * cs.po: Updated Czech translation. + +2005-01-20 Frank Arnold + + * de.po: Updated German translation. + +2005-01-19 Marcel Telka + + * sk.po: Updated Slovak translation. + +2005-01-18 Priit Laes + + * et.po: Translation updated. + +2005-01-15 Adam Weinberger + + * en_CA.po: Updated Canadian English translation. + +2005-01-15 Kjartan Maraas + + * POTFILES.skip: Add some files to avoid noise. + * nb.po: Update + * no.po: Update + +2005-01-15 Takeshi AIHANA + + * ja.po: Updated Japanese translation. + +2005-01-11 Kjartan Maraas + + * nb.po: Update + * no.po: Update + +2005-01-09 Sven Herzberg + + * de.po: Fixed a Typo + +2005-01-07 Francisco Javier F. Serrador + + * es.po: Updated Spanish translation. + +2005-01-04 Rajeev Shrestha + + * ne.po: Updated Nepali Translation + +2005-01-03 Kostas Papadimas + + * el.po: Updated Greek translation + +2004-12-31 Christian Rose + + * sv.po: Updated Swedish translation. + +2004-12-29 Pawan Chitrakar + + * ne.po: Added Nepali Translation + +2004-12-23 Leonid Kanter + + * ru.po: Updated Russian translation + +2004-12-22 Alexander Shopov + + * bg.po: Updated Bulgarian translation by + Vladimir Petkov + +2004-12-17 Laurent Dhima + + * sq.po: Updated Albanian translation. + +2004-12-13 David Lodge + + * en_GB.po: Updated British translation. + +2004-12-12 Adam Weinberger + + * en_CA.po: Updated Canadian English translation. + +2004-12-11 Miloslav Trmac + + * cs.po: Updated Czech translation. + +2004-12-11 Funda Wang + + * zh_CN.po: Updated Simplified Chinese translation. + +2004-12-08 Martin Willemoes Hansen + + * da.po: Updated Danish translation. + +2004-12-07 Martin Willemoes Hansen + + * da.po: Updated Danish translation. + +2004-12-05 Takeshi AIHANA + + * ja.po: Updated Japanese translation. + +2004-12-03 Žygimantas Beručka + + * lt.po: Updated Lithuanian translation. + +2004-11-29 Martin Willemoes Hansen + + * da.po: Updated Danish translation. + +2004-11-28 Francisco Javier F. Serrador + + * es.po: Updated Spanish translation. + +2004-11-26 Adam Weinberger + + * en_CA.po: Updated Canadian English translation. + +2004-11-26 Miloslav Trmac + + * cs.po: Updated Czech translation. + +2004-11-25 Martin Willemoes Hansen + + * da.po: Updated Danish translation. + +2004-11-16 Hendrik Richter + + * de.po: Updated German translation. + +2004-11-14 David Lodge + + * en_GB.po: Updated British translation. + +2004-11-11 Laurent Dhima + + * sq.po: Updated Albanian translation. + +2004-11-09 Miloslav Trmac + + * cs.po: Updated Czech translation. + +2004-11-08 Vincent van Adrighem + + * nl.po: Translation updated by Reinout van Schouwen. + +2004-11-06 Adam Weinberger + + * en_CA.po: Updated Canadian English translation. + +2004-11-05 Takeshi AIHANA + + * ja.po: Updated Japanese translation. + +2004-11-05 Laurent Dhima + + * sq.po: Updated Albanian translation. + +2004-11-03 Miloslav Trmac + + * cs.po: Updated Czech translation. + +2004-11-02 Adam Weinberger + + * en_CA.po: Updated Canadian English translation. + +2004-10-31 Vincent van Adrighem + + * nl.po: Translation updated by Reinout van Schouwen. + +2004-10-29 Francisco Javier F. Serrador + + * es.po: Updated Spanish translation by Lucas Vieites. + +2004-10-15 Danilo Šegan + + * sr.po, sr@Latn.po: Updated Serbian translation. + +2004-10-09 Laurent Dhima + + * sq.po: Updated Albanian translation. + +2004-10-03 David Lodge + + * en_GB.po: Updated British English translation. + +2004-10-03 Miloslav Trmac + + * cs.po: Updated Czech translation. + +2004-10-01 Adam Weinberger + + * en_CA.po: Updated Canadian English translation. + +2004-09-29 Hasbullah Bin Pit + + * ms.po: Updated Malay translation. + +2004-09-12 Theppitak Karoonboonyanan + + * th.po: Applied 'msgmerge' with current POT. The last commit was for + an old version. + +2004-09-12 Laszlo Dvornik + + * hu.po: Updated Hungarian translation by Gabor Kelemen. + +2004-09-12 Supranee Thirawatthanasuk + + * th.po: Updated Thai translation + +2004-09-11 Dafydd Harries + + * cy.po: Updated Welsh translation. + +2004-09-10 Nikos Charonitakis + + * el.po: Updated Greek translation. + +2004-09-08 Mugurel Tudor + + * ro.po: Updated Romanian translation + +2004-09-06 Kostas Papadimas + + * el.po: Updated Greek translation + +2004-09-05 Åsmund Skjæveland + + * nn.po: Updated Norwegian Nynorsk translation. + +2004-09-05 Miloslav Trmac + + * cs.po: Updated Czech translation. + +2004-09-04 Mətin Əmirov + + * az.po: Translation updated. + +2004-09-04 Miloslav Trmac + + * cs.po: Updated Czech translation. + +2004-09-03 Baris Cicek + + * tr.po: Updated Turkish Translation + +2004-09-03 Vincent van Adrighem + + * nl.po: Translation updated by Reinout van Schouwen. + +2004-09-02 Nikos Charonitakis + + * el.po: Updated Greek translation. + +2004-09-01 Takeshi AIHANA + + * ja.po: Updated Japanese translation. + +2004-08-31 Francisco Javier F. Serrador + + * es.po: Updated Spanish translation. + +2004-08-31 Miloslav Trmac + + * cs.po: Updated Czech translation. + +2004-08-31 Maxim Dziumanenko + + * uk.po: Updated Ukrainian translation. + +2004-08-31 Martin Willemoes Hansen + + * da.po: Updated Danish translation. + +2004-08-31 Arafat Medini + + * ar.po: Updated Arabic translation. + +2004-08-28 Francisco Javier F. Serrador + + * es.po: Updated Spanish translation. + +2004-08-28 Akagic Amila + + * bs.po: Added Bosnian translation. + +2004-08-24 Jarkko Ranta + + * fi.po: Updated Finnish translation. + +2004-08-21 Jordi Mallach + + * ca.po: Updated Catalan translation. + +2004-08-20 Laurent Dhima + + * sq.po: Updated Albanian translation. + +2004-08-20 Maxim Dziumanenko + + * uk.po: Updated Ukrainian translation. + +2004-08-18 Laurent Dhima + + * sq.po: Updated Albanian translation. + +2004-08-17 Christian Rose + + * sv.po: Updated Swedish translation. + +2004-08-17 Jarkko Ranta + + * fi.po: Updated Finnish translation. + +2004-08-16 Kjartan Maraas + + * nb.po: Add this. + +2004-08-12 Hasbullah Bin Pit + + * ms.po: Updated Malay translation. + +2004-08-07 Danilo Šegan + + * sr.po, sr@Latn.po: Updated Serbian translation. + +2004-08-06 Funda Wang + + * zh_CN.po: Updated Simplified Chinese translation. + +2004-08-02 Duarte Loreto + + * pt.po: Updated Portuguese translation. + +2004-08-02 Adam Weinberger + + * en_CA.po: Updated Canadian English translation. + +2004-07-31 Martin Willemoes Hansen + + * da.po: Updated Danish translation + +2004-08-01 Changwoo Ryu + + * ko.po: Updated Korean translation. + +2004-07-31 Kjartan Maraas + + * no.po: Updated Norwegian translation. + +2004-07-05 Francisco Javier F. Serrador + + * es.po: updated by Lucas Vieites + +2004-07-28 Laurent Dhima + + * sq.po: Updated Albanian translation. + +2004-07-27 Alexander Shopov + + * bg.po: Updated Bulgarian translation by + Rostislav "zbrox" Raykov + +2004-07-21 Guntupalli Karunakar + + * hi.po: Updated Hindi translation. + +2004-07-14 Gustavo Maciel Dias Vieira + + * pt_BR.po: Updated Brazilian Portuguese translation done by + Raphael Higino . + +2004-07-08 Alexander Shopov + + * bg.po: Updated Bulgarian translation by + Vladimir "Kaladan" Petkov + +2004-07-05 Pablo Gonzalo del Campo + + * es.po: Updated Spanish translation by Lucas Vieites + +2004-07-04 Andras Timar + + * hu.po: Updated Hungarian translation. + +2004-07-04 Christiam Neumair + + * de.po: Updated German translation. + +2004-06-29 Laurent Dhima + + * sq.po: Translation updated. + +2004-06-28 Laurent Dhima + + * sq.po: Translation updated. + +2004-06-21 Artur Flinta + + * pl.po: Updated Polish translation by MATE PL Team. + +2004-06-20 Gareth Owen + + * en_GB.po: Updated British English translation + +2004-06-20 Miloslav Trmac + + * cs.po: Updated Czech translation. + +2004-06-11 Žygimantas Beručka + + * lt.po: Updated Lithuanian translation. + +2004-06-03 Takeshi AIHANA + + * ja.po: Updated Japanese translation. + +2004-05-31 Adam Weinberger + + * en_CA.po: Updated Canadian English translation. + +2004-05-30 Adam Weinberger + + * en_CA.po: Updated Canadian English translation. + +2004-05-29 Dinesh Nadarajah + + * ta.po: Updated Tamil Translation + +2004-05-29 Christian Rose + + * tk.po: Added Turkmen translation by + Gurban Mühemmet Tewekgeli . + +2004-05-27 Kjartan Maraas + + * no.po: Updated Norwegian translation. + +2004-05-25 Adam Weinberger + + * en_CA.po: Updated Canadian English translation. + +2004-05-24 Adam Weinberger + + * en_CA.po: Updated Canadian English translation. + +2004-05-24 Funda Wang + + * zh_CN.po: Updated Simplified Chinese translation. + +2004-05-18 Gareth Owen + + * en_GB.po: Updated British English translation + +2004-05-16 Adam Weinberger + + * en_CA.po: Updated Canadian English translation. + +2004-05-15 Baris Cicek + + * tr.po: Updated Turkish Translation + +2004-05-13 Francisco Javier F. Serrador + + * es.po: Updated Spanish translation. + +2004-05-11 Laurent Dhima + + * sq.po: Updated Albanian translation. + +2004-05-11 Miloslav Trmac + + * cs.po: Updated Czech translation. + +2004-04-15 Andras Timar + + * hu.po: Updated Hungarian translation. + +2004-04-15 Theppitak Karoonboonyanan + + * th.po: Fix spellings. + +2004-04-14 Iñaki Larrañaga + + * eu.po: Updated Basque translation. + +2004-04-09 Guntupalli Karunakar + + * gu.po: Added Gujurati translation by + Gujarati Team . + +2004-03-30 Pablo Saratxaga + + * wa.po: Updated Walloon file + +2004-03-29 Jordi Mallach + + * ca.po: Updated Catalan translation. + +2004-03-28 Robert Sedak + + * hr.po: Updated Croatian translation. + +2004-03-26 Andras Timar + + * hu.po: Updated Hungarian translation. + +2004-03-23 Åsmund Skjæveland + + * nn.po: Updated Norwegian Nynorsk translation. + +2004-03-22 Guntupalli Karunakar + + * pa.po: Punjabi translation by + Jaswinder Singh Phulewala . + +2004-03-22 Dmitry G. Mastrukov + + * ru.po: Updated Russian translation + from Russian team . + +2004-03-21 Alastair McKinstry + + * ga.po: Updated Irish translation. + +2004-03-21 Abel Cheung + + * zh_TW.po: Updated traditional Chinese translation from + Woodman Tuen . + +2004-03-20 Gareth Owen + + * en_GB.po: Updated British translation + +2004-03-19 Andras Timar + + * hu.po: Updated Hungarian translation. + +2004-03-19 Stanislav Visnovsky + + * sk.po: Updated Slovak translation. + +2004-03-18 Arafat Medini + + * ar.po: Updated Arabic translation. + +2004-03-17 Dafydd Harries + + * cy.po: Updated Welsh translation from Dafydd Tomos. + +2004-03-15 Žygimantas Beručka + + * lt.po: Updated Lithuanian translation. + +2004-03-14 Abel Cheung + + * ar.po: Mark wrong entry as fuzzy (msgfmt check failed). + +2004-03-14 Abel Cheung + + * zh_TW.po: Updated traditional Chinese translation from + Woodman Tuen . + +2004-03-13 Ales Nyakhaychyk + + * be.po: Updated Belarusian translation. + +2004-03-13 Maxim Dziumanenko + + * uk.po: Updated Ukrainian translation + +2004-03-13 Christophe Merlet + + * fr.po: Updated French translation. + +2004-03-12 Gustavo Maciel Dias Vieira + + * pt_BR.po: Updated Brazilian Portuguese translation done by + Raphael Higino . + +2004-03-11 Alexander Winston + + * en_CA.po: Added Canadian English translation. + +2004-03-11 Alessio Frusciante + + * it.po: Updated Italian translation. + +2004-03-11 Miloslav Trmac + + * cs.po: Updated Czech translation. + +2004-03-08 Ole Laursen + + * da.po: Updated Danish translation. + +2004-03-08 Takeshi AIHANA + + * ja.po: Updated Japanese translation. + +2004-03-08 Sanlig Badral + + * mn.po: Updated Mongolian translation. + +2004-03-07 Vincent van Adrighem + + * nl.po: Translation updated by Reinout van Schouwen. + +2004-03-07 Funda Wang + + * zh_CN.po: Updated Simplified Chinese translation. + +2004-03-06 Mətin Əmirov + + * az.po: Translation updated. + +2004-03-06 Jarkko Ranta + + * fi.po: Updated finnish translation. + +2004-03-06 Priit Laes + + * et.po: Translation updated. + +2004-03-05 Francisco Javier F. Serrador + + * es.po: Updated Spanish translation by Lucas Vieites. + +2004-03-05 Duarte Loreto + + * pt.po: Updated Portuguese translation. + +2004-03-04 Christiam Neumair + + * de.po: Updated German translation. + +2004-03-03 Artur Flinta + + * pl.po: Updated Polish translation. + +2004-03-02 Kostas Papadimas + + * el.po: Updated Greek translation. + +2004-03-01 Danilo Šegan + + * sr.po, sr@Latn.po: Updated Serbian translation. + +2004-03-01 Kjartan Maraas + + * no.po: Updated Norwegian translation. + +2004-03-01 Miloslav Trmac + + * cs.po: Updated Czech translation. + +2004-03-01 Laurent Dhima + + * sq.po: Updated Albanian translation. + +2004-03-01 Changwoo Ryu + + * ko.po: Updated Korean translation. + +2004-03-01 Christian Rose + + * sv.po: Updated Swedish translation. + +2004-02-29 Christophe Merlet + + * fr.po: Updated French translation. + +2004-02-28 Francisco Javier F. Serrador + + * es.po: Updated Spansih translation. + +2004-02-28 Duarte Loreto + + * pt.po: Updated Portuguese translation. + +2004-02-28 Takeshi AIHANA + + * ja.po: Updated Japanese translation. + +2004-02-27 Priit Laes + + * et.po: Translation updated by T?ivo Leedj?rv. + +2004-02-26 Vincent van Adrighem + + * nl.po: Translation updated by Kees van den Broek. + +2004-02-26 Vincent van Adrighem + + * nl.po: Translation updated by Reinout van Schouwen. + +2004-02-25 Danilo Šegan + + * sr.po, sr@Latn.po: Updated Serbian translation. + +2004-02-25 Laurent Dhima + + * sq.po: Updated Albanian translation. + +2004-02-25 Artur Flinta + + * pl.po: Updated Polish translation. + +2004-02-25 Miloslav Trmac + + * cs.po: Updated Czech translation. + +2004-02-24 Alastair McKinstry + + * ga.po: Updated Irish translation. + +2004-02-24 Artur Flinta + + * pl.po: Updated Polish translation. + +2004-02-24 Kostas Papadimas + + * el.po: Updated Greek translation. + +2004-02-25 Changwoo Ryu + + * ko.po: Updated Korean translation. + +2004-02-24 Miloslav Trmac + + * cs.po: Updated Czech translation. + +2004-02-24 Kjartan Maraas + + * no.po: Updated Norwegian translation. + +2004-02-23 Ole Laursen + + * da.po: Updated Danish translation. + +2004-02-23 Laurent Dhima + + * sq.po: Updated Albanian translation. + +2004-02-23 Christian Rose + + * sv.po: Updated Swedish translation. + +2004-02-23 Artur Flinta + + * pl.po: Updated Polish translation by MATE PL Team. + +2004-02-23 Kostas Papadimas + + * el.po: Updated Greek translation. + +2004-02-21 Paisa Seeluangsawat + + * th.po: Added Thai translation by Sawit Kasuriya, + Sapa, and Chanchai Junlouchai. + +2040-02-21 Jarkko Ranta + + * fi.po: Updated Finnish translation. + +2004-02-20 Sanlig Badral + + * mn.po: Updated Mongolian translation. + +2004-02-20 Laurent Dhima + + * sq.po: Fixed Albanian translation. + +2004-02-20 Hasbullah Bin Pit + + * ms.po: Updated Malay translation. + +2004-02-17 Alessio Frusciante + + * it.po: Updated Italian translation by + Salvatore Isaja . + +2004-02-17 Duarte Loreto + + * pt.po: Updated Portuguese translation. + +2004-02-16 Laurent Dhima + + * sq.po: Updated Albanian translation. + +2004-02-13 Christian Rose + + * sv.po: Updated Swedish translation. + +2004-02-13 Alessio Frusciante + + * it.po: Updated Italian translation. + +2004-02-12 Arafat Medini + + * ar.po: Updated faulty Arabic translation. + +2004-02-11 Arafat Medini + + * ar.po: Updated Arabic translation. + +2004-02-09 Nikos Charonitakis + + * el.po: Updated Greek translation. + +2004-02-07 Changwoo Ryu + + * ko.po: Updated Korean translation. + +2004-02-06 Robert Sedak + + * hr.po: Updated Croatian translation. + +2004-02-06 Sanlig Badral + + * mn.po: Updated Mongolian translation. + +2004-02-01 Mətin Əmirov + + * az.po: Translation updated. + +2004-02-01 Laurent Dhima + + * sq.po: Updated Albanian translation. + +2004-01-31 Mətin Əmirov + + * az.po: Translation updated. + +2004-01-29 Kjartan Maraas + + * POTFILES.skip: Add some generated files. + * no.po: Updated Norwegian translation. + +2004-01-28 Miloslav Trmac + + * cs.po: Fixed Czech translation. + +2004-01-27 Åsmund Skjæveland + + * nn.po: Updated Norwegian Nynorsk translation. + +2004-01-27 Christophe Merlet + + * fr.po: Updated French translation. + +2004-01-22 Hasbullah Bin Pit + + * ms.po: Updated Malay translation. + +2004-01-21 Vincent van Adrighem + + * nl.po: Translation updated by Kees van den Broek. + +2004-01-18 Christiam Neumair + + * de.po: Updated German translation. + +2004-01-15 Laurent Dhima + + * sq.po: Updated Albanian translation. + +2004-01-14 Francisco Javier F. Serrador + + * es.po: Updated spanish translation by Lucas Vieites + +2004-01-13 Kjartan Maraas + + * no.po: Updated Norwegian translation. + +2004-01-13 Vincent van Adrighem + + * nl.po: Translation updated by Kees van den Broek. + +2004-01-13 Miloslav Trmac + + * cs.po: Updated Czech translation. + +2004-01-13 Artur Flinta + + * pl.po: Updated Polish translation by MATE PL Team. + +2004-01-13 Danilo Šegan + + * sr.po, sr@Latn.po: Updated Serbian translation. + +2004-01-12 Miloslav Trmac + + * cs.po: Updated Czech translation. + +2004-01-10 Changwoo Ryu + + * ko.po: Updated Korean translation. + +2004-01-10 Danilo Šegan + + * sr.po, sr@Latn.po: Updated Serbian translation. + + * POTFILES.in: Added missing files. + +2004.01.09 Arafat Medini + + * ar.po: Updated Arabic translation + +2004-01-09 Artur Flinta + + * pl.po: Updated Polish translation by MATE PL Team. + +2004-01-06 Miloslav Trmac + + * cs.po: Updated Czech translation. + +2004-01-06 Jarkko Ranta + + * fi.po: Updated Finnish translation. + +2004-01-05 Francisco Javier F. Serrador + + * es.po: Updated Spanish translation by Lucas Vieites. + +2004-01-04 Duarte Loreto + + * pt.po: Updated and revised Portuguese translation. + +2004-01-04 Christiam Neumair + + * de.po: Updated German translation. + +2004-01-04 Christophe Merlet + + * fr.po: Updated French translation. + +2004-01-03 Robert Sedak + + * hr.po: Updated Croatian translation. + +2004-01-02 Sanlig Badral + + * mn.po: Updated Mongolian translation. + +2003-12-31 Artur Flinta + + * pl.po: Updated Polish translation by MATE PL Team. + +2003-12-27 Åsmund Skjæveland + + * nn.po: Updated Norwegian Nynorsk translation. + +2003-12-26 Kostas Papadimas + + * el.po: Updated Greek translation. + +2003-12-23 Laurent Dhima + + * sq.po: Updated Albanian translation. + +2003-12-23 Åsmund Skjæveland + + * nn.po: Updated Norwegian Nynorsk translation. + +2003-12-20 Arafat Medini + + * ar.po: Updated Arabic translation + +2003-12-20 Francisco Javier F. Serrador + + * es.po: Updated Spanish translation by Lucas Vieites. + +2003-12-20 Takeshi AIHANA + + * ja.po: Updated Japanese translation. + +2003-12-18 Danilo Šegan + + * sr.po, sr@Latn.po: Cleaned up Serbian translation. + +2003-12-15 Miloslav Trmac + + * cs.po: Updated Czech translation. + +2003-12-15 Danilo Šegan + + * sr.po, sr@Latn.po: Updated Serbian translation. + +2003-12-14 Miloslav Trmac + + * cs.po: Updated Czech translation. + +2003-12-14 Danilo Šegan + + * sr.po, sr@Latn.po: Updated Serbian translation. + + * POTFILES.in: Added missing files. + +2003-12-12 Francisco Javier F. Serrador + + * es.po: Updated Spanish translation by Lucas Vieites + +2003-11-28 Miloslav Trmac + + * cs.po: Updated Czech translation. + +2003-11-17 Jordi Mallach + + * ca.po: Updated Catalan translation. + +2003-11-12 Kostas Papadimas + + * el.po: Updated Greek translation. + +2003-11-05 Vincent van Adrighem + + * nl.po: Dutch translation updated by Vincent van Adrighem. + +2003-11-01 KAMAGASAKO Masatoshi + + * ja.po: Updated Japanese translation. + +2003-10-26 Danilo Šegan + + * sr.po, sr@Latn.po: Updated Serbian translation. + +2003-10-25 Ole Laursen + + * da.po: Updated Danish translation. + +2003-10-11 Žygimantas Beručka + + * lt.po: Updated Lithuanian translation. + +2003-10-04 Miloslav Trmac + + * cs.po: Fixed bugs in Czech translation. + +2003-09-29 Gustavo Maciel Dias Vieira + + * pt_BR.po: Applied revision by Augusta Marques da Silva + . + +2003-09-17 Fatih Demir + + * ta.po: Committed new Tamil translation by Dinesh. + +2003-09-16 Artur Flinta + + * pl.po: Updated Polish translation. + +2003-09-15 Alessio Frusciante + + * it.po: Fixed typo (bug #122048). + +2003-09-14 Andras Timar + + * hu.po: Updated Hungarian translation. + +2003-09-13 Fatih Demir + + * tr.po: Committed updated Turkish translation by Gorkem. + +2003-09-11 Yuriy Syrota + + * uk.po: Updated Ukrainian translation. + +2003-09-09 Taneem Ahmed + + * bn.po: Updated Bangla (Bengali) translation. + +2003-09-10 Roozbeh Pournader + + * en_GB.po: Converted to UTF-8. + +2003-09-07 Nikos Charonitakis + + * el.po: A few fixes for Greek translation + +2003-09-07 Nikos Charonitakis + + * el.po: Review of Greek translation + +2003-09-07 Pablo Saratxaga + + * vi.po: Updated Vietnamese file + +2003-09-05 Jordi Mallach + + * ca.po: Updated Catalan translation. + +2003-09-05 Taneem Ahmed + + * bn.po: Added Bangla translation by Sayamindu + of Ankur group . + +2003-09-05 Abel Cheung + + * eu.po, gl.po, lt.po: Converted to UTF-8. + +2003-09-04 Ivan Stojmirov + + * mk.po: Updated Macedonian translation. + +2003-09-03 Jarkko Ranta + + * fi.po: Updated Finnish translation again. + +2003-09-02 Jarkko Ranta + + * fi.po: Updated Finnish translation. + +2003-09-02 Mugurel Tudor + + * ro.po: Updated Romanian translation. + +2003-09-01 Stanislav Visnovsky + + * sk.po: Updated Slovak translation. + +2003-08-30 Abel Cheung + + * zh_TW.po: Updated traditional Chinese translation. + +2003-08-28 Pablo Gonzalo del Campo + + * es.po: Revision of Spanish translation by + Francisco Javier F. Serrador . + +2003-08-27 Alessio Frusciante + + * it.po: Updated Italian translation. + +2003-08-27 Vincent van Adrighem + + * nl.po: Dutch translation updated by Kees van den Broek. + +2003-08-26 Dafydd Harries + + * cy.po: Updated Welsh translation. + +2003-08-25 Duarte Loreto + + * pt.po: Fixed typos and accels in Portuguese translation. + +2003-08-24 Sanlig Badral + + * mn.po: Updated Mongolian translation. + +2003-08-23 Changwoo Ryu + + * ko.po: Updated Korean translation. + +2003-08-22 Kjartan Maraas + + * no.po: Update Norwegian translation. + +2003-08-19 Yanko Kaneti + + * bg.po: Updated Bulgarian translation by Evgeni Boevski. + +2003-08-18 Metin Amiroff + + * az.po: Updated Azerbaijani translation. + +2003-08-13 Danilo Šegan + + * be.po: Updated Belarusian translation by Ales Nyakhaychyk + . + +2003-08-09 Laurent Dhima + + * sq.po: Updated Albanian translation. + +2003-08-08 Metin Amiroff + + * az.po: Updated Azerbaijani translation. + +2003-08-08 Guntupalli Karunakar + + * hi.po: Updated Hindi translation. + +2003-08-08 Hasbullah Bin Pit + + * ms.po: Updated Malay translation. + +2003-08-07 Christophe Merlet + + * fr.po: Updated French translation. + +2003-08-07 Wang Jian + + * zh_CN.po: Updated Simplified Chinese translation by + Funda Wang . + +2003-08-07 Vincent van Adrighem + + * nl.po: Dutch translation updated by Reinout van Schouwen. + +2003-08-06 Ole Laursen + + * da.po: Updated Danish translation. + +2003-08-03 Kostas Papadimas + + * el.po: Updated Greek translation. + +2003-08-02 Telsa Gwynne + + * cy.po: More typo fixes. + +2003-08-01 Telsa Gwynne + + * cy.po: Typo fixes. + +2003-07-31 Christophe Merlet + + * fr.po: Updated French translation. + +2003-07-29 Christian Rose + + * sv.po: Updated Swedish translation. + +2003-07-27 Evandro Fernandes Giovanini + + * pt_BR.po: Updated Brazilian Portuguese translation. + +2003-07-27 Jordi Mallach + + * ca.po: Updated Catalan translation. + +2003-07-26 Gil "Dolfin" Osher + + * he.po: Updated Hebrew translation. + +2003-07-25 Pablo Saratxaga + + * vi.po: Updated Vietnamese file + * ms.po: Fixed syntax error + +2003-07-24 Dafydd Harries + + * cy.po: Updated Welsh translation. + +2003-07-23 Christian Neumair + + * de.po: Updated German translation. + +2003-07-23 Duarte Loreto + + * pt.po: Updated Portuguese translation. + +2003-07-22 Pablo Gonzalo del Campo + + * es.po: Updated Spanish translation by + Yelitza Louze + +2003-07-22 Danilo Segan + + * sr.po, sr@Latn.po: Updated Serbian translation by Serbian team + (Prevod.org). + +2003-07-22 Miloslav Trmac + + * cs.po: Updated Czech translation. + +2003-07-22 Takeshi AIHANA + + * ja.po: Updated Japanese translation. + +2003-07-21 Artur Flinta + + * pl.po: Updated Polish translation. + +2003-07-20 Changwoo Ryu + + * ko.po: Updated Korean translation. + +2003-07-20 Telsa Gwynne + + * cy.po: Updated Welsh translation from Owain Green, + Dafydd Jones, Steve Griffiths and Dafydd Harries. + And I did one too :) + +2003-07-19 Duarte Loreto + + * pt.po: Updated Portuguese translation. + +2003-07-19 Gil "Dolfin" Osher + + * he.po: Updated Hebrew translation. + +2003-07-17 Miloslav Trmac + + * cs.po: Updated Czech translation. + +2003-07-17 Vincent van Adrighem + + * nl.po: Dutch translation updated by Kees van den Broek. + +2003-07-17 Artur Flinta + + * pl.po: Updated Polish translation. + +2003-07-17 Artur Flinta + + * pl.po: Updated Polish translation. + +2003-07-16 Miloslav Trmac + + * cs.po: Updated Czech translation. + +2003-07-16 Christian Neumair + + * de.po: Updated German translation. + +2003-07-15 Miloslav Trmac + + * cs.po: Updated Czech translation. + +2003-07-15 Christian Rose + + * POTFILES.in: Added missing file. + * sv.po: Updated Swedish translation. + +2003-07-13 Metin Amiroff + + * az.po: Updated Azerbaijani translation. + +2003-07-11 Kjartan Maraas + + * no.po: Updated Norwegian translation. + +2003-07-10 Evandro Fernandes Giovanini + + * pt_BR.po: Updated Brazilian Portuguese translation. + +2003-07-06 Andras Timar + + * hu.po: Updated Hungarian translation. + +2003-07-02 Artur Flinta + + * pl.po: Updated Polish translation. + +2003-06-30 Pauli Virtanen + + * fi.po: Set translator_credits. + +2003-06-30 Mohammad DAMT + + * id.po: Added Indonesian translation + +2003-06-26 Gil "Dolfin" Osher + + * he.po: Updated Hebrew translation. + +2003-06-23 Vincent van Adrighem + + * nl.po: Dutch translation updated by Kees van den Broek. + +2003-06-16 Dmitry G. Mastrukov + + * ru.po: Updated Russian translation + from Russian team . + +2003-06-04 Jordi Mallach + + * ca.po: Updated Catalan translation. + +2003-06-04 Christian Neumair + + * de.po: Updated German translation. + +2003-05-28 Vincent van Adrighem + + * nl.po: Dutch translation updated by Reinout van Schouwen. + +2003-05-26 Paul Duffy + + * ga.po: Updated Irish Translation + +2003-05-22 Danilo ? egan + + * sr.po, sr@Latn.po: Updated Serbian translation. + +2003-05-20 Danilo ? egan + + * sr.po, sr@Latn.po: Added Serbian translation by Serbian team + (Prevod.org). + +2003-05-16 Laurent Dhima + + * sq.po: Updated Albanian translation. + +2003-05-13 Duarte Loreto + + * pt.po: Updated Portuguese translation. + +2002-01-14 Hasbullah Bin Pit + + * ms.po: Updated Malay translation. + +2003-05-12 Christophe Merlet + + * fr.po: Updated French translation. + +2003-05-11 KAMAGASAKO Masatoshi + + * ja.po: Updated Japanese translation. + +2003-05-07 Pablo Gonzalo del Campo + + * es.po: Updated Spanish translation by Lucas 'Basurero' Vieites + +2003-05-07 Christian Rose + + * sv.po: Updated Swedish translation. + +2003-05-06 Changwoo Ryu + + * ko.po: Updated Korean translation. + +2003-05-05 Miloslav Trmac + + * cs.po: Updated Czech translation. + +2003-05-05 Dmitry G. Mastrukov + + * be.po: Updated Belarusian translation + from Belarusian team . + +2003-04-29 Miloslav Trmac + + * cs.po: Updated Czech translation. + +2003-04-24 Abel Cheung + + * POTFILES.skip: Remove non-existant file(s). + +2003-03-29 Takeshi AIHANA + + * ja.po: Updated Japanese translation. + +2003-03-21 Guntupalli Karunakar + + * ml.po: Added Malayalam translation by + FSF-India + +2003-03-13 Stanislav Visnovsky + + * sk.po: Updated Slovak translation. + +2003-03-13 Sanlig Badral + + * mn.po: Updated Mongolian translation. + +2003-03-11 Metin Amiroff + + * az.po: Updated Azerbaijani translation. + +2003-03-10 Takeshi AIHANA + + * ja.po: Updated Japanese translation + by KAMAGASAKO Masatoshi . + +2003-03-07 Dmitry G. Mastrukov + + * be.po: Updated Belarusian translation + from Belarusian team . + +2003-03-05 Kostas Papadimas + + * el.po: Updated Greek translation. + +2003-03-04 Jarkko Ranta + * fi.po: Updated Finnish translation + +2003-03-03 Dmitry G. Mastrukov + + * ru.po: updated Russian translation + from Russian team . + +2003-03-03 Zbigniew Chyla + + * pl.po: Updated Polish translation by + MATE PL Team . + +2003-02-27 Vincent van Adrighem + + * nl.po: Dutch translation updated by Reinout van Schouwen. + +2003-02-26 Ole Laursen + + * da.po: Updated Danish translation. + +2003-02-26 Miloslav Trmac + + * cs.po: Updated Czech translation. + +2003-02-25 Pablo Gonzalo del Campo + + * es.po: Updated one string in Spanish translation. + +2003-02-25 Jordi Mallach + + * ca.po: Updated Catalan translation. + +2003-02-24 Christian Neumair + + * de.po: Updated German translation. + +2003-02-23 Christian Rose + + * sv.po: Updated Swedish translation. + +2003-02-23 Evandro Fernandes Giovanini + + * pt_BR.po: Updated Brazilian Portuguese translation. + +2003-02-23 Duarte Loreto + + * pt.po: Updated Portuguese translation. + +2003-02-22 Laurent Dhima + + * sq.po: Updated Albanian translation + +2003-02-22 Christophe Merlet + + * fr.po: Updated French translation. + +2003-02-22 Zbigniew Chyla + + * pl.po: Updated Polish translation by + MATE PL Team . + +2003-02-22 Abel Cheung + + * zh_TW.po: Updated traditional Chinese translation. + +2003-02-22 Abel Cheung + + * zh_TW.po: Updated traditional Chinese translation. + +2003-02-21 Roozbeh Pournader + + * fa.po: Added Persian translation. + +2003-02-21 Dmitry G. Mastrukov + + * be.po: Updated Belarusian translation + from Belarusian team . + +2003-02-18 Vincent van Adrighem + + * nl.po: Dutch translation updated by Vincent van Adrighem. + +2003-02-13 Vincent van Adrighem + + * nl.po: Dutch translation updated by Vincent van Adrighem. + +2003-02-11 Fatih Demir + + * tr.po: Committed updated Turkish translation by Arman. + +2003-02-07 Miloslav Trmac + + * cs.po: Fixed typo in Czech translation. + +2003-02-03 Daniel Yacob + + * am.po: Updated Amharic translation. + +2003-02-01 Duarte Loreto + + * pt.po: Updated Portuguese translation. + +2003-02-01 Christian Neumair + + * de.po: Updated German translation. + +2003-01-30 Fatih Demir + + * tr.po: Committed updated Turkish translation by Gorkem. + +2003-01-30 Christian Rose + + * sv.po: Some fixes for problems catched in translation review. + +2003-01-29 Dmitry G. Mastrukov + + * ru.po: updated Russian translation + from Russian team . + +2003-01-29 Laurent Dhima + + * sq.po: Added Albanian translation. + +2003-01-28 Yuriy Syrota + + * uk.po: Updated Ukrainiann translation + by Maxim Dzumanenko . + +2003-01-28 Dmitry G. Mastrukov + + * ru.po: updated Russian translation + from Russian team . + +2003-01-28 Jarkko Ranta + + * fi.po: Updated Finnish translation. + +2003-01-26 T???µivo Leedj??€rv + + * et.po: Updated Estonian translation. + +2003-01-26 Daniel Yacob + + * am.po: Updated Amharic translation. + +2003-01-26 Kang Jeong-Hee + + * ko.po: Updated Korean translation. + +2003-01-26 He Qiangqiang + + * zh_CN.po: Updated Simplified Chinese translation by + Xiong Jiang . + +2003-01-25 Christophe Merlet + + * fr.po: Updated French translation. + +2003-01-25 Zbigniew Chyla + + * pl.po: Updated Polish translation by + MATE PL Team . + +2003-01-23 Jordi Mallach + + * ca.po: Updated Catalan translation. + +2003-01-22 Christian Rose + + * mn.po: Added Mongolian translation by + Sanlig Badral . + +2003-01-22 Marius Andreiana + + * ro.po: updated ( thanks to Mugurel Tudor ) + +2003-01-22 Dmitry G. Mastrukov + + * ru.po: updated Russian translation + from Russian team . + +2003-01-22 Alessio Frusciante + + * it.po: Updated Italian translation + +2003-01-21 Christian Neumair + + * de.po: Updated German translation. + +2003-01-21 Kjartan Maraas + + * no.po: Updated Norwegian (bokmal) translation. + +2003-01-20 Pablo Saratxaga + + * vi.po: Updated Vietnamese file + +2003-01-20 Christian Neumair + + * de.po: Updated German translation. + +2003-01-19 Stanislav Visnovsky + + * sk.po: Updated Slovak translation. + +2003-01-18 Yanko Kaneti + + * bg.po: Updated Bulgarian translation by + Evgeni Boevski . + +2003-01-16 Gustavo Noronha Silva + + * pt_BR.po: updated translation. + +2003-01-16 Pablo Saratxaga + + * vi.po: Updated Vietnamese file + +2003-01-14 Daniel Yacob + + * am.po: Updated Amharic translation. + +2003-01-14 Abel Cheung + + * zh_TW.po: Updated traditional Chinese translation. + +2002-01-11 Daniel Yacob + + * am.po: Updated Amharic translation. + +2003-01-10 Pablo Saratxaga + + * vi.po: Updated Vietnamese file + * ms.po: Fixed syntax error + +2003-01-08 Abel Cheung + + * zh_TW.po: Updated traditional Chinese translation. + +2003-01-07 Kostas Papadimas + + * el.po: Updated Greek translation. + +2002-01-07 Naba Kumar + + * hi.po: New hindi translation by + Bhopal team + Guntupalli Karunakar + +2003-01-06 Artis Trops + + * lv.po: Updated Latvian translation. + +2003-01-06 Gil "Dolfin" Osher + + * he.po: Updated Hebrew translation. + +2003-01-03 Pablo Gonzalo del Campo + + * es.po: Updated Spanish translation by Lucas 'Basurero' Vieites + +2003-01-03 Kjartan Maraas + + * no.po: Updated Norwegian (bokmal) translation. + +2003-01-01 Ole Laursen + + * da.po: Fixed a string in the Danish translation. + +2002-12-30 Vincent van Adrighem + + * nl.po: Dutch translation updated by Reinout van Schouwen. + +2002-12-23 Artis Trops + + * lv.po: Updated Latvian translation. + +2002-12-23 Miloslav Trmac + + * cs.po: Updated Czech translation from gstreamer-2-0 branch. + +2002-12-22 Christian Rose + + * sv.po: Updated Swedish translation. + +2002-12-22 Ole Laursen + + * da.po: Updated Danish translation. + +2002-12-21 Hasbullah Bin Pit + + * ms.po: Updated Malay translation. + +2002-12-20 Gil "Dolfin" Osher + + * he.po: Updated Hebrew translation. + +2002-12-20 Christophe Merlet + + * fr.po: Updated French translation. + +2002-12-19 Andras Timar + + * hu.po: Updated Hungarian translation. + +2002-12-16 Christian Neumair + + * de.po: Updated German translation. + +2002-12-16 Hasbullah Bin Pit + + * ms.po: Updated Malay Translation. + +2002-12-13 Daniel Yacob + + * am.po: Added Amharic translation. + +2002-12-12 Andras Timar + + * hu.po: Updated Hungarian translation. + +2002-12-09 Artis Trops + + * lv.po: sync with mate-2-0 branch. + +2002-12-04 Christian Neumair + + * POTFILES.(in/skip): Updated. + * de.po: Updated German translation. + +2002-12-03 Yuriy Syrota + + * uk.po: Ukrainian translation updated by + Maxim Dzumanenko + +2002-11-17 Kostas Papadimas + + * el.po: Updated Greek translation. + +2002-11-17 Ole Laursen + + * da.po: Updated Danish translation. + +2002-11-15 Kjartan Maraas + + * no.po: Updated Norwegian (bokm?????¥l) translation. + +2002-11-09 Dmitry G. Mastrukov + + * be.po: Updated Belarusian translation + * from Belarusian team . + +2002-11-05 Hasbullah Bin Pit + + * ms.po: Updated Malay Translation. + +2002-11-03 Dmitry G. Mastrukov + + * be.po: Added Belarusian translation + * from Belarusian team . + +2002-10-19 Andras Timar + + * hu.po: Updated Hungarian translation. + +2002-10-13 Kjartan Maraas + + * no.po: Updated Norwegian (bokm?????¥l) translation. + +2002-10-11 Stanislav Brabec + + * cs.po: Updated Czech translation from Miloslav Trmac + . + +2002-10-10 Kjartan Maraas + + * no.po: Updated Norwegian (bokm?????¥l) translation. + +2002-10-08 Kjartan Maraas + + * no.po: Updated Norwegian (bokm?????¥l) translation. + +2002-10-08 Christian Neumair + + * de.po: Updated German translation. + +2002-10-08 Peteris Krisjanis + + * lv.po: Updated Latvian translation by Artis Trops + + +2002-10-06 Changwoo Ryu + + * ko.po: Updated Korean translation. + +2002-09-30 Stanislav Brabec + + * cs.po: Updated Czech translation from Michal Bukovjan + . + +2002-09-29 Yanko Kaneti + + * bg.po. Updated Bulgarian translation. + +2002-09-29 Zbigniew Chyla + + * pl.po: Updated Polish translation by + MATE PL Team . + +2002-09-28 Ole Laursen + + * da.po: Updated Danish translation. + +2002-09-28 Kjartan Maraas + + * no.po: Updated Norwegian (bokm?????¥l) translation. + +2002-09-29 Duarte Loreto + + * pt.po: Updated Portuguese translation. + +2002-09-25 Jordi Mallach + + * ca.po: Updated Catalan translation. + +2002-09-24 Christian Neumair + + * de.po: Updated German translation. + +2002-09-24 Christian Rose + + * sv.po: Updated Swedish translation. + +2002-09-13 Stanislav Brabec + + * cs.po: Updated Czech translation from Michal Bukovjan + . + +2002-09-13 Marius Andreiana + + * ro.po: updated ( thanks to Mugurel Tudor ) + +2002-09-12 Pablo Gonzalo del Campo + + * es.po: Updated Spanish translation by Lucas 'Basurero' Vieites + +2002-09-11 Kjartan Maraas + + * no.po: Updated Norwegian (bokm?????¥l) translation. + +2002-08-31 Pablo Saratxaga + + * vi.po: Updated Vietnamese file + +2002-08-30 Takayuki KUSANO + + * ja.po: Updated Japanese translation. + +2002-08-28 He Qiangqiang + + * zh_CN.po: Updated Simplified Chinese translation. + +2002-08-21 Jarkko Ranta + + * fi.po: Updated Finnish translation. + +2002-08-20 Peteris Krisjanis + + * lv.po: Updated Latvian translation. + +2002-08-17 Changwoo Ryu + + * ko.po: Updated Korean translation. + +2002-08-14 Peteris Krisjanis + + * lv.po: Updated Latvian translation. + +2002-08-13 Ole Laursen + + * da.po: Updated Danish translation. + +2002-08-13 Andras Timar + + * hu.po: Updated Hungarian translation. + +2002-08-10 Christian Meyer + + * de.po: Fixed. + +2002-08-08 Christian Meyer + + * de.po: Updated German translation. + +2002-08-08 Vincent van Adrighem + + * nl.po: Dutch translation updated by Taco Witte. + +2002-08-07 Evandro Fernandes Giovanini + + * pt_BR.po: Updated Brazilian Portuguese translation. + +2002-08-07 Evandro Fernandes Giovanini + + * pt_BR.po: Updated Brazilian Portuguese translation. + +2002-08-07 Christophe Merlet + + * fr.po: Updated French translation. + +2002-08-07 Christian Neumair + + * de.po: Updated German translation. + +2002-08-06 Yanko Kaneti + + * bg.po. Updated Bulgarian translation. + +2002-08-06 Christian Neumair + + * de.po: Updated German Translation. + +2002-08-06 Hasbullah Bin Pit + + * ms.po: Updated Malay Translation. + +2002-08-06 Christophe Merlet + + * fr.po: Updated French translation. + +2002-08-05 Zbigniew Chyla + + * pl.po: Updated Polish translation by + MATE PL Team . + +2002-08-05 Duarte Loreto + + * pt.po: Updated Portuguese translation. + +2002-08-05 T?????µivo Leedj????¢???‚???¬rv + + * et.po: Updated Estonian translation. + +2002-08-04 Gustavo Noronha Silva + + * pt_BR.po: update by + Evandro Fernandes Giovanini + +2002-08-03 Jordi Mallach + + * ca.po: Updated Catalan translation. + +2002-08-03 Christian Rose + + * POTFILES.in: Fixed schemas file names. + * sv.po: Updated Swedish translation. + +2002-08-04 Kjartan Maraas + + * no.po: Updated Norwegian (bokm?????¥l) translation. + +2002-08-03 Dmitry G. Mastrukov + + * ru.po: updated Russian translation. + +2002-08-03 Dmitry G. Mastrukov + + * POTFILES.in: Fixed schemas filenames. + +2002-08-01 Iain + + * POTFILES.in: Added the schemas files... + +2002-08-01 Hasbullah Bin Pit + + * ms.po: Updated Malay Translation. + +2002-07-30 Zbigniew Chyla + + * pl.po: Updated Polish translation by + MATE PL Team . + +2002-07-29 Jordi Mallach + + * ca.po: Updated Catalan translation. + +2002-07-28 Kjartan Maraas + + * no.po: Updated Norwegian (bokm?????¥l) translation. + +2002-07-28 Dmitry G. Mastrukov + + * ru.po: updated Russian translation. + +2002-07-27 Yanko Kaneti + + * bg.po. Updated Bulgarian translation. + +2002-07-27 Christian Rose + + * sv.po: Updated Swedish translation. + +2002-07-24 Christian Meyer + + * de.po: Updated German translation. + +2002-07-21 Christophe Merlet + + * fr.po: Updated French translation. + +2002-07-19 Simos Xenitellis + + * el.po: Updated Greek translation by additions of Aarg. + +2002-07-18 Dmitry G. Mastrukov + + * POTFILES.in: Fixed cddb2/MATE_Media_CDDBSlave2.server.in.in. + +2002-07-13 Simos Xenitellis + + * el.po: Update of Greek translation by Nikos Charonitakis . + +2002-07-12 Jordi Mallach + + * ca.po: Updated Catalan translation. + +2002-07-03 Dmitry G. Mastrukov + + * ru.po: updated Russian translation. + +2002-06-25 Christian Rose + + * sv.po: Updated Swedish translation. + +2002-06-24 Christophe Fergeau + + * fr.po : Updated French translation + +2002-06-23 Abel Cheung + + * zh_TW.po: Updated traditional Chinese translation. + +2002-06-22 Iain + + * POTFILES.in: Removed linux-cdrom.c and freebsd-cdrom.c as they don't + have _() in them any more. + +2002-06-21 Zbigniew Chyla + + * pl.po: Updated Polish translation by + MATE PL Team . + +2002-06-20 Yanko Kaneti + + * bg.po. Updated Bulgarian translation. + +2002-06-20 Abel Cheung + + * .cvsignore: Ignore more files. + * POTFILES.in: Add missing file (freebsd-cdrom.c) + +2002-06-17 Takayuki KUSANO + + * ja.po: Updated Japanese translation. + +2002-06-15 Duarte Loreto + + * pt.po: Updated Portuguese translation. + +2002-06-11 Abel Cheung + + * zh_TW.po: Updated traditional Chinese translation. + +2002-06-11 Abel Cheung + + * POTFILES.skip: Ignore schemas files which contain no + translatable strings. + +2002-06-10 Pablo Saratxaga + + * vi.po: Updated Vientamese file + +2002-06-10 Yanko Kaneti + + * bg.po (added): Bulgarian translation by + Evgeni Boevski . + +2002-06-10 Hasbullah Bin Pit + + * ms.po: Updated Malay Translation. + +2002-06-09 Vincent van Adrighem + + * nl.po: Dutch translation updated by Tino Meinen. + +2002-06-06 Dmitry G. Mastrukov + + * ru.po: updated Russian translation. + +2002-06-05 Christian Rose + + * sv.po: Fix. + +2002-06-04 T?????µivo Leedj????¢???‚???¬rv + + * et.po: Updated Estonian translation. + +2002-06-03 Germ??n Poo Caama?????±o + + * es.po: Updated Spanish translation from + Lucas 'Basurero' Vieites + +2002-06-03 Jarkko Ranta + + * fi.po: Updated Finnish Translation + +2002-06-03 Changwoo Ryu + + * ko.po: Updated Korean translation. + +2002-06-03 Christian Rose + + * sv.po: Fixed Swedish translation. + +2002-06-02 Pablo Saratxaga + + * ca.po: Updated Catalan file + * vi.po: Updated Vietnamese file + +2002-06-01 Carlos Perell?????³ Mar?????­n + + * es.po: Updated by Lucas Vieites + +2002-06-01 Christian Rose + + * sv.po: Updated Swedish translation. + +2002-05-31 Kjartan Maraas + + * no.po: Updated Norwegian (bokm?????¥l) translation. + +2002-05-31 Stanislav Visnovsky + + * sk.po: Updated Slovak translation. + +2002-05-31 Zbigniew Chyla + + * pl.po: Updated Polish translation by + MATE PL Team . + +2002-05-31 Ole Laursen + + * POTFILES.in: Fixed s/.in.h/.in/ and added + gmix/mate-volume-control.desktop.in.in instead of + gmix/mate-volume-control.desktop.in. + + * da.po: Updated Danish translation. + +2002-05-29 Duarte Loreto + + * pt.po: Updated Portuguese translation + +2002-05-27 Kjartan Maraas + + * no.po: Updated Norwegian (bokm?????¥l) translation. + +2002-05-25 Ole Laursen + + * da.po: Updated Danish translation. + +2002-05-25 Zbigniew Chyla + + * pl.po: Updated Polish translation by + MATE PL Team . + +2002-05-21 Ole Laursen + + * da.po: Updated Danish translation. + +2002-05-19 Vlad Harchev + + * ru.po: updated russian translation from Dmitry G. Mastrukov + . + +2002-05-19 Vlad Harchev + + * ru.po: updated russian translation from Dmitry G. Mastrukov + . + +2002-05-18 Alessio Frusciante + + * it.po: Updated Italian translation. + +2002-05-17 Kjartan Maraas + + * no.po: Updated Norwegian (bokm?????¥l) translation. + +2002-05-16 Stanislav Visnovsky + + * sk.po: Updated Slovak translation. + +2002-05-16 Zbigniew Chyla + + * pl.po: Updated Polish translation by + MATE PL Team . + +2002-05-14 Christophe Merlet + + * fr.po: Updated French translation. + +2002-05-14 Pablo Saratxaga + + * es.po,uk.po: Fixed syntax errors + * vi.po: Added Vietnamese file + +2002-05-13 Zbigniew Chyla + + * pl.po: Updated Polish translation by + MATE PL Team . + +2002-05-12 Hasbullah Bin Pit + + * ms.po: Updated Malay Translation. + +2002-05-11 Ole Laursen + + * da.po: Updated Danish translation. + +2002-05-11 Kjartan Maraas + + * no.po: Updated Norwegian (bokm?????¥l) translation. + +2002-05-08 Zbigniew Chyla + + * pl.po: Updated Polish translation by + MATE PL Team . + +2002-05-07 Kjartan Maraas + + * no.po: Updated Norwegian (bokm?????¥l) translation. + +2002-05-06 Changwoo Ryu + + * ko.po: Updated Korean translation. + +2002-05-04 Duarte Loreto + + * pt.po: Updated Portuguese translation and converted to UTF-8. + +2002-05-03 Vincent van Adrighem + + * nl.po: Updated Dutch translation (Huib Kleinhout). + +2002-04-30 Pablo Saratxaga + + * eu.po: Added Basque file + * wa.po: Added Walloon file + +2002-04-30 Kjartan Maraas + + * no.po: Updated Norwegian (bokm?????¥l) translation. + +2002-04-29 Kjartan Maraas + + * no.po: Updated Norwegian (bokm?????¥l) translation. + +2002-04-26 Changwoo Ryu + + * ko.po: Updated Korean translation. + +2002-04-24 T?????µivo Leedj????¢???‚???¬rv + + * et.po: Updated Estonian translation + by Ilmar Kerm . + +2002-04-23 Kjartan Maraas + + * no.po: Updated Norwegian (bokm?????¥l) translation. + +2002-04-22 Jarkko Ranta + + * fi.po: Updated Finnish translation again. + +2002-04-22 Jarkko Ranta + + * fi.po: Updated Finnish translation. + +2002-04-18 Zbigniew Chyla + + * pl.po: Updated Polish translation by + MATE PL Team . + +2002-04-18 Changwoo Ryu + + * ko.po: Updated Korean translation again, to fix some wrong + translations. + +2002-04-17 Changwoo Ryu + + * ko.po: Updated Korean translation. + +2002-04-16 Christophe Merlet + + * fr.po: Updated French translation from work of + Christophe Fergeau + and converted to UTF-8. + +2002-04-15 Kjartan Maraas + + * no.po: Updated Norwegian (bokm?????¥l) translation. + +2002-04-15 Valek Filippov + + * ru.po: updated russian translation from Dmitry Mastrukov. + +2002-04-14 Abel Cheung + + * zh_TW.po: Updated traditional Chinese translation. + +2002-04-09 Zbigniew Chyla + + * pl.po: Updated Polish translation by + MATE PL Team . + +2002-04-06 Ole Laursen + + * da.po: Updated Danish translation. + +2002-04-05 Zbigniew Chyla + + * pl.po: Updated Polish translation by + MATE PL Team . + +2002-04-02 Christian Rose + + * sv.po: Updated Swedish translation. + +2002-04-01 Christian Rose + + * sv.po: Updated Swedish translation. + +2002-04-01 Duarte Loreto + + * pt.po: Updated Portuguese translation. + +2002-03-31 Wang Jian + + * zh_CN.po: Updated Simplified Chinese translation by + He Qiangqiang . + +2002-03-28 Kjartan Maraas + + * no.po: Updated Norwegian (bokm?????¥l) translation. + +2002-03-28 Hasbullah Bin Pit + + * ms.po: Updated Malay Translation. + +2002-03-27 Jarkko Ranta + + * fi.po: Updated Finnish transltaion once again. + +2002-03-27 Jarkko Ranta + + * fi.po: Updated Finnish translation. + +2002-03-26 Stanislav Visnovsky + + * sk.po: Updated Slovak translation. + +2002-03-24 Zbigniew Chyla + + * pl.po: Updated Polish translation by + MATE PL Team . + +2002-03-22 Ole Laursen + + * da.po: Updated Danish translation. + +2002-03-22 Zbigniew Chyla + + * pl.po: Updated Polish translation by + MATE PL Team . + +2002-03-20 Zbigniew Chyla + + * pl.po: Updated Polish translation by + MATE PL Team . + +2002-03-20 T?????µivo Leedj????¢???‚???¬rv + + * et.po: Updated Estonian translation and converterd to UTF-8. + +2002-03-19 Ole Laursen + + * da.po: Updated Danish translation. + +2002-03-17 Kjartan Maraas + + * no.po: Updated Norwegian (bokm?????¥l) translation. + +2002-03-15 Stanislav Visnovsky + + * sk.po: Updated Slovak translation. + +2002-03-15 Valek Filippov + + * ru.po: updated russian translation + +2002-03-13 Hasbullah Bin Pit + + * fi.po: Fixed invalid multibyte sequence + requested by 'boc' + +2002-03-13 Jarkko Ranta + + * fi.po: Updated Finnish translation. + +2002-03-13 Stanislav Visnovsky + + * sk.po: Updated Slovak translation. + +2002-03-12 Kjartan Maraas + + * no.po: Updated Norwegian (bokm?????¥l) translation. + +2002-03-11 Hasbullah Bin Pit + + * ms.po: Updated Malay Translation. + +2002-03-10 Christian Rose + + * sv.po: Updated Swedish translation. + +2002-03-09 Zbigniew Chyla + + * pl.po: Updated Polish translation by + MATE PL Team . + +2002-03-08 Zbigniew Chyla + + * pl.po: Updated Polish translation by + MATE PL Team . + +2002-03-07 Ole Laursen + + * da.po: Updated Danish translation. + +2002-03-07 Stanislav Visnovsky + + * sk.po: Updated Slovak translation. + +2002-03-07 Christian Rose + + * POTFILES.in: Added missing file (fixes #73750). + +2002-03-06 Jarkko Ranta + + * fi.po: Updated Finnish translation. + +2002-03-06 Kjartan Maraas + + * no.po: Updated Norwegian (bokm?????¥l) translation. + +2002-03-06 Stanislav Visnovsky + + * sk.po: Updated Slovak translation. + +2002-03-06 Valek Filippov + + * ru.po: updated russian translation + +2002-03-06 Duarte Loreto + + * pt.po: Updated Portuguese translation. + +2002-03-06 Zbigniew Chyla + + * pl.po: Updated Polish translation by + MATE PL Team . + +2002-03-05 Carlos Perello Marin + + * es.po: Updated by Lucas 'Basurero' Vieites + +2002-03-05 Christian Rose + + * sv.po: Updated Swedish translation. + +2002-03-04 Kjartan Maraas + + * no.po: Updated Norwegian (bokm?????¥l) translation. + +2002-03-04 Stanislav Visnovsky + + * sk.po: Updated Slovak translation. + +2002-03-04 Fatih Demir + + * tr.po: Committed updated Turkish translation by G?????¶rkem. + +2002-03-03 Zbigniew Chyla + + * pl.po: Updated Polish translation by + MATE PL Team . + +2002-03-03 Kjartan Maraas + + * no.po: Updated Norwegian (bokm?????¥l) translation. + +2002-03-02 Ole Laursen + + * da.po: Updated Danish translation (with a little help from Caja). + +2002-03-02 Zbigniew Chyla + + * pl.po: Updated Polish translation by + MATE PL Team . + +2002-03-02 Hasbullah Bin Pit + + * ms.po: Updated Malay Translation. + +2002-03-01 Christian Rose + + * sv.po: Updated Swedish translation. + +2002-02-27 Zbigniew Chyla + + * pl.po: Updated Polish translation by + MATE PL Team . + +2002-02-27 Hasbullah Bin Pit + + * ms.po: Updated Malay Translation. + +2002-02-26 Stanislav Visnovsky + + * sk.po: Updated Slovak translation. + +2002-02-24 Zbigniew Chyla + + * pl.po: Updated Polish translation by + MATE PL Team . + +2002-02-23 Ole Laursen + + * da.po: Updated Danish translation. + +2002-02-22 Hasbullah Bin Pit + + * ms.po: Updated Malay Translation. + +2002-02-22 Kjartan Maraas + + * no.po: Updated Norwegian (bokm?????¥l) translation. + * POTFILES.in: Added missing cddb-slave2 stuff. + +2002-02-20 Abel Cheung + + * zh_TW.po: Updated traditional Chinese translation. + +2002-02-16 Ole Laursen + + * da.po: Updated Danish translation and converted it to UTF-8. + +2002-02-10 Kjartan Maraas + + * no.po: Updated Norwegian (bokm?????¥l) translation. + +2002-02-10 Kjartan Maraas + + * no.po: Updated Norwegian translation. + * POTFILES.in: Populate some more. + +2002-02-08 Duarte Loreto + + * pt.po: Updated Portuguese translation. + +2002-02-07 Abel Cheung + + * zh_TW.po: Update traditional Chinese translation. + +2002-02-05 Abel Cheung + + * zh_CN.GB2312.po -> zh_CN.po + +2002-02-04 Stanislav Visnovsky + + * sk.po: Updated Slovak translation. + +2002-01-30 Roy-Magne Mo + + * nn.po: Updated Norwegian Nynorsk and converted to UTF-8 + +2002-01-29 Jarkko Ranta + + * fi.po: Updated Finnish translation. + +2002-01-28 Hasbullah Bin Pit + + * ms.po: Updated Malay Translation. + +2002-01-27 Christian Rose + + * sv.po: Updated and converted to UTF-8. + +2002-01-27 Kjartan Maraas + + * no.po: Updated Norwegian translation. + * POTFILES.in: Populate some more. + +2002-01-25 Roy-Magne Mo + + * nn.po: Updated Norwegian (nynorsk) translation. + +2002-01-23 Peteris Krisjanis + + * lv.po: Updated Latvian translation. + +2002-01-17 Hasbullah Bin Pit + + * ms.po: Added Malay Translation. + +2002-01-12 Jarkko Ranta + + * fi.po: Updated Finnish translation. + +2001-12-31 Valek Filippov + + * ru.po: updated russian translation + +2001-12-16 Duarte Loreto + + * pt.po: Updated Portuguese translation. + +2001-12-16 Kjartan Maraas + + * no.po: Updated Norwegian translation. + +2001-12-15 Christian Rose + + * sv.po: Updated Swedish translation. + +2001-12-13 Stanislav Visnovsky + + * sk.po: Updated Slovak translation. + +2001-12-11 Abel Cheung + + * zh_TW.po: Update traditional Chinese translation. + +2001-12-08 Christian Rose + + * .cvsignore: Changed to incude all potfiles. + +2001-12-03 Christian Rose + + * sv.po: Updated Swedish translation. + +2001-11-27 Roy-Magne Mo + + * nn.po: Updated Norwegian (nynorsk) translation. + +2001-11-18 Valek Filippov + + * ru.po: updated russian translation + +2001-11-11 Stanislav Visnovsky + + * sk.po: Updated Slovak translation. + +2001-11-09 Jarkko Ranta + + * fi.po: Updated Finnish translation. + +2001-11-09 Abel Cheung + + * zh_TW.po: Update traditional Chinese translation, converted to UTF8. + +2001-11-01 Peteris Krisjanis + + * lv.po: Updated Latvian translation by Artis Trops + + +2001-10-29 Andras Timar + + * hu.po: Updated Hungarian translation. + +2001-10-26 Peteris Krisjanis + + * lv.po: Updated Latvian translation by Artis Trops + + +2001-10-14 Gustavo Maciel Dias Vieira + + * pt_BR.po: Updated Brazilian Portuguese translation. + +2001-10-14 Zbigniew Chyla + + * pl.po: Updated Polish translation. + +2001-10-13 Christophe Merlet + + * fr.po: Updated French translation. + +2001-10-10 Carlos Perell?????³ Mar?????­n + + * pt.po: Updated by Duarte Loreto + +2001-10-07 Artis Trops + + * lv.po: Added Latvian translation. + +2001-10-06 Simos Xenitellis + + * el.po: Updated Greek translation. + +2001-10-03 Carlos Perell?????³ Mar?????­n + + * es.po: Updated Spanish translation by Lucas 'Basurero' Vieites + + +2001-10-03 Christian Rose + + * sv.po: Updated Swedish translation. + +2001-09-28 Christopher R. Gabriel + + * it.po: More updates from Salvo Isaja + +2001-09-25 Christopher R. Gabriel + + * it.po: Updates from Salvo Isaja + +2001-09-25 Kjartan Maraas + + * no.po: Updated Norwegian translation. + +2001-09-22 Christophe Merlet + + * fr.po: Updated French translation. + +2001-09-21 Stanislav Visnovsky + + * sk.po: Updated Slovak translation. + +2001-09-20 Stanislav Brabec + + * cs.po: Updated translation. + +2001-09-21 Abel Cheung + + * zh_TW.po: Updated traditional Chinese translation. + +2001-09-17 Pablo Saratxaga + + * az.po: Updated Azeri file + +2001-09-13 Pablo Saratxaga + + * da.po: Updated Danish file + * ga.po: Updated Irish file + * ca.po: Updated Catalan file + +2001-09-09 Carlos Perell?????³ Mar?????­n + + * es.po: Updated Spanish translation by Lucas 'Basurero' + Vieites + +2001-09-06 Abel Cheung + + * zh_TW.po: updated traditional Chinese translation. + +2001-09-03 Stanislav Visnovsky + + * sk.po: Updated Slovak translation. + +2001-08-31 Abel Cheung + + * zh_TW.Big5.po: Rename to ...... + * zh_TW.po: This. + +2001-08-25 Christophe Merlet + + * fr.po: Updated French translation. + +2001-08-24 Andras Timar + + * hu.po: Updated and fixed linguistic issues. + +2001-08-19 Zbigniew Chyla + + * pl.po: Updated Polish translation. + +2001-08-19 Jesus Bravo Alvarez + + * gl.po: Updated Galician translation. + +2001-08-07 Stanislav Brabec + + * POTFILES.in: Added vu-meter/reclevel.desktop.in. + * cs.po: Updated translation. + +2001-08-07 Zbigniew Chyla + + * pl.po: Updated Polish translation. + +2001-07-18 Fatih Demir + + * tr.po: Committed updated Turkish translation by + G?????¶rkem Cetin. + +2001-07-17 Stanislav Visnovsky + + * sk.po: Updated Slovak translation. + +2001-07-16 Kjartan Maraas + + * nn.po: Added Norwegian (nynorsk) translation. + +2001-07-11 Christopher R. Gabriel + + * it.po: Updated italian translation from Salvo Isaja + +Mon Jul 02 15:50:06 2001 George Lebl + + * zh_TW.Big5.po: update from "R.I.P. Deaddog" + +2001-07-01 Christian Rose + + * sv.po: Updated Swedish translation. + +2001-06-12 Pablo Saratxaga + + * az.po: Updated Azeri file + +2001-06-17 Christian Meyer + + * de.po: Updated de.po. + +2001-06-14 Stanislav Brabec + + * cs.po: Updated translation. + +2001-06-13 Radek Doulik + + * cs.po: updated Czech translations + +2001-06-12 Pablo Saratxaga + + * ca.po: Updated Catalan file + +2001-06-11 Radek Doulik + + * cs.po: updated Czech translations + +2001-06-10 Pablo Saratxaga + + * az.po: Updated Azeri file + +2001-06-09 Kjartan Maraas + + * no.po: Updated Norwegian translation. + * POTFILES.in: Added gmix/prefs.c + +2001-06-07 Fatih Demir + + * tr.po: Committed updated Turkish translation + by G?????¶rkem. + +2001-06-07 Pablo Saratxaga + + * zh_TW.Big5.po: updated Chinese file + +2001-06-06 Christian Meyer + + * de.po: Updated German translation. + +2001-06-06 Stanislav Visnovsky + + * sk.po: Updated Slovak translation. + +2001-06-05 Gediminas Paulauskas + + * lt.po: Updated Lithuanian translation. + +2001-06-05 Kjartan Maraas + + * no.po: Updated Norwegian translation. + +2001-06-04 Pablo Saratxaga + + * ca.po: Updated Catalan file + +2001-06-04 Fatih Demir + + * tr.po: Committed updated Turkish translation + by G?????¶rkem. + +2001-06-03 Christian Rose + + * sv.po: Updated Swedish translation. + +2001-06-03 Fatih Demir + + * ko.po: Committed updated ko.po by Young-Ho. + +2001-06-03 Karl Eichwalder + + * update.pl: Remove file; we're using xml-i18n-update. + * update.sh: Ditto. + +2001-06-02 Kjartan Maraas + + * no.po: Updated Norwegian translation. + +2001-06-02 Peter Teichman + + * cs.po, da.po, de.po, el.po, es.po, et.po, fi.po, fr.po, ga.po, + gl.po, hu.po, ja.po, ko.po, lt.po, no.po, pt.po, pt_BR.po, ru.po, + sk.po, sl.po, sv.po, tr.po, uk.po: + Merge translated strings from .desktop files into the po files. + The only changes are the additions of already-translated strings, + so this shouldn't step on any toes. + +2001-06-02 Fatih Demir + + * ko.po: Committed updated Korean translation by + Young-Ho. + +2001-06-02 Christian Rose + + * sv.po: Fixed Swedish translation. Thanks to + G?????¶ran Uddeborg and + Peter Karlsson for their input. + +2001-06-01 Stanislav Visnovsky + + * sk.po: Updated Slovak translation. + +2001-06-01 Christian Rose + + * sv.po: Updated Swedish translation. + * .cvsignore: Added messages. + +2001-05-31 Christian Meyer + + * de.po: Updated German translation. + +2001-05-29 Kjartan Maraas + + * no.po: Updated Norwegian translation. + * POTFILES.in: Added src/prefs.h. + +2001-05-21 Pablo Saratxaga + + * ja.po,ko.po,lt.po,pl.po,pt_BR.po,uk.po: fixed invalid multibyte + +2001-05-19 Kjartan Maraas + + * no.po: Updated Norwegian translation. + +2001-05-02 Pablo Saratxaga + + * az.po: Updated Azeri file + +2001-03-31 Pablo Saratxaga + + * ca.po: Updated Catalan file + +2001-03-28 Christian Meyer + + * de.po: Updated German translation. + +2001-03-28 Pablo Saratxaga + + {en_GB,et,ga,hu,nl}.po: corrected charset lines + +2001-03-23 Fatih Demir + + * tr.po: Updated Turkish translation by G?????¶rkem. + +2001-03-20 Stanislav Brabec + + * cs.po: Updated translation. + +2001-03-12 Jarkko Ranta + + * fi.po: Updated Finnish translation. + +2001-03-08 Jesus Bravo Alvarez + + * gl.po: Updated Galician translation. + +2001-03-02 Christian Meyer + + * de.po: Revised German translation. + +2001-03-01 Carlos Perell?????³ Mar?????­n + + * es.po: Updated Spanish translation by Lucas 'Basurero' + Vieites + +2001-02-18 Simos Xenitellis + + * el.po: More minor corrections. + +2001-02-15 Valek Filippov + + * ru.po: updated russian translation + +2001-02-14 Dan Damian + + * ro.po: Update Romanian translation. + +2001-02-13 Simos Xenitellis + + * el.po: Minor corrections (verification). + + * el.po: Updated Greek translation. + +2001-02-12 Christophe Merlet + + * fr.po: Updated French translation. + +2001-02-12 Szabolcs Ban + + * hu.po: Updated Hungarian translations, + work of Gergely Nagy + +2001-02-09 Christian Meyer + + * de.po: Small fix. + +2001-02-09 Martin Norb????¢???‚???¬ck + + * sv.po: Updated Swedish translation. + +2001-02-07 Christopher R. Gabriel + + * it.po: Updated italian translation + +2001-02-06 Christian Meyer + + * de.po: Updated German translation. + +2001-01-24 Szabolcs Ban + + * hu.po: Tons of fixes by Andras and Emese (spelling, + terminology, headers) + +2001-01-23 Valek Filippov + + * ru.po: updated russian translation + +2001-01-19 Stanislav Visnovsky + + * sk.po: Updated Slovak translation. + +2001-01-16 Stanislav Brabec + + * cs.po: Updated translation. + * POTFILES.in: Added gmix/device_labels_alsa.h. + +2001-01-15 Christopher R. Gabriel + + * it.po: Updated italian translation from Salvo Isaja + +2001-01-13 Simos Xenitellis + + * el.po: Small addition. 8-/ + +2001-01-11 Jarkko Ranta + + * fi.po: Small addition ;) + +2001-01-11 Christian Rose + + * sv.po: Small correction. + +2001-01-10 Christian Rose + + * sv.po: Updated Swedish translation. + +2001-01-10 Jarkko Ranta + + * fi.po: Updated Finnish translation. + +2001-01-09 Valek Filippov + + * ru.po: updated russian translation + +2001-01-09 Christian Rose + + * sv.po: Updated Swedish translation. + +2001-01-04 Pablo Saratxaga + + * az.po: Added Azeri file + +2001-01-04 Christian Rose + + * sv.po: Updated Swedish translation. + +2001-01-02 Stanislav Visnovsky + + * sk.po: Updated and corrected Slovak translation. + +2000-12-27 Fatih Demir + + * tr.po: Dumdidum, Rama(d|z)an has finished .. now you're + worth getting an updated tr.po ,-) + +2000-12-12 Stanislav Visnovsky + + * sk.po: Updated Slovak translation. + +2000-12-08 Fatih Demir + + * ko.po: Committed updated Korean translation. + +2000-12-06 Stanislav Visnovsky + + * sk.po: Added Slovak translation. + +2000-12-05 Kjartan Maraas + + * no.po: Updated Norwegian translation. + +2000-11-16 Akira TAGOH + + * ja.po: Updated Japanese translation. + +2000-11-04 Zbigniew Chyla + + * pl.po: Updated Polish translation + +2000-11-04 Stanislav Brabec + + * cs.po: Updated translation. + +2000-10-10 Christophe Merlet + + * fr.po: Updated French translation. + +2000-10-08 Akira TAGOH + + * ja.po: Updated Japanese translation. + +2000-09-27 Stanislav Brabec + + * cs.po: Updated translation. + +2000-09-13 Christian Meyer + + * update.pl: Added perl script from kanikus. + * README.tools: Added text file. + +2000-08-16 Pablo Saratxaga + + * el.po: updated Greek file + * ga.po: corrected small syntax error + * ro.po: completed header so msgfmt -c works + +2000-08-14 Kai Lahmann + + * de.po: Updated German translation from chrisime + +2000-08-12 Kai Lahmann + + * de.po: Updated German translation + +2000-08-09 Kjartan Maraas + + * no.po: Updated Norwegian translation. + +2000-08-08 Kai Lahmann + + * de.po: Updated German translation + +2000-08-04 Kai Lahmann + + * de.po: Updated German translation + +2000-08-02 Jarkko Ranta + + * fi.po: Updated Finnish translation + +2000-07-31 Kai Lahmann + + * de.po: Updated German translation + +2000-07-13 Benedikt Roth + + * nl.po: Updated Dutch translation from Dennis Smit + +2000-06-30 Christopher R. Gabriel + + * it.po: updated italian translation from + Salvo Isaja + +2000-06-14 Christopher R. Gabriel + + * it.po: updated + +2000-06-11 Fatih Demir + + * tr.po: Updated the Turkish translation. + +Tue May 30 09:19:59 CEST 2000 Stanislav Brabec + + * cs.po: Updated translation. + +2000-05-23 Valek Filippov + + * ru.po: updated russian translation + * update.sh: 1.2.5 version. + +2000-05-20 Jesus Bravo Alvarez + + * gl.po: Updated Galician translation. + * es.po: Updated Spanish translation. + +2000-05-20 Andreas Hyden + + * sv.po: Updated Swedish translation. + +2000-05-20 Yukihiro Nakai + + * ja.po: Update from Akira TAGOH. + +2000-05-19 Andreas Hyden + + * sv.po: Updated Swedish translation. + +2000-05-19 Yuri Syrota + + * uk.po: Update Ukrainian translation. + +2000-05-19 Karl Eichwalder + + * de.po: Update. + +2000-05-18 Kjartan Maraas + + * no.po: Updated Norwegian translation. + +2000-05-18 Yuri Syrota + + * uk.po: Update Ukrainian translation. + +2000-05-18 Yukihiro Nakai + + * ja.po: Update from Akira TAGOH. + +2000-05-18 Jesus Bravo Alvarez + + * gl.po: Updated Galician translation. + * es.po: Updated Spanish translation. + +2000-05-17 Kjartan Maraas + + * no.po: Updated Norwegian translation. + +2000-05-17 Karl Eichwalder + + * de.po: Update. + +2000-05-17 Andreas Hyden + + * sv.po: Updated Swedish translation. + +2000-05-16 Andreas Hyden + + * sv.po: Updated Swedish translation. + +2000-05-16 Kjartan Maraas + + * no.po: Updated Norwegian translation. + +2000-05-14 Andreas Hyden + + * sv.po: Updated Swedish translation. + +2000-05-14 Andreas Hyden + + * sv.po: Updated Swedish translation. + +2000-05-13 Kjartan Maraas + + * no.po: Updated Norwegian translation. + +2000-05-13 Karl Eichwalder + + * de.po: Update. + +Wed May 10 23:08:12 CEST 2000 Stanislav Brabec + + * cs.po: Updated translation. + +2000-05-09 Andreas Hyden + + * sv.po: Updated Swedish translation. + * update.sh: Updated. + +2000-05-09 Karl Eichwalder + + * de.po: Update. + +2000-05-09 Jesus Bravo Alvarez + + * gl.po: Updated Galician translation. + +2000-05-09 Kjartan Maraas + + * no.po: Updated Norwegian translation. + +2000-05-08 Karl Eichwalder + + * de.po: Update. + +2000-05-08 Kenneth Christiansen + + * da.po: Updated Danish translations. + +2000-05-08 Kenneth Christiansen + + * update.sh: Updated update.sh to support + merging, --help, easier porting to new + packages, et al. + +2000-05-08 Andreas Hyden + + * sv.po: Updated Swedish translation. + +2000-05-06 Andreas Hyden + + * sv.po: Updated Swedish translation. + +2000-05-06 Karl Eichwalder + + * de.po: Update. + +2000-05-05 Karl Eichwalder + + * pl.po: Merge in polish messages of the grecord module; done by + Marcin Owsiany . + +2000-05-04 Jesus Bravo Alvarez + + * gl.po: Updated Galician translation. + +2000-05-03 Kjartan Maraas + + * no.po: Updated Norwegian translation. + +2000-04-30 Karl Eichwalder + + * de.po: Update. + +2000-04-29 Andreas Hyden + + * sv.po: Updated Swedish translation. + +2000-04-29 Kjartan Maraas + + * no.po: Updated Norwegian translation. + +2000-04-29 Jesus Bravo Alvarez + + * gl.po: Updated Galician translation. + +2000-04-29 Karl Eichwalder + + * de.po: More complete. + * POTFILES.in: Sort alphabetically. + * de.po: Improve it. + * de.po: Add some translations. + +2000-04-28 Andreas Hyden + + * sv.po: Updated Swedish translation. + +2000-04-25 Valek Filippov + + * ru.po: Updated russian translation. + +2000-04-25 Kjartan Maraas + + * no.po: Updated Norwegian translation. + +2000-04-25 Jesus Bravo Alvarez + + * gl.po: Updated Galician translation. + +2000-04-25 Fatih Demir + + * tr.po : Updated the Turkish translation . + +2000-04-25 Arjan Scherpenisse + + * nl.po: Updated Dutch translation, credits to + Dennis Smit + +2000-04-24 Andreas Hyden + + * sv.po: Updated Swedish translation. + +2000-04-24 Andreas Hyden + + * sv.po: Updated Swedish translation. + +2000-04-21 Andreas Hyden + + * POTFILES.IN: Added grecord source files. + +2000-04-20 Andreas Hyden + + * sv.po: Updated Swedish translation. + +2000-04-17 Valek Filippov + + * ru.po: Updated translation. + +2000-04-16 Karl EICHWALDER + + * de.po: Cleanup. + +2000-04-08 Pablo Saratxaga + + * lt.po: added Lihuanian file + +2000-04-01 Kjartan Maraas + + * no.po: Updated Norwegian translation. + * ru.po: Updated Russian translation from Valek + Filippov . + +2000-03-26 Karl EICHWALDER + + * de.po: Fix header (charset). + +2000-03-08 Alastair McKinstry + + * ga.po: Updated Irish translation. + +2000-02-26 Christopher R. Gabriel + + * it.po: updated italian translation from + "Salvo Isaja" + +2000-02-26 Zbigniew Chyla + + * pl.po: Updated translation. + +2000-02-12 Fatih Demir + + * tr.po : Added the Turkish translation . + +2000-01-31 Yuan-Chung Cheng + + * zh_CN.GB2312.po: Added po file from TurboLinux Chinese Develop Team. + +2000-01-19 Kjartan Maraas + + * no.po: Updated Norwegian translation. + +2000-01-12 Yuri Syrota + + * uk.po: Updated. + +2000-01-03 Kjartan Maraas + + * update.sh: A little script that lets people + update the .pot file without makefiles etc. + +2000-01-03 Jesus Bravo Alvarez + + * gl.po: Updated. + +1999-12-29 Zbigniew Chyla + + * pl.po: Updated translation. + +1999-12-16 Karl Eichwalder + + * de.po: Update. + +Thu Dec 16 11:35:59 1999 Changwoo Ryu + + * ko.po: Updated Korean translation. + +1999-12-16 Kjartan Maraas + + * no.po: Updated Norwegian translation. + +1999-12-13 Stanislav Brabec + + * POTFILES.in: Added tcd/track_buttons.c. + * cs.po: Updated translation. + +1999-12-11 Christopher R. Gabriel + + * it.po: Updated italian translation by Salvo Isaja + +1999-12-01 Martin Norb????¢???‚???¬ck + + * sv.po: Updated Swedish translation. + +1999-11-27 Karl EICHWALDER + + * de.po: Update. + +1999-11-22 Yuri Syrota + + * uk.po: Updated Ukrainian translation. + +1999-11-17 Kjartan Maraas + + * no.po: Updated Norwegian translation. + +1999-11-17 Pablo Saratxaga + * el.po: added Greek translation + * es.po: updated spanish translation + * *.po: run update-po as the *.po files were way out of date; + so translators can see updated files and complete them + +1999-11-02 Yuri Syrota + + * uk.po: Added Ukrainian translation. + +1999-10-21 Stanislav Brabec + + * POTFILES.in: After fix added back gmix/device_labels_linux.h. + +1999-10-12 Dan Damian + + * ro.po: Added Romanian translation. + +1999-10-07 Jesus Bravo Alvarez + + * gl.po: Added Galician translation. + +1999-10-05 Sergey Panov + + * ru.po: updated + +1999-10-04 Stanislav Brabec + + * POTFILES.in: Added gmix/device_labels_linux.h. + * cs.po: Updated. + +1999-10-02 Karl Eichwalder + + * de.po: Update. + +1999-10-02 +09 Changwoo Ryu + + * ko.po: Updated translation. + +1999-09-28 Kjartan Maraas + + * no.po: Updated Norwegian translation. + +1999-09-28 Martin Baulig + + * cs.po: Added from Stanislav Brabec + +1999-09-27 Rodrigo Stulzer Lopes + + * pt_BR.po: Added + +1999-09-27 Richard Hult + + * sv.po: Updated Swedish translation. + +1999-09-27 Zbigniew Chyla + + * pl.po: Updated translation. + +1999-09-26 Lauris Kaplinski + + * et.po: Added Estonian tranlation + +1999-09-23 Tomas Ogren + + * sv.po: Update from Andreas Persenius + +1999-09-23 Kjartan Maraas + + * da.po: Updated Danish translation from Kenneth + Christiansen + +1999-09-22 Vincent Renardias + + * fr.po: updated for 1.0.40: + > 114 translated messages, 6 fuzzy translations, 5 untranslated messages. + < 125 translated messages. + +1999-09-22 Yukihiro Nakai + + * ja.po: Update from ITANI Eiichiro. + +1999-09-19 Pablo Saratxaga + + * es.po: updated spanish language file + +1999-09-19 Zbigniew Chyla + + * pl.po: Updated. + +1999-09-18 Kjartan Maraas + + * no.po: Updated translation. + +1999-09-17 Kjartan Maraas + + * da.po: Updated Danish translation from Kenneth + Christiansen . + +1999-09-02 Zbigniew Chyla + + * pl.po: Added translation. + +1999-08-26 Kjartan Maraas + + * no.po: Updated translation. + +1999-08-15 Mikko Rauhala + + * fi.po: Updated. + +1999-07-27 Sergey Panov + + * ru.po: formerly ru_RU.po, updated + +1999-07-21 Vincent Renardias + + * fr.po: Completed. + +1999-07-11 Tomas Ogren + + * sv.po: Updated + +1999-06-04 Kjartan Maraas + + * en_GB.po: Added British translation from Robert Brady. + +1999-05-31 James Henstridge + + * fi.po: fixed problem with po file that Steve Luzynski mentioned + on mate-list. + +1999-05-26 Tuomas J. Lukka + + * fi.po: update + +1999-05-24 Kjartan Maraas + + * no.po: Updated translation. + +1999-05-19 Yukihiro Nakai + + * ja.po: Updated translation. + +1999-05-05 Kjartan Maraas + + * no.po: Updated translation. + +1999-05-02 Matthias Warkus + + * de.po: Minor update. + +1999-03-27 Kjartan Maraas + + * no.po: Updated. + +1998-12-20 Kjartan Maraas + + * no.po: Updated. + +1998-12-11 Tim P. Gerla + + * POTFILES.in: Added cddbslave/main.c + +1998-11-26 Tuomas J. Lukka + + * fi.po tiny addition + +1998-11-26 Tuomas J. Lukka + + * update fi.po + * cddb_status.c to POTFILES.in + +1998-11-26 Nuno Ferreira + + * pt.po: Updated. + +1998-11-17 Tuomas J. Lukka + + * Update fi.po with "normal" etc. strings from gtcd + +1998-11-17 Tuomas J. Lukka + + * fix da.po to compile + +1998-11-17 Tuomas J. Lukka + + * add fi.po + +1998-10-03 Nuno Ferreira + + * POTFILES.in: Added tcd/popup.c. + + * pt.po: Updated. + +1998-09-02 Nuno Ferreira + + * pt.po: Updated. + + * POTFILES.in: Added tcd/callbacks.c. + +1998-08-28 Tim P. Gerla + + * POTFILES.in: Changed tcd/properties.c to tcd/prefs.c, and added + tcd/tooltips.h. + +1998-08-26 Nuno Ferreira + + * POTFILES.in: Added `tcd/properties.c', `tcd/gtracked.c'. + +1998-08-18 Nuno Ferreira + + * POTFILES.in: Added `tcd/gtcd.c', `tcd/gabout.c', `tcd/gcddb.c'. + + * pt.po: Updated Portuguese translation. + +1998-08-14 Federico Mena Quintero + + * POTFILES.in: Removed gnomovision files from POTFILES.in since + they are not being distributed. + +1998-05-09 Marc Ewing + + * removed mail headers from ga.po + +Sat May 2 23:01:35 1998 Kjartan Maraas + + * no.po: New file. + +Sun, 22 Feb 1998 19:27:35 +0100 Vincent Renardias + + * fr.po: New file. + +1998-02-22 Carsten Schaar + + * de.po: New file. + +Tue Feb 17 11:01:49 KST 1998 Changwoo Ryu + + * ko.po: New file. diff --git a/po/LINGUAS b/po/LINGUAS new file mode 100644 index 0000000..126df2f --- /dev/null +++ b/po/LINGUAS @@ -0,0 +1,104 @@ +# please keep this list sorted alphabetically +af +am +ar +as +ast +az +be +bg +bn +bn_IN +br +bs +ca +ca@valencia +cmn +cs +cy +da +de +dz +el +en_AU +en_CA +en_GB +es +es_AR +es_CO +es_MX +es_PR +et +eu +fa +fi +fr +fr_CA +frp +ga +gl +gu +he +hi +hr +hu +hy +id +is +it +ja +jv +ka +kk +kn +ko +ku +ku_IQ +ky +lt +lv +mai +mg +mk +ml +mn +mr +ms +nb +nds +ne +nl +nn +oc +or +pa +pl +pms +pt +pt_BR +ro +ru +rw +sc +si +sk +sl +sq +sr +sr@latin +sv +ta +te +th +tk +tr +ug +uk +ur +uz +vi +wa +xh +zh_CN +zh_HK +zh_TW diff --git a/po/POTFILES.in b/po/POTFILES.in new file mode 100644 index 0000000..1ac9a0e --- /dev/null +++ b/po/POTFILES.in @@ -0,0 +1,6 @@ +# List of source files containing translatable strings. +# Please keep this file sorted alphabetically. +[encoding: UTF-8] +data/ukui-volume-control.desktop.in.in +data/ukui-volume-control-applet.desktop.in +ukui-volume-control-applet-qt/main.cpp diff --git a/po/POTFILES.skip b/po/POTFILES.skip new file mode 100644 index 0000000..4deed54 --- /dev/null +++ b/po/POTFILES.skip @@ -0,0 +1,9 @@ +data/ukui-volume-control.desktop.in +ukui-volume-control/ukui-volume-control-applet-qt/ukmedia_systemtray_widget.cpp +ukui-volume-control/ukui-volume-control-applet-qt/ukmedia_systemtray_widget.h +ukui-volume-control/ukui-volume-control-applet-qt/ukmedia.pro +ukui-volume-control/ukui-volume-control-applet-qt/ukmedia_application.h +ukui-volume-control/ukui-volume-control-applet-qt/ukmedia_control_widget.cpp +ukui-volume-control/ukui-volume-control-applet-qt/ukmedia_control_widget.h +ukui-volume-control/ukui-volume-control-applet-qt/ukmedia_application.cpp +ukui-volume-control/ukui-volume-control-applet-qt/main.cpp diff --git a/po/af.po b/po/af.po new file mode 100644 index 0000000..ad80a72 --- /dev/null +++ b/po/af.po @@ -0,0 +1,437 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# F Wolff , 2010 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-19 11:49+0000\n" +"Last-Translator: monsta \n" +"Language-Team: Afrikaans (http://wiki.ukui.org/trans/af/)\n" +"Language: af\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "Klank" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "Verander klankvolume en klankgebeure" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "Volumebeheer" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "Wys volumebeheer vir die werkskerm" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "Weergawe van hierdie toepassing" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr "Volumebeheer" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "Wat tans vir die klankstelsel om te reageer" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "Beginbladsy" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr "Volumebeheer" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "Toevoer" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "Afvoer" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr "Volumebeheer" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "Links" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "Regs" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "Agter" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "Voor" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "Minimum" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "Maksimum" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "_Balans:" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "Doo_f:" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "Onversterk" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "100%" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "Doof uit" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "_Profiel:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "Ver_binding:" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "Gedeaktiveer" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "%u afvoer" +msgstr[1] "%u afvoere" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "%u toevoer" +msgstr[1] "%u toevoere" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "Naam" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "Klankeffekte" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "W_aarskuwingvolume: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "_Afvoervolume: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "Hardeware" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "_Kies 'n toestel om in te stel:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "Instellings vir die gekose toestel:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "_Toevoervolume: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "Toevoervlak:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "_Kies 'n toestel vir klanktoevoer:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "_Kies 'n toestel vir klankafvoer:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "Toepassings" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "Daar is geen toepassing wat tans oudio speel of opneem nie." + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "Klankvoorkeure" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "Geen klanke" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "Ingebou" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "Pasgemaak" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "Verstek" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "Vanaf tema" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "Tipe" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "Klank_tema:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "_Kies 'n waarskuwingklank:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "Aktiveer _venster- en knoppieklanke" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "Kon nie klankvoorkeure begin nie: %s" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "_Doof uit" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "_Klankvoorkeure" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "" diff --git a/po/am.po b/po/am.po new file mode 100644 index 0000000..f1454c5 --- /dev/null +++ b/po/am.po @@ -0,0 +1,438 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Ge'ez Frontier Foundation , 2002 +# samson , 2013,2015,2017 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-19 11:49+0000\n" +"Last-Translator: monsta \n" +"Language-Team: Amharic (http://wiki.ukui.org/trans/am/)\n" +"Language: am\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "ድምፅ " + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "የድምፅ መጠን እና የድምፅ ሁኔታዎችን መቀየሪያ" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "መጠን መቆጣጠሪያ " + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "የዴስክቶፕ መጠን መቆጣጠሪያ ማሳያ " + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "የመተግበሪያው እትም " + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "debug ማስቻያ" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr " — የሜት ድምፅ መቆጣጠሪያ ክፍል" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "የ ድምፅ ስርአት ዝግጁ አይደለም" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "የድምፅ ስርአት እስኪመልስ በመጠበቅ ላይ" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "የ ድምፅ ስርአት ተተኪ ተፈጥሯል" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "ገጹን በማስጀመር ላይ" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr " — የሜት ድምፅ መቆጣጠሪያ ክፍል" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "ማስገቢያ " + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "ውጤት " + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "የማይክሮን መጠን " + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "የድምፅ ውጤት መጠን " + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr " የ ሜት ድምፅ መቆጣጠሪያ ክፍል" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "የ ግራ " + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "የ ቀኝ " + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "የ ኋላ " + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "የ ፊት " + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "አነስተኛ " + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "ከፍተኛ " + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "_እኩል:" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "_ማፍዘዣ:" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "_ሰብዉፈር:" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "ያልጎላ" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "100%" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "መቀነሻ" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "_ገጽታ:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "አገ_ናኝ:" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "ተሰናክሏል" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "%u ውጤት " +msgstr[1] "%u ውጤቶች " + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "%u ማስገቢያ " +msgstr[1] "%u ማስገቢያዎች " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "ስም " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "ስፒከር በመሞከር ላይ ለ %s" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "ስፒከር መሞከሪያ" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "የድምፅ ተጽእኖ " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "_የማስጠንቀቂያ መጠን: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "_የ ውጤት መጠን: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "ጠንካራ አካል " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "አካል ይ_ምረጡ ለማዋቀር:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "ለተመረጠው አካል ማሰናጃ:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "_የማስገቢያ መጠን: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "የማስገቢያ መጠን:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "ለ ድምጽ ማስገቢያ አካል ይ_ምረጡ:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "ለ ድምጽ ማውጫ አካል ይ_ምረጡ:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "መተግበሪያዎች " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "ምንም መተገበሪያ አይጫወትም ወይንም ድምጽ አይቀርጽም" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "የድምፅ ምርጫዎች " + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "ድምፅ የለም" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "አብሮ-የተገነባ" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "ማስተካከያ:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "የ ሁኔታዎች ድምፅ መሞከሪያ" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "ነባር " + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "ከ ገጽታ" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "አይነት" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "የ ድምፅ _ገጽታ:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "የ ማስጠንቀቂያ ድምጽ ይ_ምረጡ:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "የ _መስኮት እና ቁልፎች ድምጽ ማስቻያ" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "ማስቆሚያ" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "መሞከሪያ" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "የ ድምጽ ምርጫዎችን ማስጀመር አልተቻለም: %s" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "_መቀነሻ " + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "_የ ድምፅ ምርጫዎች" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "ያልታወቀ" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "ሞኖ" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "በ ግራ " + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "በ ቀኝ " + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "ፊት ለፊት መሀከል " + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "ዝቅተኛ ድግግሞሽ" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "ከኋላ በ ግራ " + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "ከኋላ በ ቀኝ" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "ከኋላ መሀከል" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "ፊት ለፊት በ ግራ መሀከል " + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "ፊት ለፊት በ ቀኝ መሀከል " + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "በ ግራ ጎን " + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "በ ቀኝ ጎን" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "ከ ላይ ፊት ለፊት በ ግራ " + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "ከ ላይ ፊት ለፊት በ ቀኝ" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "ከ ላይ ፊት ለፊት መሀከል" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "ከ ላይ መሀከል " + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "ከ ላይ ከኋላ በ ግራ " + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "ከ ላይ ከኋላ በ ቀኝ " + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "ከ ላይ ከኋላ መሀከል" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "ስቴሪዮ" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "ዙሪያ 4.0" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "ዙሪያ 4.1" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "ዙሪያ 5.0" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "ዙሪያ 5.1" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "ዙሪያ 7.1" diff --git a/po/ar.po b/po/ar.po new file mode 100644 index 0000000..f9f79a8 --- /dev/null +++ b/po/ar.po @@ -0,0 +1,456 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Abdulaziz Al-Arfaj , 2004 +# alibacha19 , 2015 +# Anas Afif Emad , 2002-2003 +# Djihed Afifi , 2006 +# Isam Bayazidi , 2002 +# Khaled Hosny , 2006-2010 +# , 2003 +# Mosaab Alzoubi , 2013 +# Sayed Jaffer Al-Mosawi , 2002 +# مهدي السطيفي , 2015 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-23 18:10+0000\n" +"Last-Translator: monsta \n" +"Language-Team: Arabic (http://wiki.ukui.org/trans/ar/)\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 && n%100<=99 ? 4 : 5;\n" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "الصوت" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "غيّر شدة الصوت و أصوات الأحداث" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "التحكم في حجم الصوت" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "اعرض التحكم في حجم الصوت" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "إصدار هذا التطبيق" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "فعّل التنقيح" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr " — بريمج متّة للتحكم في حجم الصوت" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "نظام الصوت غير متاح" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "ينتظر استجابة نظام الصوت" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "نظام صوت الخلفية" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "صفحة البدء" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr " — تحكم متّة في شدة الصوت" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "الإدخال" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "الإخراج" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "شدة صوت الميكروفون" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "شدة صوت الخرْج" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr "MATE الصغير للتحكم في شدة الصوت" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "اليسار" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "اليمين" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "المؤخرة" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "المقدمة" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "أدنى" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "أقصى" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "ال_توازن:" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "ال_تلاشي:" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "_مضخم الصوت:" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "غير مكبّر" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "100%" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "كتم" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "ال_طور:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "المو_صّل:" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "معطّل" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "%u مخرج" +msgstr[1] "مخرج (%u)" +msgstr[2] "مخرجان (%u)" +msgstr[3] "%u مخارج" +msgstr[4] "%u مخرجا" +msgstr[5] "%u مخرجا" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "%u مدخل" +msgstr[1] "مدخل (%u)" +msgstr[2] "مدخلان (%u)" +msgstr[3] "%u مداخل" +msgstr[4] "%u مدخلا" +msgstr[5] "%u مدخلا" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "الاسم" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "اختبار سماعات %s" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "اختبر السماعات" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "المؤثرات الصوتية" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "شدة صوت التنبي_ه:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "حجم صوت ال_إخراج:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "العتاد" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "ا_ختر جهازا لضبطه:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "إعدادات الجهاز المختار:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "حجم صوت ال_إدخال:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "مستوى الإدخال:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "اخ_تر جهازا لإدخال الصوت:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "اخ_تر جهازا لإخراج الصوت:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "التطبيقات" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "لا تطبيقات تشغل أو تسجل الصوت حاليا." + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "تفضيلات الصوت" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "لا صوت" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "مدمج" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "مخصّص" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "يختبر صوت الحدث" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "المبدئي" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "من السمة" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "النوع" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "_سمة الأصوات:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "اختر صوت تنبيه:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "فعّل أصوات ال_نوافذ والأزرار" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "أوقف" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "اختبِر" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "فشل بدء تفضيلات الصوت: %s" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "_كتم" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "_تفضيلات الصوت" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "مجهول" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "أحادي" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "المقدّمة اليسرى" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "المقدّمة اليمنى" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "المقدّمة الوسطى" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "الخلفية اليسرى" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "الخلفية اليمنى" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "الخلفية الوسطى" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "المقدّمة اليسرى للوسط" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "المقدّمة اليمنى للوسط" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "الجنب الأيسر" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "الجنب الأيمن" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "المقدّمة اليسرى العلوية" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "المقدّمة اليسرى العلوية" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "المقدّمة الوسطى العلوية" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "الوسط الأعلى" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "الخلفية اليسرى العلوية" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "الخلفية اليمنى العلوية" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "الخلفية الوسطى العلوية" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "ستيريو" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "" diff --git a/po/as.po b/po/as.po new file mode 100644 index 0000000..4580253 --- /dev/null +++ b/po/as.po @@ -0,0 +1,438 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Amitakhya Phukan , 2008 +# Amitakhya Phukan , 2009 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-19 11:49+0000\n" +"Last-Translator: monsta \n" +"Language-Team: Assamese (http://wiki.ukui.org/trans/as/)\n" +"Language: as\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "ধ্বনি " + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "শব্দৰ মাত্ৰা o নিৰ্দিষ্ট ঘটনাৰ সৈতে যুক্ত শব্দ পৰিবৰ্তন কৰক" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "শব্দৰ মাত্ৰা নিয়ন্ত্ৰণকৰ্তা" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "ডেস্কটপত শব্দৰ মাত্ৰা নিয়ন্ত্ৰণ ব্যৱস্থা প্ৰদৰ্শন কৰা হ'ব" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "এপ্লিকেশনৰ সংস্কৰণ সংখ্যা" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr "শব্দৰ মাত্ৰা নিয়ন্ত্ৰণকৰ্তা" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "শব্দৰ ব্যৱস্থাপ্ৰণালীৰ পৰা প্ৰতিক্ৰিয়া প্ৰাপ্তিৰ অপেক্ষা কৰা হচ্ছে" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "প্ৰাৰম্ভিক পৃষ্ঠা" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr "শব্দৰ মাত্ৰা নিয়ন্ত্ৰণকৰ্তা" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "নিবেশ" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "নিৰ্গম" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr "শব্দৰ মাত্ৰা নিয়ন্ত্ৰণকৰ্তা" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "বাওঁফালে" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "সোঁফালে" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "পশ্চাৎস্থিত" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "সম্মুখস্থিত" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "সৰ্বনিম্ন" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "সৰ্বোচ্চ" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "ভাৰসাম্য: (_B)" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "নিষ্প্ৰভ: (_F)" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "ছাবউফাৰ: (_S)" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "এমপ্লিফাই নকৰা" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "100%" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "নিঃশব্দ" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "প্ৰোফাইল:(_P)" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "সংযোগকৰ্তা: (_n)" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "নিষ্ক্ৰিয়" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "%u নিৰ্গম" +msgstr[1] "%u নিৰ্গম" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "%u নিবেশ" +msgstr[1] "%u নিবেশ" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "নাম" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "শব্দৰ ইফেক্ট" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "সতৰ্কবাৰ্তাৰ শব্দৰ মাত্ৰা: (_A)" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "নিৰ্গমৰ শব্দৰ মাত্ৰা: (_O)" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "হাৰ্ডৱেৰ" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "বিন্যাস কৰাৰ উদ্দেশ্যে এটা যন্ত্ৰ নিৰ্বাচন কৰক (_h)" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "নিৰ্বাচিত যন্ত্ৰেৰ বৈশিষ্ট্য:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "নিবেশৰ শব্দৰ মাত্ৰা: (_I)" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "নিবেশ স্তৰ:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "শব্দ নিবেশৰ বাবে এটা যন্ত্ৰ নিৰ্বাচন কৰক: (_h)" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "শব্দ নিৰ্গমৰ বাবে এটা যন্ত্ৰ নিৰ্বাচন কৰক: (_h)" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "অনুপ্ৰয়োগ" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "কোনো এপ্লিকেশন দ্বাৰা বৰ্তমানে অডিও বাজানো অথবা ৰেকৰ্ড কৰা হচ্ছে না।" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "শব্দ সংক্ৰান্ত পছন্দ" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "কোনো ধ্বনি নাই" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "বিল্ট-ইন" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "নিজস্ব" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "ঘটনাৰ বাবে চিহ্নিত শব্দ পৰীক্ষা কৰা হচ্ছে" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "অবিকল্পিত" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "থিমৰ পৰা" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "প্ৰকাৰ" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "শব্দৰ থিম: (_t)" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "সতৰ্কতামূলক এটা শব্দ নিৰ্বাচন কৰক: (_h)" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "উইন্ডো আৰু বুটামৰ শব্দ সক্ৰিয় কৰক (_w)" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "শব্দ সংক্ৰান্ত পছন্দেৰ মান আৰম্ভ কৰিবলৈ ব্যৰ্থ: %s" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "নিঃশব্দ: (_M)" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "শব্দ সংক্ৰান্ত পছন্দ (_S)" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "" diff --git a/po/ast.po b/po/ast.po new file mode 100644 index 0000000..38914ad --- /dev/null +++ b/po/ast.po @@ -0,0 +1,437 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Astur , 2009 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-19 11:49+0000\n" +"Last-Translator: monsta \n" +"Language-Team: Asturian (http://wiki.ukui.org/trans/ast/)\n" +"Language: ast\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "Soníu" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "Camudar el volume del soníu y los eventos de soníu" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "Control de Volume" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "Amosar el control de volume de l'escritoriu" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "Versión d'esta aplicación" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr "Control de Volume" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "Esperando respuesta del sistema de soníu" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "Páxina d'aniciu" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr "Control de Volume" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "Entrada" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "Salida" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr "Control de Volume" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "Esquierda" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "Drecha" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "Traseru" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "Frente" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "Mínimu" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "Máximu" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "_Balance:" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "_Esvanecimientu:" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "_Subwoofer:" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "Ensin amplificar" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "100%" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "Silenciar" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "_Perfil:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "Co_neutor:" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "Desactiváu" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "%u salida" +msgstr[1] "%u salides" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "%u entrada" +msgstr[1] "%u entraes" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "Nome" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "Efeutos de soníu" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "Volume d'_alerta: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "Volume de sali_da: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "Hardware" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "_Esbillar un preséu pa configurar:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "Axustes pal preséu seleicionáu:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "Volume d'_entrada: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "Nivel d'entrada:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "_Esbillar un preséu pa la entrada de soníu" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "_Esbillar un preséu pa la salida de soníu" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "Aplicaciones" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "Denguna aplicación ta reproduciendo o grabando soníu anguaño." + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "Preferencies de soníu" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "Ensin soníos" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "Internu" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "Personalizáu" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "Comprobando'l soníu d'eventu" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "Predetermináu" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "Del tema" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "Triba" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "_Tema de soníu:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "_Esbillar un soníu d'alerta:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "Activar soníos de _ventanes y botones" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "Falló entamar Preferencies de Soníu: %s" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "_Silenciu" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "_Preferencies de Soníu" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "" diff --git a/po/az.po b/po/az.po new file mode 100644 index 0000000..e37ba0b --- /dev/null +++ b/po/az.po @@ -0,0 +1,438 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Mətin Əmirov , 2004 +# Vasif Ismailoglu MD , 2000 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-19 11:49+0000\n" +"Last-Translator: monsta \n" +"Language-Team: Azerbaijani (http://wiki.ukui.org/trans/az/)\n" +"Language: az\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "Səs İdarəsi" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr "Səs İdarəsi" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr "Səs İdarəsi" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr "Səs İdarəsi" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "" +msgstr[1] "" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "" +msgstr[1] "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "Xüsusi" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "Dayan" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "" diff --git a/po/be.po b/po/be.po new file mode 100644 index 0000000..f0a7507 --- /dev/null +++ b/po/be.po @@ -0,0 +1,447 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# nab , 2004 +# nab , 2004 +# Ihar Hrachyshka , 2006 +# nab , 2004 +# Vital Khilko , 2003,2014-2015 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-19 11:49+0000\n" +"Last-Translator: monsta \n" +"Language-Team: Belarusian (http://wiki.ukui.org/trans/be/)\n" +"Language: be\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%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n" +"%100>=11 && n%100<=14)? 2 : 3);\n" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "Гук" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "Кіраваць гучнасцю сістэмы і гукавымі падзеямі" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "Кіраванне гукам" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "Паказваць кіраўнік гучнасцю на стале" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "Версія гэтай праграмы" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "Уключыць наладку" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr " — Аплет кіравання гукам MATE" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "Гукавая сістэма недаступна" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "Чакаем, пакуль гукавая сістэма адкажа" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "Бэкэнд гукавой сістэмы" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "Пачатковая старонка" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr " — Кіраўнік гуку асяроддзя MATE" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "Уваход" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "Выхад" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "Гучнасць мікрафона" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "Гучнасць выходнага гуку" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr "Аплет кіравання гукам MATE" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "Левы" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "Правы" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "Задні" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "Пярэдні" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "Мінімум" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "Максімум" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "_Баланс:" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "_Знікненне:" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "_Сабвуфер:" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "Няўзмоцнены" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "100%" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "Сцішыць" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "_Профіль:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "Ка_нэктар:" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "Адключаны" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "%u выхад" +msgstr[1] "%u выхады" +msgstr[2] "%u выхадаў" +msgstr[3] "%u выхадаў" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "%u уваход" +msgstr[1] "%u уваходы" +msgstr[2] "%u уваходаў" +msgstr[3] "%u уваходаў" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "Назва" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "Праверка калонак для %s" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "Праверыць калонкі" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "Гукавыя эфекты" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "_Гучнасць паведамлення:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "_Выходная гучнасць:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "Апаратура" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "В_ылучыце прыладу для настáўлення:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "Настáўленні вылучанай прылады:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "_Уваходная гучнасць: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "Уваходны ўзровень:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "Ад_значце прыладу для ўваходнага гуку:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "Ад_значце прыладу для выходнага гуку:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "Праграмы" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "Ніводная праграма цяпер не грае і не піша гук." + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "Настáўленні гуку" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "Бязгучна" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "Убудаваны" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "Адмысловы" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "Праверка гуку падзеі" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "Стандартны" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "З тэмы" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "Тып" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "Гукавая _тэма:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "А_бярыце гук паведамленняў:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "Уключыць гукі _вокнаў і кнопак" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "Спыніць" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "Праверка" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "Не выйшла запусціць настáўленні гуку: %s" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "_Сцішыць" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "_Настáўленні гуку" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "Невядомы" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "Мона" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "Пярэдні левы" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "Пярэдні правы" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "Пярэдні цэнтральны" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "Н/Ч" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "Задні левы" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "Задні правы" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "Задні цэнтральны" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "Пярэдні левы цэнтральнага" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "Пярэдні правы цэнтральнага" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "Баковы левы" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "Баковы правы" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "Верхні пярэдні левы" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "Верхні пярэдні правы" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "Верхні пярэдні цэнтральны" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "Верхні цэнтральны" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "Верхні задні левы" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "Верхні задні правы" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "Верхні задні цэнтральны" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "Стэрэа" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "Surround 4.0" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "Surround 4.1" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "Surround 5.0" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "Surround 5.1" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "Surround 7.1" diff --git a/po/bg.po b/po/bg.po new file mode 100644 index 0000000..46c3850 --- /dev/null +++ b/po/bg.po @@ -0,0 +1,445 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Alexander Shopov , 2005, 2008, 2009, 2010 +# Evgeni Boevski , 2002, 2003 +# Georgi Georgiev , 2015 +# Philip Dimitrov , 2005 +# Rostislav Raykov , 2004 +# Vladimir "Kaladan" Petkov , 2004 +# Yanko Kaneti , 2003 +# Yavor Doganov , 2007 +# Любомир Василев, 2016-2017 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-19 11:49+0000\n" +"Last-Translator: Любомир Василев\n" +"Language-Team: Bulgarian (http://wiki.ukui.org/trans/bg/)\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "Звук" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "Промяна на силата на звука и звуците свързани със събития" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "Сила на звука" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "Показване на управлението на звука" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "Версия на тази програма" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "Включване на изчистването на грешки" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr "— аплет на MATE за силата на звука" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "Звуковата система не е достъпна" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "Изчакване на отговор от аудио подсистемата" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "Бекенд на звуковата система" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "Начална страница" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr "— сила на звука на MATE" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "Вход" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "Изход" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "Сила на микрофона" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "Сила на изхода" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr "Аплет на MATE за силата на звука" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "Ляво" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "Дясно" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "Отзад" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "Отпред" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "Минимум" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "Максимум" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "_Баланс:" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "_Затихване:" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "_Бас:" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "Без усилване" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "100 %" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "Заглушаване" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "Про_фил:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "_Конектор:" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "Изключен" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "%u изход" +msgstr[1] "%u изхода" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "%u вход" +msgstr[1] "%u входа" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "Име" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "Тестване на високоговорителите към %s" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "Тестване на високоговорителите" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "Аудио ефекти" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "Сила на _известяването:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "Сила на _изхода:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "Хардуер" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "_Избор на устройството за настройване:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "Настройки на избраното устройство:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "Сила на _входа:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "Ниво на входа:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "_Избор на входно аудио устройство:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "_Избор на изходно аудио устройство:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "Програми" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "В момента никоя програма не записва и не възпроизвежда звук" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "Настройки на звука" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "Без звуци" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "Вградена" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "Потребителска" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "Проба на звука за събитие" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "По подразбиране" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "От тема" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "Вид" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "_Тема от звуци:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "_Избор на звук за известяване:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "_Включване на звуците за прозорци и бутони" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "Спиране" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "Тест" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "Настройките на звука не могат да бъдат стартирани: %s" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "_Заглушаване" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "_Настройки на звука" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "Заглушено на" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "Неизвестно" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "Моно" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "Отпред — ляво" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "Отпред — дясно" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "Отпред — среда" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "НЧЕ (LFE)" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "Отзад — ляво" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "Отзад — дясно" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "Отзад — среда" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "Отпред — ляво или среда" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "Отпред — дясно или среда" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "Отстрани — ляво" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "Отстрани — дясно" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "Отгоре и отпред — ляво" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "Отгоре и отпред — дясно" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "Отгоре и отпред — среда" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "Отгоре — среда" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "Отгоре и отзад — ляво" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "Отгоре и отзад — дясно" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "Отгоре и отзад — среда" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "Стерео" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "Обемен звук 4.0" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "Обемен звук 4.1" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "Обемен звук 5.0" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "Обемен звук 5.1" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "Обемен звук 7.1" diff --git a/po/bn.po b/po/bn.po new file mode 100644 index 0000000..1540f26 --- /dev/null +++ b/po/bn.po @@ -0,0 +1,437 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Sadia Afroz , 2010 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-19 11:49+0000\n" +"Last-Translator: monsta \n" +"Language-Team: Bengali (http://wiki.ukui.org/trans/bn/)\n" +"Language: bn\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "শব্দ" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "ভলিউম পরিবর্তন করুন ও নির্দিষ্ট ঘটনার সাথে শব্দ যুক্ত করুন" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "ভলিউম নিয়ন্ত্রণ" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "ডেস্কটপের মধ্যে ভলিউম নিয়ন্ত্রণ ব্যবস্থা প্রদর্শন করা হবে" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "এই অ্যাপ্লিকেশনের সংস্করণ" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr "ভলিউম নিয়ন্ত্রণ" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "শব্দের সিস্টেম থেকে প্রতিক্রিয়া প্রাপ্তির অপেক্ষা করা হচ্ছে" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "প্রারম্ভিক পৃষ্ঠা" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr "ভলিউম নিয়ন্ত্রণ" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "ইনপুট" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "আউটপুট" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr "ভলিউম নিয়ন্ত্রণ" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "বামদিকে" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "ডানদিকে" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "পেছনের অংশ" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "সামনে" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "সর্বনিম্ন" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "সর্বোচ্চ" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "ভারসাম্য: (_B)" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "ফেইড (_F):" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "সাবউফার (_S):" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "অ্যাম্পলিফাই করা হবেনা" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "১০০%" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "নিঃশব্দ" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "প্রোফাইল: (_P)" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "সংযোগকারী: (_n)" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "নিষ্ক্রিয়" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "%u আউটপুট" +msgstr[1] "%u আউটপুট" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "%u ইনপুট" +msgstr[1] "%u ইনপুট" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "নাম" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "শব্দের ইফেক্ট" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "সতর্কবার্তার ভলিউম: (_A)" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "আউটপুট ভলিউম: (_O)" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "হার্ডওয়্যার" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "কনফিগার করার জন্য একটি ডিভাইস নির্বাচন করুন: (_h)" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "নির্বাচিত ডিভাইসের বৈশিষ্ট্য:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "ইনপুট ভলিউম: (_I)" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "ইনপুটের মাত্রা:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "শব্দের ইনপুটের জন্য একটি ডিভাইস নির্বাচন করুন: (_h)" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "শব্দের আউটপুটের জন্য একটি ডিভাইস নির্বাচন করুন: (_h)" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "অ্যাপ্লিকেশন" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "কোনো অ্যাপ্লিকেশন দ্বারা বর্তমানে অডিও বাজানো অথবা রেকর্ড করা হচ্ছে না।" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "শব্দ সংক্রান্ত পছন্দ" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "শব্দবিহীন" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "বিল্ট-ইন" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "স্বনির্ধারিত" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "ঘটনার জন্য চিহ্নিত শব্দ পরীক্ষা করা হচ্ছে" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "ডিফল্ট" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "থিম থেকে প্রাপ্ত" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "ধরন" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "শব্দের থিম: (_t)" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "সতর্কবার্তার জন্য একটি শব্দ নির্বাচন করুন: (_h)" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "উইন্ডো ও বোতামের শব্দগুলো সক্রিয় করুন (_w)" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "শব্দ সংক্রান্ত পছন্দের মান আরম্ভ করতে ব্যর্থ: %s" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "নিঃশব্দ (_M):" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "শব্দ সংক্রান্ত পছন্দ (_S)" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "" diff --git a/po/bn_IN.po b/po/bn_IN.po new file mode 100644 index 0000000..4150851 --- /dev/null +++ b/po/bn_IN.po @@ -0,0 +1,441 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Progga , 2005 +# Runa Bhattacharjee , 2003 +# runa , 2006 +# runab , 2008, 2009, 2010 +# Sayamindu Dasgupta , 2003 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-19 11:49+0000\n" +"Last-Translator: monsta \n" +"Language-Team: Bengali (India) (http://wiki.ukui.org/trans/bn_IN/)\n" +"Language: bn_IN\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "শব্দ" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "শব্দের মাত্রা o নির্দিষ্ট ঘটনার সাথে যুক্ত শব্দ পরিবর্তন করুন" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "শব্দের মাত্রা নিয়ন্ত্রণকারী" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "ডেস্কটপের মধ্যে শব্দের মাত্রা নিয়ন্ত্রণ ব্যবস্থা প্রদর্শন করা হবে" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "অ্যাপ্লিকেশনের সংস্করণ" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr "শব্দের মাত্রা নিয়ন্ত্রণকারী" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "শব্দের সিস্টেম থেকে প্রতিক্রিয়া প্রাপ্তির অপেক্ষা করা হচ্ছে" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "প্রারম্ভিক পৃষ্ঠা" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr "শব্দের মাত্রা নিয়ন্ত্রণকারী" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "ইনপুট" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "আউটপুট" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr "শব্দের মাত্রা নিয়ন্ত্রণকারী" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "বাঁদিকে" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "ডানদিকে" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "পশ্চাৎস্থিত" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "সম্মুখস্থিত" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "সর্বনিম্ন" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "সর্বোচ্চ" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "ভারসাম্য: (_B)" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "নিষ্প্রভ: (_F)" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "সাব-উফার: (_S)" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "অ্যামপ্লফাই না করা" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "১০০%" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "নিঃশব্দ" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "প্রোফাইল: (_P)" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "সংযোগকারী: (_n)" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "নিষ্ক্রিয়" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "%u-টি আউটপুট" +msgstr[1] "%u-টি আউটপুট" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "%u-টি ইনপুট" +msgstr[1] "%u-টি ইনপুট" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "নাম" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "শব্দের ইফেক্ট" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "সতর্কবার্তার শব্দের মাত্রা: (_A)" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "আউটপুটের শব্দের মাত্রা: (_O)" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "হার্ডওয়্যার" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "কনফিগার করার উদ্দেশ্যে একটি ডিভাইস নির্বাচন করুন (_h)" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "নির্বাচিত ডিভাইসের বৈশিষ্ট্য:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "ইনপুটের শব্দের মাত্রা: (_I)" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "ইনপুটের মাত্রা:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "শব্দ ইনপুটের জন্য একটি ডিভাইস নির্বাচন করুন: (_h)" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "শব্দ আউটপুটের জন্য একটি ডিভাইস নির্বাচন করুন: (_h)" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "অ্যাপ্লিকেশন" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "কোনো অ্যাপ্লিকেশন দ্বারা বর্তমানে অডিও বাজানো অথবা রেকর্ড করা হচ্ছে না।" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "শব্দ সংক্রান্ত পছন্দ" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "শব্দবিহীন" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "বিল্ট-ইন" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "স্বনির্ধারিত" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "ঘটনার জন্য চিহ্নিত শব্দ পরীক্ষা করা হচ্ছে" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "ডিফল্ট" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "থিম থেকে প্রাপ্ত" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "ধরন" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "শব্দের থিম: (_t)" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "সতর্কতামূলক একটি শব্দ নির্বাচন করুন: (_h)" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "উইন্ডো ও বাটনের শব্দ সক্রিয় করুন (_w)" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "শব্দ সংক্রান্ত পছন্দের মান আরম্ভ করতে ব্যর্থ: %s" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "নিঃশব্দ: (_M)" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "শব্দ সংক্রান্ত পছন্দ (_S)" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "" diff --git a/po/br.po b/po/br.po new file mode 100644 index 0000000..007961f --- /dev/null +++ b/po/br.po @@ -0,0 +1,438 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Alan Monfort , 2016 +# Jérémy Ar Floc'h , 2006 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-19 11:49+0000\n" +"Last-Translator: monsta \n" +"Language-Team: Breton (http://wiki.ukui.org/trans/br/)\n" +"Language: 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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "Son" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "Kemmañ tregern ar son ha sonioù ar degouezhioù" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "Reoliñ an dregern" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "Diskouez reolererezh tregern ar burev" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "Handelv an arload-mañ" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "Gweredekaat an diveugañ" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr "— Ardoadig MATE da reoliañ an dregern" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "An trevnad evit ar son n'eo ket hegerz" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "Emañ c'hortoz respont an trevnad son" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "Trevnad son kein" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "Pajennad loc'hañ" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr "— Reolerezh tregern MATE" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "Enankad" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "Ec'hankad" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "Tregern ar glevell" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "Tregern ec'hankad ar son" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr "Arloadig MATE da reoliañ an dregern" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "Kleiz" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "Dehou" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "A-dreñv" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "A-dal" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "Izek" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "Uc'hek" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "_Kempouez :" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "_Blinaat :" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "_Eil uhel-gomzer boud :" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "Disamplaet" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "100%" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "Mut" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "_Aelad :" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "Ke_nnasker :" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "Diweredekaet" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "%u ec'hankad :" +msgstr[1] "%u ec'hankad :" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "%u enankad :" +msgstr[1] "%u enankad :" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "Anv" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "Prouadur an uhel-gomzer evit %s" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "Prouadiñ an uhel-gomzerioù" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "Efedoù son" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "Tregern ar _galv-diwall :" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "Tregern an e_c'hankad :" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "Periant" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "Dibab un drobarz_hell da gefluniañ :" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "Arventennoù evit an drobarzhell diuzet :" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "Tregern an _enankad :" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "Live an Enankad :" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "Dibab un drobarz_hell da enankañ sonioù :" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "Dibab un drobarz_hell da ec'hankañ sonioù :" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "Arloadoù" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "N'eus arload ebet o lenn pe oc'h enrollañ aodio." + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "Gwellvezioù ar son" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "Son ebet" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "Enkorfet" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "Personelaet" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "Prouadur sonioù an degouezhioù" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "Dre ziouer" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "Diouzh an neuz" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "Rizh" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "_Dodenn ar son :" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "Dibab son ar _galv-diwall :" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "Gweredekaat sonioù an afelloù hag ar prenestroù" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "Arsaviñ" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "Prouadiñ" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "C'hwitadenn war loc'hañ Gwellvezioù ar son : %s" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "_Mut" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "Gwellvezioù ar _son" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "Dianav" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "Mono" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "Tal a-gleiz" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "Tal a-zehou" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "Tal e-kreiz" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "LFE" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "A-dreñv a-gleiz" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "A-dreñv -zehou" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "A-dreñv e-kreiz" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "Tal a-gleiz ar c'hreiz" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "Tal a-zehou ar c'hreiz" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "Tu a-gleiz" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "Tu a-zehou" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "Lein an tal a-gleiz" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "Lein an tal a-zehou" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "Lein an tal e-kreiz" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "Lein e-kreiz" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "Lein a-dreñv a-gleiz" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "Lein a-dreñv a-zehou" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "Lein a-dreñv e-kreiz" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "Stereo" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "Surround 4.0" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "Surround 4.1" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "Surround 5.0" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "Surround 5.1" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "Surround 7.1" diff --git a/po/bs.po b/po/bs.po new file mode 100644 index 0000000..f72e019 --- /dev/null +++ b/po/bs.po @@ -0,0 +1,441 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Mehemed Sacirovic , 2004 +# Sky Lion , 2016 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-19 11:49+0000\n" +"Last-Translator: monsta \n" +"Language-Team: Bosnian (http://wiki.ukui.org/trans/bs/)\n" +"Language: bs\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "Zvuk" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "Kontrola zvuka" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr "Kontrola zvuka" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr "Kontrola zvuka" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr "Kontrola zvuka" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "Lijevo" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "Desno" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "Minimum" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "Maksimum" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "100%" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "_Profil:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "Onemogućeno" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "Naziv" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "Testiraj Zvučnike" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "Hardver" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "Prilagođeno" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "Stop" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "" diff --git a/po/ca.po b/po/ca.po new file mode 100644 index 0000000..f9b48c6 --- /dev/null +++ b/po/ca.po @@ -0,0 +1,444 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Antoni Lacasta i Sulla , 2002 +# jodufi , 2009, 2010 +# Jordi Mallach , 2002, 2003, 2004, 2005, 2006, 2007 +# Josep Puigdemont , 2007 +# Pere O. , 2012-2013 +# Robert Antoni Buj Gelonch , 2017 +# Robert Antoni Buj Gelonch , 2015-2016 +# Softcatalà , 2000 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-19 11:49+0000\n" +"Last-Translator: Robert Antoni Buj Gelonch \n" +"Language-Team: Catalan (http://wiki.ukui.org/trans/ca/)\n" +"Language: ca\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "So" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "Canvieu el volum del so i els sons dels esdeveniments" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "Control del volum" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "Mostra el control del volum de l'escriptori" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "Versió d'aquesta aplicació" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "Habilita la depuració" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr " Miniaplicació del control de volum de MATE" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "El sistema de so no està disponible" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "S'està esperant que el sistema de so respongui" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "Programari especialitzat del sistema de so" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "Pàgina inicial" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr "Control de volum de MATE" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "Entrada" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "Sortida" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "Volum del micròfon" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "Volum de sortida" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr "Miniaplicació del control de volum de MATE" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "Esquerre" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "Dret" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "Posterior" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "Frontal" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "Mínim" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "Màxim" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "_Balanç:" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "_Esvair:" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "_Altaveu de greus:" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "Sense amplificar" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "100%" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "Silenci" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "_Perfil:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "Co_nnector:" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "Inhabilitat" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "%u sortida" +msgstr[1] "%u sortides" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "%u entrada" +msgstr[1] "%u entrades" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "Nom" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "Prova d'altaveus per a %s" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "Prova els altaveus" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "Efectes de so" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "Volum d'_alerta: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "_Volum de sortida: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "Maquinari" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "Seleccioneu un _dispositiu per configurar-lo:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "Ajusts per al dispositiu seleccionat:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "_Volum d'entrada: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "Nivell d'entrada:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "_Seleccioneu un dispositiu per a l'entrada de so:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "S_eleccioneu un dispositiu per a la sortida de so:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "Aplicacions" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "No hi ha cap aplicació que estigui reproduint o enregistrant àudio." + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "Preferències de so" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "Sense sons" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "Integrat" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "Personalitzat" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "Prova d'esdeveniment de so" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "Predeterminat" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "Del tema" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "Tipus" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "_Tema de sons:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "_Trieu un so d'alerta:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "Habilita els sons de les _finestres i dels botons" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "Atura" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "Prova" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "No s'han pogut iniciar les preferències del so: %s" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "_Silenci" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "Preferències del _so" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "Silenciat a" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "Desconegut" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "Mono" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "Frontal esquerre" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "Frontal dret" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "Frontal centre" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "LFE" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "Posterior esquerre" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "posterior dret" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "Posterior centre" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "Frontal esquerre del centre" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "Frontal dret del centre" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "Costat esquerre" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "costat dret" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "Frontal esquerre superior" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "Frontal dret superior" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "Frontal esquerre centre" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "Superior centre" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "Superior posterior esquerre" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "Superior posterior dret" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "Superior posterior centre" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "Estèreo" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "Envoltant 4.0" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "Envoltant 4.1" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "Envoltant 5.0" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "Envoltant 5.1" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "Envoltant 7.1" diff --git a/po/ca@valencia.po b/po/ca@valencia.po new file mode 100644 index 0000000..10c745c --- /dev/null +++ b/po/ca@valencia.po @@ -0,0 +1,445 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Antoni Lacasta i Sulla , 2002 +# jodufi , 2009, 2010 +# jodufi , 2009-2010 +# Jordi Mallach , 2002-2007 +# Josep Puigdemont , 2007 +# Josep Puigdemont , 2007 +# Pilar Embid Giner , 2016 +# Softcatalà , 2000 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-19 11:49+0000\n" +"Last-Translator: monsta \n" +"Language-Team: Catalan (Valencian) (http://wiki.ukui.org/trans/ca" +"%40valencia/)\n" +"Language: ca@valencia\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "So" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "Canvieu el volum del so i els sons dels esdeveniments" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "Control del volum" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "Mostra el control del volum de l'escriptori" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "Versió d'aquesta aplicació" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "Habilita la depuració" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr " Miniaplicació del control de volum del MATE" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "El sistema de so no està disponible" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "S'està esperant que el sistema de so responga" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "Programari especialitzat del sistema de so" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "Pàgina inicial" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr "Control de volum del MATE" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "Entrada" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "Eixida" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "Volum del micròfon" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "Volum d'eixida" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr "Miniaplicació del control de volum del MATE" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "Esquerre" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "Dret" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "Posterior" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "Frontal" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "Mínim" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "Màxim" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "_Balanç:" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "_Esvaïment:" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "_Altaveu de greus:" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "Sense amplificar" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "100%" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "Silenci" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "_Perfil:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "Co_nnector:" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "Inhabilitat" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "%u eixida" +msgstr[1] "%u eixides" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "%u entrada" +msgstr[1] "%u entrades" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "Nom" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "Prova d'altaveus per a %s" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "Prova els altaveus" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "Efectes de so" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "Volum d'_avís: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "_Volum d'eixida: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "Maquinari" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "Seleccioneu un _dispositiu per a configurar-lo:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "Paràmetres per al dispositiu seleccionat:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "_Volum d'entrada: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "Nivell d'entrada:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "_Seleccioneu un dispositiu per a l'entrada de so:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "S_eleccioneu un dispositiu per a l'eixida de so:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "Aplicacions" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "No hi ha cap aplicació que estiga reproduint o gravant àudio." + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "Preferències de so" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "Sense sons" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "Integrat" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "Personalitzat" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "Prova d'esdeveniment de so" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "Predeterminat" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "Del tema" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "Tipus" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "_Tema de sons:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "_Trieu un so d'avís:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "Habilita els sons de les _finestres i dels botons" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "Para" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "Prova" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "No s'han pogut iniciar les preferències del so: %s" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "_Silenci" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "Preferències del _so" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "Desconegut" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "Mono" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "Frontal esquerre" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "Frontal dret" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "Frontal centre" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "LFE" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "Posterior esquerre" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "posterior dret" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "Posterior centre" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "Frontal esquerre del centre" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "Frontal dret del centre" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "Costat esquerre" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "costat dret" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "Frontal esquerre superior" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "Frontal dret superior" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "Frontal centre superior" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "Superior centre" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "Posterior esquerre superior" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "Posterior dret superior" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "Posterior centre superior" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "Estèreo" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "Envoltant 4.0" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "Envoltant 4.1" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "Envoltant 5.0" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "Envoltant 5.1" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "Envoltant 7.1" diff --git a/po/cmn.po b/po/cmn.po new file mode 100644 index 0000000..7bd3e77 --- /dev/null +++ b/po/cmn.po @@ -0,0 +1,437 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Chao-Hsiung Liao , 2008 +# Fernando , 1999 +# 趙惟倫 , 2012-2013 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-19 17:25+0000\n" +"Last-Translator: monsta \n" +"Language-Team: Chinese (Mandarin) (http://wiki.ukui.org/trans/cmn/)\n" +"Language: cmn\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "聲音" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "改變音效的音量和音效事件" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "音量控制" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "顯示桌面音量控制" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "這個程式的版本" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr " — MATE 音量控制面板程式" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "正在等候音效系統回應" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "啟始頁面" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr " — MATE 音量控制" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "輸入" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "輸出" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "麥克風音量" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "音效輸出音量" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr " — MATE 音量控制面板程式" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "左" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "右" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "後" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "前" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "最小值" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "最大值" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "平衡(_B):" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "淡化(_F):" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "重低音(_S):" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "未經放大" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "100%" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "靜音" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "側寫檔(_P):" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "連接器(_N):" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "已停用" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "%u 輸出" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "%u 輸入" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "名稱" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "%s 的喇叭測試" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "測試喇叭" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "聲音效果" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "警示音量(_A):" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "輸出音量(_O):" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "硬體" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "選擇要設定的裝置(_H):" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "已選取裝置的設定值:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "輸入音量(_I):" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "輸入等級:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "選擇聲音輸入的裝置(_H):" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "選擇聲音輸出的裝置(_H):" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "應用程式" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "沒有應用程式目前正在播放或錄製音效。" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "音效偏好設定" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "不使用音效" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "內建" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "自訂" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "測試事件音效" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "預設值" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "從主題" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "類型" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "音效主題(_T):" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "選擇警示音效(_H):" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "啟用視窗與按鈕音效(_W)" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "停止" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "測試" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "啟動音效偏好設定失敗:%s" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "靜音(_M)" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "音效偏好設定(_S)" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "" diff --git a/po/cs.po b/po/cs.po new file mode 100644 index 0000000..59a2722 --- /dev/null +++ b/po/cs.po @@ -0,0 +1,451 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# huskyviking , 2014 +# huskyviking , 2014 +# Lukas Novotny , 2006 +# Martin Kříž , 2016 +# Michal Bukovjan , 2002 +# Miloslav Trmač , 2003, 2004, 2005, 2006 +# Miloslav Trmač , 2003-2006 +# Petr Kovar , 2007, 2008, 2009, 2010 +# Petr Kovar , 2007-2010 +# Petr Tomeš , 2006 +# Stanislav Brabec , 2000-2001 +# Stanislav Kučera , 2015 +# Stanislav Kučera , 2015 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-19 11:49+0000\n" +"Last-Translator: ToMáš Marný\n" +"Language-Team: Czech (http://wiki.ukui.org/trans/cs/)\n" +"Language: cs\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "Zvuk" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "Změní hlasitost zvuku a přiřadí zvuky k událostem" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "Ovládání hlasitosti" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "Zobrazí ovládání hlasitosti pracovního prostředí" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "Verze této aplikace" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "Zapnout ladění" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr " – applet ovládání hlasitosti MATE" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "Zvukový systém není dostupný" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "Čekání na odpověď zvukového systému" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "Backend zvukového systému" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "Spouštěcí stránka" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr " – ovládání hlasitosti MATE" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "Vstup" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "Výstup" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "Hlasitost mikrofonu" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "Výstupní hlasitost zvuku" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr "Zvukový řídící applet MATE" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "Levý" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "Pravý" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "Zadní" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "Přední" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "Minimum" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "Maximum" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "_Vyvážení:" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "_Prolínání:" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "_Subwoofer:" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "Nezesílené" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "100%" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "Ztlumit" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "_Profil:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "Ko_nektor:" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "Zakázáno" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "%u výstup" +msgstr[1] "%u výstupy" +msgstr[2] "%u výstupů" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "%u vstup" +msgstr[1] "%u vstupy" +msgstr[2] "%u vstupů" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "Název" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "Testování reproduktorů %s" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "Otestovat reproduktory" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "Zvukové efekty" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "Hl_asitost upozornění: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "_Výstupní hlasitost: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "Hardware" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "Zařízení nastavíte je_ho vybráním:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "Nastavení vybraného zařízení:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "Vstupní hlas_itost: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "Vstupní úroveň:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "V_yberte zařízení zvukového vstupu:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "V_yberte zařízení zvukového výstupu:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "Aplikace" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "Žádná aplikace aktuálně nepřehrává nebo nezaznamenává zvuk." + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "Předvolby zvuku" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "Bez zvuků" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "Zabudované" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "Vlastní" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "Testují se zvuky událostí" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "Výchozí" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "Z motivu" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "Typ" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "Mo_tiv zvuku:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "V_yberte zvuk upozornění:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "P_ovolit zvuky oken a tlačítek" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "Zastavit" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "Otestovat" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "Nezdařilo se spustit předvolby zvuku: %s" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "Z_tlumit" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "Př_edvolby zvuku" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "Ztlumeno při" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "Neznámý" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "Mono" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "přední levý" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "pravý přední" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "přední střední" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "LFE, subwoofer" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "zadní levý" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "zadní pravý" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "zadní střední" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "přední levý nebo prostřední" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "přední pravý nebo prostřední" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "Postranní levý" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "Postranní pravý" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "Hlavní přední vlevo" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "Hlavní přední vpravo" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "Hlavní přední uprostřed" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "Hlavní střed" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "Hlavní zadní vlevo" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "Hlavní zadní vpravo" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "Hlavní zadní uprostřed" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "Stereo" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "Surround 4.0" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "Surround 4.1" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "Surround 5.0" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "Surround 5.1" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "Surround 7.1" diff --git a/po/cy.po b/po/cy.po new file mode 100644 index 0000000..fab9380 --- /dev/null +++ b/po/cy.po @@ -0,0 +1,448 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# ciaran, 2015 +# Dafydd Harries , 2003 +# Dafydd Jones, 2003 +# KGyfieithu , 2003 +# Owain Green, 2003 +# Steve Griffiths, 2003 +# www.kyfieithu.co.uk , 2003 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-19 11:49+0000\n" +"Last-Translator: monsta \n" +"Language-Team: Welsh (http://wiki.ukui.org/trans/cy/)\n" +"Language: cy\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==1) ? 0 : (n==2) ? 1 : (n != 8 && n != " +"11) ? 2 : 3;\n" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "Sain" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "Rheolydd y sain" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "Dangos rheolydd y sain yn y bwrdd gwaith" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr "Rheolydd y sain" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr "Rheolydd y sain" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "Mewnbwn" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "Allbwn" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr "Rheolydd y sain" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "Chwith" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "Dde" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "Cefn" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "Blaen" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "Isaf" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "Uchaf" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "100%" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "Analluogwyd" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "Enw" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "Caledwedd" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "Addasedig" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "Rhagosodiad" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "Math" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "Atal" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "Profi" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "Anhysbys" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "Unsain" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "blaen chwith" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "blaen dde" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "Blaen canol" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "LFE" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "cefn chwith" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "cefn de" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "Cefn canol" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "Stereo" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "Sain amgylchynol 4.0" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "Sain amgylchynol 4.1" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "Sain amgylchynol 5.0" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "Sain amgylchynol 5.1" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "Sain amgylchynol 7.1" diff --git a/po/da.po b/po/da.po new file mode 100644 index 0000000..13fe946 --- /dev/null +++ b/po/da.po @@ -0,0 +1,439 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# askhl , 2010 +# Joe Hansen , 2014-2017 +# Peter Bach , 2007 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-19 11:49+0000\n" +"Last-Translator: Joe Hansen \n" +"Language-Team: Danish (http://wiki.ukui.org/trans/da/)\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "Lyd" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "Skift lydstyrke og lydbegivenheder" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "Lydstyrkekontrol" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "Vis lydstyrkekontrol til skrivebordet" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "Versionen af dette program" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "Aktiver fejlsøgning" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr " — MATE-panelprogram til lydstyrkekontrol" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "Lydsystem er ikke tilgængeligt" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "Venter på svar fra lydsystemet" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "Motor for lydsystem" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "Opstartsside" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr " — Lydstyrkekontrol til MATE" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "Input" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "Output" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "Lydstyrke for mikrofon" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "Afspilningslydstyrke" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr "MATE-panelprogram til lydstyrkekontrol" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "Venstre" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "Højre" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "Bagved" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "Foran" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "Minimum" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "Maksimum" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "_Balance:" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "_Dæmp:" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "_Subwoofer:" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "Uforstærket" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "100%" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "Stilhed" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "_Profil:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "Ko_nnektor:" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "Deaktiveret" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "%u output" +msgstr[1] "%u output" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "%u input" +msgstr[1] "%u input" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "Navn" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "Højttalertest for %s" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "Afprøv højttalere" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "Lydeffekter" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "_Påmindelseslydstyrke: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "_Afspilningslydstyrke: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "Hardware" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "_Vælg en enhed at konfigurere:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "Indstillinger for den valgte enhed:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "_Optagelydstyrke: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "Inputniveau:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "_Vælg en enhed til lydinput:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "_Vælg en enhed til lydoutput:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "Programmer" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "Intet program afspiller eller optager i øjeblikket lyd." + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "Lydindstillinger" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "Ingen lyde" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "Indbygget" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "Brugerdefineret" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "Afprøver begivenhedslyd" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "Standard" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "Fra tema" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "Type" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "Lyd_tema:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "_Vælg en påmindelseslyd:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "Aktiver lyde for _vinduer og knapper" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "Stop" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "Test" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "Kunne ikke starte lydindstillinger: %s" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "_Stilhed" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "_Lydindstillinger" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "Tavs ved" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "Ukendt" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "Mono" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "Venstre front" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "Højre Front" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "Midt front" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "LFE" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "Venstre bagerst" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "Højre bagerst" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "Centrum bagerst" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "Venstre front for centrum" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "Højre front for centrum" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "Venstre side" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "Højre side" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "Øverste front til venstre" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "Øverste front til højre" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "Øverste front i centrum" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "Øverst centrum" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "Øverste baggrund til venstre" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "Øverste Øverste baggrund til højre" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "Øverste baggrund i centrum" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "Stereo" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "Surround 4.0" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "Surround 4.1" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "Surround 5.0" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "Surround 5.1" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "Surround 7.1" diff --git a/po/de.po b/po/de.po new file mode 100644 index 0000000..6344233 --- /dev/null +++ b/po/de.po @@ -0,0 +1,444 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Christian , 2009 +# debianer82 , 2017 +# Ettore Atalan , 2015 +# Hendrik Richter , 2004, 2005, 2006, 2008, 2009 +# Karl Eichwalder , 1999, 2000 +# Mario Blättermann , 2010 +# Matthias Warkus , 1999 +# Tobias Bannert , 2014-2015 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-19 11:49+0000\n" +"Last-Translator: debianer82 \n" +"Language-Team: German (http://wiki.ukui.org/trans/de/)\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "Klang" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "Lautstärke und Ereignissenklänge ändern" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "Lautstärkeregler" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "Lautstärkeregler anzeigen" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "Version dieser Anwendung" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "Fehlerdiagnose aktivieren" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr " — MATE-Lautstärkeregleranzeige" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "Klangsystem ist nicht verfügbar" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "Es wird auf eine Antwort des Klangsystems gewartet" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "Klangsystemhintergrundprogramm" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "Startseite" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr " — MATE-Lautstärkeregler" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "Eingang" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "Ausgang" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "Mikrofonlautstärke" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "Ausgangslautstärke" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr "MATE-Lautstärkeregleranzeige" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "Links" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "Rechts" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "Hinten" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "Vorn" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "Minimum" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "Maximum" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "_Balance:" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "_Ein-/Ausblenden:" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "_Subwoofer:" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "Nicht verstärkt" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "100%" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "Stumm" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "_Profil:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "_Verbindungsglied:" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "Deaktiviert" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "%u Ausgang" +msgstr[1] "%u Ausgänge" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "%u Eingang" +msgstr[1] "%u Eingänge" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "Name" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "Lautsprecher werden für %s getestet" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "Lautsprechertest" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "Klangeffekte" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "_Warnlautstärke: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "_Ausgangslautstärke: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "Geräte" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "_Ein Gerät zum Konfigurieren auswählen:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "Einstellungen für das gewählte Gerät:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "_Eingangslautstärke: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "Eingangsniveau:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "_Ein Gerät für den Toneingang auswählen:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "_Ein Gerät für den Tonausgang auswählen:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "Anwendungen" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "Derzeit wird von keiner Tonanwendung aufgenommen oder wiedergegeben." + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "Klangeinstellungen" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "Keine Klänge" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "Eingebaut" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "Angepasst" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "Ereignisklang wird getestet" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "Vorgabe" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "Von Thema" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "Art" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "_Klangthema:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "_Einen Warnklang auswählen:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "_Fenster- und Knopfklänge einschalten" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "Stopp" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "Testen" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "Das Starten der Klangeinstellungen schlug fehl: %s" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "_Stumm" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "_Klangeinstellungen" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "Stumm geschaltet" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "Unbekannt" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "Mono" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "Vorne links" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "Vorne rechts" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "Vorne Mitte" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "LFE" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "Hinten links" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "Hinten rechts" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "Hinten Mitte" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "Vorne links von der Mitte" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "Vorne rechts von der Mitte" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "Seite links" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "Seite rechts" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "Oben vorne links" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "Oben vorne rechts" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "Oben vorne Mitte" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "Oben Mitte" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "Oben hinten links" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "Oben hinten rechts" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "Oben hinten Mitte" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "Stereo" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "Surround 4.0" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "Surround 4.1" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "Surround 5.0" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "Surround 5.1" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "Surround 7.1" diff --git a/po/dz.po b/po/dz.po new file mode 100644 index 0000000..7a3b449 --- /dev/null +++ b/po/dz.po @@ -0,0 +1,434 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-19 11:49+0000\n" +"Last-Translator: monsta \n" +"Language-Team: Dzongkha (http://wiki.ukui.org/trans/dz/)\n" +"Language: dz\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "སྐད་ཤུགས་ཚད་འཛིན།" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr "སྐད་ཤུགས་ཚད་འཛིན།" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr "སྐད་ཤུགས་ཚད་འཛིན།" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr "སྐད་ཤུགས་ཚད་འཛིན།" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "སྲོལ་སྒྲིག" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "སྔོན་སྒྲིག་" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "བཀག" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "" diff --git a/po/el.po b/po/el.po new file mode 100644 index 0000000..82156cf --- /dev/null +++ b/po/el.po @@ -0,0 +1,447 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# AARG! Anonymous , 2002 +# Efstathios Iosifidis , 2014,2016 +# Fotis Tsamis , 2009 +# Kostas Papadimas , 2003, 2004, 2005, 2006 +# Kostas Papadimas 2002, 2003 +# Nikos Charonitakis , 2005 +# Nikos Charonitakis , 2002, 2003, 2004 +# Simos Xenitellis , 2008 +# Simos Xenitellis , 1999, 2000, 2001, 2002 +# Αλέξανδρος Καπετάνιος , 2017 +# Γιώργος Μηντζιλώνης, 2017 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-23 18:10+0000\n" +"Last-Translator: Αλέξανδρος Καπετάνιος \n" +"Language-Team: Greek (http://wiki.ukui.org/trans/el/)\n" +"Language: el\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "Ήχος" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "Αλλαγή έντασης ήχου και ηχητικών γεγονότων" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "Έλεγχος έντασης ήχου" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "Εμφάνιση ελέγχου ήχου επιφάνειας εργασίας" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "Έκδοση αυτής της εφαρμογής" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "Ενεργοποίηση αποσφαλμάτωσης" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr " - Μικροεφαρμογή ελέγχου έντασης ήχου MATE" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "Το σύστημα ήχου δεν είναι διαθέσιμο" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "Αναμονή για την ανταπόκριση του συστήματος ήχου" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "Σύστημα υποστήριξης συστήματος ήχου" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "Αρχική σελίδα" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr " - Έλεγχος έντασης ήχου MATE" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "Είσοδος" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "Έξοδος" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "Ένταση μικροφώνου" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "Ένταση εξόδου ήχου:" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr "Μικροεφαρμογή ελέγχου έντασης ήχου MATE" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "Αριστερά" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "Δεξιά" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "Πίσω" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "Μπροστά" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "Ελάχιστο" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "Μέγιστο" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "Ι_σοστάθμιση:" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "Βα_θμιαία μείωση έντασης:" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "_Subwoofer:" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "Χωρίς ενισχυτή" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "100%" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "Σίγαση" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "_Προφίλ:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "Σύν_δεσμος:" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "Απενεργοποιημένο" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "Έξοδος %u" +msgstr[1] "Έξοδοι %u" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "Είσοδος %u" +msgstr[1] "Είσοδοι %u" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "Όνομα" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "Δοκιμή ηχείου για %s" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "Δοκιμή ηχείων" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "Ηχητικά εφέ" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "Έ_νταση ειδοποίησης: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "Ένταση ήχου ε_ξόδου: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "Υλικό" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "Επιλέ_ξτε μια συσκευή για ρύθμιση:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "Ρυθμίσεις για την επιλεγμένη συσκευή:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "Ένταση ήχου ει_σόδου: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "Επίπεδο εισόδου:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "Επιλέ_ξτε μια συσκευή για την είσοδο ήχου:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "Επι_λέξτε μια συσκευή για την έξοδο ήχου:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "Εφαρμογές" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "Προς το παρόν καμία εφαρμογή δεν αναπαράγει ή καταγράφει ήχο." + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "Προτιμήσεις ήχου" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "Όχι ήχοι" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "Ενσωματωμένο" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "Προσαρμοσμένο" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "Γίνεται δοκιμή ήχου γεγονότος" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "Προεπιλογή" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "Από θέμα" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "Τύπος" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "_Θέμα ήχων:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "Επιλέ_ξτε έναν ήχο ειδοποίησης:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "Ενεργοποίηση ήχων _παραθύρων και κουμπιών" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "Διακοπή" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "Δοκιμή" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "Αποτυχία εκκίνησης προτιμήσεων ήχου: %s" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "Σίγα_ση" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "Προτιμήσεις ή_χου" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "Σίγαση στο" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "Άγνωστο" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "Μονοφωνικό" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "Μπροστά αριστερά" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "Μπροστά δεξιά" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "Μπροστά στο κέντρο" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "LFE" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "Πίσω αριστερά" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "Πίσω δεξιά" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "Πίσω κέντρο" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "Μπροστά αριστερά του κέντρου" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "Μπροστά δεξιά του κέντρου" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "Πλάι αριστερά " + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "Πλάι δεξιά" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "Μπροστά επάνω αριστερά" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "Μπροστά επάνω δεξιά" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "Μπροστά επάνω κέντρο" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "Κέντρο επάνω" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "Πίσω επάνω αριστερά" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "Πίσω επάνω δεξιά" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "Πίσω επάνω κέντρο" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "Στερεοφωνικό" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "Surround 4.0" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "Surround 4.1" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "Surround 5.0" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "Surround 5.1" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "Surround 7.1" diff --git a/po/en_AU.po b/po/en_AU.po new file mode 100644 index 0000000..8e3c400 --- /dev/null +++ b/po/en_AU.po @@ -0,0 +1,437 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Michael Findlay , 2012,2014-2015 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-23 18:36+0000\n" +"Last-Translator: monsta \n" +"Language-Team: English (Australia) (http://wiki.ukui.org/trans/en_AU/)\n" +"Language: en_AU\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "Sound" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "Change sound volume and sound events" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "Volume Control" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "Show desktop volume control" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "Version of this application" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "Enable debug" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr " — MATE Volume Control Applet" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "Sound system is not available" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "Waiting for sound system to respond" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "Sound system backend" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "Startup page" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr " — MATE Volume Control" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "Input" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "Output" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "Microphone Volume" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "Sound Output Volume" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr "MATE Volume Control Applet" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "Left" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "Right" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "Rear" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "Front" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "Minimum" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "Maximum" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "_Balance:" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "_Fade:" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "_Subwoofer:" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "Unamplified" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "100%" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "Mute" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "_Profile:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "Co_nnector:" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "Disabled" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "%u Output" +msgstr[1] "%u Outputs" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "%u Input" +msgstr[1] "%u Inputs" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "Name" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "Speaker Testing for %s" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "Test Speakers" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "Sound Effects" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "_Alert volume: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "_Output volume: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "Hardware" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "C_hoose a device to configure:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "Settings for the selected device:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "_Input volume: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "Input level:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "C_hoose a device for sound input:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "C_hoose a device for sound output:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "Applications" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "No application is currently playing or recording audio." + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "Sound Preferences" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "No sounds" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "Built-in" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "Custom" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "Testing event sound" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "Default" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "From theme" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "Type" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "Sound _theme:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "C_hoose an alert sound:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "Enable _window and button sounds" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "Stop" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "Test" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "Failed to start Sound Preferences: %s" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "_Mute" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "_Sound Preferences" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "Unknown" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "Mono" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "Front Left" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "Front Right" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "Front Centre" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "LFE" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "Rear Left" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "Rear Right" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "Rear Centre" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "Front Left of Centre" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "Front Right of Centre" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "Side Left" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "Side Right" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "Top Front Left" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "Top Front Right" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "Top Front Centre" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "Top Centre" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "Top Rear Left" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "Top Rear Right" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "Top Rear Centre" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "Stereo" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "Surround 4.0" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "Surround 4.1" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "Surround 5.0" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "Surround 5.1" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "Surround 7.1" diff --git a/po/en_CA.po b/po/en_CA.po new file mode 100644 index 0000000..7f673df --- /dev/null +++ b/po/en_CA.po @@ -0,0 +1,438 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Adam Weinberger , 2004, 2005, 2006 +# Alexander Winston , 2004 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-19 11:49+0000\n" +"Last-Translator: monsta \n" +"Language-Team: English (Canada) (http://wiki.ukui.org/trans/en_CA/)\n" +"Language: en_CA\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "Volume Control" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr "Volume Control" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr "Volume Control" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr "Volume Control" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "" +msgstr[1] "" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "" +msgstr[1] "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "Custom" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "Stop" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "" diff --git a/po/en_GB.po b/po/en_GB.po new file mode 100644 index 0000000..552b4e1 --- /dev/null +++ b/po/en_GB.po @@ -0,0 +1,441 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Bruce Cowan , 2009, 2010 +# Bruce Cowan , 2010 +# Gareth Owen , David Lodge , 2004 +# Martin Wimpress , 2014-2015 +# Robert Brady , 1999 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-23 18:10+0000\n" +"Last-Translator: monsta \n" +"Language-Team: English (United Kingdom) (http://wiki.ukui.org/trans/en_GB/)\n" +"Language: en_GB\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "Sound" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "Change sound volume and sound events" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "Volume Control" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "Show desktop volume control" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "Version of this application" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "Enable debug" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr " — MATE Volume Control Applet" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "Sound system is not available" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "Waiting for sound system to respond" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "Sound system backend" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "Startup page" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr " — MATE Volume Control" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "Input" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "Output" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "Microphone Volume" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "Sound Output Volume" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr "MATE Volume Control Applet" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "Left" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "Right" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "Rear" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "Front" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "Minimum" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "Maximum" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "_Balance:" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "_Fade:" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "_Subwoofer:" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "Unamplified" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "100%" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "Mute" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "_Profile:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "Co_nnector:" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "Disabled" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "%u Output" +msgstr[1] "%u Outputs" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "%u Input" +msgstr[1] "%u Inputs" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "Name" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "Speaker Testing for %s" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "Test Speakers" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "Sound Effects" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "_Alert volume: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "_Output volume: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "Hardware" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "C_hoose a device to configure:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "Settings for the selected device:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "_Input volume: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "Input level:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "C_hoose a device for sound input:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "C_hoose a device for sound output:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "Applications" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "No application is currently playing or recording audio." + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "Sound Preferences" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "No sounds" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "Built-in" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "Custom" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "Testing event sound" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "Default" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "From theme" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "Type" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "Sound _theme:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "C_hoose an alert sound:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "Enable _window and button sounds" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "Stop" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "Test" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "Failed to start Sound Preferences: %s" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "_Mute" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "_Sound Preferences" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "Unknown" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "Mono" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "Front Left" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "Front Right" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "Front Centre" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "LFE" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "Rear Left" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "Rear Right" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "Rear Centre" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "Front Left of Centre" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "Front Right of Centre" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "Side Left" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "Side Right" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "Top Front Left" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "Top Front Right" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "Top Front Centre" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "Top Centre" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "Top Rear Left" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "Top Rear Right" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "Top Rear Centre" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "Stereo" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "Surround 4.0" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "Surround 4.1" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "Surround 5.0" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "Surround 5.1" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "Surround 7.1" diff --git a/po/es.po b/po/es.po new file mode 100644 index 0000000..2fb2f15 --- /dev/null +++ b/po/es.po @@ -0,0 +1,446 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Adolfo Jayme Barrientos, 2014 +# Andres Sanchez , 2014,2016 +# Arcenio Cid , 2015 +# ebray187 , 2016 +# Emiliano Fascetti, 2014 +# Francisco Javier F. Serrador , 2004, 2005, 2006 +# Jesús Bravo Álvarez , 2000 +# Jorge González , 2008, 2009, 2010 +# Lucas Vieites Fariña , 2005, 2006, 2007 +# Yelitza Louze , 2003 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-19 11:49+0000\n" +"Last-Translator: monsta \n" +"Language-Team: Spanish (http://wiki.ukui.org/trans/es/)\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "Sonido" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "Cambiar el volumen y los eventos de sonido" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "Control de volumen" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "Mostrar el control de volumen del escritorio" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "Versión de esta aplicación" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "Activar depuración" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr ": Miniaplicación Control de volumen de MATE" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "Sistema de sonido no disponible" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "Esperando a que el sistema de sonido responda" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "Backend sistema de sonido" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "Página de inicio" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr ": Control de volumen de MATE" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "Entrada" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "Salida" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "Volumen del micrófono" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "Volumen de salida del sonido" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr "Miniaplicación Control de volumen de MATE" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "Izquierda" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "Derecha" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "Trasero" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "Frontal" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "Mínimo" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "Máximo" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "_Balance:" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "_Desvanecimiento:" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "_Subwoofer:" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "Sin amplificar" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "100%" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "Silenciar" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "_Perfil:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "Co_nector:" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "Desactivado" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "%u salida" +msgstr[1] "%u salidas" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "%u entrada" +msgstr[1] "%u entradas" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "Nombre" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "Prueba de altavoces para %s" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "Probar los altavoces" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "Efectos de sonido" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "Volumen de _alerta: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "Volumen de sali_da: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "Hardware" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "_Elegir un dispositivo para configurar:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "Ajustes para el dispositivo seleccionado:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "Volumen de _entrada: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "Nivel de entrada:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "_Elegir un dispositivo para la entrada de sonido" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "_Elegir un dispositivo para la salida de sonido" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "Aplicaciones" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "Actualmente ninguna aplicación está reproduciendo o grabando sonido." + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "Preferencias de sonido" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "Sin sonidos" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "Integrado" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "Personalizado" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "Probando sonido de evento" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "Predeterminado" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "Del tema" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "Tipo" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "_Tema de sonido:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "_Elegir un sonido de alerta:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "Activar sonidos de _ventanas y botones" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "Parar" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "Probar" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "Falló al iniciar las Preferencias de sonido: %s" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "_Silenciar" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "Prefere_ncias de sonido" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "Desconocido" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "Mono" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "Frontal izquierda" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "Frontal derecha" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "Frontal central" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "Canal LFE" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "Posterior izquierda" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "Posterior derecha" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "Posterior central" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "Frontal izquierdo del centro" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "Frontal derecho del centro" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "Lateral Izquierda" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "Lateral Derecha" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "Superior frontal izquierdo" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "Superior frontal derecho" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "Superior frontal central" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "Superior Central" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "Superior posterior izquierdo " + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "Superior posterior derecho" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "Superior posterior central" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "Estéreo" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "Surround 4.0" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "Surround 4.1" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "Surround 5.0" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "Surround 5.1" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "Surround 7.1" diff --git a/po/es_AR.po b/po/es_AR.po new file mode 100644 index 0000000..539be7c --- /dev/null +++ b/po/es_AR.po @@ -0,0 +1,433 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-20 15:44+0000\n" +"Last-Translator: monsta \n" +"Language-Team: Spanish (Argentina) (http://wiki.ukui.org/trans/es_AR/)\n" +"Language: es_AR\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:55 +msgid " — UKUI Volume Control Applet" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:202 +msgid " — UKUI Volume Control" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:333 +msgid "UKUI Volume Control Applet" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "" +msgstr[1] "" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "" +msgstr[1] "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "Nombre" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "Tipo" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "" diff --git a/po/es_CO.po b/po/es_CO.po new file mode 100644 index 0000000..0ad4fbc --- /dev/null +++ b/po/es_CO.po @@ -0,0 +1,434 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Jose Barakat , 2016 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-20 15:44+0000\n" +"Last-Translator: monsta \n" +"Language-Team: Spanish (Colombia) (http://wiki.ukui.org/trans/es_CO/)\n" +"Language: es_CO\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "Sonido" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:55 +msgid " — UKUI Volume Control Applet" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:202 +msgid " — UKUI Volume Control" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:333 +msgid "UKUI Volume Control Applet" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "Izquierda" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "Derecha" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "" +msgstr[1] "" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "" +msgstr[1] "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "Nombre" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "Tipo" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "Desconocido" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "" diff --git a/po/es_MX.po b/po/es_MX.po new file mode 100644 index 0000000..9957ce0 --- /dev/null +++ b/po/es_MX.po @@ -0,0 +1,433 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-19 16:23+0000\n" +"Last-Translator: monsta \n" +"Language-Team: Spanish (Mexico) (http://wiki.ukui.org/trans/es_MX/)\n" +"Language: es_MX\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:55 +msgid " — UKUI Volume Control Applet" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:202 +msgid " — UKUI Volume Control" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:333 +msgid "UKUI Volume Control Applet" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "" +msgstr[1] "" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "" +msgstr[1] "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "Nombre" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "Tipo" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "Desconocido" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "" diff --git a/po/es_PR.po b/po/es_PR.po new file mode 100644 index 0000000..f49fb80 --- /dev/null +++ b/po/es_PR.po @@ -0,0 +1,434 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Neverest , 2016 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-20 15:44+0000\n" +"Last-Translator: monsta \n" +"Language-Team: Spanish (Puerto Rico) (http://wiki.ukui.org/trans/es_PR/)\n" +"Language: es_PR\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "Sonido" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:55 +msgid " — UKUI Volume Control Applet" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:202 +msgid " — UKUI Volume Control" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:333 +msgid "UKUI Volume Control Applet" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "Máximo" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "100%" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "" +msgstr[1] "" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "" +msgstr[1] "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "Nombre" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "Aplicaciones" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "Tipo" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "Mono" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "Estéreo" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "" diff --git a/po/et.po b/po/et.po new file mode 100644 index 0000000..bbd6327 --- /dev/null +++ b/po/et.po @@ -0,0 +1,441 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Ivar Smolin , 2014-2015 +# Ivar Smolin , 2009, 2010 +# Lauris Kaplinski , 1999 +# Priit Laes , 2005 +# Tõivo Leedjärv , 2002, 2003 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-19 11:49+0000\n" +"Last-Translator: monsta \n" +"Language-Team: Estonian (http://wiki.ukui.org/trans/et/)\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "Heli" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "Helitugevuse muutmine ja sündmuste jaoks helide määramine" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "Helitugevuse regulaator" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "Töölaua helitugevuse regulaatori näitamine" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "Selle rakenduse versioon" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "Luba silumine" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr " — MATE helitugevuse juhtrakend" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "Helisüsteem pole saadaval" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "Helisüsteemi vastuse ootamine" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "Helisüsteemi taustaprogramm" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "Käivitamisel aktiveeritav leht" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr " — MATE helitugevuse regulaator" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "Sisend" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "Väljund" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "Mikrofoni valjus" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "Heliväljundi valjus" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr "MATE helitugevuse juhtimise rakend" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "Vasak" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "Parem" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "Tagumine" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "Eesmine" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "Väikseim" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "Suurim" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "_Tasakaal:" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "_Tuhmumine:" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "Madal_sageduskõlar:" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "Võimendamata" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "100%" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "Tumm" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "_Profiil:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "_Pistik:" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "Keelatud" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "%u väljund" +msgstr[1] "%u väljundit" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "%u sisend" +msgstr[1] "%u sisendit" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "Nimi" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "%s kõlarite testimine" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "Kõlarite test" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "Heliefektid" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "_Hoiatuste valjus: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "_Väljundi valjus: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "Riistvara" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "_Seadistatava seadme valimine:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "Valitud seadme sätted:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "_Sisendi valjus: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "Sisendi valjus:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "H_elisisendi seadme valimine:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "_Heliväljundi seadme valimine:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "Rakendused" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "Ükski rakendus ei esita ega salvesta hetkel audiot." + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "Helieelistused" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "Helid puuduvad" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "Sisseehitatud" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "Kohandatud" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "Sündmuse heli testimine" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "Vaikimisi" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "Teemast" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "Liik" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "Heli_teema:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "H_oiatuse heli valimine:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "_Akende ja nuppude helid on lubatud" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "Peata" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "Testi" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "Tõrge helieelistuste käivitamisel: %s" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "_Tumm" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "_Helieelistused" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "Tundmatu" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "Mono" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "Eesmine vasak" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "Eesmine parem" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "Eesmine keskmine" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "Tagumine vasak" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "Tagumine parem" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "Tagumine keskmine" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "Stereo" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "Surround 4.0" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "Surround 4.1" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "Surround 5.0" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "Surround 5.1" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "Surround 7.1" diff --git a/po/eu.po b/po/eu.po new file mode 100644 index 0000000..e1085a8 --- /dev/null +++ b/po/eu.po @@ -0,0 +1,440 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Asier Iturralde Sarasola , 2012,2015 +# Hizkuntza Politikarako Sailburuordetza , 2004 +# Iñaki Larrañaga Murgoitio , 2004, 2005, 2006, 2007, 2008, 2009, 2010 +# Iñaki Larrañaga Murgoitio , 2007 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-19 11:49+0000\n" +"Last-Translator: monsta \n" +"Language-Team: Basque (http://wiki.ukui.org/trans/eu/)\n" +"Language: eu\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "Soinua" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "Aldatu soinuaren bolumena eta soinuaren gertaerak" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "Bolumen-kontrola" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "Erakutsi mahaigaineko bolumen-kontrola" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "Aplikazio honen bertsioa" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "Gaitu arazketa" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr " — MATEren bolumen-kontrolaren miniaplikazioa" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "Soinu-sistema ez dago erabilgarri" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "Soinu-sistemaren zain erantzuteko" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "Soinu-sistemaren motorra" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "Abioko orrialdea" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr " — MATEren bolumen-kontrola" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "Sarrera" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "Irteera" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "Mikrofonoaren bolumena" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "Soinuaren irteerako bolumena" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr "MATE bolumen-kontrolaren applet-a" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "Ezkerra" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "Eskuina" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "Atzealdea" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "Aurrealdea" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "Gutxienekoa" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "Gehienezkoa" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "_Balantzea:" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "_Iraungitu:" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "_Subwoofer:" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "Anplifikatu gabea" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "% 100" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "Mututu" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "_Profila:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "_Konektorea:" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "Desgaituta" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "Irteera %u" +msgstr[1] "%u irteera" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "Sarrera %u" +msgstr[1] "%u sarrera" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "Izena" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "%s(r)en probako bozgorailua" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "Probatu bozgorailuak" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "Soinu-efektuak" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "_Abisuaren bolumena: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "_Irteerako bolumena: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "Hardwarea" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "A_ukeratu gailu bat konfiguratzeko:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "Hautatutako gailuaren ezarpenak:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "_Sarrerako bolumena: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "Sarrerako maila:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "Aukeratu _sarrerako soinuaren gailua:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "Aukeratu _irteerako soinuaren gailua:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "Aplikazioak" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "Ez dago unean audioa erreproduzitzen edo grabatzen duen aplikaziorik." + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "Soinuaren hobespenak" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "Soinurik ez" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "Integratuta" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "Pertsonalizatua" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "Gertaeraren soinua probatzea" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "Lehenetsia" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "Gaitik" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "Mota" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "Soinuaren _gaia:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "_Aukeratu alertaren soinua:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "Gaitu _leihoen eta botoien soinuak" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "Gelditu" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "Probatu" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "Huts egin du soinuaren hobespenak abiaraztean: %s" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "_Mututu" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "_Soinuaren hobespenak" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "Mono" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "Estereoa" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "Surround 4.0" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "Surround 4.1" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "Surround 5.0" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "Surround 5.1" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "Surround 7.1" diff --git a/po/fa.po b/po/fa.po new file mode 100644 index 0000000..31a1a01 --- /dev/null +++ b/po/fa.po @@ -0,0 +1,439 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Alireza Kheirkhahan , 2005 +# Mahdi Pourghasem , 2016 +# Meelad Zakaria , 2005 +# Roozbeh Pournader , 2003, 2005 +# Sara Khalatbari , 2005 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-19 11:49+0000\n" +"Last-Translator: monsta \n" +"Language-Team: Persian (http://wiki.ukui.org/trans/fa/)\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "صدا" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "کنترل بلندی صدا" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr "کنترل بلندی صدا" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "صفحه شروع" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr "کنترل بلندی صدا" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "ورودی" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "خروجی" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "میزان صدای خروجی" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr "کنترل بلندی صدا" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "چپ" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "راست" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "عقب" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "جلو" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "کم‌ترین مقدار" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "بیش‌ترین مقدار" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "۱۰۰٪" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "بی‌صدا" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "غیر فعال شده" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "نام" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "آزمایش بلندگو ها" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "سخت افزار" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "ورودی صدا" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "سفارشی" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "توقف" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "بی صدا" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "" diff --git a/po/fi.po b/po/fi.po new file mode 100644 index 0000000..132e7c8 --- /dev/null +++ b/po/fi.po @@ -0,0 +1,439 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Mikko Rauhala , 1999 +# nomen omen , 2017 +# Tuomas J. Lukka , 1998 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-19 11:49+0000\n" +"Last-Translator: nomen omen \n" +"Language-Team: Finnish (http://wiki.ukui.org/trans/fi/)\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "Äänet" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "Muuta äänenvoimakkuutta ja äänitapahtumia" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "Äänenvoimakkuuden hallinta" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "Näytä työpöydän äänenvoimakkuuden hallinta" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "Tämän ohjelman versio" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "Käytä vianetsintää" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr " — MATE Äänenvoimakkuuden Hallinta Sovelma" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "Äänijärjestelmä ei ole käytettävissä" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "Odotetaan äänijärjestelmän vastausta" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "Äänijärjestelmä taustaosa" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "Aloitussivu" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr " — MATE Äänenvoimakkuuden Hallinta" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "Tallennus" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "Toisto" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "Mikrofonin Äänenvoimakkuus" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "Äänentoisto Voimakkuus" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr "MATE Äänenvoimakkuuden Hallinta Sovelma" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "vasen" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "oikea" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "taka" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "etu" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "Minimi" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "Maksimi" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "_Tasapaino:" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "_Häivytys:" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "_Subwoofer:" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "Vahvistamaton" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "100 %" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "Vaimenna" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "_Profiili:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "_Liitin:" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "Ei käytössä" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "%u ulostulo" +msgstr[1] "%u ulostuloa" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "%u sisääntulo" +msgstr[1] "%u sisääntuloa" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "Nimi" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "Ääniefektit" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "_Hälytysten voimakkuus: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "_Toistovoimakkuus: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "Laitteisto" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "_Valitse määriteltävä laite:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "Valitun laitteen asetukset:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "_Äänitysvoimakkuus: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "Äänitystaso: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "_Valitse laite äänen tallentamiseksi:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "_Valitse laite äänen toistamiseksi:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "Sovellukset" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "Mikään sovellus ei nyt soita tai tallenna ääntä." + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "Ääniasetukset" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "Ei ääniä" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "Sisäänrakennetut" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "Mukautettu" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "Kokeillaan tapahtuman ääntä" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "Oletus" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "Teemasta" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "Tyyppi" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "Ääni_teema:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "_Valitse hälytysääni:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "Ota _ikkuna- ja painikeäänet käyttöön" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "Pysäytä" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "Ääniasetuksia ei voitu käynnistää: %s" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "_Vaimenna" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "_Ääniasetukset" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "" diff --git a/po/fr.po b/po/fr.po new file mode 100644 index 0000000..ed15087 --- /dev/null +++ b/po/fr.po @@ -0,0 +1,445 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Baptiste Mille-Mathias , 2005 +# Benjamin Teissier , 2015 +# Christophe Fergeau , 2002 +# Étienne Deparis , 2017 +# Laurent Coudeur , 2009 +# mauron, 2012 +# Stéphane Raimbault , 2007 +# Thibaut Cousin , 1999 +# Tubuntu , 2014 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-19 11:49+0000\n" +"Last-Translator: Étienne Deparis \n" +"Language-Team: French (http://wiki.ukui.org/trans/fr/)\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "Son" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "Modifier le volume et des événements sonores" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "Contrôleur de volume" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "Afficher le contrôleur de volume" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "Version de cette application" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "Activer le déboggage" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr " — Applet du contrôleur de volume MATE" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "Le système son n'est pas disponible" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "Attente de réponse du système sonore" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "Gestionnaire de système son" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "Page de démarrage" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr " — Contrôleur de volume MATE" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "Entrée" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "Sortie" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "Volume du microphone" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "Volume de sortie sonore" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr "Applet de contrôle du volume MATE" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "Gauche" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "Droite" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "Arrière" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "Avant" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "Minimum" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "Maximum" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "_Balance :" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "_Fondu :" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "_Caisson de basse :" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "Non amplifié" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "100 %" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "Sourdine" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "_Profil :" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "Co_nnecteur :" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "Désactivé" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "%u sortie" +msgstr[1] "%u sorties" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "%u entrée" +msgstr[1] "%u entrées" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "Nom" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "Test des haut-parleurs pour %s" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "Tester les haut-parleurs" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "Effets sonores" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "Volume d'_alerte : " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "Volume de _sortie : " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "Matériel" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "C_hoisissez un périphérique à configurer :" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "Paramètres du périphérique sélectionné :" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "Volume d'_entrée : " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "Niveau d'entrée :" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "Choisissez un _périphérique pour l'entrée son :" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "Choisissez un _périphérique pour la sortie son :" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "Applications" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "Aucune application n'émet ou n'enregistre de son actuellement." + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "Préférences du son" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "Aucun son" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "Prédéfini" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "Personnalisé" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "Test du son d'un événement" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "Par défaut" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "À partir du thème" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "Type" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "_Thème sonore :" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "C_hoisissez un son d'alerte :" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "Acti_ver les sons des fenêtres et boutons" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "Arrêter" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "Tester" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "Impossible d'ouvrir les préférences du son : %s" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "S_ourdine" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "Préférences du _son" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "Volume avant sourdine à" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "Inconnu" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "Mono" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "Avant Gauche" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "Avant Droit" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "Centre Avant" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "Effets basse fréquence (LFE)" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "Arrière Gauche" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "Arrière Droit" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "Centre Arrière" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "Avant Gauche Central" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "Avant Droit Central" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "Côté Gauche" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "Côté Droit" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "Haut Avant Gauche" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "Haut Avant Droit" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "Haut Avant Centre" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "Haut Central" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "Haut Arrière Gauche" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "Haut Arrière Droit" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "Haut Arrière Central" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "Stéréo" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "Surround 4.0" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "Surround 4.1" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "Surround 5.0" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "Surround 5.1" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "Surround 7.1" diff --git a/po/fr_CA.po b/po/fr_CA.po new file mode 100644 index 0000000..c8b30c2 --- /dev/null +++ b/po/fr_CA.po @@ -0,0 +1,437 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Ir0nsh007er , 2015 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-22 02:12+0000\n" +"Last-Translator: monsta \n" +"Language-Team: French (Canada) (http://wiki.ukui.org/trans/fr_CA/)\n" +"Language: fr_CA\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "Son" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "Contrôle du Volume" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr "Contrôle du Volume" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr "Contrôle du Volume" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr "Contrôle du Volume" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "" +msgstr[1] "" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "" +msgstr[1] "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "Nom" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "Défaut" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "" diff --git a/po/frp.po b/po/frp.po new file mode 100644 index 0000000..57ba5f2 --- /dev/null +++ b/po/frp.po @@ -0,0 +1,437 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Alexandre Raymond, 2016 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-19 23:26+0000\n" +"Last-Translator: monsta \n" +"Language-Team: Franco-Provençal (Arpitan) (http://wiki.ukui.org/trans/frp/)\n" +"Language: frp\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "Son" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "Controlo du volumo" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr "Controlo du volumo" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr "Controlo du volumo" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr "Controlo du volumo" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "" +msgstr[1] "" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "" +msgstr[1] "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "Quincalye" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "Prèdèfini" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "" diff --git a/po/ga.po b/po/ga.po new file mode 100644 index 0000000..c719555 --- /dev/null +++ b/po/ga.po @@ -0,0 +1,446 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Alastair McKinstry , 1999 +# Paul Duffy , 2003 +# Seán de Búrca , 2008, 2009 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-19 11:49+0000\n" +"Last-Translator: monsta \n" +"Language-Team: Irish (http://wiki.ukui.org/trans/ga/)\n" +"Language: ga\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=5; plural=(n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : " +"4);\n" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "Fuaim" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "Athraigh airde agus teagmhais fuaime" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "Rialtán Airde" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "‭Taispeáin rialtán airde deisce" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "Leagan an fheidhmchláir seo" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr "Rialtán Airde" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr "Rialtán Airde" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "Ionchur" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "Aschur" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr "Rialtán Airde" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "Clé" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "Deas" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "Cúl" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "Aghaidh" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "Íosmhéid" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "Uasmhéid" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "_Cothromaíocht:" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "Cé_imniú:" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "_Fo-dhordaire:" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "Neamhaimplithe" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "100%" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "Gan fuaim" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "_Próifíl:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "_Nascóir:" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "Díchumasaithe" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "%u Aschur" +msgstr[1] "%u Aschur" +msgstr[2] "%u Aschur" +msgstr[3] "%u nAschur" +msgstr[4] "%u Aschur" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "%u Ionchur" +msgstr[1] "%u Ionchur" +msgstr[2] "%u Ionchur" +msgstr[3] "%u nIonchur" +msgstr[4] "%u Ionchur" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "Ainm" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "Maisíochtaí Fuaime" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "Airde _foláirimh:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "Airde _aschurtha:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "Crua-earraí" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "_Roghnaigh gléas le cumrú" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "Socruithe don ghléas roghnaithe:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "Airde _ionchurtha:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "Leibhéal ionchurtha:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "_Roghnaigh gléas le haghaidh ionchurtha fuaime:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "_Roghnaigh gléas le haghaidh aschurtha fuaime:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "Feidhmchláir" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "Níl aon fheidhmchlár ag seinm nó ag taifeadadh fuaime faoi láthair." + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "Sainroghanna Fuaime" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "Gan fhuaimeanna" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "Saincheaptha" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "Fuaim teagmhais tástála" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "Réamhshocrú" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "Ó théama" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "Cineál" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "_Téama fuaime:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "_Roghnaigh fuaim foláirimh:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "_Cumasaigh fuaimeanna fuinneog agus cnaipí" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "Theip ar thosú Sainroghanna Fuaime: %s" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "_Gan Fuaim" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "Sainroghanna _Fuaime" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "" diff --git a/po/gl.po b/po/gl.po new file mode 100644 index 0000000..51902e6 --- /dev/null +++ b/po/gl.po @@ -0,0 +1,446 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Antón Méixome , 2009 +# Fran Diéguez , 2009 +# Fran Diéguez , 2010 +# Fran Diéguez , 2010 +# Ignacio Casal Quinteiro , 2007-2008 +# Ignacio Casal Quinteiro , 2005-2006 +# Mancomún - Centro de Referencia e Servizos de Software Libre , 2009 +# Miguel Anxo Bouzada , 2013 +# Sergio Rua , 1999 +# Suso Baleato , 2009 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-19 11:49+0000\n" +"Last-Translator: monsta \n" +"Language-Team: Galician (http://wiki.ukui.org/trans/gl/)\n" +"Language: gl\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "Son" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "Modificar o volume do son e asociar sons a eventos" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "Control de volume" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "Amosar o control de volume do escritorio" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "Versión deste aplicativo" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr " — Miniaplicativo de control de volume do MATE" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "Agardando a que o sistema de son responda" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "Páxina de inicio" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr " — Control de volume do MATE" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "Entrada" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "Saída" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "Volume do micrófono" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "Volume do son de saída" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr " — Miniaplicativo de control de volume do MATE" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "Esquerda" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "Dereita" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "Traseira" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "Frontal" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "Mínimo" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "Máximo" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "_Balance:" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "_Esvaecer:" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "_Subwoofer:" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "Sen amplificación" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "100%" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "Sen son" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "_Perfil:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "Co_nector:" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "Desactivado" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "%u saída" +msgstr[1] "%u saídas" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "%u entrada" +msgstr[1] "%u entradas" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "Nome" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "Proba de altofalantes para %s" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "Probar altofalantes" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "Efectos de son" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "Volume da _alerta: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "V_olume de saída: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "Hardware" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "E_scolla un dispositivo para configurar:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "Configuracións para o dispositivo seleccionado:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "Volume de _entrada: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "Nivel de entrada:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "E_scolla un dispositivo para o son de entrada:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "E_scolla un dispositivo para o son de saída:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "Aplicativos" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "Neste momento non hai ningún aplicativo reproducindo ou gravando son." + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "Preferencias de son" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "Sen sons" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "Incorporado" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "Personalizado" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "Probando o son da acción" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "Predeterminado" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "Do tema" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "Tipo" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "_Tema de son:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "E_scolla un son de alerta:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "Activar sons de _xanela e de botóns" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "Deter" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "Probar" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "Produciuse un fallo ao iniciar as Preferencias de son: %s" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "S_en son" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "Preferencias de _son" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "" diff --git a/po/gnome-copyrights.txt b/po/gnome-copyrights.txt new file mode 100644 index 0000000..371a898 --- /dev/null +++ b/po/gnome-copyrights.txt @@ -0,0 +1,1166 @@ +========== af.po ========== +# Afrikaans translation of mate-media. +# Copyright (C) 2010 +# This file is distributed under the same license as the mate-media package. +# Contributors: +# F Wolff , 2010. + + + + +========== am.po ========== +# Translations into the Amharic Language. +# Copyright (C) 2002 Free Software Foundation, Inc. +# This file is distributed under the same license as the mate-media package. +# Ge'ez Frontier Foundation , 2002. +# +# + + + + +========== ar.po ========== +# translation of mate-media.HEAD.po to Arabic +# This file is distributed under the same license as the mate-media.ar package. +# Copyright (C) 2003 THE mate-media.ar'S COPYRIGHT HOLDER. +# Sayed Jaffer Al-Mosawi , 2002. +# Arafat Medini , 2002,2003. +# Isam Bayazidi , 2002. +# , 2003. +# Abdulaziz Al-Arfaj , 2004. +# Djihed Afifi , 2006. +# Khaled Hosny , 2006, 2007, 2008, 2009, 2010. +# Anas Afif Emad , 2008. +# Amitakhya Phukan , 2009. + + + + +========== ast.po ========== +# Asturian translation for mate-media. +# Copyright (C) 2009 mate-media's COPYRIGHT HOLDER +# This file is distributed under the same license as the mate-media package. +# Astur , 2009. +# + + + + +========== az.po ========== +# translation of mate-media.HEAD.az.po to Azerbaijani +# Copyright (C) 2000, 2004 Free Software Foundation, Inc. +# Vasif Ismailoglu MD , 2000. +# Mətin Əmirov , 2004. +# + + + + +========== be.po ========== +# Беларускі пераклад mate-media.HEAD. +# Copyright (C) 2003, 2004 Free Software Foundation, Inc. +# Vital Khilko , 2003. +# Ales Nyakhaychyk , 2004. +# Ihar Hrachyshka , 2006 +# + + + + +========== be@latin.po ========== +# Biełaruski pierakład mate-media +# Alaksandar Navicki , 2007. Łacinka.org +# + + + + +========== bg.po ========== +# Bulgarian translation of mate-media po-file. +# Copyright (C) 2002, 2003, 2004, 2005, 2007, 2008 Free Software Foundation, Inc. +# Copyright (C) 2009, 2010 Free Software Foundation, Inc. +# Evgeni Boevski , 2002, 2003. +# Yanko Kaneti , 2003. +# Vladimir "Kaladan" Petkov , 2004. +# Rostislav Raykov , 2004. +# Alexander Shopov , 2005, 2008, 2009, 2010. +# Philip Dimitrov , 2005. +# Yavor Doganov , 2007. +# + + + + +========== bn.po ========== +# Bengali Translation of the mate-media. +# This file is distributed under the same license as the MATE-MEDIA package. +# Copyright (C) 2003-2005 The MATE Foundation. +# +# Sayamindu Dasgupta , 2003. +# Runa Bhattacharjee , 2003. +# Progga , 2005. +# Runa Bhattacharjee , 2006. +# Runa Bhattacharjee , 2008, 2009. +# Maruf Ovee , 2009. +# Sadia Afroz , 2010. +# + + + + +========== bn_IN.po ========== +# translation of bn_IN.po to Bengali INDIA +# Translation of mate-media.mate-2-12.po to Bengali India +# This file is distributed under the same license as the MATE-MEDIA package. +# Copyright (C) 2003-2005 The MATE Foundation. +# +# Sayamindu Dasgupta , 2003. +# Runa Bhattacharjee , 2003. +# Progga , 2005. +# Runa Bhattacharjee , 2006. +# Runa Bhattacharjee , 2008, 2009, 2010. + + + + +========== br.po ========== +# Breton translation of mate-media. +# Copyright (C) 2006 Free Software Foundation, Inc. +# This file is distributed under the same license as the mate-media package. +# +# Jérémy Ar Floc'h , 2006. +# + + + + +========== bs.po ========== +# translation of mate-media.HEAD.bs.po to Bosnian +# This file is distributed under the same license as the mate-media package. +# Copyright (C) 2004 Free Software Foundation, Inc. +# Mehemed Sacirovic , 2004. +# + + + + +========== ca.po ========== +# Traducció del mate-media de l'equip de Softcatalà. +# Copyright © 2000-2009 Free Software Foundation, Inc. +# Softcatalà , 2000. +# Antoni Lacasta i Sulla , 2002. +# Jordi Mallach , 2002, 2003, 2004, 2005, 2006, 2007. +# Josep Puigdemont i Casamajó , 2007. +# Joan Duran , 2009, 2010. +# + + + + +========== ca@valencia.po ========== +# Traducció del mate-media de l'equip de Softcatalà. +# Copyright © 2000-2009 Free Software Foundation, Inc. +# Softcatalà , 2000. +# Antoni Lacasta i Sulla , 2002. +# Jordi Mallach , 2002, 2003, 2004, 2005, 2006, 2007. +# Josep Puigdemont i Casamajó , 2007. +# Joan Duran , 2009, 2010. +# + + + + +========== cs.po ========== +# Czech messages for mate-media. +# Copyright (C) 2001, 2007, 2008, 2009, 2010 the author(s) of mate-media. +# Copyright (C) 2004, 2005, 2006 Miloslav Trmac . +# Copyright (C) 2006 Lukas Novotny . +# This file is distributed under the same license as the mate-media package. +# Stanislav Brabec , 2000, 2001. +# Michal Bukovjan , 2002. +# Miloslav Trmac , 2003, 2004, 2005, 2006. +# Petr Tomeš , 2006. +# Lukas Novotny , 2006. +# Petr Kovar , 2007, 2008, 2009, 2010. + + + + +========== cy.po ========== +# mate-media yn Gymraeg. +# Copyright (C) 2003 Free Software Foundation, Inc. +# www.kyfieithu.co.uk , 2003. +# KGyfieithu , 2003. +# Owain Green, 2003. +# Dafydd Harries , 2003. +# Dafydd Jones, 2003. +# Steve Griffiths, 2003. +# + + + + +========== da.po ========== +# Danish translation of the mate-media. +# Copyright (C) 1998-99, 2000-10 Free Software Foundation, Inc. +# This file is distributed under the same license as the mate-media package. +# Kenneth Christiansen , 1998-2000 +# Keld Simonsen , 2000-2001. +# Ole Laursen , 2001-2004, 06. +# Martin Willemoes Hansen , 2004-2006. +# Peter Bach , 2007. +# Kenneth Nielsen . 2008. +# Ask Hjorth Larsen , 2010. +# +# Konventioner: +# +# Mate-CD -> cd-afspiller +# sample -> (oftest) lydklip +# sink -> destination +# track -> spor +# +# Husk at tilføje dig i credit-listen (besked id "translator-credits") +# + + + + +========== de.po ========== +# German mate-media translation +# Copyright (C) 2000-2004 Free Software Foundation, Inc. +# Matthias Warkus , 1999. +# Karl Eichwalder , 1999, 2000. +# Christian Meyer , 2000-2002. +# Christian Neumair , 2002-2004. +# Hendrik Richter , 2004, 2005, 2006, 2008, 2009. +# Christian Kirbach , 2009. +# Mario Blättermann , 2010. +# + + + + +========== dz.po ========== +# Dzongkha translation of mate-media +# Copyright @ 2006, Free Software Foundation, Inc. +# Mindu Dorji +# + + + + +========== el.po ========== +# Greek translation of MATE media +# Copyright (C) 1999 - 2009 Free Software Foundation, Inc. +# simos: around 250 messages (initial translation, started counting) +# kostas: 05Jan2003, one more update +# kostas: 03Aug2003, update for Mate 2.4 +# nikos: 07Sep2003, Review translation +# nikos: 07Sep2003, change some messages for better shape of vol control window +# kostas:12Nov2003, fixes +# kostas:26Dec2003, update +# kostas:23Feb2004, update +# nikos:2Sep2004, update +# +# +# nikos: 336 messages, 13Jul2002, updated translation for MATE 2.0. +# aarg : 336 messages, 19Jul2002, fixes to translation. +# kostas: 475 messages, 26Oct2002, completed translation. +# kostas: fixed 3 typos, 21Nov2002 (thanks to Nikos Charonitakis). +# kostas: 583 messages, 06Jan2003, updated translation for Mate 2.1x. +# Kostas Papadimas 2002, 2003. +# Simos Xenitellis , 1999, 2000, 2001, 2002. +# Nikos Charonitakis , 2002, 2003, 2004. +# AARG! Anonymous , 2002. +# Kostas Papadimas , 2003, 2004, 2005, 2006. +# Nikos Charonitakis , 2005. +# Simos Xenitellis , 2008. +# Fotis Tsamis , 2009. + + + + +========== en@shaw.po ========== +# Shavian translation for mate-media. +# Copyright (C) 2009 The Mate Foundation. +# Thomas Thurman , 2009. + + + + +========== en_CA.po ========== +# Canadian English translation of mate-media +# Copyright (C) 2004-2006 Adam Weinberger and the MATE Foundation +# This file is distributed under the same licence as the mate-media package. +# Alexander Winston , 2004. +# Adam Weinberger , 2004, 2005, 2006. +# + + + + +========== en_GB.po ========== +# English (British) +# Copyright (C) 1999 Free Software Foundation, Inc. +# Robert Brady , 1999. +# Gareth Owen , David Lodge , 2004. +# Bruce Cowan , 2009, 2010. +# Bruce Cowan , 2010. + + + + +========== es.po ========== +# translation of mate-media.HEAD.po to Español +# Copyright © 1998-2003, 2006, 2007, 2008 Free Software Foundation, Inc. +# This file is distributed under the same license as the mate-media package. +# Miguel de Icaza 1998. +# +# +# Pablo Saratxaga , 1998-2000. +# Jesús Bravo Álvarez , 2000. +# Germán Poo Caamaño , 2002 (Revisor). +# Yelitza Louze , 2003. +# Francisco Javier F. Serrador , 2004. +# Lucas Vieites , 2002-2004. +# Francisco Javier F. Serrador , 2004, 2005, 2006. +# Lucas Vieites Fariña , 2005, 2006, 2007. +# Claudio Saavedra 2007 (QA). +# Jorge González , 2008, 2009, 2010. +# + + + + +========== et.po ========== +# MATE-meedia eesti keele tõlge. +# Estonian translation of MATE-media. +# +# Copyright (C) 1999, 2002, 2003, 2005, 2006 Free Software Foundation, Inc. +# Copyright (C) 2007, 2009, 2010 The MATE Project. +# This file is distributed under the same license as the mate-media package. +# +# Lauris Kaplinski , 1999. +# Tõivo Leedjärv , 2002, 2003. +# Ivar Smolin , 2005-2007, 2009, 2010. +# Priit Laes , 2005. +# + + + + +========== eu.po ========== +# translation of eu_to_be_translate.po to Basque +# Copyright (C) 2001, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. +# +# Hizkuntza Politikarako Sailburuordetza , 2004. +# Iñaki Larrañaga Murgoitio , 2004, 2005, 2006, 2007, 2008, 2009, 2010. +# Iñaki Larrañaga Murgoitio , 2007. + + + + +========== fa.po ========== +# Persian translation of mate-media. +# Copyright (C) 2003, 2005 Sharif FarsiWeb, Inc. +# Roozbeh Pournader , 2003, 2005. +# Sara Khalatbari , 2005. +# Alireza Kheirkhahan , 2005. +# Meelad Zakaria , 2005. +# + + + + +========== fi.po ========== +# Finnish translation of the mate-media module. +# Copyright (C) 1998-2009 Free Software Foundation, Inc. +# Tuomas J. Lukka , 1998. +# Mikko Rauhala , 1999. +# Jarkko Ranta , 2000-2004. +# Ilkka Tuohela , 2005-2009. +# Tommi Vainikainen , 2009-2010. +# +# + + + + +========== fr.po ========== +# French translation of mate-media. +# Copyright (C) 1998-2010 Free Software Foundation, Inc. +# This file is distributed under the same license as the mate-media package. +# +# Vincent Renardias , 1998-1999. +# Thibaut Cousin , 1999. +# Christophe Merlet , 2000-2006. +# Christophe Fergeau , 2002. +# Baptiste Mille-Mathias , 2005. +# Robert-André Mauchin , 2006-2008. +# Jonathan Ernst , 2006-2007. +# Stéphane Raimbault , 2007. +# Claude Paroz , 2007-2010. +# Laurent Coudeur , 2009. +# + + + + +========== ga.po ========== +# Irish translations for mate-media package. +# Copyright (C) 1998-2009 Free Software Foundation, Inc. +# This file is distributed under the same license as the mate-media package. +# Alastair McKinstry , 1999. +# Paul Duffy , 2003. +# Seán de Búrca , 2008, 2009. +# + + + + +========== gl.po ========== +# translation of mate-media.master.po to Galician +# Galician translation of mate-media. +# Copyright (C) 1999 Sergio Rua +# Copyright (C) 2000-2001 Jesús Bravo Álvarez +# +# Proxecto Trasno - Adaptación do software libre á lingua galega: Se desexas +# colaborar connosco, podes atopar máis información en http://www.trasno.net +# +# Jesús Bravo Álvarez , 2000-2001. +# Sergio Rua , 1999. +# Ignacio Casal Quinteiro , 2005, 2006. +# Ignacio Casal Quinteiro , 2007, 2008. +# Mancomún - Centro de Referencia e Servizos de Software Libre , 2009. +# Suso Baleato , 2009. +# Fran Diéguez , 2009. +# Antón Méixome , 2009. +# Fran Diéguez , 2010. +# Fran Dieguez , 2010. +# + + + + +========== gu.po ========== +# translation of mate-media.master.gu.po to Gujarati +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Sweta Kothari , 2008, 2009. +# Ankit Patel , 2009. + + + + +========== he.po ========== +# translation of mate-media.HEAD.he.po to Hebrew +# translation of mate-media.mate-2-0-gstreamer.he.po to Hebrew +# translation of mate-media.mate-2-0.he.po to Hebrew +# This file is distributed under the same license as the PACKAGE package. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# Gil 'Dolfin' Osher , 2002,2003 +# + + + + +========== hi.po ========== +# translation of mate-media.master.po to Hindi +# Copyright (C) 2003, 2004, 2005, 2006, 2008, 2009 Free Software Foundation, Inc. +# +# G Karunakar , 2003. +# Ravishankar Shrivastava , 2004. +# Rajesh Ranjan , 2005, 2006, 2008, 2009. +# Rajesh Ranjan , 2009. + + + + +========== hr.po ========== +# Translation of mate-media to Croatiann +# Copyright (C) Croatiann team +# Translators: Automatski Prijevod <>,Denis Lackovic ,pr pr ,Robert Sedak , + + + + +========== hu.po ========== +# Hungarian translation of mate-media. +# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. +# This file is distributed under the same license as the mate-media package. +# +# Szabolcs Ban , 1999, 2000. +# Miklos Szel , 2000. +# Gergely Nagy , 2001. +# Andras Timar , 2001, 2002, 2003. +# Emese Kovacs , 2002. +# Laszlo Dvornik , 2004. +# Gabor Kelemen , 2004, 2005, 2006, 2007, 2008, 2009, 2010. +# Mate ORY , 2006. + + + + +========== id.po ========== +# + + + + +========== it.po ========== +# mate-media Italian translation +# Copyright (C) 2000-2009, 2010 Free Software Foundation, Inc. +# This file is distributed under the same licence of the mate-media package +# Salvatore Isaja , 2000-2002. +# Luca Ferretti . +# Alessio Frusciante , 2004. +# Salvatore Isaja , 2004, 2005. +# +# Milo Casagrande , 2006-2009, 2009, 2010. + + + + +========== ja.po ========== +# mate-media ja.po. +# Copyright (C) 1998-2000, 2002-2010 Free Software Foundation, Inc. +# Mitsuru Oka <95i44@is.kochi-u.ac.jp>, 1998. +# Eiichiro ITANI , 1999. +# Akira TAGOH , 2000. +# Takayuki KUSANO , 2002, 2009-2010. +# KAMAGASAKO Masatoshi , 2003. +# Takeshi AIHANA , 2003-2009. +# Satoru SATOH , 2006. +# Hideki Yamane (Debian-JP) , 2010. +# + + + + +========== ka.po ========== +# Georgian translation for Mate Media. +# # Copyright © 2006 Georgian Ubuntu Translators. +# Alexander Didebulidze , 2005. +# + + + + +========== kn.po ========== +# translation of mate-media.master.kn.po to Kannada +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Shankar Prasad , 2008, 2009, 2010. + + + + +========== ko.po ========== +# mate-media ko.po +# This file is distributed under the same license as the mate-media package. +# +# Updated by Young-Ho, Cha , 2000, 2006, 2007. +# Changwoo Ryu , 1998, 2002, 2003, 2004, 2006, 2008, 2009, 2010. +# +# + + + + +========== ku.po ========== +# translation of ku.po to Kurdish +# translation of mate-media.HEAD.po to Kurdish +# German translation of PACKAGE. +# Copyright (C) 2005 THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# Erdal Ronahî , 2005. +# Erdal Ronahi , 2005, 2006. +# + + + + +========== lt.po ========== +# Lithuanian translation of mate-media +# Copyright © 2000-2010 Free Software Foundation, Inc. +# Gediminas Paulauskas , 2000-2003. +# Žygimantas Beručka , 2003-2006, 2009, 2010. +# Justina Klingaitė , 2005. +# Gintautas Miliauskas , 2007. +# Rimas Kudelis , 2009. +# Aurimas Černius , 2010. + + + + +========== lv.po ========== +# translation of lv.po to Latvian +# Mate-media for Latvian. +# Copyright (C) 2001, 2006, 2009 Free Software Foundation, Inc. +# +# Artis Trops , 2001. +# Raivis Dejus , 2006, 2009. +# Peteris Krisjanis , 2010. + + + + +========== mai.po ========== +# translation of mai.po to Hindi +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Sangeeta Kumari , 2009. +# Rajesh Ranjan , 2009. + + + + +========== mg.po ========== +# MALAGASY TRANSLATION OF MATE-MEDIA. +# Copyright (C) 2006-2009 THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# Thierry Randrianiriana , 2006-2009. + + + + +========== mk.po ========== +# translation of mate-media.HEAD.mk.po to Macedonian +# translation of mate-media.HEAD.po to +# translation of mate-media.HEAD.po to +# This file is distributed under the same license as the PACKAGE package. +# Copyright (C) 2004 THE PACKAGE'S COPYRIGHT HOLDER. +# +# Misa Popovic , 2003. +# Vladislav Bidikov , 2003. +# Ivan Stojmirov , 2003. +# Arangel Angov , 2003, 2006, 2008. +# Арангел Ангов , 2005. +# Jovan Naumovski , 2006, 2007, 2008. + + + + +========== ml.po ========== +# translation of mate-media.master.ml.po to Malayalam +# This file is distributed under the same license as the mate-media package. +# Copyright (C) 2003, 2006-2007, 2010 mate-media'S COPYRIGHT HOLDER. +# +# FSF-India , 2003. +# Ani Peter , 2006, 2007. +# Praveen Arimbrathodiyil , 2010. + + + + +========== mn.po ========== +# translation of mn.po to Mongolian +# translation of mate-media.mate-2-4.po to Mongolian +# translation of mate-media.HEAD.po to Mongolian +# translation of mate-media.HEAD.mn.po to Mongolian +# This file is distributed under the same license as the PACKAGE package. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER. +# Sukhochir , 2003. +# Sanlig Badral , 2003. +# Sanlig Badral , 2003, 2004. +# Sanlig Badral , 2003, 2004, 2006. + + + + +========== mr.po ========== +# translation of mr.po to Marathi +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Rahul Bhalerao , 2006. +# Sandeep Shedmake , 2008, 2009. +# Sandeep Shedmake , 2009, 2010. + + + + +========== ms.po ========== +# Mate-media Bahasa Melayu (ms) +# Jika takut risiko, Jangan bicara tentang Perjuangan +# Hasbullah Bin Pit (sebol) , 2001,2002, 2003 +# + + + + +========== nb.po ========== +# Norwegian (bokmål dialect) translation of the mate-media module. +# Copyright (C) 1998-2004, 2005 Free Software Foundation, Inc. +# Kjartan Maraas , 1998-2010. +# Terance Edward Sola , 2005. +# + + + + +========== nds.po ========== +# Low German translation for mate-media. +# Copyright (C) 2009 mate-media's COPYRIGHT HOLDER +# This file is distributed under the same license as the mate-media package. +# Nils-Christoph Fiedler , 2009. +# + + + + +========== ne.po ========== +# translation of mate-media.HEAD.ne.po to Nepali +# This file is distributed under the same license as the PACKAGE package. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER. +# +# Jyotshna Shrestha , 2005. +# Ganesh Ghimire , 2005. +# Bishnu Adhikari , 2005. +# Jaydeep Bhusal , 2005. +# Shiva Pokharel , 2005. +# Shyam Krishna Bal , 2006. +# Mahesh subedi , 2006. +# Shiva Prasad Pokharel , 2006. +# Nabin Gautam , 2007. + + + + +========== nl.po ========== +# Dutch translation for mate-media +# +# This package is distributed under the same license as the mate-media package. +# +# Wing Tung Leung , 1999. +# Dennis Smit , 2002. +# Huib Kleinhout , 2002. +# Tino Meinen , 2002, 2007, 2008. +# Taco Witte , 2002. +# Reinout van Schouwen , 2002–2006, 2009 +# Wouter Bolsterlee , 2006–2010. +# Mario Blättermann , 2010. +# +# alert - waarschuwing +# event - gebeurtenis +# + + + + +========== nn.po ========== +# translation of nn.po to +# translation of nn.po to Norwegian Nynorsk +# Norwegian (nynorsk) translation of mate-media. +# Copyright (C) 2000-2002 Free Software Foundation +# +# Kjartan Maraas , 2001. +# Roy-Magne Mo , 2001-2002. +# Åsmund Skjæveland , 2003, 2004, 2005, 2006. +# Torstein Adolf Winterseth , 2009. +# Åsmund Skjæveland , 2010. + + + + +========== oc.po ========== +# Translation of oc.po to Occitan +# Occitan translation of mate-media. +# Copyright (C) 2007 Free Software Foundation, Inc. +# This file is distributed under the same license as the mate-media package. +# +# Yannig Marchegay (Kokoyaya) , 2007. + + + + +========== or.po ========== +# translation of mate-media.mate-2-30.or.po to Oriya +# Oriya translation of mate-media.HEAD.pot. +# Copyright (C) 2004, 2006, 2009, 2010 Free Software Foundation, Inc. +# This file is distributed under the same license as the mate-media package. +# $Id: or.po,v 1.1 2006/04/03 23:09:31 gmohanty Exp $ +# +# Parashar Nayak , 2004. +# Gora Mohanty , 2004, 2006. +# Manoj Kumar Giri , 2009, 2010. + + + + +========== pa.po ========== +# translation of mate-media.HEAD.po to Punjabi +# Copyright (C) 2004 THE mate-media.HEAD'S COPYRIGHT HOLDER +# This file is distributed under the same license as the mate-media.HEAD package. +# +# Amanpreet Singh Alam , 2004. +# A S Alam , 2005, 2006, 2007, 2009, 2010. +# Amanpreet Singh Alam , 2008, 2009. + + + + +========== pl.po ========== +# Polish translation for gnome-media. +# Copyright © 1999-2010 the gnome-media authors. +# This file is distributed under the same license as the gnome-media package. +# Zbigniew Chyla , 1999-2003. +# Marcin Owsiany , 2000. +# Artur Flinta , 2003-2006. +# Wadim Dziedzic , 2007. +# Tomasz Dominikowski , 2008-2009. +# Piotr Drąg , 2010. +# Aviary.pl , 2007-2010. +# + + + + +========== pt.po ========== +# mate-media's Portuguese Translation +# Copyright © 1998, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 mate-media +# Distributed under the same licence as the mate-media package +# Nuno Ferreira , 1998. +# Duarte Loreto , 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010. +# + + + + +========== pt_BR.po ========== +# Brazilian Portuguese translation of MATE Media. +# Copyright (C) 2001-2009 the MATE Media authors. +# This file is distributed under the same license as the mate-media package. +# Gustavo Maciel Dias Vieira , 2001. +# Evandro Fernandes Giovanini , 2002-2003. +# Raphael Higino , 2004-2005. +# Licio Fernando Nascimento da Fonseca , 2006. +# Leonardo Ferreira Fontenelle , 2006, 2008, 2009. +# Guilherme de S. Pastore , 2006. +# Og Maciel , 2007. +# Fabrício Godoy , 2008. +# Djavan Fagundes , 2008. +# Jonh Wendell , 2009. +# Henrique P Machado , 2009. +# André Gondim , 2009, 2010. +# + + + + +========== ro.po ========== +# translation of mate-media.HEAD.ro.po to Română +# translation of mate-media.HEAD.ro.po to +# Romanian translation for mate-media. +# Copyright (C) 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. +# Mugurel Tudor , 2002-2003, 2004, 2005, 2006, 2007. +# Adi Roiban https://launchpad.net/~adiroiban, 2008, 2009 +# Lucian Adrian Grijincu , 2010. + + + + +========== ru.po ========== +# translation of mate-media.master.ru.po to Russian +# Russian translation of mate-media +# Copyright (C) 1998-2008, 2010 Free Software Foundation, Inc. +# +# Valek Filippov , 2000-2002. +# Dmitry G. Mastrukov , 2002-2004. +# Andrew W. Nosenko , 2003. +# Leonid Kanter , 2004, 2005, 2006. +# Valery Inozemtsev , 2009. +# Alexandre Prokoudine , 2009. +# Yuri Kozlov , 2010. +# Max Valianskiy 1998-99 +# Sergey Panov 1999 + + + + +========== rw.po ========== +# translation of mate-media to Kinyarwanda. +# Copyright (C) 2005 Free Software Foundation, Inc. +# This file is distributed under the same license as the mate-media package. +# Steve Murphy , 2005 +# Steve performed initial rough translation from compendium built from translations provided by the following translators: +# Philibert Ndandali , 2005. +# Viateur MUGENZI , 2005. +# Noëlla Mupole , 2005. +# Carole Karema , 2005. +# JEAN BAPTISTE NGENDAHAYO , 2005. +# Augustin KIBERWA , 2005. +# Donatien NSENGIYUMVA , 2005.. +# + + + + +========== si.po ========== +# translation of si.po to Sinhala +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Danishka Navin , 2007. + + + + +========== sk.po ========== +# translation of sk.po to Slovak +# MATE-media Slovak translation +# Copyright (C) 2000-2002, 2003, 2004, 2005, 2007 Free Software Foundation, Inc. +# +# $Id: sk.po,v 1.69 2006/01/31 00:07:02 thomasvs Exp $ +# +# Stanislav Visnovsky , 2000-2002,2003, 2004. +# Stanislav Višňovský , 2002. +# Stanislav Visnovsky , 2003. +# Marcel Telka , 2005. +# Peter Tuharsky , 2007. + + + + +========== sl.po ========== +# Slovenian translations for mate-media. +# Copyright (C) 2005-2007 Free Software Foundation, Inc. +# This file is distributed under the same license as the mate-media package. +# +# Andraž Tori , 2000. +# Matjaž Horvat , 2006. +# Matic Žgur , 2007. +# Matej Urbančič , 2007 - 2010. +# + + + + +========== sq.po ========== +# Përkthimi i mesazheve të mate-media në shqip +# Copyright (C) 2003-2006, 2008 Free Software Foundation, Inc. +# This file is distributed under the same license as the mate-media package. +# +# Laurent Dhima , 2003-2006, 2008. + + + + +========== sr.po ========== +# Serbian translation of mate-media +# Courtesy of Prevod.org team (http://prevod.org/) -- 2003, 2004, 2005, 2006, 2007. +# +# This file is distributed under the same license as the mate-media package. +# +# Maintainer: Данило Шеган +# Reviewed on 2005-08-08 by: Игор Несторовић " +# Translated on 2006-01-31 by: Слободан Д. Средојевић +# Милош Поповић , 2010. +# + + + + +========== sr@latin.po ========== +# Serbian translation of mate-media +# Courtesy of Prevod.org team (http://prevod.org/) -- 2003, 2004, 2005, 2006, 2007. +# +# This file is distributed under the same license as the mate-media package. +# +# Maintainer: Danilo Šegan +# Reviewed on 2005-08-08 by: Igor Nestorović " +# Translated on 2006-01-31 by: Slobodan D. Sredojević +# Miloš Popović , 2010. +# + + + + +========== sv.po ========== +# Swedish messages for mate-media. +# Copyright (C) 1998-2010 Free Software Foundation, Inc. +# Martin Wahlen , 1998, 1999. +# Andreas Hyden , 2000. +# Christian Rose , 2001, 2002, 2003, 2004, 2005, 2006. +# Daniel Nylander , 2006, 2007, 2008, 2009, 2010. +# +# $Id: sv.po,v 1.99 2006/12/22 21:34:08 dnylande Exp $ +# + + + + +========== ta.po ========== +# translation of mate-media.master.ta.po to Tamil +# translation of media.po to +# Tamil translation of Tamil Mate Media 2.4. +# Copyright (C) 2003, 2004, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. +# +# +# Dinesh Nadarajah , 2003. +# Jayaradha N , 2004. +# Felix , 2006. +# Dr.T.Vasudevan , 2007, 2009. +# I. Felix , 2008, 2009. +# Dr,T,Vasudevan , 2010. + + + + +========== te.po ========== +# translation of te.po to Telugu +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Krishna Babu K , 2008, 2009, 2010. + + + + +========== th.po ========== +# Thai translation of mate-media. +# This file is distributed under the same license as the mate-media package. +# Copyright (C) 2003-2010 Free Software Foundation, Inc. +# Sawit Kasuriya , 2003. +# Sapa , 2003, 2004. +# Chanchai Junlouchai , 2004. +# Supranee Thirawatthanasuk , 2004. +# Theppitak Karoonboonyanan , 2005-2010. +# + + + + +========== tk.po ========== +# Turkmen translation of mate-media +# Copyright (C) 2004 Free Software Foundation +# Copyright (C) 2004 Gurban Mühemmet Tewekgeli and +# Kakilik - Turkmen free software developers community +# This file is distributed under the terms of GNU General Public License (GPL) +# Gurban Mühemmet Tewekgeli , 2004. +# +# + + + + +========== tr.po ========== +# Turkish translation of mate-media. +# Copyright (C) 2000,2001,2002,2003, 2004, 2005 Free Software Foundation, Inc. +# Fatih Demir , 2000. +# Arman Aksoy (Armish) , 2003. +# Baris Cicek , 2004, 2005. +# +# Baris Cicek , 2008, 2009. + + + + +========== ug.po ========== +# Uyghur translations for mate-media. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# Sahran , 2010-09-22. +# + + + + +========== uk.po ========== +# Ukrainian translation of the mate-media module. +# Copyright (C) 1999 Free Software Foundation, Inc. +# Yuri Syrota 1999 +# Maxim Dizumanenko , 2002-2007 +# +# wanderlust , 2009. + + + + +========== vi.po ========== +# Vietnamese translation for MATE Media. +# Copyright © 2009 MATE i18n Project for Vietnamese. +# Nguyễn Thái Ngọc Duy , 2002. +# Clytie Siddall , 2005-2009. +# + + + + +========== wa.po ========== +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2002 Free Software Foundation, Inc. +# Pablo Saratxaga , 2002. +# Pablo Saratxaga , 2004. +# Lucyin Mahin , 2004. +# + + + + +========== xh.po ========== +# Xhosa translation of mate-media +# Copyright (C) 2005 Canonical Ltd. +# This file is distributed under the same license as the mate-media package. +# Translation by Canonical Ltd with thanks to +# Translation World CC in South Africa, 2005. +# + + + + +========== zh_CN.po ========== +# Simplified Chinese translation of mate-media +# Copyright (C) 2002, 2003, 2004, 2007, 2009, 2010 Free Software Foundation, Inc. +# Dillion Chen , 1999 +# Replaced by He Qiangqiang , 2002 +# Sun G11n , 2002 +# Funda Wang , 2003,2004. +# Yang Zhang , 2007. +# Deng Xiyue , 2009. +# Hinker Liu , 2009. +# Aron Xu , 2010. +# + + + + +========== zh_HK.po ========== +# Chinese (Hong Kong) translation of mate-media. +# Copyright (C) 1999-2007 Free Software Foundation, Inc. +# Fernando , 1999. +# Abel Cheung , 2001-2003. +# Woodman Tuen , 2004-2007. +# Chao-Hsiung Liao , 2008. +# +# + + + + +========== zh_TW.po ========== +# Chinese (Taiwan) translation of mate-media. +# Copyright (C) 1999-2007 Free Software Foundation, Inc. +# Fernando , 1999. +# Abel Cheung , 2001-2003. +# Woodman Tuen , 2004-2007. +# Chao-Hsiung Liao , 2008. +# +# + + + + diff --git a/po/gu.po b/po/gu.po new file mode 100644 index 0000000..83a43eb --- /dev/null +++ b/po/gu.po @@ -0,0 +1,439 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Ankit Patel , 2009 +# Milan Savaliya , 2016 +# sweta , 2008, 2009 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-19 11:49+0000\n" +"Last-Translator: monsta \n" +"Language-Team: Gujarati (http://wiki.ukui.org/trans/gu/)\n" +"Language: gu\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "સાઉન્ડ" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "સાઉન્ડ વોલ્યુમ અને સાઉન્ડ ઘટનાઓને બદલો" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "અવાજનું પ્રમાણ નિયંત્રક" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "ડેસ્કટોપ વોલ્યુમ નિયંત્રણ ને બતાવો" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "આ કાર્યક્રમ ની આવૃત્તિ" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "ડિબગ ઍનેબલ કરો" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr "અવાજનું પ્રમાણ નિયંત્રક" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "જવાબ આપવા સાઉન્ડ સિસ્ટમ માટે રાહ જોઇ રહ્યા છે" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "શરૂઆતી પાંનુ" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr "અવાજનું પ્રમાણ નિયંત્રક" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "ઈનપુટ" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "આઉટપુટ" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "માઇક્રોફોન નો અવાજ" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr "અવાજનું પ્રમાણ નિયંત્રક" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "ડાબું" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "જમણું" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "રિઅર" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "આગળ" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "ન્યૂનત્તમ" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "મહત્તમ" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "સંતુલન (_B):" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "ફાડે (_F):" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "ઉપવુફર (_S):" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "Unamplified" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "૧૦૦%" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "મૂંગુ" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "રૂપરેખા (_P):" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "જોડનાર (_n):" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "નિષ્ક્રિય થયેલ છે" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "%u આઉટપુટ" +msgstr[1] "%u આઉટપુટો" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "%u ઈનપુટ" +msgstr[1] "%u ઈનપુટો" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "નામ" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "સાઉન્ડ ની અસરો" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "સચેત વોલ્યુમ (_A): " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "આઉટપુટ વોલ્યુમ (_O): " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "હાર્ડવેર" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "રૂપરેખાંકિત કરવા માટે ઉપકરણને પસંદ કરો (_h):" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "પસંદ થયેલ ઉપકરણ માટે સુયોજનો:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "ઇનપુટ વોલ્યુમ (_I): " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "ઇનપુટ સ્તર:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "સાઉન્ડ ઇનપુટ માટે ઉપકરણ ને પસંદ કરો (_h):" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "સાઉન્ડ આઉટપુટ માટે ઉપકરણ ને પસંદ કરો (_h):" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "કાર્યક્રમો" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "કાર્યક્રમ અત્યારે ઓડિયો ને ચલાવતુ અથવા રેકોર્ડ કરતુ નથી." + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "સાઉન્ડ પસંદગીઓ" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "સાઉન્ડ નથી" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "બિલ્ટ-ઇન" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "કસ્ટમ" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "ઘટના સાઉન્ડની ચકાસણી કરી રહ્યા છે" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "મૂળભૂત" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "થીમ માંથી" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "પ્રકાર" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "સાઉન્ડ થીમ (_t):" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "સચેત સાઉન્ડ ને પસંદ કરો (_h):" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "વિન્ડો અને બટન સાઉન્ડો ને સક્રિય કરો (_w)" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "સાઉન્ડ પસંદગીઓ ને શરૂ કરવામાં નિષ્ફળ: %s" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "મૂંગુ (_M)" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "સાઉન્ડ પસંદગીઓ (_S)" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "" diff --git a/po/he.po b/po/he.po new file mode 100644 index 0000000..d372bc1 --- /dev/null +++ b/po/he.po @@ -0,0 +1,438 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Gil 'Dolfin' Osher , 2002, 2003 +# Yaron Shahrabani , 2012 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-19 11:49+0000\n" +"Last-Translator: monsta \n" +"Language-Team: Hebrew (http://wiki.ukui.org/trans/he/)\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "קול" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "שינוי עצמת השמע והצלילים המשויכים לאירועים" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "בקרת עצמה" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "הצגת בקרת עצמה בשולחן העבודה" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "גרסת יישום זה" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr " — יישומון בקרת העצמה של MATE" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "ממתין לתגובת מערכת הקול" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "עמוד התחלה" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr " — בקר העצמה של MATE" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "קלט" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "פלט" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "עצמת המיקרופון" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "עצמת פלט השמע" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr " — יישומון בקרת העצמה של MATE" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "שמאלה" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "ימינה" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "אחורי" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "קדמי" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "מזערי" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "מרבי" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "_איזון:" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "_עמעום:" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "_סאבוופר" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "לא מוגבר" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "100%" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "השתק" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "_פרופיל:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "מח_בר:" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "מכובה" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "פלט אחד" +msgstr[1] "%u פלטים" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "קלט אחד" +msgstr[1] "%u קלטים" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "שם" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "בדיקת רמקולים עבור %s" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "בדיקת הרמקולים" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "אפקטים קוליים" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "עצמת צליל ה_התראה:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "עצמת ה_פלט:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "חומרה" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "בחירת התקן לה_גדיר:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "הגדרות עבור ההתקן הנבחר:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "עצמת ה_קלט:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "רמת הקלט:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "ב_חירת התקן להקלטת קול:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "ב_חירת התקן להשמעת הצלילים:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "יישומים" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "אין אף יישום המנגן או מקליט כעת צלילים." + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "העדפות קול" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "ללא צלילים" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "מובנה" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "התאמה אישית" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "בדיקת צליל אירוע" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "בררת מחדל" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "מערכת נושא" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "סוג" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "_ערכת צלילים:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "ב_חירת צליל התראה:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "הפעלת צלילים עבור _חלונות ולחצנים" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "עצור" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "בדיקה" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "כשל בהפעלת העדפות השמע: %s" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "_השתק" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "העדפות_ קול" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "" diff --git a/po/hi.po b/po/hi.po new file mode 100644 index 0000000..60552a2 --- /dev/null +++ b/po/hi.po @@ -0,0 +1,440 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# G Karunakar , 2003 +# Rajesh Ranjan , 2009 +# Rajesh Ranjan , 2005, 2006, 2008, 2009 +# Ravishankar Shrivastava , 2004 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-19 11:49+0000\n" +"Last-Translator: monsta \n" +"Language-Team: Hindi (http://wiki.ukui.org/trans/hi/)\n" +"Language: hi\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "ध्वनि" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "ध्वनि आवाज और ध्वनि घटना बदलें" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "आवाज निर्धारक नियंत्रक" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "डेस्कटॉप आवाज नियंत्रण दिखाएँ" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "इस अनुप्रयोग का संस्करण" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr "आवाज निर्धारक नियंत्रक" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "ध्वनि तंत्र की प्रतिक्रिया के लिए प्रतीक्षारत" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "आरंभ पेज" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr "आवाज निर्धारक नियंत्रक" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "इनपुट" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "आउटपुट" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr "आवाज निर्धारक नियंत्रक" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "बायाँ" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "दाहिना" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "पिछला" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "अग्र भाग" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "न्यूनतम" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "अधिकतम" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "संतुलन (_B):" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "धुंधला (_F):" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "उप वूफ़र (_S):" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "बिना संवर्द्धित" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "100%" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "मौन" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "प्रोफाइल (_P):" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "कनेक्टर (_n):" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "अक्षम" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "%u आउटपुट" +msgstr[1] "%u आउटपुट" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "%u इनपुट" +msgstr[1] "%u इनपुट" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "नाम" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "ध्वनि प्रभाव" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "आवाज चेताएँ (_A): " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "आउटपुट आवाज (_O): " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "हार्डवेयर" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "विन्यस्त करने के लिए कोई युक्ति चुनें (_h):" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "चयनित युक्ति के लिए सेटिंग:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "इनपुट आवाज (_I): " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "इनपुट स्तर:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "ध्वनि इनपुट के लिए कोई युक्ति चुनें (_h):" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "ध्वनि आउटपुट के लिए कोई युक्ति चुनें (_h):" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "अनुप्रयोग" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "कोई अनुप्रयोग अभी ध्वनि बजा या रिकार्ड नहीं कर रहा है." + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "ध्वनि वरीयता" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "कोई ध्वनि नहीं" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "अंतर्निर्मित" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "अनुकूलित" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "घटना ध्वनि जाँच रहा है" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "डिफ़ॉल्ट" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "प्रसंग से" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "क़िस्म" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "ध्वनि प्रसंग (_t):" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "कोई चेतावनी ध्वनि चुनें (_h):" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "विंडो और बटन ध्वनि सक्रिय करें (_w)" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "ध्वनि वरीयता आरंभ करने में विफल: %s" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "मूक (_M)" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "ध्वनि वरीयता (_S)" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "" diff --git a/po/hr.po b/po/hr.po new file mode 100644 index 0000000..d508abf --- /dev/null +++ b/po/hr.po @@ -0,0 +1,443 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Ivan Branimir Skoric , 2016 +# Ivica Kolić , 2013 +# Elvis M. Lukšić , 2016 +# Tomislav Krznar , 2014 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-19 11:49+0000\n" +"Last-Translator: monsta \n" +"Language-Team: Croatian (http://wiki.ukui.org/trans/hr/)\n" +"Language: hr\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "Zvuk" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "Promijeni glasnoću zvuka i zvučne događaje" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "Nadzor glasnoće" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "Prikaži nadzor glasnoće na radnoj površini" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "Inačica ove aplikacije" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "Omogući otkrivanje pogrešaka" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr "— MATE programčić za nadzor glasnoće" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "Zvučni sustav nije dostupan" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "Čekanje na odziv zvučnoga sustava" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "Pozadinski zvučni sustav" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "Početna stranica" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr " — MATE nadzor glasnoće" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "Ulaz" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "Izlaz" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "Glasnoća mikrofona" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "Glasnoća izlaznog zvuka" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr "MATE programčić za nadzor glasnoće" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "Lijevo" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "Desno" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "Straga" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "Sprijeda" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "Najniže" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "Najviše" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "_Ravnoteža:" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "_Snižavanje:" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "_Niskofrekventni zvučnik:" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "Nepojačano" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "100%" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "Bez zvuka" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "_Profil:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "Sp_ojnik:" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "Onemogućeno" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "%u izlaz" +msgstr[1] "%u izlaza" +msgstr[2] "%u izlaza" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "%u ulaz" +msgstr[1] "%u ulaza" +msgstr[2] "%u ulaza" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "Ime" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "Provjera zvučnika za %s" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "Provjeri zvučnike" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "Zvučni učinci" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "_Glasnoća upozorenja: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "_Glasnoća izlaza:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "Hardver" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "O_daberi uređaj za prilagodbu:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "Postavke za odabrani uređaj:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "_Ulazna glasnoća:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "Ulazna razina:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "O_daberi uređaj za ulaz zvuka:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "O_daberi uređaj za izlaz zvuka:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "Aplikacije" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "Nijedna aplikacija trenutno ne izvodi niti snima zvuk." + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "Zvučne prilagodbe" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "Bez zvukova" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "Ugrađeno" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "Prilagođeno" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "Provjera zvuka događaja" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "Zadano" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "Iz teme" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "Vrsta" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "Zvučna _tema:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "O_daberi zvuk upozorenja:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "Omogući _zvukove prozora i gumba" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "Zaustavi" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "Provjeri" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "Nije uspjelo pokretanje zvučnih prilagodbi: %s" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "_Bez zvuka" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "_Zvučne prilagodbe" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "Nepoznato" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "Mono" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "Sprijeda lijevo" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "Sprijeda desno" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "Sprijeda po sredini" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "Niskofrekventno" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "Straga lijevo" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "Straga desno" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "Straga po sredini" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "Sprijeda lijevo od sredine" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "Sprijeda desno od sredine" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "Bočno lijevo" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "Bočno desno" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "Gore sprijeda lijevo" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "Gore sprijeda desno" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "Gore sprijeda po sredini" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "Gore po sredini" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "Gore straga lijevo" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "Gore straga desno" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "Gore straga po sredini" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "Stereo" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "Surround 4.0" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "Surround 4.1" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "Surround 5.0" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "Surround 5.1" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "Surround 7.1" diff --git a/po/hu.po b/po/hu.po new file mode 100644 index 0000000..af5d0a9 --- /dev/null +++ b/po/hu.po @@ -0,0 +1,448 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Andras Timar , 2001-2003 +# Emese Kovacs , 2002 +# Falu.Me, 2015 +# Falu , 2015 +# Gabor Kelemen , 2004-2010 +# Gergely Nagy , 2001 +# KAMI KAMI , 2015 +# Laszlo Dvornik , 2004 +# Mate ORY , 2006 +# Miklos Szel , 2000 +# Rezső Páder , 2014,2017 +# Szabolcs Ban , 1999-2000 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-19 11:49+0000\n" +"Last-Translator: Rezső Páder \n" +"Language-Team: Hungarian (http://wiki.ukui.org/trans/hu/)\n" +"Language: 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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "Hang" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "Hangerő és hangesemények módosítása" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "Hangerőszabályzó" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "Hangerőszabályzó megjelenítése" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "Ezen alkalmazás verziója" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "Hibakeresés engedélyezése" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr " – MATE hangerőszabályzó kisalkalmazás" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "A hangrendszer nem elérhető" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "Várakozás a hangrendszer válaszára" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "Hangrendszer háttér" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "Indulóoldal" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr " – MATE hangerőszabályzó" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "Bemenet" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "Kimenet" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "Mikrofon hangereje" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "Hangkimenet hangereje" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr "MATE hangerőszabályzó kisalkalmazás" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "Bal" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "Jobb" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "Hátul" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "Elöl" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "Minimum" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "Maximum" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "_Egyensúly:" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "_Elhalás:" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "_Mélysugárzó:" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "Erősítetlen" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "100%" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "Némítás" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "_Profil:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "_Csatlakozó:" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "Tiltva" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "%u kimenet" +msgstr[1] "%u kimenet" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "%u bemenet" +msgstr[1] "%u bemenet" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "Név" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "Hangszóróteszt ehhez: %s" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "Hangszórók tesztelése" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "Hangeffektusok" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "_Riasztás hangereje: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "_Kimeneti hangerő: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "Hardver" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "_Válassza ki a beállítandó eszközt:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "Kiválasztott eszköz beállításai:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "B_emeneti hangerő: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "Bemeneti szint:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "Válasszon _hangbemeneti eszközt:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "Válasszon ha_ngkimeneti eszközt:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "Alkalmazások" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "Jelenleg nincs hangot lejátszó vagy felvevő alkalmazás." + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "Hangbeállítások" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "Nincsenek hangok" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "Beépített" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "Egyéni" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "Eseményhang tesztelése" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "Alapértelmezett" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "Témából" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "Típus" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "Hang_téma:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "Válasszon _riasztáshangot:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "_Ablak- és gombhangok engedélyezése" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "Leállítás" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "Teszt" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "A Hangbeállítások indítása meghiúsult: %s" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "_Némítás" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "_Hangbeállítások" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "Némítva itt:" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "Ismeretlen" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "Monó" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "Bal első" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "Jobb első" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "Közép első" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "LFE" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "Bal hátsó" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "Jobb hátsó" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "Közép hátső" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "Első közép-bal" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "Első közép-jobb" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "Bal szélső" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "Jobb szélső" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "Elöl balra fent" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "Elöl jobbra fent" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "Elöl középen fent" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "Felső közép" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "Hátul balra fent" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "Hátul jobbra fent" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "Hátul középen fent" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "Sztereó" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "Surround 4.0" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "Surround 4.1" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "Surround 5.0" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "Surround 5.1" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "Surround 7.1" diff --git a/po/hy.po b/po/hy.po new file mode 100644 index 0000000..b79adaa --- /dev/null +++ b/po/hy.po @@ -0,0 +1,437 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Siranush , 2015 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-20 15:44+0000\n" +"Last-Translator: monsta \n" +"Language-Team: Armenian (http://wiki.ukui.org/trans/hy/)\n" +"Language: hy\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "Հնչել" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "Փոխել ձայնայնի ուժգնությունը և ձայնային իրադարձությունները" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "Ձայնի բարձրության կարգավորիչ" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "Ցույց տալ աշխատասեղանի ուժգնության հսկողությունը" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "Այս դիմումի տարբերակը" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "Միացնել վրիպազերծը" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr "— MATE ՈՒժգնության Վերահսկիչ Ապլետ" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "Ձայնային համակարգը մատչելի չէ" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "Սպասում ձայնային համակարգի արձագանքի համար" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "Ձայնային համակարգի վերջ" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "Գործարկման էջը" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr "— MATE ՈՒժգնության Վերահսկիչ" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "Մուտքագրում" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "Ելք" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "Խոսափողի ուժգնություն" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "Խոսափողի Ելքի ՈՒժգնություն" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr "MATE ՈՒժգնության Վերահսկիչ Ապլետ" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "Ձախ" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "Աջ" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "Թիկունք" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "Ճակատ" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "Նվազագույն" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "Առավելագույն" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "_Հաշվեկշիռ։" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "_Մոռացվել:" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "_Ենթաձայն։" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "Չուժեղացած" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "100%" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "Անջատել ձայնը" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "_Պրոֆիլ։" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "Միակցիչ:" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "Անջատված" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "%u Արդյունք" +msgstr[1] "%u Արդյունքներ" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "%u Մուտք" +msgstr[1] "%u Մուտքեր" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "Անուն" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "Թեստավորման համար Խոսնակներ %s" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "Թեստավորման խոսնակներ" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "Ձայնային Էֆեկտներ" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "_ՈՒժգնության ազդանշան։" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "_Ելքային ուժգնություն։" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "Ապարատային միջոցներ" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "Ընտրեք սարքի կարգավորումները:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "Ընտրված սարքերի համար պարամետրեր․" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "_Մուտքային ուժգնություն։" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr " Մուտքային մակարդ․" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "Ձայնային մուտքի համար Ընտրել սարք" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "Ձայնային ելքի համար ընտրել սարք" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "Դիմումներ" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "Ոչ մի դիմում ներկայումս չէ նվագել կամ արձանագրել ձայն։" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "Ձայնի Նախընտրանքներ" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "Հնչյուններ չկան" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "Ներկառուցված" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "Սովորություն" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "Ձայնի փորձարկման ազդանշան" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "Հիմնական" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "Թեմայից" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "Տիպ" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "Ձայնային _թեման․" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "Ընտրել ձայնի ազդանշանը․" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "Ակտիվացնել _պատուհանը և ձայնի կոճակը" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "Դադար" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "Թեստ" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "Չհաջողվեց սկսել Ձայնային Նախընտրանքները: %s" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "_Անջատել ձայնը" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "_Ձայնաին Նախընտրանքներ" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "Անհայտ" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "Մոնո" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "Առջև Ձախ" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "Առջև Աջ" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "Առջև Կենտրոն" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "LFE" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "Հետև Ձախ" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "Հետև Աջ" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "Հետև Կենտրոն" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "Առջևի Ձախ կենտրոնի" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "Առջևի Աջ կենտրոնի" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "Ձախ Կողմ" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "Աջ Կողմ" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "Վերին Առջևի Ձախ" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "Վերին Առջևի Աջ" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "Վերին Առջևի ՁԿենտրոն" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "Վերև կենտրոն" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "Վերև Հետև Ձախ" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "Վերև Հետև Աջ" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "Վերև Հետև Կենտրոն" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "Ստերեո" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "Շրջապատել 4.0" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "Շրջապատել 4.1" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "Շրջապատել 5.0" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "Շրջապատել 5.1" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "Շրջապատել 7.1" diff --git a/po/id.po b/po/id.po new file mode 100644 index 0000000..c98e058 --- /dev/null +++ b/po/id.po @@ -0,0 +1,436 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Bervianto Leo Pratama , 2017 +# Willy Sudiarto Raharjo , 2014,2016 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-19 11:49+0000\n" +"Last-Translator: Bervianto Leo Pratama \n" +"Language-Team: Indonesian (http://wiki.ukui.org/trans/id/)\n" +"Language: id\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "Suara" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "Ubah volume suara dan peristiwa suara" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "Pengatur Volume" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "Tampilkan kendali volume desktop" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "Versi dari aplikasi ini" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "Aktifkan mode debug" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr " — Aplet Kendali Volume MATE" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "Sistem suara tidak tersedia" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "Menunggu sistem suara merespon" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "Sistem suara backend" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "Halaman awalan" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr " - Kendali Volume MATE" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "Masukan" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "Keluaran" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "Volume Mikrofon" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "Volume Keluaran Suara" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr "Applet Kontrol Volume MATE" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "Kiri" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "Kanan" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "Belakang" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "Depan" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "Minimum" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "Maksimum" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "_Balance:" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "_Fade:" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "_Subwoofer:" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "Tak diperkuat" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "100%" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "Bisu" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "_Profil:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "Ko_nektor:" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "Dimatikan" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "%u Keluaran" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "%u Masukan" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "Nama" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "Pengujian Speaker bagi %s" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "Uji Speaker" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "Efek Suara" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "Volume peringat_an:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "V_olume keluaran:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "Perangkat keras" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "Pili_h perangkat untuk ditata:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "Tatanan bagi perangkat yang dipilih:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "Volume _masukan:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "Aras masukan:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "Pili_h perangkat bagi masukan suara:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "Pili_h perangkat bagi keluaran suara:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "Aplikasi" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "Tak ada aplikasi yang kini memainkan atau merekam suara." + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "Preferensi Suara" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "Tanpa suara" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "Bawaan" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "Bebas" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "Menguji suara peristiwa" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "Bawaan" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "Dari tema" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "Jenis" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "_Tema suara:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "Pili_h suara waspada:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "Aktifkan suara _jendela dan tombol" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "Stop" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "Tes" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "Gagal memulai Preferensi Suara: %s" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "_Bisu" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "Preferensi _Suara" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "Bisukan di" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "Tidak diketahui" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "Mono" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "Kiri Depan" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "Tengah Depan" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "Tengah Depan" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "LFE" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "Belakang Kiri" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "Belakang Kanan" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "Belakang Tengah" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "Kiri atau Tengah Depan" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "Kanan atau Tengah Depan" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "Sisi Kiri" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "Sisi Kanan" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "Depan Atas Kiri" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "Depan Atas Kanan" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "Depat Atas Tengah" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "Atas Tengah" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "Belakang Atas Kiri" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "Belakang Atas Kanan" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "Belakang Atas Tengah" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "Stereo" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "Surround 4.0" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "Surround 4.1" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "Surround 5.0" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "Surround 5.1" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "Surround 7.1" diff --git a/po/is.po b/po/is.po new file mode 100644 index 0000000..b40133f --- /dev/null +++ b/po/is.po @@ -0,0 +1,433 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-19 13:02+0000\n" +"Last-Translator: monsta \n" +"Language-Team: Icelandic (http://wiki.ukui.org/trans/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 % 10 != 1 || n % 100 == 11);\n" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "Hljóð" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "Útgáfa þessa forrits" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:55 +msgid " — UKUI Volume Control Applet" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:202 +msgid " — UKUI Volume Control" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:333 +msgid "UKUI Volume Control Applet" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "Til vinstri" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "Til hægri" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "Hámark" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "Óvirkt" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "" +msgstr[1] "" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "" +msgstr[1] "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "Heiti" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "Forrit" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "Sérsniðið" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "Sjálfgefið" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "Óþekktur" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "" diff --git a/po/it.po b/po/it.po new file mode 100644 index 0000000..3fabe31 --- /dev/null +++ b/po/it.po @@ -0,0 +1,443 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Alessio Frusciante , 2004 +# Giuseppe Pignataro (Fasbyte01) , 2017 +# Giuseppe Pignataro (Fasbyte01) , 2015-2016 +# Marco Bartolucci , 2016 +# Milo Casagrande , 2009, 2010 +# Salvatore Isaja , 2004, 2005 +# Stefano Karapetsas , 2014 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-19 11:49+0000\n" +"Last-Translator: Giuseppe Pignataro (Fasbyte01) \n" +"Language-Team: Italian (http://wiki.ukui.org/trans/it/)\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "Audio" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "Regola il volume dei suoni e i suoni associati agli eventi" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "Regolazione volume" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "Mostra la regolazione del volume" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "Versione dell'applicazione" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "Abilita debug" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr " — Applet Regolazione volume" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "Sistema sonoro non disponibile" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "Attesa una risposta dal sistema audio" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "Backend sistema sonoro" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "Pagina di avvio" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr " — Regolazione volume" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "Ingresso" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "Uscita" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "Volume microfono" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "Volume di uscita" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr "Applet Regolazione volume di MATE" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "Sinistra" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "Destra" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "Retro" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "Fronte" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "Minimo" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "Massimo" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "_Bilanciamento:" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "_Dissolvenza:" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "Sub_woofer:" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "Non amplificato" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "100%" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "Muto" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "_Profilo:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "Co_nnettore:" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "Disabilitato" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "%u uscita" +msgstr[1] "%u uscite" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "%u ingresso" +msgstr[1] "%u ingressi" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "Nome" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "Test altoparlanti per %s" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "Test altoparlanti" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "Effetti sonori" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "Volume di _avviso: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "V_olume di uscita: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "Hardware" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "_Scegliere un dispositivo da configurare:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "Impostazioni per il dispositivo selezionato:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "Volume d'_ingresso: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "Livello d'ingresso:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "_Scegliere un dispositivo per l'ingresso audio:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "_Scegliere un dispositivo per l'uscita audio:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "Applicazioni" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "Nessuna applicazione sta riproducendo dell'audio." + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "Preferenze dell'audio" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "Nessun suono" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "Integrato" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "Personalizzato" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "Test evento sonoro" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "Predefinito" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "Dal tema" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "Tipo" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "_Tema sonoro:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "_Scegliere un suono di avviso:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "A_bilitare i suoni di finestre e pulsanti" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "Ferma" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "Test" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "Avvio di «Preferenze dell'audio» non riuscito: %s" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "_Escludere audio" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "_Preferenze audio" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "Silenziato a" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "Sconosciuto" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "Mono" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "Anteriore sinistro" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "Anteriore desto" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "Frontale centrale" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "LFE" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "Posteriore sinistro" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "Posteriore destro" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "Posteriore centrale" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "Anteriore sinistro del centro" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "Anteriore destro del centro" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "lato sinistro" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "Lato destro" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "Alto Frontale Sinistra" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "Alto Frontale Destra" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "Alto Frontale Centrale" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "Alto Centrale" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "Alto Posteriore Sinistro" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "Alto Posteriore Destro" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "Alto Posteriore Centrale" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "Stereo" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "Surround 4.0" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "Surround 4.1" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "Surround 5.0" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "Surround 5.1" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "Surround 7.1" diff --git a/po/ja.po b/po/ja.po new file mode 100644 index 0000000..daaa098 --- /dev/null +++ b/po/ja.po @@ -0,0 +1,444 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# ABE Tsunehiko, 2017 +# Akira TAGOH , 2000 +# ふうせん Fu-sen. | BALLOON a.k.a. Fu-sen., 2014 +# Eiichiro ITANI , 1999 +# Hideki Yamane , 2010 +# Hideki Yamane , 2010 +# Ikuru K , 2015 +# KAMAGASAKO Masatoshi , 2003 +# Mitsuru Oka <95i44@is.kochi-u.ac.jp>, 1998 +# Satoru SATOH , 2006 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-19 11:49+0000\n" +"Last-Translator: monsta \n" +"Language-Team: Japanese (http://wiki.ukui.org/trans/ja/)\n" +"Language: ja\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "サウンド" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "音量や音のイベントを変更します" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "音量調節ツール" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "デスクトップの音量を調節するアプレットです" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "このアプリケーションのバージョンを表示する" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "デバッグを有効にする" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr " — MATE 音量調節アプレット" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "サウンドシステムが無効です" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "サウンドシステムからの応答待ちです" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "サウンドシステムバックエンド" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "起動時に開くページを指定する" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr " — 音量調節ツール" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "入力" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "出力" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "マイクのボリューム" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "出力の音量" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr "MATE 音量調整アプレット" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "左" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "右" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "リア" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "フロント" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "最小" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "最大" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "バランス(_B):" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "フェード(_F):" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "サブウーファー(_S):" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "増幅しない" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "100%" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "ミュート" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "プロファイル(_P):" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "コネクター(_N):" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "無効" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "%u 出力" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "%u 入力" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "名前" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "%s でスピーカのテスト" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "スピーカのテスト" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "サウンドの効果" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "警告音の音量(_A): " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "出力の音量(_O): " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "ハードウェア" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "設定するデバイスを選択してください(_H):" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "選択したデバイスの設定:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "入力の音量(_I): " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "入力レベル:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "サウンドの入力デバイスを選択してください(_H):" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "サウンドの出力デバイスを選択してください(_H):" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "アプリケーション" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "現在、再生または録音しているアプリケーションはありません" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "サウンドの設定" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "なし" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "インストール済" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "その他" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "イベント音のテスト中" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "デフォルト" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "テーマ" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "種類" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "サウンドのテーマ(_T):" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "警告音を選択してください(_H):" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "ウィンドウとボタンの音を鳴らす(_W)" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "停止します" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "テスト" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "サウンドの設定を起動できませんでした: %s" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "ミュート(_M)" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "サウンドの設定(_S)" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "不明" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "モノラル" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "左前方" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "右前方" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "中央前方" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "LFE" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "左後方" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "右後方" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "中央後方" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "中央の左前方" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "中央の右前方" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "左側" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "右側" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "上左前方" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "上右前方" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "上中央前方" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "上中央" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "上左後方" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "上右後方" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "上中央後方" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "ステレオ" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "サラウンド 4.0" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "サラウンド 4.1" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "サラウンド 5.0" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "サラウンド 5.1" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "サラウンド 7.1" diff --git a/po/jv.po b/po/jv.po new file mode 100644 index 0000000..54d64d6 --- /dev/null +++ b/po/jv.po @@ -0,0 +1,437 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Ngalim Siregar , 2015 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-22 02:12+0000\n" +"Last-Translator: monsta \n" +"Language-Team: Javanese (http://wiki.ukui.org/trans/jv/)\n" +"Language: jv\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "Swara" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "Ngowahi volume swara lan prastawa swara" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "Kontrol Volume" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr "Kontrol Volume" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr "Kontrol Volume" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr "Kontrol Volume" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "" +msgstr[1] "" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "" +msgstr[1] "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "dingerteni" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "" diff --git a/po/ka.po b/po/ka.po new file mode 100644 index 0000000..ff4ebf5 --- /dev/null +++ b/po/ka.po @@ -0,0 +1,435 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Alexander Didebulidze , 2005 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-19 11:49+0000\n" +"Last-Translator: monsta \n" +"Language-Team: Georgian (http://wiki.ukui.org/trans/ka/)\n" +"Language: ka\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "ხმის კონტროლი" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr "ხმის კონტროლი" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr "ხმის კონტროლი" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr "ხმის კონტროლი" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "სტოპ" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "" diff --git a/po/kk.po b/po/kk.po new file mode 100644 index 0000000..5f18bf7 --- /dev/null +++ b/po/kk.po @@ -0,0 +1,435 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Baurzhan Muftakhidinov , 2017 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-19 14:45+0000\n" +"Last-Translator: monsta \n" +"Language-Team: Kazakh (http://wiki.ukui.org/trans/kk/)\n" +"Language: kk\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "Дыбыс" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "Дыбыс деңгейін басқару" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "Жұмыс үстелінің дыбыс деңгейін басқаруды көрсету" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "Осы бағдарламасының нұсқасы" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "Жөндеуді іске қосу" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr " — MATE дыбысты басқару апплеті" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "Дыбыстық қызметі қолжетерсіз" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "Дыбыстық қызметінің жауабын күту" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "Дыбыстық қызметінің түрі" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "Іске қосылу парағы" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr " — MATE дыбыстарын басқару" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "Кіріс" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "Шығыс" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "Микрофон деңгейі" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "Дыбыстың шығыс деңгейі" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr "MATE дыбысты басқару апплеті" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "Сол жақ" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "Оң жақ" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "Артқы" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "Алды" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "Минимум" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "Максимум" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "_Баланс:" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "Сөндіру" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "_Сабвуфер:" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "Күшейтусіз" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "100%" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "Дыбысын өшіру" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "Проф_иль:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "Ба_йланыстырушы:" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "Сөндірулі" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "%u шығыс" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "%u кіріс" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "Аты" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "%s үшін динамикті тексеру" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "Динамиктерді тексеру" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "Дыбыс эффектілері" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "_Ескертудің дыбыс деңгейі: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "_Шығыс деңгейі: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "Құрылғы" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "Баптау үшін құры_лғыны таңдаңыз:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "Таңдалған құрылғы баптаулары:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "_Кіріс дыбысы:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "Кіріс деңгейі:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "Дыбыс жазатын құры_лғыны таңдаңыз:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "Дыбыс шығаратын құры_лғыны таңдаңыз:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "Қолданбалар" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "Қазір дыбысты ойнатып не жазып тұрған қолданбалар жоқ." + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "Дыбыс баптаулары" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "Дыбыстар жоқ" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "Құрамындағы" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "Таңдауыңызша" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "Оқиға дыбысын сынау" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "Бастапқы" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "Темадан" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "Түрі" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "Дыбыстар _темасы:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "Ес_керту дыбысын таңдау:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "_Терезе және батырмалар дыбыстарын іске қосу" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "Тоқтату" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "Сынау" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "Дыбыстарды басқаруды іске қосу мүмкін емес: %s" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "Дыбысын _басу" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "Дыбы_с баптаулары" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "Белгісіз" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "Моно" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "Алдыңғы сол жақ" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "Алдыңғы оң жақ" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "Алдыңғы ортаңғы" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "LFE" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "Артқы сол жақ" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "Артқы оң жақ" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "Артқы ортаңғы" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "Алдыңғы ортаңғы сол жақ" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "Алдыңғы ортаңғы оң жақ" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "Стерео" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "" diff --git a/po/kn.po b/po/kn.po new file mode 100644 index 0000000..f971744 --- /dev/null +++ b/po/kn.po @@ -0,0 +1,435 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# shankar , 2008, 2009, 2010 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-19 11:49+0000\n" +"Last-Translator: monsta \n" +"Language-Team: Kannada (http://wiki.ukui.org/trans/kn/)\n" +"Language: kn\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "ಧ್ವನಿ" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "ಧ್ವನಿಯ ಪ್ರಮಾಣ ಹಾಗು ಧ್ವನಿಗಳನ್ನು ಸನ್ನಿವೇಶಗಳನ್ನು ಬದಲಾಯಿಸಿ" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "ಧ್ವನಿ ಪ್ರಮಾಣ ನಿಯಂತ್ರಣ" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "ಗಣಕತೆರೆಯ ಧ್ವನಿ ಪ್ರಮಾಣದ ನಿಯಂತ್ರಣವನ್ನು ತೋರಿಸು" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "ಈ ಅನ್ವಯದ ಆವೃತ್ತಿ" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr "ಧ್ವನಿ ಪ್ರಮಾಣ ನಿಯಂತ್ರಣ" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "ಧ್ವನಿಯ ವ್ಯವಸ್ಥೆಯ ಪ್ರತಿಕ್ರಿಯೆಗಾಗಿ ಕಾಯಲಾಗುತ್ತಿದೆ" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "ಆರಂಭಿಕ ಪುಟ" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr "ಧ್ವನಿ ಪ್ರಮಾಣ ನಿಯಂತ್ರಣ" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "ಇನ್‌ಪುಟ್‌" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "ಔಟ್‌ಪುಟ್" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr "ಧ್ವನಿ ಪ್ರಮಾಣ ನಿಯಂತ್ರಣ" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "ಎಡ" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "ಬಲ" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "ಹಿಂಬದಿಯ" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "ಎದುರಿನ" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "ಕನಿಷ್ಟ" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "ಗರಿಷ್ಟ" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "ಸಮತೋಲನ(_B):" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "ಮಬ್ಬು(_F):" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "ಸಬ್‌ವೂಫರ್(_S):" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "ಆಂಪ್ಲಿಫೈ ಮಾಡದೆ ಇರುವ" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "100%" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "ಮೂಕವಾಗಿಸು" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "ಪ್ರೊಫೈಲ್‌(_P):" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "ಜೋಡಕ(_n):" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "ಅಶಕ್ತಗೊಂಡ" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "ಹೆಸರು" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "ಧ್ವನಿ ಪರಿಣಾಮಗಳು" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "ಸೂಚನೆಯ ಧ್ವನಿ ಪ್ರಮಾಣ(_A): " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "ಔಟ್‌ಪುಟ್ ಧ್ವನಿಯ ಪ್ರಮಾಣ(_O): " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "ಯಂತ್ರಾಂಶ" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "ಸಂರಚಿಸಲು ಒಂದು ಸಾಧನವನ್ನು ಆಯ್ಕೆ ಮಾಡಿ(_h):" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "ಆಯ್ದ ಸಾಧನಗಳಿಗಾಗಿನ ಸಿದ್ಧತೆಗಳು:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "ಇನ್‌ಪುಟ್ ಧ್ವನಿಯ ಪ್ರಮಾಣ(_I): " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "ಇನ್‌ಪುಟ್ ಹಂತ:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "ಧ್ವನಿಯ ಇನ್‌ಪುಟ್‌ಗಾಗಿ ಒಂದು ಸಾಧನವನ್ನು ಆಯ್ಕೆ ಮಾಡಿ(_h):" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "ಧ್ವನಿಯ ಔಟ್‌ಪುಟ್‌ಗಾಗಿ ಒಂದು ಸಾಧನವನ್ನು ಆಯ್ಕೆ ಮಾಡಿ(_h):" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "ಅನ್ವಯಗಳು" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "ಯಾವ ಅನ್ವಯವೂ ಆಡಿಯೊವನ್ನು ಚಲಾಯಿಸುತ್ತಿಲ್ಲ ಅಥವ ರೆಕಾರ್ಡು ಮಾಡುತ್ತಿಲ್ಲ." + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "ಧ್ವನಿಯ ಆದ್ಯತೆಗಳು" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "ಯಾವುದೆ ಶಬ್ಧವಿಲ್ಲ" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "ಒಳನಿರ್ಮಿತ" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "ನನ್ನಿಚ್ಛೆಯ" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "ಸನ್ನಿವೇಶದ ಧ್ವನಿಗಳನ್ನು ಪರೀಕ್ಷಿಸಲಾಗುತ್ತಿದೆ" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "ಪೂರ್ವನಿಯೋಜಿತ" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "ಪರಿಸರವಿನ್ಯಾಸದಿಂದ" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "ಬಗೆ" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "ಧ್ವನಿಯ ಪರಿಸರವಿನ್ಯಾಸ(_t):" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "ಒಂದು ಎಚ್ಚರಿಕೆ ಸೂಚನೆಯ ಶಬ್ಧವನ್ನು ಆಯ್ಕೆ ಮಾಡು(_h):" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "ವಿಂಡೊ ಹಾಗು ಗುಂಡಿಯ ಶಬ್ಧಗಳನ್ನು ಶಕ್ತಗೊಳಿಸು(_w)" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "ಧ್ವನಿಯ ನಿಯಂತ್ರಣಾ ಆದ್ಯತೆಗಳನ್ನು ಆರಂಭಿಸುವಲ್ಲಿ ವಿಫಲತೆ: %s" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "ಮೂಕಗೊಳಿಸು(_M)" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "ಧ್ವನಿಯ ಆದ್ಯತೆಗಳು(_S)" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "" diff --git a/po/ko.po b/po/ko.po new file mode 100644 index 0000000..a1efaed --- /dev/null +++ b/po/ko.po @@ -0,0 +1,440 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Changwoo Ryu , 1998, 2002, 2003, 2004, 2006, 2008, 2009, 2010 +# jaekwon.park , 2014 +# 박정규(Jung-Kyu Park) , 2014 +# 박정규(Jung-Kyu Park) , 2016-2017 +# Seong-ho Cho , 2015 +# Updated by Young-Ho, Cha , 2000, 2006, 2007 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-19 11:49+0000\n" +"Last-Translator: 박정규(Jung-Kyu Park) \n" +"Language-Team: Korean (http://wiki.ukui.org/trans/ko/)\n" +"Language: ko\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "사운드" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "사운드 볼륨과 사운드 이벤트를 바꿉니다" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "볼륨 조정" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "데스크톱 볼륨 조정 표시" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "이 프로그램의 버전" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "디버깅 활성화" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr "— 마테 볼륨 조정 애플릿" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "사운드 시스템 사용이 불가능합니다. " + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "사운드 시스템이 응답하기를 기다립니다" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "사운드 시스템 백엔드" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "시작 페이지" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr "— 마테 볼륨 조정" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "입력" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "출력" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "마이크 볼륨" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "사운드 출력 볼륨" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr "마테 볼륨 조정 애플릿" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "왼쪽" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "오른쪽" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "후방" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "전방" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "최소" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "최대" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "균형(_B):" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "페이드(_F):" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "서브우퍼(_S):" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "증폭하지 않음" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "100%" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "조용히" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "프로파일(_P):" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "커넥터(_N):" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "사용하지 않음" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "%u개 출력" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "%u개 입력" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "이름" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "%s에 대한 스피커 테스트" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "스피커 테스트" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "사운드 효과" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "경보 볼륨(_A): " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "출력 볼륨(_O): " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "하드웨어" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "설정할 장치를 선택하십시오(_H):" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "선택한 장치의 설정:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "입력 볼륨(_I): " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "입력 단계:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "사운드 입력 장치를 선택하십시오(_H):" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "사운드 출력 장치를 선택하십시오(_H):" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "프로그램" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "현재 오디오를 재생하거나 녹음하는 프로그램이 없습니다." + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "사운드 기본 설정" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "소리 없음" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "내장" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "사용자 지정" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "이벤트 소리 테스트" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "기본값" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "테마에서" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "종류" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "사운드 테마(_T):" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "경보 사운드 선택(_H):" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "창 및 단추 사운드 사용(_W)" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "중지" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "테스트" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "사운드 기본 설정 시작에 실패: %s" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "조용히(_M)" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "사운드 기본 설정(_S)" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "음소거" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "알 수 없음" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "모노" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "전방 좌측" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "전방 우측" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "전방 중앙" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "LFE" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "후방 좌측" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "후방 우측" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "후방 중앙" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "전방 중앙 좌측" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "전방 중앙 우측" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "측면 좌측" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "측면 우측" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "상단 전방 좌측" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "상단 전방 우측" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "상단 전방 중앙" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "상단 중앙" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "상단 후방 좌측" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "상단 후방 우측" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "상단 후방 중앙" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "스트레오" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "서라운드 4.0" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "서라운드 4.1" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "서라운드 5.0" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "서라운드 5.1" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "서라운드 7.1" diff --git a/po/ku.po b/po/ku.po new file mode 100644 index 0000000..fd0aa02 --- /dev/null +++ b/po/ku.po @@ -0,0 +1,438 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# erdalronahi , 2005, 2006 +# erdalronahi , 2005 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-19 11:49+0000\n" +"Last-Translator: monsta \n" +"Language-Team: Kurdish (http://wiki.ukui.org/trans/ku/)\n" +"Language: ku\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "Kontrolkirina Deng" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr "Kontrolkirina Deng" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr "Kontrolkirina Deng" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr "Kontrolkirina Deng" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "" +msgstr[1] "" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "" +msgstr[1] "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "Taybet" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "Rawestîne" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "" diff --git a/po/ku_IQ.po b/po/ku_IQ.po new file mode 100644 index 0000000..45720a1 --- /dev/null +++ b/po/ku_IQ.po @@ -0,0 +1,435 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Haval Abdulkarim , 2014 +# Rasti K5 , 2016-2017 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-23 20:27+0000\n" +"Last-Translator: Rasti K5 \n" +"Language-Team: Kurdish (Iraq) (http://wiki.ukui.org/trans/ku_IQ/)\n" +"Language: ku_IQ\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "دەنگ" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "وەشانی ئەم نەرمەواڵەیە" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "چالاککردنی هەڵەدۆزین" + +#: ../ukui-volume-control/applet-main.c:55 +msgid " — UKUI Volume Control Applet" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "دەنگی سیستەم بەردەست نییە" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:202 +msgid " — UKUI Volume Control" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:333 +msgid "UKUI Volume Control Applet" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "چەپ" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "ڕاست" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "100%" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "" +msgstr[1] "" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "" +msgstr[1] "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "ناو" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "گاریگەرییەکانی دەنگ" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "ڕەقەکاڵا" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "نەرمەواڵەکان" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "بێ دەنگ" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "جۆر" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "وەستاندن" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "تاقیکردنەوە" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "نەناسراو" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "" diff --git a/po/ky.po b/po/ky.po new file mode 100644 index 0000000..666c900 --- /dev/null +++ b/po/ky.po @@ -0,0 +1,436 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# chingis, 2013 +# chingis, 2013 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-19 15:40+0000\n" +"Last-Translator: monsta \n" +"Language-Team: Kyrgyz (http://wiki.ukui.org/trans/ky/)\n" +"Language: ky\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "Үн" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "Үн көлөмүн жана үн окуяларын өзгөртүү" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "Көлөм жөндөгүчү" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "Иш столунун көлөм жөндөгүчүн көрсөтүү" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "Бул тиркеменин версиясы" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr " — MATE көлөм жөндөгүчү апплети" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "Үй барагы" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr " — MATE көлөм жөндөгүчү" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "Кириш" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "Чыгыш" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "Микрофон көлөмү" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "Үндүн чыгыш көлөмү" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr " — MATE көлөм жөндөгүчү апплети" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "Сол" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "Оң" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "Арткы" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "Алдыңкы" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "Төмөнкү чеги" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "Жогорку чеги" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "_Балансы:" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "Ө_чүүсү:" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "_Сабвуфери:" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "Күчтүү эмес" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "100%" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "Үнүн өчүрүү" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "_Профили:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "Өчүрүлгөн" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "%u чыгыш" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "%u кириш" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "Аты" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "Динамиктерди текшерүү" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "Үн эффектилери" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "_Кабарландыруу көлөмү: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "_Чыгыш көлөмү: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "Жабдуулар" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "Ырастаганга түзүлүштү _тандаңыз:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "Тандалган түзүлүштүн ырастоолору:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "_Кириш көлөмү: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "Кириш деңгээли:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "Үн киришинин түзүлүшүн _тандаңыз:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "Үн чыгышынын түзүлүшүн _тандаңыз:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "Тиркемелер" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "Учурда, аудиону ойнотуп же жаздырып жаткан тиркеме жок." + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "Үн ырастоолору" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "Үндөрсүз" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "Башка" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "Жарыяланбас" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "Темадан" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "Түрү" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "Үн _темасы:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "Кабарландыруу үнүн _тандоо:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "_Терезе жана кнопка үндөрүн аракетке келтирүү" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "Токтотуу" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "Текшерүү" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "Үн ырастоолорун жүргүзүү мүмкүн эмес: %s" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "Үнүн ө_чүрүү" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "Ү_н ырастоолору" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "" diff --git a/po/lt.po b/po/lt.po new file mode 100644 index 0000000..fb7725c --- /dev/null +++ b/po/lt.po @@ -0,0 +1,447 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Audrius Meskauskas, 2015 +# aurisc4 , 2010 +# Džiugas Grėbliūnas , 2014,2017 +# Gintautas Miliauskas , 2007 +# Justina Klingaitė , 2005 +# Moo, 2015-2017 +# Rimas Kudelis , 2009 +# Žygimantas Beručka , 2003-2006, 2009, 2010 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-19 11:49+0000\n" +"Last-Translator: Džiugas Grėbliūnas \n" +"Language-Team: Lithuanian (http://wiki.ukui.org/trans/lt/)\n" +"Language: lt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n" +"%100<10 || n%100>=20) ? 1 : 2);\n" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "Garsas" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "Keisti garsį ir susieti garsus su įvykiais" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "Garsio valdymas" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "Rodyti darbalaukio garsio valdiklį" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "Programos versija" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "Įgalinti derinimą" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr " — MATE garsio valdymo įtaisas" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "Garso sistema nepasiekiama" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "Laukiama garsų sistemos atsakymo" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "Garso sistemos vidinė pusė" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "Pradžios puslapis" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr " — MATE garsio valdymas" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "Įvestis" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "Išvestis" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "Mikrofono garsis" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "Išvesties garsis" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr "MATE garsio valdymo įtaisas" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "Kairė" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "Dešinė" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "Galas" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "Priekis" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "Minimumas" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "Maksimumas" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "_Balansas:" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "_Perėjimas:" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "_Žemų dažnių garsiakalbis:" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "Nesustiprintas" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "100%" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "Nutildyti" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "_Profilis:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "J_ungtis:" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "Išjungta" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "%u išvestis" +msgstr[1] "%u išvestys" +msgstr[2] "%u išvesčių" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "%u įvestis" +msgstr[1] "%u įvestys" +msgstr[2] "%u įvesčių" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "Vardas" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "%s garsiakalbių tikrinimas" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "Tikrinti garsiakalbius" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "Garso efektai" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "Įspėjimo _garsis: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "Išvesties _garsis: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "Įrenginiai" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "Pasi_rinkite derintiną įrenginį:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "Pasirinkto įrenginio nustatymai:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "Į_vesties garsis: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "Įvesties lygis:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "Pasi_rinkite garso įvesties įrenginį:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "Pasi_rinkite garso išvesties įrenginį:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "Programos" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "Šiuo metu jokia programa negroja ir neįrašinėja garso." + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "Garso nustatymai" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "Jokių garsų" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "Įtaisytasis" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "Pasirinktinis" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "Bandomasis įvykio signalas" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "Numatytasis" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "Iš temos" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "Tipas" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "Garsų _tema:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "Pasi_rinkite įspėjimo garsą:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "Įjungti _langų ir mygtukų garsus" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "Stabdyti" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "Tikrinti" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "Nepavyko atverti garso nustatymų: %s" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "_Nutildyti" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "_Garso nustatymai" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "Nutildyta ties" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "Nežinoma" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "Mono" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "Priekinis kairysis" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "Priekinis dešinysis" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "Priekinis vidurinis" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "LFE" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "Užpakalinis kairysis" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "Užpakalinis dešinysis" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "Užpakalinis vidurinis" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "Priekinis kairysis arba vidurinis" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "Priekinis dešinysis arba vidurinis" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "Šoninis kairysis" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "Šoninis dešinysis" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "Viršutinis priekinis kairysis" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "Viršutinis priekinis dešinysis" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "Viršutinis priekinis vidurinis" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "Viršutinis vidurinis" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "Viršutinis užpakalinis kairysis" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "Viršutinis užpakalinis dešinysis" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "Viršutinis užpakalinis vidurinis" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "Stereo" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "„Surround“ 4.0" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "„Surround“ 4.1" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "„Surround“ 5.0" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "„Surround“ 5.1" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "„Surround“ 7.1" diff --git a/po/lv.po b/po/lv.po new file mode 100644 index 0000000..027cdc1 --- /dev/null +++ b/po/lv.po @@ -0,0 +1,443 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Artis Trops , 2001 +# Imants Liepiņš , 2013 +# Pēteris Krišjānis , 2010 +# Raivis Dejus , 2006, 2009 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-19 11:49+0000\n" +"Last-Translator: monsta \n" +"Language-Team: Latvian (http://wiki.ukui.org/trans/lv/)\n" +"Language: lv\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 != 0 ? 1 : " +"2);\n" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "Skaņa" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "Mainīt skaņas līmeni un skaņas dažādiem notikumiem" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "Skaļuma kontrole" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "Parādīt darbvirsmas skaņas kontroli" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "Šīs lietotnes versija" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr " — MATE Skaļuma kontroles sīklietotne" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "Gaida skaņu sistēmas atbildi" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "Startēšanās lapa" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr " — MATE Skaļuma kontrole" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "Ievads" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "Izvads" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "Mikrofona skaļums" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "Izejas skaņas līmenis" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr " — MATE Skaļuma kontroles sīklietotne" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "Pa kreisi" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "Pa labi" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "Aizmugure" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "Priekšpuse" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "Minimums" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "Maksimums" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "_Balanss:" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "_Pakāpeniski klusināt:" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "_Zemfrekvences reproduktors:" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "Nepastiprināts" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "100%" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "Apklusināt" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "_Profili:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "Sa_vienotājs:" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "Deaktivizēts" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "%u izvadkanāls" +msgstr[1] "%u izvadkanāli" +msgstr[2] "%u izvadkanālu" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "%u ievadkanāls" +msgstr[1] "%u ievadkanāli" +msgstr[2] "%u ievadkanālu" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "Nosaukums" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "Skaļruņu pārbaude %s" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "Pārbaudīt skaļruņus" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "Skaņas efekti" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "_Trauksmes skaļums: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "_Izvada skaļums: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "Aparatūra" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "I_zvēlieties ierīci, kuru konfigurēt:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "Izvēlētās ierīces iestatījumi:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "_Ievada skaļums: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "Ievada līmenis:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "Iz_vēlieties ierīci skaņas ievadei:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "Iz_vēlieties ierīci skaņas izvadei:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "Lietotnes" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "Neviena lietotne šobrīd neatskaņo vai neieraksta audio." + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "Skaņas iestatījumi" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "Skaņu nav" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "Iebūvēta" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "Pielāgots" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "Pārbauda notikuma skaņu" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "Noklusētais" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "No tēmas" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "Veids" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "Skaņas _tēma:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "I_zvēlieties trauksmes skaņu:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "Aktivizēt _logu un pogu skaņas" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "Pārtraukt" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "Pārbaudīt" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "Neizdevās palaist skaņas iestatījumus: %s" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "_Apklusināt" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "_Skaņas iestatījumi" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "" diff --git a/po/mai.po b/po/mai.po new file mode 100644 index 0000000..4b69490 --- /dev/null +++ b/po/mai.po @@ -0,0 +1,438 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Rajesh Ranjan , 2009 +# Sangeeta Kumari , 2009 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-19 11:49+0000\n" +"Last-Translator: monsta \n" +"Language-Team: Maithili (http://wiki.ukui.org/trans/mai/)\n" +"Language: mai\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "ध्वनि" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "आवाज निर्धारक" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "एहि अनुप्रयोग क' संस्करण" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr "आवाज निर्धारक" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr "आवाज निर्धारक" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "इनपुट" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "आउटपुट" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr "आवाज निर्धारक" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "बामाँ" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "दहिन्ना" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "मौन" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "अक्षम" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "" +msgstr[1] "" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "" +msgstr[1] "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "नाम" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "अनुप्रयोग" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "ध्वनि वरीयतासभ " + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "कोनो ध्वनि नहि" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "पसंदीदा" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "मूलभूत" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "प्रसंग सँ" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "प्रकार" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "रोकू" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "" diff --git a/po/mg.po b/po/mg.po new file mode 100644 index 0000000..4425313 --- /dev/null +++ b/po/mg.po @@ -0,0 +1,436 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-19 11:49+0000\n" +"Last-Translator: monsta \n" +"Language-Team: Malagasy (http://wiki.ukui.org/trans/mg/)\n" +"Language: mg\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "Fanamafisam-peo" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr "Fanamafisam-peo" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr "Fanamafisam-peo" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr "Fanamafisam-peo" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "" +msgstr[1] "" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "" +msgstr[1] "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "Safidy" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "Mijanona" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "" diff --git a/po/mk.po b/po/mk.po new file mode 100644 index 0000000..dd8f10c --- /dev/null +++ b/po/mk.po @@ -0,0 +1,442 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Arangel Angov , 2003, 2006, 2008 +# Ivan Stojmirov , 2003 +# Jovan Naumovski , 2006, 2007, 2008 +# Misa Popovic , 2003 +# Vladislav Bidikov , 2003 +# Арангел Ангов , 2005 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-19 11:49+0000\n" +"Last-Translator: monsta \n" +"Language-Team: Macedonian (http://wiki.ukui.org/trans/mk/)\n" +"Language: mk\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 % 10 == 1 && n % 100 != 11) ? 0 : 1;\n" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "Поставување на јачина на звукот" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr "Поставување на јачина на звукот" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "Почетна страница" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr "Поставување на јачина на звукот" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr "Поставување на јачина на звукот" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "" +msgstr[1] "" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "" +msgstr[1] "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "Сопствено" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "Стандардно" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "Запри" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "" diff --git a/po/ml.po b/po/ml.po new file mode 100644 index 0000000..d65df32 --- /dev/null +++ b/po/ml.po @@ -0,0 +1,439 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Ani Peter , 2006, 2007 +# FSF-India , 2003 +# Praveen Arimbrathodiyil , 2010 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-19 11:49+0000\n" +"Last-Translator: monsta \n" +"Language-Team: Malayalam (http://wiki.ukui.org/trans/ml/)\n" +"Language: ml\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "ശബ്ദം" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "ശബ്ദ വോള്യമും ശബ്ദ ഇവന്റുകളും മാറ്റുക" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "ശബ്ദം ക്രമീകാരി" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "പണിയിട ശബ്ദ ക്രമീകാരി കാണിക്കുക" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "ഈ പ്രയോഗത്തിന്റെ പതിപ്പുകള്‍" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr "ശബ്ദം ക്രമീകാരി" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "മറുപടി നല്‍കുന്നതിനായി ശബ്ദ സിസ്റ്റത്തിനായി കാത്തിരിക്കുന്നു" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "പ്രാരംഭ താള്‍" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr "ശബ്ദം ക്രമീകാരി" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "നിവേശകം" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "ഫലം" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr "ശബ്ദം ക്രമീകാരി" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "ഇടത്" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "വലത്" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "അവസാനം" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "മുന്നില്‍" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "കുറഞ്ഞ" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "കൂടിയ" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "_ബാലന്‍സ്:" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "_മങ്ങുക:" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "_സബ്‌വൂഫര്‍:" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "അണ്‍ആംപ്ലിഫൈഡ്" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "100%" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "നിശബ്ദമാക്കുക" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "_പ്രൊഫൈല്‍:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "ക_ണക്ടര്‍:" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "പ്രവര്‍ത്തനരഹിതം" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "%u ഔട്ട്പുട്ട്" +msgstr[1] "%u ഔട്ട്പുട്ടുകള്‍" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "%u ഇന്‍പുട്ട്" +msgstr[1] "%u ഇന്‍പുട്ടുകള്‍" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "പേര്" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "ശബ്ദ പ്രവാഹങ്ങള്‍" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "_മുന്നറിയിപ്പിനുള്ള ശബ്ദം: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "_ഔട്ട്പുട്ട് വോള്യം: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "ഹാര്‍ഡ്‌വെയര്‍" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "ക്രമീകരിക്കുവാനുള്ളൊരു ഡിവൈസ് _തെരഞ്ഞെടുക്കുക:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "തെരഞ്ഞെടുത്ത ഉപകരണത്തിന്റെ ക്രമീകരണങ്ങള്‍" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "_ഇന്‍പുട്ട് വോള്യം: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "ഇന്‍പുട്ട് ലവല്‍:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "ശബ്ദ ഇന്‍പുട്ടിനുള്ള ഒരു ഡിവൈസ് _തെരഞ്ഞെടുക്കുക:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "ശബ്ദ ഔട്ട്പുട്ടിനുള്ള ഒരു ഡിവൈസ് _തെരഞ്ഞെടുക്കുക:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "പ്രയോഗങ്ങള്‍" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "ഓഡിയോ റിക്കോര്‍ഡ് ചെയ്യുന്നില്ല അല്ലെങ്കില്‍ നിലവില്‍ ഒരു പ്രയോഗവും പ്രവര്‍ത്തിക്കുന്നില്ല" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "ശബ്ദ മുന്‍ഗണനകള്‍" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "ശബ്ദം ഇല്ല" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "ബിള്‍ട്ടിന്‍" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "ഇച്ഛാനുസൃതം" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "ഇവന്റ് ശബ്ദം പരീക്ഷിക്കുന്നു" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "സ്വഥവേ" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "പ്രമേയത്തില്‍ നിന്നും" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "തരം" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "ശബ്ദ _പ്രമേയം:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "മുന്നറിയിപ്പ് ശബ്ദം _തെരഞ്ഞെടുക്കുക:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "_ജാലകം, ബട്ടണ്‍ ശബ്ദങ്ങള്‍ പ്രവര്‍ത്തന സജ്ജമാക്കുക" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "ശബ്ദ മുന്‍ഗണനകള്‍ പ്രവര്‍ത്തിപ്പിക്കുന്നതില്‍ പരാജയപ്പെട്ടു: %s" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "_നിശബ്ദമാക്കുക" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "_ശബ്ദ മുന്‍ഗണനകള്‍" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "" diff --git a/po/mn.po b/po/mn.po new file mode 100644 index 0000000..fdc5c00 --- /dev/null +++ b/po/mn.po @@ -0,0 +1,440 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Sanlig Badral , 2003 +# Sanlig Badral , 2003, 2004, 2006 +# Sanlig Badral , 2003, 2004 +# Sukhochir , 2003 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-19 11:49+0000\n" +"Last-Translator: monsta \n" +"Language-Team: Mongolian (http://wiki.ukui.org/trans/mn/)\n" +"Language: mn\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "Дууны хянагч" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr "Дууны хянагч" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr "Дууны хянагч" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr "Дууны хянагч" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "" +msgstr[1] "" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "" +msgstr[1] "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "Хэрэглэгч тод." + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "Зогс" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "" diff --git a/po/mr.po b/po/mr.po new file mode 100644 index 0000000..63381d7 --- /dev/null +++ b/po/mr.po @@ -0,0 +1,440 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Rahul Bhalerao , 2006 +# Sandeep Shedmake , 2008, 2009 +# sandeeps , 2009, 2010 +# Vaibhav S Dalvi , 2014 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-19 11:49+0000\n" +"Last-Translator: monsta \n" +"Language-Team: Marathi (http://wiki.ukui.org/trans/mr/)\n" +"Language: mr\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "आवाज" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "आवाज ध्वनिमान व आवाज घटना बदलवा" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "ध्वनिमान नियंत्रण" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "डेस्कटॉप ध्वनिमान नियंत्रण दाखवा" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "या अनुप्रयोगची आवृत्ती" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr "— MATE ध्वनिमान नियंत्रण ॲप्लेट" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "आवाज प्रणालीच्या प्रतिसाद करीता प्रतिक्षा करत आहे" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "प्रारंभ पान" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr "— MATE ध्वनिमान नियंत्रण" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "इंपुट" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "आउटपुट" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "ध्वनीविस्तारक पातळी" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "ध्वनी पातळी" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr "— MATE ध्वनिमान नियंत्रण ॲप्लेट" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "डावा" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "उजवा" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "पाठीमागचे" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "समारचे" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "किमान" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "कमाल" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "समतोल (_B):" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "फुसट (_F):" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "सबवूफर (_S):" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "विनऍप्लिफाइड्" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "100%" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "मंद" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "प्रोफाइल (_P):" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "कनेक्टर (_n):" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "अकार्यान्वीत" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "%u आऊटपुट" +msgstr[1] "%u आऊटपुटस्" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "%u इंपुट" +msgstr[1] "%u इंपुटस्" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "नाव" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "%s साठी ध्वनिक्षेपक तपासणी" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "चाचणी ध्वनिक्षेपक" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "आवाज प्रभाव" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "सतर्कता ध्वनिमान (_A): " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "आउटपुट ध्वनिमान (_O): " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "हार्डवेअर" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "संरचना करीता उपकरन नीवडा (_h):" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "निवडलेल्या साधन करीता संयोजना:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "इंपुट ध्वनिमान (_I): " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "इंपुट स्तर:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "आवाज इंपुट करीता उपकरन नीवडा (_h):" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "आवाज आउटपुट करीता उपकरन निवडा (_h):" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "अनुप्रयोग" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "अनुप्रयोग वर्तमानक्षणी ऑडिओ चालवत किंवा रेकॉर्ड करत आहे." + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "आवाज आवड निवड" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "आवाज नाही" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "अंतर्भूतीत" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "स्वपसंत" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "घटना आवाजची चाचणी करत आहे" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "पूर्वनिर्धारीत" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "दृष्य कल्पना पासून" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "प्रकार" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "आवाज योजना (_t):" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "सतर्कता आवाज नीवडा (_h):" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "पटल व बटन आवाज कार्यक्षम करा (_w)" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "बंद" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "चाचणी" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "आवाज आवड निवड सुरू करण्यास अपयशी: %s" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "मंद करा (_M)" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "आवाज आवड निवड (_S)" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "" diff --git a/po/ms.po b/po/ms.po new file mode 100644 index 0000000..02fb475 --- /dev/null +++ b/po/ms.po @@ -0,0 +1,436 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# abuyop , 2013-2015,2017 +# Hasbullah Bin Pit (sebol) , 2001, 2002, 2003 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-19 11:49+0000\n" +"Last-Translator: monsta \n" +"Language-Team: Malay (http://wiki.ukui.org/trans/ms/)\n" +"Language: ms\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "Bunyi" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "Ubah volum bunyi dan peristiwa bunyi" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "Kawalan Volum" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "Tunjuk kawalan volum desktop" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "Versi aplikasi ini" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "Benarkan nyahpepijat" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr "— Aplet Kawalan Volum MATE" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "Sistem bunyi tidak tersedia" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "Menunggu sistem bunyi memberi respons" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "Bahagian belakang sistem bunyi" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "Halaman permulaan" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr "— Kawalan Volum MATE" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "Input" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "Output" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "Volum Mikrofon" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "Volum Output Bunyi" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr "Aplet Kawalan Volum MATE" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "Kiri" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "Kanan" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "Belakang" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "Hadapan" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "Minimum" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "Maksimum" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "_Imbangan:" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "_Resap:" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "_Subwufer:" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "Tidak dikuatkan" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "100%" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "Senyap" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "_Profil:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "Pe_nyambung:" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "Dilumpuhkan" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "%u Output" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "%u Input" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "Nama" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "Pengujian Pembesar Suara untuk %s" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "Uji Pembesar Suara" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "Kesan Bunyi" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "Volum _amaran:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "Volum _output:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "Perkakasan" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "P_ilih peranti untuk dikonfigur:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "Tetapan untuk peranti terpilih:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "Volum _input:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "Aras input:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "P_ilih peranti untuk input bunyi:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "P_ilih peranti untuk output bunyi:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "Aplikasi" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "Tiada aplikasi kini dimainkan atau merakam audio." + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "Keutamaan Bunyi" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "Tiada bunyi" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "Terbina-dalam" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "Suai" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "Menguji bunyi peristiwa" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "Lalai" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "Dari tema" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "Jenis" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "_Tema bunyi:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "P_ilih bunyi amaran:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "Benarkan bunyi tetingkap dan _butang" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "Henti" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "Uji" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "Gagal memulakan Keutamaan Bunyi: %s" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "Sen_yap" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "Keutamaan _Bunyi" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "Tidak diketahui" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "Mono" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "Hadapan Kiri" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "Hadapan Kanan" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "Hadapan Tengah" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "LFE" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "Belakang Kiri" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "Belakang Kanan" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "Belakang Tengah" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "Hadapan Kiri dari Tengah" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "Hadapan Kanan dari Tengah" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "Sisi Kiri" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "Sisi Kanan" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "Atas Hadapan Kiri" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "Atas Hadapan Kanan" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "Atas Hadapan Tengah" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "Atas Tengah" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "Atas Belakang Kiri" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "Atas Belakang Kanan" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "Atas Belakang Tengah" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "Stereo" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "Keliling 4.0" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "Keliling 4.1" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "Keliling 5.0" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "Keliling 5.1" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "Keliling 7.1" diff --git a/po/nb.po b/po/nb.po new file mode 100644 index 0000000..6fafe48 --- /dev/null +++ b/po/nb.po @@ -0,0 +1,439 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Allan Nordhøy , 2016-2017 +# Kenneth Jenssen , 2016 +# Terance Edward Sola , 2005 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-19 11:49+0000\n" +"Last-Translator: Allan Nordhøy \n" +"Language-Team: Norwegian Bokmål (http://wiki.ukui.org/trans/nb/)\n" +"Language: nb\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "Lyd" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "Endre volum og tilegne lyder til hendelser" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "Volumkontroll" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "Vis volumkontroll for skrivebordet" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "Versjon av dette programmet" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "Skru på feilrettingsmodus" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr " – MATE panelprogram for volumkontroll" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "Lyd system er ikke tilgjengelig" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "Venter på svar fra lydsystemet" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "Bakstykke for lydsystem" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "Oppstartside" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr " – MATE volumkontroll" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "Inngang" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "Utgang" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "Volum for mikrofon" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "Utgangsvolum for lyd" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr "MATE-panelprogram for lydstyrkejustering" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "Venstre" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "Høyre" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "Bak" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "Front" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "Minimum" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "Maksimum" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "_Balanse:" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "_Utfasing:" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "_Subwoofer:" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "Uten forsterkning" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "100%" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "Demp" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "_Profil:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "Tilkobli_ng:" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "Slått av" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "%u utgang" +msgstr[1] "%u utganger" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "%u inngang" +msgstr[1] "%u innganger" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "Navn" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "Test av høyttaler for %s" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "Test høyttalere" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "Lydeffekter" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "Volum for v_arsel: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "Utgangsv_olum: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "Maskinvare" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "Velg en en_het som skal settes opp:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "Innstillinger for valgt enhet:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "Volum for _inngang: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "Nivå for inngang:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "Velg en inngangsen_het for lyd:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "Velg en utgangsen_het for lyd:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "Programmer" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "Ingen programmer spiller av eller tar opp lyd nå." + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "Brukervalg for lyd" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "Ingen lyder" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "Innebygget" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "Tilpasset" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "Test lyd for hendelse" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "Forvalgt" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "Fra drakt" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "Type" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "Lyd_tema:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "_Velg en varslingslyd:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "Aktiver lyder for knapper og _vinduer" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "Stopp" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "Test" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "Klarte ikke å starte brukervalg for lyd: %s" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "De_mp" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "_Brukervalg for lyd" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "Dempet klokken" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "Ukjent" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "Mono" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "Fremme til venstre" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "Fremme til høyre" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "Fremst i midten" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "LFE" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "Bakerst til venstre" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "Bakerst til høyre" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "Bakerst i midten" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "Fremme til venstre for sentrum" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "Fremme til høyre for sentrum" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "Venstre side" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "Høyre side" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "Øverst oppe til venstre" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "Øverst oppe til høyre" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "Øverst fremme i midten" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "Øverst i midten" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "Bak øverst til venstre" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "Øverst oppe til høyre" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "Lengst bak i midten" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "Stereo" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "Kringlyd 4.0" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "Kringlyd 4.1" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "Kringlyd 5.0" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "Kringlyd 5.1" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "Kringlyd 7.1" diff --git a/po/nds.po b/po/nds.po new file mode 100644 index 0000000..2d21c83 --- /dev/null +++ b/po/nds.po @@ -0,0 +1,437 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Nils-Christoph Fiedler , 2009 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-19 11:49+0000\n" +"Last-Translator: monsta \n" +"Language-Team: Low German (http://wiki.ukui.org/trans/nds/)\n" +"Language: nds\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "Ton" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "Luutstärkenoppasser" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "Schrievdisk" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "Verschoon vun düssem Programm" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr "Luutstärkenoppasser" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "Startsiet" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr "Luutstärkenoppasser" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "Ingang" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "Utgang" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr "Luutstärkenoppasser" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "Links" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "Rechts" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "Achtern" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "Vorn" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "Minimum" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "Maximum" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "_Balance:" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "_Fade:" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "_Subwoofer:" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "100%" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "Still" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "_Togang:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "Verbi_nner:" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "Deaktivert" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "%u Utgav" +msgstr[1] "%u Utgaven" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "%u Ingav" +msgstr[1] "%u Ingaven" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "Naam" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "Toneffekte" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "_Alarmluutstärke:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "_Utgavluutstärke:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "Hardware" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "Lööpwark wählen, dat _instellt werrn chall:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "Instellen för dat utwählte Lööpwark:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "_Ingangluutstärke:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "Ingavlevel:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "Programme" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "Toninstellens" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "Keene Töne" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "Anpasst" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "ereegniston utproberen" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "Standard" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "Ut Thema" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "Typ" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "Ton_thema:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "Alarmton _wählen:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "_Finster- un Knopptöne aktiveren" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "_Still" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "_Toninstellens" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "" diff --git a/po/ne.po b/po/ne.po new file mode 100644 index 0000000..7d3212f --- /dev/null +++ b/po/ne.po @@ -0,0 +1,445 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Bishnu Adhikari , 2005 +# Ganesh Ghimire , 2005 +# Jaydeep Bhusal , 2005 +# Jyotshna Shrestha , 2005 +# Mahesh subedi , 2006 +# Nabin Gautam , 2007 +# Shiva Pokharel , 2005 +# Shiva Prasad Pokharel , 2006 +# Shyam Krishna Bal , 2006 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-19 11:49+0000\n" +"Last-Translator: monsta \n" +"Language-Team: Nepali (http://wiki.ukui.org/trans/ne/)\n" +"Language: ne\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "भोल्युम नियन्त्रण" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr "भोल्युम नियन्त्रण" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr "भोल्युम नियन्त्रण" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr "भोल्युम नियन्त्रण" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "बायाँ" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "दायाँ" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "" +msgstr[1] "" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "" +msgstr[1] "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "अनुकूल" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "पूर्वनिर्धारित" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "रोक्नुहोस्" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "अज्ञात" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "" diff --git a/po/nl.po b/po/nl.po new file mode 100644 index 0000000..01d9993 --- /dev/null +++ b/po/nl.po @@ -0,0 +1,447 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Dennis Smit , 2002 +# Huib Kleinhout , 2002 +# infirit , 2014-2015 +# Mario Blättermann , 2010 +# Pjotr , 2017 +# Reinout van Schouwen , 2009 +# Stef Pletinck , 2015 +# Taco Witte , 2002 +# Tino Meinen , 2002, 2007, 2008 +# Wing Tung Leung , 1999 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-23 18:10+0000\n" +"Last-Translator: Pjotr \n" +"Language-Team: Dutch (http://wiki.ukui.org/trans/nl/)\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "Geluid" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "Geluidsvolume en systeemgeluiden wijzigen" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "Volumeregeling" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "Volumeregeling tonen" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "Versie van deze toepassing" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "Foutopsporing inschakelen" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr " — MATE Volumeregeling-programmaatje" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "Geluidssysteem is niet beschikbaar" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "Wachten op antwoord van het geluidssysteem" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "Achtergronddienst van geluidssysteem" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "Opstartpagina" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr " — MATE Volumeregeling" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "Invoer" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "Uitvoer" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "Microfoonvolume" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "Geluiduitvoervolume" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr "MATE Volumeregeling-programmaatje" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "Links" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "Rechts" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "Achter" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "Voor" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "Minimum" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "Maximum" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "_Balans:" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "_Wegsterven:" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "_Subwoofer:" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "Onversterkt" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "100%" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "Dempen" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "_Profiel:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "Verbi_ndingsstuk:" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "Uigeschakeld" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "%u uitgang" +msgstr[1] "%u uitgangen" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "%u ingang" +msgstr[1] "%u ingangen" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "Naam" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "Luidsprekerproef voor %s" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "Luidsprekers beproeven" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "Geluidseffecten" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "_Waarschuwingsvolume: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "_Uitvoervolume: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "Apparatuur" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "Kies een apparaat om te _configureren:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "Instellingen voor het geselecteerde apparaat:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "_Invoervolume: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "Invoerniveau:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "Kies een apparaat voor geluids_invoer:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "Kies een _apparaat voor geluidsuitvoer:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "Toepassingen" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "" +"Er is momenteel geen enkele toepassing geluid aan het opnemen of afspelen." + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "Geluidsvoorkeuren" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "Geen geluiden" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "Ingebouwd" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "Aangepast" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "Geluid beproeven" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "Standaard" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "Van thema" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "Type" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "Geluids_thema:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "Kies een _waarschuwingsgeluid:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "Scherm- en knop_geluiden inschakelen" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "Stoppen" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "Proef" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "Kon geluidsvoorkeuren niet starten: %s" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "_Dempen" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "_Geluidsvoorkeuren" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "Gedempt op" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "Onbekend" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "Mono" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "Linksvoor" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "Rechtsvoor" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "Middenvoor" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "LFE" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "Linksachter" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "Rechtsachter" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "Midden achteraan" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "Linksvoor van Midden" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "Rechtsvoor van Midden" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "Linkerzijkant" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "Rechterzijkant" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "Linksboven vooraan" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "Rechtsboven vooraan" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "Middenboven vooraan" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "Midden boven" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "Linksboven achter" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "Rechtsboven achter" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "Middenboven achteraan" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "Stereo" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "Surround 4.0" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "Surround 4.1" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "Surround 5.0" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "Surround 5.1" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "Surround 7.1" diff --git a/po/nn.po b/po/nn.po new file mode 100644 index 0000000..7eb9ad0 --- /dev/null +++ b/po/nn.po @@ -0,0 +1,440 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Åsmund Skjæveland , 2003, 2004, 2005, 2006 +# Åsmund Skjæveland , 2010 +# Kjartan Maraas , 2001 +# Torstein Adolf Winterseth , 2009 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-19 11:49+0000\n" +"Last-Translator: monsta \n" +"Language-Team: Norwegian Nynorsk (http://wiki.ukui.org/trans/nn/)\n" +"Language: nn\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "Lyd" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "Endra lydvolum og lydar til hendingar" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "Volumkontroll" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "Vis volumkontroll til skrivebordet" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "Versjon av dette programmet" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr "Volumkontroll" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "Ventar på svar frå lydsystemet" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "Oppstartsside" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr "Volumkontroll" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "Inndata" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "Utdata" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr "Volumkontroll" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "Venstre" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "Høgre" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "Bak" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "Front" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "Minimum" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "Maksimum" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "_Balanse:" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "_Utfasing" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "_Subwoofer:" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "Utan forsterking" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "100 %" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "Demp" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "_Profilar:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "Tilkopli_ng" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "Avslått" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "%u utgang" +msgstr[1] "%u utgangar" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "%u inngang" +msgstr[1] "%u ingangar" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "Namn" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "Lydeffektar" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "V_arselsvolum:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "Utgangsv_olum" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "Maskinvare" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "Innstillingar til den valte eininga:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "_Inngangsvolum:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "Inngangsnivå:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "Program" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "Ingen program spelar av eller tek opp lyd for augneblikket." + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "Lydinnstillingar" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "Ingen lydar" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "Innebygd" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "Tilpassa" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "Testar hendingslyd" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "Standard" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "Frå tema" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "Type" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "Lyd_tema:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "Klarte ikkje starte lydinnstillingar: %s" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "De_mp" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "Lydinn_stillingar" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "" diff --git a/po/oc.po b/po/oc.po new file mode 100644 index 0000000..ca5bd53 --- /dev/null +++ b/po/oc.po @@ -0,0 +1,437 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Cédric Valmary , 2016 +# Yannig Marchegay (Kokoyaya) , 2007 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-19 11:49+0000\n" +"Last-Translator: monsta \n" +"Language-Team: Occitan (post 1500) (http://wiki.ukui.org/trans/oc/)\n" +"Language: oc\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "Son" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "Contraròtle de volum" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "Version d'aquesta aplicacion" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr "Contraròtle de volum" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr "Contraròtle de volum" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "Entrada" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "Sortida" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr "Contraròtle de volum" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "Esquèrra" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "Dreita" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "Avant" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "Minimum" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "Maximum" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "_Balança :" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "_Fondut :" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "_Caisson de bassa :" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "Pas amplificat" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "100 %" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "Mut" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "_Perfil :" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "Co_nnectador :" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "Desactivat" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "%u sortida" +msgstr[1] "%u sortidas" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "%u entrada" +msgstr[1] "%u entradas" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "Nom" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "Material" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "Volum d'_entrada : " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "Nivèl d'entrada :" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "Aplicacions" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "Preferéncias del son" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "Pas cap de son" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "Predefinit" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "Personalizat" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "Defaut" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "Tipe" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "Arrestar" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "Testar" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "_Mut" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "Desconegut" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "Costat dreit" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "Naut Avant Esquèrra" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "Naut Avant Dreit" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "Naut Avant Centre" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "Naut Central" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "Naut Arrièr Esquèrra" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "Naut Arrièr Dreit" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "Naut Arrièr Central" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "Esterèo" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "Surround 4.0" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "Surround 4.1" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "Surround 5.0" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "Surround 5.1" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "Surround 7.1" diff --git a/po/or.po b/po/or.po new file mode 100644 index 0000000..3d31365 --- /dev/null +++ b/po/or.po @@ -0,0 +1,439 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Gora Mohanty , 2004, 2006 +# Manoj Kumar Giri , 2009, 2010 +# Parashar Nayak , 2004 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-19 11:49+0000\n" +"Last-Translator: monsta \n" +"Language-Team: Oriya (http://wiki.ukui.org/trans/or/)\n" +"Language: or\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "ଶବ୍ଦ" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "ଧ୍ୱନି ପ୍ରବଳତା ଏବଂ ଧ୍ୱନି ଘଟଣାଗୁଡ଼ିକ ପରିବର୍ତ୍ତନ କରନ୍ତୁ" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "ଧ୍ବନି ପ୍ରବଳତା ନିୟନ୍ତ୍ରକ" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "ଡେସ୍କଟପ ଶବ୍ଦ ନିୟନ୍ତ୍ରଣ ଦର୍ଶାନ୍ତୁ" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "ଏହି ପ୍ରୟୋଗର ସଂସ୍କରଣ" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr "ଧ୍ବନି ପ୍ରବଳତା ନିୟନ୍ତ୍ରକ" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "ଧ୍ୱନି ତନ୍ତ୍ରର ଉତ୍ତରକୁ ଅପେକ୍ଷା କରିଛି" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "ଆରମ୍ଭ ପୃଷ୍ଠା" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr "ଧ୍ବନି ପ୍ରବଳତା ନିୟନ୍ତ୍ରକ" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "ନିବେଶ" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "ନିର୍ଗମ" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr "ଧ୍ବନି ପ୍ରବଳତା ନିୟନ୍ତ୍ରକ" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "ବାମ" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "ଡାହାଣ" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "ଆଗ" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "ଆଗ" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "ସର୍ବନିମ୍ନ " + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "ସର୍ବାଧିକ" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "ସମତୁଲ (_B):" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "ଲିଭିବା (_F):" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "ଉପ ଉଫର (_S):" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "ଅପରିବର୍ଦ୍ଧିତ" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "୧୦୦%" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "ନିଶବ୍ଦ" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "ରୂପରେଖ (_P):" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "ସଂଯୋଜକ (_n):" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "ନିଷ୍କ୍ରିୟ ହୋଇଗଲା" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "%u ନିର୍ଗମ" +msgstr[1] "%u ନିର୍ଗମ" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "%u ନିବେଶ" +msgstr[1] "%u ନିବେଶ" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "ନାମ" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "ଧ୍ୱନି ପ୍ରଭାବ" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "ସତର୍କ ସୂଚନା ଧ୍ୱନୀ ପ୍ରବଳତା (_A): " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "ନିର୍ଗମ ଧ୍ୱନି ତିବ୍ରତା (_O):" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "ହାର୍ଡ଼ୱେର" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "ବିନ୍ୟାସ ପାଇଁ ଗୋଟିଏ ଉପକରଣ ବାଛନ୍ତୁ (_h):" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "ବଚ୍ଛିତ ଉପକରଣ ପାଇଁ ବିନ୍ୟାସ:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "ନିବେଶ ଧ୍ୱନୀ ପ୍ରବଳତା (_I):" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "ନିବେଶ ସ୍ତର:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "ଧ୍ୱନି ନିବେଶ ପାଇଁ ଗୋଟିଏ ଉପକରଣ ବାଛନ୍ତୁ (_h):" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "ଧ୍ୱନି ନିର୍ଗମ ପାଇଁ ଗୋଟିଏ ଉପକରଣ ବାଛନ୍ତୁ (_h):" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "ପ୍ରୟୋଗ" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "ବର୍ତ୍ତମାନ କୌଣସି ପ୍ରୟୋଗ ଧ୍ୱନିକୁ ଚଲାଉନାହିଁ କିମ୍ବା ଅନୁଲିପି କରୁନାହିଁ।" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "ଧ୍ୱନି ପସନ୍ଦ" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "ଶବ୍ଦ ନାହିଁ" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "ସୁନିର୍ମିତ" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "ଇଚ୍ଛାରୂପଣ" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "ଘଟଣା ଧ୍ୱନି ପରୀକ୍ଷା କରୁଅଛି" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "ପୂର୍ବ ନିର୍ଦ୍ଧାରିତ" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "ପ୍ରସଙ୍ଗରୁ" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "ପ୍ରକାର" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "ଧ୍ୱନି ପ୍ରସଙ୍ଗ (_t):" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "ଗୋଟିଏ ସତର୍କ ଧ୍ୱନି ବାଛନ୍ତୁ (_h):" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "ୱିଣ୍ଡୋ ଏବଂ ବଟନ ଧ୍ୱନିକୁ ସକ୍ରିୟ କରନ୍ତୁ (_w)" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "ଧ୍ବନି ପ୍ରବଳତା ନିୟନ୍ତ୍ରକ ପସନ୍ଦ ଆରମ୍ଭ କରିବାରେ ବିଫଳ: %s" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "ମୂକ କରନ୍ତୁ (_M)" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "ଧ୍ୱନୀ ପସନ୍ଦ (_S)" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "" diff --git a/po/pa.po b/po/pa.po new file mode 100644 index 0000000..17e16e8 --- /dev/null +++ b/po/pa.po @@ -0,0 +1,439 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Amanpreet Singh Alam , 2008, 2009 +# Amanpreet Singh Alam , 2004 +# A S Alam , 2005, 2006, 2007, 2009, 2010 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-19 11:49+0000\n" +"Last-Translator: monsta \n" +"Language-Team: Panjabi (Punjabi) (http://wiki.ukui.org/trans/pa/)\n" +"Language: pa\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "ਸਾਊਂਡ" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "ਸਾਊਂਡ ਵਾਲੀਅਮ ਅਤੇ ਸਾਊਂਡ ਈਵੈਂਟ ਬਦਲੋ" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "ਆਵਾਜ਼ ਕੰਟਰੋਲ" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "ਡੈਸਕਟਾਪ ਵਾਲੀਅਮ ਕੰਟਰੋਲ ਵੇਖੋ" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "ਇਸ ਐਪਲੀਕੇਸ਼ਨ ਦਾ ਵਰਜਨ" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr "— ਗਨੋਮ ਵਾਲੀਅਮ ਕੰਟਰੋਲ ਐਪਲਿਟ" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "ਸਾਊਂਡ ਸਿਸਟਮ ਦੇ ਜਵਾਬ ਦੀ ਉਡੀਕ ਜਾਰੀ" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "ਸ਼ੁਰੂਆਤੀ ਪੇਜ਼" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr "— ਗਨੋਮ ਵਾਲੀਅਮ ਕੰਟਰੋਲ" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "ਇੰਪੁੱਟ" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "ਆਉਟਪੁੱਟ" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "ਮਾਈਕਰੋਫੋਨ ਵਾਲੀਅਮ" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "ਸਾਊਂਡ ਆਉਟਪੁੱਟ ਵਾਲੀਅਮ" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr "— ਗਨੋਮ ਵਾਲੀਅਮ ਕੰਟਰੋਲ ਐਪਲਿਟ" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "ਖੱਬਾ" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "ਸੱਜਾ" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "ਪਿੱਛੇ" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "ਅੱਗੇ" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "ਘੱਟੋ-ਘੱਟ" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "ਵੱਧੋ-ਵੱਧ" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "ਸੰਤੁਲਨ(_B):" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "ਫੇਡ(_F):" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "ਸਬਵੂਫ਼ਰ(_S):" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "ਬਿਨਾਂ-ਐਪਲੀਫਾਈ" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "100%" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "ਚੁੱਪ" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "ਪਰੋਫਾਇਲ(_P):" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "ਕੁਨੈਕਟਰ(_n):" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "ਆਯੋਗ" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "%u ਆਉਟਪੁੱਟ" +msgstr[1] "%u ਆਉਟਪੁੱਟ" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "%u ਇੰਪੁੱਟ" +msgstr[1] "%u ਇੰਪੁੱਟ" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "ਨਾਂ" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "%s ਲਈ ਸਪੀਕਰ ਟੈਸਟਿੰਗ" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "ਸਪੀਕਰ ਟੈਸਟ ਕਰੋ" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "ਸਾਊਂਡ ਪਰਭਾਵ" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "ਚੇਤਾਵਨੀ ਵਾਲੀਅਮ(_A):" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "ਆਉਟਪੁੱਟ ਵਾਲੀਅਮ(_O): " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "ਹਾਰਡਵੇਅਰ" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "ਸੰਰਚਨਾ ਲਈ ਇੱਕ ਜੰਤਰ ਚੁਣੋ(_h):" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "ਚੁਣੇ ਜੰਤਰ ਲਈ ਸੈਟਿੰਗ:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "ਇੰਪੁੱਟ ਵਾਲੀਅਮ(_I): " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "ਇੰਪੁੱਟ ਲੈਵਲ:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "ਸਾਊਂਡ ਇੰਪੁੱਟ ਲਈ ਇੱਕ ਜੰਤਰ ਚੁਣੋ(_h):" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "ਸਾਊਂਡ ਆਉਟਪੁੱਟ ਲਈ ਇੱਕ ਜੰਤਰ ਚੁਣੋ(_h):" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "ਐਪਲੀਕੇਸ਼ਨ" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "ਕੋਈ ਵੀ ਐਪਲੀਕੇਸ਼ਨ ਇਸ ਸਮੇਂ ਆਡੀਓ ਚਲਾ ਜਾਂ ਰਿਕਾਰਡ ਨਹੀਂ ਕਰ ਰਹੀ ਹੈ।" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "ਸਾਊਂਡ ਪਸੰਦ" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "ਸਾਊਂਡ ਨਹੀਂ" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "ਬਿਲਟ-ਇਨ" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "ਸੋਧ" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "ਟੈਸਟਿੰਗ ਈਵੈਂਟ ਸਾਊਂਡ" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "ਮੂਲ" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "ਥੀਮ ਤੋਂ" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "ਟਾਈਪ" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "ਸਾਊਂਡ ਥੀਮ(_t):" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "ਇੱਕ ਚੇਤਾਵਨੀ ਸਾਊਂਡ ਚੁਣੋ(_h):" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "ਵਿੰਡੋ ਅਤੇ ਬਟਨ ਸਾਊਂਡ ਚਾਲੂ(_w)" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "ਰੋਕੋ" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "ਟੈਸਟ" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "ਸਾਊਂਡ ਪਸੰਦ ਚਲਾਉਣ ਲਈ ਫੇਲ੍ਹ ਹੈ: %s" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "ਚੁੱਪ(_M)" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "ਸਾਊਂਡ ਪਸੰਦ(_S)" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "" diff --git a/po/pl.po b/po/pl.po new file mode 100644 index 0000000..762fcfc --- /dev/null +++ b/po/pl.po @@ -0,0 +1,446 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Marcin Kralka , 2014 +# Paweł Bandura , 2016 +# Piotr Drąg , 2017 +# Piotr Strębski , 2015 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-23 18:10+0000\n" +"Last-Translator: monsta \n" +"Language-Team: Polish (http://wiki.ukui.org/trans/pl/)\n" +"Language: pl\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==1 ? 0 : (n%10>=2 && n%10<=4) && (n" +"%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n" +"%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "Dźwięk" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "Zmiana głośności dźwięku i dźwięków zdarzeń" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "Regulacja głośności" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "Wyświetlanie regulacji głośności na pulpicie" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "Wersja tego programu" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "Włącz debugowanie" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr " — Aplet regulacji głośności środowiska MATE" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "System dźwięku jest niedostępny" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "Oczekiwanie na odpowiedź systemu dźwięku" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "Backend systemu dźwięku" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "Strona początkowa" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr " — Regulacja głośności w środowisku MATE" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "Wejście" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "Wyjście" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "Głośność mikrofonu" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "Głośność dźwięku na wyjściu" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr "Aplet kontroli głośności MATE" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "Lewy" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "Prawy" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "Tył" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "Przód" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "Minimum" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "Maksimum" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "B_alans:" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "_Natężenie głośności:" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "_Głośnik niskotonowy:" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "Bez wzmocnienia" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "100%" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "Wyciszenie" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "_Profil:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "_Złącze:" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "Wyłączone" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "%u wyjście" +msgstr[1] "%u wyjścia" +msgstr[2] "%u wyjść" +msgstr[3] "%u wyjść" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "%u wejście" +msgstr[1] "%u wejścia" +msgstr[2] "%u wejść" +msgstr[3] "%u wejść" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "Nazwa" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "Testowanie głośnika %s" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "Testuj głośniki" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "Efekty dźwiękowe" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "_Głośność powiadomień: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "Gł_ośność na wyjściu: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "Sprzęt" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "Wy_bór urządzenia do konfiguracji:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "Ustawienia wybranego urządzenia:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "_Głośność na wejściu: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "Poziom wejścia:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "Wy_bór urządzenia do wejścia dźwięku:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "Wy_bór urządzenia do wyjścia dźwięku:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "Programy" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "Żaden program obecnie nie odtwarza lub nagrywa dźwięku." + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "Preferencje dźwięku" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "Bez dźwięków" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "Wbudowany" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "Własne" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "Testowanie dźwięku zdarzenia" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "Domyślne" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "Z motywu" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "Typ" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "Motyw _dźwiękowy:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "Wy_bór dźwięku powiadomienia:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "Dźwięki o_kien i przycisków" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "Zatrzymaj" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "Przetestuj" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "Uruchomienie preferencji dźwięku się nie powiodło: %s" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "_Wyciszenie" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "Preferencje _dźwięku" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "Nieznany" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "Mono" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "Przedni lewy" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "Przedni prawy" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "Przedni środkowy" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "Niskotonowy" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "Tylny lewy" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "Tylny prawy" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "Tylny środkowy" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "Przedni lewy do środkowego" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "Przedni prawy do środkowego" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "Boczny lewy" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "Boczny prawy" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "Górny przedni lewy" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "Górny przedni prawy" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "Górny przedni środkowy" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "Górny środkowy" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "Górny tylni lewy" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "Górny tylni prawy" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "Górny tylni środkowy" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "Stereo" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "Surround 4.0" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "Surround 4.1" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "Surround 5.0" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "Surround 5.1" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "Surround 7.1" diff --git a/po/pms.po b/po/pms.po new file mode 100644 index 0000000..5b9188d --- /dev/null +++ b/po/pms.po @@ -0,0 +1,434 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Randy Ichinose , 2016 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-23 22:29+0000\n" +"Last-Translator: monsta \n" +"Language-Team: Piemontese (http://wiki.ukui.org/trans/pms/)\n" +"Language: pms\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:55 +msgid " — UKUI Volume Control Applet" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:202 +msgid " — UKUI Volume Control" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "Input" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "Output" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:333 +msgid "UKUI Volume Control Applet" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "100%" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "Dësabilità" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "%u Output" +msgstr[1] "%u Outputs" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "%u Input" +msgstr[1] "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "Nòm" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "Stop" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "Stereo" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "Surround 4.0" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "Surround 4.1" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "Surround 5.0" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "Surround 5.1" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "Surround 7.1" diff --git a/po/pt.po b/po/pt.po new file mode 100644 index 0000000..61c7a9d --- /dev/null +++ b/po/pt.po @@ -0,0 +1,440 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Carlos Moreira, 2014,2017 +# José Vieira , 2017 +# Manuela Silva , 2016-2017 +# Sérgio Marques , 2012 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-23 18:12+0000\n" +"Last-Translator: José Vieira \n" +"Language-Team: Portuguese (http://wiki.ukui.org/trans/pt/)\n" +"Language: pt\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "Som" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "Alterar volume do sistema e sons de eventos" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "Controlo de volume" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "Mostrar controlo de volume no ambiente de trabalho" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "Versão desta aplicação" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "Ativar depuração" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr " — Applet do controlo de volume MATE" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "Sistema de som não disponível" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "À espera da resposta do sistema de som" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "Motor do sistema de som" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "Página inicial" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr " — Controlo de volume MATE" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "Entrada" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "Saída" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "Volume do microfone" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "Volume da saída de som" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr "Applet do controlo de volume MATE" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "Esquerda" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "Direita" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "Atrás" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "Frente" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "Mínimo" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "Máximo" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "_Balanço:" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "_Desvanecimento:" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "_Subwoofer:" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "Sem amplificação" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "100%" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "Silenciar" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "_Perfil:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "Co_netor:" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "Inativo" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "%u saída" +msgstr[1] "%u saídas" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "%u entrada" +msgstr[1] "%u entradas" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "Nome" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "Teste de altifalante para %s" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "Testar altifalantes" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "Efeitos sonoros" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "Volume do _alerta: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "V_olume de saída: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "Equipamento" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "Escol_ha o dispositivo a configurar:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "Definições do dispositivo escolhido:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "Volume de _entrada:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "Nível de entrada:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "Escol_ha um dispositivo para a entrada de som:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "Escol_ha um dispositivo para a saída de som:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "Aplicações" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "Neste momento, não há aplicações a reproduzir ou gravar áudio." + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "Preferências de som" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "Sem sons" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "Incorporado" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "Personalizar" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "A testar som do evento" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "Pré-definido" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "Do tema" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "Tipo" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "_Tema de sons:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "Escol_ha um som de alerta:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "Ativar sons de janela_s e botões" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "Parar" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "Testar" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "Failed to start Sound Preferences: %s" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "_Silenciar" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "Preferências de _som" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "Silenciado em" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "Desconhecido" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "Mono" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "Frente à Esquerda" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "Frente à Direita" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "Frente ao Centro" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "LFE" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "Atrás à Esquerda" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "Atrás à Direita" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "Atrás ao Centro" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "Frente esquerda do centro" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "Frente direita do centro" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "Lado Esquerdo" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "Lado Direito" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "Frente à esquerda superior" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "Frente à direita superior" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "Frente ao centro superior" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "Topo ao Centro " + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "Atrás à esquerda superior" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "Atrás à direita superior" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "Atrás ao centro superior" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "Estéreo" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "Surround 4.0" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "Surround 4.1" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "Surround 5.0" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "Surround 5.1" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "Surround 7.1" diff --git a/po/pt_BR.po b/po/pt_BR.po new file mode 100644 index 0000000..bcf02f0 --- /dev/null +++ b/po/pt_BR.po @@ -0,0 +1,451 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Aldo Oliveira , 2015 +# André Gondim , 2009, 2010 +# Djavan Fagundes , 2008 +# Eduardo Querido Name , 2017 +# Fabrício Godoy , 2008 +# Gilberto José Souza Coutinho , 2015 +# Guilherme de S. Pastore , 2006 +# Gustavo Maciel Dias Vieira , 2001 +# Henrique P. Machado , 2009 +# Jonh Wendell , 2009 +# leonardof , 2006, 2008, 2009 +# Licio Fernando Nascimento da Fonseca , 2006 +# Marcelo Ghelman , 2014,2017 +# Marcus Vinícius Marques, 2014 +# Og Maciel , 2007 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-19 11:49+0000\n" +"Last-Translator: Eduardo Querido Name \n" +"Language-Team: Portuguese (Brazil) (http://wiki.ukui.org/trans/pt_BR/)\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "Som" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "Alterar volume do áudio e sons de eventos" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "Controle de volume" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "Exibir controle de volume" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "Versão deste aplicativo" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "Habilitar debug" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr " — Miniaplicativo de controle de volume do MATE" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "Sistema de som não está disponível" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "Esperando resposta do sistema de áudio" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "Administração do sistema de som" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "Página de início" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr " — Controle de volume do MATE" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "Entrada" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "Saída" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "Volume do microfone" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "Volume da saída de som" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr "Miniaplicativo de controle de volume do MATE" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "Esquerda" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "Direita" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "Traseiro" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "Frontal" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "Mínimo" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "Máximo" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "_Balanço:" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "_Desaparecimento:" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "_Subwoofer:" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "Sem amplificação" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "100%" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "Mudo" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "_Perfil:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "C_onector:" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "Desabilitado" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "%u saída" +msgstr[1] "%u Saídas" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "%u entrada" +msgstr[1] "%u Entradas" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "Nome" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "Testando alto-falantes para %s" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "Testar alto-falantes" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "Efeitos de som" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "Volume de _alerta: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "Volume de _saída: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "Hardware" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "_Escolha um dispositivo para configurar:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "Configurações para o dispositivo selecionado:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "Volume de _entrada: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "Nível de entrada:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "_Escolha um dispositivo para entrada de som:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "_Escolha um dispositivo para saída de som:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "Aplicativos" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "Nenhum aplicativo está reproduzindo ou gravando áudio no momento." + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "Preferências de som" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "Sem som" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "Embutido" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "Personalizado" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "Testar eventos de som" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "Padrão" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "Do tema" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "Tipo" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "_Tema sonoro:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "_Escolha um som de alerta:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "_Habilitar som das janelas e botões" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "Parar" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "Teste" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "Falhou ao iniciar as preferências de som: %s" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "_Mudo" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "Preferências de _som" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "Emudecido, Atenuado " + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "Desconhecido" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "Mono" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "Frontal Esquerdo" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "Frontal Direito" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "Frontal Central" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "LFE" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "Traseiro Esquerdo" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "Traseiro Direito" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "Traseiro Central" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "Frontal Esquerdo do Centro" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "Frontal Direito do Centro" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "Lateral Esquerdo" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "Lateral Direito" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "Frontal Superior Esquerdo" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "Frontal Superior Direito" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "Frontal Superior Central" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "Frontal Central" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "Trasiero Superior Esquerdo" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "Traseiro Superior Direito" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "Traseiro Superior Central" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "Estéreo" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "Surround 4.0" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "Surround 4.1" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "Surround 5.0" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "Surround 5.1" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "Surround 7.1" diff --git a/po/ro.po b/po/ro.po new file mode 100644 index 0000000..a06039f --- /dev/null +++ b/po/ro.po @@ -0,0 +1,445 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Adi Roiban https://launchpad.net/~adiroiban, 2008, 2009 +# Daniel , 2015 +# Daniel , 2017 +# Lucian Adrian Grijincu , 2010 +# Mugurel Tudor , 2002-2003, 2004, 2005, 2006, 2007 +# Octi , 2014 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-19 11:49+0000\n" +"Last-Translator: Daniel \n" +"Language-Team: Romanian (http://wiki.ukui.org/trans/ro/)\n" +"Language: ro\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" +"2:1));\n" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "Sunet" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "Schimbă volumul sunetului și sunetele evenimentelor" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "Control volum" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "Afișare control volum desktop" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "Versiunea aceastei aplicații" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "Activează depanare" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr " — Miniaplicație control volum MATE" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "Sistemul de sunet nu este disponibil" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "Se așteatpă răspuns de la sistemul de sunet" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "Furnizor din spate pentru sistemul de sunet" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "Pagină pornire" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr " — Control volum MATE" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "Intrare" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "Ieșire" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "Volum microfon" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "Volum sunet ieșire" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr "Control volum MATE" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "Stânga" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "Dreapta" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "Spate" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "Față" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "Minim" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "Maxim" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "_Balanță:" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "_Estompare:" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "_Subwoofer:" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "Neamplificat" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "100%" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "Tăcut" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "_Profil:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "Co_nector:" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "Dezactivat" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "%u ieșire" +msgstr[1] "%u ieșiri" +msgstr[2] "%u de ieșiri" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "%u intrare" +msgstr[1] "%u intrări" +msgstr[2] "%u de intrări" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "Nume" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "Testare difuzoare pentru %s" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "Testează difuzoarele" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "Efecte sunet" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "Volum _alertă:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "V_olum ieșire:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "Hardware" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "Ale_geți un dispozitiv pentru configurare:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "Configurări pentru dispozitivul ales:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "Volum _intrare:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "Nivel intrare:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "Ale_geți un dispozitiv pentru intrare sunet:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "Ale_geți un dispozitiv pentru ieșire sunet:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "Aplicații" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "Nicio aplicație nu redă sau înregistrează sunete în acest moment." + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "Preferințe sunet" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "Niciun sunet" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "Integrat" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "Personalizat" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "Testare eveniment sunet" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "Implicit" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "Din temă" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "Tip" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "_Temă sunet:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "Ale_geți un sunet de alertă:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "Acti_vare sunete pentru fereastră și butoane" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "Stop" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "Testează" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "Pornirea preferințelor sunet a eșuat: %s" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "_Tăcut" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "Preferințe _sunet" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "Tăcut la" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "Necunoscut" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "Mono" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "Stânga față" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "Dreapta față" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "Centru față" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "Efecte de frecvență joasă" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "Stânga spate" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "Dreapta spate" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "Centru spate" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "La stânga de centru în față" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "La dreapta de centru în față" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "Stânga lateral" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "Dreapta lateral" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "Stânga față sus" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "Dreapta față sus" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "Centru față sus" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "Centru sus" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "Stânga spate sus" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "Dreapta spate sus" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "Centru spate sus" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "Stereo" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "Sunet înconjurător 4.0" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "Sunet înconjurător 4.1" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "Sunet înconjurător 5.0" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "Sunet înconjurător 5.1" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "Sunet înconjurător 7.1" diff --git a/po/ru.po b/po/ru.po new file mode 100644 index 0000000..3a7acb6 --- /dev/null +++ b/po/ru.po @@ -0,0 +1,451 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Alexandre Prokoudine , 2009 +# Alexei Sorokin , 2014 +# Andrew W. Nosenko , 2003 +# Дмитрий Михирев, 2015 +# Dmitriy Kulikov , 2017 +# Leonid Kanter , 2004, 2005, 2006 +# theirix , 2015 +# Valery Inozemtsev , 2009 +# Yuri Kozlov , 2010 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-23 18:10+0000\n" +"Last-Translator: Dmitriy Kulikov \n" +"Language-Team: Russian (http://wiki.ukui.org/trans/ru/)\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=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n" +"%100>=11 && n%100<=14)? 2 : 3);\n" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "Звук" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "Изменить громкость звука и связать звуки с событиями рабочего стола" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "Регулятор громкости" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "Показать регулятор громкости" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "Версия этого приложения" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "Включить отладку" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr " — Апплет регулятора громкости MATE" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "Звуковая система недоступна" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "Ожидание ответа звуковой подсистемы" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "Бэкэнд звуковой системы" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "Домашняя страница" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr " — Регулятор громкости MATE" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "Вход" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "Выход" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "Громкость микрофона" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "Громкость звука" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr "Апплет регулятора громкости MATE" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "Левый" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "Правый" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "Задний" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "Передний" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "Минимум" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "Максимум" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "_Баланс" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "Затухание:" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "Сабвуфер" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr " Неусиленный" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "100%" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "Приглушить" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "_Профиль:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "_Канал:" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "Выключено" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "%u выход" +msgstr[1] "%u выхода" +msgstr[2] "%u выходов" +msgstr[3] "%u выходов" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "%u вход" +msgstr[1] "%u входа" +msgstr[2] "%u входов" +msgstr[3] "%u входов" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "Название" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "Проверка динамиков для %s" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "Проверить динамики" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "Звуковые события" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "Громкость _уведомлений: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "_Громкость звука: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "Устройства" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "_Выберите настраиваемое устройство:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "Параметры выбранного устройства:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "Громкость _записи: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "Уровень записи:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "Выберите устройство для записи звука:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "В_ыберите устройство для вывода звука:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "Приложения" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "В настоящий момент приложения не проигрывают и не записывают звук." + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "Параметры звука" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "Без звуков" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "Встроенная" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "Другой" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "Тестовый звуковой сигнал" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "По умолчанию" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "Из темы" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "Тип" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "Тема звуков:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "Выберите звук уведомления:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "Включить звуковые уведомления о действиях с окнами и нажатии кнопок" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "Остановить" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "Проверить" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "Не удалось запустить диалог настройки параметров звука: %s" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "_Приглушить" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "П_араметры звука" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "Отключен" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "Неизвестный" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "Моно" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "Передний левый" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "Передний правый" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "Фронтальный" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "Н/Ч" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "Задний левый" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "Задний правый" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "Задний центральный" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "Передний левый или центральный" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "Передний правый или центральный" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "Боковой левый" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "Боковой правый" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "Верхний передний левый" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "Верхний передний правый" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "Верхний передний центральный" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "Верхний центральный" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "Верхний задний левый" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "Верхний задний правый" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "Верхний задний центральный" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "Стерео" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "Объёмный звук 4.0" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "Объёмный звук 4.1" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "Объёмный звук 5.0" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "Объёмный звук 5.1" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "Объёмный звук 7.1" diff --git a/po/rw.po b/po/rw.po new file mode 100644 index 0000000..9ae516b --- /dev/null +++ b/po/rw.po @@ -0,0 +1,440 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Augustin KIBERWA , 2005 +# Carole Karema , 2005 +# JEAN BAPTISTE NGENDAHAYO , 2005 +# Noëlla Mupole , 2005 +# Philibert Ndandali , 2005 +# Steve Murphy , 2005 +# Viateur MUGENZI , 2005 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-19 11:49+0000\n" +"Last-Translator: monsta \n" +"Language-Team: Kinyarwanda (http://wiki.ukui.org/trans/rw/)\n" +"Language: rw\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:55 +msgid " — UKUI Volume Control Applet" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:202 +msgid " — UKUI Volume Control" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:333 +msgid "UKUI Volume Control Applet" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "" +msgstr[1] "" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "" +msgstr[1] "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "Guhagarara" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "" diff --git a/po/sc.po b/po/sc.po new file mode 100644 index 0000000..efc335b --- /dev/null +++ b/po/sc.po @@ -0,0 +1,434 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Fabrizio Pedes , 2015 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-23 18:52+0000\n" +"Last-Translator: monsta \n" +"Language-Team: Sardinian (http://wiki.ukui.org/trans/sc/)\n" +"Language: sc\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "Sonu" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "Muda volùmene e eventos de su sonu" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:55 +msgid " — UKUI Volume Control Applet" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:202 +msgid " — UKUI Volume Control" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:333 +msgid "UKUI Volume Control Applet" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "" +msgstr[1] "" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "" +msgstr[1] "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "" diff --git a/po/si.po b/po/si.po new file mode 100644 index 0000000..97ada39 --- /dev/null +++ b/po/si.po @@ -0,0 +1,437 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Danishka Navin , 2007 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-19 11:49+0000\n" +"Last-Translator: monsta \n" +"Language-Team: Sinhala (http://wiki.ukui.org/trans/si/)\n" +"Language: si\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "හඬ පාලකය" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr "හඬ පාලකය" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr "හඬ පාලකය" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr "හඬ පාලකය" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "" +msgstr[1] "" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "" +msgstr[1] "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "රිසිකළ" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "ප්‍රකෘතිය" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "නවතන්න" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "" diff --git a/po/sk.po b/po/sk.po new file mode 100644 index 0000000..1c1d647 --- /dev/null +++ b/po/sk.po @@ -0,0 +1,447 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Dušan Kazik , 2015-2017 +# Ján Ďanovský , 2013-2014 +# Marcel Telka , 2005 +# Pavol Šimo , 2015 +# Peter Tuharsky , 2007 +# Stanislav Visnovsky , 2003 +# Stanislav Višňovský , 2002 +# Stanislav Visnovsky , 2000-2002,2003, 2004 +# Tibor Kaputa , 2014 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-19 11:49+0000\n" +"Last-Translator: Dušan Kazik \n" +"Language-Team: Slovak (http://wiki.ukui.org/trans/sk/)\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "Zvuk" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "Zmení hlasitosť zvuku a priradí zvuky k udalostiam" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "Ovládanie hlasitosti" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "Zobrazí ovládanie hlasitosti pracovného prostredia" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "Verzia tohto programu" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "Povoliť ladenie" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr "– applet ovládania hlasitosti MATE" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "Zvukový systém nie je dostupný" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "Čakanie na odpoveď zvukového systému" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "Backend zvukového systému" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "Spúšťacia stránka" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr " — Ovládanie hlasitosti MATE" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "Vstup" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "Výstup" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "Hlasitosť mikrofónu" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "Hlasitosť výstupného zvuku" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr "MATE applet na ovládanie hlasitosti" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "Ľavý" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "Pravý" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "Zadný" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "Predný" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "Minimum" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "Maximum" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "Vyváž_enie:" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "_Prelínanie:" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "_Subwoofer:" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "Nezosilnené" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "100%" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "Stlmiť" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "_Profil:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "Ko_nektor:" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "Vypnuté" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "%u Výstup" +msgstr[1] "%u Výstupy" +msgstr[2] "%u Výstupov" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "%u Vstup" +msgstr[1] "%u Vstupy" +msgstr[2] "%u Vstupov" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "Názov" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "Testovanie reproduktora %s" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "Otestovať reproduktory" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "Zvukové efekty" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "Hl_asitosť upozornení: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "Výst_upná hlasitosť: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "Hardvér" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "Zariadenie nastavíte je_ho vybraním:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "Nastavenie vybraného zariadenia:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "Vstupná hlas_itosť: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "Vstupná úroveň:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "V_yberte zariadenie zvukového vstupu:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "V_yberte zariadenie zvukového výstupu:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "Programy" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "Žiadny program momentálne neprehráva alebo nenahráva zvuk." + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "Nastavenia zvuku" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "Bez zvukov" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "Zabudované" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "Vlastný" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "Testujú sa zvuky udalostí" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "Predvolené" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "Z témy" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "Typ" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "_Téma zvuku:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "V_yberte zvuk upozornení:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "P_ovoliť zvuky okien a tlačidiel" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "Zastaviť" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "Otestovať" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "Nepodarilo sa spustiť nastavenia zvuku: %s" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "S_tlmiť" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "Na_stavenia zvuku" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "Stlmené na" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "Neznámy" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "Mono" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "Predný ľavý" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "Predný pravý" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "Predný stredový" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "LFE" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "Zadný ľavý" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "Zadný pravý" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "Zadný stredový" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "Predný ľavý stredový" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "Predný pravý stredový" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "Bočný ľavý" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "Bočný pravý" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "Horný predný ľavý" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "Horný predný pravý" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "Horný predný stredový" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "Horný stredový" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "Horný zadný ľavý" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "Horný zadný pravý" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "Horný zadný stredový" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "Stereo" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "Surround 4.0" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "Surround 4.1" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "Surround 5.0" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "Surround 5.1" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "Surround 7.1" diff --git a/po/sl.po b/po/sl.po new file mode 100644 index 0000000..b008cdd --- /dev/null +++ b/po/sl.po @@ -0,0 +1,448 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Andraž Tori , 2000 +# Damir Jerovšek , 2013 +# Damir Mevkić , 2017 +# Helena S , 2017 +# Matic Žgur , 2007 +# Matjaž Horvat , 2006 +# worm , 2015 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-23 18:10+0000\n" +"Last-Translator: monsta \n" +"Language-Team: Slovenian (http://wiki.ukui.org/trans/sl/)\n" +"Language: sl\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "Zvok" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "Spreminjanje glasnosti zvoka in zvočni dogodki" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "Nadzor glasnosti" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "Pokaži namizni nadzornik zvoka" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "Različica tega programa" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "Omogoči debugiranje" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr "- MATE aplet za nadzor glasnosti" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "Zvočni sistem ni navoljo" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "Čakanje na odziv zvočnega sistema" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "Zvok sistema podprt" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "Začetna stran" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr "- MATE nadzor glasnosti" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "Vhod" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "Izhod" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "Glasnost mikrofona" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "Izhodna glasnost zvoka" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr "MATE Aplikacija za Nadzor Glasnosti" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "Levo" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "Desno" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "Zadaj" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "Spredaj" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "Najmanj" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "Največ" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "_Ravnotežje:" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "_Pojemanje:" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "_Nizkotonski zvočnik:" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "Neojačano" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "100%" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "Nemo" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "_Profil:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "_Spojnik:" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "Onemogočeno" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "%u izhod" +msgstr[1] "%u izhoda" +msgstr[2] "%u izhodov" +msgstr[3] "%u izhodi" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "%u vhod" +msgstr[1] "%u vhoda" +msgstr[2] "%u vhodov" +msgstr[3] "%u vhodi" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "Ime" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "Preizkus zvočnika za %s" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "Preizkus zvočnikov" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "Zvočni učinki" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "_Glasnost opozoril:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "_Glasnost izhoda:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "Strojna oprema" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "_Izbor naprave za nastavitev:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "Nastavitve za izbrano napravo:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "_Glasnost vhoda:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "Raven vhoda:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "_Izbor naprave za zvočni vhod:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "_Izbor naprave za zvočni izhod:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "Programi" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "Ni programa, ki bi trenutno predvajal ali snemal zvočni posnetek." + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "Lastnosti zvoka" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "Brez zvoka" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "Vgrajeno" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "Po meri" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "Preizkus zvoka dogodkov" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "Privzeto" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "Iz teme" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "Vrsta" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "Zvočna _tema:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "_Izbor zvoka opozorila:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "Omogoči zvoke _oken in gumbov" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "Zaustavi" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "Preizkus" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "Napaka med zagonom lastnosti zvoka: %s" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "_Nemo" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "_Nastavitve zvoka" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "Neznano" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "Mono" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "Spredaj levo" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "Spredaj desno" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "Spredaj v sredini" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "LFE" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "Zadaj Levo" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "Zadaj Desno" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "Zadaj Sredinsko" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "Spredaj levo od Sredine" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "Spredaj Desno od Sredine" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "Ob strani Levo" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "Ob strani Desno" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "Zgoraj Sprednje Levo" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "Zgoraj Sprednje Desno" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "Zgoraj Spredaj v Sredini" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "Zgoraj v Sredini" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "Zgoraj Zadaj Levo" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "Zgoraj Zadaj Desno" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "Zgoraj Zadaj Sredinsko" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "Stereo" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "Prostorski zvok 4.0" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "Prostorski zvok 4.1" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "Prostorski zvok 5.0" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "Prostorski zvok 5.1" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "Prostorski zvok 7.1" diff --git a/po/sq.po b/po/sq.po new file mode 100644 index 0000000..8a5a4b9 --- /dev/null +++ b/po/sq.po @@ -0,0 +1,439 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Ardit Dani , 2014 +# Indrit Bashkimi , 2015 +# Laurent Dhima , 2003-2006, 2008 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-19 11:49+0000\n" +"Last-Translator: monsta \n" +"Language-Team: Albanian (http://wiki.ukui.org/trans/sq/)\n" +"Language: sq\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "Zëri" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "Kontrolli i volumit" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "Versioni i këtij programi" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr "— MATE Kontrolli i Volumit Applet" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "Faqja e nisjes" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr "— MATEKontrolli i Volumit" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "Volumi i mikrofonit" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr "— MATE Kontrolli i Volumit Applet" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "Majtas" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "Djathtas" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "Minimum" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "Maksimum" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "_Balanca:" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "100%" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "_Profilet:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "Çaktivizuar" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "" +msgstr[1] "" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "" +msgstr[1] "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "Emri" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "Ttestimi Bokseve për %s" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "Testo Bokset" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "Efektet Zanore" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "Konfigurime për dispozitivët e përzgjedhur:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "Preferencat Zanore" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "Ska zë" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "Personalizuar" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "Paracaktuar" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "Lloji" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "Ndalo" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "Test" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "_Heshtur" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "" diff --git a/po/sr.po b/po/sr.po new file mode 100644 index 0000000..84a73d3 --- /dev/null +++ b/po/sr.po @@ -0,0 +1,443 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Courtesy of Prevod.org team (http://prevod.org/) -- 2003, 2004, 2005, 2006, 2007 +# Miloš Popović , 2010 +# Miloš Popović , 2010 +# Мирослав Николић , 2014 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-19 11:49+0000\n" +"Last-Translator: Мирослав Николић \n" +"Language-Team: Serbian (http://wiki.ukui.org/trans/sr/)\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "Звук" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "Измените јачину звука и догађаје звука" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "Управљање јачином звука" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "Прикажите управљање јачином звука" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "Издање овог програма" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "Укључује прочишћавање" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr " — Мејтово програмче за управљање звуком" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "Звук система није доступан" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "Чекам на одговор система звука" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "Позадинац система звука" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "Почетна страница" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr " — Мејтово управљање звуком" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "Улаз" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "Излаз" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "Јачина звука микрофона" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "Јачина излазног звука" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr "Мејтово програмче за управљање звуком" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "Леви" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "Десни" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "Задњи" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "Предњи" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "Најтише" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "Најгласније" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "_Однос:" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "_Ишчезавање:" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "_Дубокотонац:" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "Без појачавања" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "100%" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "Утишај" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "_Профил:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "_Конектор:" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "Искључен" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "%u излаз" +msgstr[1] "%u излаза" +msgstr[2] "%u излаза" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "%u улаз" +msgstr[1] "%u улаза" +msgstr[2] "%u улаза" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "Назив" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "Испробавање звучника %s" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "Испробавање звучника" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "Звучна дејства" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "Јачина звука за _упозорења: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "Јачина звука на _излазу: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "Звучне картице" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "Изаберите _уређај за подешавање:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "Подешавања изабраног уређаја:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "Јачина звука на _улазу: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "Улазни ниво:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "Изаберите уређај као звучни _улаз:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "Изаберите уређај као звучни _излаз:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "Програми" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "Ниједан програм тренутно не пушта нити снима звук." + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "Поставке звука" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "Без звука" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "Уграђено" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "Произвољно" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "Испробавање звука догађаја" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "Основно" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "Из теме" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "Врста" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "_Тема звука:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "Изабери звук _упозорења:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "Укључи звуке за _прозоре и дугмиће" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "Заустави" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "Испробај" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "Нисам успео да покренем поставке звука: %s" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "_Утишај" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "Поставке _звука" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "Утишано на" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "Непознато" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "Mono" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "Предњи леви" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "Предњи десни" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "Предњи средишњи" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "ЛФЕ" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "Позадински леви" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "Позадински десни" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "Позадински средишњи" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "Предњи леви средишњи" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "Предњи десни средишњи" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "Бочни леви" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "Бочни десни" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "Горњи предњи леви" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "Горњи предњи десни" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "Горњи предњи средишњи" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "Горњи средишњи" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "Горњи позадински леви" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "Горњи позадински десни" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "Горњи позадински средишњи" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "Стерео" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "Окружујући 4.0" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "Окружујући 4.1" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "Окружујући 5.0" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "Окружујући 5.1" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "Окружујући 7.1" diff --git a/po/sr@latin.po b/po/sr@latin.po new file mode 100644 index 0000000..45423c2 --- /dev/null +++ b/po/sr@latin.po @@ -0,0 +1,441 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Courtesy of Prevod.org team (http://prevod.org/) -- 2003, 2004, 2005, 2006, 2007 +# Miloš Popović , 2010 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-19 11:49+0000\n" +"Last-Translator: monsta \n" +"Language-Team: Serbian (Latin) (http://wiki.ukui.org/trans/sr%40latin/)\n" +"Language: sr@latin\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "Zvuk" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "Menja jačinu zvuka i dodeljuje zvuke događajima" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "Upravljanje zvukom" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "Prikaži kontrolu jačine zvuka" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "Izdanje programa" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr " — Gnomovo programče upravljanje zvukom" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "Čekam na odgovor zvučnog sistema" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "Početna stranica" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr " — Gnomovo upravljanje zvukom" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "Ulaz" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "Izlaz" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "Jačina mikrofona" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "Jačina izlaznog zvuka" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr " — Gnomovo programče upravljanje zvukom" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "Levi" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "Desni" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "Zadnji" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "Prednji" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "Majtiše" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "Najglasnije" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "_Odnos:" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "_Izbledi:" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "_Subvufer" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "Bez pojačavanja" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "100%" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "Utišaj" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "_Profil:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "_Konektor:" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "Onemogućeno" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "Naziv" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "Proba zvučnika %s" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "Proba zvučnika" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "Zvučni efekti" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "Jačina zvuka za _upozorenja: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "Jačina _zvuka na izlazu: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "Zvučne kartice" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "Izaberite uređaj _radi podešavanja:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "Podešavanja za izabrani uređaj:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "Jačina z_vuka na ulazu: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "Ulazni nivo:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "Izaberite uređaj kao zvučni ulaz:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "Izaberite uređaj kao zvučni izlaz:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "Programi" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "Ni jedan program ne pušta ili snima zvuk." + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "Postavke zvuka" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "Bez zvuka" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "Ugrađeno" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "Prilagođeno" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "Provera zvuka za događaj" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "Uobičajno" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "Iz teme" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "Vrsta" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "_Tema za zvuk:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "I_zaberite zvuk za upozorenje:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "Omo_gući zvuke za prozore i dugmiće" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "Zaustavi" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "Proba" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "Ne mogu da pokrenem zvučne postavke: %s" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "_Utišaj" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "Podesi zvuk" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "" diff --git a/po/sv.po b/po/sv.po new file mode 100644 index 0000000..1704b67 --- /dev/null +++ b/po/sv.po @@ -0,0 +1,444 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Andreas Hyden , 2000 +# Christian Rose , 2001, 2002, 2003, 2004, 2005, 2006 +# Daniel Gullbransen , 2017 +# Daniel Nylander , 2006, 2007, 2008, 2009, 2010 +# Erik, 2016 +# Henrik Mattsson-Mårn , 2016 +# Kristoffer Grundström , 2015 +# Martin Wahlen , 1998, 1999 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-19 11:49+0000\n" +"Last-Translator: monsta \n" +"Language-Team: Swedish (http://wiki.ukui.org/trans/sv/)\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "Ljud" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "Ändra ljudvolym och ljudhändelser" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "Volymkontroll" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "Visa skrivbordets volymkontroll" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "Version av detta program" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "Aktivera felsökning" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr " — Volympanelprogram för MATE" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "Ljudsystemet är inte tillgängligt" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "Väntar på att ljudsystemet ska svara" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "Ljudsystemets bakände" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "Uppstartssida" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr " — Volymkontroll för MATE" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "Ingång" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "Utgång" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "Mikrofonvolym" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "Ljudutgångsvolym " + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr "Volymkontrollsapplet för MATE" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "Vänster" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "Höger" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "Bak" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "Fram" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "Minimum" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "Maximum" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "_Balans:" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "_Tona:" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "_Subwoofer:" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "Ej förstärkt" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "100%" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "Tyst" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "_Profil:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "Ko_ntakt:" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "Inaktiverad" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "%u utgång" +msgstr[1] "%u utgångar" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "%u ingång" +msgstr[1] "%u ingångar" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "Namn" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "Högtalartest för %s" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "Testa högtalare" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "Ljudeffekter" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "_Larmvolym: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "_Utgångsvolym: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "Hårdvara" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "Välj en enhet att _konfigurera:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "Inställningar för vald enhet:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "_Ingångsvolym: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "Ingångsnivå:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "Välj _en enhet för ljudingång:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "Välj _en enhet för ljudutgång:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "Program" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "Inget program spelar upp eller in ljud för tillfället." + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "Ljudinställningar" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "Inga ljud" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "Inbyggt" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "Anpassad" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "Testar händelseljud" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "Standard" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "Från tema" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "Typ" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "Ljud_tema:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "Väl_j ett larmljud:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "Aktivera ljud för _fönster och knappar" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "Stopp" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "Testa" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "Misslyckades med att starta ljudinställningar: %s" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "_Tyst" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "_Ljudinställningar" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "Okänt" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "Mono" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "Fronthögtalare vänster" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "Fronthögtalare höger" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "Fronthögtalare mitten" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "Bashögtalare" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "Bakre högtalare vänster" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "Bakre högtalare höger" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "Bakre högtalare mitten" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "Fronthögtalare vänster mitten" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "Fronthögtalare höger mitten" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "Sidohögtalare vänster" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "Sidohögtalare höger" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "Fronthögtalare övre vänster" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "Fronthögtalare övre höger" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "Fronthögtalare övre mitten" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "Längst upp i mitten" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "Bakre högtalare övre vänster" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "Bakre högtalare övre höger" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "Bakre högtalare övre mitten" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "Stereo" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "Surround 4.0" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "Surround 4.1" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "Surround 5.0" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "Surround 5.1" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "Surround 7.1" diff --git a/po/ta.po b/po/ta.po new file mode 100644 index 0000000..fbddcfe --- /dev/null +++ b/po/ta.po @@ -0,0 +1,442 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Dinesh Nadarajah , 2003 +# Dr,T,Vasudevan , 2010 +# Dr.T.Vasudevan , 2007, 2009 +# Felix , 2006 +# I. Felix , 2008, 2009 +# Jayaradha N , 2004 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-19 11:49+0000\n" +"Last-Translator: monsta \n" +"Language-Team: Tamil (http://wiki.ukui.org/trans/ta/)\n" +"Language: ta\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "ஒலியளவு" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "ஒலியளவு மற்றும் ஒலி நிகழ்வுகளை மாற்று" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "ஒலிவளவு கட்டுப்பாடு" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "பணிமேடை ஒலியளவு கட்டுப்பாட்டை காட்டு" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "இந்த பயன்பாட்டின் பதிப்பு" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr "ஒலிவளவு கட்டுப்பாடு" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "ஒலி அமைப்பு பதிலளிக்க காத்திருக்கிறது" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "துவக்க பக்கம்" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr "ஒலிவளவு கட்டுப்பாடு" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "உள்ளீடு" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "வெளிப்பாடு" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr "ஒலிவளவு கட்டுப்பாடு" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "இடது" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "வலது" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "பின்" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "முன்" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "குறைந்த பட்சம்" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "அதிக பட்சம்" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "மீதி (_B):" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "_F மெதுவாக அழி:" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "_S சப் வூஃபர்" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "செறிவூட்டாத" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "100%" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "அமைதியாக்கு" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "விவரக்குறிப்பு: (_P)" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "இணைப்பி: (_n)" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "செயல்நீக்கப்பட்டது" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "%u வெளிப்பாடு" +msgstr[1] "%u வெளிப்பாடுகள்" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "%u உள்ளீடுகள்" +msgstr[1] "%u உள்ளீடுகள்" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "பெயர்" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "ஒலி விளைவுகள்" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "விழிப்பூட்டும் ஒலியளவு: (_A)" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "வெளியேறும் ஒலியளவு: (_O)" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "வன் பொருட்கள்" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "கட்டமைப்புக்கு ஒரு சாதனத்தை தேர்ந்தெடு: (_h)" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "தேர்ந்தெடுக்கப்பட்ட சாதனத்தின் அமைப்புகள்:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "உள்ளீடு ஒலியளவு: (_I)" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "உள்ளீடு நிலை:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "ஒலி உள்ளீட்டிற்கு ஒரு சாதனத்தை தேர்ந்தெடு: (_h)" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "ஒலி வெளிப்பாடு சாதனத்தை தேர்ந்தெடு: (_h)" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "விண்ணப்பங்கள்" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "ஆடியோவை ஒரு பயன்பாடும் தற்போது இயக்கவில்லை அல்லது பதிவு செய்யவில்லை" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "ஒலியளவு முன்னுரிமைகள்" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "ஒலியளவு இல்லை" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "உட்பொதியப்பட்டது" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "வழக்கம்" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "ஒலி நிகழ்வை சோதிக்கிறது" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "முன்னிருப்பு" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "தீமிலிருந்து" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "வகை" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "ஒலித் தீம்: (_t)" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "ஒரு விழிப்பூட்டும் ஒலியை தேர்ந்தெடு: (_h)" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "சாளரம் மற்றும் பொத்தான் ஒலிகளை செயல்படுத்து ( _w)" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "ஒலியளவு கட்டுப்பாடு முன்னுரிமைகளில் தோல்வி : %s" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "அமைதியாக்கு(_M)" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "ஒலியளவு முன்னுரிமைகள்(_S)" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "" diff --git a/po/te.po b/po/te.po new file mode 100644 index 0000000..67fe2a5 --- /dev/null +++ b/po/te.po @@ -0,0 +1,437 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Krishnababu Krothapalli , 2008, 2009, 2010 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-19 11:49+0000\n" +"Last-Translator: monsta \n" +"Language-Team: Telugu (http://wiki.ukui.org/trans/te/)\n" +"Language: te\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "శబ్ధము" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "శబ్దపు ఘటనలను మరియు శబ్ధపు ధ్వనిని మార్చుము" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "వాల్యూమ్ నియంత్రిక" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "డెస్కుటాప్ ధ్వని నియంత్రణను చూపుము" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "ఈ అనువర్తనముయొక్క వర్షన్" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr "వాల్యూమ్ నియంత్రిక" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "శబ్ధపు వ్యవస్థ స్పందన కొరకు వేచివుంది" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "ప్రారంభ పుట" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr "వాల్యూమ్ నియంత్రిక" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "ఇన్పుట్" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "అవుట్పుట్" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr "వాల్యూమ్ నియంత్రిక" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "ఎడమ" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "కుడి" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "ముందలి" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "ఫాంటు" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "కనిష్టం" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "గరిష్టం" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "సమతుల్యం (_B):" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "మాసిన (_F):" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "ఉపవూఫర్ (_S):" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "విస్తృతపరచని(అన్‌యాంప్లిఫైడ్)" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "100%" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "నిశ్శబ్దము" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "ప్రొఫైల్ (_P):" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "అనుసంధానకి (_n):" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "అచేతనమైన" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "%u అవుట్పుట్" +msgstr[1] "%u అవుట్పుట్లు" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "%u ఇన్పుట్" +msgstr[1] "%u ఇన్పుట్లు" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "నామము" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "శబ్ధము ప్రభావములు" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "హెచ్చరిక ధ్వని (_A): " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "అవుట్పుట్ ధ్వని (_O): " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "హార్డువేర్" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "ఆకృతీకరించుటకు వొక పరికరమును యెంచుకొనుము (_h):" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "ఎంపికచేసిన పరికరము కొరకు అమరికలు:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "ఇన్పుట్ ధ్వని (_I): " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "ఇన్పుట్ స్థాయి:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "శబ్ధపు యిన్పుట్ కొరకు వొక పరికరమును యెంచుకొనుము (_h):" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "శబ్ధపు అవుట్పుట్ కొరకు పరికరమును యెంచుకొనుము (_h):" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "అనువర్తనములు" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "ఎటువంటి అనువర్తనము ప్రస్తుతము ప్లేఅవుటలేదు లేదా ఆడియో రికార్డు అవుటలేదు." + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "శబ్ధపు అభీష్టములు" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "శబ్ధములు లేవు" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "అంతర్-నిర్మిత(బుల్ట్-ఇన్)" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "మలుచుకొనిన" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "ఘటనా శబ్ధమును పరిశీలించుచున్నది" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "అప్రమేయ" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "థీమ్ నుండి" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "రకము" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "శబ్ధపు థీమ్ (_t):" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "హెచ్చరిక శబ్ధమును యెంచుకొనుము (_h):" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "విండో మరియు బటన్ శబ్దములను చేతనముచేయుము (_w)" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "శబ్ధము అభీష్టాలు ప్రారంభించుటలో విఫలమైంది: %s" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "నిశ్శబ్దము (_M)" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "శబ్ధము ఆభీష్టాలు (_S)" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "" diff --git a/po/th.po b/po/th.po new file mode 100644 index 0000000..8f1589c --- /dev/null +++ b/po/th.po @@ -0,0 +1,438 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Chanchai Junlouchai , 2004 +# Sapa , 2003, 2004 +# Sawit Kasuriya , 2003 +# Supranee Thirawatthanasuk , 2004 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-19 11:49+0000\n" +"Last-Translator: monsta \n" +"Language-Team: Thai (http://wiki.ukui.org/trans/th/)\n" +"Language: th\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "เสียง" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "ปรับความดังของเสียงและตั้งเสียงของเหตุการณ์ต่างๆ" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "ความดังเสียง" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "แสดงหน้าต่างปรับความดังเสียง" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "รุ่นของโปรแกรมนี้" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr "ความดังเสียง" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "กำลังรอการตอบสนองจากระบบเสียง" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "หน้าเริ่มต้น" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr "ความดังเสียง" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "เสียงเข้า" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "เสียงออก" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr "ความดังเสียง" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "ซ้าย" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "ขวา" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "หลัง" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "หน้า" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "ต่ำสุด" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "สูงสุด" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "_สมดุล:" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "เ_ฟด:" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "_ซับวูฟเฟอร์:" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "ไม่ขยาย" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "100%" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "ปิดเสียง" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "โ_พรไฟล์:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "_ช่องเชื่อมต่อ:" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "ปิดใช้" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "เสียงออก %u ช่อง" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "เสียงเข้า %u ช่อง" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "ชื่อ" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "เอฟเฟ็กต์เสียง" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "ความดังเสียงแ_จ้งเตือน: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "ความดังเสียง_ออก: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "ฮาร์ดแวร์" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "เ_ลือกอุปกรณ์สำหรับเสียงเข้า:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "ค่าตั้งสำหรับอุปกรณ์ที่เลือก:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "ความดังเสียงเ_ข้า: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "ระดับเสียงเข้า:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "เ_ลือกอุปกรณ์สำหรับเสียงเข้า:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "เ_ลือกอุปกรณ์สำหรับเสียงออก:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "โปรแกรม" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "ไม่มีโปรแกรมที่เล่นหรืออัดเสียงอยู่" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "การปรับแต่งเกี่ยวกับเสียง" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "ไม่ใช้เสียง" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "ที่มีในตัว" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "กำหนดเอง" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "กำลังทดสอบเสียงของเหตุการณ์" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "ปริยาย" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "จากชุดเสียง" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "ชนิด" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "ชุดเ_สียง:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "เ_ลือกเสียงแจ้งเตือน:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "เปิดใช้เสียงของห_น้าต่างและปุ่มต่างๆ" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "ไม่สามารถเปิดเครื่องมือปรับแต่งเกี่ยวกับเสียง: %s" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "ปิ_ดเสียง" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "ปรับแต่งเ_สียง" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "ไม่ทราบ" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "" diff --git a/po/tk.po b/po/tk.po new file mode 100644 index 0000000..17ed7e2 --- /dev/null +++ b/po/tk.po @@ -0,0 +1,437 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Gurban Mühemmet Tewekgeli , 2004 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-19 11:49+0000\n" +"Last-Translator: monsta \n" +"Language-Team: Turkmen (http://wiki.ukui.org/trans/tk/)\n" +"Language: tk\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "Hejim Kontroli" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr "Hejim Kontroli" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr "Hejim Kontroli" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr "Hejim Kontroli" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "" +msgstr[1] "" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "" +msgstr[1] "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "Şahsy" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "Dur" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "" diff --git a/po/tr.po b/po/tr.po new file mode 100644 index 0000000..15ab0df --- /dev/null +++ b/po/tr.po @@ -0,0 +1,444 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Arman Aksoy (Armish) , 2003 +# Baris Cicek , 2004, 2005, 2008, 2009 +# Butterfly , 2017 +# Fatih Demir , 2000 +# Kudret , 2014 +# mauron, 2014 +# mauron, 2012 +# Umut Barış GÖKMEN , 2015 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-19 11:49+0000\n" +"Last-Translator: Butterfly \n" +"Language-Team: Turkish (http://wiki.ukui.org/trans/tr/)\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=2; plural=(n > 1);\n" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "Ses" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "Ses seviyesini ve olay seslerini değiştir" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "Ses Kontrolü" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "Masaüstü ses kontrolünü göster" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "Bu uygulamanın sürümü" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "Hata ayıklamayı etkinleştir" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr " — MATE Ses Seviyesi Kontrol Programcığı" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "Ses sistemi kullanılabilir değil" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "Ses sisteminin cevabı bekleniyor" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "Ses sistemi arka ucu" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "Başlangıç sayfası" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr " — MATE Ses Seviyesi Kontrolü" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "Giriş" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "Çıkış" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "Mikrofon seviyesi" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "Ses Çıktı Seviyesi" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr "MATE Ses Seviyesi Kontrol Programcığı" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "Sol" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "Sağ" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "Arka" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "Ön" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "En az" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "En fazla" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "_Denge:" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "_Geçiş:" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "_Subwoofer:" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "Yükseltilmemiş" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "%100" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "Sessiz" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "_Profil:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "_Bağlayıcı:" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "Kapalı" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "%u Çıkış" +msgstr[1] "%u Çıkış" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "%u Giriş" +msgstr[1] "%u Giriş" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "İsim" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "%s İçin Hoparlör Testi" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "Hoparlörleri sına" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "Ses Etkileri" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "_Uyarı ses seviyesi:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "Çıkış _ses seviyesi: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "Donanım" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "_Yapılandırmak için bir aygıt seçin:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "Seçilen aygıt için ayarlar:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "_Giriş ses seviyesi:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "Giriş seviyesi:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "Ses _girişi için bir aygıt seçin:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "Ses çı_kışı için bir aygıt seçin:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "Uygulamalar" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "Şu an da hiçbir uygulama ses çalmıyor veya kaydetmiyor." + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "Ses Tercihleri" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "Ses yok" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "Dahili" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "Özel" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "Olay sesleri deneniyor" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "Öntanımlı" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "Teması" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "Tür" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "Ses _teması:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "Bir _uyarı sesi seçin:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "_Pencere ve tuş seslerini etkinleştir" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "Dur" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "Test" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "Ses Tercihleri başlatılamadı: %ss" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "_Sessiz" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "_Ses Tercihleri" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "Şuna kapalı" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "Bilinmeyen" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "Mono" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "Ön Sol" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "Ön Sağ" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "Ön Merkez" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "Bas Hoparlörü" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "Arka Sol" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "Arka Sağ" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "Arka Merkez" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "Ön Merkezin Solu" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "Ön Merkezin Sağı" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "Sol Kenar" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "Sağ Kenar" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "En Ön Sol" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "En Ön Sağ" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "En Ön Merkez" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "En Orta" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "En Arka Sol" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "En Arka Sağ" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "En Arka Merkez" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "Stereo" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "Çevresel ses 4.0" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "Çevresel ses 4.1" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "Çevresel ses 5.0" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "Çevresel Ses 5.1" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "Çevresel ses 7.1" diff --git a/po/ug.po b/po/ug.po new file mode 100644 index 0000000..0334be9 --- /dev/null +++ b/po/ug.po @@ -0,0 +1,434 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-19 11:49+0000\n" +"Last-Translator: monsta \n" +"Language-Team: Uighur (http://wiki.ukui.org/trans/ug/)\n" +"Language: ug\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "ئاۋاز" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "ئاۋاز مىقدارى ۋە ئاۋاز ھادىسىسى ئۆزگەرت" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "ئاۋاز تىزگىنى" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "ئۈستەل`ئۈستى ئاۋاز تىزگىننى كۆرسەت" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "بۇ پروگراممىنىڭ نەشرى" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr " — MATE ئاۋاز تىزگىن قوللانچاق" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "ئاۋاز سىستېمىسىنىڭ ئىنكاسىنى كۈتۈۋاتىدۇ" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "قوزغىتىش بېتى" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr " — MATE ئاۋاز تىزگىنى" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "كىرگۈز" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "چىقار" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "مىكروفون ئاۋاز مىقدارى" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "چىقىرىدىغان ئاۋاز مىقدارى" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr " — MATE ئاۋاز تىزگىن قوللانچاق" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "سول" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "ئوڭ" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "ئارقا تەرەپ" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "ئالدى" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "ئەڭ كىچىك" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "ئەڭ چوڭ" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "تەڭپۇڭ(_B):" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "ئاجىزلىتىش(_F):" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "ئۇلترا تۆۋەن ئاۋاز(_S):" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "چوڭايتىلمىغان" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "100%" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "ئۈنسىز" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "سەپلىمە ھۆججەت(_P):" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "ئۇلىغۇچ(_N):" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "چەكلەنگەن" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "%u چىقار" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "%u كىرگۈز" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "ئاتى" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "%s نىڭ ياڭراتقۇسىنى سىناش" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "ياڭراتقۇ سىنا" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "ئاۋاز ئۈنۈمى" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "ئاگاھلاندۇرۇش ئاۋاز مىقدارى(_A): " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "چىقىرىدىغان ئاۋاز مىقدارى(_O): " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "قاتتىق دېتال" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "سەپلەيدىغان ئۈسكۈنە تاللاش(_H):" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "تاللىغان ئۈسكۈنىنىڭ تەڭشىكى:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "كىرىش ئاۋاز مىقدارى(_I): " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "كىرىش دەرىجىسى:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "ئاۋاز كىرگۈزۈش ئۈسكۈنىسى تاللاش(_H):" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "ئاۋاز چىقىرىش ئۈسكۈنىسى تاللاش(_H):" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "پروگراممىلار" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "نۆۋەتتە ئاۋاز قويىدىغان ياكى خاتىرىلەيدىغان پروگرامما يوق." + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "ئاۋاز مايىللىقى" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "ئاۋاز يوق" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "ئىچكى" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "ئىختىيارى" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "ھادىسە ئاۋازىنى سىناۋاتىدۇ" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "كۆڭۈلدىكى" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "باش تېمىدىن" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "تىپى" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "ئاۋاز باش تېما(_T):" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "ئاگاھلاندۇرۇش ئاۋازى تاللاڭ(_H):" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "كۆزنەك ۋە توپچا ئاۋازىنى قوزغات(_W)" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "توختا" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "سىنا" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "ئاۋاز مايىللىقىنى قوزغىتالمىدى: %s" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "ئۈنسىز(_M)" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "ئاۋاز مايىللىقى(_S)" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "" diff --git a/po/uk.po b/po/uk.po new file mode 100644 index 0000000..5fb6e10 --- /dev/null +++ b/po/uk.po @@ -0,0 +1,447 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Микола Ткач , 2013 +# wanderlust , 2009 +# zubr139, 2013 +# zubr139, 2012 +# zubr139, 2012-2013 +# Микола Ткач , 2014-2016 +# Микола Ткач , 2017 +# Шаповалов Анатолій Романович , 2015 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-19 11:49+0000\n" +"Last-Translator: Микола Ткач \n" +"Language-Team: Ukrainian (http://wiki.ukui.org/trans/uk/)\n" +"Language: uk\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "Звук" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "Зміна гучности звуку та прив'язка звуків до подій" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "Регулятор гучности" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "Показати регулятор гучности" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "Версія цієї проґрами" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "Увімкнути зневадження" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr "— Аплет регулятора гучности MATE" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "Звукова система недоступна" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "Очікування відповіді звукової підсистеми" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "Бекенд звукової системи" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "Початкова сторінка" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr " — Регулятор гучности MATE" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "Вхід" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "Вихід" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "Гучність мікрофону" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "Гучність звуку" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr "Аплет регулятора гучности MATE" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "Лівий" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "Правий" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "Тло" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "Фронтальний" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "Мінімум" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "Максимум" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "_Баланс" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "_Затухання:" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "_Сабвуфер:" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "Непідсилений" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "100%" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "Приглушити" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "_Профілі:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "_Канал:" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "Вимкнено" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "%u вихід" +msgstr[1] "%u виходи" +msgstr[2] "%u виходів" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "%u вхід" +msgstr[1] "%u входи" +msgstr[2] "%u входів" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "Назва" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "Тест гучномовців для %s" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "Перевірити гучномовці" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "Звукові події" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "Гучність _сповіщень: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "_Гучність звуку: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "Пристрої" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "_Виберіть пристрій для налаштування:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "Параметри обраного пристрою:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "Гучність _запису: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "Рівень запису: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "Ви_беріть пристрій запису звуку:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "Ви_беріть пристрій виводу звуку" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "Проґрами" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "Наразі проґрами не програють та не записують звук." + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "Параметри звуку" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "Без звуків" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "Вбудований" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "Власне" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "Тестовий звуковий сигнал" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "Типовий" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "З теми" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "Тип" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "Тема _звуків:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "Ви_беріть звук сповіщення:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "Увімкнути звукові сповіщення про дії з _вікнами та натисканні кнопок" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "Стоп" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "Тестувати" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "Не вдається запустити діялоґ налаштовування параметрів звуку: %s" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "_Приглушити" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "П_араметри звуку" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "Приглушено" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "Невідомий" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "Моно" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "Передній Лівий" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "Передній Правий" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "Передній Центральний" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "Сабвуфер" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "Задній Лівий" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "Задній Правий" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "Задній Центральний" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "Передній Лівий чи Центральний" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "Передній Правий чи Центральний" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "Бічний Лівий" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "Бічний Правий" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "Передній Лівий Згори" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "Передній Правий Згори" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "Передній Центральний Згори" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "Центральний Згори" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "Задній Лівий Згори" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "Задній Правий Згори" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "Задній Центральний Згори" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "Стерео" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "Об’ємний звук 4.0" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "Об’ємний звук 4.1" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "Об’ємний звук 5.0" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "Об’ємний звук 5.1" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "Об’ємний звук 7.1" diff --git a/po/ur.po b/po/ur.po new file mode 100644 index 0000000..671c07e --- /dev/null +++ b/po/ur.po @@ -0,0 +1,436 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-19 17:23+0000\n" +"Last-Translator: monsta \n" +"Language-Team: Urdu (http://wiki.ukui.org/trans/ur/)\n" +"Language: ur\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "آواز" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "آواز اور اس کی کیفیتیں بدلیں" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "آواز کنٹرول" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "ڈیسک ٹاپ کا آواز کنٹرول دکھائیں" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "اس اطلاقیے کا نُسخہ" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr " — میٹ آواز کنٹرول ایپلیٹ" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "آواز کے نظام سے جواب کا انتظار کیا جارہا ہے" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "صفحہ آغاز" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr " — میٹ آواز کنٹرول" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "ماداخل" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "ماخارج" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "مائکروفون کی آواز" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "ماخارج آواز حُجم" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr " — میٹ آواز کنٹرول ایپلیٹ" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "بائیں" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "دائیں" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "پُشت" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "سامنا" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "کم سے کم" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "زیادہ سے زیادہ" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "_توازن:" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "_دھندلاہٹ:" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "_سب ووفر:" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "100%" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "خاموش" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "_پروفائل:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "_رابط:" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "معطل" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "%u ماخارج" +msgstr[1] "%u ماخارج" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "%u ماداخل" +msgstr[1] "%u ماداخل" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "نام" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "سپیکر جانچ برائے %s" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "سپیکر جانچیں" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "آواز کے اثرات" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "_انتباہ کی آواز:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "_ماخارج آواز:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "ہارڈویئر" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "تشکیل کے لیے ألہ منت_خب کریں:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "منتخب کردہ آلے کی ترتیبات:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "_ماداخل آواز:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "ماداخل سطح:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "آواز کے ماداخل کے لیے ألہ _منتخب کریں:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "آواز کے ماخارج کے لیے ألہ م_نتخب کریں:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "اطلاقیے" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "اس وقت کوئی اطلاقیہ آواز کو چلا یا ریکارڈ نہیں کر رہا." + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "آواز کی ترجیحات" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "کوئی آوازیں نہیں" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "درساختہ" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "مخصوص" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "واقعات کی آوازیں جانچیں" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "طے شُدہ" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "تھیم سے" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "نوعیت" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "آواز کی _تھیم:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "انتباہ کی آواز _منتخب کریں:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "_دریچہ اور بٹن کی آوازیں فعال کریں" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "روکیں" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "جانچیں" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "آواز کی ترجیحات چلانے میں ناکامی: %s" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "_خاموش کریں" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "_آواز کی ترجیحات" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "" diff --git a/po/uz.po b/po/uz.po new file mode 100644 index 0000000..c7ea66b --- /dev/null +++ b/po/uz.po @@ -0,0 +1,436 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# muzaffar habibullayev , 2016 +# Umidjon Almasov , 2013 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-19 20:25+0000\n" +"Last-Translator: monsta \n" +"Language-Team: Uzbek (http://wiki.ukui.org/trans/uz/)\n" +"Language: uz\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "Ovoz" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "Ovoz Nazorati" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr " — MATE Ovoz Nazorati" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr " — MATE Ovoz Nazorati" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "Mikrofon Ovozi" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr "Ovoz Nazorati" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "Chap" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "Oʻng" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "Orqa" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "Oldi" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "Minimum" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "Maksimum" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "_Balans:" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "100%" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "Ovozsiz" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "Oʻchirilgan" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "Nomi" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "Spikerlarni Sinash" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "Ovoz Effektlari" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "Qurilmalar" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "Dasturlar" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "Tovush Xususiyatlari" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "Standart" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "Turi" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "To'xtatish" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "Sinash" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "_Ovozsiz" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "_Tovush Xususiyatlari" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "Noma'lum" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "Mono" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "Stereo" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "" diff --git a/po/vi.po b/po/vi.po new file mode 100644 index 0000000..7899a58 --- /dev/null +++ b/po/vi.po @@ -0,0 +1,437 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Duy Truong Nguyen , 2014 +# Horazone Detex , 2017 +# Nguyễn Thái Ngọc Duy , 2002 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-19 11:49+0000\n" +"Last-Translator: Horazone Detex \n" +"Language-Team: Vietnamese (http://wiki.ukui.org/trans/vi/)\n" +"Language: vi\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "Âm thanh" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "Thay đổi âm lượng và âm thanh của sự kiện" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "Điều khiển Âm lượng" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "Hiện điều khiển âm lượng trên màn hình nền" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "Phiên bản của ứng dụng này" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "Bật debug" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr "— Bộ điều khiển âm lượng Mate" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "Âm thanh hệ thống chưa có" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "Đang đợi hệ thống âm thanh đáp ứng" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "Đầu ra âm thanh hệ thống" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "Trang đầu tiên" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr "__ Điều khiển âm lượng Mate" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "Vào" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "Kết xuất" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "Âm lượng thiết bị thu âm" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "Âm lượng đầu ra" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr "Bộ điều khiển âm lượng Mate" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "Trái" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "Phải" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "Sau" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "Trước" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "Tối thiểu" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "Tối đa" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "Cân _bằng:" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "_Fade:" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "_Subwoofer:" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "Không khuếch đại" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "100%" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "Câm" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "_Hồ sơ:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "Bộ kết_nối:" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "Bị tắt" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "%u đầu ra" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "%u đầu vào" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "Tên" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "Thử loa cho %s" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "Thử loa" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "Hiệu ứng Âm thanh" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "_Cảnh báo âm lượng: " + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "_Đầu ra âm lượng:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "Phần cứng" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "C_họn một thiết bị để cấu hình:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "Thiết lập cho thiết bị đã chọn:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "_Đầu vào âm lượng:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "Cấp nhập:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "C_họn một thiết bị để nhập vào âm thanh:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "C_họn một thiết bị để xuất âm thanh:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "Ứng dụng" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "Không có ứng dụng đang phát hay thu âm thanh." + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "Tuỳ thích Âm thanh" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "Không âm" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "Dựng sẵn" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "Tự chọn" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "Đang thử âm thanh cho sự kiện" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "Mặc định" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "Từ sắc thái" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "Kiểu" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "Sắc thái _Âm thanh:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "C_họn một âm thanh cảnh báo:" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "Bật _âm thanh cho cửa sổ và cái nút" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "Dừng" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "Thử" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "Lỗi khởi chạy Tuỳ thích Âm lượng: %s" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "Câ_m" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "Tuỳ thích Â_m thanh" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "Bị câm tại" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "Không rõ" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "Nguồn đơn" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "Trái trước" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "Phải trước" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "Tâm trước" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "LFE" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "Trái sau" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "Phải sau" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "Tâm sau" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "Trái trước của Tâm" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "Phải trước của Tâm" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "Mặt trái" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "Mặt phải" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "Trái trước trên" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "Phải trước trên" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "Tâm trước trên" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "Tâm trên" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "Trái sau trên" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "Phải sau trên" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "Tâm sau trên" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "Lập thể" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "Surround 4.0" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "Surround 4.1" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "Surround 5.0" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "Surround 5.1" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "Surround 7.1" diff --git a/po/wa.po b/po/wa.po new file mode 100644 index 0000000..a879f37 --- /dev/null +++ b/po/wa.po @@ -0,0 +1,439 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Lucyin Mahin , 2004 +# Pablo Saratxaga , 2002 +# Pablo Saratxaga , 2004 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-19 11:49+0000\n" +"Last-Translator: monsta \n" +"Language-Team: Walloon (http://wiki.ukui.org/trans/wa/)\n" +"Language: wa\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "Contrôle do volume" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr "Contrôle do volume" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr "Contrôle do volume" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr "Contrôle do volume" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "" +msgstr[1] "" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "" +msgstr[1] "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "A vosse môde" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "Arester" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "" diff --git a/po/xh.po b/po/xh.po new file mode 100644 index 0000000..b12e226 --- /dev/null +++ b/po/xh.po @@ -0,0 +1,437 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Translation World CC in South Africa, 2005 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-19 11:49+0000\n" +"Last-Translator: monsta \n" +"Language-Team: Xhosa (http://wiki.ukui.org/trans/xh/)\n" +"Language: xh\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "Ulawulo lweSandi" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr "Ulawulo lweSandi" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr "Ulawulo lweSandi" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr "Ulawulo lweSandi" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "" +msgstr[1] "" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "" +msgstr[1] "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "Ukuzenzela" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "Misa" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "" diff --git a/po/zh_CN.po b/po/zh_CN.po new file mode 100644 index 0000000..180f754 --- /dev/null +++ b/po/zh_CN.po @@ -0,0 +1,446 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Aron Xu , 2010 +# Deng Xiyue , 2009 +# Dillion Chen , 1999 +# Funda Wang , 2003-2004 +# Hinker Liu , 2009 +# liushuyu011 , 2014 +# liushuyu011 , 2017 +# liushuyu011 , 2014 +# Replaced by He Qiangqiang , 2002 +# Sun G11n , 2002 +# Wylmer Wang, 2014 +# Yang Zhang , 2007 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-19 11:49+0000\n" +"Last-Translator: liushuyu011 \n" +"Language-Team: Chinese (China) (http://wiki.ukui.org/trans/zh_CN/)\n" +"Language: zh_CN\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "声音" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "更改音量以及将声音与事件关联" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "音量控制" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "显示桌面音量控制" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "此应用程序的版本" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "启用调试" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr " — MATE 音量控制小程序" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "声音系统不可用" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "正在等待声音系统响应" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "声音系统后台" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "启动页面" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr " - MATE 音量控制" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "输入" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "输出" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "麦克风音量" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "输出音量:" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr "MATE 音量控制小应用" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "左" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "右" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "后置声道" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "前置声道" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "最小值" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "最大值" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "平衡(_B):" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "淡出(_F):" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "低音炮(_S):" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "非放大" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "100%" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "静音" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "配置文件(_P):" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "连接器(_N):" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "禁用" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "%u 输出" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "%u 输入" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "名称" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "%s 话筒设置" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "测试话筒" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "声音效果" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "报警音量(_A):" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "输出音量(_O):" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "硬件" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "选择要配置的设备(_H)" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "所选设备的设置:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "输入音量(_I):" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "输入等级:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "选择声音输入设备(_H):" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "选择声音输出设备(_H):" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "应用程序" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "目前没有应用程序在播放或录制音频。" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "声音首选项" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "无声音" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "内置" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "自定义" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "测试事件声音" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "默认" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "来自主题" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "类型" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "声音主题(_T):" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "选择警报声音(_H):" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "启用窗体与按钮声音(_W)" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "停止" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "测试" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "启动音量首选项失败:%s" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "静音(_M)" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "水平方向" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "声音首选项(_S)" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "已静音于" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "未知" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "单声道" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "左前" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "右前" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "前部中央" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "LFE" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "左后" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "右后" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "后部中央" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "前方左中" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "中心右前" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "左侧" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "右侧" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "顶部左前" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "顶部右前" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "顶部前中央" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "顶部居中央" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "顶部后方左" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "右上" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "中上" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "立体声" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "环绕声 4.0" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "环绕声 4.1" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "环绕声 5.0" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "环绕声 5.1" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "环绕声 7.1" diff --git a/po/zh_HK.po b/po/zh_HK.po new file mode 100644 index 0000000..9517e02 --- /dev/null +++ b/po/zh_HK.po @@ -0,0 +1,437 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Chao-Hsiung Liao , 2008 +# Fernando , 1999 +# tomoe_musashi , 2015 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-19 11:49+0000\n" +"Last-Translator: monsta \n" +"Language-Team: Chinese (Hong Kong) (http://wiki.ukui.org/trans/zh_HK/)\n" +"Language: zh_HK\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "聲音" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "改變音效的音量和音效事件" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "音量控制" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "顯示桌面音量控制" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "這個程式的版本" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "啟用除錯" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr " — MATE 音量控制面板程式" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "音效系統不可用" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "正在等候音效系統回應" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "音效系統後端" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "啟始頁面" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr " — MATE 音量控制" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "輸入" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "輸出" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "麥克風音量" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "音效輸出音量" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr "MATE 音量控制面板程式" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "左" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "右" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "後" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "前" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "最小值" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "最大值" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "平衡(_B):" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "淡化(_F):" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "重低音(_S):" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "未經放大" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "100%" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "靜音" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "設定組合(_P):" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "連接器(_N):" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "已停用" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "%u 輸出" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "%u 輸入" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "名稱" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "%s 的喇叭測試" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "測試喇叭" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "聲音效果" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "警示音量(_A):" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "輸出音量(_O):" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "硬件" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "選擇要設定的裝置(_H):" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "已選取裝置的設定值:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "輸入音量(_I):" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "輸入等級:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "選擇聲音輸入的裝置(_H):" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "選擇聲音輸出的裝置(_H):" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "應用程式" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "沒有應用程式目前正在播放或錄製音效。" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "音效偏好設定" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "不使用音效" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "內置" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "自選" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "測試事件音效" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "預設值" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "從主題" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "類型" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "音效主題(_T):" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "選擇警示音效(_H):" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "啟用視窗與按鈕音效(_W)" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "停止" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "測試" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "啟動音效偏好設定失敗:%s" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "靜音(_M)" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "音效偏好設定(_S)" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "單聲道" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "立體聲" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "環迴立體聲 4.0" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "環迴立體聲 4.1" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "環迴立體聲 5.0" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "環迴立體聲 5.1" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "環迴立體聲 7.1" diff --git a/po/zh_TW.po b/po/zh_TW.po new file mode 100644 index 0000000..bcf6b75 --- /dev/null +++ b/po/zh_TW.po @@ -0,0 +1,439 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Chao-Hsiung Liao , 2008 +# Fernando , 1999 +# Jeff Huang , 2014-2015,2017 +# 趙惟倫 , 2012 +# Jeff Huang , 2014 +msgid "" +msgstr "" +"Project-Id-Version: UKUI Desktop Environment\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-20 11:02+0800\n" +"PO-Revision-Date: 2017-09-19 11:49+0000\n" +"Last-Translator: Jeff Huang \n" +"Language-Team: Chinese (Taiwan) (http://wiki.ukui.org/trans/zh_TW/)\n" +"Language: zh_TW\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" + +#: ../data/ukui-volume-control.desktop.in.in.h:1 +msgid "Sound" +msgstr "聲音" + +#: ../data/ukui-volume-control.desktop.in.in.h:2 +msgid "Change sound volume and sound events" +msgstr "改變音效的音量和音效事件" + +#: ../data/ukui-volume-control-applet.desktop.in.h:1 +#: ../ukui-volume-control/dialog-main.c:255 +#: ../ukui-volume-control/gvc-channel-bar.c:487 +#: ../ukui-volume-control/gvc-speaker-test.c:434 +msgid "Volume Control" +msgstr "音量控制" + +#: ../data/ukui-volume-control-applet.desktop.in.h:2 +msgid "Show desktop volume control" +msgstr "顯示桌面音量控制" + +#: ../ukui-volume-control/applet-main.c:45 +#: ../ukui-volume-control/dialog-main.c:193 +msgid "Version of this application" +msgstr "這個程式的版本" + +#: ../ukui-volume-control/applet-main.c:46 +#: ../ukui-volume-control/dialog-main.c:191 +msgid "Enable debug" +msgstr "啟用除錯" + +#: ../ukui-volume-control/applet-main.c:55 +#, fuzzy +msgid " — UKUI Volume Control Applet" +msgstr " — MATE 音量控制面板程式" + +#: ../ukui-volume-control/dialog-main.c:143 +msgid "Sound system is not available" +msgstr "聲音系統不可用" + +#: ../ukui-volume-control/dialog-main.c:165 +msgid "Waiting for sound system to respond" +msgstr "正在等候音效系統回應" + +#: ../ukui-volume-control/dialog-main.c:190 +msgid "Sound system backend" +msgstr "聲音系統後端" + +#: ../ukui-volume-control/dialog-main.c:192 +msgid "Startup page" +msgstr "啟始頁面" + +#: ../ukui-volume-control/dialog-main.c:202 +#, fuzzy +msgid " — UKUI Volume Control" +msgstr " — MATE 音量控制" + +#: ../ukui-volume-control/gvc-applet.c:322 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1999 +msgid "Input" +msgstr "輸入" + +#: ../ukui-volume-control/gvc-applet.c:323 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2086 +msgid "Output" +msgstr "輸出" + +#: ../ukui-volume-control/gvc-applet.c:326 +msgid "Microphone Volume" +msgstr "麥克風音量" + +#: ../ukui-volume-control/gvc-applet.c:328 +msgid "Sound Output Volume" +msgstr "音效輸出音量" + +#: ../ukui-volume-control/gvc-applet.c:333 +#, fuzzy +msgid "UKUI Volume Control Applet" +msgstr "MATE 音量控制面板程式" + +#: ../ukui-volume-control/gvc-balance-bar.c:140 +msgctxt "balance" +msgid "Left" +msgstr "左" + +#: ../ukui-volume-control/gvc-balance-bar.c:141 +msgctxt "balance" +msgid "Right" +msgstr "右" + +#: ../ukui-volume-control/gvc-balance-bar.c:144 +msgctxt "balance" +msgid "Rear" +msgstr "後" + +#: ../ukui-volume-control/gvc-balance-bar.c:145 +msgctxt "balance" +msgid "Front" +msgstr "前" + +#: ../ukui-volume-control/gvc-balance-bar.c:148 +msgctxt "balance" +msgid "Minimum" +msgstr "最小值" + +#: ../ukui-volume-control/gvc-balance-bar.c:149 +msgctxt "balance" +msgid "Maximum" +msgstr "最大值" + +#: ../ukui-volume-control/gvc-balance-bar.c:337 +msgid "_Balance:" +msgstr "平衡(_B):" + +#: ../ukui-volume-control/gvc-balance-bar.c:340 +msgid "_Fade:" +msgstr "淡化(_F):" + +#: ../ukui-volume-control/gvc-balance-bar.c:343 +msgid "_Subwoofer:" +msgstr "重低音(_S):" + +#: ../ukui-volume-control/gvc-channel-bar.c:312 +msgctxt "volume" +msgid "Unamplified" +msgstr "未經放大" + +#: ../ukui-volume-control/gvc-channel-bar.c:325 +msgctxt "volume" +msgid "100%" +msgstr "100%" + +#. Mute button +#: ../ukui-volume-control/gvc-channel-bar.c:1086 +msgid "Mute" +msgstr "靜音" + +#: ../ukui-volume-control/gvc-combo-box.c:253 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1613 +msgid "_Profile:" +msgstr "設定檔(_P):" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:355 +#: ../ukui-volume-control/gvc-mixer-dialog.c:504 +msgid "Co_nnector:" +msgstr "連接器(_N):" + +#. translators: +#. * The device has been disabled +#: ../ukui-volume-control/gvc-mixer-dialog.c:1126 +msgid "Disabled" +msgstr "已停用" + +#. translators: +#. * The number of sound outputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1132 +#, c-format +msgid "%u Output" +msgid_plural "%u Outputs" +msgstr[0] "%u 輸出" + +#. translators: +#. * The number of sound inputs on a particular device +#: ../ukui-volume-control/gvc-mixer-dialog.c:1141 +#, c-format +msgid "%u Input" +msgid_plural "%u Inputs" +msgstr[0] "%u 輸入" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1504 +#: ../ukui-volume-control/gvc-mixer-dialog.c:1773 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:868 +msgid "Name" +msgstr "名稱" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1552 +#, c-format +msgid "Speaker Testing for %s" +msgstr "%s 的喇叭測試" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1616 +msgid "Test Speakers" +msgstr "測試喇叭" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1821 +msgid "Sound Effects" +msgstr "聲音效果" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1844 +msgid "_Alert volume: " +msgstr "警示音量(_A):" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1913 +msgid "_Output volume: " +msgstr "輸出音量(_O):" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1956 +msgid "Hardware" +msgstr "硬體" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1961 +msgid "C_hoose a device to configure:" +msgstr "選擇要設定的裝置(_H):" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:1985 +#: ../ukui-volume-control/gvc-mixer-dialog.c:2115 +msgid "Settings for the selected device:" +msgstr "已選取裝置的設定值:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2008 +msgid "_Input volume: " +msgstr "輸入音量(_I):" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2033 +msgid "Input level:" +msgstr "輸入等級:" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2058 +msgid "C_hoose a device for sound input:" +msgstr "選擇聲音輸入的裝置(_H):" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2091 +msgid "C_hoose a device for sound output:" +msgstr "選擇聲音輸出的裝置(_H):" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2140 +msgid "Applications" +msgstr "應用程式" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2145 +msgid "No application is currently playing or recording audio." +msgstr "沒有應用程式目前正在播放或錄製音效。" + +#: ../ukui-volume-control/gvc-mixer-dialog.c:2337 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:732 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:744 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:756 +msgid "Sound Preferences" +msgstr "音效偏好設定" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:320 +msgid "No sounds" +msgstr "不使用音效" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:441 +msgid "Built-in" +msgstr "內建" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:628 +#: ../ukui-volume-control/sound-theme-file-utils.c:292 +msgid "Custom" +msgstr "自訂" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:735 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:746 +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:758 +msgid "Testing event sound" +msgstr "測試事件音效" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:844 +msgid "Default" +msgstr "預設值" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:845 +msgid "From theme" +msgstr "從主題" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:875 +msgid "Type" +msgstr "類型" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1034 +msgid "Sound _theme:" +msgstr "音效主題(_T):" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1047 +msgid "C_hoose an alert sound:" +msgstr "選擇警示音效(_H):" + +#: ../ukui-volume-control/gvc-sound-theme-chooser.c:1075 +msgid "Enable _window and button sounds" +msgstr "啟用視窗與按鈕音效(_W)" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +msgid "Stop" +msgstr "停止" + +#: ../ukui-volume-control/gvc-speaker-test.c:258 +#: ../ukui-volume-control/gvc-speaker-test.c:372 +msgid "Test" +msgstr "測試" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:240 +#, c-format +msgid "Failed to start Sound Preferences: %s" +msgstr "啟動音效偏好設定失敗:%s" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:291 +msgid "_Mute" +msgstr "靜音(_M)" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:301 +msgid "_Horizontal" +msgstr "" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:310 +msgid "_Sound Preferences" +msgstr "音效偏好設定(_S)" + +#: ../ukui-volume-control/gvc-stream-status-icon.c:496 +msgid "Muted at" +msgstr "靜音" + +#: ../ukui-volume-control/gvc-utils.c:58 +msgid "Unknown" +msgstr "未知的" + +#. Speaker channel names +#: ../ukui-volume-control/gvc-utils.c:60 ../ukui-volume-control/gvc-utils.c:108 +msgid "Mono" +msgstr "單聲道" + +#: ../ukui-volume-control/gvc-utils.c:61 +msgid "Front Left" +msgstr "左前" + +#: ../ukui-volume-control/gvc-utils.c:62 +msgid "Front Right" +msgstr "右前" + +#: ../ukui-volume-control/gvc-utils.c:63 +msgid "Front Center" +msgstr "前中" + +#: ../ukui-volume-control/gvc-utils.c:64 +msgid "LFE" +msgstr "LFE" + +#: ../ukui-volume-control/gvc-utils.c:65 +msgid "Rear Left" +msgstr "左後" + +#: ../ukui-volume-control/gvc-utils.c:66 +msgid "Rear Right" +msgstr "右後" + +#: ../ukui-volume-control/gvc-utils.c:67 +msgid "Rear Center" +msgstr "中後" + +#: ../ukui-volume-control/gvc-utils.c:68 +msgid "Front Left of Center" +msgstr "中央左前" + +#: ../ukui-volume-control/gvc-utils.c:69 +msgid "Front Right of Center" +msgstr "中央右前" + +#: ../ukui-volume-control/gvc-utils.c:70 +msgid "Side Left" +msgstr "左邊" + +#: ../ukui-volume-control/gvc-utils.c:71 +msgid "Side Right" +msgstr "右邊" + +#: ../ukui-volume-control/gvc-utils.c:72 +msgid "Top Front Left" +msgstr "前方左上" + +#: ../ukui-volume-control/gvc-utils.c:73 +msgid "Top Front Right" +msgstr "前方右上" + +#: ../ukui-volume-control/gvc-utils.c:74 +msgid "Top Front Center" +msgstr "前方中上" + +#: ../ukui-volume-control/gvc-utils.c:75 +msgid "Top Center" +msgstr "上中" + +#: ../ukui-volume-control/gvc-utils.c:76 +msgid "Top Rear Left" +msgstr "後方左上" + +#: ../ukui-volume-control/gvc-utils.c:77 +msgid "Top Rear Right" +msgstr "後方右上" + +#: ../ukui-volume-control/gvc-utils.c:78 +msgid "Top Rear Center" +msgstr "後方中上" + +#: ../ukui-volume-control/gvc-utils.c:113 +msgid "Stereo" +msgstr "立體聲" + +#: ../ukui-volume-control/gvc-utils.c:120 +msgid "Surround 4.0" +msgstr "環繞 4.0" + +#: ../ukui-volume-control/gvc-utils.c:128 +msgid "Surround 4.1" +msgstr "環繞 4.1" + +#: ../ukui-volume-control/gvc-utils.c:130 +msgid "Surround 5.0" +msgstr "環繞 5.0" + +#: ../ukui-volume-control/gvc-utils.c:140 +msgid "Surround 5.1" +msgstr "環繞 5.1" + +#: ../ukui-volume-control/gvc-utils.c:151 +msgid "Surround 7.1" +msgstr "環繞 7.1" diff --git a/scripts/detection_output_mode.sh b/scripts/detection_output_mode.sh new file mode 100755 index 0000000..b0f07e1 --- /dev/null +++ b/scripts/detection_output_mode.sh @@ -0,0 +1,27 @@ +#!/bin/bash +for USER in $(who | grep tty | awk '{print $1}' | sort | uniq);do + USER_NAME=$USER +# USER_NAME=$USER + USER_ID=$(id -u "$USER_NAME") + PULSE_SERVER="unix:/run/user/"$USER_ID"/pulse/native" + OUTPUT_MODE="not available" + FIND_STR=" analog-output" + sudo -H -u ${USER_NAME} pactl --server $PULSE_SERVER list cards |grep analog-output > /tmp/kylin_headphone.tmp + while read line;do + index="$line" + echo $line + if [ -n "$index" ];then + OUTPUT_MODE=${index#*usec, } + OUTPUT_MODE=${OUTPUT_MODE%%)} + echo "输出模式为" $OUTPUT_MODE + fi + if [[ $line =~ "analog-output-speaker" ]] && [[ $OUTPUT_MODE == "available" ]];then + exit 0 + elif [[ $line =~ "analog-output-headphone" ]] && [[ $OUTPUT_MODE == "available" ]];then + exit 1 + fi + done < /tmp/kylin_headphone.tmp +done + +rm -rf /tmp/kylin_headphone.tmp +exit -1 diff --git a/ukui-media-control-led/main.cpp b/ukui-media-control-led/main.cpp new file mode 100644 index 0000000..2464996 --- /dev/null +++ b/ukui-media-control-led/main.cpp @@ -0,0 +1,12 @@ +#include "ukui_media_control_led.h" +//#include +#include + +int main(int argc, char *argv[]) +{ + QCoreApplication a(argc, argv); + + UkuiMediaControlLed control; + + return a.exec(); +} diff --git a/ukui-media-control-led/ukui-media-control-led.pro b/ukui-media-control-led/ukui-media-control-led.pro new file mode 100644 index 0000000..4ff21bb --- /dev/null +++ b/ukui-media-control-led/ukui-media-control-led.pro @@ -0,0 +1,34 @@ +#------------------------------------------------- +# +# Project created by QtCreator 2021-01-03T20:04:12 +# +#------------------------------------------------- + +QT += core gui dbus + +#greaterThan(QT_MAJOR_VERSION, 4): QT += widgets + +TARGET = ukui-media-control-led +TEMPLATE = app + +# The following define makes your compiler emit warnings if you use +# any feature of Qt which as been marked as deprecated (the exact warnings +# depend on your compiler). Please consult the documentation of the +# deprecated API in order to know how to port your code away from it. +DEFINES += QT_DEPRECATED_WARNINGS + +# You can also make your code fail to compile if you use deprecated APIs. +# In order to do so, uncomment the following line. +# You can also select to disable deprecated APIs only up to a certain version of Qt. +#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 +target.path = /usr/bin + +SOURCES += \ + main.cpp \ + ukui_media_control_led.cpp + +HEADERS += \ + ukui_media_control_led.h + +INSTALLS += \ + target diff --git a/ukui-media-control-led/ukui_media_control_led.cpp b/ukui-media-control-led/ukui_media_control_led.cpp new file mode 100644 index 0000000..1096cff --- /dev/null +++ b/ukui-media-control-led/ukui_media_control_led.cpp @@ -0,0 +1,48 @@ +#include "ukui_media_control_led.h" +#include +#include +#include +#include +#include +#include +#include + +UkuiMediaControlLed::UkuiMediaControlLed() +{ + QDBusConnection::systemBus().connect(QString(),"/","org.ukui.media","systemOutputVolumeIsMute",this,SLOT(outputMuteChanged(QString))); + QDBusConnection::systemBus().connect(QString(),"/","org.ukui.media","systemInputVolumeIsMute",this,SLOT(inputMuteChanged(QString))); +} + +void UkuiMediaControlLed::outputMuteChanged(QString str) +{ + qDebug() << "muted" < /sys/class/leds/platform::mute/brightness"); + } + else if (strstr(str.toLatin1().data(),"no")) { + qDebug() << "输出音量取消静音"; + system("echo 0 > /sys/class/leds/platform::mute/brightness"); + } +} + + +void UkuiMediaControlLed::inputMuteChanged(QString str) +{ + qDebug() << "muted" < /sys/class/leds/platform::micmute/brightness"); + + } + else if (strstr(str.toLatin1().data(),"no")) { + qDebug() << "输入音量取消静音"; + system("echo 0 > /sys/class/leds/platform::micmute/brightness"); + } +} + + +UkuiMediaControlLed::~UkuiMediaControlLed() +{ + +} diff --git a/ukui-media-control-led/ukui_media_control_led.h b/ukui-media-control-led/ukui_media_control_led.h new file mode 100644 index 0000000..604eaac --- /dev/null +++ b/ukui-media-control-led/ukui_media_control_led.h @@ -0,0 +1,23 @@ +#ifndef MATE_MEDIA_CONTROL_LED_H +#define MATE_MEDIA_CONTROL_LED_H + +#include +#include +#include + +class UkuiMediaControlLed : public QObject +{ + Q_OBJECT +public: + UkuiMediaControlLed(); + ~UkuiMediaControlLed(); + +private slots: + void outputMuteChanged(QString str); + void inputMuteChanged(QString str); + +private: + +}; + +#endif // MATE_MEDIA_CONTROL_LED_H diff --git a/ukui-media.pro b/ukui-media.pro new file mode 100644 index 0000000..7bc990b --- /dev/null +++ b/ukui-media.pro @@ -0,0 +1,10 @@ +TEMPLATE = subdirs + +CONFIG += ordered + +SUBDIRS = \ + audio \ + ukui-volume-control-applet-qt \ + ukui-media-control-led + + diff --git a/ukui-volume-control-applet-qt/QtSingleApplication/QtLockedFile b/ukui-volume-control-applet-qt/QtSingleApplication/QtLockedFile new file mode 100644 index 0000000..16b48ba --- /dev/null +++ b/ukui-volume-control-applet-qt/QtSingleApplication/QtLockedFile @@ -0,0 +1 @@ +#include "qtlockedfile.h" diff --git a/ukui-volume-control-applet-qt/QtSingleApplication/QtSingleApplication b/ukui-volume-control-applet-qt/QtSingleApplication/QtSingleApplication new file mode 100644 index 0000000..d111bf7 --- /dev/null +++ b/ukui-volume-control-applet-qt/QtSingleApplication/QtSingleApplication @@ -0,0 +1 @@ +#include "qtsingleapplication.h" diff --git a/ukui-volume-control-applet-qt/QtSingleApplication/qtlocalpeer.cpp b/ukui-volume-control-applet-qt/QtSingleApplication/qtlocalpeer.cpp new file mode 100644 index 0000000..cd1fb58 --- /dev/null +++ b/ukui-volume-control-applet-qt/QtSingleApplication/qtlocalpeer.cpp @@ -0,0 +1,213 @@ +/**************************************************************************** +** +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Solutions component. +** +** $QT_BEGIN_LICENSE:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names +** of its contributors may be used to endorse or promote products derived +** from this software without specific prior written permission. +** +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + + +#include "qtlocalpeer.h" +#include +#include +#include + +#if defined(Q_OS_WIN) +#include +#include +typedef BOOL(WINAPI*PProcessIdToSessionId)(DWORD,DWORD*); +static PProcessIdToSessionId pProcessIdToSessionId = 0; +#endif +#if defined(Q_OS_UNIX) +#include +#include +#include +#endif + +namespace QtLP_Private { +#include "qtlockedfile.cpp" +#if defined(Q_OS_WIN) +#include "qtlockedfile_win.cpp" +#else +#include "qtlockedfile_unix.cpp" +#endif +} + +const char* QtLocalPeer::ack = "ack"; + +QtLocalPeer::QtLocalPeer(QObject* parent, const QString &appId) + : QObject(parent), id(appId) +{ + QString prefix = id; + if (id.isEmpty()) { + id = QCoreApplication::applicationFilePath(); +#if defined(Q_OS_WIN) + id = id.toLower(); +#endif + prefix = id.section(QLatin1Char('/'), -1); + } + prefix.remove(QRegExp("[^a-zA-Z]")); + prefix.truncate(6); + + QByteArray idc = id.toUtf8(); + quint16 idNum = qChecksum(idc.constData(), idc.size()); + socketName = QLatin1String("qtsingleapp-") + prefix + + QLatin1Char('-') + QString::number(idNum, 16); + +#if defined(Q_OS_WIN) + if (!pProcessIdToSessionId) { + QLibrary lib("kernel32"); + pProcessIdToSessionId = (PProcessIdToSessionId)lib.resolve("ProcessIdToSessionId"); + } + if (pProcessIdToSessionId) { + DWORD sessionId = 0; + pProcessIdToSessionId(GetCurrentProcessId(), &sessionId); + socketName += QLatin1Char('-') + QString::number(sessionId, 16); + } +#else + socketName += QLatin1Char('-') + QString::number(::getuid(), 16); +#endif + + server = new QLocalServer(this); + QString lockName = QDir(QDir::tempPath()).absolutePath() + + QLatin1Char('/') + socketName + + QLatin1String("-lockfile"); + lockFile.setFileName(lockName); + lockFile.open(QIODevice::ReadWrite); +} + + + +bool QtLocalPeer::isClient() +{ + if (lockFile.isLocked()) + return false; + + if (!lockFile.lock(QtLP_Private::QtLockedFile::WriteLock, false)) + return true; + + bool res = server->listen(socketName); +#if defined(Q_OS_UNIX) && (QT_VERSION >= QT_VERSION_CHECK(4,5,0)) + // ### Workaround + if (!res && server->serverError() == QAbstractSocket::AddressInUseError) { + QFile::remove(QDir::cleanPath(QDir::tempPath())+QLatin1Char('/')+socketName); + res = server->listen(socketName); + } +#endif + if (!res) + qWarning("QtSingleCoreApplication: listen on local socket failed, %s", qPrintable(server->errorString())); + QObject::connect(server, SIGNAL(newConnection()), SLOT(receiveConnection())); + return false; +} + + +bool QtLocalPeer::sendMessage(const QString &message, int timeout) +{ + if (!isClient()) + return false; + + QLocalSocket socket; + bool connOk = false; + for(int i = 0; i < 2; i++) { + // Try twice, in case the other instance is just starting up + socket.connectToServer(socketName); + connOk = socket.waitForConnected(timeout/2); + if (connOk || i) + break; + int ms = 250; +#if defined(Q_OS_WIN) + Sleep(DWORD(ms)); +#else + struct timespec ts = { ms / 1000, (ms % 1000) * 1000 * 1000 }; + nanosleep(&ts, NULL); +#endif + } + if (!connOk) + return false; + + QByteArray uMsg(message.toUtf8()); + QDataStream ds(&socket); + ds.writeBytes(uMsg.constData(), uMsg.size()); + bool res = socket.waitForBytesWritten(timeout); + if (res) { + res &= socket.waitForReadyRead(timeout); // wait for ack + if (res) + res &= (socket.read(qstrlen(ack)) == ack); + } + return res; +} + + +void QtLocalPeer::receiveConnection() +{ + QLocalSocket* socket = server->nextPendingConnection(); + if (!socket) + return; + + while (true) { + if (socket->state() == QLocalSocket::UnconnectedState) { + qWarning("QtLocalPeer: Peer disconnected"); + delete socket; + return; + } + if (socket->bytesAvailable() >= qint64(sizeof(quint32))) + break; + socket->waitForReadyRead(); + } + + QDataStream ds(socket); + QByteArray uMsg; + quint32 remaining; + ds >> remaining; + uMsg.resize(remaining); + int got = 0; + char* uMsgBuf = uMsg.data(); + do { + got = ds.readRawData(uMsgBuf, remaining); + remaining -= got; + uMsgBuf += got; + } while (remaining && got >= 0 && socket->waitForReadyRead(2000)); + if (got < 0) { + qWarning("QtLocalPeer: Message reception failed %s", socket->errorString().toLatin1().constData()); + delete socket; + return; + } + QString message(QString::fromUtf8(uMsg)); + socket->write(ack, qstrlen(ack)); + socket->waitForBytesWritten(1000); + socket->waitForDisconnected(1000); // make sure client reads ack + delete socket; + Q_EMIT messageReceived(message); //### (might take a long time to return) +} diff --git a/ukui-volume-control-applet-qt/QtSingleApplication/qtlocalpeer.h b/ukui-volume-control-applet-qt/QtSingleApplication/qtlocalpeer.h new file mode 100644 index 0000000..1b533b1 --- /dev/null +++ b/ukui-volume-control-applet-qt/QtSingleApplication/qtlocalpeer.h @@ -0,0 +1,77 @@ +/**************************************************************************** +** +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Solutions component. +** +** $QT_BEGIN_LICENSE:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names +** of its contributors may be used to endorse or promote products derived +** from this software without specific prior written permission. +** +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QTLOCALPEER_H +#define QTLOCALPEER_H + +#include +#include +#include + +#include "qtlockedfile.h" + +class QtLocalPeer : public QObject +{ + Q_OBJECT + +public: + QtLocalPeer(QObject *parent = 0, const QString &appId = QString()); + bool isClient(); + bool sendMessage(const QString &message, int timeout); + QString applicationId() const + { return id; } + +Q_SIGNALS: + void messageReceived(const QString &message); + +protected Q_SLOTS: + void receiveConnection(); + +protected: + QString id; + QString socketName; + QLocalServer* server; + QtLP_Private::QtLockedFile lockFile; + +private: + static const char* ack; +}; + +#endif // QTLOCALPEER_H diff --git a/ukui-volume-control-applet-qt/QtSingleApplication/qtlockedfile.cpp b/ukui-volume-control-applet-qt/QtSingleApplication/qtlockedfile.cpp new file mode 100644 index 0000000..c142a86 --- /dev/null +++ b/ukui-volume-control-applet-qt/QtSingleApplication/qtlockedfile.cpp @@ -0,0 +1,193 @@ +/**************************************************************************** +** +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Solutions component. +** +** $QT_BEGIN_LICENSE:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names +** of its contributors may be used to endorse or promote products derived +** from this software without specific prior written permission. +** +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qtlockedfile.h" + +/*! + \class QtLockedFile + + \brief The QtLockedFile class extends QFile with advisory locking + functions. + + A file may be locked in read or write mode. Multiple instances of + \e QtLockedFile, created in multiple processes running on the same + machine, may have a file locked in read mode. Exactly one instance + may have it locked in write mode. A read and a write lock cannot + exist simultaneously on the same file. + + The file locks are advisory. This means that nothing prevents + another process from manipulating a locked file using QFile or + file system functions offered by the OS. Serialization is only + guaranteed if all processes that access the file use + QLockedFile. Also, while holding a lock on a file, a process + must not open the same file again (through any API), or locks + can be unexpectedly lost. + + The lock provided by an instance of \e QtLockedFile is released + whenever the program terminates. This is true even when the + program crashes and no destructors are called. +*/ + +/*! \enum QtLockedFile::LockMode + + This enum describes the available lock modes. + + \value ReadLock A read lock. + \value WriteLock A write lock. + \value NoLock Neither a read lock nor a write lock. +*/ + +/*! + Constructs an unlocked \e QtLockedFile object. This constructor + behaves in the same way as \e QFile::QFile(). + + \sa QFile::QFile() +*/ +QtLockedFile::QtLockedFile() + : QFile() +{ +#ifdef Q_OS_WIN + wmutex = 0; + rmutex = 0; +#endif + m_lock_mode = NoLock; +} + +/*! + Constructs an unlocked QtLockedFile object with file \a name. This + constructor behaves in the same way as \e QFile::QFile(const + QString&). + + \sa QFile::QFile() +*/ +QtLockedFile::QtLockedFile(const QString &name) + : QFile(name) +{ +#ifdef Q_OS_WIN + wmutex = 0; + rmutex = 0; +#endif + m_lock_mode = NoLock; +} + +/*! + Opens the file in OpenMode \a mode. + + This is identical to QFile::open(), with the one exception that the + Truncate mode flag is disallowed. Truncation would conflict with the + advisory file locking, since the file would be modified before the + write lock is obtained. If truncation is required, use resize(0) + after obtaining the write lock. + + Returns true if successful; otherwise false. + + \sa QFile::open(), QFile::resize() +*/ +bool QtLockedFile::open(OpenMode mode) +{ + if (mode & QIODevice::Truncate) { + qWarning("QtLockedFile::open(): Truncate mode not allowed."); + return false; + } + return QFile::open(mode); +} + +/*! + Returns \e true if this object has a in read or write lock; + otherwise returns \e false. + + \sa lockMode() +*/ +bool QtLockedFile::isLocked() const +{ + return m_lock_mode != NoLock; +} + +/*! + Returns the type of lock currently held by this object, or \e + QtLockedFile::NoLock. + + \sa isLocked() +*/ +QtLockedFile::LockMode QtLockedFile::lockMode() const +{ + return m_lock_mode; +} + +/*! + \fn bool QtLockedFile::lock(LockMode mode, bool block = true) + + Obtains a lock of type \a mode. The file must be opened before it + can be locked. + + If \a block is true, this function will block until the lock is + aquired. If \a block is false, this function returns \e false + immediately if the lock cannot be aquired. + + If this object already has a lock of type \a mode, this function + returns \e true immediately. If this object has a lock of a + different type than \a mode, the lock is first released and then a + new lock is obtained. + + This function returns \e true if, after it executes, the file is + locked by this object, and \e false otherwise. + + \sa unlock(), isLocked(), lockMode() +*/ + +/*! + \fn bool QtLockedFile::unlock() + + Releases a lock. + + If the object has no lock, this function returns immediately. + + This function returns \e true if, after it executes, the file is + not locked by this object, and \e false otherwise. + + \sa lock(), isLocked(), lockMode() +*/ + +/*! + \fn QtLockedFile::~QtLockedFile() + + Destroys the \e QtLockedFile object. If any locks were held, they + are released. +*/ diff --git a/ukui-volume-control-applet-qt/QtSingleApplication/qtlockedfile.h b/ukui-volume-control-applet-qt/QtSingleApplication/qtlockedfile.h new file mode 100644 index 0000000..84c18e5 --- /dev/null +++ b/ukui-volume-control-applet-qt/QtSingleApplication/qtlockedfile.h @@ -0,0 +1,97 @@ +/**************************************************************************** +** +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Solutions component. +** +** $QT_BEGIN_LICENSE:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names +** of its contributors may be used to endorse or promote products derived +** from this software without specific prior written permission. +** +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QTLOCKEDFILE_H +#define QTLOCKEDFILE_H + +#include +#ifdef Q_OS_WIN +#include +#endif + +#if defined(Q_OS_WIN) +# if !defined(QT_QTLOCKEDFILE_EXPORT) && !defined(QT_QTLOCKEDFILE_IMPORT) +# define QT_QTLOCKEDFILE_EXPORT +# elif defined(QT_QTLOCKEDFILE_IMPORT) +# if defined(QT_QTLOCKEDFILE_EXPORT) +# undef QT_QTLOCKEDFILE_EXPORT +# endif +# define QT_QTLOCKEDFILE_EXPORT __declspec(dllimport) +# elif defined(QT_QTLOCKEDFILE_EXPORT) +# undef QT_QTLOCKEDFILE_EXPORT +# define QT_QTLOCKEDFILE_EXPORT __declspec(dllexport) +# endif +#else +# define QT_QTLOCKEDFILE_EXPORT +#endif + +namespace QtLP_Private { + +class QT_QTLOCKEDFILE_EXPORT QtLockedFile : public QFile +{ +public: + enum LockMode { NoLock = 0, ReadLock, WriteLock }; + + QtLockedFile(); + QtLockedFile(const QString &name); + ~QtLockedFile(); + + bool open(OpenMode mode); + + bool lock(LockMode mode, bool block = true); + bool unlock(); + bool isLocked() const; + LockMode lockMode() const; + +private: +#ifdef Q_OS_WIN + Qt::HANDLE wmutex; + Qt::HANDLE rmutex; + QVector rmutexes; + QString mutexname; + + Qt::HANDLE getMutexHandle(int idx, bool doCreate); + bool waitMutex(Qt::HANDLE mutex, bool doBlock); + +#endif + LockMode m_lock_mode; +}; +} +#endif diff --git a/ukui-volume-control-applet-qt/QtSingleApplication/qtlockedfile_unix.cpp b/ukui-volume-control-applet-qt/QtSingleApplication/qtlockedfile_unix.cpp new file mode 100644 index 0000000..976c1b9 --- /dev/null +++ b/ukui-volume-control-applet-qt/QtSingleApplication/qtlockedfile_unix.cpp @@ -0,0 +1,115 @@ +/**************************************************************************** +** +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Solutions component. +** +** $QT_BEGIN_LICENSE:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names +** of its contributors may be used to endorse or promote products derived +** from this software without specific prior written permission. +** +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include +#include +#include +#include + +#include "qtlockedfile.h" + +bool QtLockedFile::lock(LockMode mode, bool block) +{ + if (!isOpen()) { + qWarning("QtLockedFile::lock(): file is not opened"); + return false; + } + + if (mode == NoLock) + return unlock(); + + if (mode == m_lock_mode) + return true; + + if (m_lock_mode != NoLock) + unlock(); + + struct flock fl; + fl.l_whence = SEEK_SET; + fl.l_start = 0; + fl.l_len = 0; + fl.l_type = (mode == ReadLock) ? F_RDLCK : F_WRLCK; + int cmd = block ? F_SETLKW : F_SETLK; + int ret = fcntl(handle(), cmd, &fl); + + if (ret == -1) { + if (errno != EINTR && errno != EAGAIN) + qWarning("QtLockedFile::lock(): fcntl: %s", strerror(errno)); + return false; + } + + + m_lock_mode = mode; + return true; +} + + +bool QtLockedFile::unlock() +{ + if (!isOpen()) { + qWarning("QtLockedFile::unlock(): file is not opened"); + return false; + } + + if (!isLocked()) + return true; + + struct flock fl; + fl.l_whence = SEEK_SET; + fl.l_start = 0; + fl.l_len = 0; + fl.l_type = F_UNLCK; + int ret = fcntl(handle(), F_SETLKW, &fl); + + if (ret == -1) { + qWarning("QtLockedFile::lock(): fcntl: %s", strerror(errno)); + return false; + } + + m_lock_mode = NoLock; + return true; +} + +QtLockedFile::~QtLockedFile() +{ + if (isOpen()) + unlock(); +} + diff --git a/ukui-volume-control-applet-qt/QtSingleApplication/qtlockedfile_win.cpp b/ukui-volume-control-applet-qt/QtSingleApplication/qtlockedfile_win.cpp new file mode 100644 index 0000000..5e21262 --- /dev/null +++ b/ukui-volume-control-applet-qt/QtSingleApplication/qtlockedfile_win.cpp @@ -0,0 +1,211 @@ +/**************************************************************************** +** +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Solutions component. +** +** $QT_BEGIN_LICENSE:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names +** of its contributors may be used to endorse or promote products derived +** from this software without specific prior written permission. +** +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qtlockedfile.h" +#include +#include + +#define MUTEX_PREFIX "QtLockedFile mutex " +// Maximum number of concurrent read locks. Must not be greater than MAXIMUM_WAIT_OBJECTS +#define MAX_READERS MAXIMUM_WAIT_OBJECTS + +#if QT_VERSION >= 0x050000 +#define QT_WA(unicode, ansi) unicode +#endif + +Qt::HANDLE QtLockedFile::getMutexHandle(int idx, bool doCreate) +{ + if (mutexname.isEmpty()) { + QFileInfo fi(*this); + mutexname = QString::fromLatin1(MUTEX_PREFIX) + + fi.absoluteFilePath().toLower(); + } + QString mname(mutexname); + if (idx >= 0) + mname += QString::number(idx); + + Qt::HANDLE mutex; + if (doCreate) { + QT_WA( { mutex = CreateMutexW(NULL, FALSE, (TCHAR*)mname.utf16()); }, + { mutex = CreateMutexA(NULL, FALSE, mname.toLocal8Bit().constData()); } ); + if (!mutex) { + qErrnoWarning("QtLockedFile::lock(): CreateMutex failed"); + return 0; + } + } + else { + QT_WA( { mutex = OpenMutexW(SYNCHRONIZE | MUTEX_MODIFY_STATE, FALSE, (TCHAR*)mname.utf16()); }, + { mutex = OpenMutexA(SYNCHRONIZE | MUTEX_MODIFY_STATE, FALSE, mname.toLocal8Bit().constData()); } ); + if (!mutex) { + if (GetLastError() != ERROR_FILE_NOT_FOUND) + qErrnoWarning("QtLockedFile::lock(): OpenMutex failed"); + return 0; + } + } + return mutex; +} + +bool QtLockedFile::waitMutex(Qt::HANDLE mutex, bool doBlock) +{ + Q_ASSERT(mutex); + DWORD res = WaitForSingleObject(mutex, doBlock ? INFINITE : 0); + switch (res) { + case WAIT_OBJECT_0: + case WAIT_ABANDONED: + return true; + break; + case WAIT_TIMEOUT: + break; + default: + qErrnoWarning("QtLockedFile::lock(): WaitForSingleObject failed"); + } + return false; +} + + + +bool QtLockedFile::lock(LockMode mode, bool block) +{ + if (!isOpen()) { + qWarning("QtLockedFile::lock(): file is not opened"); + return false; + } + + if (mode == NoLock) + return unlock(); + + if (mode == m_lock_mode) + return true; + + if (m_lock_mode != NoLock) + unlock(); + + if (!wmutex && !(wmutex = getMutexHandle(-1, true))) + return false; + + if (!waitMutex(wmutex, block)) + return false; + + if (mode == ReadLock) { + int idx = 0; + for (; idx < MAX_READERS; idx++) { + rmutex = getMutexHandle(idx, false); + if (!rmutex || waitMutex(rmutex, false)) + break; + CloseHandle(rmutex); + } + bool ok = true; + if (idx >= MAX_READERS) { + qWarning("QtLockedFile::lock(): too many readers"); + rmutex = 0; + ok = false; + } + else if (!rmutex) { + rmutex = getMutexHandle(idx, true); + if (!rmutex || !waitMutex(rmutex, false)) + ok = false; + } + if (!ok && rmutex) { + CloseHandle(rmutex); + rmutex = 0; + } + ReleaseMutex(wmutex); + if (!ok) + return false; + } + else { + Q_ASSERT(rmutexes.isEmpty()); + for (int i = 0; i < MAX_READERS; i++) { + Qt::HANDLE mutex = getMutexHandle(i, false); + if (mutex) + rmutexes.append(mutex); + } + if (rmutexes.size()) { + DWORD res = WaitForMultipleObjects(rmutexes.size(), rmutexes.constData(), + TRUE, block ? INFINITE : 0); + if (res != WAIT_OBJECT_0 && res != WAIT_ABANDONED) { + if (res != WAIT_TIMEOUT) + qErrnoWarning("QtLockedFile::lock(): WaitForMultipleObjects failed"); + m_lock_mode = WriteLock; // trick unlock() to clean up - semiyucky + unlock(); + return false; + } + } + } + + m_lock_mode = mode; + return true; +} + +bool QtLockedFile::unlock() +{ + if (!isOpen()) { + qWarning("QtLockedFile::unlock(): file is not opened"); + return false; + } + + if (!isLocked()) + return true; + + if (m_lock_mode == ReadLock) { + ReleaseMutex(rmutex); + CloseHandle(rmutex); + rmutex = 0; + } + else { + foreach(Qt::HANDLE mutex, rmutexes) { + ReleaseMutex(mutex); + CloseHandle(mutex); + } + rmutexes.clear(); + ReleaseMutex(wmutex); + } + + m_lock_mode = QtLockedFile::NoLock; + return true; +} + +QtLockedFile::~QtLockedFile() +{ + if (isOpen()) + unlock(); + if (wmutex) + CloseHandle(wmutex); +} diff --git a/ukui-volume-control-applet-qt/QtSingleApplication/qtsingleapplication.cpp b/ukui-volume-control-applet-qt/QtSingleApplication/qtsingleapplication.cpp new file mode 100644 index 0000000..bc2943a --- /dev/null +++ b/ukui-volume-control-applet-qt/QtSingleApplication/qtsingleapplication.cpp @@ -0,0 +1,348 @@ +/**************************************************************************** +** +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Solutions component. +** +** $QT_BEGIN_LICENSE:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names +** of its contributors may be used to endorse or promote products derived +** from this software without specific prior written permission. +** +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + + +#include "qtsingleapplication.h" +#include "qtlocalpeer.h" +#include + + +/*! + \class QtSingleApplication qtsingleapplication.h + \brief The QtSingleApplication class provides an API to detect and + communicate with running instances of an application. + + This class allows you to create applications where only one + instance should be running at a time. I.e., if the user tries to + launch another instance, the already running instance will be + activated instead. Another usecase is a client-server system, + where the first started instance will assume the role of server, + and the later instances will act as clients of that server. + + By default, the full path of the executable file is used to + determine whether two processes are instances of the same + application. You can also provide an explicit identifier string + that will be compared instead. + + The application should create the QtSingleApplication object early + in the startup phase, and call isRunning() to find out if another + instance of this application is already running. If isRunning() + returns false, it means that no other instance is running, and + this instance has assumed the role as the running instance. In + this case, the application should continue with the initialization + of the application user interface before entering the event loop + with exec(), as normal. + + The messageReceived() signal will be emitted when the running + application receives messages from another instance of the same + application. When a message is received it might be helpful to the + user to raise the application so that it becomes visible. To + facilitate this, QtSingleApplication provides the + setActivationWindow() function and the activateWindow() slot. + + If isRunning() returns true, another instance is already + running. It may be alerted to the fact that another instance has + started by using the sendMessage() function. Also data such as + startup parameters (e.g. the name of the file the user wanted this + new instance to open) can be passed to the running instance with + this function. Then, the application should terminate (or enter + client mode). + + If isRunning() returns true, but sendMessage() fails, that is an + indication that the running instance is frozen. + + Here's an example that shows how to convert an existing + application to use QtSingleApplication. It is very simple and does + not make use of all QtSingleApplication's functionality (see the + examples for that). + + \code + // Original + int main(int argc, char **argv) + { + QApplication app(argc, argv); + + MyMainWidget mmw; + mmw.show(); + return app.exec(); + } + + // Single instance + int main(int argc, char **argv) + { + QtSingleApplication app(argc, argv); + + if (app.isRunning()) + return !app.sendMessage(someDataString); + + MyMainWidget mmw; + app.setActivationWindow(&mmw); + mmw.show(); + return app.exec(); + } + \endcode + + Once this QtSingleApplication instance is destroyed (normally when + the process exits or crashes), when the user next attempts to run the + application this instance will not, of course, be encountered. The + next instance to call isRunning() or sendMessage() will assume the + role as the new running instance. + + For console (non-GUI) applications, QtSingleCoreApplication may be + used instead of this class, to avoid the dependency on the QtGui + library. + + \sa QtSingleCoreApplication +*/ + + +void QtSingleApplication::sysInit(const QString &appId) +{ + actWin = 0; + peer = new QtLocalPeer(this, appId); + connect(peer, SIGNAL(messageReceived(const QString&)), SIGNAL(messageReceived(const QString&))); +} + + +/*! + Creates a QtSingleApplication object. The application identifier + will be QCoreApplication::applicationFilePath(). \a argc, \a + argv, and \a GUIenabled are passed on to the QAppliation constructor. + + If you are creating a console application (i.e. setting \a + GUIenabled to false), you may consider using + QtSingleCoreApplication instead. +*/ + +QtSingleApplication::QtSingleApplication(int &argc, char **argv, bool GUIenabled) + : QApplication(argc, argv, GUIenabled) +{ + sysInit(); +} + + +/*! + Creates a QtSingleApplication object with the application + identifier \a appId. \a argc and \a argv are passed on to the + QAppliation constructor. +*/ + +QtSingleApplication::QtSingleApplication(const QString &appId, int &argc, char **argv) + : QApplication(argc, argv) +{ + sysInit(appId); +} + +#if QT_VERSION < 0x050000 + +/*! + Creates a QtSingleApplication object. The application identifier + will be QCoreApplication::applicationFilePath(). \a argc, \a + argv, and \a type are passed on to the QAppliation constructor. +*/ +QtSingleApplication::QtSingleApplication(int &argc, char **argv, Type type) + : QApplication(argc, argv, type) +{ + sysInit(); +} + + +# if defined(Q_WS_X11) +/*! + Special constructor for X11, ref. the documentation of + QApplication's corresponding constructor. The application identifier + will be QCoreApplication::applicationFilePath(). \a dpy, \a visual, + and \a cmap are passed on to the QApplication constructor. +*/ +QtSingleApplication::QtSingleApplication(Display* dpy, Qt::HANDLE visual, Qt::HANDLE cmap) + : QApplication(dpy, visual, cmap) +{ + sysInit(); +} + +/*! + Special constructor for X11, ref. the documentation of + QApplication's corresponding constructor. The application identifier + will be QCoreApplication::applicationFilePath(). \a dpy, \a argc, \a + argv, \a visual, and \a cmap are passed on to the QApplication + constructor. +*/ +QtSingleApplication::QtSingleApplication(Display *dpy, int &argc, char **argv, Qt::HANDLE visual, Qt::HANDLE cmap) + : QApplication(dpy, argc, argv, visual, cmap) +{ + sysInit(); +} + +/*! + Special constructor for X11, ref. the documentation of + QApplication's corresponding constructor. The application identifier + will be \a appId. \a dpy, \a argc, \a + argv, \a visual, and \a cmap are passed on to the QApplication + constructor. +*/ +QtSingleApplication::QtSingleApplication(Display* dpy, const QString &appId, int argc, char **argv, Qt::HANDLE visual, Qt::HANDLE cmap) + : QApplication(dpy, argc, argv, visual, cmap) +{ + sysInit(appId); +} +# endif // Q_WS_X11 +#endif // QT_VERSION < 0x050000 + + +/*! + Returns true if another instance of this application is running; + otherwise false. + + This function does not find instances of this application that are + being run by a different user (on Windows: that are running in + another session). + + \sa sendMessage() +*/ + +bool QtSingleApplication::isRunning() +{ + return peer->isClient(); +} + + +/*! + Tries to send the text \a message to the currently running + instance. The QtSingleApplication object in the running instance + will emit the messageReceived() signal when it receives the + message. + + This function returns true if the message has been sent to, and + processed by, the current instance. If there is no instance + currently running, or if the running instance fails to process the + message within \a timeout milliseconds, this function return false. + + \sa isRunning(), messageReceived() +*/ +bool QtSingleApplication::sendMessage(const QString &message, int timeout) +{ + return peer->sendMessage(message, timeout); +} + + +/*! + Returns the application identifier. Two processes with the same + identifier will be regarded as instances of the same application. +*/ +QString QtSingleApplication::id() const +{ + return peer->applicationId(); +} + + +/*! + Sets the activation window of this application to \a aw. The + activation window is the widget that will be activated by + activateWindow(). This is typically the application's main window. + + If \a activateOnMessage is true (the default), the window will be + activated automatically every time a message is received, just prior + to the messageReceived() signal being emitted. + + \sa activateWindow(), messageReceived() +*/ + +void QtSingleApplication::setActivationWindow(QWidget* aw, bool activateOnMessage) +{ + actWin = aw; + if (activateOnMessage) + connect(peer, SIGNAL(messageReceived(const QString&)), this, SLOT(activateWindow())); + else + disconnect(peer, SIGNAL(messageReceived(const QString&)), this, SLOT(activateWindow())); +} + + +/*! + Returns the applications activation window if one has been set by + calling setActivationWindow(), otherwise returns 0. + + \sa setActivationWindow() +*/ +QWidget* QtSingleApplication::activationWindow() const +{ + return actWin; +} + + +/*! + De-minimizes, raises, and activates this application's activation window. + This function does nothing if no activation window has been set. + + This is a convenience function to show the user that this + application instance has been activated when he has tried to start + another instance. + + This function should typically be called in response to the + messageReceived() signal. By default, that will happen + automatically, if an activation window has been set. + + \sa setActivationWindow(), messageReceived(), initialize() +*/ +void QtSingleApplication::activateWindow() +{ + if (actWin) { + actWin->setWindowState(actWin->windowState() & ~Qt::WindowMinimized); + actWin->raise(); + actWin->showNormal(); + actWin->activateWindow(); + } +} + + +/*! + \fn void QtSingleApplication::messageReceived(const QString& message) + + This signal is emitted when the current instance receives a \a + message from another instance of this application. + + \sa sendMessage(), setActivationWindow(), activateWindow() +*/ + + +/*! + \fn void QtSingleApplication::initialize(bool dummy = true) + + \obsolete +*/ diff --git a/ukui-volume-control-applet-qt/QtSingleApplication/qtsingleapplication.h b/ukui-volume-control-applet-qt/QtSingleApplication/qtsingleapplication.h new file mode 100644 index 0000000..049406f --- /dev/null +++ b/ukui-volume-control-applet-qt/QtSingleApplication/qtsingleapplication.h @@ -0,0 +1,105 @@ +/**************************************************************************** +** +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Solutions component. +** +** $QT_BEGIN_LICENSE:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names +** of its contributors may be used to endorse or promote products derived +** from this software without specific prior written permission. +** +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QTSINGLEAPPLICATION_H +#define QTSINGLEAPPLICATION_H + +#include + +class QtLocalPeer; + +#if defined(Q_OS_WIN) +# if !defined(QT_QTSINGLEAPPLICATION_EXPORT) && !defined(QT_QTSINGLEAPPLICATION_IMPORT) +# define QT_QTSINGLEAPPLICATION_EXPORT +# elif defined(QT_QTSINGLEAPPLICATION_IMPORT) +# if defined(QT_QTSINGLEAPPLICATION_EXPORT) +# undef QT_QTSINGLEAPPLICATION_EXPORT +# endif +# define QT_QTSINGLEAPPLICATION_EXPORT __declspec(dllimport) +# elif defined(QT_QTSINGLEAPPLICATION_EXPORT) +# undef QT_QTSINGLEAPPLICATION_EXPORT +# define QT_QTSINGLEAPPLICATION_EXPORT __declspec(dllexport) +# endif +#else +# define QT_QTSINGLEAPPLICATION_EXPORT +#endif + +class QT_QTSINGLEAPPLICATION_EXPORT QtSingleApplication : public QApplication +{ + Q_OBJECT + +public: + QtSingleApplication(int &argc, char **argv, bool GUIenabled = true); + QtSingleApplication(const QString &id, int &argc, char **argv); +#if QT_VERSION < 0x050000 + QtSingleApplication(int &argc, char **argv, Type type); +# if defined(Q_WS_X11) + QtSingleApplication(Display* dpy, Qt::HANDLE visual = 0, Qt::HANDLE colormap = 0); + QtSingleApplication(Display *dpy, int &argc, char **argv, Qt::HANDLE visual = 0, Qt::HANDLE cmap= 0); + QtSingleApplication(Display* dpy, const QString &appId, int argc, char **argv, Qt::HANDLE visual = 0, Qt::HANDLE colormap = 0); +# endif // Q_WS_X11 +#endif // QT_VERSION < 0x050000 + + bool isRunning(); + QString id() const; + + void setActivationWindow(QWidget* aw, bool activateOnMessage = true); + QWidget* activationWindow() const; + + // Obsolete: + void initialize(bool dummy = true) + { isRunning(); Q_UNUSED(dummy) } + +public Q_SLOTS: + bool sendMessage(const QString &message, int timeout = 5000); + void activateWindow(); + + +Q_SIGNALS: + void messageReceived(const QString &message); + + +private: + void sysInit(const QString &appId = QString()); + QtLocalPeer *peer; + QWidget *actWin; +}; + +#endif // QTSINGLEAPPLICATION_H diff --git a/ukui-volume-control-applet-qt/QtSingleApplication/qtsingleapplication.pri b/ukui-volume-control-applet-qt/QtSingleApplication/qtsingleapplication.pri new file mode 100644 index 0000000..1d85285 --- /dev/null +++ b/ukui-volume-control-applet-qt/QtSingleApplication/qtsingleapplication.pri @@ -0,0 +1,16 @@ +INCLUDEPATH += $$PWD +DEPENDPATH += $$PWD +QT *= network +greaterThan(QT_MAJOR_VERSION, 4): QT *= widgets + +qtsingleapplication-uselib:!qtsingleapplication-buildlib { + LIBS += -L$$QTSINGLEAPPLICATION_LIBDIR -l$$QTSINGLEAPPLICATION_LIBNAME +} else { + SOURCES += $$PWD/qtsingleapplication.cpp $$PWD/qtlocalpeer.cpp + HEADERS += $$PWD/qtsingleapplication.h $$PWD/qtlocalpeer.h +} + +win32 { + contains(TEMPLATE, lib):contains(CONFIG, shared):DEFINES += QT_QTSINGLEAPPLICATION_EXPORT + else:qtsingleapplication-uselib:DEFINES += QT_QTSINGLEAPPLICATION_IMPORT +} diff --git a/ukui-volume-control-applet-qt/QtSingleApplication/qtsinglecoreapplication.cpp b/ukui-volume-control-applet-qt/QtSingleApplication/qtsinglecoreapplication.cpp new file mode 100644 index 0000000..5634537 --- /dev/null +++ b/ukui-volume-control-applet-qt/QtSingleApplication/qtsinglecoreapplication.cpp @@ -0,0 +1,149 @@ +/**************************************************************************** +** +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Solutions component. +** +** $QT_BEGIN_LICENSE:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names +** of its contributors may be used to endorse or promote products derived +** from this software without specific prior written permission. +** +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + + +#include "qtsinglecoreapplication.h" +#include "qtlocalpeer.h" + +/*! + \class QtSingleCoreApplication qtsinglecoreapplication.h + \brief A variant of the QtSingleApplication class for non-GUI applications. + + This class is a variant of QtSingleApplication suited for use in + console (non-GUI) applications. It is an extension of + QCoreApplication (instead of QApplication). It does not require + the QtGui library. + + The API and usage is identical to QtSingleApplication, except that + functions relating to the "activation window" are not present, for + obvious reasons. Please refer to the QtSingleApplication + documentation for explanation of the usage. + + A QtSingleCoreApplication instance can communicate to a + QtSingleApplication instance if they share the same application + id. Hence, this class can be used to create a light-weight + command-line tool that sends commands to a GUI application. + + \sa QtSingleApplication +*/ + +/*! + Creates a QtSingleCoreApplication object. The application identifier + will be QCoreApplication::applicationFilePath(). \a argc and \a + argv are passed on to the QCoreAppliation constructor. +*/ + +QtSingleCoreApplication::QtSingleCoreApplication(int &argc, char **argv) + : QCoreApplication(argc, argv) +{ + peer = new QtLocalPeer(this); + connect(peer, SIGNAL(messageReceived(const QString&)), SIGNAL(messageReceived(const QString&))); +} + + +/*! + Creates a QtSingleCoreApplication object with the application + identifier \a appId. \a argc and \a argv are passed on to the + QCoreAppliation constructor. +*/ +QtSingleCoreApplication::QtSingleCoreApplication(const QString &appId, int &argc, char **argv) + : QCoreApplication(argc, argv) +{ + peer = new QtLocalPeer(this, appId); + connect(peer, SIGNAL(messageReceived(const QString&)), SIGNAL(messageReceived(const QString&))); +} + + +/*! + Returns true if another instance of this application is running; + otherwise false. + + This function does not find instances of this application that are + being run by a different user (on Windows: that are running in + another session). + + \sa sendMessage() +*/ + +bool QtSingleCoreApplication::isRunning() +{ + return peer->isClient(); +} + + +/*! + Tries to send the text \a message to the currently running + instance. The QtSingleCoreApplication object in the running instance + will emit the messageReceived() signal when it receives the + message. + + This function returns true if the message has been sent to, and + processed by, the current instance. If there is no instance + currently running, or if the running instance fails to process the + message within \a timeout milliseconds, this function return false. + + \sa isRunning(), messageReceived() +*/ + +bool QtSingleCoreApplication::sendMessage(const QString &message, int timeout) +{ + return peer->sendMessage(message, timeout); +} + + +/*! + Returns the application identifier. Two processes with the same + identifier will be regarded as instances of the same application. +*/ + +QString QtSingleCoreApplication::id() const +{ + return peer->applicationId(); +} + + +/*! + \fn void QtSingleCoreApplication::messageReceived(const QString& message) + + This signal is emitted when the current instance receives a \a + message from another instance of this application. + + \sa sendMessage() +*/ diff --git a/ukui-volume-control-applet-qt/QtSingleApplication/qtsinglecoreapplication.h b/ukui-volume-control-applet-qt/QtSingleApplication/qtsinglecoreapplication.h new file mode 100644 index 0000000..b87fffe --- /dev/null +++ b/ukui-volume-control-applet-qt/QtSingleApplication/qtsinglecoreapplication.h @@ -0,0 +1,71 @@ +/**************************************************************************** +** +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Solutions component. +** +** $QT_BEGIN_LICENSE:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names +** of its contributors may be used to endorse or promote products derived +** from this software without specific prior written permission. +** +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QTSINGLECOREAPPLICATION_H +#define QTSINGLECOREAPPLICATION_H + +#include + +class QtLocalPeer; + +class QtSingleCoreApplication : public QCoreApplication +{ + Q_OBJECT + +public: + QtSingleCoreApplication(int &argc, char **argv); + QtSingleCoreApplication(const QString &id, int &argc, char **argv); + + bool isRunning(); + QString id() const; + +public Q_SLOTS: + bool sendMessage(const QString &message, int timeout = 5000); + + +Q_SIGNALS: + void messageReceived(const QString &message); + + +private: + QtLocalPeer* peer; +}; + +#endif // QTSINGLECOREAPPLICATION_H diff --git a/ukui-volume-control-applet-qt/QtSingleApplication/qtsinglecoreapplication.pri b/ukui-volume-control-applet-qt/QtSingleApplication/qtsinglecoreapplication.pri new file mode 100644 index 0000000..d2d6cc3 --- /dev/null +++ b/ukui-volume-control-applet-qt/QtSingleApplication/qtsinglecoreapplication.pri @@ -0,0 +1,10 @@ +INCLUDEPATH += $$PWD +DEPENDPATH += $$PWD +HEADERS += $$PWD/qtsinglecoreapplication.h $$PWD/qtlocalpeer.h +SOURCES += $$PWD/qtsinglecoreapplication.cpp $$PWD/qtlocalpeer.cpp + +QT *= network + +win32:contains(TEMPLATE, lib):contains(CONFIG, shared) { + DEFINES += QT_QTSINGLECOREAPPLICATION_EXPORT=__declspec(dllexport) +} diff --git a/ukui-volume-control-applet-qt/config.h b/ukui-volume-control-applet-qt/config.h new file mode 100644 index 0000000..3683020 --- /dev/null +++ b/ukui-volume-control-applet-qt/config.h @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * + * 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, 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 +#include +#include +#include +CustomStyle::CustomStyle(const QString &proxyStyleName, QObject *parent) : QProxyStyle (proxyStyleName) +{ + Q_UNUSED(parent); + m_helpTip = new SliderTipLabelHelper(this); +} +CustomStyle::~CustomStyle() +{ +} + +void CustomStyle::drawComplexControl(QStyle::ComplexControl control, const QStyleOptionComplex *option, QPainter *painter, const QWidget *widget) const +{ + if(control == CC_ToolButton) + { + /// 我们需要获取ToolButton的详细信息,通过qstyleoption_cast可以得到 + /// 对应的option,通过拷贝构造函数得到一份备份用于绘制子控件 + /// 我们一般不用在意option是怎么得到的,大部分的Qt控件都能够提供了option的init方法 + + } + return QProxyStyle::drawComplexControl(control, option, painter, widget); +} + +void CustomStyle::drawControl(QStyle::ControlElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget) const +{ + + return QProxyStyle::drawControl(element, option, painter, widget); +} + +void CustomStyle::drawItemPixmap(QPainter *painter, const QRect &rectangle, int alignment, const QPixmap &pixmap) const +{ + return QProxyStyle::drawItemPixmap(painter, rectangle, alignment, pixmap); +} + +void CustomStyle::drawItemText(QPainter *painter, const QRect &rectangle, int alignment, const QPalette &palette, bool enabled, const QString &text, QPalette::ColorRole textRole) const +{ + return QProxyStyle::drawItemText(painter, rectangle, alignment, palette, enabled, text, textRole); +} + +//绘制简单的颜色圆角等 +void CustomStyle::drawPrimitive(QStyle::PrimitiveElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget) const +{ + switch (element) { + //绘制 ToolButton + case PE_PanelButtonTool:{ + painter->save(); + painter->setRenderHint(QPainter::Antialiasing,true); + painter->setPen(Qt::NoPen); + painter->setBrush(QColor(0xff,0xff,0xff,0x00)); + painter->drawRoundedRect(option->rect,4,4); + if (option->state & State_MouseOver) { + if (option->state & State_Sunken) { + painter->setRenderHint(QPainter::Antialiasing,true); + painter->setPen(Qt::NoPen); + painter->setBrush(QColor(0xff,0xff,0xff,0x14)); + painter->drawRoundedRect(option->rect,4,4); + qDebug() << " 点击按钮"; + } else { + painter->setRenderHint(QPainter::Antialiasing,true); + painter->setPen(Qt::NoPen); + painter->setBrush(QColor(0xff,0xff,0xff,0x1f)); + painter->drawRoundedRect(option->rect,4,4); + qDebug() << "悬停按钮"; + } + } + painter->restore(); + return; + } + case PE_PanelTipLabel:{ + painter->save(); + painter->setRenderHint(QPainter::Antialiasing,true); + painter->setPen(Qt::NoPen); + painter->setBrush(QColor(0xff,0xff,0x00,0xff)); + painter->drawRoundedRect(option->rect,4,4); + painter->restore(); + return; + }break; + case PE_PanelButtonCommand:{ + painter->save(); + painter->setRenderHint(QPainter::TextAntialiasing,true); + painter->setPen(Qt::NoPen); + painter->setBrush(QColor(0xff,0xff,0xff,0x00)); + if (option->state & State_MouseOver) { + if (option->state & State_Sunken) { + painter->setRenderHint(QPainter::Antialiasing,true); + painter->setPen(Qt::NoPen); + painter->setBrush(QColor(0x3d,0x6b,0xe5,0xff)); + painter->drawRoundedRect(option->rect,4,4); + } else { + painter->setRenderHint(QPainter::Antialiasing,true); + painter->setPen(Qt::NoPen); + painter->setBrush(QColor(0xff,0xff,0xff,0x1f)); + painter->drawRoundedRect(option->rect.adjusted(2,2,-2,-2),4,4); + } + } + painter->restore(); + return; + }break; + } + return QProxyStyle::drawPrimitive(element, option, painter, widget); +} + +QPixmap CustomStyle::generatedIconPixmap(QIcon::Mode iconMode, const QPixmap &pixmap, const QStyleOption *option) const +{ + return QProxyStyle::generatedIconPixmap(iconMode, pixmap, option); +} + +QStyle::SubControl CustomStyle::hitTestComplexControl(QStyle::ComplexControl control, const QStyleOptionComplex *option, const QPoint &position, const QWidget *widget) const +{ + return QProxyStyle::hitTestComplexControl(control, option, position, widget); +} + +QRect CustomStyle::itemPixmapRect(const QRect &rectangle, int alignment, const QPixmap &pixmap) const +{ + return QProxyStyle::itemPixmapRect(rectangle, alignment, pixmap); +} + +QRect CustomStyle::itemTextRect(const QFontMetrics &metrics, const QRect &rectangle, int alignment, bool enabled, const QString &text) const +{ + return QProxyStyle::itemTextRect(metrics, rectangle, alignment, enabled, text); +} + +// +int CustomStyle::pixelMetric(QStyle::PixelMetric metric, const QStyleOption *option, const QWidget *widget) const +{ + switch (metric){ + case PM_ToolBarIconSize:{ + return (int)48*qApp->devicePixelRatio(); + } + default: + break; + } + return QProxyStyle::pixelMetric(metric, option, widget); +} + +// +void CustomStyle::polish(QWidget *widget) +{ + if (widget) { + if (widget->inherits("QTipLabel")) { + widget->setAttribute(Qt::WA_TranslucentBackground); + QPainterPath path; + auto rect = widget->rect(); + rect.adjust(0,0,0,0); + path.addRoundedRect(rect,6,6); + widget->setProperty("blurRegion",QRegion(path.toFillPolygon().toPolygon())); + } + } + if (widget) { + if (widget->inherits("QLable")) { + const_cast (widget)->setAttribute(Qt::WA_TranslucentBackground); + widget->setAttribute(Qt::WA_TranslucentBackground); + QPainterPath path; + auto rect = widget->rect(); + rect.adjust(0,0,0,0); + path.addRoundedRect(rect,6,6); + widget->setProperty("blurRegion",QRegion(path.toFillPolygon().toPolygon())); + } + } + if (widget){ + widget->setAttribute(Qt::WA_Hover); + widget->inherits("QSlider"); + m_helpTip->registerWidget(widget); + widget->installEventFilter(this); + } + + return QProxyStyle::polish(widget); +} + +void CustomStyle::polish(QApplication *application) +{ + return QProxyStyle::polish(application); +} + +// +void CustomStyle::polish(QPalette &palette) +{ + // return QProxyStyle::polish(palette); + // QProxyStyle::polish(palette); + // palette.setBrush(QPalette::Foreground, Qt::black); + QColor lightBlue(200, 0, 0); + palette.setBrush(QPalette::Highlight, lightBlue); +} + +void CustomStyle::unpolish(QWidget *widget) +{ + return QProxyStyle::unpolish(widget); +} + +void CustomStyle::unpolish(QApplication *application) +{ + return QProxyStyle::unpolish(application); +} + +QSize CustomStyle::sizeFromContents(QStyle::ContentsType type, const QStyleOption *option, const QSize &contentsSize, const QWidget *widget) const +{ + return QProxyStyle::sizeFromContents(type, option, contentsSize, widget); +} + +QIcon CustomStyle::standardIcon(QStyle::StandardPixmap standardIcon, const QStyleOption *option, const QWidget *widget) const +{ + return QProxyStyle::standardIcon(standardIcon, option, widget); +} + +QPalette CustomStyle::standardPalette() const +{ + return QProxyStyle::standardPalette(); +} + +//如果需要背景透明也许需要用到这个函数 +int CustomStyle::styleHint(QStyle::StyleHint hint, const QStyleOption *option, const QWidget *widget, QStyleHintReturn *returnData) const +{ + switch (hint) { + /// 让ScrollView viewport的绘制区域包含scrollbar和corner widget + /// 这个例子中没有什么作用,如果我们需要绘制一个背景透明的滚动条 + /// 这个style hint对我们的意义应该很大,因为我们希望视图能够帮助 + /// 我们填充滚动条的背景区域,否则当背景透明时底下会出现明显的分割 + + case SH_ScrollView_FrameOnlyAroundContents: { + return false; + } + default: + break; + } + return QProxyStyle::styleHint(hint, option, widget, returnData); +} + +QRect CustomStyle::subControlRect(QStyle::ComplexControl control, const QStyleOptionComplex *option, QStyle::SubControl subControl, const QWidget *widget) const +{ + return QProxyStyle::subControlRect(control, option, subControl, widget); +} + +QRect CustomStyle::subElementRect(QStyle::SubElement element, const QStyleOption *option, const QWidget *widget) const +{ + return QProxyStyle::subElementRect(element, option, widget); +} diff --git a/ukui-volume-control-applet-qt/customstyle.h b/ukui-volume-control-applet-qt/customstyle.h new file mode 100644 index 0000000..5ab8fe1 --- /dev/null +++ b/ukui-volume-control-applet-qt/customstyle.h @@ -0,0 +1,158 @@ +/* + * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * + * 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, 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 +#include +#include "ukmedia_slider_tip_label_helper.h" +/*! + * \brief The CustomStyle class + * \details + * 自定义QStyle + * 基于QProxyStyle,默认使用QProxyStyle的实例绘制控件,你需要针对某一个控件重新实现若干对应的接口。 + * QProxyStyle可以从现有的qt style实例化,我们只需要知道这个style的名字即可。 + * 这种做法带来了不错的扩展性和自由度,因为我们不需要将某个style的代码直接引入我们的项目中, + * 也能够“继承”这个style类进行二次开发。 + * + * 下面的方法展现了QStyle的所有的接口,使用QStyle进行控件的绘制使得qt应用能够进行风格的切换, + * 从而达到不修改项目源码却对应用外观产生巨大影响的效果。 + * + * \note + * 需要注意QStyle与QSS并不兼容,因为QSS本身其实上也是QStyle的一种实现,对一个控件而言,本身理论上只能 + * 在同一时间调用唯一一个QStyle进行绘制。 + */ +class CustomStyle : public QProxyStyle +{ + Q_OBJECT +public: + explicit CustomStyle(const QString &proxyStyleName = "windows", QObject *parent = nullptr); + ~CustomStyle(); + /*! + * \brief drawComplexControl + * \param control 比如ScrollBar,对应CC枚举类型 + * \param option + * \param painter + * \param widget + * \details + * drawComplexControl用于绘制具有子控件的复杂控件,它本身一般不直接绘制控件, + * 而是通过QStyle的其它方法将复杂控件分解成子控件再调用其它的draw方法绘制。 + * 如果你需要重新实现一个复杂控件的绘制方法,首先考虑的应该是在不改变它原有的绘制流程的情况下, + * 对它调用到的其它方法进行重写。 + * + * 如果你不想使用原有的绘制流程,那你需要重写这个接口,然后自己实现一切, + * 包括背景的绘制,子控件的位置和状态计算,子控件的绘制等。 + * 所以,你需要对这个控件有足够的了解之后再尝试直接重写这个接口。 + */ + virtual void drawComplexControl(QStyle::ComplexControl control, const QStyleOptionComplex *option, QPainter *painter, const QWidget *widget = nullptr) const; + /*! + * \brief drawControl + * \param element 比如按钮,对应CE枚举类型 + * \param option + * \param painter + * \param widget + * \details + * drawControl用于绘制基本控件元素,它本身一般只负责绘制控件的一部分或者一层。 + * 如果你想要知道控件具体如何绘制,你需要同时研究这个控件的源码和QStyle中的源码, + * 因为它们都有可能改变控件的绘制流程。 + * + * QStyle一般会遵循QCommonStyle的绘制流程,QCommenStyle是大部分主流style的最基类, + * 它本身不能完全称之为一个主题,如果你直接使用它,你的控件将不能被正常绘制,因为它有可能只是 + * 在特定的时候执行了特定却未实现的绘制方法,它更像一个框架或者规范。 + */ + virtual void drawControl(QStyle::ControlElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget = nullptr) const; + virtual void drawItemPixmap(QPainter *painter, const QRect &rectangle, int alignment, const QPixmap &pixmap) const; + virtual void drawItemText(QPainter *painter, const QRect &rectangle, int alignment, const QPalette &palette, bool enabled, const QString &text, QPalette::ColorRole textRole = QPalette::NoRole) const; + /*! + * \brief drawPrimitive + * \param element 背景绘制,对应PE枚举类型 + * \param option + * \param painter + * \param widget + * \details + * drawPrimitive用于绘制控件背景,比如按钮和菜单的背景, + * 我们一般需要判断控件的状态来绘制不同的背景, + * 比如按钮的hover和点击效果。 + */ + virtual void drawPrimitive(QStyle::PrimitiveElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget = nullptr) const; + virtual QPixmap generatedIconPixmap(QIcon::Mode iconMode, const QPixmap &pixmap, const QStyleOption *option) const; + virtual QStyle::SubControl hitTestComplexControl(QStyle::ComplexControl control, const QStyleOptionComplex *option, const QPoint &position, const QWidget *widget = nullptr) const; + virtual QRect itemPixmapRect(const QRect &rectangle, int alignment, const QPixmap &pixmap) const; + virtual QRect itemTextRect(const QFontMetrics &metrics, const QRect &rectangle, int alignment, bool enabled, const QString &text) const; + //virtual int layoutSpacing(QSizePolicy::ControlType control1, QSizePolicy::ControlType control2, Qt::Orientation orientation, const QStyleOption *option, const QWidget *widget); + virtual int pixelMetric(QStyle::PixelMetric metric, const QStyleOption *option = nullptr, const QWidget *widget = nullptr) const; + + /*! + * \brief polish + * \param widget + * \details + * polish用于对widget进行预处理,一般我们可以在polish中修改其属性, + * 另外,polish是对动画和特效实现而言十分重要的一个方法, + * 通过polish我们能够使widget和特效和动画形成对应关系。 + */ + virtual void polish(QWidget *widget); + virtual void polish(QApplication *application); + virtual void polish(QPalette &palette); + virtual void unpolish(QWidget *widget); + virtual void unpolish(QApplication *application); + + virtual QSize sizeFromContents(QStyle::ContentsType type, const QStyleOption *option, const QSize &contentsSize, const QWidget *widget = nullptr) const; + virtual QIcon standardIcon(QStyle::StandardPixmap standardIcon, const QStyleOption *option, const QWidget *widget) const; + virtual QPalette standardPalette() const; + /*! + * \brief styleHint + * \param hint 对应的枚举是SH + * \param option + * \param widget + * \param returnData + * \return + * \details + * styleHint比较特殊,通过它我们能够改变一些控件的绘制流程或者方式,比如说QMenu是否可以滚动。 + */ + virtual int styleHint(QStyle::StyleHint hint, const QStyleOption *option = nullptr, const QWidget *widget = nullptr, QStyleHintReturn *returnData = nullptr) const; + /*! + * \brief subControlRect + * \param control + * \param option + * \param subControl + * \param widget + * \return + * \details + * subControlRect返回子控件的位置和大小信息,这个方法一般在内置流程中调用, + * 如果我们要重写某个绘制方法,可能需要用到它 + */ + virtual QRect subControlRect(QStyle::ComplexControl control, const QStyleOptionComplex *option, QStyle::SubControl subControl, const QWidget *widget = nullptr) const; + /*! + * \brief subElementRect + * \param element + * \param option + * \param widget + * \return + * \details + * 与subControlRect类似 + */ + virtual QRect subElementRect(QStyle::SubElement element, const QStyleOption *option, const QWidget *widget = nullptr) const; + +Q_SIGNALS: + +public Q_SLOTS: +private: + SliderTipLabelHelper *m_helpTip; +}; + +#endif // CUSTOMSTYLE_H diff --git a/ukui-volume-control-applet-qt/data/img/application.svg b/ukui-volume-control-applet-qt/data/img/application.svg new file mode 100644 index 0000000..9534da3 --- /dev/null +++ b/ukui-volume-control-applet-qt/data/img/application.svg @@ -0,0 +1,16 @@ + + + + +画板 1 + + + + + + + diff --git a/ukui-volume-control-applet-qt/data/img/audio-headphones.svg b/ukui-volume-control-applet-qt/data/img/audio-headphones.svg new file mode 100644 index 0000000..820513d --- /dev/null +++ b/ukui-volume-control-applet-qt/data/img/audio-headphones.svg @@ -0,0 +1,10 @@ + + + + + + diff --git a/ukui-volume-control-applet-qt/data/img/audio-input-microphone.svg b/ukui-volume-control-applet-qt/data/img/audio-input-microphone.svg new file mode 100644 index 0000000..7df2807 --- /dev/null +++ b/ukui-volume-control-applet-qt/data/img/audio-input-microphone.svg @@ -0,0 +1 @@ +audio-input-microphone32 \ No newline at end of file diff --git a/ukui-volume-control-applet-qt/data/img/audio-volume-high-s.svg b/ukui-volume-control-applet-qt/data/img/audio-volume-high-s.svg new file mode 100644 index 0000000..e43c601 --- /dev/null +++ b/ukui-volume-control-applet-qt/data/img/audio-volume-high-s.svg @@ -0,0 +1,14 @@ + + + + + + + + + diff --git a/ukui-volume-control-applet-qt/data/img/audio-volume-high.svg b/ukui-volume-control-applet-qt/data/img/audio-volume-high.svg new file mode 100644 index 0000000..923dc38 --- /dev/null +++ b/ukui-volume-control-applet-qt/data/img/audio-volume-high.svg @@ -0,0 +1,16 @@ + + + + + + + + + diff --git a/ukui-volume-control-applet-qt/data/img/audio-volume-low-s.svg b/ukui-volume-control-applet-qt/data/img/audio-volume-low-s.svg new file mode 100644 index 0000000..fc9d31a --- /dev/null +++ b/ukui-volume-control-applet-qt/data/img/audio-volume-low-s.svg @@ -0,0 +1,15 @@ + + + + + + + + + diff --git a/ukui-volume-control-applet-qt/data/img/audio-volume-low.svg b/ukui-volume-control-applet-qt/data/img/audio-volume-low.svg new file mode 100644 index 0000000..795fb46 --- /dev/null +++ b/ukui-volume-control-applet-qt/data/img/audio-volume-low.svg @@ -0,0 +1,16 @@ + + + + + + + + + diff --git a/ukui-volume-control-applet-qt/data/img/audio-volume-medium-s.svg b/ukui-volume-control-applet-qt/data/img/audio-volume-medium-s.svg new file mode 100644 index 0000000..df3f729 --- /dev/null +++ b/ukui-volume-control-applet-qt/data/img/audio-volume-medium-s.svg @@ -0,0 +1,16 @@ + + + + + + + + + diff --git a/ukui-volume-control-applet-qt/data/img/audio-volume-medium.svg b/ukui-volume-control-applet-qt/data/img/audio-volume-medium.svg new file mode 100644 index 0000000..2093029 --- /dev/null +++ b/ukui-volume-control-applet-qt/data/img/audio-volume-medium.svg @@ -0,0 +1,16 @@ + + + + + + + + + diff --git a/ukui-volume-control-applet-qt/data/img/audio-volume-muted-s.svg b/ukui-volume-control-applet-qt/data/img/audio-volume-muted-s.svg new file mode 100644 index 0000000..2cc281c --- /dev/null +++ b/ukui-volume-control-applet-qt/data/img/audio-volume-muted-s.svg @@ -0,0 +1,17 @@ + + + + + + + + + + diff --git a/ukui-volume-control-applet-qt/data/img/audio-volume-muted.svg b/ukui-volume-control-applet-qt/data/img/audio-volume-muted.svg new file mode 100644 index 0000000..32ae390 --- /dev/null +++ b/ukui-volume-control-applet-qt/data/img/audio-volume-muted.svg @@ -0,0 +1,17 @@ + + + + + + + + + + diff --git a/ukui-volume-control-applet-qt/data/img/audiocard.svg b/ukui-volume-control-applet-qt/data/img/audiocard.svg new file mode 100644 index 0000000..112fc45 --- /dev/null +++ b/ukui-volume-control-applet-qt/data/img/audiocard.svg @@ -0,0 +1 @@ +audiocard32 \ No newline at end of file diff --git a/ukui-volume-control-applet-qt/data/img/complete-module-s.svg b/ukui-volume-control-applet-qt/data/img/complete-module-s.svg new file mode 100644 index 0000000..35d0847 --- /dev/null +++ b/ukui-volume-control-applet-qt/data/img/complete-module-s.svg @@ -0,0 +1,15 @@ + + + + + + + + + + diff --git a/ukui-volume-control-applet-qt/data/img/complete-module.svg b/ukui-volume-control-applet-qt/data/img/complete-module.svg new file mode 100644 index 0000000..b75ab45 --- /dev/null +++ b/ukui-volume-control-applet-qt/data/img/complete-module.svg @@ -0,0 +1,15 @@ + + + + + + + + + + diff --git a/ukui-volume-control-applet-qt/data/img/device.svg b/ukui-volume-control-applet-qt/data/img/device.svg new file mode 100644 index 0000000..670b704 --- /dev/null +++ b/ukui-volume-control-applet-qt/data/img/device.svg @@ -0,0 +1,13 @@ + + + + + + diff --git a/ukui-volume-control-applet-qt/data/img/microphone-high.svg b/ukui-volume-control-applet-qt/data/img/microphone-high.svg new file mode 100644 index 0000000..d3d1333 --- /dev/null +++ b/ukui-volume-control-applet-qt/data/img/microphone-high.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + diff --git a/ukui-volume-control-applet-qt/data/img/microphone-low.svg b/ukui-volume-control-applet-qt/data/img/microphone-low.svg new file mode 100644 index 0000000..6279150 --- /dev/null +++ b/ukui-volume-control-applet-qt/data/img/microphone-low.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + diff --git a/ukui-volume-control-applet-qt/data/img/microphone-medium.svg b/ukui-volume-control-applet-qt/data/img/microphone-medium.svg new file mode 100644 index 0000000..2f14522 --- /dev/null +++ b/ukui-volume-control-applet-qt/data/img/microphone-medium.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + diff --git a/ukui-volume-control-applet-qt/data/img/microphone-mute.svg b/ukui-volume-control-applet-qt/data/img/microphone-mute.svg new file mode 100644 index 0000000..2882f0b --- /dev/null +++ b/ukui-volume-control-applet-qt/data/img/microphone-mute.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + diff --git a/ukui-volume-control-applet-qt/data/img/mini-module-s.svg b/ukui-volume-control-applet-qt/data/img/mini-module-s.svg new file mode 100644 index 0000000..6d8b247 --- /dev/null +++ b/ukui-volume-control-applet-qt/data/img/mini-module-s.svg @@ -0,0 +1,15 @@ + + + + + + + + + + diff --git a/ukui-volume-control-applet-qt/data/img/mini-module.svg b/ukui-volume-control-applet-qt/data/img/mini-module.svg new file mode 100644 index 0000000..682b841 --- /dev/null +++ b/ukui-volume-control-applet-qt/data/img/mini-module.svg @@ -0,0 +1,15 @@ + + + + + + + + + + diff --git a/ukui-volume-control-applet-qt/data/img/setting.svg b/ukui-volume-control-applet-qt/data/img/setting.svg new file mode 100644 index 0000000..bbf1853 --- /dev/null +++ b/ukui-volume-control-applet-qt/data/img/setting.svg @@ -0,0 +1,14 @@ + + + + + + + diff --git a/ukui-volume-control-applet-qt/data/img/tick.png b/ukui-volume-control-applet-qt/data/img/tick.png new file mode 100644 index 0000000000000000000000000000000000000000..a0b7ac7b9c1b5c2ae1a5d62c37ddf338b9162101 GIT binary patch literal 161 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5XoIPC}Ln>}1B}mMC@c;jRHitP5ozK2I*whPTvT=QD7MYN1 z?7_6^KtoP?vT;j_y|T1ZS%adaQ(T6!q)~m#6Yd5EW`>)O`sM{j@iYOAWAJqKb6Mw< G&;$Umk26*P literal 0 HcmV?d00001 diff --git a/ukui-volume-control-applet-qt/data/img/tick.svg b/ukui-volume-control-applet-qt/data/img/tick.svg new file mode 100644 index 0000000..6ead6f5 --- /dev/null +++ b/ukui-volume-control-applet-qt/data/img/tick.svg @@ -0,0 +1,9 @@ + + + + + + diff --git a/ukui-volume-control-applet-qt/data/org.ukui.audio.gschema.xml b/ukui-volume-control-applet-qt/data/org.ukui.audio.gschema.xml new file mode 100644 index 0000000..15f7a63 --- /dev/null +++ b/ukui-volume-control-applet-qt/data/org.ukui.audio.gschema.xml @@ -0,0 +1,74 @@ + + + + true + Init system volume + If true init system volume, otherwise do nothing + + + 17 + Default headphone volume percentage + Default headphone volume percentage 0-100 + + + 67 + Default output volume perccentage + Default output volume percentage 0-100 + + + 100 + Default hdmi volume perccentage + Default hdmi volume percentage 0-100 + + + 100 + Default Mic volume percentage + Default Mic volume percentage 0-100 + + + true + Plugin init volume + Whether to initialize the volume when plugging or unplugging the headset + + + true + Plugin init intel mic volume + Whether to initialize the volume when plugging or unplugging the headset + + + true + Plugin init volume + Whether to initialize the volume when plugging or unplugging the headset + + + true + Plugin init volume + Whether to initialize the volume when plugging or unplugging the headset + + + true + Plugin init volume + Whether to initialize the volume when plugging or unplugging the headset + + + true + Plugin init speaker volume + Whether to initialize the volume when plugging or unplugging the headset + + + true + Plugin init volume + Whether to initialize the volume when plugging or unplugging the headset + + + true + Plugin init volume + Whether to initialize the volume when plugging or unplugging the rear headphone + + + true + Plugin init volume + Whether to initialize the volume when plugging or unplugging the hdmi + + + diff --git a/ukui-volume-control-applet-qt/data/org.ukui.sound.gschema.xml b/ukui-volume-control-applet-qt/data/org.ukui.sound.gschema.xml new file mode 100644 index 0000000..18393b0 --- /dev/null +++ b/ukui-volume-control-applet-qt/data/org.ukui.sound.gschema.xml @@ -0,0 +1,39 @@ + + + + '' + Default mixer device + The default mixer device used by the multimedia key bindings. + + + [] + Default mixer tracks + The default mixer tracks used by the multimedia key bindings. + + + false + Enable ESD + Enable sound server startup. + + + true + Sounds for events + Whether to play sounds on user events. + + + 'ukui' + Sound theme name + The XDG sound theme to use for event sounds. + + + true + Input feedback sounds + Whether to play sounds on input events. + + + true + Noise Reduction + Mic noise reduction option + + + diff --git a/ukui-volume-control-applet-qt/data/qss/ukuimedia.qss b/ukui-volume-control-applet-qt/data/qss/ukuimedia.qss new file mode 100644 index 0000000..e69de29 diff --git a/ukui-volume-control-applet-qt/data/sounds/bark.ogg b/ukui-volume-control-applet-qt/data/sounds/bark.ogg new file mode 100644 index 0000000000000000000000000000000000000000..480950c681b94147299284d425e9ccbbd1fbb4d6 GIT binary patch literal 13322 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 literal 0 HcmV?d00001 diff --git a/ukui-volume-control-applet-qt/data/sounds/clang.ogg b/ukui-volume-control-applet-qt/data/sounds/clang.ogg new file mode 100644 index 0000000000000000000000000000000000000000..bda25f5d67c34ea82a9286067e6e1f6ea5797adc GIT binary patch literal 15569 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 Oy^$+I`C+*TtN#mKHO*K6 literal 0 HcmV?d00001 diff --git a/ukui-volume-control-applet-qt/data/sounds/clank.ogg b/ukui-volume-control-applet-qt/data/sounds/clank.ogg new file mode 100644 index 0000000000000000000000000000000000000000..a47db6939ee421cba140833a06e478c80ec9e2dc GIT binary patch literal 21913 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 k5O-(L(rlJ2BV(;(isDAyEmDc7EKy3kHnd48 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 literal 0 HcmV?d00001 diff --git a/ukui-volume-control-applet-qt/data/sounds/fizz.ogg b/ukui-volume-control-applet-qt/data/sounds/fizz.ogg new file mode 100644 index 0000000000000000000000000000000000000000..fb7f18a9d08d3e67af8b487ee06ef58fdeead2dc GIT binary patch literal 13239 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 DAdcae literal 0 HcmV?d00001 diff --git a/ukui-volume-control-applet-qt/data/sounds/flop.ogg b/ukui-volume-control-applet-qt/data/sounds/flop.ogg new file mode 100644 index 0000000000000000000000000000000000000000..05e7bab93527e7d086ec6f56766ac50353526a2c GIT binary patch literal 14060 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 I3)Dvb7o>jgBLDyZ literal 0 HcmV?d00001 diff --git a/ukui-volume-control-applet-qt/data/sounds/glass.ogg b/ukui-volume-control-applet-qt/data/sounds/glass.ogg new file mode 100644 index 0000000000000000000000000000000000000000..902a3c896a18d1a027eeeba0a23bcb55ca3d5c60 GIT binary patch literal 18999 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 literal 0 HcmV?d00001 diff --git a/ukui-volume-control-applet-qt/data/sounds/gudou.ogg b/ukui-volume-control-applet-qt/data/sounds/gudou.ogg new file mode 100644 index 0000000000000000000000000000000000000000..301601258afddad5bca424d7fcf98105b79c28fd GIT binary patch literal 14156 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%0A#wc+ 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 &@o9jL$CLD0-eZ)V_#SyE}nUiPuVXEz9tL=Ly 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 QYBtG4&+nJZ^&o@)0q&)VjQ{`u literal 0 HcmV?d00001 diff --git a/ukui-volume-control-applet-qt/data/sounds/plump.ogg b/ukui-volume-control-applet-qt/data/sounds/plump.ogg new file mode 100644 index 0000000000000000000000000000000000000000..e20f8ba9df9f63b7f33205279cb7bb9b1affa3d6 GIT binary patch literal 16696 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 literal 0 HcmV?d00001 diff --git a/ukui-volume-control-applet-qt/data/sounds/quack.ogg b/ukui-volume-control-applet-qt/data/sounds/quack.ogg new file mode 100644 index 0000000000000000000000000000000000000000..f465ede641345324dd4fafb721e326bfab566b5c GIT binary patch literal 12768 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 lh$sZ`6Fc zWa>{3-fvoDCB-skfv(Hx8#pA2A%SX$$KfPFg(mp1!&k7qBe|I06of$72a(6rN;iY&4TLq3JnjZVKUa4PbIX`WIx~bVKrz@s z+;9u+z!)|sFowYZKaMtv%d*h+CAs2UBW>BiT*r+(w&%tbUd)XlOe#y;a%o@;j&2@f z8WR>7#um^~F=3(MeA5^UZ8|H0!8QeDxY|e?B_a`oSZG_r4JaTOWgEd`qezBiEE7+p zpiF>%WMdOD$pA&b;i*PAyb*zj#Zyf2cvB)7_36+S2}GImSR7ND-Lg;ez@3G5us{%L zYGf209c>tGY#6}{GQv}-fDgflK)?bDEI&3}K##$O^L0LP5wo#l^O-zuq<|X{j)K|J z84*ze3vB=cjt)!xq*7ReI;n zuoK@aHj-^bWAh`Tcucna26nhW=XYFa>@WKL1ulU6w>*G-{?Ft1jZ8pq_h;&ciPg1> z4X1~3nXYUW7Z~_kv{=l~(judHp(1Orm`3bSb{J5Q58%T8whMzD^CwU-qB%xzs|e(2 zL12KcuBJ}md;vY2$#$}{&;~VzTrSI$O`%Y61da)o#3bUdL>8TlrPIkwES1XOkl9Qs zl}u%R%f&8&83m6E=0e8N*=!=6fF(1?L@bHLU}Kpi1_ev!5OCtd*yP*ZZaglSHuTW1 zxxiy#fw55NBo2{5CSi>kOgxr|XOgf~f{6*%m`F5X;qfFYnT-F6o2e_9EMVT!?clkq z{bllci6*ZpiLeAmF~#A&=@P->a$^694z@ft;Ql8a2)~zL=W0riVsRrp>0yzfY?^3f z*sn+ZEdlJ$7TS2SQ@G%(VNTQ72GhgC*`Z=0PXU|9j`)@e*pnyl;)bz3ne#E0L4_GfhP_`#@1rXYL~iQiBOKogjsKrC=u;BHicvB_t9iUzuY&Eo@E zuvX$=heDZ)z1@+^2g8q@t`&zbPxkuH72=vu?(}3tp+phLl+J{sn}s%?zJbk}9u5d? z;#TfglL(Ka;z@J{153v-O|UFH3kN0wn~o)sOiaY?PyVdWX9m&1Y{2{4wge<11Of<1cu`|0)o0*2w}3>Ay8L zeD(}uqA`WZz+=gH0tZVZ7~`>YGJ%4{Q&~&`8zc~P`dwy-Ez29?UhGC2eWmB3)ISfsBaE37Zb?^#hiI-F)sD=V(uKo5-q zc`o&H7!X(U#o0aBDOO(-?1tC;UzrJyf*Y_+wFj(Epzp&vaTU_M5LBGlNf84hcs;3LmthyS*{$fL0G=BO_!gpRa{_` zyi#vlXSz28ci3(nqnemvEvJ>JYvGrfu-F2WlBuAM3)dlSrZ4u?V9;tU_g&%;j-rt8 zfbvEo(Vpsu1a+gRL?xS(xd~NNK#V3ix+lm`M>P_EGSEwjzlb|IH&KeDw=@1euH{<7 zOq=A~1SirP^~50Sn7LvZXluvx1R3iVwZvuCU<5MMld6er*5&Gn`cyg1L==%V2TF&a zf+D??B0YJedYwGf0zpVC57nR7YqVx)v>w%%DL2bs8iEjz9H4VdDRxY|@0f}9&(sy2 z!#gSs+Ui6nLDbz5g4{h6?ANQxiu$o2NUngAQsS3V5}Y!UoF;Q%#R8GNN6i$OIRC87=no&*d z&l@W6SIl)jO8qX+u|76)f66K9NFKkvbvO^-4oXFN{tCH(ZY1wwfxo=CwD@RjXRbb6 zx4wOBZJu&7C@rdvP0!s`4@%P2+_YSmqoCw?Dwek21+L@6tVEabOJf>&v*FwFv!`>7_!Kh`*40Xbo^~5M{hI&Gt&3M;naB;S& zobI0WH0Q-)z$G9nIjtmBn&b3^k*xK-8t*cutRUW5zoNWoC!x*Y*cH*m^ikC@MKcBb zMWpSL>WehbFjB8y$P?;FZo+Y&fRO5Xnlq*(nAr&x9HW*7yWU91SES&e^%I*QIlPOAwF3Pq|qi2Ti|4(-y7zS?cz_JZg(+rmTD zzK7`DHD{HFNtg$j-9uXCNnYjc6Xu%}wz47W)?W6liMal+&Q-D^6;&X}G*btYsg21T zqNJgntb$wgAuAbpMy3qvr43Os(N3AV+{~cZobr9SWBc;;D@7y_5+;FFiz5;R3_+$VGQfRGJZR^r-Rnfgp!+LvSuhZ6g z=}1p3wmEl3Dw@%~?r;H9f%d56sH1*R{fW!?B(?h0>f5tDkee#d%oOV@*y2viqUv5R zn~yGk0kNfJBYx9$Jx zVbx8vdSMREPmF+|XXeV!?36#<8+1q#yCls$K=k;RkKf9w1+wgvJI%k61q7LQ{X6vf zmk0Ydga6kNK!T-i0Q}Z!sjAm$L&>wDNJka)j7+Jkl8!mjt_h_-5)qkf>z)EG&h-lx zXwYEYgGzy%Ktm@nS^G;k^2}YLQ?8#}z7k9up;njevwhlpK%~qz(Dag&@Bi-4qB~>z}I!0{y>sd@E1|N|t~k z^?<;ij~WaBiRjikC`Y=}Tv&<#+5lobcyzVao{aTE5cnk^4+xUEbkx9gwtZ$XH+OLg z+NsCfO_iHF5}VKc>4iD0c2RIH(%ysU`a>zVQXl8)4L<&HAAn&`D7`ocC4FBd1=&bI z8Yv9_+~L^##VMr~xneH%T|`$;Z>P-C*nE&IadS&6>kM39n8Qnym$!G)r|QbeaUjS| z6;OL$kGcnQ01_+58%08Uyj;DbR-sZ#xw(~Os&2wNh2j%eX~a#YpvLbfT)wBHfa1S|zHOM#IcW^m5kMJ(Nvbhw(4XH#r`E{o5AUtM>p#r=$Vu(R3Ndy$AN-TpJ_m3>B8%!m0ChN zNXgkq8+on7Y?>UH6<@i(3gie}e&^9%IHBsb3IZ2U5?&GAe!0-#)-Shzse}c|nJ7d1 z>LLxj^QJ&=EN|4B{^Zo8<1Mv%-HFKIesl5 z6+c%e)U~4i#=65t)tDjr*yC!;1$KRomAiziZ*hEUZ74? z(#qZmdyi=ULvsdoqEb3-{8I_(j5z@JfVW7Pk_1sJ(pj&hSoPD6siHU=F41g&w!ly# zI^ANB;lg!tg}`{um?Y4xBpaxVDN%8rp_`~e!(d8Oo#nJZBdGIoo>7>n0-O`Z9x!mm z0PAW{Kys{Ry?DO&T>7CI^A?Ju3Jc^sMcFhA);?alM6FoOW!W6Qdq7G#Pl0x|g4T{2 zM&~5s6SK3t2*av23O3^!QOhwh*ga}C&1%IrcrJx}MGzIOA)zoGf+VG+jiCzz&^^ayQ7FI{f@VR_zyJdwW#z6bbXIU^q#$OqFfn;&ItY;9m=A3RJ6ByR zJ3As@ZNB;fjqes}qO`Pi&>)P9KiWhIAt@Q3DJjucnNpCWs6PaMl?m5hTcOyk zk2r0$%-PJ;oJzGe1FuU=rc`^b-}v$Jx!St31-tiSjg4_664iX^l(G&)$ax?2E+R}r zutj05!P`^2`Y%gJu5qVZ1<_vXVca#Q7mM20GR^3zEw*=8_fH)7WfP_B$q|B=H7`Kr zN@oZEva}%jQt7QMFO5D7 zyE(^Nr?x&lyFL5b_>sZ9Lw(z9U&s(j9EuLs@Y}}>J5C2xmbYgOmMISXdYzoA)I3OD zzcg}eNo{mU{K_mt{|=+~jk9RC&nszH1Eb8+kD!!oqjrsEenv)HW!w<+0y-)Ra;N_X(=z-ou+~ z^!$EV6}1_8aqlkRWzgti%c`fl_qsW+JIk%uf9v%601N1aere$f^XIFVAF;VyZ}Es5 z1pzK=`N(-E(;N@CCr~cj*Ros?zh}`y^)sTZFk+&576NeE9F1&Rp4Ji*hg3QlxMSf%<^GbbX3|#53V8Sf zS!m!;r@3);CjX#s+m%dJ;r?n!eV3Ff$}Ltlv88FCD&g_>p+9cD5!k~i(a>z1I?;hh z{-I_GEZ+U6)IF7z=_3dC<$C>M0cG!yKsM??=N2H>E=X*dGalGPw##|LPiZB!IX7)N z=mrV3{TShJ$66}-RJ+e<1pUTt!3?$QMajvR@Df5~w_4VnYM{E~2g?n=eBWX_aD%P> zaO2L&J6q2qVl*$_hLiEm3TE7a4|b|+&5cms^9SW2bmc{zqerP%q`p^3Y?=LBsZ{G% zznApWy&bi*?4PH4p@QpPVBrBD2Wu3!7Sy~MyJ0t6Vg#vF3R@I=tg3Pk=eX-3F1Fm> zdQnYhVpr42N@>QgeY1|ofi-n)Jyp%e0lj9XeW&SNy8ayV!0|O$eW&V2i}ERSwMKPs z2cL}am3!n6 zcI!|Ncau-^;{iqF5LKQNK`6qVSYnb z@y6rZ5@M9?eGxzac6xATo(*VrdMZsdEP0daW{>Ys)y}I zCE~2lXi648=7*j-*x+0G;KN~B7A_37Sy54QC2`%W0ODb)s^_u%v6nww55DzM+pIL8 zsBfcSQ{~|e^0}r@_PMOzWHYgdamo9*$3lOsHFe6-US$e&hg`b%xhz^?s0Ek7^RZ>G zc`7?7ljHT<5d*Bs=f%W|*MVpKj#N)*Hf(jCIMlQ3iN4vrJKZL$vDJd;+%3#~5lhQu zE5@4A7HEbBv}!jlmOHrBEa0HOkLzxqtNZkNU$%6FJM{GQZq_`w`uXCYhw>Z7AEimZ zten`Xpp$Y~fAX;{Z67<^``r;z?q#VKOx?PTdUZor7B4W^TczsxFg9ebWZ$i{!S&(`~ zBqh{f%=Jny^ymqN+)`R!8KMZK;+YVS6vLwz?>!ke5f;0vyP-c#DKLm1+ltqJJ=!{k zt3?;aK)kKL82VHPhBYd=dNY;JjvepYU#iz?7nz}bVStq!N|*nLi4S~Pb(F@7joGWV!vG{=Q|e@mVxX z$Lz)mgEwy_p$iT6O9MB*YAdN9yAqcHCB+l;aG%T$=I^fNgfqqDHnUBSm<_!3FZy^R z)&!wMn##=Thbum8K6m7ulIEK_$KC_GSHHdL+D`0q9(M2ZS(JL_@v(>AP483ZusnKf z*&1`aR2OIE>@9Rr^zk6%w3?+DO`ZFWHp2>ph)dTs8$Le1F?(3O6RdK5FW%_Z)a575 zkdsv}Z^1yd58kcY>T#g~B3w%unR7i^{(|~C&}sFXGvNZ~#ThYES^AAXjh)K~DUBrF zds|k24{=_^PS(SXt$hjwYcoW-1B)?;}jI5vRc~` zCQoe`*9(uDPYB$6Jm1@*T(v66|1tlTVd1a&y&IB7ek zX3tuC1E3pWn?E`VBI-1)iG=bbq`^Kb{A4_u%!eFT4&pn3S

FJsUZ#sX{mw-UZFM-pT2Q7RT7xuDr(AN6e1D#`7 zh3qZ;3vPR#(JL5cuGJdYHZ@dqrcJ)rM5wEO?J_xE&`Xb>RZG|XGX_Ykb+H??M!;X3aPf!@k}Cl#0^gzQoOtJptIpAmO3`%YV9m+ zk<)BR8&;nCqO>1n=ThY6&6JSElS)kI@O>VCue4SdZPoa|>sa!-n}VM3D_eRGOAPOw zCADF^(#;C&NQFLCR+0r&X!A*#nb7K(v*ACT{dm9vr*SNu$9Ub4v9g`MyeX_%xD|pJ zN4C8Eu(~sP4PmgPm70ajGWetbRI~bcp~X!>?7{AR{ri+cYqy&=oKc_ZKQYOPRXQ;q zvO9KdM&72!r{^?;#Bn(F%qKNRI-<{=x72K3sw%DEe!C~3;)Ly{n+XSF`fV`1Dj3OC zq+4%rcTUalWq{|4(9W}~*G!Je;`H~#Z%N8X+nF5`x~5>aFs52WoLLw2Qd#&Qvxby6Xc~6-g>~|Muw9*(t|^3N=u=HcOqx9>`0Wv|ha9 ztB8Q43y1yoX%i(NRK_038CuzvnGTXxo%c&PW5M^rJtYOu?WIts<;*B)$elF_ZMpIO zazmp}qx*Xk6;9gQn{R$NEib>z^~$e^^^53gJaI+|A@!3i zYFM{Vy|y35XI@jPR{Q=HjvdE04Zvl{ud|#LekbN|PuofJ1Dp1@95>r*ges${wP>LS z@3ndvlpyRJZp_MGeSsj93zXRAK6|Zsv+)qa(HEw@JVChODlA8lRS zp?lG?k?0z6_Mx@4;WvPyUoqkdke`XSIsAeP&~Jl6#U}luKvq zYzkDcW5wP@P*tGK+4fbdq=bc$la41KY1a$!I#Bwxbpl)klt233?D)&;3I}djlr#=GE}{{(CzvjXo?hQ}A<|QP8_~(W`+1WPJQ| zO8w?`!$acFSGQKtuPK`p-?qKg6Z-yX`$WqFmYLv(wb}0dB~OhDA^#<($U&S!6_-_5 zz2(|b=@L8Uo$Q`nSgsdVW@o=xD}h3Uk@!gRo>EDF`Fc#I*hEofyER$_4+9Z7uXy96 zG;14{DE%gO7p+efS}6BHZOi=KGaZ9g%9^&Gy&uxFX^kA)xr2!b?uLA0ZcjzDoqVUe zpR?xmhm%zasmogY_aSVc+)v9LB+PrVra7$PYTy19$6wwpc{17eIMiYI*Tbuyx@uWu z#CV;}SQvniaqi`xcA4XyykxUYhU!H~Z3pt#Lp75bORa9$lmpL*DY+#XygR%=9&(_w z5bo>4GRkCYrLr0rVA%OTzrQg@t4gW_w`V5~BJWicB8~13Vz_4;x*4vkp z3$t8IM)p>fhuszyJ0z*AMQI$>yw+V}@2K@wQ_H6~s4YtMq#*>&bt%YQ2-2z7djd^1 z`p%ViRFq*E#D=~sJ>x!FIhcGt4EhK`foYZ>-`@?|zQ38>+%wcINz#-1YCLNre?7eE zg#3s)r=c`@$05a==%?9ZBU9Y6^XF`z{9;y|#yX~~Q3eG$ivogLACUP8fX? zs<-?FMnQEG_loNHjjz`{a9sadn&yTs9uzXLQ$a8+P4a~kMZq3 z$iB{hwzxNT(bUwP*xrZxBBtiu>b~|W=2Zhi)h(#QEZ6RUxx?=0_fwivXBMb9!5S5j zw>G>g3cq^tW&500k5X z#mb?~w)cdPE5|yv9P5}k=GH5?n?bU;djIK>qGKC3jvfWOm72=Dtde?+E4MLId&!az z%O2HO{@eL#?@A^gUygg3UtIUYiixE!-Tm)GNZx;8sb z?-5UbtNc^pWN5f)=w#|;=E8H$uNT(b&p*e$B*F5(@L{m)r*oO3^G@aYSzf!c&S-<_ rbE9TWotcs+2A;cpcs6(kTAK6zsll2?C>%Ve=s32SD*^APzCHd6buJbP literal 0 HcmV?d00001 diff --git a/ukui-volume-control-applet-qt/data/sounds/sonar.ogg b/ukui-volume-control-applet-qt/data/sounds/sonar.ogg new file mode 100644 index 0000000000000000000000000000000000000000..77aadec27c55e47b116c47a80ae6652bebd0afc5 GIT binary patch literal 20011 zcmbTd1yohf`Y^oV5CRg?9ZE_`cSuNwAf3{U5>f&OQ9>l7J+#st(k-2b4wWv+LpPjv z4EvcqGked|^XwT7TU%`a75G;Qz#x{nyVStUbVQ*=dE@G4Vefud zfht#g_YX{a|1_>c(YWjRpLEv~1%!M@_~i&Vk^dvThWs-S4R~MQ{*@hE(3i>~d*=1yPQGk134UZ~)7jz^>2LK2Fz?_i{FV04ZEhj#U z)h9V#@$RbYNqBO6co(_lC!X$q7xesABmjU0Kv}V(zO5@c42#&3vqZUNirA|Q=h0(+ ze7-1x_2Y!u(k1tMuA|E^8`C{p19WhnfV3jR2V$+e!Xk_zgd8kFsoi=R@>1QfALnPj z!{+U!4_4*f%#KqR-OT?MCA!7>eMAO_^ZS^xD$k^@Woa{p$y@hfk&V=U6rCb|_Qu~w|yP_KBfl7{n%KLwt04QLSyOe1U%l-dk z8-qma|96(Q>wOGJgShN@P2KaFQC^F&$BhH?FNS*okfzdF99?ew3hw+p?&4rp@Q~|^ zR~}xOrThFg2 z2Cu^7Q&_6&U;H!Pzu2O{G z&W`=~xSzFZkavLNt|;yp7TqrIAdtP!19CBk0LaCW)$8f*r6P)sIn`5!>^bpT%4|9R zNEAp^daIbH7!-enBqZ6bpDhoRivLcyeMa~Ln$iE3;Rn>u37Nn=%FC(EC!zB~NAHcZ zL6YaM+7Bi(o(t3d3)7KiWFh~XvHl}D04Ox?|H@>%#V4Mg)L?ZPtbYjnZ^?O0-1C{b z?=z!HC8OFH$Iv0a#u5K0k^FOhHEj};Q4-H_QfqBNlW_s-aUJW)H`cQ?)<(7d1~vZ@ zn194(VcPS*NzR>!JQRsqQH(|VFUiSdjan9tdZZM~Xb{WnlV}?bEBKPWS@0G6e@Twr z$Gqf^d0`(n!lGEi6Yaxch4o*Z`b)PP{-60jlB3|p2xd@nn3yJ@`#DI4v`PIhxLBu8i00pQD z*}7owHDjNuEAPnLchh5*V63sdCy$$n*i4q`eXjY~>ORG)bl(I|2*HtsWgfB2V8lU= z`=_Ve-E~?rtnK$ewTA{g2LKGEhf0h}hx}g^j~Ry^eH4EHW%Lz~-cU;KJ@Tdnl!$$3 z;c;@GHx9%>>w$s?{zzrA7}!yv!YDulqYtgpp?K`755F2Q!^ha%@P}|dwRD@0s@ghP zh5rI!EU>>|I&0x$P)!zYHdy_tc{%VeFn6oLX|{&p7by0O8ro_w8yNo(fB07i86Bn} zKAnGq1u{Ak+8!pkn+>Ytp7o_1vWXI-AXxAp5PUbq^t?i_uRYA3P+t3kgYtg^bv_jM z{?qqM?zWq?K?tYcf52E1gAfh~0F0=PCx(CBA(WrChLz$>PpWFygnwlx`WHx|GnrVB z%c-qnu-;I4-+)v{r{+tc)4xFs@a_L5XntXhnvV4shkoAa1nb_)e}M%cSPg;z07bzB zpa4<7G>AeJC@TPjF6$?PXzQuqP$N={vNV9%d}LG_7l-p_8Km37M);q<(6NJon7gxl z05&!F&uJuHpE~o738WPPXvb>~6|nh{94Jb0EBc8W;a^!nvrzaL91;Fkz{X$bB<9$s zvwZw&2P-Tr9O3_`8e}JM;Jc=Ug$-OF{Xo_N>rBXC>ppiaw;D=u#5IW3v~^6TJ?|Wc z|B*nwOf3xRJo2Y36gs3YzhRNlLjTQBP@XWJuH@&~GHguz%1^PF;<07y3$o*t6ice7 zc-aa-g~gQfJ<)I=GkeO=@ymO#C;@RR-umrsBb1 zu(~hPOa7i%<{n!P0U-c9Sp>Z#a~TR&ek&#*1{*YX-{L`&rIaHR#Kua*6!3%pGVLp;h=o*`cJ1Jm*D0JP7hA7q}~f zpk=()S-fFH#T09f2QTPtl?;h&Sb=_*Ar2sI_X+^S%3pfEkNaBD29gUE@Byv8jPjjV zM!=9mZaK&k8l!dRq`mma(@kxO2fjM!vtcrT18k%Q6WonA{PbR$dldMt??*&>lHCbp zHc~AIMeb#}f8tqB1)UPqI|iqc7i1yFdVDuW0#Id;cO<)i62VA&kIk?_?|~=txZuS- z5zH)i0%fHFZ#+>p2GD*z?gBxqtoV3CcCHXDW!9YR39ZjO??J-`&h{fu?)w-m<$`M6 zPdr)gUx1Z07M~))CLr&SSUPbqCERfl_^ys@)ufiiAQp^O3UbIDIl9SL{2VyD^)10U zWf(cIzLjXD&J$uj@QDz>%o@uUP}gaoI$S1iPuzS%Zdjl5Au%;>tB%R&fYWK*?cDO zE_fqenKkRKT~7R6Wy0SZTFO`;4C3sr3cUEI{9DDA13n0>{98q+eCMHSDgPb$-|dvK z@2c2xKzf352?ZWK=Im7GD-}moAm&w-{t!}(255oYfA>CMGl5Uf|32a)^*`hO?Rr<- zy~#fV{io{xABfU6M}`NLB>Ern1uh?+gn%S-8y3j{WeDW2cttjlztol4B<|>u_CDVC zFQM4jPRM0h89?N0SA?jG-plzu;fT-hKHkuw;Ea|xpEV~|3n5XhspY`dJ@2Q&R5fPk z*t{{X@|dmrr!PXJHdafOlN2x~TmqnV<{ex2SmZ5(KopZTadqxb>P5#`srzSy>&P18sqvD_@p>}?cR8;L4%J>9;$55*m4PFy5qA! z&S&!&GaQzveW8p4S{ZtvP5S*H8Y;S`IjDy42ne$Q=nquco>vbDVpMurpRiIB4J+m0 z0@4Hz`Q#p2@F=S0V|@I$37EeQVxR+f`31+gxH1O-GLP5OK?Lsz-qVv}YD%Nxsn;!q z3yCjbu>2uT5CzwIV7do*gQiyy8fIs+E-Wf8DJ>)SOi@`?T~q4?Xd}Qx07wErED8NX z*cXu~ylDIwg3k|P3FC<3i9s($8eGiWwUGu;QU6)C-odD-|14eG9^TyqfV-vZ-CY$M zNfhFbzDR#$Ix-Jgifly=AbXJ`$l0bhvt;GlZx-WI#x9AzBVKsyiOeIfF)=!zO_(fB$>8(E1W9g2%edQ%|VfmVH<7x>(?ht~U6_ z)8WAMjfjCn^(D(8i!b8V?BG<$b8&V%uzUA-qR;dq&jPXJ{)+SP#c88o<5tN(gItcz&}UUU(D zKW)#2Lk&^))bH>;M2cV|5)uRE#L1JL3bz!eaFnmWmtJw|tMqz<6=LZkQWUYcai3jru$h6`?7 zJVG0a*<_eN#f%&Ez>+?_tr2|*XZe^RyCp+e0zPj{Z*MPfTj05qQAL4$*ifR2SdF9F zUaxJ4f4W(FLu`reE-nxbG`}$7T}?SovI=Ss6=xKM${C>4Asb~h?DId*v*r&O#W{{TDz4Kc87{z6PdIR|-q$mHF6BfpgW-&tUyzCiI zV)MkP373q@=#{O`VTS=?!NvhM(;;MNc;Nw1AZs$1VnHhkh&Ga=dZNAPaB1bnOZh6` z?4c;PFrZ0 zf{QVcc5@C1Op<^KxS!M6z~kC!VQHbw8^`MzP@6@M#2fwjR^ui&!bS_n%ouGTv#>Lk z45RTo$H*A*ntVwVgtN~KYK0(k1E5U$12~zeEj}lE3qJ9qVV=Lr3SYeWcJ0ZR7Zdgx zNB#0GCSY#0@2Oyi1-0PY4^q}OB`qs-fvBR zz?E6u5&DL!lU(VJJOK2qN7>B_G1Zott#3a?j(#!=Yx?zRyF6;DyMe96 zef`?3cgO8z_3?MuYar%rv9sQ5AhUb2Z{_Go8zHnw-%wNW(WCW2d90ZgW2CXGf8;x+ z!7`U8KNywpw5H)Uju$F}@ssA1EG>Nk4uD$Z%ra4UZhuh=e!P!CME1SVt0Ib$sSbs} zxzz)5;rTA#$M@jL*OqA~P_7SkW)VxB;naQwB4mFS=hhm3%c?x{Yu!E&f7x&JU|q~T>kBlPfF=f=(*$WGQphpH>NXR1l16&HylhhUU9 z$NYT%-Xr(SP$@oK_xKrXeN@GKbbiQrpQ+{VOfW7hF6w=D`Vlc3Ea64?p$JATRJ%?o40U97SL5TO}a2N*kKP&DpDAz(mt z1rirc^#<7bZR*uS@z=Tl$p`aHG(HHX2exu8)4oHq?Yn;RkMo5-``JP13|{;CX2ZZGV^|sbRaA>Sg7OxBOyO6SCE$ASlh3B2}dZ3z-GYT7G&>WShBd zI8_eMuVj4fnm5fG+6PM;kT<`jpyap`eQ*T*BqJD0K`TD&-O?}JZu04h<#sa&*K<>v8W)plZ?c^c3&m&Y9TfKwew+DC z=u3)7ii$BQuU_dzDN_<7k=?_Kkp~r!^R~X;xQw{ZD4k6Bs-4#l%~8cZWAer=N>tQ8 zlX0_i^Ol8Ig!I9wDY|QH}*l z=K1(KuZjoK^F%IXF2XOUvYAZ83H|3soHZddqTE z8{I4gZ)n*&Pc0IPn6JWPG5dl>IE;*m?kYk>%#U_jzPeyYEVVY6VtSM~{m6FF_(%~t ze=+Yjytfn9QItCsy{D1bbS5TRhWPlwlq#7ItKBca&tyTqL}fn7n2eIPUbi$2aUo;< zYSH6<2J<_~*LHaAK5#4%h^9bQA6<;kDVAv15WqvHo(kdr3GIFsRIB2~iFFHOs!5(q zG#F4Csmo)0uNdVi?6U^p1u#uFQ!l4e6D~2>taOyKCX=OVw@H*qoby`yy+DoT%GOq; zu-$wkbh05u>xyD(tume!jsX@15lir*K0j?(RrJ6Wr>$s5MpWLjE?JL_TLd zgPe0g@dNbL_O5IKRI^~ZItcpeKV>Pm_joD2TXBKR(eeO)HAJU}b9d0MKP$o3e`av- z-605}5di16&Rd85!%8tAxyk3NZ!^jcpe?HO*I9pcU4u+l++IN+xfMfi{^@$}<2g;m zpBF9Z^#!{#@%WD;zNLKI^RKK)Vpl8;)DrpB)0nr-Qx2(15}(uU8+EX%S&Ungm~;!_TM)==G~1 z$0L}AtFjO<@|VTK%0gqa^(@xTUQKfSxln73Scv=l>YQgAd)G zoD=OVV_jy`=wb_lM1?7`#I1%`^eR$0ToIjw^%o0VF{2uYZEEkFvDlkLldGX00uSR> z330Ao#hyX@=meXf?BzD5?vducRT_h?m=KDT?9i;0j10Wt`^|hJwmxeO{3@jrTHI6p zBo+n_6UoZG);Im3B3ERQOyd(HVPnF6ZzAx`k-og}Q9n!?k-=HuX5J5hI~Eb?bPMSW zrN*S9+fr%SKUX5z9*-Tvf}B9GRVVp$iUl^H--F_9TM31qSi0(9w4vTAL>_KWMeD~f z8O=@$?H>A!M+b3a`nG}rBz}0;r=Ih%`YS_7NMDUC-4$WV&2@Om8QSlZTu3oe;`Jh= zt>u+H0LHgQTp;m%m@b$=+iHD<@kcH&*aTY6)P+jJ9Oo}}H?C#TD~QrGk>evb5v$6Q z#Er0TmS=A&CZ83abRpfTVnQfQA>?g`Zei|;C}HG!LJ=>diNY$WA_t|Pw7BXVrJw-W zgi11=jF|>rr|3`{mq?}!1)(E36UZmg7LmcJp(c^^Kn+bJqLi1vVqhz>Tj-Sf!TGJf zR+t^$u6w3M=C+dx=66>rdJ+~Fnr~txD9oNEm?FAdb$SWqj@!}}#11Wy>@+A!`)h8| z+bC@|eY7Hip|9mXNp42H%|8XJ4M`U=aGk74E0pS3mkmj%XQp z{a%hsqJ;d=gP?=kW^sil%FmqsB`mjU!7|`X=5&vq1*;d3Ojh0XS>!T#M64bd+46_c zrPiM!AG`9*2mmw>SCST@Q>pj>8*kJzC3j5kW|Z0w7~V_hfVWs1#uGJ(dK&Y>&YXvL zj!R6ExUug1dx6!c=q9TY+A;;_w+bIf8dL2qf+23qm{a3<-`z;10P5FBxZv+6 zyFGC3L%=Sy>DSv(X0-j`&Upx=1#8u2}*zh3M7(| z*gUukLLg_5yU0W2I{0^hobPd37ex34(=#w33{G})Pt9Wz7V|ty7cc-Q^WoC@#r*zK z+#ElZol_jL;>0F0lEz##S_-Sp24$c0cR7mp3dZ8l1W&24{@rrCZMXR}&GzRly!0S2 z_m_>hxvA(?fq^)>q?FBJP&L~+evMg{&*sNc5!4@*;~T;bXQ^%PRw_c67SG`e_cHB| z`N`f;`&?5A#A1orx^suTIam4i6=L2Dg2a z2X2A*vt#pg|85*z`qO}bJ(!%#X_+^L6M0K(ZG_5 z;sG7VY08z#qtLV`&3$HGJ680!adEA}JA;??fK^N}$%BLb1hj_^_K6t0ZW_(8s3r3L z@);x*{3fA0*$#a|2*YnFVfqlDGqz%p;`eN0W;DP=+qy;AWb(tt(Olc`pOp!OgF$0Zi~?fQ z+nYU|SAncAfccH$Tags6KSl}YJ?xG10@}WVzi7G8c>YjmO(Q@Gtsh{xuH00NqR@PR zQCXmR3+;0rouaHmfHutJf+KMs14!NXi10fbo7w7zC5fk1pXoVkj@tpV}2l2g44m}?+csj>oNv5Bl;-~Eh zo=xYn;?SElNLmGaFcvmWwB?Oc)vHaPa}QgE*Wa2~A_kO4GR}Id5#`S|mgXwBQUs{Z zuOEiqAi||smSPT-`VEubLy{Co%g1gE**W*nO;=?7&l;zpXNz{tcZrGd#AiP!TW|rO_(G}8s8qYr2Y}k` z*KGpJ>A<+%Zk&yzSs*7+j^YG}wXI{2LUGM;7f)8T5<2h53q1_)ycgvgjHeKy))J6D z_=cL&B+5oKHmc}X`ZibVbduwb0Vm?2(goWo)ELf@U^v>MttK%UCH`~}%YEqN&nNtb zR4q#1nHBO=;x0Z<_8L=jKM8<^u&(F9>w{cE)%+{@Zk?`cYPhH(zkP#K-vcU2ocYQe z+sb#HUc#yPvB&d1H543ui*zCS)BQO)hxlC#*;8%FVb@^fbvoYkY=Op8)QU!XUDF`p ziNpS{;)0@LQeRl`+P}bwe3FI6Z>}5Q;SiYQwQ$DVTi!rhwZimb&ptyk)3G5jZ}8Sc*~Hy75R<^j4SI%rm&%P##aq1LxF^E zPJ=|A&Rdq~VW5={TjK3UWNj$KVyF85(A^rOh{N)e1T+^zd!qNfe`8v~B%ZBIi={*j z@jv-$p@Ms*4xn8#V64WHIjOu2O2WM=#)w8Y+IgJS*3(;cVJYntB!B%HQ;<=U@{7Rf zeQvz4b8{Nt7lnv5Fkf4I>7$vd3*dQnXbt;F$!`*iV}YvIJI&Y2XuJ9AsP{3q(Ai|f z1|@{ZFYv==Log&6tvv`+vrQL}#C8Jsp?eoVCI*hQm&POw-=jNYT!AoJ3^kh%WqB0H zZ`FyAH8u*j-Ec-a#4C)`Mh1y&L{w<*CKJgby##AM-D?XOy0YJJ&frAV{AC|Bcaes> za>0JHW_qUC!N}AY550qJ>{=s49=>o7ZYX`kV{9$|vZzp}nm6@yW&1dZCotNbqfdn~ z^{QD)ItC%}REXT4Da@T=Gb8?>dSCmg;KIA8(?F`rS4ci)Uh)g zF;90G&RB%Y4Sc2#O&tuTa>!yoS~C^s#R?$TK6{C}TjOrs+QRb^a9amP{4&x)#XW9? zPp)-tl5M;hSPmj6;<+bf7XnJ`JrvS{OT zvvfycvMU5Q4ysIutgu^4`?_~J2#D9R8%OoOL|J&9uK0+sAxt5}m6&Bxo%zmOC8seN6e%s%!bK`8D zZ4UfdUa=Mih+ALpUW~N4&1Xn+i4I@b?Bd(mV0dvm+PV~@d}k;(OH{Xu(5}>y$wev+yjfy`ZKzAzD9T7OK(jbx1t9PU)$pm=Ls=4j{aT#-H+x>Vv<~OIe^gYu+Yq z)cL(Q76Z{}%<@uw>y*#DPAIbQJ}^-$6h9U-(uekudsMG9YujJLRP`8n&1J#G0$bd_ zg4-YXUiIEg$8A>}Kf)t!cZ_5*f3ug0e8;UcrKS!Gar5L$Lq`5k4q}$ zzGvQ(o2NH9VBbdYi#^w9&;NMhl?zlpG;%*Y08Y1ZqV^ zQy2mJlOM1F+CRt3mb6|x56Z_v_}AQsHH?^0Fstuk7j27&(38)l#nY(f3mFzQlDNgF zIM6f0I6j{$#N82mvxG%>Wb)R|&%67+B$@D5 z?XNl62Sx(BJJ@?rlcD1M%P$a5_G8P02~;Y%?=)X4YNO+{xR;vB7!yz91YR%PUz^-L zRt6HQ=OSlWQNNrgG<_=64Dm>nZ2R#&ByvtgWpDyDSLnHG4MwH+7{<_75g50DWKNdu zjbOtZT7~nsBek?}4Cw4Kk!Nu4H>Lz1Yc=_PS>~3viSU8sj)U3gh^4;Y2oAVFm$mJ! zx1)mbEmgX{)+fcYYJ%*+g$=>&pF3nC#VT(}N3WueGA32H`V2cemz;#J0|q5M%Y;Uw z1ImlrgKuI78j80Kqt|Zgy4^N2vtIUjOVlCdWVuvU8@e-;ZdKPeMg}(_60H(qXACK~ zvR+RL>|?LnFKE_f1usJAB|R8zRwHXk_p^8?v)v3kvRUgfA-kLy?I=;@?%L9=xnvw zxtzk59<8h>%;SvM-_BH0kcn?gZ~{Zv&^6yW4sH}zsLGKcV4el-69b?>QGh3|fJEdR z1<@U;fjawuhQ+0~*XKy_i<5;6LQQQy9lBNWfs~5u%L%tr=i9`O%VgDwaYvHANd_oW z7e>LBBzOeN*jVUL=9{9iVCgIpo6C1(BU*glr(A~&j0hZKv+c$0f!8lwovX(6sd+3+ zU8$Ow2Q|6BPIcyn1n@bSKlp`S+?RW6SAu59;$aksYp-ZkFd+ zwfQi`y)unB`P#!(Pf04>*t(YZWXLKLoTT+>$tzp8lITzl*O}>)@a1FVv806DU?`D? zhn$AfxortWbhVEJ>t6BXS=b-ng(CgM2CcG_7RKTi2N6}9H=D>=u`hG`QW6<9@SwO? z!iblW8>xm#hL62XiuAc}vcj+1J5y&2Mw{w9N-CN{acoPN*>A}enJZsz4AL#bcQS>Z zzFCbP&x2U-!u?u>7z83ddX)8l*D+OFoW&k`P zfH+-9!1E_cR|GpB-(A2X`2cayKZjk^)vA13``bC_%^r20<9Xkqu*CfaPyd~Ielm-b zO>5iMuH8=dnqhp!rYj2CcBo|3_#d4-#XntCbL7OH!RY*XD1568Eeqo((Vi&f%rz&w zRZfCt6NW6|rz$-dxW|mLDeF5pVtDjY*Pnz7qqootvRH6`elz@5bBWhu4@Tc=cB@== zf8{=A)G-Pc&c~W{uQkQzYOMLpH4ir81 zdPMWZvB}bascOONmJD{b>W9~KR4x+Je1sK*cZUTKU9}>c;py-oe^fEWA(cwAGO72b^&Q)z1C+&H zQ-+DmMVnqviOMhFsZnX6nfJU0f|>MA^RV!)vpNEFh+U_8h0s6ylOvs$M8Xdvf+J9K z%%W|B9Xmf0$)XPCF$jLi7zPc$Ty_d`sNS=|{Wq*;iwTNR0!fm;$MY+Pzv+@CK;B8I z;z-oEs3|fmwxM(2;N9jDANx?bLSrjv`#;4x<5!d2OYVA$1CU}Plj`2pj>7-&wKZb& zP}xE0_C7q0AFzeAMa@sPHGwu-;0icejnt0qy$d)?BTMsqCG!R%7$jM$qMHNKJ2+&I z8J4U|tfXECOspR#x_sO?df{VRW(t1U9^fx5$-?1Zxt^5tEWz%qJMgwzycFU+hUZ`f zzZu#UwWva^6t5^&ne(~mwfx1oUcP;r?Xq4srN)N@09aOmcC@A|?#Z&dm6{-Sw!j6$ z!E^a%Uoi8Cc|YerX5ch6@%x#up?#E*JM+|PGSY0D0GAbuz(8ZZ8I=an@qTSH`QlhI zqc=xH>>cuN`~aoR=1vX$6F<0HF>H;xKYf5eo*~bXr^s#OF&IMFLarMiR9YewrYr*t z+)SqZntj6uDvv8UQUn&ZQxyVU^>REsL!L!lG@lKhm4n*Cc;QT6x8aKRCyyUeY&gXW zE_p;wd1APTYo(X8vvyE=7J!@RbUFNE{*`*UAKuYsP9vh}53^ok@iVdMua~#_8{DF_ zLk%NMu}qB{ohf@FYEHcilI<^tB{wwx+$89<`S(?SovthQAXRC}I`oXFt?v3Equk_X z5R@xMu2mkYp$Rxk&?azGT<`2~?A4==>>1mh%|xHHr`iKDtN zA%tFxMofIQ&$ZN6(c%x5Nq)VG;WN!EzI4lP{$e#qX(|6GO15MQpErHtTo62tPeo1uO``&INMxP2e%@wpXCsr@QG@i981fNOYP@U=L{zI-_0AXaxa#n$#% z1H0=xuCy9VDyaHNe%5*dxL+={ZtXh1G{fLI9gVv^babEH$Ev9 zzGUN_IH8iL-ICzRrbOAjAPH(AL;8SCA`+))V+eT%1iD6Z`sE z^43u2pMAO%zf`9Dyu@PtGfJYAv$;47E%U$`fHprFo;s^18d5mgZNvrQq((dYN6&tY zlTku9TtqWl6T@)>g#*iQfg!wd2)HNq2;<2xRom~0($4xj{Q#|-u9qe>m??rYT3)p` z9xT z`Z7zko;K-OdtTC$6|y;66VTrv`^}!xeNouLlukh{eI1ZgIHfkEd*s~sMb^^Q`DQK$gR2WuVq?L%uLss!#7&a$3uxWRNv~w7cA@|Nfd-#w$iEMZ7B5Jlt z>Zm^5Q(a)7Qn!t1;YAV}x4sPC9KyRK2~yGB-%y;iYS?7z!Nu*1n>?T5&UG-~hB^^} zy+wEvRfVrI9l9CjSKhheZ+2)ppln-8lC+@DtE<1cS)1lRoEIDwc;aVLdM3Z%&lIf3 zg?X&(C8eK?=OC=x%~z`o zev+Rz$ov4ok(mDNsd!Uyn&qMKMW=GQ4V%Q9oaxXnsY@lOr=%k8x{5ChvS!;h7xUhS zbf%ZNzvV=^m%HG1*miZnSAxp}tw2jn(@xL|=)0l?3b`Rby5R9%oi%q1&p%2~s*-Tk##7#{rv53+u&CjYeupe1Qhb^eaS*E~0K-p}7D695` zr&%q{inLbYTU~2Z%5iRwA(%EXaenyr*(C-PJ07PH4Q|fGWpun8vRm#loTx0Ve+CSc z9sbEqM4qgM&Zi`Y;F4NEor0_XDff(7N9WBei4KBD?BD0q}G^Z#_(^bW7x^<|lsWDyLl}&>q~s#_`7a# z;|E)mHa|{aJ7Q)Xy)6&wbBH2dDD=F!pg)1{?|!J8ao4nb3;xZ4lT&cbwb7)bmh>i7 zRP~x#B>A|>(Cy-^Tm{4OE8y+y&gaFqinH=1lb3O++1}k&8)9hb$S8``b_JR*EauL@4I zDPSplyJCzB;4}<+xdvDTtnb{?B=sl5nN0ei-KwiS$vw9cGryn{7QxA>wzRaTioEGgz!V{&``#y+q^vEIy#C@>tB=V5+Y4Vmrlin7F}1;U$I;OQNqgF8}A!e_~;j0>Sm?pdqe$VYF+kCtNE zvkuwQYiC`h_Oa0~fIpceBY9o{e|lFt-*Tn8>>3!UOeEX9pNU3`Uq2S%RqwGOQc}LJ z9z2|u$e%FVx1GW*(%M(yV~P7wK7Uo8f5G&@8{u!cQI} zwHhd*_k+yt*yK70BgE-GU7O%XW}#lejO|{^URVAaVaae`cdOBf@RF?dw^vvpo4L2B zo~Y7>ZP4V89EqOJBo$$8uWInmh8#|A-sgX)M7C|Hizsg7zdFAU?MFb0E-pLD6;44?*V_7G-l8PIz2p>A0 z?>I&hHFJG&E!7do%W7*3I&!jXEw^Q<;LF{lQ(|IoDq>||_cD7|r8Brec8zc4O2541 zZ<&)YpD-3&^!w)3*P|wshQ4$gb*FhB%2KDMG2tcQr@Rns6g3?2fH!nDZzG;1nur#` zykG9uLXvUvJ){U*u+yI%9|#xg=uWmhe*eJVaQ$Zl0kO;(TFBj}5q!s>=y`E|i6DyH zMyI_z@cc_1^cM_@Zf*#W0(9nw>!&u;!zvbcM`&Kn$rcw1PZXYz(>=M?_s;J>6J`@| zy-_iVoGaP7OuLwm*u`R;8n*q$R`oKg;im4sz&ftk%BlrpF4hNnvR$AT*W>`~l690{V=A+t_Br?Wc8jWWG`1~$`RZ;~(n#O1 zjL)?FyG3T4k3WxH&lKHmvZ#bDw5-O-0%i`2X-eZqA~EG0h!4Nf7!fU|g#n2;)AJlR zEdvbbwACL3?SNp2qt-ME;vQEjeM8J)0az`J=R`oN+Y^cqRs%W9XCKE5` z%+7egF{KzgeN1x|ne_Jjj2%;$=$>b!I5!!`*~PaXkGJ1pa|7fgcz`MCv3*)ZqVDgu zKM~1e!mgvb5kZ_y7zAE(H{Su=iY*O&SN|OxLg0xi#BP3M90mQiIpmMe7Osox@W9M) zWH@+wZDz=n94fWAT?LsmDW-+P?p6wsjDIpbjk-Bi+BR#6^B6Ka` zS0^D8Bfk$GMyS4`DO#_47Fpt7?Xqr1nqm_$@s_YU3r}a_qJ%`jGdN#1daEJ4!R6j@ zoLVH}q2ykK3oX{frQN%sri}zwG}n|=$3nwxT3bm!k?C1|Ka=IpWjoVLX9d>`$!||L zV%ixIvsh`LA3=xskpV`wEViz<8*b|zF|7kRLL?`3rrw_Nuk;r_pIMgxr23XixZr8D zVig2L?BW<%bwr(fbPH!#-$@;0gxeh1i(=ssX&^3k-2)IezWa&*%(IoiDTFa){<;ck zr*rV>S?9d$Z7woYVj95$rwdj%ij1;ZyBeak zY`ewm$0&yk&Wm$HdHqZ^){N_4B>z1mpwib_T`MdW^*p4i?rRI9_;072^V{&_T#^*EaPkveFHB;=^&fXZY4f8lK^*b_u*#UE$7c!{kXsT?O zcAvh~r=6qV5HO?NCS>nq-*jwBBtzM5Dl#Zdke&sUc+F8sX8n;ta?4U9cV zl4?BLSPgQ|2r_HMq|da}EVK71sZeW)Dw#ETt1RZ1v5-Da0U(VJV{j8H8Uj(GcQ-qA-Pk&Mr&1V%@KsEUWKJ&N8=UFj^RI6dt~aH|vt{2R zhOe7P*R1Vb(n=aSIx(liZUBKj3)I5pa-4SB^V?MCn+Nnq2UKr9HAKOzr{Z7ee0bdD zc12BB*tf$+eceza;kSOgHZ*^=f14*sWE*oB(AyGx*amzfy7iW&``dD8ibvp)6rywyR!h)mt*niTt(-**3g)}je2Nr1i@7ls>KB=E zgsMHaYEC@QA-yN+Xg{**W7{pK%DnOZw6;DpZ>o`QOw;w7nI-2>#j21WPM1d=>sOYv zoQAHnEY?orrq-x+_I}zk;+Z}fe$udA_x9!(A7d7Oc>ZbP<-+t;kdEZ7!24sT6E19^ zC4^(QL^wy`;Y3Ni9?JeEi`3gI-Vp(D@s+8|lHRkuC+1RyYN9`YSc?nX-lASB;5?y7Tl7XGnx*+y5B@cUP(|ck zi^Z;o-Uy9c;SzUCS#U*)+V}EzlRilMuQemSqhi~?Lf3v%cI_pudU{P?HJK?cjupy@qan1*^xoroP%9^5{>r2|oeDPbK_ctR3Pski!gHfJatjr~`h1NoSN=D?s{B7- zgO(Elu=O~qNi|Xdffk7_zUGTBRe8Q^Up@BDGyEkxk}QU=C!zgphN&_>3o!)4D(1?hapZ5!-NwBe#LQUsBJ)}R4V#Dnm*GNl3Mg#SXgtH z$ahAE3*wA9VZBApC*3L3UyWAs1)7Hvx}=0w??2_GuiW_^H_H1hN~r0RnS#s1ML45G zfl_3D6-;25Y<8B7#qnADBj8p*?$(XU%*Yzz_=WwU#fH-y?xKD0-A4TT+l_ehpB9#I zr6(i(n#+Mmti`rg6v7=>DERqJ6(@60LS3Mtz<4?AZeO>wczxN5IPYaLU!Mls*)Eeo z_ki{i(pSE)#$>+Nqhf{~uNmn(jeMZNH%`)|>e~)=vSk6!qnifgnv6YPH+=A*XoK`g zFq`JJQy8jZWO%@Er;ZUS;J~5Y5Z7=hj?I5rQ1-~>-7nEC%HM72)h-Wpw&l5&nI|*@ zx5eT81n;mPKjnNJadc*)3VQD@)3;=MCI4yb6%G%wRv*TW_AeHsCcKU=9ml z+Mj9lwqhAd`S_({qlbBMq5OJ1cB1D;M2~0dyd~RIf|a#@lMiOvc0~0tOyLRvizR_I|#)0=JdPc)fD$AU6<^& z!-)Ch;nUN-+3*Vp20D0_xA>=e2D2mG;=bR$P8Zlin^cmF3*J>^={$(N zJx~aIfiEH}M_K!#Dnxv`!gl}wz}y($z&)D!i23$`ArvI18)#qxk)MXirvVm#`M?b* zumDUxz&uU!JeG5vBoqSx004_;yn3oMVTj*4{kK>mi40QJ=d3oI%cryV0@+)-#HKCF zKd*ySyKB>jp+;@IyS7JZ8wPm4TO;3SqJDQ!XQVOIG#glrE$U{}!1H(=q{+>vZo)D* zn`dmBP5s?8wm2Tg#_IZMY?8CtXw0ALMxzFvzKtd@>Nd+fmexEI31SN=-HY`?x7q0T zy`1s_0P^~qM4HP&^l<+83szhSKx>xH%M(FCt1*QKvK)?|%2 zbDGWYhk=#rekoQOV0m}MG@Cgc^gCXCQPx^m^XIbOm-~f@(^m>}p8vwW(IyaW0%7TFjz6}7t z9?}qJHjQ!jt9<5&plR4Vi~q;$UA#XN8V%?>zz#5b8^AbCogJW4E-9uM00026@nrX8 zxqkFo?{dEOW{Y*Frf>uQ@w%6nyZr~8IL|NLD+55_{V}_JU z(2@Ms?Bia`qU0Kz`*~{dpV$Xc&!y@|DQU3tT@P@AJ^;J_w71yL-IWqq>%|4-)LbRJI3 z;R?ldPcN?rEO~s(U$V63>4cRv`u$4Qb%7yaI)BZaJO%4zi3cyDSrT?8r;%ZS z%>rCjwj3CDv7dRqA)Z6*4=3n&JgRK-s!Mo!h;>V)4tm&gcxMMdEj0Hz`_&rY03K`7 zLo~_?X#sZGHV6_)O0+=G(7;r)-a~t zXe&zzCgEpA@G1b}`wy&uf8sWN@#VE*0b@HU!2tl^`2f8JSU_QFZ<^cH6tl1yNdf@S zb(R2!D0T(AO7ea?FWPpt`)NOH;{8ozs>d}|s_J&iP=g&J(m5YFJAWr$VDe6Wza@m~ z|J+(v7d+<3j@dQZCqfORf$F5=RLyN$1I=*^!$6+9({_$U+xqQi2syB*lbeAweh{)~ z{+s%Hv$e4?E3H4S`7R1KqfAMStS(ew~iTCJ3FVLQzU!dN55t-N8{PRDhjpaVk@w;E5<22j$|FQpd zl5@IS=cfqX|Fr*g+sx;Jy6;u>ai#m9JRS-$|A>nBexB>4H@W9;NuKVAdo;yLuaDNH zm&c{wQB@*DWnW*L?%4yJ%TK{i$$3AFF|#+_-8S>w+g3}7o%GS+^!arJnZy2P5YX!G z8+baXPzh=-^N4&$bS@A5m-D~oe7cWXm&5DV)k)pQ8?q#a)BTZZ<>p$Xtlr=M@wn%= zeGsS9>Fen}_P95_oJtl-WIpPXXr&PQ0%F=@r(1G;R~shxCf5XlyFZvu^F3w$;r#b= zmW?IR?~#V*F}sg0?`l;6PiJRS00bL>00000004dl6ha07008m$?L-3q>z)?$c)nR( z7y#C+;q0cYC<_L_OCT~vpS~|)0qAtvB}tM*CP@+r0DuduTw~Ed|7L%2vC`>4th%Ri zY4-T$=l6Ec>#AIu?>_x>)7#lPwGOR@t)0Ue&iZ`MdFoJ+&c1x_GV?Ao?>tZKR#(o_ zQ5J6X)#}P|1#+F`{@kZ0+u}qe($rqPgh2Ds=sQ4>>wJDN+b;wmOlZa0LlXUnNec6f((c-$fo zC0Dz;9QyF=&<_8~=llU5GH@}Bxhw9b7 z^%kAQH;YSb^{XAY#b8G)F1d-E{g@pyck?UMTb52ee_x3@Q)yWQ@Lp8bA*>n;|Hcgt>0Xa8+=?soT9Z&Up@>*?v~ z$>{gr=I6TIZZ~^-dwZMfy!Yv;o_@dIFP@&Bp6K_V6}{c=-fF7ff9CdfyVdCT`@z%G S(-UuRZ^eCjdg8ym72FD?EI=Os literal 0 HcmV?d00001 diff --git a/ukui-volume-control-applet-qt/data/sounds/splash.ogg b/ukui-volume-control-applet-qt/data/sounds/splash.ogg new file mode 100644 index 0000000000000000000000000000000000000000..649beaa4e602956b45b2c2916cd13ab8a2a545a9 GIT binary patch literal 15035 zcmeHt3p|wD-v1i6kVL7CR6`V+VeV!o3Q;Jjafzau%YzXHgHURARKhL^l_ZtBR8$I) z-9<`Cgk8EQm6A(4NjuTIo*7hox8HNld(Qd)-}C?P^?5wjv)20EzU#Ms>$jeH9K5_7 zffN`iMJ?(p(5mX07=6qPOsF7;!xy3rQdY;&e*lQiV#NQ?V;oS*v4T>fJrk_Yde8m* zr$zX?o^jF=851DsQg)~(m2O007!e5sY1l9m{vrNc0S^f>gPmO1Nu{8jSYJLzLN^5t z;jx1eGZKMBz!Qmh5)DhFGReeG8UXNlLdTjw z`)Fhn8Wo2n5r_<90@0X6!4v6BB9Tdr8cnX6|#Iq?34xUT*q_a&Bwh4*H{fZmY9xfKRZrN7o+SU28c%9J2 zOJWiUa|v`Nf$$B9fXDX?{|5*b1|g99cL|70GUE>ttn8WW5FTIP$o32HMOb3Z@WiiF z_;vv5&t^JAnyr8Ecg8IAX8ZdizLG(X!AKAy_;wVW&!Au@z8~VqW&5HSQ2(r7td1i; z0+lv8hR0=k3WEID(39+!lSf-o=V1yY(-bTS8jV5AgAhMH)Bw9YNFa_mMntT>J)6t- z|1Ken55EWP&&HwpL#?PxB7;dDn=P>#!LSRiPbe0;t(gv;PNNXN9TAEI385_1DoL=z zVofF9Zo?Ns^}|P7CE?2v2^?#XwD|Hz7b6xcjzCN{7maRaIzo0R!W&f@hBiqr|Eonr z=W0-eYp{c$b*5r~l>@E;6> z2^Zn<=sXiVnMi<}7#r?}92!EybGUF(5XclFjY|K+^8CLH1e$g7;70l{jSZuoLFKWj zo&*HJv!R3FDV_`(oXzBoc!{;~*3^i7}Sm{5P>eoZI}L0%FuNjNxor*&90r!LyI>-{K}@4grEdpyNp< zJeY`*>0CSmVQ}#Xokt-u$P^O}^7lm2?`D2uX#Q{BN=DbqKa!D;8TP#Z@|_fTZ2Z3% zh*3BB$}>!j(c|G)`Iaf_L+}*xyS!{9TeCvo2^--p3KIB@=3~NOnEEll&bLM(;{78l zNy3Kr)v1L|qLR5h8Xa$faA+`f;SlgNt|tkPdY~k0F&WE-Vb+IgF_I5||JXtz&?!VZ z8_%PWd3XwsOu*AgTq+*nF$nMgMW%4+lrO-b_QEp&FC>VKrkSJ0N?JqNz9HgVcx;D| zv?^qqh7zWuUzO zlJh@9_%Gc4!tJm1^FQ-}zi|5tw^0QCKZ~QNxnF+OLHyxMvJH}-Y6uuv$qz(&mJ3}l zz#ITwp}OIsEaB8>6-~?K8tqz^b?dt{ESIWo)gmojU8^Td(9X=Tj9IP!V|{`%KnZqO zgsDZxTF7fh>zTPGM$IvUwHO9$kpxXA*50rGI1O>Cyku4guhx^9Vj;_JoEd|Yj@_#%nP zZ2(xlLdiN%ZJd~n2Y`GAJvPfVHp@Gpc6hm3)Xu3Gb>b8?}ONn3W zSJ&zkL_bd*;c-5TrHa#Pa~v5UIuzu82lK7OC4QA5|!1JWgxRa8pjTD`HGf zvpE}{crdn<(UB&syZ$1LSO;rI)7+F&;kb^pD;aKzlG>c2@cL9kv@Nji)w(p*YFL|H z7@m;&(^*)PE#&V?T~Y*VHl^XLgG%96(D{V6Rm|Ibra<0$&4ISRtMXDT4(kqLBmjngPs5HyYJ1@O6lbG^)$$>1pITFC7 zfVsT(HZ_*b=#3MjyfXONY|QWWEdh1grlY48$Opqx1|203X#iiWuoII-x|0O0Ue z>yGO5FW0YHw^j94OoA7_kwk5Dv~~_bT2eyX&PA^NWt+!9qd(6ohcqG zO#D{RkVdM9BhACv#cySb-|CW()_q9pK;+}EE{}0y6DI+{Oq^wqsAG`WPT!?#YwlfR z2+ZZs6&d?fe^)y_QP(z6kDurjo|1bY_0@rN!+h}&pn?uTOKf&nY+hJwZrHAuF^S#> zQgZWB=ibQfDm(G|Z(ZZX4z3G8uRJckY8xmL8}Cdu zgMh9KmIRHF2>?Lp`YE;AJ6iUW^qN?BXGeS!%eu+Y`EM2bMvDDp2&@7~z<>l5M?Ahd zRUuB7)8JE(!Bt{)Wfj>NdYwIYgSbuo>>AA-Nh?$~=IL@{EpFm7>kVcXHal5vQ_I}X zHJrjyX2HqZ22@fpZ2?;5#W;A0kpUoqGNImd;wj3+k!M|dX`F*J|r`#)RE8z|;| zrtlhJ1O>e@RefWnI`WLWEls&2ZMp(RkAJ%SUe+ln%SyH0^eb6Vkm;R&gm1?%a7pkvoFfywL zzzv*mL}^SXdMttgqIP-;%n5e2yG{kbHAOELfOT%E`Y_P{bLCrslR%6V2+)TDuNC3i zphVs4#UMqt-c*#0f!4sm`lxoNEF3w3A{h9k0Q~Ss?rIUvezJ99CO>sftgdaNse>9n zwIe*8f2q$DHT$S{s*3driv9je3w~Y|pRqUIFz(cy=qbnJd@!xqR{6XwoHL}fxWY{M=?%}WoH=yg$=?Y0j6rLWsUz)2&CBT#%QL$9i zj!t69!&UK>`%eNk(BU`=#W{P^X@LVLeF{#`XZOwPm^+E+JO@X?tL zJ}mg<6!Vhp9oKbmMlmAj?p5kp>Ov(;gDfX`I0L~>tKy0*V~8EPnRi$DUKQ3^=xZl8 zb8zWGWlIBtt1jFX2GJ~*9lpdh&hE&uM3!A)lWRONFSB`7TwygQ-qzsE-BoeKsk40T z^UnU_Q&6PNU2lj#qt1=LD!-QJi_gCAGof03)@mHSY1Mi{wfe)=aakp)am4u_?z3>j zW_JKKL`egytv`{E>mHi2OYR5F;zDcO5Cerr=OLnHgaOh%S=LREK6uDoG9@)y-b+l zqHXd=;N;mEY=dN3Nzi12tVwnXdeM_u1_oJbcJkV=6Sg_oDIAHO1f3Jb9x|{qfU~Pb zhsm+J#T*UisqAA4Kg^Is6&}oajwZ1T@YY*(veYxxmn@nhT)rwcH%N(fE00x&eW9BY zLyS(^>qL5?W~pS^sTH!+Kn|a*Zdt9K`Ag7}BSK{u6)k{BlmLLVj4T;cwSgx>m0&5E z#nXTYYvmbZb=fi?Y`KDpsw2jnv(?fFIJvrKdbpeK!x+7MdO})TMqAzjr<@^@(Mk)r zJXsKSX~MF41H%w3TB1(Y407Yfx z`6-_Uj;}2P%7oDh;JV)YcF(9*pEz+Mck@t3OKFS2o+pMtH1N7*JeZnt;bceoXO5=P zwG9+2*SC!6hd*3#ORNp_oS;hK$KS+lw3qQCX^Pbyxv9L194IsW`S|&G%=u#xKb&^+ zd)x53f5~25?uCAAMzv9BzO=cgos_pFmH?K^=wQ~B?(}iNET?Wg+Io690Gn#45!dTg zN}c>3U#{b0;Wh`0h?0}s6Zv+RZpv8@U85IayNYV%e|{g%qtR}i#156}!P9KvJtcC^ zHi2|>P1K@N_l3_M2`hTCC#XnR#7XD0D?0`VIm15MYVkGB?#EazU2oi9z@LBKaKjVa)_)C;%lZMQ$ly3RhRX=){n|WiN^|d93>}DSP;n}Yp{co!)l}=eh-lEo~?9elh^XHwP(W$GD zbMZi9H|Exq>-Qob9me1qO-dRB2P#XbPX&I9R7rEJq@ak*{u7UkJr8Zpx$bj$c{d}j z=jzj6Yh2dV`kd?>s@wh1HI}52)*Y8I`}~>6J(=m{fhQ7w^dv#e>Qg2xJih;VXY8_L zHjR|p*(xP&smR{^d_#VUeP`##eiu!@2}!-ld9s)0KF)EQ@@7HRO%xqNQMETmW-|Mp z+UusW=JtT*reK!Ok{rHcKJ!pPQvSR1K8-F-OF(>Y`%UhKpIFZH2v8zlTx3zgH3&pok3b}U+0mPmA8-F z9|Rv>p@#xR^WSDyY%x$9a1Y(v7#eZZUA?LF{_Dn#g;VryEHTcp^>u&w=H0F~#xHV^ zIBr&cSzqL@R*x!xeJvyw=}hiw?Z5M(KBCpEMR`rhrm2OsgUEt+odFkrU7BXym+o|_ z%~@^xE?>W7DNUcvu7k}hcFXr>Yn~~d7Fep(^XmXNbBpRg%kif#&`+G(ww`m%B5$W_HN@8cDc{zyvv=oeiv=YGM|~D z&kIAk_YYs~o#&vnAaLl)+1iyx7k{}JIdrYX;`xIG4+V4L_R5}O96sqV@Y|dI#`%L6 z)-?OsB{v#7rTVXJ8hpJ_uSpns`})FWO64+-BDq3~ zxMfE9(~MWHGfJt4igJUaPPc_`Jp3^KR^&t5?!6gQ0)M~Rs@l!k>9}w;xkYj*Ju^;u z*?1>2if;n*ZsJgyAHbPUt*n%hI;E8I;x1oBas7mNOAL6np#KfM5Uf!cE{q>YeL8UG zUQdk0oN!@5B*(U`D{!&=FuJC6)G0b;^-huy2cKcK`rCOb#I37@HoJhDcLr~m-WOHA zQP6oZSXZ@&qwqv7b?7$?p|BJH0)eYM*rKJsYu`EDGk9;g{WLAm z_g9(TCYZZCQUIqMX2)NDeJ!GaR>fQ@oeXX%f-0sKFbA7g4ymUd98|qHJ$oZ2uJ!ZQ zphBa~GXr$wj5BO@U_c7aNgb$Ham0#=Z}KTwJ})*+*XVI-OyI&l{$^3rrdkRbitIyO;JW zEuW^{BKt`2OYa0wwe=tdG!)|!;Y%ZTG~q%H$O6i}g4XFilPX-2xf8)J7}Uc*;?7^2 zeEg@NT1(NM?cGH&H^>j>W@J%rHK^cP3TTFpaw72M?;|k;MReBRm1EZ)E?D0cH1GEP z;On7rYf_eNvwE67)wE?jiFx;B1pa*9j)`~oPFGc!4M!8oH<}&p(>bQKe#Z`Zo8t<1 zZcXm?X;piU2b89{uQX5IUo(A8$c{XwM%5FjAb4MPxP9a9Noszrbw5P`>%y1~?U{L* z5jjega=50Ju3`I!!k+P=T@#&L_A$_v58f+x3{SZ|$?DG8mXdRR9X&a23*y_|vwRJH zIq+iD$&Vci3L1`|Fmmj_sEdhzU10j)r`K^6CjHfogJ-ARAwc>!*L=5Uu-f|zUv)q5 zYMy(OweP9J{<{kcU5*7M>)aY2s+QJE_I9p#7x}ZtfeO%w&Z+r)*()zf-wX%LGa)() z%7zfmr-*Rk>rPUM!&**)qV}eDi$A?wJTAhpAn#=I+X6hu>=kx7SM)`uQ+q4G&~QGw zw~BoI11J`^4m@E#t=q6cvHRhY1mi8z%;OJgl6!(b3R;z>`OV7tEOU{5HDkJO9vbtC z4R5$q-d>j*lrykq_@yNsePvX?`9`hIkr#dE22OWj-H+2dhq{J-4#l^u-@AKuh+k(i z?QL(9PqNgQPtTup%uHK#aq#}k&;19d_1-J5 z(JSrxuyaoyt)g?8VO&H0R?Dfo(ws`3XBsV9x|(XI!C zg6%8A|nP3*bY3-bOmA0bbP4aS9jqC4ryqT1G(!U_jZAZQ=3vlks zWjN>Rf;s?f%*HprjBG7`R&r&B4&AVRu^FkQBe>r?Dfp6{oqXRy&+>=<7yb6Nw>-GI zPaTAMvQDcSOj;z#;6$f4Q0_<63eGZqYa04w@j0wQ_QR`snbld$?z(A%*$xv+X0#T) zy3ldg^JB&4^4;b2ra{$f&+RZ*cj=738o8BUqcgYKzw2;+d+wqRb` z^3Wfnd-O1%eEquf!yU7vf22vF8+XmyTUHp|#^jc(OZpQdU-rCOFr2bI2CiUGl|1v+ zVAJO3@j{jZn2yez(({72&i zEQgrjC*iE975(X@w%taTwhrJE4$e%tTHf+_4Q};i`&7Yq>KXzm56RE1=Dp@4}+(B~!gepMU9HaCOGs8B0oM2MVV()7MyPEd9-iMg4ORj zJXV~zb>16fxcIkaNdplJdaSwJ@VN@X1H-`2S3>0dotpDIvU}S-I1jDHnJrkCF>veo zhXnx4I%au9#sY56(Gm%wQw8UeeY=I_%4JD?(lHxj*SMtf>2 z<@Kp%H*@WaO_6CkuKmjQyw&fND5Wn$x3AV<$|+XeYkON<8S@^SiXp^L$F6hLB#{UO z#R`Oo1i?D<6xo!YRj0C5#sk2rO_m0yZ^?mSIS*RI${{OxnZ=D0yc!V4bNMr47e`5d z!T|T(cNT0WUmQNe=}2=V?Ux2|;@n)Ut4Ox(P;zZf;H>9meix;Drgh&w=DM*bQ~i0- zZspF4Ljm)78y6q0+ecb*+cB~;{88%O5U*Sfi(Dx+#L9lD^{W>$tSa13)A)C@S6_Nq zvDKp8iz=n?bmpp6#C;KYwThqx%ow=fd+GhAwP%&%=TR=_9$Z87FBsbPv}nh(=z6lT z!{>V;ZC+k-mlHJPGPc`{yseI_ys+D>_e02oz>~$#yDrRJ*VleAv*$tTHNTFXcQ0RD z+3c54dH1Yv{+lxfXD`loPcI%|>@CA3y0|o~n@C?6FwcELHer#x3US*C{hR6sED}-_ z)Yd)z%@hN)2S3Ve+A>E`d;(gh0ctjiCW4ZRRZ^~#cYMB6y~h)CD|YZMM}IXY{lx=+ z%ab!LwhFun<0|}~c1_ROxHNG?bQ`8qI?%L#;<97)E36zdw(qx6s^2 zEi+!bY3S_X8EKzpGp0Olp1&-jy!OOC8gqVOp+%+Xz&I~{`@rfvr|Vk2Ft3Vq&I|Q$ zKOXg#MDx#awm0p3uWsRSq)=*c5V$P;V_H)5PfkVFQ{-YUuP{$*eN|+oS7ak?i3wOZ zA8r!Z(`B6}O7G;)HrrnRz}ahhp;=U3;m*3lW^vaAMUh*1zP!sipRc&jbL&3xoEk#y zD7BScld^PL$%Unf4YHSj*Y)DS^}n7gnQF~G@(vt6w6ftfo5xCU@|ozIGGf%3oF&~Y zYc#|27AQ08e%jJfQD0A((Uf@pf=SB9h|j~r?cr{5IoCQLZ|S|uacja^QT1?I>QAbU z{mL<(O(Mna*|X=4VPQ>;eiE+GX9IhNuBvVz^HAENl4_FXv&5b5Bu%xP3%st{ZHYGz zU|SRue2fCs)Hd$!FQjK^pz~#Wb4;Dzn8lQQC>u zig~f-viFZl@~ literal 0 HcmV?d00001 diff --git a/ukui-volume-control-applet-qt/data/sounds/thud.ogg b/ukui-volume-control-applet-qt/data/sounds/thud.ogg new file mode 100644 index 0000000000000000000000000000000000000000..dbf43ca82d3b2cbd16e0d051f4c6902a47c1f5f4 GIT binary patch literal 18178 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 TDP$)z-*h|3g#kPx{zLjde`7_T literal 0 HcmV?d00001 diff --git a/ukui-volume-control-applet-qt/data/sounds/ttlou.ogg b/ukui-volume-control-applet-qt/data/sounds/ttlou.ogg new file mode 100644 index 0000000000000000000000000000000000000000..07b54d0015862eaf198759a7b3a2e85b48568c6e GIT binary patch literal 17196 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 |2ky%^k`FO(f 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 dl@ + + + flop + 电波回音 + /usr/share/ukui-media/sounds/flop.ogg + + + + clank + 叮铃 + /usr/share/ukui-media/sounds/clank.ogg + + + + gudou + 咕咚 + /usr/share/ukui-media/sounds/gudou.ogg + + + + thud + 回音 + /usr/share/ukui-media/sounds/thud.ogg + + + + plump + 机器人 + /usr/share/ukui-media/sounds/plump.ogg + + + + quack + 机械 + /usr/share/ukui-media/sounds/quack.ogg + + + + ding + 金属 + /usr/share/ukui-media/sounds/ding.ogg + + + + clang + 水波 + /usr/share/ukui-media/sounds/clang.ogg + + + + gurgle + 水声 + /usr/share/ukui-media/sounds/gurgle.ogg + + + + fizz + 吐泡泡 + /usr/share/ukui-media/sounds/fizz.ogg + + + + ttlou + 完成 + /usr/share/ukui-media/sounds/ttlou.ogg + + + + rat-rat + 煮茶 + /usr/share/ukui-media/sounds/rat-rat.ogg + + + + splash + 电磁 + /usr/share/ukui-media/sounds/splash.ogg + + + + bark + 犬吠 + /usr/share/ukui-media/sounds/bark.ogg + + + + drip + 雨滴 + /usr/share/ukui-media/sounds/drip.ogg + + + + glass + 玻璃 + /usr/share/ukui-media/sounds/glass.ogg + + + + sonar + 声纳 + /usr/share/ukui-media/sounds/sonar.ogg + + + + None + + + + diff --git a/ukui-volume-control-applet-qt/main.cpp b/ukui-volume-control-applet-qt/main.cpp new file mode 100644 index 0000000..ead667b --- /dev/null +++ b/ukui-volume-control-applet-qt/main.cpp @@ -0,0 +1,95 @@ +/* + * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * + * 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, 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 +#include +#include +#include +#include +#include + +#include "ukmedia_main_widget.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "xatom/xatom-helper.h" + + +int main(int argc, char *argv[]) +{ + initUkuiLog4qt("ukui-media"); + Display *display = XOpenDisplay(NULL); + Screen *scrn = DefaultScreenOfDisplay(display); + if(scrn == nullptr) { + return 0; + } + + #if (QT_VERSION >= QT_VERSION_CHECK(5, 12, 0)) + QApplication::setAttribute(Qt::AA_EnableHighDpiScaling); + QApplication::setAttribute(Qt::AA_UseHighDpiPixmaps); + #endif + #if (QT_VERSION >= QT_VERSION_CHECK(5, 14, 0)) + QApplication::setHighDpiScaleFactorRoundingPolicy(Qt::HighDpiScaleFactorRoundingPolicy::PassThrough); + #endif + + QtSingleApplication app("ukui-volume-control-applet",argc,argv); + if (app.isRunning()) { + app.sendMessage("raise_window_noop"); + return EXIT_SUCCESS; + } + +#ifndef QT_NO_TRANSLATION + QString translatorFileName = QLatin1String("qt_"); + translatorFileName += QLocale::system().name(); + QTranslator *pTranslator = new QTranslator(); + if (pTranslator->load(translatorFileName, QLibraryInfo::location(QLibraryInfo::TranslationsPath))) + app.installTranslator(pTranslator); +#endif + + //加载qm文件 + QTranslator translator; + translator.load("/usr/share/ukui-media/translations/" + QLocale::system().name()); + app.installTranslator(&translator); + + //加载qss文件 + QFile qss(":/data/qss/ukuimedia.qss"); + qss.open(QFile::ReadOnly); + + qss.close(); + UkmediaMainWidget w; + app.setActivationWindow(&w); + w.setProperty("useStyleWindowManager", false); //禁用拖动 + + MotifWmHints window_hints; + window_hints.flags = MWM_HINTS_FUNCTIONS | MWM_HINTS_DECORATIONS; + window_hints.functions = MWM_FUNC_ALL; + window_hints.decorations = MWM_DECOR_BORDER; + XAtomHelper::getInstance()->setWindowMotifHint(w.winId(), window_hints); + + XCloseDisplay(display); + return app.exec(); +} + diff --git a/ukui-volume-control-applet-qt/res.qrc b/ukui-volume-control-applet-qt/res.qrc new file mode 100644 index 0000000..13c28d6 --- /dev/null +++ b/ukui-volume-control-applet-qt/res.qrc @@ -0,0 +1,8 @@ + + + data/img/setting.svg + data/img/tick.png + data/img/tick.svg + data/qss/ukuimedia.qss + + diff --git a/ukui-volume-control-applet-qt/translations/bo.qm b/ukui-volume-control-applet-qt/translations/bo.qm new file mode 100644 index 0000000..be651ee --- /dev/null +++ b/ukui-volume-control-applet-qt/translations/bo.qm @@ -0,0 +1 @@ + + + + + ApplicationVolumeWidget + + + Application Volume + + + + + System Volume + + + + + Sound Settings + + + + + QObject + + + pa_context_subscribe() failed + + + + + pa_context_get_card_info_list() failed + + + + + pa_context_get_sink_info_list() failed + + + + + pa_context_get_source_info_list() failed + + + + + Failed to initialize stream_restore extension: %s + + + + + pa_ext_stream_restore_read() failed + + + + + pa_context_get_sink_info_by_index() failed + + + + + pa_context_get_source_info_by_index() failed + + + + + pa_context_get_card_info_by_index() failed + + + + + Card callback failure + + + + + + Sink callback failure + + + + + Source callback failure + + + + + Fatal Error: Unable to connect to PulseAudio + + + + + + + pa_context_get_server_info() failed + + + + + + Sink input callback failure + + + + + Source output callback failure + + + + + Client callback failure + + + + + + Server info callback failure + + + + + Failed to initialize device restore extension: %s + + + + + pa_ext_device_restore_read_sink_formats() failed + + + + + Failed to initialize device manager extension: %s + + + + + pa_ext_device_manager_read() failed + + + + + + pa_context_get_sink_input_info() failed + + + + + pa_context_get_client_info() failed + + + + + pa_context_client_info_list() failed + + + + + pa_context_get_sink_input_info_list() failed + + + + + pa_context_get_source_output_info_list() failed + + + + + Connection failed, attempting reconnect + + + + + Ukui Media Volume Control + + + + + UkmediaMainWidget + + + Output volume control + + + + + + Sound preference(S) + + + + + System Volume + + + + + App Volume + + + + + Current volume: + + + + + UkmediaSystemVolumeWidget + + + Volume + + + + + Output + + + + + Sound Settings + + + + + UkmediaVolumeControl + + + + + + + + + + pa_context_set_sink_volume_by_index() failed + + + + + + pa_context_set_source_output_volume() failed + + + + + pa_context_set_source_output_mute() failed + + + + + pa_context_set_card_profile_by_index() failed + + + + + pa_context_set_default_sink() failed + + + + + pa_context_set_default_source() failed + + + + + pa_context_set_sink_port_by_name() failed + + + + + pa_context_set_source_port_by_name() failed + + + + + pa_context_kill_sink_input() failed + + + + + (plugged in) + + + + + + (unavailable) + + + + + + (unplugged) + + + + + Failed to read data from stream + + + + + Peak detect + + + + + Failed to create monitoring stream + + + + + Failed to connect monitoring stream + + + + + Ignoring sink-input due to it being designated as an event and thus handled by the Event widget + + + + + Establishing connection to PulseAudio. Please wait... + + + + + pa_context_get_sink_info_by_name() failed + + + + + pa_context_get_source_info_by_name() failed + + + + + UkuiMediaSetHeadsetWidget + + + Sound Settings + + + + + Cancel + + + + + Select Sound Device + + + + + Headphone + + + + + Headset + + + + + Microphone + + + + diff --git a/ukui-volume-control-applet-qt/translations/tr.qm b/ukui-volume-control-applet-qt/translations/tr.qm new file mode 100644 index 0000000000000000000000000000000000000000..3c76c9523800a31b04b6c6ab3fffd8d4f09bdae5 GIT binary patch literal 1627 zcmcIkJ!lj`6n>lJyd)+u=Eq2gGJ-_{5e-;ccu`D(IfR^1JKgL~l418|*1g%&1VUO{ z!E`o)A~rS=QB+chh=QGsg`kC4h*)V*Ec|BgTrWR&2E=0S&Ccz7?|a|--X3}2?tb~@ z`qHa?eJdAkJb61zL{}&^ev8O@ZH-TvIBeZn{z_CoP&c!T=Z1snz6Fl>K7C+ikf?5Z z`tIs?L@#~+G2XMTHNLs|3^-Jdx0{?#A8`M3bNj+Q#EWgkV=wUjqf$&AZCl*C2)xT} z@2)Q4+PNLQPg96L1X1c?J$Ah`Npmzq5&2|O9*a?qI2A}V;&0l9)sYDTUpTfFO0qM` zkMcZ?Et)*KP{Ho#fQWlj;EQXyTH`Z_jb$?70+&QAynAD18g%m8S+*rVBi0yQ; z+z*d@@beO!rcrLY!K{)s@3)jYh#t~>a6+K}({q!|8nVu#ltOF*MjlF%kSIj- z>1P7heJavHq**cc19Ozrq4JF{s+DCdVT{FMQ-tJz-fV@qn$zOd2strZJ>DC%rs(gwl1OB{kw5%`c|{%K00lbgu3g76W#n%e=?vaBHvF2bWgd7W@@uGzE|Of M@7(_};a?K}0(QNFf&c&j literal 0 HcmV?d00001 diff --git a/ukui-volume-control-applet-qt/translations/tr.ts b/ukui-volume-control-applet-qt/translations/tr.ts new file mode 100644 index 0000000..0310c88 --- /dev/null +++ b/ukui-volume-control-applet-qt/translations/tr.ts @@ -0,0 +1,107 @@ + + + + + ApplicationVolumeWidget + + + Application Volume + Uygulama Sesi + + + + System Volume + Sistem Sesi + + + + DeviceSwitchWidget + + + Go Into Mini Mode + Mini Moda Geç + + + + Output volume control + Çıkış ses kontrolü + + + + + Mute + Sessiz + + + + + Sound preference(S) + Ses tercihi + + + + Device Volume + Aygıt Sesi + + + + Application Volume + Uygulama Sesi + + + + + + + Speaker (Realtek Audio) + Hoparlör (Realtek Audio) + + + + + Headphone + Kulaklık + + + + UkmediaDeviceWidget + + + Input Device + Giriş Sesi + + + + Microphone + Mikrofon + + + + Output Device + Çıkış Sesi + + + + Speaker Realtek Audio + Hoparlör Realtek Audio + + + + Input device can not be detected + Giriş cihazı algılanamıyor + + + + UkmediaMiniMasterVolumeWidget + + + Speaker (Realtek Audio) + Hoparlör (Realtek Audio) + + + + Go Into Full Mode + Tam Moda Geçin + + + diff --git a/ukui-volume-control-applet-qt/translations/zh_CN.ts b/ukui-volume-control-applet-qt/translations/zh_CN.ts new file mode 100644 index 0000000..03dda75 --- /dev/null +++ b/ukui-volume-control-applet-qt/translations/zh_CN.ts @@ -0,0 +1,462 @@ + + + + + ApplicationVolumeWidget + + + Application Volume + 应用 + + + + System Volume + 系统音量 + + + + Sound Settings + 声音设置 + + + + DeviceSwitchWidget + + Go Into Mini Mode + 进入Mini模式 + + + Output volume control + 输出音量控制 + + + Mute + 静音 + + + Sound preference(S) + 声音首选项 + + + Device Volume + 设备音量 + + + Application Volume + 应用音量 + + + is using + 正在使用 + + + Bluetooth + 蓝牙 + + + Error + 错误 + + + Unable to connect to the sound system, please check whether the pulseaudio service is running! + 无法连接到系统声音,请检查pulseaudio服务是否正在运行! + + + Dummy output + 伪输出 + + + Speaker (Realtek Audio) + 扬声器(Realtek Audio) + + + Headphone + 模拟耳机 + + + + QObject + + + pa_context_subscribe() failed + + + + + pa_context_get_card_info_list() failed + + + + + pa_context_get_sink_info_list() failed + + + + + pa_context_get_source_info_list() failed + + + + + Failed to initialize stream_restore extension: %s + + + + + pa_ext_stream_restore_read() failed + + + + + pa_context_get_sink_info_by_index() failed + + + + + pa_context_get_source_info_by_index() failed + + + + + pa_context_get_card_info_by_index() failed + + + + + Card callback failure + + + + + + Sink callback failure + + + + + Source callback failure + + + + + Fatal Error: Unable to connect to PulseAudio + + + + + + + pa_context_get_server_info() failed + + + + + + Sink input callback failure + + + + + Source output callback failure + + + + + Client callback failure + + + + + + Server info callback failure + + + + + Failed to initialize device restore extension: %s + + + + + pa_ext_device_restore_read_sink_formats() failed + + + + + Failed to initialize device manager extension: %s + + + + + pa_ext_device_manager_read() failed + + + + + + pa_context_get_sink_input_info() failed + + + + + pa_context_get_client_info() failed + + + + + pa_context_client_info_list() failed + + + + + pa_context_get_sink_input_info_list() failed + + + + + pa_context_get_source_output_info_list() failed + + + + + Connection failed, attempting reconnect + + + + + Ukui Media Volume Control + + + + + UkmediaDeviceWidget + + Input Device + 输入设备 + + + Microphone + 麦克风 + + + Output Device + 输出设备 + + + Speaker Realtek Audio + 扬声器(Realtek Audio) + + + Input device can not be detected + 无法检测到输入设备 + + + + UkmediaMainWidget + + + Output volume control + 输出音量控制 + + + Mute + 静音 + + + + + Sound preference(S) + 设置声音项 + + + + System Volume + 系统音量 + + + + App Volume + 应用音量 + + + + Current volume: + 当前音量: + + + + UkmediaMiniMasterVolumeWidget + + Speaker (Realtek Audio) + 扬声器(Realtek Audio) + + + Go Into Full Mode + 进入完整模式 + + + + UkmediaSystemVolumeWidget + + + Volume + 音量 + + + + Output + 输出 + + + + Sound Settings + 声音设置 + + + + UkmediaVolumeControl + + + + + + + + + + pa_context_set_sink_volume_by_index() failed + + + + + + pa_context_set_source_output_volume() failed + + + + + pa_context_set_source_output_mute() failed + + + + + pa_context_set_card_profile_by_index() failed + + + + + pa_context_set_default_sink() failed + + + + + pa_context_set_default_source() failed + + + + + pa_context_set_sink_port_by_name() failed + + + + + pa_context_set_source_port_by_name() failed + + + + + pa_context_kill_sink_input() failed + + + + + (plugged in) + + + + + + (unavailable) + + + + + + (unplugged) + + + + + Failed to read data from stream + + + + + Peak detect + + + + + Failed to create monitoring stream + + + + + Failed to connect monitoring stream + + + + + Ignoring sink-input due to it being designated as an event and thus handled by the Event widget + + + + + Establishing connection to PulseAudio. Please wait... + + + + + pa_context_get_sink_info_by_name() failed + + + + + pa_context_get_source_info_by_name() failed + + + + + UkuiMediaSetHeadsetWidget + + + Sound Settings + 声音设置 + + + + Cancel + 取消 + + + + Select Sound Device + 选择输出设备 + + + + Headphone + 耳机 + + + + Headset + 耳麦 + + + + Microphone + 麦克风 + + + diff --git a/ukui-volume-control-applet-qt/ukmedia_application_volume_widget.cpp b/ukui-volume-control-applet-qt/ukmedia_application_volume_widget.cpp new file mode 100644 index 0000000..e192f4e --- /dev/null +++ b/ukui-volume-control-applet-qt/ukmedia_application_volume_widget.cpp @@ -0,0 +1,169 @@ +/* + * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * + * 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, 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 +#include +#include +#include +#include +#include +ApplicationVolumeWidget::ApplicationVolumeWidget(QWidget *parent) : QWidget (parent) +{ + applicationLabel = new QLabel(tr("Application Volume"),this); + app_volume_list = new QStringList; + systemVolumeLabel = new QLabel(tr("System Volume"),this); + systemVolumeBtn = new UkuiMediaMuteButton(this); + systemVolumeSlider = new UkmediaVolumeSlider(this); + systemVolumeDisplayLabel = new QLabel(this); + systemVolumeSliderWidget = new QWidget(this); + + QPalette palette = applicationLabel->palette(); + QColor color = palette.color(QPalette::PlaceholderText); + palette.setColor(QPalette::WindowText,color); + applicationLabel->setPalette(palette); + systemVolumeLabel->setPalette(palette); + + //系统音量label + QWidget *systemVolumeLabelWidget = new QWidget(this); + systemVolumeLabelWidget->setFixedSize(404,20); + systemVolumeLabel->setFixedSize(404,20); + QHBoxLayout *systemVolumeLabelLayout = new QHBoxLayout; + systemVolumeLabelLayout->addWidget(systemVolumeLabel); + systemVolumeLabelWidget->setLayout(systemVolumeLabelLayout); + systemVolumeLabelLayout->setContentsMargins(16,0,0,0); + + //应用label + QWidget *applicationLabelWidget = new QWidget(this); + applicationLabel->setFixedSize(404,20); + applicationLabelWidget->setFixedSize(404,20); + QHBoxLayout *applicationLabelLayout = new QHBoxLayout; + applicationLabelLayout->addWidget(applicationLabel); + applicationLabelWidget->setLayout(applicationLabelLayout); + applicationLabelLayout->setContentsMargins(16,0,0,0); + + //音量滑动条 + QHBoxLayout *systemVolumeSliderLayout = new QHBoxLayout(); + systemVolumeSliderWidget->setFixedSize(412,48); + systemVolumeBtn->setFixedSize(36,36); + systemVolumeBtn->setActive(true); + systemVolumeSlider->setOrientation(Qt::Horizontal); + systemVolumeSlider->setRange(0,100); + systemVolumeSlider->setFixedSize(273,48); + systemVolumeDisplayLabel->setFixedSize(55,48); + systemVolumeDisplayLabel->setAlignment(Qt::AlignCenter); + systemVolumeSliderLayout->addWidget(systemVolumeBtn); + systemVolumeSliderLayout->addSpacing(8); + systemVolumeSliderLayout->addWidget(systemVolumeSlider); + systemVolumeSliderLayout->addSpacing(16); + systemVolumeSliderLayout->addWidget(systemVolumeDisplayLabel); + systemVolumeSliderLayout->setSpacing(0); + systemVolumeSliderWidget->setLayout(systemVolumeSliderLayout); + systemVolumeSliderLayout->setContentsMargins(16,0,24,0); + systemVolumeSlider->setObjectName("systemVolumeSlider"); + this->setFixedSize(420,436); + + volumeSettingButton = new UkuiSettingButton(volumeSettingFrame); + volumeSettingButton->setText(tr("Sound Settings")); + volumeSettingButton->setCursor(Qt::PointingHandCursor); + volumeSettingButton->setScaledContents(true); + + volumeSettingFrame = new QFrame(this); + volumeSettingFrame->setFixedHeight(52); + QHBoxLayout *volumeSettingLayout = new QHBoxLayout(volumeSettingFrame); + volumeSettingLayout->setContentsMargins(16,0,24,8); + volumeSettingLayout->addWidget(volumeSettingButton); + volumeSettingLayout->addStretch(); + volumeSettingFrame->setLayout(volumeSettingLayout); + + appArea = new QScrollArea(this); + displayAppVolumeWidget = new UkuiApplicationWidget(appArea); + appArea->setWidget(displayAppVolumeWidget); + QPalette palette1 = appArea->palette(); + palette1.setColor(QPalette::Window, QColor(0x00,0xff,0x00,0x00)); //改变appArea背景色透明 + appArea->setPalette(palette1); + appArea->verticalScrollBar()->setProperty("drawScrollBarGroove",false); +// appWidget->appArea->verticalScrollBar()->setFixedSize(2,70); //设置垂直滑动条大小和背景色,因为设置完不美观,暂时注释掉 +// appWidget->appArea->verticalScrollBar()->setBackgroundRole(QPalette::Light); + displayAppVolumeWidget->setFixedWidth(404); + m_pVlayout = new QVBoxLayout(displayAppVolumeWidget); + + displayAppVolumeWidget->setAttribute(Qt::WA_TranslucentBackground); + appArea->setFixedSize(404,245); + displayAppVolumeWidget->setLayout(m_pVlayout); + this->setObjectName("mainWidget"); + setObjectName("appWidget"); + appArea->setFrameShape(QFrame::NoFrame);//bjc去掉appArea的边框 + appArea->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); + + //整体布局 + QVBoxLayout *mainLayout = new QVBoxLayout; + mainLayout->addWidget(systemVolumeLabelWidget); + mainLayout->addSpacing(8); + mainLayout->addWidget(systemVolumeSliderWidget); + mainLayout->addSpacing(17); + mainLayout->addWidget(applicationLabelWidget); + mainLayout->addSpacing(8); + mainLayout->addWidget(appArea); + mainLayout->addSpacing(8); + mainLayout->addWidget(volumeSettingFrame); + mainLayout->setSpacing(0); + this->setLayout(mainLayout); + mainLayout->setContentsMargins(8,16,0,0); +} + +void ApplicationVolumeWidget::fullushBlueRecordStream() +{ + isRecording = true; + outputFile.setFileName("/tmp/test.raw"); + outputFile.open( QIODevice::WriteOnly | QIODevice::Truncate ); + QAudioFormat format; + + format.setSampleRate(8000); + format.setChannelCount(1); + format.setSampleSize(8); + format.setCodec("audio/pcm"); + format.setByteOrder(QAudioFormat::LittleEndian); + + format.setSampleType(QAudioFormat::UnSignedInt); + QAudioDeviceInfo info = QAudioDeviceInfo::defaultInputDevice(); + qDebug() << "input device" << info.deviceName(); + if (!info.isFormatSupported(format)) + { + qWarning()<<"default format not supported try to use nearest"; + format = info.nearestFormat(format); + } + qDebug() << "准备蓝牙录音-------"; + audio = new QAudioInput(info, format, this); + audio->start(&outputFile); +} + +void ApplicationVolumeWidget::deleteBlueRecordStream() +{ + isRecording = false; + qDebug() << "停止录制-------"; + audio->stop(); + outputFile.close(); + system("rm /tmp/test.raw"); + delete audio; +} + +ApplicationVolumeWidget::~ApplicationVolumeWidget() +{ +// delete app_volume_list; +// delete appIconBtn; +} diff --git a/ukui-volume-control-applet-qt/ukmedia_application_volume_widget.h b/ukui-volume-control-applet-qt/ukmedia_application_volume_widget.h new file mode 100644 index 0000000..2a96010 --- /dev/null +++ b/ukui-volume-control-applet-qt/ukmedia_application_volume_widget.h @@ -0,0 +1,68 @@ +/* + * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * + * 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, 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 +#include +#include +#include +#include +#include +#include +#include "ukmedia_custom_class.h" + +class ApplicationVolumeWidget : public QWidget +{ + Q_OBJECT +public: + ApplicationVolumeWidget(QWidget *parent = nullptr); + ~ApplicationVolumeWidget(); + void fullushBlueRecordStream(); + void deleteBlueRecordStream(); + friend class DeviceSwitchWidget; + friend class UkmediaMainWidget; +private: + QLabel *applicationLabel; + QLabel *systemVolumeLabel; + UkuiMediaMuteButton *systemVolumeBtn; + UkmediaVolumeSlider *systemVolumeSlider; + QLabel *systemVolumeDisplayLabel; + + QWidget *systemVolumeSliderWidget; + QWidget *displayAppVolumeWidget; + QStringList *app_volume_list; + QLabel *appVolumeLabel; + QPushButton *appMuteBtn; + QPushButton *appIconBtn; + QSlider *appSlider; + QScrollArea *appArea; + QVBoxLayout *m_pVlayout; + + QFrame * volumeSettingFrame; + UkuiSettingButton *volumeSettingButton; + + QFile outputFile; // class member. + QAudioInput* audio; // class member. + QAudioOutput *outAudio; + bool isRecording = false; +protected: +// void paintEvent(QPaintEvent *event); + +}; + +#endif // APPLICATIONVOLUMEWIDGET_H diff --git a/ukui-volume-control-applet-qt/ukmedia_custom_class.cpp b/ukui-volume-control-applet-qt/ukmedia_custom_class.cpp new file mode 100644 index 0000000..70affff --- /dev/null +++ b/ukui-volume-control-applet-qt/ukmedia_custom_class.cpp @@ -0,0 +1,883 @@ +/* + * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * + * 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, 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 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +#define TIMER_TIMEOUT (2*1000) +#define FOREGROUND_COLOR_NORMAL qApp->palette().text().color() + + +extern double transparency; + +UkmediaTrayIcon::UkmediaTrayIcon(QWidget *parent) +{ + Q_UNUSED(parent); +} + +UkmediaTrayIcon::~UkmediaTrayIcon() +{ + +} + +/*! + * \brief + * \details + * 处理托盘的滚动事件 + */ +bool UkmediaTrayIcon::event(QEvent *event) +{ + bool value = false; + QWheelEvent *e = static_cast(event); + if (event->type() == QEvent::Wheel) { + if (e->delta() > 0) { + value = true; + } + else if (e->delta() < 0) { + value = false; + } + Q_EMIT wheelRollEventSignal(value); + } + return QSystemTrayIcon::event(e); + +} + +MyTimer::MyTimer(QObject *parent) + :QObject(parent) +{ + m_nTimerID = this->startTimer(TIMER_TIMEOUT); +} + +MyTimer::~MyTimer() +{ + +} + +void MyTimer::timerEvent(QTimerEvent *event) +{ + if(event->timerId() == m_nTimerID){ + handleTimeout(); + Q_EMIT timeOut(); + } +} + +void MyTimer::handleTimeout() +{ + killTimer(m_nTimerID); +} + +UkuiApplicationWidget::UkuiApplicationWidget(QWidget *parent) +{ +// this->setAttribute(Qt::WA_TranslucentBackground); +// this->setStyleSheet("QWiget{background:rgba(0,0,0,0);}"); + Q_UNUSED(parent); +} + +UkuiMediaSliderTipLabel::UkuiMediaSliderTipLabel(){ + setAttribute(Qt::WA_TranslucentBackground); +} + +UkuiMediaSliderTipLabel::~UkuiMediaSliderTipLabel(){ +} + +void UkuiApplicationWidget::paintEvent(QPaintEvent *e) +{ + QStyleOption opt; + opt.init(this); + QPainter p(this); + double transparence = transparency * 255; + QColor color = palette().color(QPalette::Base); + color.setAlpha(transparence); + QBrush brush = QBrush(QColor(0,0,0,0)); + p.setBrush(brush); + p.setBrush(this->palette().base()); + p.setBrush(QBrush(QColor(19, 19, 20, 0))); + p.setPen(Qt::NoPen); + QPainterPath path; + opt.rect.adjust(0,0,0,0); + path.addRoundedRect(opt.rect,0,0); + p.setRenderHint(QPainter::Antialiasing); // 反锯齿; + p.drawRoundedRect(opt.rect,0,0); + setProperty("blurRegion",QRegion(path.toFillPolygon().toPolygon())); + style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this); + +} + +UkuiApplicationWidget::~UkuiApplicationWidget() +{ + +} + +void UkuiMediaSliderTipLabel::paintEvent(QPaintEvent *e) +{ + QStyleOptionFrame opt; + initStyleOption(&opt); + QStylePainter p(this); +// p.setBrush(QBrush(QColor(0x1A,0x1A,0x1A,0x4C))); + p.setBrush(QBrush(QColor(0xFF,0xFF,0xFF,0x00))); + p.setPen(Qt::NoPen); + p.drawRoundedRect(this->rect(), 1, 1); + QPainterPath path; + path.addRoundedRect(opt.rect,6,6); + p.setRenderHint(QPainter::Antialiasing); + setProperty("blurRegion",QRegion(path.toFillPolygon().toPolygon())); + p.drawPrimitive(QStyle::PE_PanelTipLabel, opt); + this->setProperty("blurRegion", QRegion(QRect(0, 0, 1, 1))); + QLabel::paintEvent(e); +} + +UkuiMediaMuteButton::UkuiMediaMuteButton(QWidget *parent) +{ + Q_UNUSED(parent); + this->setFixedSize(36,36); + m_iconLabel = new QLabel(this); + m_iconLabel->setFixedSize(36,36); + m_iconLabel->setAlignment(Qt::AlignCenter); + + connect(qApp, &QApplication::paletteChanged, this, &UkuiMediaMuteButton::onPaletteChanged); +} + +/*! + * \brief + * \details + * 绘制窗体的颜色及圆角 + */ +void UkuiMediaMuteButton::paintEvent(QPaintEvent *event) +{ + QPalette pal = this->palette(); + pal.setColor(QPalette::Base, BACKGROUND_COLOR); + pal.setColor(QPalette::Text, m_backgroundColor); + + QPainterPath cPath; + cPath.addRect(0, 0, this->width(), this->height()); + cPath.addEllipse(0, 0, this->width(), this->width()); + + QPainterPath innerPath; + innerPath.addEllipse(0, 0, this->width(), this->width()); + + QPainter painter(this); + painter.setRenderHint(QPainter:: Antialiasing, true); //设置渲染,启动反锯齿 + painter.setPen(Qt::NoPen); + + painter.setBrush(pal.color(QPalette::Base)); + painter.drawPath(cPath); + + painter.fillPath(innerPath, pal.color(QPalette::Text)); +} + +void UkuiMediaMuteButton::mousePressEvent(QMouseEvent *e) +{ + if (m_isActivated) { + m_backgroundColor = QColor(0x24,0x6D,0xD4,0xFF); + } else { + m_backgroundColor = QColor(0xD9,0xD9,0xD9,0xFF); + m_backgroundColor.setAlphaF(0.20); + } + this->update(); + QPushButton::mousePressEvent(e); +} + +void UkuiMediaMuteButton::mouseReleaseEvent(QMouseEvent *e) +{ + if (m_isActivated) { + m_backgroundColor = qApp->palette().highlight().color(); + } else { + m_backgroundColor = qApp->palette().brightText().color(); + m_backgroundColor.setAlphaF(0.05); + } + this->update(); + QPushButton::mouseReleaseEvent(e); +} + +void UkuiMediaMuteButton::enterEvent(QEvent *e) +{ + if (m_isActivated) { + m_backgroundColor = qApp->palette().highlight().color(); + } else { + m_backgroundColor = qApp->palette().brightText().color(); + m_backgroundColor.setAlphaF(0.32); + } + this->update(); + QPushButton::enterEvent(e); +} + +void UkuiMediaMuteButton::leaveEvent(QEvent *e) +{ + if (m_isActivated) { + m_backgroundColor = qApp->palette().highlight().color(); + } else { + m_backgroundColor = qApp->palette().brightText().color(); + m_backgroundColor.setAlphaF(0.18); + } + this->update(); + return QPushButton::leaveEvent(e); +} + +UkuiMediaMuteButton::~UkuiMediaMuteButton() +{ + +} + +//根据连接状态更改图标颜色 +void UkuiMediaMuteButton::setActive(const bool &isActive) +{ + m_isActivated = isActive; + refreshButtonIcon(); +} + +void UkuiMediaMuteButton::onPaletteChanged() +{ + refreshButtonIcon(); +} + +void UkuiMediaMuteButton::setButtonIcon(const QIcon &icon) +{ + if (icon.isNull()) { + return; + } + m_pixmap = icon.pixmap(18,18); +} +//显示默认图标 +void UkuiMediaMuteButton::setDefaultPixmap() +{ + m_iconLabel->setPixmap(m_pixmap); +} + +void UkuiMediaMuteButton::refreshButtonIcon() +{ + if (m_isActivated) { + m_backgroundColor = qApp->palette().highlight().color(); + m_iconLabel->setPixmap(loadSvg(m_pixmap, PixmapColor::WHITE)); + } else { + m_backgroundColor = qApp->palette().brightText().color(); + m_backgroundColor.setAlphaF(0.18); + if (qApp->palette().base().color().red() > MIDDLE_COLOR) { + m_iconLabel->setPixmap(m_pixmap); + } else { + m_iconLabel->setPixmap(loadSvg(m_pixmap, PixmapColor::WHITE)); + } + } + + return; +} + +const QPixmap UkuiMediaMuteButton:: loadSvg(const QPixmap &source, const PixmapColor &cgColor) +{ + QImage img = source.toImage(); + for (int x = 0; x < img.width(); x++) { + for (int y = 0; y < img.height(); y++) { + auto color = img.pixelColor(x, y); + if (color.alpha() > 0) { + switch (cgColor) { + case PixmapColor::WHITE: + color.setRed(255); + color.setGreen(255); + color.setBlue(255); + img.setPixelColor(x, y, color); + break; + case PixmapColor::BLACK: + color.setRed(0); + color.setGreen(0); + color.setBlue(0); + img.setPixelColor(x, y, color); + break; + case PixmapColor::GRAY: + color.setRed(152); + color.setGreen(163); + color.setBlue(164); + img.setPixelColor(x, y, color); + break; + case PixmapColor::BLUE: + color.setRed(61); + color.setGreen(107); + color.setBlue(229); + img.setPixelColor(x, y, color); + break; + default: + return source; + break; + } + } + } + } + return QPixmap::fromImage(img); +} + + +UkuiMediaButton::UkuiMediaButton(QWidget *parent) +{ + Q_UNUSED(parent); + this->setFixedSize(36,36); + m_iconLabel = new QLabel(this); + m_iconLabel->setFixedSize(36,36); + m_iconLabel->setAlignment(Qt::AlignCenter); + + setActive(false); + connect(qApp, &QApplication::paletteChanged, this, &UkuiMediaButton::onPaletteChanged); +} + +UkuiMediaButton::~UkuiMediaButton() +{ + +} + +//根据连接状态更改图标颜色 +void UkuiMediaButton::setActive(const bool &isActive) +{ + m_isActivated = isActive; + refreshButtonIcon(); +} + +void UkuiMediaButton::onPaletteChanged() +{ + refreshButtonIcon(); +} + +void UkuiMediaButton::setButtonIcon(const QIcon &icon) +{ + if (icon.isNull()) { + return; + } + m_pixmap = icon.pixmap(18,18); +} +//显示默认图标 +void UkuiMediaButton::setDefaultPixmap() +{ + m_iconLabel->setPixmap(m_pixmap); +} + +void UkuiMediaButton::refreshButtonIcon() +{ + if (m_isActivated) { + m_backgroundColor = qApp->palette().highlight().color(); + m_iconLabel->setPixmap(loadSvg(m_pixmap, PixmapColor::WHITE)); + } else { + m_backgroundColor = qApp->palette().brightText().color(); + m_backgroundColor.setAlphaF(0.18); + if (qApp->palette().base().color().red() > MIDDLE_COLOR) { + m_iconLabel->setPixmap(m_pixmap); + } else { + m_iconLabel->setPixmap(loadSvg(m_pixmap, PixmapColor::WHITE)); + } + } + + return; +} + +const QPixmap UkuiMediaButton:: loadSvg(const QPixmap &source, const PixmapColor &cgColor) +{ + QImage img = source.toImage(); + for (int x = 0; x < img.width(); x++) { + for (int y = 0; y < img.height(); y++) { + auto color = img.pixelColor(x, y); + if (color.alpha() > 0) { + switch (cgColor) { + case PixmapColor::WHITE: + color.setRed(255); + color.setGreen(255); + color.setBlue(255); + img.setPixelColor(x, y, color); + break; + case PixmapColor::BLACK: + color.setRed(0); + color.setGreen(0); + color.setBlue(0); + img.setPixelColor(x, y, color); + break; + case PixmapColor::GRAY: + color.setRed(152); + color.setGreen(163); + color.setBlue(164); + img.setPixelColor(x, y, color); + break; + case PixmapColor::BLUE: + color.setRed(61); + color.setGreen(107); + color.setBlue(229); + img.setPixelColor(x, y, color); + break; + default: + return source; + break; + } + } + } + } + return QPixmap::fromImage(img); +} + +/*! + * \brief + * \details + * 绘制窗体的颜色及圆角 + */ +void UkuiMediaButton::paintEvent(QPaintEvent *event) +{ + QPalette pal = this->palette(); + pal.setColor(QPalette::Base, BACKGROUND_COLOR); + pal.setColor(QPalette::Text, m_backgroundColor); + + QPainterPath cPath; + cPath.addRect(0, 0, this->width(), this->height()); + cPath.addEllipse(0, 0, this->width(), this->width()); + + QPainterPath innerPath; + innerPath.addEllipse(0, 0, this->width(), this->width()); + + QPainter painter(this); + painter.setRenderHint(QPainter:: Antialiasing, true); //设置渲染,启动反锯齿 + painter.setPen(Qt::NoPen); + + painter.setBrush(pal.color(QPalette::Base)); + painter.drawPath(cPath); + + painter.fillPath(innerPath, pal.color(QPalette::Text)); +} + +void UkuiMediaButton::mousePressEvent(QMouseEvent *event) +{ + if (m_isActivated) { + m_backgroundColor = qApp->palette().highlight().color(); + } else { + m_backgroundColor = qApp->palette().brightText().color(); + m_backgroundColor.setAlphaF(0.21); + } + this->update(); + return QWidget::mousePressEvent(event); +} + +void UkuiMediaButton::mouseReleaseEvent(QMouseEvent *event) +{ + if (m_isActivated) { + m_backgroundColor = qApp->palette().highlight().color(); + } else { + m_backgroundColor = qApp->palette().brightText().color(); + m_backgroundColor.setAlphaF(0.18); + } + this->update(); + return QWidget::mouseReleaseEvent(event); +} + +void UkuiMediaButton::enterEvent(QEvent *event) +{ + if (m_isActivated) { + m_backgroundColor = qApp->palette().highlight().color(); + } else { + m_backgroundColor = qApp->palette().brightText().color(); + m_backgroundColor.setAlphaF(0.32); + } + this->update(); + return QWidget::enterEvent(event); +} + +void UkuiMediaButton::leaveEvent(QEvent *event) +{ + if (m_isActivated) { + m_backgroundColor = qApp->palette().highlight().color(); + } else { + m_backgroundColor = qApp->palette().brightText().color(); + m_backgroundColor.setAlphaF(0.18); + } + this->update(); + return QWidget::leaveEvent(event); +} + + +static inline qreal mixQreal(qreal a, qreal b, qreal bias) +{ + return a + (b - a) * bias; +} + +QColor mixColor(const QColor &c1, const QColor &c2, qreal bias) +{ + if (bias <= 0.0) { + return c1; + } + if (bias >= 1.0) { + return c2; + } + if (qIsNaN(bias)) { + return c1; + } + + qreal r = mixQreal(c1.redF(), c2.redF(), bias); + qreal g = mixQreal(c1.greenF(), c2.greenF(), bias); + qreal b = mixQreal(c1.blueF(), c2.blueF(), bias); + qreal a = mixQreal(c1.alphaF(), c2.alphaF(), bias); + + return QColor::fromRgbF(r, g, b, a); +} + +void UkuiSettingButton::onPaletteChanged() +{ + m_foregroundColor = FOREGROUND_COLOR_NORMAL; + this->repaint(); +} + +void UkuiSettingButton::setPressColor() +{ + QColor hightlight = this->palette().color(QPalette::Active,QPalette::Highlight); + QColor mix = this->palette().color(QPalette::Active,QPalette::BrightText); + m_foregroundColor = mixColor(hightlight, mix, 0.05); +} + +void UkuiSettingButton::setHoverColor() +{ + QColor hightlight = this->palette().color(QPalette::Active,QPalette::Highlight); + QColor mix = this->palette().color(QPalette::Active,QPalette::BrightText); + m_foregroundColor = mixColor(hightlight, mix, 0.2); +} + +void UkuiSettingButton::setNormalColor() +{ + m_foregroundColor = FOREGROUND_COLOR_NORMAL; +} + +UkuiSettingButton::UkuiSettingButton(QWidget *parent) +{ + connect(qApp, &QApplication::paletteChanged, this, &UkuiSettingButton::onPaletteChanged); + onPaletteChanged(); +} + +UkuiSettingButton::~UkuiSettingButton() +{ + +} + +void UkuiSettingButton::paintEvent(QPaintEvent *event) +{ + QPalette pal = this->palette(); + pal.setColor(QPalette::WindowText, m_foregroundColor); + this->setPalette(pal); + return QLabel::paintEvent(event); +} + +void UkuiSettingButton::enterEvent(QEvent *event) +{ + setHoverColor(); + this->update(); +} + +void UkuiSettingButton::leaveEvent(QEvent *event) +{ + setNormalColor(); + this->update(); +} + +void UkuiSettingButton::mousePressEvent(QMouseEvent *event) +{ + setPressColor(); + this->update(); + return QLabel::mousePressEvent(event); +} + +void UkuiSettingButton::mouseReleaseEvent(QMouseEvent *event) +{ + setHoverColor(); + this->update(); + Q_EMIT clicked(); + return QLabel::mouseReleaseEvent(event); +} + + +UkmediaVolumeSlider::UkmediaVolumeSlider(QWidget *parent,bool needTip) +{ + Q_UNUSED(parent); + if (needTip) { + state = needTip; + m_pTiplabel = new UkuiMediaSliderTipLabel(); + m_pTiplabel->setWindowFlags(Qt::ToolTip); + // qApp->installEventFilter(new AppEventFilter(this)); + m_pTiplabel->setFixedSize(52,30); + m_pTiplabel->setAlignment(Qt::AlignHCenter | Qt::AlignVCenter); + } + this->setFixedSize(284,20); +} + +void UkmediaVolumeSlider::mousePressEvent(QMouseEvent *ev) +{ + + if (state) { + m_pTiplabel->show(); + } + //注意应先调用父类的鼠标点击处理事件,这样可以不影响拖动的情况 + //获取鼠标的位置,这里并不能直接从ev中取值(因为如果是拖动的话,鼠标开始点击的位置没有意义了) + int value = 0; + int currentX = ev->pos().x(); + double per = currentX * 1.0 / this->width(); + if ((this->maximum() - this->minimum()) >= 50) { //减小鼠标点击像素的影响 + value = qRound(per*(this->maximum() - this->minimum())) + this->minimum(); + if (value <= (this->maximum() / 2 - this->maximum() / 10 + this->minimum() / 10)) { + value = qRound(per*(this->maximum() - this->minimum() - 1)) + this->minimum(); + } else if (value > (this->maximum() / 2 + this->maximum() / 10 + this->minimum() / 10)) { + value = qRound(per*(this->maximum() - this->minimum() + 1)) + this->minimum(); + } else { + value = qRound(per*(this->maximum() - this->minimum())) + this->minimum(); + } + } else { + value = qRound(per*(this->maximum() - this->minimum())) + this->minimum(); + } + if(value != this->value()) { + mousePress = true; + Q_EMIT silderPressSignal(); + } + this->setValue(value); + QSlider::mousePressEvent(ev); + //向父窗口发送自定义事件event type,这样就可以在父窗口中捕获这个事件进行处理 + QEvent evEvent(static_cast(QEvent::User + 1)); + QCoreApplication::sendEvent(parentWidget(), &evEvent); +} + +void UkmediaVolumeSlider::mouseReleaseEvent(QMouseEvent *e) +{ + if(mousePress){ + Q_EMIT silderReleaseSignal(); + } + mousePress = false; + QSlider::mouseReleaseEvent(e); + +} + +void UkmediaVolumeSlider::initStyleOption(QStyleOptionSlider *option) +{ + QSlider::initStyleOption(option); +} + +void UkmediaVolumeSlider::leaveEvent(QEvent *e) +{ + if (state) { + m_pTiplabel->hide(); + } +} + +void UkmediaVolumeSlider::enterEvent(QEvent *e) +{ + if (state) { + m_pTiplabel->show(); + } +} + +void UkmediaVolumeSlider::paintEvent(QPaintEvent *e) +{ + QRect rect; + QStyleOptionSlider m_option; + QSlider::paintEvent(e); + if (state) { + + this->initStyleOption(&m_option); + rect = this->style()->subControlRect(QStyle::CC_Slider, &m_option,QStyle::SC_SliderHandle,this); + QPoint gPos = this->mapToGlobal(rect.topLeft()); + QString percent; + percent = QString::number(this->value()); + percent.append("%"); + m_pTiplabel->setText(percent); + m_pTiplabel->move(gPos.x()-(m_pTiplabel->width()/2)+9,gPos.y()-m_pTiplabel->height()-1); + } + + +} + +UkmediaVolumeSlider::~UkmediaVolumeSlider() +{ +// delete m_pTiplabel; +} + +void UkuiButtonDrawSvg::init(QImage img, QColor color) +{ + themeIcon.image = img; + themeIcon.color = color; +} + +void UkuiButtonDrawSvg::paintEvent(QPaintEvent *event) +{ + QStyleOptionComplex opt; + opt.init(this); + QPainter p(this); + + QColor color; + switch (buttonState) { + case PUSH_BUTTON_NORMAL: + color = QColor(0x25,0x25,0x25,0xFF); + break; + case PUSH_BUTTON_CLICK: + color = QColor(0x37,0x90,0xFA,0xFF); + break; + case PUSH_BUTTON_PRESS: + color = QColor(0x24,0x6D,0xD4,0xFF); + break; + default: + break; + } + + p.setBrush(QBrush(color)); + p.setPen(Qt::NoPen); + QPainterPath path; + opt.rect.adjust(0,0,0,0); + path.addRoundedRect(opt.rect,18,18); + p.setRenderHint(QPainter::Antialiasing); // 反锯齿; + p.drawRoundedRect(opt.rect,18,18); + setProperty("blurRegion",QRegion(path.toFillPolygon().toPolygon())); + style()->drawComplexControl(QStyle::CC_ToolButton,&opt,&p,this); + +// style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this); +// QStyleOption opt; +// opt.init(this); +// QPainter p(this); +// p.setBrush(QBrush(QColor(0x13,0x13,0x14,0x00))); +// p.setPen(Qt::NoPen); +// QPainterPath path; +// opt.rect.adjust(0,0,0,0); +// path.addRoundedRect(opt.rect,18,18); +// p.setRenderHint(QPainter::Antialiasing); // 反锯齿; +// p.drawRoundedRect(opt.rect,18,18); +// setProperty("blurRegion",QRegion(path.toFillPolygon().toPolygon())); +// style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this); +} + +QRect UkuiButtonDrawSvg::IconGeometry() +{ + QRect res = QRect(QPoint(0,0),QSize(24,24)); + res.moveCenter(QRect(0,0,width(),height()).center()); + return res; +} + +void UkuiButtonDrawSvg::draw(QPaintEvent* e) +{ + Q_UNUSED(e); + QPainter painter(this); + QRect iconRect = IconGeometry(); + if (themeIcon.image.size() != iconRect.size()) + { + themeIcon.image = themeIcon.image.scaled(iconRect.size(), Qt::KeepAspectRatio, Qt::SmoothTransformation); + QRect r = themeIcon.image.rect(); + r.moveCenter(iconRect.center()); + iconRect = r; + } + + this->setProperty("fillIconSymbolicColor", true); + filledSymbolicColoredPixmap(themeIcon.image,themeIcon.color); + painter.drawImage(iconRect, themeIcon.image); +} + +bool UkuiButtonDrawSvg::event(QEvent *event) +{ + switch (event->type()) + { + case QEvent::Paint: + draw(static_cast(event)); + break; + + case QEvent::Move: + case QEvent::Resize: + { + QRect rect = IconGeometry(); + } + break; + + case QEvent::MouseButtonPress: + case QEvent::MouseButtonRelease: + case QEvent::MouseButtonDblClick: + event->accept(); + break; + + default: + break; + } + + return QPushButton::event(event); +} + + +UkuiButtonDrawSvg::UkuiButtonDrawSvg(QWidget *parent) +{ + Q_UNUSED(parent); +} +UkuiButtonDrawSvg::~UkuiButtonDrawSvg() +{ + +} + +QPixmap UkuiButtonDrawSvg::filledSymbolicColoredPixmap(QImage &img, QColor &baseColor) +{ + + for (int x = 0; x < img.width(); x++) { + for (int y = 0; y < img.height(); y++) { + auto color = img.pixelColor(x, y); + if (color.alpha() > 0) { + int hue = color.hue(); + if (!qAbs(hue - symbolic_color.hue()) < 10) { + color.setRed(baseColor.red()); + color.setGreen(baseColor.green()); + color.setBlue(baseColor.blue()); + img.setPixelColor(x, y, color); + } + } + } + } + + return QPixmap::fromImage(img); +} + +FixLabel::FixLabel(QWidget *parent): + QLabel(parent) +{ + +} + +FixLabel::FixLabel(QString text , QWidget *parent): + QLabel(parent) +{ + this->setText(text); +} + +FixLabel::~FixLabel() +{ + +} + +void FixLabel::paintEvent(QPaintEvent *event) +{ + QFontMetrics fontMetrics(this->font()); + int fontSize = fontMetrics.width(fullText); + if (fontSize > this->width()) { + this->setText(fontMetrics.elidedText(fullText, Qt::ElideRight, this->width()), false); +// this->setToolTip(mStr); + } else { + this->setText(fullText, false); + this->setToolTip(""); + } + QLabel::paintEvent(event); +} + +void FixLabel::setText(const QString & text, bool saveTextFlag) +{ + if (saveTextFlag) + fullText = text; + QLabel::setText(text); +} + diff --git a/ukui-volume-control-applet-qt/ukmedia_custom_class.h b/ukui-volume-control-applet-qt/ukmedia_custom_class.h new file mode 100644 index 0000000..9848385 --- /dev/null +++ b/ukui-volume-control-applet-qt/ukmedia_custom_class.h @@ -0,0 +1,314 @@ +/* + * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * + * 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, 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 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define MIDDLE_COLOR 178 +#define BACKGROUND_COLOR QColor(0,0,0,0) + + + +class UkmediaTrayIcon : public QSystemTrayIcon +{ + Q_OBJECT +public: + UkmediaTrayIcon(QWidget *parent = nullptr); + ~UkmediaTrayIcon(); + +Q_SIGNALS: + void wheelRollEventSignal(bool); + +protected: + bool event(QEvent *e) ; +}; + +class MyTimer : public QObject +{ + Q_OBJECT + +public: + MyTimer(QObject* parent = NULL); + ~MyTimer(); + void handleTimeout(); //超时处理函数 + virtual void timerEvent( QTimerEvent *event); +private: + int m_nTimerID; +Q_SIGNALS: + void timeOut(); +}; + +typedef struct UkuiThemeIcon +{ + QImage image; + QColor color; +}UkuiThemeIcon; +enum DisplayerMode{ + MINI_MODE, + ADVANCED_MODE +}; +enum PushButtonState{ + PUSH_BUTTON_NORMAL, + PUSH_BUTTON_CLICK, + PUSH_BUTTON_PRESS +}; +static QColor symbolic_color = Qt::gray; + +class UkuiMediaSliderTipLabel:public QLabel +{ + public: + UkuiMediaSliderTipLabel(); + ~UkuiMediaSliderTipLabel(); +protected: + void paintEvent(QPaintEvent*); +}; + +class UkuiButtonDrawSvg:public QPushButton +{ + Q_OBJECT +public: + UkuiButtonDrawSvg(QWidget *parent = nullptr); + ~UkuiButtonDrawSvg(); + QPixmap filledSymbolicColoredPixmap(QImage &source, QColor &baseColor); + QRect IconGeometry(); + void draw(QPaintEvent* e); + void init(QImage image ,QColor color); + friend class DeviceSwitchWidget; + friend class UkmediaMainWidget; + friend class UkmediaOsdDisplayWidget; + friend class UkmediaSystemVolumeWidget; + +protected: + void paintEvent(QPaintEvent *event); + bool event(QEvent *e); +private: + int buttonState = PUSH_BUTTON_NORMAL; + UkuiThemeIcon themeIcon; +}; + +class UkuiApplicationWidget:public QWidget +{ + Q_OBJECT +public: + UkuiApplicationWidget(QWidget *parent = nullptr); + ~UkuiApplicationWidget(); +protected: + void paintEvent(QPaintEvent*); +}; + +class UkuiMediaMuteButton:public QPushButton +{ + Q_OBJECT +public: + UkuiMediaMuteButton(QWidget *parent = nullptr); + ~UkuiMediaMuteButton(); + friend class UkmediaMiniMasterVolumeWidget; + friend class UkmediaMainWidget; + friend class UkmediaSystemVolumeWidget; + friend class ApplicationVolumeWidget; + void setButtonIcon(const QIcon &icon); + void setActive(const bool &isActive); + void setDefaultPixmap(); + enum PixmapColor { + WHITE = 0, + BLACK, + GRAY, + BLUE, + }; + const QPixmap loadSvg(const QPixmap &source, const PixmapColor &color); + +protected: + void mousePressEvent(QMouseEvent *e)override; + void mouseReleaseEvent(QMouseEvent *e)override; + void paintEvent(QPaintEvent *event); + void enterEvent(QEvent *e); + void leaveEvent(QEvent *e); + +private: + bool m_isActivated = false; + + QColor m_backgroundColor; + QLabel * m_iconLabel = nullptr; + QPixmap m_pixmap; + void refreshButtonIcon(); + int buttonState = PUSH_BUTTON_NORMAL; + +private Q_SLOTS: + void onPaletteChanged(); +}; + +class UkuiMediaButton:public QPushButton +{ + Q_OBJECT +public: + UkuiMediaButton(QWidget *parent = nullptr); + ~UkuiMediaButton(); + friend class UkmediaMiniMasterVolumeWidget; + friend class UkmediaMainWidget; + friend class UkmediaSystemVolumeWidget; + friend class ApplicationVolumeWidget; + void setButtonIcon(const QIcon &icon); + void setDefaultPixmap(); + void setActive(const bool &isActive); + enum PixmapColor { + WHITE = 0, + BLACK, + GRAY, + BLUE, + }; + const QPixmap loadSvg(const QPixmap &source, const PixmapColor &color); + +protected: + void paintEvent(QPaintEvent *event); + void mousePressEvent(QMouseEvent *event)override; + void mouseReleaseEvent(QMouseEvent *event)override; + void enterEvent(QEvent *event); + void leaveEvent(QEvent *event); +private: + + int buttonState = PUSH_BUTTON_NORMAL; + + bool m_isActivated = false; + QLabel * m_iconLabel = nullptr; + QColor m_backgroundColor; + QPixmap m_pixmap; + + void refreshButtonIcon(); + +private Q_SLOTS: + void onPaletteChanged(); +}; + + +class UkuiSettingButton:public QLabel +{ + Q_OBJECT +public: + UkuiSettingButton(QWidget *parent = nullptr); + ~UkuiSettingButton(); + friend class UkmediaMiniMasterVolumeWidget; + friend class UkmediaMainWidget; + friend class UkmediaSystemVolumeWidget; + friend class ApplicationVolumeWidget; + +protected: + + void paintEvent(QPaintEvent *event); + void enterEvent(QEvent *event); + void leaveEvent(QEvent *event); + void mousePressEvent(QMouseEvent *event); + void mouseReleaseEvent(QMouseEvent *event); + +private: + + QColor m_foregroundColor; + + void setPressColor(); + void setHoverColor(); + void setNormalColor(); + +Q_SIGNALS: + void clicked(void); + +private Q_SLOTS: + void onPaletteChanged(); +}; + + + +class UkmediaVolumeSlider : public QSlider +{ + Q_OBJECT +public: +// UkmediaVolumeSlider(QWidget *parent = nullptr); + UkmediaVolumeSlider(QWidget *parent = nullptr,bool needTip = false); + void initStyleOption(QStyleOptionSlider *option); + ~UkmediaVolumeSlider(); +Q_SIGNALS: + void silderPressSignal(); + void silderReleaseSignal(); +private: + UkuiMediaSliderTipLabel *m_pTiplabel; + bool state = false; + bool mousePress = false; + + +protected: + void mousePressEvent(QMouseEvent *ev); + void mouseReleaseEvent(QMouseEvent *e); +// void mouseMoveEvent(QMouseEvent *e) +// { +// int value = 0; +// int currentX = e->pos().x(); +// double per = currentX * 1.0 / this->width(); +// if ((this->maximum() - this->minimum()) >= 50) { //减小鼠标点击像素的影响 +// value = qRound(per*(this->maximum() - this->minimum())) + this->minimum(); +// if (value <= (this->maximum() / 2 - this->maximum() / 10 + this->minimum() / 10)) { +// value = qRound(per*(this->maximum() - this->minimum() - 1)) + this->minimum(); +// } else if (value > (this->maximum() / 2 + this->maximum() / 10 + this->minimum() / 10)) { +// value = qRound(per*(this->maximum() - this->minimum() + 1)) + this->minimum(); +// } else { +// value = qRound(per*(this->maximum() - this->minimum())) + this->minimum(); +// } +// } else { +// value = qRound(per*(this->maximum() - this->minimum())) + this->minimum(); +// } +// this->setValue(value); +// QSlider::mousePressEvent(e); +//// setCursor(QCursor(Qt::OpenHandCursor)); +//// m_displayLabel->move((this->width()-m_displayLabel->width())*this->value()/(this->maximum()-this->minimum()),3); +//// QSlider::mouseMoveEvent(e); +// } + void leaveEvent(QEvent *e); + + void enterEvent(QEvent *e); + void paintEvent(QPaintEvent *e); +}; + +//文本长自动省略并添加悬浮 +class FixLabel : public QLabel +{ + + Q_OBJECT +public: + explicit FixLabel(QWidget *parent = nullptr); + explicit FixLabel(QString text , QWidget *parent = nullptr); + ~FixLabel(); + void setText(const QString &text, bool saveTextFlag = true); + QString fullText; +private: + void paintEvent(QPaintEvent *event); + +private: +}; + +#endif diff --git a/ukui-volume-control-applet-qt/ukmedia_custom_sound.cpp b/ukui-volume-control-applet-qt/ukmedia_custom_sound.cpp new file mode 100644 index 0000000..433aa3a --- /dev/null +++ b/ukui-volume-control-applet-qt/ukmedia_custom_sound.cpp @@ -0,0 +1,211 @@ +/* + * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * + * 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, 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 close(); +} + +bool CustomSound::createAudioFile() +{ + //打开或创建文件 + QFile *file; + QString audioPath = QDir::homePath() + "/.config/customAudio.xml"; + if(!QFile::exists(audioPath)){ + file = new QFile(audioPath); + if(!file->open(QFile::WriteOnly)) + return false; + //写入xml头部 + QDomDocument doc; + QDomProcessingInstruction instruction; //添加处理命令 + + instruction = doc.createProcessingInstruction("xml","version=\"1.0\" encoding=\"UTF-8\""); + doc.appendChild(instruction); + //添加根节点 + QDomElement root = doc.createElement("root"); + doc.appendChild(root); + //添加子节点 + QDomElement node = doc.createElement("firstRun"); + QDomElement init = doc.createElement("init"); //创建子元素 + QDomText text = doc.createTextNode("true"); + init.appendChild(text); + node.appendChild(init); + root.appendChild(node); + + //输出到文件 + QTextStream out_stream(file); + doc.save(out_stream,4); //缩进4格 + file->close(); + return true; + } + return true; +} + +//判断某个节点是否存在 +bool CustomSound::isExist(QString nodeName) +{ + if (nodeName == "") + return false; + //打开文件 + QString errorStr; + int errorLine; + int errorCol; + + QString audioPath = QDir::homePath() + "/.config/customAudio.xml"; + QFile file(audioPath); + + if(!file.exists()) + createAudioFile(); + + if(file.open(QFile::ReadOnly)){ + QDomDocument doc; + if(doc.setContent(&file,true,&errorStr,&errorLine,&errorCol)){ + qDebug() << "isExist" <='0' && nodeName.at(0)<='9'){ + nodeName = "Audio_"+nodeName; + } + while(!ele.isNull()) { + if(ele.nodeName() == nodeName) + return true; + ele = ele.nextSiblingElement(); + } + } + else + { + QFile::remove(audioPath); + qDebug() << errorStr << "line: " << errorLine << "col: " << errorCol; + } + + file.close(); + } + + return false; +} + +//添加第一个子节点及其子元素 +int CustomSound::addXmlNode(QString nodeName, bool initState) +{ + //打开文件 + QString audioPath = QDir::homePath() + "/.config/customAudio.xml"; + QFile file(audioPath); + QDomDocument doc;//增加一个一级子节点以及元素 + if(file.open(QFile::ReadOnly)){ + if(doc.setContent(&file)){ + file.close(); + } + else { + file.close(); + return -1; + } + } + else + return -1; + + //添加新节点 + nodeName.remove(" "); + nodeName.remove("/"); + nodeName.remove("("); + nodeName.remove(")"); + nodeName.remove("["); + nodeName.remove("]"); + if(nodeName.at(0)>='0' && nodeName.at(0)<='9'){ + nodeName = "Audio_"+nodeName; + } + QDomElement root=doc.documentElement(); + QDomElement node=doc.createElement(nodeName); + + QDomElement init=doc.createElement("init"); + QDomText text; + if(initState) + text = doc.createTextNode("true"); + else + text = doc.createTextNode("false"); + init.appendChild(text); + node.appendChild(init); + root.appendChild(node); + qDebug() << "addXmlNode" << nodeName ; + //修改first-run状态 + QDomElement ele = root.firstChildElement(); + while(!ele.isNull()) { + if(ele.nodeName() == "firstRun"){ + QString value = ele.firstChildElement().firstChild().nodeValue(); + if(value == "true") + ele.firstChildElement().firstChild().setNodeValue("false"); + } + ele = ele.nextSiblingElement(); + } + + if(file.open(QFile::WriteOnly|QFile::Truncate)) { + //输出到文件 + QTextStream out_stream(&file); + doc.save(out_stream,4); //缩进4格 + file.close(); + } + + return 0; +} + +bool CustomSound::isFirstRun() +{ + + QString audioPath = QDir::homePath() + "/.config/customAudio.xml"; + QFile file(audioPath); + if(!file.exists()){ + createAudioFile(); + } + + if(file.open(QFile::ReadOnly)){ + QDomDocument doc; + if(doc.setContent(&file)){ + file.close(); + QDomElement root = doc.documentElement(); + QDomElement ele = root.firstChildElement(); + + qDebug()<<"===================ele.nodeName() :"< +#include +#include +#include +#include + +class CustomSound +{ +public: + CustomSound(); + ~CustomSound(); + bool createAudioFile(); + bool isExist(QString nodeName); + int addXmlNode(QString nodeNane, bool initState); + bool isFirstRun(); + + +public: + QFile *file; +private: + QDomDocument *doc; + QString audioPath; +}; + +#endif // CUSTOMSOUND_H diff --git a/ukui-volume-control-applet-qt/ukmedia_main_widget.cpp b/ukui-volume-control-applet-qt/ukmedia_main_widget.cpp new file mode 100644 index 0000000..09e598a --- /dev/null +++ b/ukui-volume-control-applet-qt/ukmedia_main_widget.cpp @@ -0,0 +1,3165 @@ +/* + * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * + * 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, 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 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +#define MAINWINDOW_WIDTH 420 +#define MAINWINDOW_HEIGHT 476 +#define KEYBINDINGS_CUSTOM_SCHEMA "org.ukui.media.sound" +#define KEYBINDINGS_CUSTOM_DIR "/org/ukui/sound/keybindings/" +#define KEY_SOUNDS_SCHEMA "org.ukui.sound" +#define EVENT_SOUNDS_KEY "event-sounds" +#define MAX_CUSTOM_SHORTCUTS 1000 + +#define FILENAME_KEY "filename" +#define NAME_KEY "name" + +double transparency = 0.8; +typedef enum { + DEVICE_VOLUME_BUTTON, + APP_VOLUME_BUTTON +}ButtonType; + +ButtonType btnType = DEVICE_VOLUME_BUTTON; +guint appnum = 0; +int app_count = 0; +extern bool isCheckBluetoothInput; +extern DisplayerMode displayMode ; +QString application_name; + +UkmediaMainWidget::UkmediaMainWidget(QMainWindow *parent) : QMainWindow(parent) +{ + //初始化系统托盘 + m_pVolumeControl = new UkmediaVolumeControl(); + + //初始化gsetting + initGsettings(); + //初始化界面 + initWidget(); + //初始化托盘图标 + initSystemTrayIcon(); + //Dbus注册 + UkmediaDbusRegister(); + initAlertSound(); + //处理槽函数 + dealSlot(); +} + +bool UkmediaMainWidget::eventFilter(QObject *obj, QEvent *event) +{ + if (event->type() == QEvent::ActivationChange) { + if(QApplication::activeWindow() != this) { + this->hide(); + } + } + return QWidget::eventFilter(obj,event); +} + +void UkmediaMainWidget::paintEvent(QPaintEvent *event) +{ + +} + +void UkmediaMainWidget::initSystemTrayIcon() +{ + soundSystemTrayIcon = new UkmediaTrayIcon(this); + ca_context_create(&caContext); + //为系统托盘图标添加菜单静音和声音首选项 + soundSystemTrayIcon->setToolTip(tr("Output volume control")); +#if (QT_VERSION <= QT_VERSION_CHECK(5,6,1)) + m_pSoundPreferenceAction = new QAction(tr("Sound preference(S)"),this); +#elif (QT_VERSION > QT_VERSION_CHECK(5,6,1)) + m_pSoundPreferenceAction = new QAction(tr("Sound preference(S)")); +#endif + QString settingsIconStr = "document-page-setup-symbolic"; + QIcon settingsIcon = QIcon::fromTheme(settingsIconStr); + m_pSoundPreferenceAction->setIcon(settingsIcon); + soundSystemTrayIcon->setVisible(true); + int nOutputValue = paVolumeToValue(m_pVolumeControl->getSinkVolume()); + + bool outputStatus = m_pVolumeControl->getSinkMute(); + outputVolumeDarkThemeImage(nOutputValue,outputStatus); + + //初始化右键菜单 + systemTrayMenuInit(); +} + +/* + * 初始化右键菜单 + */ +void UkmediaMainWidget::systemTrayMenuInit() +{ + menu = new QMenu(); + menu->setAttribute(Qt::WA_NoMouseReplay); + soundSystemTrayIcon->setContextMenu(menu); + //设置右键菜单 + menu->addAction(m_pSoundPreferenceAction); +} + +/* + * 初始化界面 + */ +void UkmediaMainWidget::initWidget() +{ + QWidget::installEventFilter(this);//为这个窗口安装过滤器 + this->setFixedSize(MAINWINDOW_WIDTH,MAINWINDOW_HEIGHT); + this->setAttribute(Qt::WA_TranslucentBackground,true); //透明 + this->setMouseTracking(true); + this->setFocusPolicy(Qt::NoFocus); + + QPainterPath path; + auto rect = this->rect(); + path.addRoundedRect(rect, 12, 12); + KWindowEffects::enableBlurBehind(this->winId(), true, QRegion(path.toFillPolygon().toPolygon())); // 背景模糊 + + osdWidget = new UkmediaOsdDisplayWidget(); + headsetWidget = new UkuiMediaSetHeadsetWidget; // osd弹窗 + + m_pTabWidget = new QTabWidget(this); + this->setCentralWidget(m_pTabWidget); + m_pTabWidget->tabBar()->setFixedWidth(this->width()+1); + systemWidget = new UkmediaSystemVolumeWidget(m_pTabWidget); + appWidget = new ApplicationVolumeWidget(m_pTabWidget); + myLine(volumeLine,volumeSettingLine); // 界面分隔线 + + + m_pTabWidget->addTab(systemWidget, tr("")); + m_pTabWidget->addTab(appWidget,tr("")); + m_tabBarLayout = new QHBoxLayout(this); + m_tabBarLayout->setContentsMargins(0,0,0,0); + systemWidgetLabel = new QLabel(tr("System Volume")); + systemWidgetLabel->setAlignment(Qt::AlignCenter); + appWidgetLabel = new QLabel(tr("App Volume")); + appWidgetLabel->setAlignment(Qt::AlignCenter); + m_tabBarLayout->addWidget(systemWidgetLabel); + m_tabBarLayout->addWidget(appWidgetLabel); + m_pTabWidget->tabBar()->setLayout(m_tabBarLayout); + m_pTabWidget->tabBar()->setProperty("useTabbarSeparateLine",false); // 去掉标签页中间的分隔线 + m_pTabWidget->setAttribute(Qt::WA_TranslucentBackground,true); // 背景透明 解决切换黑屏问题 + paintWithTrans(); +} + +void UkmediaMainWidget::onTransChanged() +{ + m_pTransparency = m_pTransGsettings->get("transparency").toDouble() + 0.15; + m_pTransparency = (m_pTransparency > 1) ? 1 : m_pTransparency; + paintWithTrans(); +} + +void UkmediaMainWidget::paintWithTrans() +{ + QPalette pal = m_pTabWidget->palette(); + QColor color = qApp->palette().base().color(); + color.setAlphaF(m_pTransparency); + pal.setColor(QPalette::Base, color); + m_pTabWidget->setPalette(pal); + + QPalette tabPal = m_pTabWidget->tabBar()->palette(); + tabPal.setColor(QPalette::Base, color); + + QColor inactiveColor = qApp->palette().window().color(); + inactiveColor.setAlphaF(0.86 *m_pTransparency); + tabPal.setColor(QPalette::Window, inactiveColor); + + m_pTabWidget->tabBar()->setPalette(tabPal); +} + +/* + * 添加分隔线 + */ +void UkmediaMainWidget::myLine(QFrame *volumeLine,QFrame *volumeSettingLine) +{ + volumeLine = new QFrame(this); + volumeLine->setFrameShape(QFrame::NoFrame); + volumeLine->setFrameStyle(QFrame::HLine); + volumeLine->setFixedSize(420,1); + volumeLine->setParent(this); + QPalette palette = volumeLine->palette(); + QColor color = QColor(239,239,239); + color.setAlphaF(0.1); + palette.setColor(QPalette::WindowText, color); + volumeLine->setPalette(palette); + + volumeSettingLine = new QFrame(this); + volumeSettingLine->setFrameShape(QFrame::NoFrame); + volumeSettingLine->setFrameStyle(QFrame::HLine); + volumeSettingLine->setFixedSize(420,1); + volumeSettingLine->setParent(this); + palette = volumeSettingLine->palette(); + palette.setColor(QPalette::WindowText, color); + volumeSettingLine->setPalette(palette); + + volumeLine->move(0,140); + volumeSettingLine->move(0,424); +} + +/* + * 初始化静音灯 + */ +void UkmediaMainWidget::initVolumeLed() +{ + bool outputStatus = m_pVolumeControl->getSinkMute();//获取输出设备的静音状态 + if(outputStatus) { + QDBusMessage message =QDBusMessage::createSignal("/","org.ukui.media","systemOutputVolumeIsMute"); + message << "mute"; + QDBusConnection::systemBus().send(message); + } + else { + QDBusMessage message =QDBusMessage::createSignal("/","org.ukui.media","systemOutputVolumeIsMute"); + message << "no"; + QDBusConnection::systemBus().send(message); + } + themeChangeIcons(); +} + + +/* + * 注册dbus + */ +void UkmediaMainWidget::UkmediaDbusRegister() +{ + QDBusConnection::sessionBus().unregisterService("org.ukui.media"); + QDBusConnection::sessionBus().registerService("org.ukui.media"); + QDBusConnection::sessionBus().registerObject("/", this,QDBusConnection :: ExportAllSlots | QDBusConnection :: ExportAllSignals); +} + + +void UkmediaMainWidget::initVolumeSlider() +{ + int sinkVolume = paVolumeToValue(m_pVolumeControl->getSinkVolume()); + QString percent; + if(isFirstMuteLed) + { + initVolumeLed(); + isFirstMuteLed = false; + } + sinkVolume = initDefaultVolume(sinkVolume); + + percent = QString::number(sinkVolume); + appWidget->systemVolumeDisplayLabel->setText(percent+"%"); + systemWidget->m_pSystemVolumeSliderLabel->setText(percent+"%"); + appWidget->systemVolumeSlider->blockSignals(true); + systemWidget->m_pSystemVolumeSlider->blockSignals(true); + systemWidget->m_pSystemVolumeSlider->setValue(sinkVolume); + appWidget->systemVolumeSlider->setValue(sinkVolume); + systemWidget->m_pSystemVolumeSlider->blockSignals(false); + appWidget->systemVolumeSlider->blockSignals(false); + + initOutputListWidgetItem(); + initInputListWidgetItem(); + themeChangeIcons(); + //设置输入输出设备名 +} + +/* + * 初始化默认音量 + */ +int UkmediaMainWidget::initDefaultVolume(int sinkVolume) +{ + qDebug() << "initDefaultVolume----------->" << m_pVolumeControl->sinkPortName << m_pVolumeControl->sourcePortName; + QString temp = ""; + QString outputCardName = findCardName(m_pVolumeControl->defaultOutputCard,m_pVolumeControl->cardMap); + if (m_pVolumeControl->sinkPortName.contains("histen-algo",Qt::CaseInsensitive)) { + m_pVolumeControl->sinkPortName = m_pVolumeControl->findSinkActivePortName(PANGUW_SINK); + temp = "histen-algo"; + } + + if(!m_pVolumeControl->customSoundFile->isExist(stringRemoveUnrecignizedChar(m_pVolumeControl->sinkPortName)) && !strcmp(m_pVolumeControl->sinkPortName.toLatin1().data(),"") == 0 ) { + + if (m_pVolumeControl->sinkPortName.contains("headphone",Qt::CaseInsensitive)) { + if(outputCardName.contains("bluez",Qt::CaseSensitive)) + sinkVolume = OUTPUT_VOLUME; + else + sinkVolume = HEADPHONE_VOLUME; + } + else if (m_pVolumeControl->sinkPortName.contains("hdmi",Qt::CaseInsensitive)) { + sinkVolume = HDMI_VOLUME; + } + else if (m_pVolumeControl->sinkPortName.contains("speaker",Qt::CaseInsensitive)){ + sinkVolume = OUTPUT_VOLUME; + } + else { + sinkVolume = HEADPHONE_VOLUME; + } + m_pVolumeControl->sinkVolume = valueToPaVolume(sinkVolume); + m_pVolumeControl->setSinkVolume(m_pVolumeControl->sinkIndex,valueToPaVolume(sinkVolume)); + m_pVolumeControl->customSoundFile->addXmlNode(m_pVolumeControl->sinkPortName,false); + if (temp != "") + m_pVolumeControl->sinkPortName = temp; + qDebug() << "initSystemVolume" << m_pVolumeControl->sinkPortName << sinkVolume << m_pVolumeControl->sinkVolume; + } + else if(m_pVolumeControl->sinkPortName == ""&& !m_pVolumeControl->customSoundFile->isExist(stringRemoveUnrecignizedChar(m_pVolumeControl->defaultSinkName))){ + m_pVolumeControl->customSoundFile->addXmlNode(m_pVolumeControl->defaultSinkName,false); + sinkVolume = OUTPUT_VOLUME; + m_pVolumeControl->setSinkVolume(m_pVolumeControl->sinkIndex,valueToPaVolume(sinkVolume)); + qDebug()<< "初始化音量sinkPortName不存在的情况" << sinkVolume; + } + if(!m_pVolumeControl->customSoundFile->isExist(stringRemoveUnrecignizedChar(m_pVolumeControl->sourcePortName)) && !strcmp(m_pVolumeControl->sourcePortName.toLatin1().data(),"") == 0 ) + { + m_pVolumeControl->customSoundFile->addXmlNode(m_pVolumeControl->sourcePortName,false); + m_pVolumeControl->setSourceVolume(m_pVolumeControl->sourceIndex,valueToPaVolume(MIC_VOLUME)); + qDebug() << "初始化输入音量为100" ; + } + else if (m_pVolumeControl->sourcePortName == "" && !m_pVolumeControl->customSoundFile->isExist(stringRemoveUnrecignizedChar(m_pVolumeControl->defaultSourceName))){ + m_pVolumeControl->customSoundFile->addXmlNode(m_pVolumeControl->defaultSourceName,false); + m_pVolumeControl->setSourceVolume(m_pVolumeControl->sourceIndex,valueToPaVolume(MIC_VOLUME)); + qDebug()<< "初始化音量SourcePortName不存在的情况" <defaultSourceName ; + } + return sinkVolume; +} + + +/* + * 初始化output/input list widget的选项 + */ +void UkmediaMainWidget::initOutputListWidgetItem() +{ + QString outputCardName = findCardName(m_pVolumeControl->defaultOutputCard,m_pVolumeControl->cardMap); + QString outputPortLabel = findOutputPortLabel(m_pVolumeControl->defaultOutputCard,m_pVolumeControl->sinkPortName); + findOutputListWidgetItem(outputCardName,outputPortLabel); + + int vol = m_pVolumeControl->getSinkVolume(); + systemWidget->m_pSystemVolumeSlider->blockSignals(true); + appWidget->systemVolumeSlider->blockSignals(true); + appWidget->systemVolumeSlider->setValue(paVolumeToValue(vol)); + systemWidget->m_pSystemVolumeSlider->setValue(paVolumeToValue(vol)); + systemWidget->m_pSystemVolumeSlider->blockSignals(false); + appWidget->systemVolumeSlider->blockSignals(false); + systemWidget->m_pSystemVolumeSliderLabel->setText(QString::number(paVolumeToValue(vol))+"%"); + appWidget->systemVolumeDisplayLabel->setText(QString::number(paVolumeToValue(vol))+"%"); + + outputListWidgetRow = systemWidget->m_pOutputListWidget->currentRow(); + + qDebug() <<"initOutputListWidgetItem" << m_pVolumeControl->defaultOutputCard << outputCardName + <sinkPortName << outputPortLabel; +} + +void UkmediaMainWidget::initInputListWidgetItem() +{ + QString inputCardName = findCardName(m_pVolumeControl->defaultInputCard,m_pVolumeControl->cardMap); + QString inputPortLabel = findInputPortLabel(m_pVolumeControl->defaultInputCard,m_pVolumeControl->sourcePortName); + findInputListWidgetItem(inputCardName,inputPortLabel); + + qDebug() <<"initInputListWidgetItem" << m_pVolumeControl->defaultInputCard << inputCardName + <sourcePortName << inputPortLabel; +} + +/* + * 滑动条值转换成音量值 + */ +int UkmediaMainWidget::valueToPaVolume(int value) +{ + return value / UKMEDIA_VOLUME_NORMAL * PA_VOLUME_NORMAL; +} + +/* + * 音量值转换成滑动条值 + */ +int UkmediaMainWidget::paVolumeToValue(int value) +{ + return (value / PA_VOLUME_NORMAL * UKMEDIA_VOLUME_NORMAL) + 0.5; +} + +QString UkmediaMainWidget::outputVolumeToIconStr(bool status,int volume) +{ + QString iconStr; + if (status) { + iconStr = iconNameOutputs[0]; + } + else if (volume <= 0 && !shortcutMute) { + iconStr = iconNameOutputs[0]; + } + else if(volume <= 0 && shortcutMute){ + iconStr = iconNameOutputs[0]; + } + else if (volume > 0 && volume <= 33) { + iconStr = iconNameOutputs[1]; + } + else if (volume >33 && volume <= 66) { + iconStr = iconNameOutputs[2]; + } + else { + iconStr = iconNameOutputs[3]; + } + return iconStr; +} + +/* + * 处理槽函数 + */ +void UkmediaMainWidget::dealSlot() +{ + QDBusInterface *iface = new QDBusInterface("org.freedesktop.login1", + "/org/freedesktop/login1", + "org.freedesktop.login1.Manager", + QDBusConnection::systemBus(), + this); + connect(iface, SIGNAL(PrepareForSleep(bool)), this, SLOT(onPrepareForSleep(bool))); + + //根据设备检测发来的信号,显示相应的提示窗 + connect(m_pVolumeControl,SIGNAL(device_changed_signal(QString)),this,SLOT(deviceChangedShowSlot(QString))); + + //声卡包含headsetmic 端口时插入4段式mic需要设置对应的port + QDBusConnection::sessionBus().connect( QString(), "/", "org.ukui.media", "headsetJack", this, SLOT(setHeadsetPort(QString))); + QTimer::singleShot(100, this, SLOT(initVolumeSlider())); + + connect(m_pVolumeControl,&UkmediaVolumeControl::updateMute,this,[=](bool state) { + bool outputStatus = m_pVolumeControl->getSinkMute();//获取输出设备的静音状态 + if(outputStatus) { + QDBusMessage message =QDBusMessage::createSignal("/","org.ukui.media","systemOutputVolumeIsMute"); + message << "mute"; + QDBusConnection::systemBus().send(message); + } + else { + QDBusMessage message =QDBusMessage::createSignal("/","org.ukui.media","systemOutputVolumeIsMute"); + message << "no"; + QDBusConnection::systemBus().send(message); + } + setVolumeSettingMute(state); + themeChangeIcons(); + }); + + connect(m_pVolumeControl,&UkmediaVolumeControl::updateSourceMute,this,[=](bool state) { + bool inputStatus = m_pVolumeControl->getSourceMute();//获取输入设备的静音状态 + if(inputStatus) { + QDBusMessage message =QDBusMessage::createSignal("/","org.ukui.media","systemInputVolumeIsMute"); + message << "mute"; + QDBusConnection::systemBus().send(message); + } + else { + QDBusMessage message =QDBusMessage::createSignal("/","org.ukui.media","systemInputVolumeIsMute"); + message << "no"; + QDBusConnection::systemBus().send(message); + } + themeChangeIcons(); + }); + + connect(m_pVolumeControl,&UkmediaVolumeControl::updateVolume,this,[=](int value){ + + bool outputStatus = m_pVolumeControl->getSinkMute(); + qDebug() << "UpdateSinkVolume" << value << paVolumeToValue(value) << outputStatus; + QString percent; + percent = QString::number(paVolumeToValue(value)); + + //设置调节输入音量的提示音 + const gchar *id = NULL; + const gchar *desc = NULL; + gint retval; + + QList existsPath = listExistsPath(); + QString filenameStr; + for (char * path : existsPath) { + + char * prepath = QString(KEYBINDINGS_CUSTOM_DIR).toLatin1().data(); + char * allpath = strcat(prepath, path); + + const QByteArray ba(KEYBINDINGS_CUSTOM_SCHEMA); + const QByteArray bba(allpath); + if(QGSettings::isSchemaInstalled(ba)) + { + QGSettings * settings = new QGSettings(ba, bba); + filenameStr = settings->get(FILENAME_KEY).toString(); + QString nameStr = settings->get(NAME_KEY).toString(); + if (nameStr == "volume-changed") { + break; + } + } + } + const QByteArray text = filenameStr.toLocal8Bit(); + id = text.data(); + desc = "Volume Changed"; + const gchar *eventId =id; + bool alertStatus = g_settings_get_boolean(m_pSoundSettings, EVENT_SOUNDS_KEY); + if (alertStatus) { + m_pTimer->start(100); + } + appWidget->systemVolumeDisplayLabel->setText(percent+"%"); + systemWidget->m_pSystemVolumeSliderLabel->setText(percent+"%"); + appWidget->systemVolumeSlider->blockSignals(true); + systemWidget->m_pSystemVolumeSlider->blockSignals(true); + systemWidget->m_pSystemVolumeSlider->setValue(paVolumeToValue(value)); + appWidget->systemVolumeSlider->setValue(paVolumeToValue(value)); + systemWidget->m_pSystemVolumeSlider->blockSignals(false); + appWidget->systemVolumeSlider->blockSignals(false); + setVolumeSettingMute(outputStatus); + setVolumeSettingValue(paVolumeToValue(value)); + initOutputListWidgetItem(); + themeChangeIcons(); + }); + + connect(m_pVolumeControl,&UkmediaVolumeControl::updateSourceVolume,this,[=](int value){ + bool inputStatus = m_pVolumeControl->getSourceMute(); + qDebug() << "UpdateSourceVolume:" << value << paVolumeToValue(value) << inputStatus; + initInputListWidgetItem(); + themeChangeIcons(); + }); + + connect(m_pVolumeControl,SIGNAL(addSinkInputSignal(const gchar *,const gchar*,int,int)),this,SLOT(addAppToAppwidget(const gchar*,const gchar *,int,int))); + connect(m_pVolumeControl,SIGNAL(sinkInputVolumeChangedSignal(const gchar *,const gchar*,int)),this,SLOT(sinkInputVolumeChangedSlot(const gchar*,const gchar *,int))); + connect(m_pVolumeControl,SIGNAL(removeSinkInputSignal(const gchar *)),this,SLOT(removeSubAppWidget(const gchar*))); + connect(m_pVolumeControl,SIGNAL(deviceChangedSignal()),this,SLOT(updateListWidgetItemSlot())); + QDBusConnection::sessionBus().connect( QString(), "/", "org.kylin.music", "sinkInputVolumeChanged", this, SLOT(updateAppVolume(QString,int,bool))); + QDBusConnection::sessionBus().connect( QString(), "/", "org.kylin.video", "sinkInputVolumeChanged", this, SLOT(updateAppVolume(QString,int,bool))); + + connect(systemWidget->m_pOutputListWidget,&QListWidget::itemClicked,this,[=](){ + if(outputListWidgetRow != systemWidget->m_pOutputListWidget->currentRow()){ + outputListWidgetCurrentRowChangedSlot(systemWidget->m_pOutputListWidget->currentRow()); + outputListWidgetRow = systemWidget->m_pOutputListWidget->currentRow(); + } + }); + + connect(systemWidget->m_pInputListWidget,SIGNAL(currentRowChanged(int )),this,SLOT(inputListWidgetCurrentRowChangedSlot(int))); + + + connect(systemWidget->m_pSystemVolumeSlider,&UkmediaVolumeSlider::silderPressSignal,this,[=](){ + mousePress = true; + mouseReleaseState = false; + }); + connect(systemWidget->m_pSystemVolumeSlider,&UkmediaVolumeSlider::silderReleaseSignal,this,[=](){ + mouseReleaseState = true; + }); + connect(appWidget->systemVolumeSlider,&UkmediaVolumeSlider::silderPressSignal,this,[=](){ + mousePress = true; + mouseReleaseState = false; + }); + connect(appWidget->systemVolumeSlider,&UkmediaVolumeSlider::silderReleaseSignal,this,[=](){ + mouseReleaseState = true; + }); + + m_pTimer = new QTimer(this); + connect(m_pTimer, SIGNAL(timeout()), this, SLOT(handleTimeout())); + m_pTimer2 = new QTimer(this); + connect(m_pTimer2, &QTimer::timeout, this, [=](){ + if(mouseReleaseState){ + gint retval; + const gchar *desc = "Volume Changed"; + QString filenameStr; + QList existsPath = this->listExistsPath(); + for (char * path : existsPath) { + char * prepath = QString(KEYBINDINGS_CUSTOM_DIR).toLatin1().data(); + char * allpath = strcat(prepath, path); + const QByteArray ba(KEYBINDINGS_CUSTOM_SCHEMA); + const QByteArray bba(allpath); + if(QGSettings::isSchemaInstalled(ba)) + { + QGSettings * settings = new QGSettings(ba, bba); + filenameStr = settings->get(FILENAME_KEY).toString(); + QString nameStr = settings->get(NAME_KEY).toString(); + if (nameStr == "volume-changed") { + break; + } + } + } + const QByteArray text = filenameStr.toLocal8Bit(); + const gchar *id = text.data(); + const gchar *eventId =id; + if(desc){ + bool status = g_settings_get_boolean(m_pSoundSettings, EVENT_SOUNDS_KEY); + if (status) + retval = ca_context_play (this->caContext, 0, + CA_PROP_EVENT_ID, eventId, + CA_PROP_EVENT_DESCRIPTION, desc, NULL); + qDebug() << "ca_context_play" << status << eventId << retval; + } + m_pTimer->stop(); + mousePress = false; + mouseReleaseState = false; + } + else{ + m_pTimer2->start(100); + } + }); + + /* + * 完整模式下,应用音量界面,当滑动条值改变时更改系统音量 + */ + connect(appWidget->systemVolumeSlider,SIGNAL(valueChanged(int)),this,SLOT( advancedSystemSliderChangedSlot(int))); + + connect(systemWidget->m_pSystemVolumeSlider,SIGNAL(valueChanged(int)),this,SLOT(systemVolumeSliderChangedSlot(int))); + + connect(systemWidget->m_pSystemVolumeBtn,SIGNAL(clicked()),this,SLOT(systemVolumeButtonClickedSlot())); + connect(appWidget->systemVolumeBtn,SIGNAL(clicked()),this,SLOT(appWidgetMuteButtonCLickedSlot())); + + /* + * 鼠标中间滚轮键设置音量静音 + */ + connect(this,SIGNAL(mouse_middle_clicked_signal()),this,SLOT(mouseMeddleClickedTraySlot())); + /* + * 当无任何控制音量的界面显示时,鼠标滚轮向上滚动音量托盘图标增加音量 + * 向下滚动减少音量值 + */ + connect(soundSystemTrayIcon,SIGNAL(wheelRollEventSignal(bool)),this,SLOT(trayWheelRollEventSlot(bool))); + + connect(soundSystemTrayIcon,SIGNAL(activated(QSystemTrayIcon::ActivationReason)),\ + this,SLOT(activatedSystemTrayIconSlot(QSystemTrayIcon::ActivationReason))); + connect(m_pSoundPreferenceAction,SIGNAL(triggered()),this,SLOT(jumpControlPanelSlot())); + connect(m_pVolumeControl,SIGNAL(updatePortSignal()),this,SLOT(updateDevicePort())); + + connect(m_pVolumeControl,SIGNAL(checkDeviceSelectionSianal(const pa_card_info *)),this,SLOT(checkAudioDeviceSelectionNeeded(const pa_card_info *))); + + connect(m_pVolumeControl,&UkmediaVolumeControl::removeSinkSignal,[=](){ + qDebug() << "removre sink signal"; + systemWidget->m_pOutputListWidget->blockSignals(true); + }); + connect(appWidget->volumeSettingButton,SIGNAL(clicked()),this,SLOT(jumpControlPanelSlot())); + connect(systemWidget->volumeSettingButton,SIGNAL(clicked()),this,SLOT(jumpControlPanelSlot())); +} + +void UkmediaMainWidget::initGsettings() +{ + m_pInitSystemVolumeSetting = new QGSettings(UKUI_AUDIO_SCHEMA); + //获取声音gsettings值 + m_pSoundSettings = g_settings_new (KEY_SOUNDS_SCHEMA); + + //检测系统主题 + if (QGSettings::isSchemaInstalled(UKUI_THEME_SETTING)){ + m_pThemeSetting = new QGSettings(UKUI_THEME_SETTING); + m_pFontSetting = new QGSettings(UKUI_THEME_SETTING); + QString fontType; + if (m_pThemeSetting->keys().contains("styleName")) { + mThemeName = m_pThemeSetting->get(UKUI_THEME_NAME).toString(); + } + if (m_pFontSetting->keys().contains("systemFont")) { + fontType = m_pFontSetting->get("systemFont").toString(); + } + if (m_pFontSetting->keys().contains("systemFontSize")) { + int font = m_pFontSetting->get("system-font-size").toInt(); + QFont fontSize(fontType,font); +// appWidget->systemVolumeLabel->setFont(fontSize); + } + connect(m_pFontSetting,SIGNAL(changed(const QString &)),this,SLOT(fontSizeChangedSlot(const QString &))); + connect(m_pThemeSetting, SIGNAL(changed(const QString &)),this,SLOT(ukuiThemeChangedSlot(const QString &))); + } + + //获取透明度 + if(QGSettings::isSchemaInstalled(TRANSPARENCY_GSETTINGS)) { + m_pTransGsettings = new QGSettings(TRANSPARENCY_GSETTINGS); + if(m_pTransGsettings->keys().contains(QString("transparency"))) { + m_pTransparency=m_pTransGsettings->get("transparency").toDouble() + 0.15; + m_pTransparency = (m_pTransparency > 1) ? 1 : m_pTransparency; + connect(m_pTransGsettings, SIGNAL(changed(const QString &)), this, SLOT(onTransChanged())); + } + } + + //给侧边栏提供音量之设置 + if (QGSettings::isSchemaInstalled(UKUI_VOLUME_BRIGHTNESS_GSETTING_ID)) { + m_pVolumeSetting = new QGSettings(UKUI_VOLUME_BRIGHTNESS_GSETTING_ID); + + connect(m_pVolumeSetting,SIGNAL(changed(const QString &)),this,SLOT(volumeSettingChangedSlot())); + } + + //如果为第一次运行需要关闭dp对应的配置文件 + if (QGSettings::isSchemaInstalled(UKUI_AUDIO_SCHEMA)){ + m_pInitSystemVolumeSetting = new QGSettings(UKUI_AUDIO_SCHEMA); + if (m_pInitSystemVolumeSetting->keys().contains("firstRun")) { + bool isFirstRun = m_pInitSystemVolumeSetting->get(FIRST_RUN).toBool(); + if (isFirstRun) { + m_pInitSystemVolumeSetting->set(FIRST_RUN,false); + } + } + } + +} + +/* + * 更新设备时更新字体(对listwidget的特殊处理) + */ +void UkmediaMainWidget::updateOutputListWidgetFont() { + QString fontType; + if (m_pFontSetting->keys().contains("systemFont")) { + fontType = m_pFontSetting->get("systemFont").toString(); + } + if (m_pFontSetting->keys().contains("systemFontSize")) { + int font = m_pFontSetting->get("system-font-size").toInt(); + QFont fontSize(fontType,font); + for (int row=0;rowm_pOutputListWidget->count();row++) { + QListWidgetItem *item = systemWidget->m_pOutputListWidget->item(row); + UkuiListWidgetItem *wid = (UkuiListWidgetItem *)systemWidget->m_pOutputListWidget->itemWidget(item); + wid->portLabel->setFont(fontSize); + } + } +} + +void UkmediaMainWidget::initAlertSound() +{ + eventList = new QStringList; + eventIdNameList = new QStringList; + eventList->append("window-close"); + eventList->append("system-setting"); + eventList->append("volume-changed"); + eventList->append("alert-sound"); + eventIdNameList->append("gudou"); + eventIdNameList->append("gudou"); + eventIdNameList->append("gudou"); + eventIdNameList->append("gudou"); + for (int i=0;icount();i++) { +// getValue(); + addValue(eventList->at(i),eventIdNameList->at(i)); + } +} + + +QList UkmediaMainWidget::listExistsPath() +{ + char ** childs; + int len; + + DConfClient * client = dconf_client_new(); + childs = dconf_client_list (client, KEYBINDINGS_CUSTOM_DIR, &len); + g_object_unref (client); + + QList vals; + + for (int i = 0; childs[i] != NULL; i++){ + if (dconf_is_rel_dir (childs[i], NULL)){ + char * val = g_strdup (childs[i]); + + vals.append(val); + } + } + g_strfreev (childs); + return vals; +} + +QString UkmediaMainWidget::findFreePath(){ + int i = 0; + char * dir; + bool found; + QList existsdirs; + + existsdirs = listExistsPath(); + + for (; i < MAX_CUSTOM_SHORTCUTS; i++){ + found = true; + dir = QString("custom%1/").arg(i).toLatin1().data(); + for (int j = 0; j < existsdirs.count(); j++) + if (!g_strcmp0(dir, existsdirs.at(j))){ + found = false; + break; + } + if (found) + break; + } + + if (i == MAX_CUSTOM_SHORTCUTS){ + qDebug() << "Keyboard Shortcuts" << "Too many custom shortcuts"; + return ""; + } + + return QString("%1%2").arg(KEYBINDINGS_CUSTOM_DIR).arg(QString(dir)); +} + +void UkmediaMainWidget::addValue(QString name,QString filename) +{ + //在创建setting表时,先判断是否存在该设置,存在时不创建 + QList existsPath = listExistsPath(); + + for (char * path : existsPath) { + + char * prepath = QString(KEYBINDINGS_CUSTOM_DIR).toLatin1().data(); + char * allpath = strcat(prepath, path); + + const QByteArray ba(KEYBINDINGS_CUSTOM_SCHEMA); + const QByteArray bba(allpath); + if(QGSettings::isSchemaInstalled(ba)) + { + QGSettings * settings = new QGSettings(ba, bba); + QString filenameStr = settings->get(FILENAME_KEY).toString(); + QString nameStr = settings->get(NAME_KEY).toString(); + + g_warning("full path: %s", allpath); + qDebug() << filenameStr << FILENAME_KEY <set(FILENAME_KEY, filename); + settings->set(NAME_KEY, name); + } +} + +/* + * 当检测到4段式3.5mm耳机插入时(声卡包含headsetmic端口) + */ +void UkmediaMainWidget::setHeadsetPort(QString str) +{ + qDebug() << "setHeadsetPort " << str << m_pVolumeControl->sinkIndex; + /* + *output: headphone + *input: intel mic + */ + if (strcmp(str.toLatin1().data(),"headphone") == 0) { + m_pVolumeControl->setSinkPort(m_pVolumeControl->defaultSinkName,m_pHeadphonesName); + m_pVolumeControl->setSourcePort(m_pVolumeControl->defaultSourceName,m_pInternalmicName); + + /* + *当需要设置的输入端口不在同一个sink上时,需要设置默认的输入设备 + */ + + + } /*output: headphone input: headset mic*/ + else if (strcmp(str.toLatin1().data(),"headset") == 0) { + m_pVolumeControl->setSinkPort(m_pVolumeControl->defaultSinkName,m_pHeadphonesName); + m_pVolumeControl->setSourcePort(m_pVolumeControl->defaultSourceName,m_pHeadsetmicName); + /* + *当需要设置的输入端口不在同一个sink上时,需要设置默认的输入设备 + */ + + + }/*output: speaker input: headphone mic*/ + else if (strcmp(str.toLatin1().data(),"headphone mic") == 0) { + m_pVolumeControl->setSinkPort(m_pVolumeControl->defaultSinkName,m_pInternalspkName); + m_pVolumeControl->setSourcePort(m_pVolumeControl->defaultSourceName,m_pHeadphonemicName); + /* + *当需要设置的输入端口不在同一个sink上时,需要设置默认的输入设备 + */ + + } +} + +/* + * 音量改变提示:策略是停止滑动时,播放提示声 + */ +void UkmediaMainWidget::handleTimeout() +{ + if(mousePress){ + if(mouseReleaseState){ + gint retval; + const gchar *desc = "Volume Changed"; + QString filenameStr; + QList existsPath = this->listExistsPath(); + for (char * path : existsPath) { + char * prepath = QString(KEYBINDINGS_CUSTOM_DIR).toLatin1().data(); + char * allpath = strcat(prepath, path); + const QByteArray ba(KEYBINDINGS_CUSTOM_SCHEMA); + const QByteArray bba(allpath); + if(QGSettings::isSchemaInstalled(ba)) + { + QGSettings * settings = new QGSettings(ba, bba); + filenameStr = settings->get(FILENAME_KEY).toString(); + QString nameStr = settings->get(NAME_KEY).toString(); + if (nameStr == "volume-changed") { + break; + } + } + } + const QByteArray text = filenameStr.toLocal8Bit(); + const gchar *id = text.data(); + const gchar *eventId =id; + if(desc){ + bool status = g_settings_get_boolean(m_pSoundSettings, EVENT_SOUNDS_KEY); + if (status) + retval = ca_context_play (this->caContext, 0, + CA_PROP_EVENT_ID, eventId, + CA_PROP_EVENT_DESCRIPTION, desc, NULL); + } + m_pTimer->stop(); + mousePress = false; + mouseReleaseState = false; + } + else { + m_pTimer2->start(50); + } + m_pTimer->stop(); + } + else + { + gint retval; + const gchar *desc = "Volume Changed"; + QString filenameStr; + QList existsPath = this->listExistsPath(); + for (char * path : existsPath) { + char * prepath = QString(KEYBINDINGS_CUSTOM_DIR).toLatin1().data(); + char * allpath = strcat(prepath, path); + const QByteArray ba(KEYBINDINGS_CUSTOM_SCHEMA); + const QByteArray bba(allpath); + if(QGSettings::isSchemaInstalled(ba)) + { + QGSettings * settings = new QGSettings(ba, bba); + filenameStr = settings->get(FILENAME_KEY).toString(); + QString nameStr = settings->get(NAME_KEY).toString(); + if (nameStr == "volume-changed") { + break; + } + } + } + const QByteArray text = filenameStr.toLocal8Bit(); + const gchar *id = text.data(); + const gchar *eventId =id; + if(desc){ + bool status = g_settings_get_boolean(m_pSoundSettings, EVENT_SOUNDS_KEY); + if (status && isPlay) { + retval = ca_context_play (this->caContext, 0, + CA_PROP_EVENT_ID, eventId, + CA_PROP_EVENT_DESCRIPTION, desc, NULL); + } + else { + isPlay = true; + } + } + m_pTimer->stop(); + } +} + +void UkmediaMainWidget::setVolumeSettingValue(int value) +{ + if (QGSettings::isSchemaInstalled(UKUI_VOLUME_BRIGHTNESS_GSETTING_ID)) { + if (m_pVolumeSetting->keys().contains("volumesize")) { + m_pVolumeSetting->blockSignals(true); + if(value == 0) + m_pVolumeControl->setSinkMute(true); + m_pVolumeSetting->set(UKUI_VOLUME_KEY,value); + m_pVolumeSetting->blockSignals(false); + } + } +} + +void UkmediaMainWidget::setVolumeSettingMute(bool state) +{ + if (QGSettings::isSchemaInstalled(UKUI_VOLUME_BRIGHTNESS_GSETTING_ID)) { + if (m_pVolumeSetting->keys().contains("soundstate")) { + m_pVolumeSetting->blockSignals(true); + m_pVolumeSetting->set(UKUI_VOLUME_STATE,state); + m_pVolumeSetting->blockSignals(false); + } + } +} + +void UkmediaMainWidget::themeChangeIcons() +{ + int nInputValue = paVolumeToValue(m_pVolumeControl->getSourceVolume()); + int nOutputValue = paVolumeToValue(m_pVolumeControl->getSinkVolume()); + bool inputStatus = m_pVolumeControl->getSourceMute(); + bool outputStatus = m_pVolumeControl->getSinkMute(); + + inputVolumeDarkThemeImage(nInputValue,inputStatus); + outputVolumeDarkThemeImage(nOutputValue,outputStatus); + + systemWidget->m_pSystemVolumeBtn->repaint(); + appWidget->systemVolumeBtn->repaint(); + soundSystemTrayIcon->setToolTip(tr("Current volume:")+QString::number(nOutputValue)+"%"); +} + +/* + * 隐藏窗口 + */ +void UkmediaMainWidget::hideWindow() +{ + this->hide(); +} + +/* + * 字体改变需更新字体大小 + */ +void UkmediaMainWidget::fontSizeChangedSlot(const QString &themeStr) +{ + QString fontType; + if (m_pFontSetting->keys().contains("systemFont")) { + fontType = m_pFontSetting->get("systemFont").toString(); + } + if (m_pFontSetting->keys().contains("systemFontSize")) { + int font = m_pFontSetting->get("system-font-size").toInt(); + QFont fontSize(fontType,font); + //listWidget目前使用了qss,需要做特殊处理 + for (int row=0;rowm_pOutputListWidget->count();row++) { + QListWidgetItem *item = systemWidget->m_pOutputListWidget->item(row); + UkuiListWidgetItem *wid = (UkuiListWidgetItem *)systemWidget->m_pOutputListWidget->itemWidget(item); + wid->portLabel->setFont(fontSize); + } + } + Q_EMIT font_change(); +} + +void UkmediaMainWidget::volumeSettingChangedSlot() +{ + + if (m_pVolumeSetting->keys().contains("volumesize")) { + int valueSetting = m_pVolumeSetting->get(UKUI_VOLUME_KEY).toInt(); + if (valueSetting == 0) { + m_pVolumeControl->setSinkMute(true); + } + + systemWidget->m_pSystemVolumeSlider->setValue(valueSetting); + } + + if (QGSettings::isSchemaInstalled(UKUI_VOLUME_BRIGHTNESS_GSETTING_ID)) { + if (m_pVolumeSetting->keys().contains("soundstate")) { + bool status = m_pVolumeSetting->get(UKUI_VOLUME_STATE).toBool(); + + } + } +} + +/* + * 系统主题改变 + */ +void UkmediaMainWidget::ukuiThemeChangedSlot(const QString &themeStr) +{ + if (m_pThemeSetting->keys().contains("styleName")) { + mThemeName = m_pThemeSetting->get(UKUI_THEME_NAME).toString(); + } + themeChangeIcons(); +// QPalette palette = dividerFrame->palette(); + QColor color = QColor(255,255,255); + color.setAlphaF(0.08); +// palette.setColor(QPalette::WindowText, color); +// dividerFrame->setPalette(palette); + Q_EMIT theme_change(); +} + +/* + * 滑动条控制输出音量 + */ +void UkmediaMainWidget::systemVolumeSliderChangedSlot(int value) +{ + QString percent; + percent = QString::number(value); + //音量值改变时添加提示音 + int volume = valueToPaVolume(value); + m_pVolumeControl->getDefaultSinkIndex(); + m_pVolumeControl->setSinkVolume(m_pVolumeControl->sinkIndex,volume); + + appWidget->systemVolumeSlider->blockSignals(true); + appWidget->systemVolumeDisplayLabel->setText(percent+"%"); + systemWidget->m_pSystemVolumeSliderLabel->setText(percent+"%"); + appWidget->systemVolumeSlider->setValue(value); + appWidget->systemVolumeSlider->blockSignals(false); + + firstEnterSystem = false; +} + +/* + * 完整模式下,应用音量选项中系统音量控制输出音量值 + */ +void UkmediaMainWidget::advancedSystemSliderChangedSlot(int value) +{ + QString percent; + percent = QString::number(value); + int volume = valueToPaVolume(value); + m_pVolumeControl->getDefaultSinkIndex(); + m_pVolumeControl->setSinkVolume(m_pVolumeControl->sinkIndex,volume); + systemWidget->m_pSystemVolumeSlider->blockSignals(true); + systemWidget->m_pSystemVolumeSliderLabel->setText(percent+"%"); + appWidget->systemVolumeDisplayLabel->setText(percent+"%"); + systemWidget->m_pSystemVolumeSlider->setValue(value); + systemWidget->m_pSystemVolumeSlider->blockSignals(false); +} + +void UkmediaMainWidget::systemVolumeButtonClickedSlot() +{ + m_pVolumeControl->setSinkMute(!m_pVolumeControl->sinkMuted); + + QTimer * time = new QTimer; + time->start(100); + connect(time,&QTimer::timeout,[=](){ + + themeChangeIcons(); + time->disconnect(); + delete time; + }); + +} + +/* + * 完整模式中应用音量的静音控制 + */ +void UkmediaMainWidget::appWidgetMuteButtonCLickedSlot() +{ + m_pVolumeControl->setSinkMute(!m_pVolumeControl->sinkMuted); + + QTimer * time = new QTimer; + time->start(100); + connect(time,&QTimer::timeout,[=](){ + + themeChangeIcons(); + time->disconnect(); + delete time; + }); +} + +/* + * 声音托盘的触发事件,包括鼠标左键点击,双击,滚轮,右击 + */ +void UkmediaMainWidget::activatedSystemTrayIconSlot(QSystemTrayIcon::ActivationReason reason) +{ + const KWindowInfo info(this->winId(), NET::WMState); + if (!info.hasState(NET::SkipTaskbar) || !info.hasState(NET::SkipPager)) { + KWindowSystem::setState(this->winId(), NET::SkipTaskbar | NET::SkipPager); + } + + switch(reason) { + //鼠标中间键点击图标 + case QSystemTrayIcon::MiddleClick: { + if (this->isHidden()) { + Q_EMIT mouse_middle_clicked_signal(); + } + else { + hideWindow(); + } + break; + } + //鼠标左键点击图标 + case QSystemTrayIcon::Trigger: { + if(this->isVisible()){ + hideWindow(); + break; + } + advancedWidgetShow(); + break; + } + //鼠标左键双击图标 + case QSystemTrayIcon::DoubleClick: { + hideWindow(); + break; + } + case QSystemTrayIcon::Context:{ + if(this ->isHidden()) { + menu->show(); + } + else{ + this->hideWindow(); + } + break; + } + default: + break; + } +} + +/* + * 鼠标滚轮点击托盘图标,设置输出音量的静音状态 + */ +void UkmediaMainWidget::mouseMeddleClickedTraySlot() +{ + m_pVolumeControl->setSinkMute(!m_pVolumeControl->sinkMuted); + + QTimer * time = new QTimer; + time->start(100); + connect(time,&QTimer::timeout,[=](){ + + themeChangeIcons(); + time->disconnect(); + delete time; + }); +} + +/* + * 鼠标滚轮在声音托盘上滚动设置输出音量值 + */ +void UkmediaMainWidget::trayWheelRollEventSlot(bool step) +{ + int volume = systemWidget->m_pSystemVolumeSlider->value(); + if (step) { + systemWidget->m_pSystemVolumeSlider->setValue(volume+5); + } + else { + systemWidget->m_pSystemVolumeSlider->setValue(volume-5); + } +} + +/* + * 点击菜单中声音设置跳转到控制面板的声音控制 + */ +void UkmediaMainWidget::jumpControlPanelSlot() +{ + m_process = new QProcess(0); + m_process->start("ukui-control-center module Audio"); + m_process->waitForStarted(); + this->hide(); + return; +} + +void UkmediaMainWidget::drawImagColorFromTheme(UkuiButtonDrawSvg *button, QString iconStr) +{ + button->themeIcon.image = QIcon::fromTheme(iconStr).pixmap(24,24).toImage(); + button->themeIcon.color = QColor(0,0,0,216); + + if (mThemeName == UKUI_THEME_WHITE) { + button->themeIcon.color = QColor(255,255,255,216); + } + else if (mThemeName == UKUI_THEME_BLACK) { + button->themeIcon.color = QColor(255,255,255,216); + } +} + +/* + 深色主题时输出音量图标 +*/ +void UkmediaMainWidget::outputVolumeDarkThemeImage(int value,bool status) +{ + QString iconStr = outputVolumeToIconStr(status,value); + + systemWidget->m_pSystemVolumeBtn->setButtonIcon(QIcon::fromTheme(iconStr)); + appWidget->systemVolumeBtn->setButtonIcon(QIcon::fromTheme(iconStr)); + bool isActive = m_pVolumeControl->getSinkMute(); + if(iconStr == "audio-volume-muted-symbolic" && isActive) { + systemWidget->m_pSystemVolumeBtn->setActive(false); + appWidget->systemVolumeBtn->setActive(false); + } + else { + systemWidget->m_pSystemVolumeBtn->setActive(true); + appWidget->systemVolumeBtn->setActive(true); + } + soundSystemTrayIcon->setIcon(QIcon::fromTheme(iconStr)); + +} + +/* + 输入音量图标 +*/ +void UkmediaMainWidget::inputVolumeDarkThemeImage(int value,bool status) +{ + QString inputIconStr; + if (status) { + inputIconStr = iconNameInputs[0]; + } + else if (value <= 0) { + inputIconStr = iconNameInputs[0]; + } + else if (value > 0 && value <= 33) { + inputIconStr = iconNameInputs[1]; + } + else if (value >33 && value <= 66) { + inputIconStr = iconNameInputs[2]; + } + else { + inputIconStr = iconNameInputs[3]; + } + + if (mThemeName == "ukui-white" || mThemeName == "ukui-light") { +// devWidget->inputMuteButton->themeIcon.color = QColor(0,0,0,216); +// devWidget->inputMuteButton->themeIcon.image = QIcon::fromTheme(inputIconStr).pixmap(24,24).toImage(); + } + else if (mThemeName == UKUI_THEME_BLACK || mThemeName == "ukui-black" || mThemeName == "ukui-default") { +// devWidget->inputMuteButton->themeIcon.color = QColor(255,255,255,216); +// devWidget->inputMuteButton->themeIcon.image = QIcon::fromTheme(inputIconStr).pixmap(24,24).toImage(); + } +} + +/* + * 绘制高亮颜色图标 + */ +QPixmap UkmediaMainWidget::drawLightColoredPixmap(const QPixmap &source) +{ + QColor gray(255,255,255); + QColor standard (0,0,0); + QImage img = source.toImage(); + for (int x = 0; x < img.width(); x++) { + for (int y = 0; y < img.height(); y++) { + auto color = img.pixelColor(x, y); + if (color.alpha() > 0) { + if (qAbs(color.red()-gray.red())<20 && qAbs(color.green()-gray.green())<20 && qAbs(color.blue()-gray.blue())<20) { + color.setRed(255); + color.setGreen(255); + color.setBlue(255); + img.setPixelColor(x, y, color); + } + else { + color.setRed(255); + color.setGreen(255); + color.setBlue(255); + img.setPixelColor(x, y, color); + } + } + } + } + return QPixmap::fromImage(img); +} + +/* + * 绘制深色颜色图标 + */ +QPixmap UkmediaMainWidget::drawDarkColoredPixmap(const QPixmap &source) +{ + QColor gray(255,255,255); + QImage img = source.toImage(); + for (int x = 0; x < img.width(); x++) { + for (int y = 0; y < img.height(); y++) { + auto color = img.pixelColor(x, y); + if (color.alpha() > 0) { + if (qAbs(color.red()-gray.red())<20 && qAbs(color.green()-gray.green())<20 && qAbs(color.blue()-gray.blue())<20) { + color.setRed(0); + color.setGreen(0); + color.setBlue(0); + img.setPixelColor(x, y, color); + } + else { + color.setRed(0); + color.setGreen(0); + color.setBlue(0); + img.setPixelColor(x, y, color); + } + } + } + } + return QPixmap::fromImage(img); +} + +/* + * 完整模式界面的显示 + */ +void UkmediaMainWidget::advancedWidgetShow() +{ + #define MARGIN 4 + QDBusInterface iface("org.ukui.panel", + "/panel/position", + "org.ukui.panel", + QDBusConnection::sessionBus()); + QDBusReply reply=iface.call("GetPrimaryScreenGeometry"); + QVariantList position_list=reply.value(); + + /* + * 通过这个dbus接口获取到的6个参数分别为 :可用屏幕大小的x坐标、y坐标、宽度、高度,任务栏位置 + */ + + switch(reply.value().at(4).toInt()){ + case 1: + this->setGeometry(position_list.at(0).toInt()+position_list.at(2).toInt()-this->width()-MARGIN, + position_list.at(1).toInt()+MARGIN, + this->width(),this->height()); + break; + case 2: + this->setGeometry(position_list.at(0).toInt()+MARGIN, + position_list.at(1).toInt()+reply.value().at(3).toInt()-this->height()-MARGIN, + this->width(),this->height()); + break; + case 3: + this->setGeometry(position_list.at(0).toInt()+position_list.at(2).toInt()-this->width()-MARGIN, + position_list.at(1).toInt()+reply.value().at(3).toInt()-this->height()-MARGIN, + this->width(),this->height()); + break; + default: + this->setGeometry(position_list.at(0).toInt()+position_list.at(2).toInt()-this->width()-MARGIN, + position_list.at(1).toInt()+reply.value().at(3).toInt()-this->height()-MARGIN, + this->width(),this->height()); + break; + } + this->showNormal(); + this->raise(); + this->activateWindow(); +} + +QString UkmediaMainWidget::appNameToIconName(const gchar *appName,const gchar *appIconName) +{ + QString iconName = "/usr/share/applications/"; + qDebug()<< "appNameToIconName" << appName << appIconName; + /*! + * \brief + * \details + * 由于获取到的麒麟影音软件获取的app icon不正确 + * 可能是软件没有发出正确的信号告知正确的icon, + * 因此添加判断当匹配应用名为Kylinvideo时设置 + * 正确的icon名来保证找到正确的desktop,从而设置 + * 应用音量正确的应用名和图标 + */ + if (strcmp(appName,"KylinVideo") == 0) { + appIconName = "kylin-video"; + } + + if (strcmp(appName,"wine-preloader") == 0) + { + QString weChatStr = findFile(iconName,"微信"); + if (weChatStr == "") + weChatStr = "kylin-kwre-wechat.desktop"; + iconName.append(weChatStr);//wine版 + } + else{ + iconName.append(appIconName); + iconName.append(".desktop"); + } + + + return iconName; +} + +void UkmediaMainWidget::addAppToAppwidget(const gchar *appName,const gchar *appIconName,int index,int channel) +{ + //设置应用的图标 + QString iconName = appNameToIconName(appName,appIconName); + QString description = appName; + QString pAppName = getAppName(iconName); + QString pAppIcon = getAppIcon(iconName); + qDebug() << "add application to widget" << appName<< appIconName << pAppIcon << iconName; + initSubApplicationWidget(pAppIcon); + + appWidget->app_volume_list->append(appIconName); + // qDebug() << "add application to widget" << appName<< appIconName << iconName << "volume:" << appWidget->appSlider->value() << "index:" <appSlider->setObjectName(appSliderStr); + appWidget->appMuteBtn->setObjectName(appIconName); + appWidget->appVolumeLabel->setObjectName(appVolumeLabelStr); + + //主题更改 +// connect(w,&DeviceSwitchWidget::theme_change,[=](){ +// QPushButton *btn = w->appWidget->findChild(appMuteBtnlStr);//由于btn会被释放掉,导致btn不存在,所以加上这一行 +// if ( btn!= nullptr ) { +// if ( w->mThemeName == "ukui-white" || w->mThemeName == "ukui-light") { +// btn->setIcon(QIcon(w->drawDarkColoredPixmap((QIcon::fromTheme(audioIconStr).pixmap(iconSize))))); +// } +// else if (w->mThemeName == UKUI_THEME_BLACK || w->mThemeName == "ukui-black" || w->mThemeName == "ukui-default") { +// btn->setIcon(QIcon(w->drawLightColoredPixmap((QIcon::fromTheme(audioIconStr).pixmap(iconSize))))); +// } +// } +// }); +// connect(w,&DeviceSwitchWidget::font_change,[=](){ +// QString fontType; +// if (w->m_pFontSetting->keys().contains("systemFont")) { +// fontType = w->m_pFontSetting->get("systemFont").toString(); +// } +// if (w->m_pFontSetting->keys().contains("systemFontSize")) { +// int font = w->m_pFontSetting->get("system-font-size").toInt(); +//// QFont fontSize(fontType,font); + +//// w->appWidget->appLabel->setFont(fontSize); +// } +// }); + + //获取应用静音状态及音量 + int volume = paVolumeToValue(m_pVolumeControl->getSinkInputVolume(appName)); + + appWidget->appIconBtn->setCheckable(false); + appWidget->appIconBtn->setChecked(false); + appWidget->appSlider->blockSignals(true); + appWidget->appSlider->setValue(paVolumeToValue(m_pVolumeControl->getSinkInputVolume(appName))); + appWidget->appVolumeLabel->setText(QString::number(volume)+"%"); + qDebug() << "ctf get-sink-input-volume:" << appWidget->appSlider->value() << appSliderStr; + appWidget->appSlider->blockSignals(false); + /*滑动条控制应用音量*/ + connect(appWidget->appSlider,&QSlider::valueChanged,[=](int value){ + QString appName = appSliderStr.split("Slider").at(0); + bool isMute = false; + m_pVolumeControl->setSinkInputVolume(index,valueToPaVolume(value),channel); + + QDBusMessage message =QDBusMessage::createSignal("/", "org.ukui.media", "sinkVolumeChanged"); + message<findChild (appVolumeLabelStr); + if (label == nullptr) + return; + label->setText(QString::number(value)+"%"); + + QSlider *slider = appWidget->findChild(appSliderStr); + if (slider == nullptr) + return; + QPushButton *btn = appWidget->findChild(appMuteBtnlStr); + if (btn == nullptr) + return; + QString audioIconStr = outputVolumeToIconStr(isMute,value); + QSize iconSize(24,24); + if ( mThemeName == "ukui-white" || mThemeName == "ukui-light") { + btn->setIcon(QIcon(drawDarkColoredPixmap((QIcon::fromTheme(audioIconStr).pixmap(iconSize))))); + } + else if (mThemeName == UKUI_THEME_BLACK || mThemeName == "ukui-black" || mThemeName == "ukui-default") { + btn->setIcon(QIcon(drawLightColoredPixmap((QIcon::fromTheme(audioIconStr).pixmap(iconSize))))); + } + Q_EMIT app_name_signal(appSliderStr); + }); + + connect(appWidget->appMuteBtn,&QPushButton::clicked,[=](){ + + bool isMute = false; + int volume = -1; + + isMute = m_pVolumeControl->getSinkInputMuted(description); + qDebug() << "appMuteBtn clicked" << "muted" << isMute << description <setSinkInputMuted(index,!isMute); + if (isAppMuteBtnPress) { + isAppMuteBtnPress = false; + } + } + else { + + QDBusMessage message =QDBusMessage::createSignal("/", "org.ukui.media", "sinkVolumeChanged"); + message<displayAppVolumeWidget->findChild(appIconName); + QSlider *s = appWidget->displayAppVolumeWidget->findChild(appIconName); + qDebug() << "sinkInputVolumeChangedSlot==" << appName << appIconName << index << m_pVolumeControl->getSinkInputVolume(appName) << appSliderStr <objectName() ; + if (s == nullptr || appIconName == nullptr) + return; + s->blockSignals(true); + label->setText(QString::number(paVolumeToValue(m_pVolumeControl->getSinkInputVolume(appName)))+"%"); + s->setValue(paVolumeToValue(m_pVolumeControl->getSinkInputVolume(appName))); + s->blockSignals(false); +} + + +/* + * 获取应用名称,从desktop全路径名下解析出应用名称 + */ +QString UkmediaMainWidget::getAppName(QString desktopfp) +{ + GError** error=nullptr; + GKeyFileFlags flags=G_KEY_FILE_NONE; + GKeyFile* keyfile=g_key_file_new (); + + QByteArray fpbyte=desktopfp.toLocal8Bit(); + char* filepath=fpbyte.data(); + g_key_file_load_from_file(keyfile,filepath,flags,error); + + char* name=g_key_file_get_locale_string(keyfile,"Desktop Entry","Name", nullptr, nullptr); + QString namestr=QString::fromLocal8Bit(name); + + g_key_file_free(keyfile); + return namestr; +} + +/* + * 获取应用图标,从desktop全路径名下解析出应用图标 + */ +QString UkmediaMainWidget::getAppIcon(QString desktopfp) +{ + GError** error=nullptr; + GKeyFileFlags flags=G_KEY_FILE_NONE; + GKeyFile* keyfile=g_key_file_new (); + + QByteArray fpbyte=desktopfp.toLocal8Bit(); + char* filepath=fpbyte.data(); + g_key_file_load_from_file(keyfile,filepath,flags,error); + + char* name=g_key_file_get_locale_string(keyfile,"Desktop Entry","Icon", nullptr, nullptr); + QString namestr=QString::fromLocal8Bit(name); + + g_key_file_free(keyfile); + return namestr; +} + +void UkmediaMainWidget::initSubApplicationWidget(QString pAppIcon) +{ + //widget显示应用音量 + QWidget *subAppwidget = new QWidget(appWidget->displayAppVolumeWidget); + appWidget->appVolumeLabel = new QLabel(subAppwidget); + appWidget->appVolumeLabel->setParent(subAppwidget); + appWidget->appIconBtn = new QPushButton(subAppwidget); + appWidget->appMuteBtn = new QPushButton(subAppwidget); + appWidget->appMuteBtn->setVisible(false); + appWidget->appSlider = new UkmediaVolumeSlider(subAppwidget); + appWidget->appSlider->setOrientation(Qt::Horizontal); + appWidget->appIconBtn->setFixedSize(36,36); + appWidget->appIconBtn->setFlat(true); + appWidget->appIconBtn->setFocusPolicy(Qt::NoFocus); + QSize icon_size(32,32); + appWidget->appIconBtn->setIconSize(icon_size); + appWidget->appIconBtn->setIcon(QIcon::fromTheme(pAppIcon)); + appWidget->appIconBtn->setAttribute(Qt::WA_TranslucentBackground); + + QPalette palete = appWidget->appIconBtn->palette(); + palete.setColor(QPalette::Highlight,Qt::transparent); + palete.setBrush(QPalette::Button,QBrush(QColor(1,1,1,0))); + appWidget->appIconBtn->setPalette(palete); + + QPalette paleteAppIcon = appWidget->appIconBtn->palette(); + paleteAppIcon.setColor(QPalette::Highlight,Qt::transparent); + paleteAppIcon.setBrush(QPalette::Button,QBrush(QColor(0,0,0,0))); + appWidget->appIconBtn->setPalette(paleteAppIcon); + + appWidget->appSlider->setMaximum(100); + appWidget->appSlider->setFixedSize(273,48); + appWidget->appIconBtn->adjustSize(); + appWidget->appIconBtn->setProperty("useIconHighlightEffect",true); + appWidget->appIconBtn->setProperty("iconHighlightEffectMode",true); + appWidget->appIconBtn->setStyleSheet("QPushButton{background:transparent;border:0px;" + "padding-left:0px;}" + "QPushButton:hover {" + "background-color: #00000000;" + "color: white;}"); + + + //音量滑动条 + QHBoxLayout *appSliderLayout = new QHBoxLayout(); + + subAppwidget->setFixedSize(412,48); + appWidget->appVolumeLabel->setFixedSize(55,48); + appWidget->appVolumeLabel->setAlignment(Qt::AlignCenter); + appSliderLayout->addWidget(appWidget->appIconBtn); + appSliderLayout->addSpacing(8); + appSliderLayout->addWidget(appWidget->appSlider); +// appSliderLayout->addItem(new QSpacerItem(16,20,QSizePolicy::Maximum)); + appSliderLayout->addWidget(appWidget->appVolumeLabel); + appSliderLayout->setSpacing(0); + subAppwidget->setLayout(appSliderLayout); + appSliderLayout->setContentsMargins(16,0,24,0); + appWidget->m_pVlayout->addWidget(subAppwidget); +// //设置布局的垂直间距以及设置vlayout四周的间距 + appWidget->displayAppVolumeWidget->resize(404,m_pVolumeControl->sinkInputList.count()*50); + appWidget->m_pVlayout->setSpacing(2); + appWidget->m_pVlayout->setContentsMargins(0,0,0,0); + appWidget->m_pVlayout->update(); + +} + +/* + * 当播放或录制应用退出时删除在应用音量界面上该应用的显示 + */ +void UkmediaMainWidget::removeSubAppWidget(const gchar *m_pAppName) +{ + g_debug ("Removing application stream %s", m_pAppName); + /* We could call bar_set_stream_control here, but that would pointlessly + * invalidate the channel bar, so just remove it ourselves */ + int index = -1; + for (int i=0;isinkInputList.count();i++) { + if (m_pVolumeControl->sinkInputList.at(i) == m_pAppName) { + index = i; + m_pVolumeControl->sinkInputList.removeAt(i); + break; + } + } + if (index == -1) + return; + QLayoutItem *item; + if ((item = appWidget->m_pVlayout->takeAt(index)) != 0) { + QWidget *wid = item->widget(); + appWidget->m_pVlayout->removeWidget(wid); + wid->setParent(nullptr); + delete wid; + delete item; + } + qDebug() << "removeSubAppWidget" << m_pAppName << m_pVolumeControl->sinkInputList.count() << m_pVolumeControl->sinkInputMap.count(); + //设置布局的间距以及设置vlayout四周的间距 + appWidget->displayAppVolumeWidget->resize(404,m_pVolumeControl->sinkInputList.count()*50); + appWidget->m_pVlayout->setSpacing(2); + appWidget->m_pVlayout->setContentsMargins(0,0,0,0); + appWidget->m_pVlayout->update(); + +} + +/* + In PulseAudio without ucm, ports will show up with the following names: + Headphones - analog-output-headphones + Headset mic - analog-input-headset-mic (was: analog-input-microphone-headset) + Jack in mic-in mode - analog-input-headphone-mic (was: analog-input-microphone) + + However, since regular mics also show up as analog-input-microphone, + we need to check for certain controls on alsa mixer level too, to know + if we deal with a separate mic jack, or a multi-function jack with a + mic-in mode (also called "headphone mic"). + We check for the following names: + + Headphone Mic Jack - indicates headphone and mic-in mode share the same jack, + i e, not two separate jacks. Hardware cannot distinguish between a + headphone and a mic. + Headset Mic Phantom Jack - indicates headset jack where hardware can not + distinguish between headphones and headsets + Headset Mic Jack - indicates headset jack where hardware can distinguish + between headphones and headsets. There is no use popping up a dialog in + this case, unless we already need to do this for the mic-in mode. + + From the PA_PROCOTOL_VERSION=34, The device_port structure adds 2 members + availability_group and type, with the help of these 2 members, we could + consolidate the port checking and port setting for non-ucm and with-ucm + cases. +*/ + +#define HEADSET_PORT_SET(dst, src) \ + do { \ + if (!(dst) || (dst)->priority < (src)->priority) \ + dst = src; \ + } while (0) + +#define GET_PORT_NAME(x) (x ? g_strdup (x->name) : NULL) + +headsetPorts * +UkmediaMainWidget::getHeadsetPorts (const pa_card_info *c) +{ + headsetPorts *h; + guint i; + + h = g_new0 (headsetPorts, 1); + + for (i = 0; i < c->n_ports; i++) { + pa_card_port_info *p = c->ports[i]; + // if (control->priv->server_protocol_version < 34) { + if (g_str_equal (p->name, "analog-output-headphones") || g_str_equal (p->name, "[Out] Headphones1")) + h->headphones = p; + else if (g_str_equal (p->name, "analog-input-headset-mic") || g_str_equal (p->name, "[In] Headset")) + h->headsetmic = p; + else if (g_str_equal (p->name, "analog-input-headphone-mic") || g_str_equal (p->name, "[In] Headphones2")) + h->headphonemic = p; + else if (g_str_equal (p->name, "analog-input-internal-mic") || g_str_equal (p->name, "[In] Mic")) + h->internalmic = p; + else if (g_str_equal (p->name, "analog-output-speaker") || g_str_equal (p->name, "[Out] Speaker")) + h->internalspk = p; + // } else { +#if (PA_PROTOCOL_VERSION >= 34) + /* in the first loop, set only headphones */ + /* the microphone ports are assigned in the second loop */ + if (p->type == PA_DEVICE_PORT_TYPE_HEADPHONES) { + if (p->availability_group) + HEADSET_PORT_SET (h->headphones, p); + } else if (p->type == PA_DEVICE_PORT_TYPE_SPEAKER) { + HEADSET_PORT_SET (h->internalspk, p); + } else if (p->type == PA_DEVICE_PORT_TYPE_MIC) { + if (!p->availability_group) + HEADSET_PORT_SET (h->internalmic, p); + } +#else + // g_warning_once ("libgnome-volume-control running against PulseAudio %u, " + // "but compiled against older %d, report a bug to your distribution", + // control->priv->server_protocol_version, + // PA_PROTOCOL_VERSION); +#endif + // } + } + + return h; +} + +gboolean +UkmediaMainWidget::verifyAlsaCard (int cardindex, + gboolean *headsetmic, + gboolean *headphonemic) +{ + char *ctlstr; + snd_hctl_t *hctl; + snd_ctl_elem_id_t *id; + int err; + + *headsetmic = FALSE; + *headphonemic = FALSE; + + ctlstr = g_strdup_printf ("hw:%i", cardindex); + if ((err = snd_hctl_open (&hctl, ctlstr, 0)) < 0) { + g_warning ("snd_hctl_open failed: %s", snd_strerror(err)); + g_free (ctlstr); + return FALSE; + } + g_free (ctlstr); + + if ((err = snd_hctl_load (hctl)) < 0) { +// if (hasNo && !hasOther) + g_warning ("snd_hctl_load failed: %s", snd_strerror(err)); + snd_hctl_close (hctl); + return FALSE; + } + + snd_ctl_elem_id_alloca (&id); + + snd_ctl_elem_id_clear (id); + snd_ctl_elem_id_set_interface (id, SND_CTL_ELEM_IFACE_CARD); + snd_ctl_elem_id_set_name (id, "Headphone Mic Jack"); + if (snd_hctl_find_elem (hctl, id)) + *headphonemic = TRUE; + + snd_ctl_elem_id_clear (id); + snd_ctl_elem_id_set_interface (id, SND_CTL_ELEM_IFACE_CARD); + snd_ctl_elem_id_set_name (id, "Headset Mic Phantom Jack"); + if (snd_hctl_find_elem (hctl, id)) + *headsetmic = TRUE; + + if (*headphonemic) { + snd_ctl_elem_id_clear (id); + snd_ctl_elem_id_set_interface (id, SND_CTL_ELEM_IFACE_CARD); + snd_ctl_elem_id_set_name (id, "Headset Mic Jack"); + if (snd_hctl_find_elem (hctl, id)) + *headsetmic = TRUE; + } + + snd_hctl_close (hctl); + return *headsetmic || *headphonemic; +} + +void UkmediaMainWidget::checkAudioDeviceSelectionNeeded (const pa_card_info *info) +{ + headsetPorts *h; + gboolean start_dialog, stop_dialog; + qDebug() << "check_audio_device_selection_needed" <name; + + start_dialog = FALSE; + stop_dialog = FALSE; + h = getHeadsetPorts (info); + + if (!h->headphones || (!h->headsetmic && !h->headphonemic)) { + qDebug() << "no headset jack" ; + isPlay = false; + /* Not a headset jack */ + goto out; + } + else { + qDebug() << "headset jack" << h->headphonemic << h->headphones; + } + if (headsetCard != (int) info->index) { + int cardindex; + gboolean hsmic = TRUE; + gboolean hpmic = TRUE; + const char *s; + + s = pa_proplist_gets (info->proplist, "alsa.card"); + if (!s) + goto out; + + cardindex = strtol (s, NULL, 10); + if (cardindex == 0 && strcmp(s, "0") != 0) + goto out; + if (!verifyAlsaCard(cardindex, &hsmic, &hpmic)) + goto out; + + headsetCard = info->index; + hasHeadsetmic = hsmic && h->headsetmic; + hasHeadphonemic = hpmic && h->headphonemic; + } else { + start_dialog = (h->headphones->available != PA_PORT_AVAILABLE_NO) && !headsetPluggedIn; + stop_dialog = (h->headphones->available == PA_PORT_AVAILABLE_NO) && headsetPluggedIn; + } + + headsetPluggedIn = h->headphones->available != PA_PORT_AVAILABLE_NO; + m_pHeadphonesName = GET_PORT_NAME(h->headphones); + m_pHeadsetmicName = GET_PORT_NAME(h->headsetmic); + m_pHeadphonemicName = GET_PORT_NAME(h->headphonemic); + m_pInternalspkName = GET_PORT_NAME(h->internalspk); + m_pInternalmicName = GET_PORT_NAME(h->internalmic); + + if (firstLoad) + firstLoad = false; + else { + if (headsetPluggedIn) { + headsetWidget->showWindow(); + } + else { + if (headsetWidget->isShow) { + headsetWidget->hide(); + headsetWidget->isShow = false; + } + } + } + qDebug() << "check_audio_device_selection_needed" <defaultSinkName; + if(sleep) + { + system("pacmd suspend 1"); +// pa_context_suspend_sink_by_name(m_pVolumeControl->getContext(),m_pVolumeControl->defaultSinkName,1,nullptr,nullptr); + uninhibit(); + } + else + { + system("pacmd suspend 0"); +// pa_context_suspend_sink_by_name(m_pVolumeControl->getContext(),m_pVolumeControl->defaultSinkName,0,nullptr,nullptr); + inhibit(); + } +} + +/* + 输出设备提示弹窗 +*/ +void UkmediaMainWidget::deviceChangedShowSlot(QString dev_name) +{ + #define MARGIN 4 + QDBusInterface iface("org.ukui.panel", + "/panel/position", + "org.ukui.panel", + QDBusConnection::sessionBus()); + QDBusReply reply=iface.call("GetPrimaryScreenGeometry"); + QVariantList position_list=reply.value(); + /* + * 通过这个dbus接口获取到的6个参数分别为 :可用屏幕大小的x坐标、y坐标、宽度、高度,任务栏位置 + */ +// 因为暂时获取不到任务栏坐标,所以先定死坐标BUG #91957 +// switch(reply.value().at(4).toInt()){ +// case 1: +// //当任务栏在上方时 +// osdWidget->setGeometry(soundSystemTrayIcon->geometry().x() + (soundSystemTrayIcon->geometry().width()/2)- (osdWidget->geometry().width()/2), +// position_list.at(1).toInt()+MARGIN, +// osdWidget->width(),osdWidget->height()); +// break; +// case 2: +// //当任务栏在左侧时 +// osdWidget->setGeometry(position_list.at(0).toInt()+MARGIN, +// soundSystemTrayIcon->geometry().y() + (soundSystemTrayIcon->geometry().height()/2) - (osdWidget->geometry().height()/2), +// osdWidget->width(),osdWidget->height()); +// break; +// case 3: +// //当任务栏在右侧时 +// osdWidget->setGeometry(position_list.at(0).toInt()+position_list.at(2).toInt()-osdWidget->width()-MARGIN, +// soundSystemTrayIcon->geometry().y() + (soundSystemTrayIcon->geometry().height()/2) - (osdWidget->geometry().height()/2), +// osdWidget->width(),osdWidget->height()); +// break; +// default: +// //当任务栏在下方时 +// osdWidget->setGeometry(soundSystemTrayIcon->geometry().x() + (soundSystemTrayIcon->geometry().width()/2)- (osdWidget->geometry().width()/2), +// position_list.at(1).toInt()+reply.value().at(3).toInt()-osdWidget->height()-MARGIN, +// osdWidget->width(),osdWidget->height()); +// break; +// } + + osdWidget->setGeometry(position_list.at(0).toInt()+position_list.at(2).toInt()-osdWidget->width()-200, + position_list.at(1).toInt()+reply.value().at(3).toInt()-osdWidget->height()-MARGIN, + osdWidget->width(),osdWidget->height()); + + QPixmap dev_Icon; + + if ( mThemeName == "ukui-white" || mThemeName == "ukui-light") { + dev_Icon = drawDarkColoredPixmap((QIcon::fromTheme(dev_name)).pixmap(48,48)); + } + else if (mThemeName == UKUI_THEME_BLACK || mThemeName == "ukui-black" || mThemeName == "ukui-default") { + dev_Icon = drawLightColoredPixmap((QIcon::fromTheme(dev_name)).pixmap(48,48)); + } + + //获取透明度 +// if (QGSettings::isSchemaInstalled(UKUI_THEME_SETTING)){ +// if (m_pTransparencySetting->keys().contains("transparency")) { +// transparency = m_pTransparencySetting->get("transparency").toDouble(); +// } +// } + + if (!osdWidget->isHidden()) { + osdWidget->hide(); + + if (timer != nullptr) { + timer->disconnect(); + timer = nullptr; + delete timer; + } + } + + osdWidget->UkmediaOsdSetIcon(dev_Icon,mThemeName); + + osdWidget->show(); + +// osdWidget->setWindowOpacity(transparency); + timer = new MyTimer(osdWidget); //this 为parent类, 表示当前窗口 + connect(timer, SIGNAL(timeOut()), this, SLOT(osdDisplayWidgetHide())); + +} + +//osd超时隐藏 +void UkmediaMainWidget::osdDisplayWidgetHide() +{ + this->osdWidget->hide(); +} + +/* + * 更新设备端口 + */ +void UkmediaMainWidget::updateDevicePort() +{ + QMap>::iterator it; + QMap::iterator at; + QMap temp; + currentInputPortLabelMap.clear(); + currentOutputPortLabelMap.clear(); + if (firstEntry == true) { + for(it = m_pVolumeControl->outputPortMap.begin();it!=m_pVolumeControl->outputPortMap.end();) + { + temp = it.value(); + for (at=temp.begin();at!=temp.end();) { + qDebug() << "updateDevicePort" << firstEntry << it.key() << at.value() <cardMap); + addOutputListWidgetItem(at.key(),at.value(),cardName); + ++at; + } + ++it; + } + for(it = m_pVolumeControl->inputPortMap.begin();it!=m_pVolumeControl->inputPortMap.end();) + { + temp = it.value(); + for (at=temp.begin();at!=temp.end();) { + qDebug() << "updateDevicePort" << firstEntry << it.key() << at.value(); + QString cardName = findCardName(it.key(),m_pVolumeControl->cardMap); + addInputListWidgetItem(at.value(),cardName); + ++at; + } + ++it; + } + + } + else { + + //记录上一次output label + for (int i=0;im_pOutputListWidget->count();i++) { + QMap::iterator at; + QListWidgetItem *item = systemWidget->m_pOutputListWidget->item(i); + UkuiListWidgetItem *wid = (UkuiListWidgetItem *)systemWidget->m_pOutputListWidget->itemWidget(item); + int index; + for (at=m_pVolumeControl->cardMap.begin();at!=m_pVolumeControl->cardMap.end();) { + if (wid->deviceLabel->text() == at.value()) { + index = at.key(); + break; + } + ++at; + } + currentOutputPortLabelMap.insertMulti(index,wid->portLabel->fullText); +// qDebug() << index << "current output item ************" << wid->deviceLabel->text() <portLabel->text() ;//<< w->m_pOutputPortLabelList->at(i); + } + + for (int i=0;im_pInputListWidget->count();i++) { + + QListWidgetItem *item = systemWidget->m_pInputListWidget->item(i); + UkuiListWidgetItem *wid = (UkuiListWidgetItem *)systemWidget->m_pInputListWidget->itemWidget(item); + int index; + int count; + QMap::iterator at; + for (at=m_pVolumeControl->cardMap.begin();at!=m_pVolumeControl->cardMap.end();) { + if (wid->deviceLabel->text() == at.value()) { + index = at.key(); + break; + } + ++at; + ++count; + } + currentInputPortLabelMap.insertMulti(index,wid->portLabel->fullText); + } + systemWidget->m_pInputListWidget->blockSignals(true); + deleteNotAvailableOutputPort(); + addAvailableOutputPort(); + deleteNotAvailableInputPort(); + addAvailableInputPort(); + systemWidget->m_pInputListWidget->blockSignals(false); + } + if (systemWidget->m_pOutputListWidget->count() > 0 /*|| m_pInputWidget->m_pInputListWidget->count()*/) { + + firstEntry = false; + } +} + +void UkmediaMainWidget::updateListWidgetItemSlot() +{ + qDebug() << "updateListWidgetItemSlot---------"; + + initOutputListWidgetItem(); + initInputListWidgetItem(); + themeChangeIcons(); +} + +/* + * output list widget选项改变,设置对应的输出设备 + */ +void UkmediaMainWidget::outputListWidgetCurrentRowChangedSlot(int row) +{ + //当所有可用的输出设备全部移除,台式机才会出现该情况 + if (row == -1) + return; + QListWidgetItem *item = systemWidget->m_pOutputListWidget->item(row); + if (item == nullptr) { + qDebug() <<"output current item is null"; + } + UkuiListWidgetItem *wid = (UkuiListWidgetItem *)systemWidget->m_pOutputListWidget->itemWidget(item); + QListWidgetItem *inputCurrrentItem = systemWidget->m_pInputListWidget->currentItem(); + UkuiListWidgetItem *inputWid = (UkuiListWidgetItem *)systemWidget->m_pInputListWidget->itemWidget(inputCurrrentItem); + bool isContainBlue = inputDeviceContainBluetooth(); + + wid->deviceButton->buttonState = PUSH_BUTTON_CLICK; + wid->deviceButton->setActive(true); + setDeviceButtonState(row); + + //当输出设备从蓝牙切换到其他设备时,需将蓝牙声卡的配置文件切换为a2dp-sink + if (isContainBlue && (strstr(m_pVolumeControl->defaultSourceName,"headset_head_unit") || strstr(m_pVolumeControl->defaultSourceName,"bt_sco_sink"))) { + QString cardName = blueCardName(); + setCardProfile(cardName,"a2dp_sink"); + } + QStringList comboboxPortNameList = wid->portLabel->text().split("("); + QStringList inputComboboxPortNameList; + if(inputWid) + inputComboboxPortNameList = inputWid->portLabel->text().split("("); + + + QMap>::iterator outputProfileMap; + QMap>::iterator inputProfileMap; + QMap tempMap; + QMap::iterator at; + QString endOutputProfile = ""; + QString endInputProfile = ""; + + int currentCardIndex = findCardIndex(wid->deviceLabel->text(),m_pVolumeControl->cardMap); + int count,i; + + for (outputProfileMap=m_pVolumeControl->profileNameMap.begin();outputProfileMap!= m_pVolumeControl->profileNameMap.end();) { + if(currentCardIndex == outputProfileMap.key()){ + tempMap = outputProfileMap.value(); + for(at=tempMap.begin(),i=0;at!= tempMap.end();++i){ + if (at.key() == comboboxPortNameList.at(0)) { + count = i; + endOutputProfile = at.value(); + } + ++at; + } + } + ++outputProfileMap; + } + + if (inputCurrrentItem != nullptr) { + QMap ::iterator it; + QMap temp; + int index = findCardIndex(inputWid->deviceLabel->text(),m_pVolumeControl->cardMap); + for (inputProfileMap=m_pVolumeControl->inputPortProfileNameMap.begin(),count=0;inputProfileMap!= m_pVolumeControl->inputPortProfileNameMap.end();count++) { + if (inputProfileMap.key() == index) { + temp = inputProfileMap.value(); + for(it=temp.begin();it!=temp.end();){ + if(it.key() == inputComboboxPortNameList.at(0)){ + endInputProfile = it.value(); + } + ++it; + } + } + ++inputProfileMap; + } + } + qDebug() << "outputListWidgetCurrentRowChangedSlot" << row << wid->deviceLabel->text() << endOutputProfile <deviceLabel->text() == inputWid->deviceLabel->text()) || \ + wid->deviceLabel->text() == "alsa_card.platform-sound_DA_combine_v5" && inputWid->deviceLabel->text() == "3a.algo") { + + QString setProfile = endOutputProfile; + if (!endOutputProfile.contains("input:analog-stereo") || !endOutputProfile.contains("HiFi")) { + setProfile += "+"; + setProfile +=endInputProfile; + } + + setCardProfile(wid->deviceLabel->text(),setProfile); + setDefaultOutputPortDevice(wid->deviceLabel->text(),wid->portLabel->fullText); + } + //如果选择的输入输出设备不是同一块声卡,需要设置一个优先级高的配置文件 + else { + int index = findCardIndex(wid->deviceLabel->text(),m_pVolumeControl->cardMap); + QMap >::iterator it; + QString profileName; + for(it=m_pVolumeControl->cardProfileMap.begin();it!=m_pVolumeControl->cardProfileMap.end();) { + if (it.key() == index) { + if (strstr(endOutputProfile.toLatin1().data(),"headset_head_unit")) + endOutputProfile = "a2dp_sink"; + profileName = findHighPriorityProfile(index,endOutputProfile); + } + ++it; + } + + QString setProfile = profileName; + setCardProfile(wid->deviceLabel->text(),setProfile); + setDefaultOutputPortDevice(wid->deviceLabel->text(),wid->portLabel->fullText); + } + qDebug() << "active output port:" << wid->portLabel->fullText << wid->deviceLabel->text(); +} + +/* + * input list widget选项改变,设置对应的输入设备 + */ +void UkmediaMainWidget::inputListWidgetCurrentRowChangedSlot(int row) +{ + //当所有可用的输入设备全部移除,台式机才会出现该情况 + if (row == -1) + return; + QListWidgetItem *item = systemWidget->m_pInputListWidget->item(row); + UkuiListWidgetItem *wid = (UkuiListWidgetItem *)systemWidget->m_pInputListWidget->itemWidget(item); + QListWidgetItem *outputCurrrentItem = systemWidget->m_pOutputListWidget->currentItem(); + UkuiListWidgetItem *outputWid = (UkuiListWidgetItem *)systemWidget->m_pOutputListWidget->itemWidget(outputCurrrentItem); + + bool isContainBlue = inputDeviceContainBluetooth(); + qDebug() << "inputListWidgetCurrentRowChangedSlot" << row << isContainBlue << m_pVolumeControl->defaultSourceName; + //当输出设备从蓝牙切换到其他设备时,需将蓝牙声卡的配置文件切换为a2dp-sink + if (isContainBlue && (strstr(m_pVolumeControl->defaultSinkName,"headset_head_unit") || strstr(m_pVolumeControl->defaultSourceName,"bt_sco_source"))) { + QString cardName = blueCardName(); + setCardProfile(cardName,"a2dp_sink"); + } + + if(wid->deviceLabel->text().contains("bluez_card")) { + isCheckBluetoothInput = true; + } + else { + isCheckBluetoothInput = false; + } + + QMap>::iterator inputProfileMap; + QMap>::iterator outputProfileMap; + QMap temp; + QMap::iterator at; + QString endOutputProfile = ""; + QString endInputProfile = ""; + int index = findCardIndex(wid->deviceLabel->text(),m_pVolumeControl->cardMap); + + QStringList inputcomboboxPortNameList = wid->portLabel->text().split("(");//新增设计combobox需要显示 端口名+(description) + QStringList comboboxPortNameList = outputWid->portLabel->text().split("(");//新增设计combobox需要显示 端口名+(description) + + for (inputProfileMap=m_pVolumeControl->inputPortProfileNameMap.begin();inputProfileMap!= m_pVolumeControl->inputPortProfileNameMap.end();) { + if (inputProfileMap.key() == index) { + temp = inputProfileMap.value(); + for(at = temp.begin();at != temp.end();){ + if(at.value() == inputcomboboxPortNameList.at(0)){ + endInputProfile = at.value(); + } + ++at; + } + + } + ++inputProfileMap; + } + if (outputCurrrentItem != nullptr) { + QMap ::iterator it; + QMap temp; + int index = findCardIndex(outputWid->deviceLabel->text(),m_pVolumeControl->cardMap); + for (outputProfileMap=m_pVolumeControl->profileNameMap.begin();outputProfileMap!= m_pVolumeControl->profileNameMap.end();) { + if (outputProfileMap.key() == index) { + temp = outputProfileMap.value(); + for(it=temp.begin();it!=temp.end();){ + if(it.key() == comboboxPortNameList.at(0)){ + endOutputProfile = it.value(); + } + ++it; + } + } + ++outputProfileMap; + } + } + + //如果选择的输入输出设备为同一个声卡,则追加指定输入输出端口属于的配置文件 + if (outputCurrrentItem != nullptr && wid->deviceLabel->text() == outputWid->deviceLabel->text()) { + QString setProfile; + //有些声卡的配置文件默认只有输入/输出设备或者配置文件包含了输出输入设备,因此只需要取其中一个配置文件即可 + if (endOutputProfile == "a2dp-sink" || endInputProfile == "headset_head_unit" || endOutputProfile == "HiFi" ) { + setProfile += endInputProfile; + } + else { + setProfile += endOutputProfile; + setProfile += "+"; + setProfile +=endInputProfile; + } + setCardProfile(wid->deviceLabel->text(),setProfile); + setDefaultInputPortDevice(wid->deviceLabel->text(),wid->portLabel->fullText); + } + //如果选择的输入输出设备不是同一块声卡,需要设置一个优先级高的配置文件 + else { + int index = findCardIndex(wid->deviceLabel->text(),m_pVolumeControl->cardMap); + QMap >::iterator it; + QString profileName; + for(it=m_pVolumeControl->cardProfileMap.begin();it!=m_pVolumeControl->cardProfileMap.end();) { + + if (it.key() == index) { + QStringList list= it.value(); + profileName = findHighPriorityProfile(index,endInputProfile); + if (list.contains(endOutputProfile)) { + + } + } + ++it; + } + QString setProfile = profileName; + setCardProfile(wid->deviceLabel->text(),setProfile); + setDefaultInputPortDevice(wid->deviceLabel->text(),wid->portLabel->fullText); + } + qDebug() << "active input port:" << wid->portLabel->fullText << isCheckBluetoothInput; +} + + +void UkmediaMainWidget::updateAppVolume(QString str, int value, bool state) +{ + qDebug() << "update app volume" << isFirstRecive << str << value <findChild(str); + if (btn == nullptr) { + found = false; + } + else { + qDebug() << "founded app mute button ------------" << str << state; + isAppMuteBtnPress = true; + sinkInputMute = state; + btn->setChecked(true); + btn->click(); + } + QSlider *slider = appWidget->findChild(str); + if (slider == nullptr) { + found = false; + } + if (found) { + slider->setValue(value); + } + else + value = -1; + qDebug() << "found app slider, set value ----" << value; + + QDBusMessage message =QDBusMessage::createSignal("/", "org.ukui.media", "sinkVolumeChanged"); + message<m_pOutputListWidget->count(); + QListWidgetItem * item = new QListWidgetItem(systemWidget->m_pOutputListWidget); + item->setSizeHint(QSize(200,48)); //QSize(120, 40) spacing: 12px; + systemWidget->m_pOutputListWidget->blockSignals(true); + systemWidget->m_pOutputListWidget->setItemWidget(item, itemW); + systemWidget->m_pOutputListWidget->blockSignals(false); + itemW->setLabelText(portLabel,cardName); + itemW->setButtonIcon(portName); + systemWidget->m_pOutputListWidget->blockSignals(true); + systemWidget->m_pOutputListWidget->insertItem(i,item); + updateOutputListWidgetFont(); + systemWidget->m_pOutputListWidget->blockSignals(false); +} + +void UkmediaMainWidget::setDeviceButtonState(int row) +{ + for (int i=0;im_pOutputListWidget->count();i++) { + if (i == row) + continue; + QListWidgetItem *item = systemWidget->m_pOutputListWidget->item(i); + UkuiListWidgetItem *wid = (UkuiListWidgetItem *)systemWidget->m_pOutputListWidget->itemWidget(item); + wid->deviceButton->buttonState = PUSH_BUTTON_NORMAL; + wid->deviceButton->setActive(false); + } +} + +/* + * 添加input port到input list widget + */ +void UkmediaMainWidget::addInputListWidgetItem(QString portName, QString cardName) +{ + UkuiListWidgetItem *itemW = new UkuiListWidgetItem(this); + int i = systemWidget->m_pInputListWidget->count(); + QListWidgetItem * item = new QListWidgetItem(systemWidget->m_pInputListWidget); + item->setSizeHint(QSize(200,48)); //QSize(120, 40) spacing: 12px; + systemWidget->m_pInputListWidget->blockSignals(true); + systemWidget->m_pInputListWidget->setItemWidget(item, itemW); + systemWidget->m_pInputListWidget->blockSignals(false); + itemW->setLabelText(portName,cardName); + itemW->setButtonIcon(portName); + systemWidget->m_pInputListWidget->blockSignals(true); + systemWidget->m_pInputListWidget->insertItem(i,item); + systemWidget->m_pInputListWidget->blockSignals(false); +} + +int UkmediaMainWidget::indexOfOutputPortInOutputListWidget(QString portName) +{ + for (int row=0;rowm_pOutputListWidget->count();row++) { + + QListWidgetItem *item = systemWidget->m_pOutputListWidget->item(row); + UkuiListWidgetItem *wid = (UkuiListWidgetItem *)systemWidget->m_pOutputListWidget->itemWidget(item); + if (wid->portLabel->fullText == portName) { + return row; + } + } + return -1; +} + +int UkmediaMainWidget::indexOfInputPortInInputListWidget(QString portName) +{ + for (int row=0;rowm_pInputListWidget->count();row++) { + + QListWidgetItem *item = systemWidget->m_pInputListWidget->item(row); + UkuiListWidgetItem *wid = (UkuiListWidgetItem *)systemWidget->m_pInputListWidget->itemWidget(item); + if (wid->portLabel->fullText == portName) { + return row; + } + } + return -1; +} + +/* + * 当前的输出端口是否应该在output list widget上删除 + */ +bool UkmediaMainWidget::outputPortIsNeedDelete(int index, QString name) +{ + QMap>::iterator it; + QMap::iterator at; + QMap portMap; +// qDebug() << "outputPortIsNeedDelete" << index << name; + for(it = m_pVolumeControl->outputPortMap.begin();it!=m_pVolumeControl->outputPortMap.end();) + { + if (it.key() == index) { + portMap = it.value(); + for (at=portMap.begin();at!=portMap.end();) { + if (name == at.value()) { + return false; + } + ++at; + } + } + ++it; + } + return true; +} + +/* + * 当前的输出端口是否应该添加到output list widget上 + */ +bool UkmediaMainWidget::outputPortIsNeedAdd(int index, QString name) +{ + QMap::iterator it; + for(it=currentOutputPortLabelMap.begin();it!=currentOutputPortLabelMap.end();) { + if ( index == it.key() && name == it.value()) { + return false; + } + ++it; + } + return true; +} + +/* + * 当前的输出端口是否应该在input list widget上删除 + */ +bool UkmediaMainWidget::inputPortIsNeedDelete(int index, QString name) +{ + QMap>::iterator it; + QMap::iterator at; + QMap portMap; + for(it = m_pVolumeControl->inputPortMap.begin();it!=m_pVolumeControl->inputPortMap.end();) + { + if (it.key() == index) { + portMap = it.value(); + for (at=portMap.begin();at!=portMap.end();) { + if (name == at.value()) { + return false; + } + ++at; + } + } + ++it; + } + return true; +} + +/* + * 当前的输出端口是否应该添加到input list widget上 + */ +bool UkmediaMainWidget::inputPortIsNeedAdd(int index, QString name) +{ + QMap::iterator it; + for(it=currentInputPortLabelMap.begin();it!=currentInputPortLabelMap.end();) { + if ( index == it.key() && name == it.value()) { + return false; + } + ++it; + } + return true; +} + + +/* + * 移除output list widget上不可用的输出端口 + */ +void UkmediaMainWidget::deleteNotAvailableOutputPort() +{ + qDebug() << "deleteNotAvailableOutputPort"; + //删除不可用的输出端口 + QMap::iterator it; + for(it=currentOutputPortLabelMap.begin();it!=currentOutputPortLabelMap.end();) { + //没找到,需要删除 + if (outputPortIsNeedDelete(it.key(),it.value())) { + qDebug() << "outputPortIsNeedDelete" << it.key() << it.value(); + int index = indexOfOutputPortInOutputListWidget(it.value()); + if (index == -1) + return; + systemWidget->m_pOutputListWidget->blockSignals(true); + QListWidgetItem *item = systemWidget->m_pOutputListWidget->takeItem(index); + systemWidget->m_pOutputListWidget->removeItemWidget(item); + systemWidget->m_pOutputListWidget->blockSignals(false); + it = currentOutputPortLabelMap.erase(it); + continue; + } + ++it; + } +// m_pVolumeControl->removeProfileMap(); + +} + + +/* + * 添加可用的输出端口到output list widget + */ +void UkmediaMainWidget::addAvailableOutputPort() +{ + QMap>::iterator at; + QMap::iterator it; + QMap tempMap; + int i = systemWidget->m_pOutputListWidget->count(); + //增加端口 + for(at=m_pVolumeControl->outputPortMap.begin();at!=m_pVolumeControl->outputPortMap.end();) + { + tempMap = at.value(); +// qDebug() << "addAvailableOutputPort" << at.key() <m_pOutputListWidget); + item->setSizeHint(QSize(200,48)); //QSize(120, 40) spacing: 12px; + systemWidget->m_pOutputListWidget->blockSignals(true); + systemWidget->m_pOutputListWidget->setItemWidget(item, itemW); + systemWidget->m_pOutputListWidget->blockSignals(false); + + itemW->setLabelText(it.value(),findCardName(at.key(),m_pVolumeControl->cardMap)); + itemW->setButtonIcon(it.key()); + itemW->deviceButton->setActive(false); + currentOutputPortLabelMap.insertMulti(at.key(),it.value()); + systemWidget->m_pOutputListWidget->blockSignals(true); + systemWidget->m_pOutputListWidget->insertItem(i,item); + updateOutputListWidgetFont(); + systemWidget->m_pOutputListWidget->blockSignals(false); + } + ++it; + } + ++at; + } +} + +/* + * 在input list widget删除不可用的端口 + */ +void UkmediaMainWidget::deleteNotAvailableInputPort() +{ + //删除不可用的输入端口 + QMap::iterator it; + for(it=currentInputPortLabelMap.begin();it!=currentInputPortLabelMap.end();) { + //没找到,需要删除 + if (inputPortIsNeedDelete(it.key(),it.value())) { + int index = indexOfInputPortInInputListWidget(it.value()); + if (index == -1) + return; + systemWidget->m_pInputListWidget->blockSignals(true); + QListWidgetItem *item = systemWidget->m_pInputListWidget->takeItem(index); + systemWidget->m_pInputListWidget->removeItemWidget(item); + systemWidget->m_pInputListWidget->blockSignals(false); + it = currentInputPortLabelMap.erase(it); + continue; + } + ++it; + } +// m_pVolumeControl->removeInputProfile(); +} + +/* + * 添加可用的输入端口到input list widget + */ +void UkmediaMainWidget::addAvailableInputPort() +{ + QMap>::iterator at; + QMap::iterator it; + QMap tempMap; + int i = systemWidget->m_pInputListWidget->count(); + //增加端口 + for(at=m_pVolumeControl->inputPortMap.begin();at!=m_pVolumeControl->inputPortMap.end();) + { + tempMap = at.value(); + for (it=tempMap.begin();it!=tempMap.end();) { + //需添加到list widget + if (inputPortIsNeedAdd(at.key(),it.value())) { + UkuiListWidgetItem *itemW = new UkuiListWidgetItem(this); + QListWidgetItem * item = new QListWidgetItem(systemWidget->m_pInputListWidget); + item->setSizeHint(QSize(200,48)); //QSize(120, 40) spacing: 12px; + systemWidget->m_pInputListWidget->blockSignals(true); + systemWidget->m_pInputListWidget->setItemWidget(item, itemW); + systemWidget->m_pInputListWidget->blockSignals(false); + + itemW->setLabelText(it.value(),findCardName(at.key(),m_pVolumeControl->cardMap)); + currentInputPortLabelMap.insertMulti(at.key(),it.value()); + systemWidget->m_pInputListWidget->blockSignals(true); + systemWidget->m_pInputListWidget->insertItem(i,item); + systemWidget->m_pInputListWidget->blockSignals(false); + } + ++it; + } + ++at; + } +} + + +//查找指定声卡名的索引 +int UkmediaMainWidget::findCardIndex(QString cardName, QMap cardMap) +{ + QMap::iterator it; + + for(it=cardMap.begin();it!=cardMap.end();) { + if (it.value() == cardName) { + return it.key(); + } + ++it; + } + return -1; +} + +/* + * 根据声卡索引查找声卡名 + */ +QString UkmediaMainWidget::findCardName(int index,QMap cardMap) +{ + QMap::iterator it; + + for(it=cardMap.begin();it!=cardMap.end();) { + if (it.key() == index) { + return it.value(); + } + ++it; + } + return ""; +} + +QString UkmediaMainWidget::findHighPriorityProfile(int index,QString profile) +{ + QMap>::iterator it; + int priority = 0; + QString profileName = ""; + QMap profileNameMap; + QMap::iterator tempMap; + QString cardStr = findCardName(index,m_pVolumeControl->cardMap); + + QString profileStr = findCardActiveProfile(index) ; + + QStringList list = profileStr.split("+"); + QString includeProfile = ""; + + if (list.count() >1) { + if (profile.contains("output")) { + includeProfile = list.at(1); + } + else if (profile.contains("input")){ + includeProfile = list.at(0); + } + qDebug() << "profile str" <cardProfilePriorityMap.begin();it!=m_pVolumeControl->cardProfilePriorityMap.end();) { + if (it.key() == index) { + profileNameMap = it.value(); + for (tempMap=profileNameMap.begin();tempMap!=profileNameMap.end();) { +// qDebug() << "findHighPriorityProfile" << includeProfile < priority) { + priority = tempMap.value(); + profileName = tempMap.key(); + } + ++tempMap; + } + } + ++it; + } + qDebug() << "profile str----------" <>::iterator it; + QMap portNameMap; + QMap::iterator tempMap; + QString sinkStr = ""; + for (it=m_pVolumeControl->sinkPortMap.begin();it!=m_pVolumeControl->sinkPortMap.end();) { + if(it.key() == index) { + portNameMap = it.value(); + for (tempMap=portNameMap.begin();tempMap!=portNameMap.end();) { + if (tempMap.value() == portName) { + sinkStr = tempMap.key(); +// qDebug() <<"find port sink" << tempMap.value() << portName << tempMap.key() <>::iterator it; + QMap portNameMap; + QMap::iterator tempMap; + QString sourceStr = ""; + for (it=m_pVolumeControl->sourcePortMap.begin();it!=m_pVolumeControl->sourcePortMap.end();) { + if(it.key() == index) { + portNameMap = it.value(); + for (tempMap=portNameMap.begin();tempMap!=portNameMap.end();) { + qDebug() << "findportsource ===" <>::iterator it; + QMapportMap; + QMap::iterator tempMap; + QString portName = ""; + for (it = m_pVolumeControl->outputPortMap.begin();it != m_pVolumeControl->outputPortMap.end();) { + if (it.key() == index) { + portMap = it.value(); + for (tempMap = portMap.begin();tempMap!=portMap.end();) { + if (tempMap.value() == portLabel) { + portName = tempMap.key(); + break; + } + ++tempMap; + } + } + ++it; + } + return portName; +} + +/* + 查找名称为PortName 的portLabel +*/ +QString UkmediaMainWidget::findOutputPortLabel(int index,QString portName) +{ + QMap>::iterator it; + QMapportMap; + QMap::iterator tempMap; + QString portLabel = ""; + for (it = m_pVolumeControl->outputPortMap.begin();it != m_pVolumeControl->outputPortMap.end();) { + if (it.key() == index) { + portMap = it.value(); + for (tempMap = portMap.begin();tempMap!=portMap.end();) { +// qDebug() <<"findOutputPortLabel" <>::iterator it; + QMapportMap; + QMap::iterator tempMap; + QString portName = ""; + for (it = m_pVolumeControl->inputPortMap.begin();it != m_pVolumeControl->inputPortMap.end();) { + if (it.key() == index) { + portMap = it.value(); + for (tempMap = portMap.begin();tempMap!=portMap.end();) { + if (tempMap.value() == portLabel) { + portName = tempMap.key(); + break; + } + ++tempMap; + } + } + ++it; + } + return portName; +} + +/* + 查找名称为PortName 的portLabel +*/ +QString UkmediaMainWidget::findInputPortLabel(int index,QString portName) +{ + QMap>::iterator it; + QMapportMap; + QMap::iterator tempMap; + QString portLabel = ""; + for (it = m_pVolumeControl->inputPortMap.begin();it != m_pVolumeControl->inputPortMap.end();) { + if (it.key() == index) { + portMap = it.value(); + for (tempMap = portMap.begin();tempMap!=portMap.end();) { + if (tempMap.key() == portName) { + portLabel = tempMap.value(); + break; + } + ++tempMap; + } + } + ++it; + } + return portLabel; +} + +/* + * 设置声卡的配置文件 + */ +void UkmediaMainWidget::setCardProfile(QString name, QString profile) +{ + int index = findCardIndex(name,m_pVolumeControl->cardMap); + m_pVolumeControl->setCardProfile(index,profile.toLatin1().data()); +} + +/* + * 设置默认的输出设备端口 + */ +void UkmediaMainWidget::setDefaultOutputPortDevice(QString devName, QString portName) +{ + int cardIndex = findCardIndex(devName,m_pVolumeControl->cardMap); + QString portStr = findOutputPortName(cardIndex,portName); + QTimer *timer = new QTimer; + timer->start(100); + connect(timer,&QTimer::timeout,[=](){ + QString sinkStr = findPortSink(cardIndex,portStr); + if(!m_pVolumeControl->customSoundFile->isExist(stringRemoveUnrecignizedChar(portStr)) && !strcmp(sinkStr.toLatin1().data(),"") == 0 ) + { + QTimer::singleShot(50, this, SLOT(initVolumeSlider())); + } + /*默认的stream 和设置的stream相同 需要更新端口*/ + if (strcmp(sinkStr.toLatin1().data(),m_pVolumeControl->defaultSinkName) == 0) { + m_pVolumeControl->setSinkPort(sinkStr.toLatin1().data(),portStr.toLatin1().data()); + } + else { + m_pVolumeControl->setDefaultSink(sinkStr.toLatin1().data()); + m_pVolumeControl->setSinkPort(sinkStr.toLatin1().data(),portStr.toLatin1().data()); + } + qDebug() << "setDefaultOutputPortDevice" << "cardIndex:" << cardIndex << "portStr:" << portStr << "sinkStr:" << sinkStr; + /* + bug:94489 修复选择默认设备时不弹osd弹窗问题 + */ + if (portStr.contains("speaker",Qt::CaseInsensitive)) + { + Q_EMIT m_pVolumeControl->device_changed_signal("audio-volume-high"); + } + else + { + Q_EMIT m_pVolumeControl->device_changed_signal("ukui-headset"); + } + + delete timer; + }); +} + +/* + * 设置默认的输入设备端口 + */ +void UkmediaMainWidget::setDefaultInputPortDevice(QString devName, QString portName) +{ + int cardIndex = findCardIndex(devName,m_pVolumeControl->cardMap); + QString portStr = findInputPortName(cardIndex,portName); + QString sourceStr = findPortSource(cardIndex,portStr); + + /*默认的stream 和设置的stream相同 需要更新端口*/ + if (strcmp(sourceStr.toLatin1().data(),m_pVolumeControl->defaultSourceName) == 0) { + m_pVolumeControl->setSourcePort(sourceStr.toLatin1().data(),portStr.toLatin1().data()); + } + else { + m_pVolumeControl->setDefaultSource(sourceStr.toLatin1().data()); + m_pVolumeControl->setSourcePort(sourceStr.toLatin1().data(),portStr.toLatin1().data()); + } + qDebug() << "set default input" << portName <::iterator it; + for (it=m_pVolumeControl->cardActiveProfileMap.begin();it!=m_pVolumeControl->cardActiveProfileMap.end();) { + if (it.key() == index) { + activeProfileName = it.value(); + break; + } + ++it; + } + return activeProfileName; +} + +void UkmediaMainWidget::findOutputListWidgetItem(QString cardName,QString portLabel) +{ + for (int row=0;rowm_pOutputListWidget->count();row++) { + + QListWidgetItem *item = systemWidget->m_pOutputListWidget->item(row); + UkuiListWidgetItem *wid = (UkuiListWidgetItem *)systemWidget->m_pOutputListWidget->itemWidget(item); + qDebug() << "findOutputListWidgetItem" << "cardName:" << cardName << wid->deviceLabel->text() << "portName:" << portLabel << wid->portLabel->fullText; + if (wid->deviceLabel->text() == cardName && portLabel == wid->portLabel->fullText) { + systemWidget->m_pOutputListWidget->blockSignals(true); + systemWidget->m_pOutputListWidget->setCurrentRow(row); + wid->deviceButton->buttonState = PUSH_BUTTON_CLICK; + wid->deviceButton->setActive(true); + setDeviceButtonState(row); + systemWidget->m_pOutputListWidget->blockSignals(false); + wid->deviceButton->repaint(); + break; + } + } + if(!m_pVolumeControl->customSoundFile->isExist(m_pVolumeControl->sinkPortName) && m_pVolumeControl->sinkPortName != "" ) + { + QTimer::singleShot(50, this, SLOT(initVolumeSlider())); + } +} + +void UkmediaMainWidget::findInputListWidgetItem(QString cardName,QString portLabel) +{ + for (int row=0;rowm_pInputListWidget->count();row++) { + QListWidgetItem *item = systemWidget->m_pInputListWidget->item(row); + UkuiListWidgetItem *wid = (UkuiListWidgetItem *)systemWidget->m_pInputListWidget->itemWidget(item); + qDebug() << "findInputListWidgetItem" << "card name:" << cardName << "deviceLabel:" << wid->deviceLabel->text() << "portname" << portLabel << "portLabel:" << wid->portLabel->fullText ; + if (wid->deviceLabel->text() == cardName && wid->portLabel->fullText == portLabel) { + systemWidget->m_pInputListWidget->blockSignals(true); + systemWidget->m_pInputListWidget->setCurrentRow(row); + systemWidget->m_pInputListWidget->blockSignals(false); + if (wid->deviceLabel->text().contains("bluez_card")) + isCheckBluetoothInput = true; + qDebug() << "set input list widget" << row; + break; + } + } + if(!m_pVolumeControl->customSoundFile->isExist(m_pVolumeControl->sourcePortName) && m_pVolumeControl->sourcePortName != "" ) + { + QTimer::singleShot(50, this, SLOT(initVolumeSlider())); + } +} + +/* + * 输入设备中是否包含蓝牙设备 + */ +bool UkmediaMainWidget::inputDeviceContainBluetooth() +{ + for (int row=0;rowm_pInputListWidget->count();row++) { + + QListWidgetItem *item = systemWidget->m_pInputListWidget->item(row); + UkuiListWidgetItem *wid = (UkuiListWidgetItem *)systemWidget->m_pInputListWidget->itemWidget(item); + if (wid->deviceLabel->text().contains("bluez")) { + return true; + } + } + return false; +} + +/* + * 移除xml文件中不能识别的字符 + */ +QString UkmediaMainWidget::stringRemoveUnrecignizedChar(QString str) +{ + str.remove(" "); + str.remove("/"); + str.remove("("); + str.remove(")"); + str.remove("["); + str.remove("]"); + return str; +} + + +QString UkmediaMainWidget::blueCardName() +{ + for (int row=0;rowm_pInputListWidget->count();row++) { + + QListWidgetItem *item = systemWidget->m_pInputListWidget->item(row); + UkuiListWidgetItem *wid = (UkuiListWidgetItem *)systemWidget->m_pInputListWidget->itemWidget(item); + if (wid->deviceLabel->text().contains("bluez")) { + return wid->deviceLabel->text(); + } + } + return ""; +} + +/** + * @brief MainWindow::keyPressEvent 按esc键关闭主界面 + * @param event + */ +void UkmediaMainWidget::keyPressEvent(QKeyEvent *event) +{ + if (event->key() == Qt::Key_Escape) { + hideWindow(); + } + return QWidget::keyPressEvent(event); +} + +/* + *在path路径下找包含str字段的文件名(暂时用来寻找wine微信) + */ +QString UkmediaMainWidget::findFile(const QString path,QString str) +{ + QDir dir(path); + QString filename = ""; + if(!dir.exists()) + { + return ""; + } + + //获取filePath下所有文件夹和文件 + dir.setFilter(QDir::Dirs | QDir::Files | QDir::NoDotAndDotDot);//文件夹|文件|不包含./和../ + + //排序文件夹优先 + dir.setSorting(QDir::DirsFirst); + + QStringList filer; + QStringList list= dir.entryList(filer, QDir::Files | QDir::NoDotAndDotDot); + + if(list.size() == 0) + { + return ""; + } + + for(int i = 0; i < list.size(); i++) + { + QFileInfo fileInfo = list.at(i); + if(fileInfo.isDir())//判断是否为文件夹 + { + findFile(fileInfo.filePath(),str);//递归开始 + } + else + { + if(fileInfo.fileName().contains(str) && !fileInfo.fileName().contains("企业微信") && !fileInfo.fileName().contains("卸载微信"))//设定后缀 + { + filename = fileInfo.fileName(); + qDebug() << "在/usr/share/applications/找到文件" << filename; + break; + } + } + } + return filename; +} + +void UkmediaMainWidget::inhibit() +{ + if (m_inhibitFileDescriptor.isValid()) { + return; + } + + QDBusMessage message = QDBusMessage::createMethodCall("org.freedesktop.login1", + "/org/freedesktop/login1", + "org.freedesktop.login1.Manager", + QStringLiteral("Inhibit")); + message.setArguments(QVariantList({QStringLiteral("sleep"), + "Screen Locker", + "Ensuring that the screen gets locked before going to sleep", + QStringLiteral("delay")})); + QDBusPendingReply reply = QDBusConnection::systemBus().call(message); + if (!reply.isValid()) { + return; + } + reply.value().swap(m_inhibitFileDescriptor); +} + +void UkmediaMainWidget::uninhibit() +{ + if (!m_inhibitFileDescriptor.isValid()) { + return; + } + m_inhibitFileDescriptor = QDBusUnixFileDescriptor(); +} + +UkmediaMainWidget::~UkmediaMainWidget() +{ + +} diff --git a/ukui-volume-control-applet-qt/ukmedia_main_widget.h b/ukui-volume-control-applet-qt/ukmedia_main_widget.h new file mode 100644 index 0000000..cc7bd60 --- /dev/null +++ b/ukui-volume-control-applet-qt/ukmedia_main_widget.h @@ -0,0 +1,358 @@ +/* + * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * + * 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, 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 +#include +#include +#include "ukmedia_application_volume_widget.h" +#include "ukmedia_osd_display_widget.h" +#include "ukmedia_custom_sound.h" +#include "ukui_media_set_headset_widget.h" +#include "ukmedia_volume_control.h" +#include "ukui_list_widget_item.h" +#include "ukmedia_system_volume_widget.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +extern "C" { +#include +#include +#include +#include +} +#include +#include + +#define HAVE_EXT_DEVICE_RESTORE_API PA_CHECK_VERSION(0,99,0) + +#define UKUI_THEME_SETTING "org.ukui.style" +#define UKUI_TRANSPARENCY_SETTING "org.ukui.control-center.personalise" +#define UKUI_THEME_NAME "style-name" //主题名称 +#define UKUI_THEME_WHITE "ukui-default" //默认主题 +#define UKUI_THEME_BLACK "ukui-dark" //深色主题 +#define PORT_NUM 5 + +//为平板模式提供设置音量值 +#define UKUI_VOLUME_BRIGHTNESS_GSETTING_ID "org.ukui.quick-operation.panel" +#define UKUI_VOLUME_KEY "volumesize" //音量大小 +#define UKUI_VOLUME_STATE "soundstate" //音量状态 + + +#define KEY_SOUNDS_SCHEMA "org.ukui.sound" +#define TIMER_TIMEOUT (2*1000) + +#define PA_VOLUME_NORMAL 65536.0 +#define UKMEDIA_VOLUME_NORMAL 100.0 +#define DBUS_NAME "org.ukui.SettingsDaemon" +#define DBUS_PATH "/org/ukui/SettingsDaemon/wayland" +#define DBUS_INTERFACE "org.ukui.SettingsDaemon.wayland" + +//第一次运行时初始化音量 +#define UKUI_AUDIO_SCHEMA "org.ukui.audio" //定制音量 +#define FIRST_RUN "first-run" //是否第一次运行 +#define HEADPHONE_OUTPUT_VOLUME "headphone-output-volume" +#define PLUGIN_INIT_VOLUME "plugin-init-volume" +#define INTEL_MIC "intel-mic" +#define REAR_MIC "rear-mic" +#define HEADSET_MIC "headset-mic" +#define LINEIN "linein" +#define SPEAKER "speaker" +#define HDMI "hdmi" +#define HEADPHONES_1 "headphones-1" +#define HEADPHONES_2 "headphones-2" + +#define HEADPHONE_VOLUME 17 +#define HDMI_VOLUME 100 +#define OUTPUT_VOLUME 67 +#define MIC_VOLUME 100 + +const QByteArray TRANSPARENCY_GSETTINGS = "org.ukui.control-center.personalise"; + +static const gchar *iconNameOutputs[] = { + "audio-volume-muted-symbolic", + "audio-volume-low-symbolic", + "audio-volume-medium-symbolic", + "audio-volume-high-symbolic", + NULL +}; + +static const gchar *iconNameInputs[] = { + "microphone-sensitivity-muted-symbolic", + "microphone-sensitivity-low-symbolic", + "microphone-sensitivity-medium-symbolic", + "microphone-sensitivity-high-symbolic", + NULL +}; + +typedef struct { + const pa_card_port_info *headphones; + const pa_card_port_info *headsetmic; + const pa_card_port_info *headphonemic; + const pa_card_port_info *internalmic; + const pa_card_port_info *internalspk; +} headsetPorts; + +class UkmediaMainWidget : public QMainWindow +{ + Q_OBJECT + Q_CLASSINFO("D-Bus Interface", "org.ukui.media")//ukui-media的dbus接口 +public: + explicit UkmediaMainWidget(QMainWindow *parent = nullptr); + ~UkmediaMainWidget(); + + void UkmediaDbusRegister(); //注册Dbus信号 + void initSystemTrayIcon(); //初始化系统托盘 + void initWidget(); //初始化弹出框 + void initVolumeLed();//初始化静音灯 + void initGsettings(); //初始化gsetting + void updateOutputListWidgetFont(); + void initAlertSound(); + void initSystemVolume(); //初始化系统音量 + void myLine(QFrame *volumeLine,QFrame *volumeSettingLine);//添加分隔线 + void dealSlot(); //处理槽函数 + void systemTrayMenuInit(); //初始化右键菜单 + + void initOutputListWidgetItem();//初始化默认选择的输出设备 + void initInputListWidgetItem();//初始化默认选择的输输入设备 + + QList listExistsPath(); //动态gseting列出存在的路径 + QString findFreePath(); //动态gsetting找到下一个为空的路径 + void addValue(QString name,QString filename); //动态gsetting添加键值 + QPixmap drawLightColoredPixmap(const QPixmap &source); //绘制高亮颜色图标 + QPixmap drawDarkColoredPixmap(const QPixmap &source); //绘制深色颜色图标 + void themeChangeIcons(); //主题更改时更新图标颜色 + + void advancedWidgetShow(); //显示advance widget + void hideWindow(); //隐藏窗口 + void inputVolumeDarkThemeImage(int value,bool status); //绘制input button颜色 + void outputVolumeDarkThemeImage(int value,bool status); //绘制output button颜色 + void drawImagColorFromTheme(UkuiButtonDrawSvg *button, QString iconStr); //绘制iamge颜色 + void setVolumeSettingValue(int value); //设置volume gsetting的值 + void setVolumeSettingMute(bool state); //设置volume gsetting的静音 + + int valueToPaVolume(int value); //滑动条值转换成音量 + int paVolumeToValue(int value); //音量值转换成滑动条值 + QString outputVolumeToIconStr(bool status,int volume); + + QString getAppName(QString desktopfp); //从desktop中获取应用名称 + QString getAppIcon(QString desktopfp); //从desktop中获取应用图标 + QString appNameToIconName(const gchar *appName,const gchar *appIconName); + + void initSubApplicationWidget(QString str); //子应用窗口布局 + + static gboolean verifyAlsaCard (int cardindex,gboolean *headsetmic,gboolean *headphonemic); + static headsetPorts *getHeadsetPorts (const pa_card_info *c); + void freePrivPortNames(); + + void setDeviceButtonState(int row); + void addOutputListWidgetItem(QString portName, QString portLabel,QString cardName); //添加output listWidget item + void addInputListWidgetItem(QString portName, QString cardName); //添加input listwidget item + + int findCardIndex(QString cardName, QMap cardMap);//查找声卡指定的索引 + QString findCardName(int index,QMap cardMap); + QString findHighPriorityProfile(int index,QString profile); + QString findPortSink(int index,QString portName); + QString findPortSource(int index,QString portName); + + bool outputPortIsNeedDelete(int index,QString name);//port是否需要在outputListWidget删除 + bool outputPortIsNeedAdd(int index,QString name);//port是否需要在outputListWidget删除 + bool inputPortIsNeedDelete(int index,QString name);//port是否需要在inputListWidget删除 + bool inputPortIsNeedAdd(int index,QString name);//port是否需要在inputListWidget删除 + + int indexOfOutputPortInOutputListWidget(QString portName); + int indexOfInputPortInInputListWidget(QString portName); + + void deleteNotAvailableOutputPort(); //删除不可用的输出端口 + void addAvailableOutputPort(); //添加可用输出端口 + void deleteNotAvailableInputPort(); //删除不可用的输入端口 + void addAvailableInputPort(); //添加可用输入端口 + + QString findOutputPortName(int index,QString portLabel); //找到outputPortLabel对应的portName + QString findInputPortName(int index,QString portLabel); //找到inputPortLabel对应的portName + QString findOutputPortLabel(int index,QString portName); //查找名为portName对应的portLabel + QString findInputPortLabel(int index,QString portName); //查找名为portName对应的portLabel + void setCardProfile(QString name,QString profile); //设置声卡的配置文件 + void setDefaultOutputPortDevice(QString devName,QString portName); //设置默认的输出端口 + void setDefaultInputPortDevice(QString devName,QString portName); //设置默认的输入端口 + QString findCardActiveProfile(int index); //查找声卡的active profile + QString stringRemoveUnrecignizedChar(QString str);//移除xml文件中不能识别的字符 + + void findOutputListWidgetItem(QString cardName,QString portLabel); + void findInputListWidgetItem(QString cardName,QString portLabel); + QString blueCardName(); //记录蓝牙声卡名称 + bool inputDeviceContainBluetooth(); + QString findFile(const QString path,QString str); + + void inhibit(); + void uninhibit(); + + +protected: + bool eventFilter(QObject *obj, QEvent *event); + void paintEvent(QPaintEvent *event); + void keyPressEvent(QKeyEvent *event); + +Q_SIGNALS: + void mouse_middle_clicked_signal(); + void mouse_wheel_signal(bool step); + void app_name_signal(QString app_name); + void theme_change(); + void font_change(); + + void device_changed_signal(QString dev_name);//设备更换信号 + +private Q_SLOTS: + void activatedSystemTrayIconSlot(QSystemTrayIcon::ActivationReason reason); //托盘图标 + void jumpControlPanelSlot(); //跳转到控制面板 + + void setHeadsetPort(QString str); //根据弹出框选择的切换不同的端口 + void handleTimeout(); //超时播放提示音 + void advancedSystemSliderChangedSlot(int value); //advancedSystemSlider值改变 + void systemVolumeSliderChangedSlot(int value); + void systemVolumeButtonClickedSlot(); + + void mouseMeddleClickedTraySlot(); //鼠标中间贱点击托盘图标 + void trayWheelRollEventSlot(bool step); //鼠标滚轮在托盘图标上滚动 + + void appWidgetMuteButtonCLickedSlot();//应用音量静音按钮点击 + + void ukuiThemeChangedSlot(const QString &themeStr); //主题改变 + void fontSizeChangedSlot(const QString &themeStr); //字体大小改变 + void volumeSettingChangedSlot(); //volume gseting值改变 + void initVolumeSlider(); //初始化滑动条 + int initDefaultVolume(int sinkVolume);//初始化默认音量 + + + void addAppToAppwidget(const gchar *name,const gchar *iconName,int index,int channel); //添加应用 + void removeSubAppWidget(const gchar *m_pAppName); //移除子应用窗口 + void sinkInputVolumeChangedSlot(const gchar *name,const gchar *iconName,int index); + + //添加拔插headset提示 + void checkAudioDeviceSelectionNeeded (const pa_card_info *info); + void updateDevicePort(); + void updateListWidgetItemSlot(); //更新输出设备列表 + void outputListWidgetCurrentRowChangedSlot(int row); //output list widget选项改变 + void inputListWidgetCurrentRowChangedSlot(int row); //output list widget选项改变 + void updateAppVolume(QString str, int value, bool state); + + + void deviceChangedShowSlot(QString dev_name);//osd提示弹窗 + void osdDisplayWidgetHide(); //osd超时隐藏 + + void onTransChanged(); + void paintWithTrans(); + + void onPrepareForSleep(bool sleep); + +private: + QLabel *systemWidgetLabel; + QLabel *appWidgetLabel; + QHBoxLayout * m_tabBarLayout = nullptr; + + UkmediaVolumeControl *m_pVolumeControl; + UkmediaSystemVolumeWidget *systemWidget; + QTabWidget *m_pTabWidget; + ApplicationVolumeWidget *appWidget; //应用界面窗口 + UkmediaOsdDisplayWidget *osdWidget; + UkuiMediaSetHeadsetWidget *headsetWidget; //当声卡中有headsetmic 端口时插入4段式耳机的弹窗 + + UkmediaOsdDisplayWidget *headset; //需求:输出设备插拔提示弹出 + + QFrame *volumeLine; + QFrame *volumeSettingLine; + + MyTimer *timer; //定时器 + QMenu *menu; //右键菜单 + GSettings *m_pSoundSettings; + QGSettings *m_pThemeSetting; //主题gsettting + QGSettings *m_pTransparencySetting; //透明度gestting + QGSettings *m_pVolumeSetting; // + QGSettings *m_pFontSetting; //字体gsetting + QGSettings *m_pInitSystemVolumeSetting; //初始化系统音量 + + QGSettings * m_pTransGsettings; //透明度配置文件 + double m_pTransparency=0.0; //透明度 + + UkmediaTrayIcon *soundSystemTrayIcon; //系统托盘 + QAction *m_pSoundPreferenceAction; //声音首选项菜单项 + + QStringList *eventList; //提示声音类型列表 + QStringList *eventIdNameList; //提示声音名称列表 + + QMap currentOutputPortLabelMap; + QMap currentInputPortLabelMap; + int headsetCard; //headset 声卡 + gboolean hasHeadsetmic; //是否包含headset mic端口 + gboolean hasHeadphonemic; //是否包含headphone mic端口 + gboolean headsetPluggedIn; //headpset 是否插入 + char *m_pHeadphonesName; //headphone名称 + char *m_pHeadsetmicName; // + char *m_pHeadphonemicName; + char *m_pInternalspkName; + char *m_pInternalmicName; + + QTimer *m_pTimer; + QTimer *m_pTimer2; + bool mouseReleaseState = false; //鼠标释放状态 + bool mousePress = false; //鼠标按下状态 + bool shortcutMute = false; + bool firstEntry = true; + bool inputFirstEntry = true; + bool isFirstMuteLed = true; + + QProcess *m_process; + QString mThemeName = UKUI_THEME_WHITE; + bool firstEnterSystem = true; + ca_context *caContext; + bool firstLoad = true; + + bool isPlay = true; //用于避免运行托盘时第一次响起的提示音 + bool sinkInputMute = false; + bool isFirstRecive = true; + bool isAppMuteBtnPress = false; + int updateAppVolumeCount = 0; + int outputListWidgetRow = -1; + + QDBusUnixFileDescriptor m_inhibitFileDescriptor; +}; + +#endif // UKMEDIAMAINWIDGET_H diff --git a/ukui-volume-control-applet-qt/ukmedia_monitor_window_thread.cpp b/ukui-volume-control-applet-qt/ukmedia_monitor_window_thread.cpp new file mode 100644 index 0000000..2c601db --- /dev/null +++ b/ukui-volume-control-applet-qt/ukmedia_monitor_window_thread.cpp @@ -0,0 +1,118 @@ +/* + * Copyright 2020. kylinos.cn. + * + * 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, 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 +UkmediaMonitorWindowThread::UkmediaMonitorWindowThread() +{ + bStopThread = false; + bCreateWindow = false; + bFirstEnterSystem = true; +} + +void UkmediaMonitorWindowThread::get_window_nameAndid() +{ + Display *display; + Window rootwin; + display = XOpenDisplay( NULL ); + rootwin = DefaultRootWindow( display ); + Atom atom = XInternAtom(display, "WM_DELETE_WINDOW", false); + XSelectInput( display, rootwin, SubstructureNotifyMask | ExposureMask);/*事件可以参考x.h*/ + XEvent event; +// while ( 1 ) +// { +// printf("get event\n"); + fflush(stdout); + while (true) { + XNextEvent(display, &event ); +// printf("event type is %d\n",event.type); + fflush(stdout); + if (event.type == Expose /*ReparentNotify*/ /*&& bCreateWindow == false*/) { + + printf("ReparentNotify\n\n"); + fflush(stdout); + if (bFirstEnterSystem == false) { + Window x11window; + Display *x11display; + char **srname = (char **)malloc(sizeof(char *)); + XReparentEvent *reparentevent = (XReparentEvent *)&event; + + //printf( "new window: %ld \n", (unsigned long)(reparentevent->window)); + //printf( "new parent: %ld \n", (unsigned long)(reparentevent->parent)); + fflush(stdout); + windowId.append((unsigned long)reparentevent->window); + /*获取到新建窗口的window ID*/ + x11window = (unsigned long)(reparentevent->window); + x11display =(reparentevent->display); + XFetchName(x11display, x11window, srname); + x11display = XOpenDisplay( NULL );/*!!!注意这里以后如果你想对获取到的window ID进行操作必须重新链接*/ + + fflush(stdout); + free(*srname); + bCreateWindow = true; + XCloseDisplay(x11display); + } + bFirstEnterSystem = false; + + } + else if (event.type == /*DestroyNotify*//*ClientMessage*/ UnmapNotify /*&&*/ /*bCreateWindow*/) { + bCreateWindow = false; + // 执行用户定义的关闭窗口操作 + fflush(stdout); + Window x11window; + Display *x11display; + char **srname = (char **)malloc(sizeof(char *)); + XUnmapEvent *reparentevent = (XUnmapEvent *)&event; + //printf( "close window: %ld \n", (unsigned long)(reparentevent->window)); + fflush(stdout); + if (windowId.contains((unsigned long)reparentevent->window)) { + int index = windowId.indexOf((unsigned long)reparentevent->window); + //printf( "remove ---------------------------- index : %d \n\n",index); + fflush(stdout); + windowId.removeAt(index); + } + /*获取到新建窗口的window ID*/ + x11window = (unsigned long)(reparentevent->window); + x11display =(reparentevent->display); + XFetchName(x11display, x11window, srname); + x11display = XOpenDisplay( NULL );/*!!!注意这里以后如果你想对获取到的window ID进行操作必须重新链接*/ + + fflush(stdout); + free(*srname); + XCloseDisplay(x11display); + } + } + XCloseDisplay(display); +} + +//线程执行函数 +void UkmediaMonitorWindowThread::run() +{ +// qDebug()<<"thread run!"; + bStopThread = false; + while(!bStopThread) + { +// printf("thread run! \n\n"); + fflush(stdout); + //to do what you want + get_window_nameAndid(); + //延时等待一会 + QEventLoop eventloop; + QTimer::singleShot(1000, &eventloop, SLOT(quit())); + eventloop.exec(); + } +} diff --git a/ukui-volume-control-applet-qt/ukmedia_monitor_window_thread.h b/ukui-volume-control-applet-qt/ukmedia_monitor_window_thread.h new file mode 100644 index 0000000..f2cdb4f --- /dev/null +++ b/ukui-volume-control-applet-qt/ukmedia_monitor_window_thread.h @@ -0,0 +1,50 @@ +/* + * Copyright 2020. kylinos.cn. + * + * 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, 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 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +class UkmediaMonitorWindowThread : public QThread +{ +public: + UkmediaMonitorWindowThread(); + void get_window_nameAndid(); + //结束线程标志位 + bool bStopThread; + bool bCreateWindow; + bool bFirstEnterSystem; + QVector windowId; + void run(); +}; + +#endif // UKMEDIAMONITORWINDOWTHREAD_H diff --git a/ukui-volume-control-applet-qt/ukmedia_osd_display_widget.cpp b/ukui-volume-control-applet-qt/ukmedia_osd_display_widget.cpp new file mode 100644 index 0000000..e1d0edd --- /dev/null +++ b/ukui-volume-control-applet-qt/ukmedia_osd_display_widget.cpp @@ -0,0 +1,167 @@ +/* + * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * + * 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, 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 +#include +#include +#include +#include +#include +#include + +extern double transparency; +UkmediaOsdDisplayWidget::UkmediaOsdDisplayWidget(QWidget *parent) : QWidget (parent) +{ + osdWidget = new QWidget(this); + iconButton = new QPushButton(this); + ret = 0; + iconButton->setFocusPolicy(Qt::NoFocus); + UkmediaOsdDisplayWidgetInit(); +// this->setMouseTracking(false); +// setWindowFlags(Qt::FramelessWindowHint|Qt::WindowStaysOnTopHint|Qt::X11BypassWindowManagerHint); +// this->setWindowFlags(Qt::FramelessWindowHint|Qt::ToolTip); + this->setWindowFlags(Qt::WindowStaysOnTopHint|Qt::Popup|Qt::ToolTip); +} + +/*! + * \brief + * \details + * 通过dbus获取任务栏位置 + */ +int UkmediaOsdDisplayWidget::getPanelPosition(QString str) +{ + QDBusInterface interface( "com.ukui.panel.desktop", + "/", + "com.ukui.panel.desktop", + QDBusConnection::sessionBus() ); + QDBusReply reply = interface.call("GetPanelPosition", str); + if (reply < 0) + return 0; + return reply; +} + +/*! + * \brief + * \details + * 通过dbus获取任务栏高度 + */ +int UkmediaOsdDisplayWidget::getPanelHeight(QString str) +{ + QDBusInterface interface( "com.ukui.panel.desktop", + "/", + "com.ukui.panel.desktop", + QDBusConnection::sessionBus() ); + QDBusReply reply = interface.call("GetPanelSize", str); + if (reply <= 0) + return 46; + return reply; +} + +void UkmediaOsdDisplayWidget::UkmediaOsdDisplayWidgetInit() +{ + QVBoxLayout *hLayout = new QVBoxLayout(); + hLayout->addWidget(iconButton); + osdWidget->setLayout(hLayout); + + int margin = 12; + osdWidget->layout()->setContentsMargins(margin,margin,margin,margin); + + this->setFixedSize(72,72); + this->iconButton->setFixedSize(48,48); + + QSize iconSize(48,48); + this->iconButton->setIconSize(iconSize); + + this->setAttribute(Qt::WA_TranslucentBackground); + QPalette palete = iconButton->palette(); + palete.setColor(QPalette::Highlight,Qt::transparent); + palete.setBrush(QPalette::Button,QBrush(QColor(245,245,245,0.75))); + iconButton->setPalette(palete); + +// this->setStyleSheet("QWidget{background:rgba(245,245,245,0.75); border-radius:12px;}"); +// this->osdWidget->setStyleSheet("QWidget{background:rgba(245,245,245,0.75); border-radius:12px;}"); +// this->iconButton->setStyleSheet("QPushButton::hover{background:rgba(245,245,245,0.75);" +// "border-radius:4px;}" +// "QPushButton::pressed{background:rgba((245,245,245,0.75);" +// "border-radius:4px;padding-left:0px;}"); +} + +void UkmediaOsdDisplayWidget::UkmediaOsdSetIcon(QPixmap dev_Icon,QString themeType) +{ + QSize iconSize(48,48); + + if ( themeType == "ukui-white" || themeType == "ukui-light") { + this->iconButton->setStyleSheet("QPushButton{background:rgba(245,245,245,1);" + "border-radius:12px;padding-left:0px;}"); + this->setStyleSheet("QWidget{background:rgba(245,245,245,1); border-radius:12px;}"); + this->osdWidget->setStyleSheet("QWidget{background:rgba(245,245,245,1); border-radius:12px;}"); + this->iconButton->setStyleSheet("QPushButton::hover{background:rgba(245,245,245,1);" + "border-radius:4px;}" + "QPushButton::pressed{background:rgba((245,245,245,1);" + "border-radius:4px;padding-left:0px;}"); + } + else if (themeType == "ukui-dark" || themeType == "ukui-black" || themeType == "ukui-default") { + this->iconButton->setStyleSheet("QPushButton{background:rgba(23,24,26,1);" + "border-radius:12px;padding-left:0px;}"); + this->setStyleSheet("QWidget{background:rgba(23,24,26,1); border-radius:12px;}"); + this->osdWidget->setStyleSheet("QWidget{background:rgba(23,24,26,1); border-radius:12px;}"); + this->iconButton->setStyleSheet("QPushButton::hover{background:rgba(23,24,26,1);" + "border-radius:4px;}" + "QPushButton::pressed{background:rgba((23,24,26,1);" + "border-radius:4px;padding-left:0px;}"); + } + + + this->iconButton->setIconSize(iconSize); + this->iconButton->setProperty("useIconHighlightEffect",true); + this->iconButton->setProperty("iconHighlightEffectMode",true); +//this->iconButton->setIcon(QIcon(drawDarkColoredPixmap((QIcon::fromTheme(muteButtonStr).pixmap(iconSize))))); + this->setAttribute(Qt::WA_TranslucentBackground); + this->iconButton->setIcon(dev_Icon); +} + +void UkmediaOsdDisplayWidget::paintEvent(QPaintEvent *event) +{ + QStyleOption opt; + int rounded; + opt.init(this); + QPainter p(this); + double transparence = transparency * 255; + QColor color = palette().color(QPalette::Base); + color.setAlpha(transparence); + QBrush brush = QBrush(color); + p.setBrush(brush); + p.setPen(Qt::NoPen); + QPainterPath path; + opt.rect.adjust(0,0,0,0); + rounded = 12; + path.addRoundedRect(opt.rect,rounded,rounded); + p.setRenderHint(QPainter::Antialiasing); // 反锯齿; + p.drawRoundedRect(opt.rect,rounded,rounded); + this->setAttribute(Qt::WA_TranslucentBackground); + setProperty("blurRegion",QRegion(path.toFillPolygon().toPolygon())); + style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this); +// QWidget::paintEvent(event); + +} + + +UkmediaOsdDisplayWidget::~UkmediaOsdDisplayWidget() +{ + +} diff --git a/ukui-volume-control-applet-qt/ukmedia_osd_display_widget.h b/ukui-volume-control-applet-qt/ukmedia_osd_display_widget.h new file mode 100644 index 0000000..bece6f5 --- /dev/null +++ b/ukui-volume-control-applet-qt/ukmedia_osd_display_widget.h @@ -0,0 +1,50 @@ +/* + * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * + * 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, 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 +#include +#include +#include +#include +#include +#include +#include "customstyle.h" +#include "ukmedia_custom_class.h" +class UkmediaOsdDisplayWidget : public QWidget +{ +public: + UkmediaOsdDisplayWidget(QWidget *parent = nullptr); + ~UkmediaOsdDisplayWidget(); + int getPanelPosition(QString str); + int getPanelHeight(QString str); + + void UkmediaOsdDisplayWidgetInit(); + void UkmediaOsdSetIcon(QPixmap dev_Icon,QString themeType); + friend class DeviceSwitchWidget; +private: + QWidget *osdWidget; + double size; + QPushButton *iconButton; + int ret; +protected: + void paintEvent(QPaintEvent *event); +}; + +#endif // UKMEDIAOSDDISPLAYWIDGET_H diff --git a/ukui-volume-control-applet-qt/ukmedia_slider_tip_label_helper.cpp b/ukui-volume-control-applet-qt/ukmedia_slider_tip_label_helper.cpp new file mode 100644 index 0000000..d96f16b --- /dev/null +++ b/ukui-volume-control-applet-qt/ukmedia_slider_tip_label_helper.cpp @@ -0,0 +1,167 @@ +/* + * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * + * 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, 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 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "ukmedia_custom_class.h" + +MediaSliderTipLabel::MediaSliderTipLabel(){ + setAttribute(Qt::WA_TranslucentBackground); +} + +MediaSliderTipLabel::~MediaSliderTipLabel(){ +} + +void MediaSliderTipLabel::paintEvent(QPaintEvent *e) +{ + QStyleOptionFrame opt; + initStyleOption(&opt); + QStylePainter p(this); +// p.setBrush(QBrush(QColor(0x1A,0x1A,0x1A,0x4C))); + p.setBrush(QBrush(QColor(0xFF,0xFF,0xFF,0x33))); + p.setPen(Qt::NoPen); + p.drawRoundedRect(this->rect(), 1, 1); + QPainterPath path; + path.addRoundedRect(opt.rect,6,6); + p.setRenderHint(QPainter::Antialiasing); + setProperty("blurRegion",QRegion(path.toFillPolygon().toPolygon())); + p.drawPrimitive(QStyle::PE_PanelTipLabel, opt); + this->setProperty("blurRegion", QRegion(QRect(0, 0, 1, 1))); + QLabel::paintEvent(e); +} + +SliderTipLabelHelper::SliderTipLabelHelper(QObject *parent) :QObject(parent) +{ + m_pTiplabel = new MediaSliderTipLabel(); + m_pTiplabel->setWindowFlags(Qt::ToolTip); + m_pTiplabel->setFixedSize(52,30); + m_pTiplabel->setAlignment(Qt::AlignHCenter | Qt::AlignVCenter); +} + +void SliderTipLabelHelper::registerWidget(QWidget *w) +{ + w->removeEventFilter(this); + w->installEventFilter(this); +} + +void SliderTipLabelHelper::unregisterWidget(QWidget *w) +{ + w->removeEventFilter(this); +} + +bool SliderTipLabelHelper::eventFilter(QObject *obj, QEvent *e) +{ + auto slider = qobject_cast(obj); + if (obj == slider) { + switch (e->type()) { + case QEvent::MouseMove: { + QMouseEvent *event = static_cast(e); + mouseMoveEvent(obj, event); + return false; + } + case QEvent::MouseButtonRelease: { + QMouseEvent *event = static_cast(e); + mouseReleaseEvent(obj, event); + return false; + } + case QEvent::MouseButtonPress:{ + QMouseEvent *event = static_cast(e); + mousePressedEvent(obj,event); + } + + default: + return false; + } + } + return QObject::eventFilter(obj,e); +} + + +void SliderTipLabelHelper::mouseMoveEvent(QObject *obj, QMouseEvent *e) +{ + Q_UNUSED(e); + QRect rect; + QStyleOptionSlider m_option; + auto slider = qobject_cast(obj); +// auto slider = qobject_cast(obj); + slider->initStyleOption(&m_option); + rect = slider->style()->subControlRect(QStyle::CC_Slider, &m_option,QStyle::SC_SliderHandle,slider); + QPoint gPos = slider->mapToGlobal(rect.topLeft()); + QString percent; + percent = QString::number(slider->value()); + percent.append("%"); + m_pTiplabel->setText(percent); + m_pTiplabel->move(gPos.x()-(m_pTiplabel->width()/2)+9,gPos.y()-m_pTiplabel->height()-1); + m_pTiplabel->show(); +} + +void SliderTipLabelHelper::mouseReleaseEvent(QObject *obj, QMouseEvent *e) +{ + Q_UNUSED(obj); + Q_UNUSED(e); + m_pTiplabel->hide(); +} + +void SliderTipLabelHelper::mousePressedEvent(QObject *obj, QMouseEvent *e) +{ + Q_UNUSED(e); + QStyleOptionSlider m_option; + auto slider = qobject_cast(obj); + QRect rect; + //获取鼠标的位置,这里并不能直接从ev中取值(因为如果是拖动的话,鼠标开始点击的位置没有意义了) + double pos = e->pos().x() / (double)slider->width(); + slider->setValue(pos *(slider->maximum() - slider->minimum()) + slider->minimum()); + //向父窗口发送自定义事件event type,这样就可以在父窗口中捕获这个事件进行处理 + QEvent evEvent(static_cast(QEvent::User + 1)); + QCoreApplication::sendEvent(obj, &evEvent); + int value = pos *(slider->maximum() - slider->minimum()) + slider->minimum(); + + slider->initStyleOption(&m_option); + rect = slider->style()->subControlRect(QStyle::CC_Slider, &m_option,QStyle::SC_SliderHandle,slider); + QPoint gPos = slider->mapToGlobal(rect.topLeft()); + QString percent; + + percent = QString::number(slider->value());//(m_option.sliderValue); + percent.append("%"); + + m_pTiplabel->setText(percent); + m_pTiplabel->move(gPos.x()-(m_pTiplabel->width()/2)+9,gPos.y()-m_pTiplabel->height()-1); + m_pTiplabel->show(); +} + +// AppEventFilter +AppEventFilter::AppEventFilter() +{ +} + +bool AppEventFilter::eventFilter(QObject *obj, QEvent *e) +{ + Q_UNUSED(obj); + Q_UNUSED(e); + return false; +} + diff --git a/ukui-volume-control-applet-qt/ukmedia_slider_tip_label_helper.h b/ukui-volume-control-applet-qt/ukmedia_slider_tip_label_helper.h new file mode 100644 index 0000000..7b73409 --- /dev/null +++ b/ukui-volume-control-applet-qt/ukmedia_slider_tip_label_helper.h @@ -0,0 +1,64 @@ +/* + * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * + * 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, 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 +#include +#include "ukmedia_custom_class.h" + +class MediaSliderTipLabel:public QLabel +{ + public: + MediaSliderTipLabel(); + ~MediaSliderTipLabel(); +protected: + void paintEvent(QPaintEvent*); +}; + +class SliderTipLabelHelper : public QObject +{ + Q_OBJECT + friend class AppEventFilter; +public: + SliderTipLabelHelper(QObject *parent = nullptr); + ~SliderTipLabelHelper() {} + void registerWidget(QWidget *w); + void unregisterWidget(QWidget *w); + bool eventFilter(QObject *obj, QEvent *e); + + void mouseMoveEvent(QObject *obj, QMouseEvent *e); + void mouseReleaseEvent(QObject *obj, QMouseEvent *e); + void mousePressedEvent(QObject *obj,QMouseEvent *e); +private: + MediaSliderTipLabel *m_pTiplabel; +}; + +class AppEventFilter +{ + friend class SliderTipLabelHelper; +private: + explicit AppEventFilter(); + ~AppEventFilter() {} + + bool eventFilter(QObject *obj, QEvent *e); + + SliderTipLabelHelper *m_wm = nullptr; +}; + +#endif // SLIDERTIPLABELHELPER_H diff --git a/ukui-volume-control-applet-qt/ukmedia_system_volume_widget.cpp b/ukui-volume-control-applet-qt/ukmedia_system_volume_widget.cpp new file mode 100644 index 0000000..77e03ee --- /dev/null +++ b/ukui-volume-control-applet-qt/ukmedia_system_volume_widget.cpp @@ -0,0 +1,138 @@ +/* + * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * + * 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, 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 +#include +#include + +UkmediaSystemVolumeWidget::UkmediaSystemVolumeWidget(QWidget *parent) : QWidget(parent) +{ + m_pOutputListWidget = new QListWidget(this); + m_pInputListWidget = new QListWidget(this); + m_pSysSliderWidget = new QWidget(this); + + m_pOutputListWidget->setFixedSize(404,245);//系统音量输出下面的一个大窗口用来存放各种输出设备widget + m_pOutputListWidget->setFrameShape(QFrame::Shape::NoFrame); + QWidget *outputWidget = new QWidget(this); + outputWidget->setFixedSize(404,245); + QHBoxLayout *outputWidgetLayout = new QHBoxLayout; + outputWidgetLayout->addWidget(m_pOutputListWidget); + outputWidgetLayout->setSpacing(0); + outputWidgetLayout->setContentsMargins(0,0,8,0); + outputWidget->setLayout(outputWidgetLayout); + + + + m_pInputListWidget->hide(); + m_pSysSliderWidget->setFixedSize(412,48); + m_pSystemVolumeBtn = new UkuiMediaMuteButton(m_pSysSliderWidget); + m_pSystemVolumeBtn->setFixedSize(36,36); + m_pSystemVolumeBtn->setActive(true); + m_pSystemVolumeSlider = new UkmediaVolumeSlider(m_pSysSliderWidget); + m_pSystemVolumeSlider->setOrientation(Qt::Horizontal); + m_pSystemVolumeSlider->setFixedSize(273,48); + m_pSystemVolumeSlider->setRange(0,100); + + m_pSystemVolumeSliderLabel = new QLabel(m_pSysSliderWidget); + m_pSystemVolumeSliderLabel->setText("0%"); + m_pSystemVolumeSliderLabel->setFixedSize(55,48); + + //音量label布局 + m_pSystemVolumeLabel = new QLabel(this); + m_pSystemVolumeLabel->setText(tr("Volume")); + m_pSystemVolumeLabel->setFixedSize(404,20);//防止字体显示不全 + QWidget *systemVolumeLabelWidget = new QWidget(this); + systemVolumeLabelWidget->setFixedSize(404,20); + QHBoxLayout *systemVolumeLabelLayout = new QHBoxLayout; + systemVolumeLabelLayout->addWidget(m_pSystemVolumeLabel); + systemVolumeLabelWidget->setLayout(systemVolumeLabelLayout); + systemVolumeLabelLayout->setContentsMargins(16,0,0,0); + + //输出label布局 + m_pOutputLabel = new QLabel(this); + m_pOutputLabel->setText(tr("Output")); + m_pOutputLabel->setFixedSize(404,20); + QWidget *outputLabelWidget = new QWidget(this); + outputLabelWidget->setFixedSize(404,20); + QHBoxLayout *outputLabelLayout = new QHBoxLayout; + outputLabelLayout->addWidget(m_pOutputLabel); + outputLabelWidget->setLayout(outputLabelLayout); + outputLabelLayout->setContentsMargins(16,0,0,0); + + QPalette palette = m_pSystemVolumeLabel->palette(); + QColor color = palette.color(QPalette::PlaceholderText); + palette.setColor(QPalette::WindowText,color); + m_pSystemVolumeLabel->setPalette(palette); + m_pOutputLabel->setPalette(palette); + + volumeSettingButton = new UkuiSettingButton(volumeSettingFrame); + volumeSettingButton->setText(tr("Sound Settings")); + volumeSettingButton->setCursor(Qt::PointingHandCursor); + volumeSettingButton->setScaledContents(true); + + volumeSettingFrame = new QFrame(this); + volumeSettingFrame->setFixedHeight(52); + QHBoxLayout *volumeSettingLayout = new QHBoxLayout; + volumeSettingLayout->addWidget(volumeSettingButton); + volumeSettingLayout->addStretch(); + volumeSettingFrame->setLayout(volumeSettingLayout); + volumeSettingLayout->setContentsMargins(16,0,24,8); + + //系统音量滑动条布局 + QHBoxLayout *sysVolumeLay = new QHBoxLayout(); + sysVolumeLay->addWidget(m_pSystemVolumeBtn); + sysVolumeLay->addSpacing(8); + sysVolumeLay->addWidget(m_pSystemVolumeSlider); + sysVolumeLay->addWidget(m_pSystemVolumeSliderLabel); + sysVolumeLay->setSpacing(0); + m_pSystemVolumeSliderLabel->setAlignment(Qt::AlignCenter); + m_pSysSliderWidget->setLayout(sysVolumeLay); + sysVolumeLay->setContentsMargins(16,0,24,0); + + QVBoxLayout *mainLayout = new QVBoxLayout; + mainLayout->addWidget(systemVolumeLabelWidget); + mainLayout->addSpacing(8); + mainLayout->addWidget(m_pSysSliderWidget); + mainLayout->addSpacing(17); + mainLayout->addWidget(outputLabelWidget); + mainLayout->addSpacing(8); + mainLayout->addWidget(outputWidget); + mainLayout->addSpacing(8); + mainLayout->addWidget(volumeSettingFrame); + mainLayout->setSpacing(0); + this->setLayout(mainLayout); + mainLayout->setContentsMargins(8,16,0,0); + this->setFixedSize(420,436); + m_pOutputListWidget->setStyleSheet( + "QListWidget{" + "background-color:rgba(0,0,0,0);" + "padding-left:0;" + "padding-right:0;" + "padding-top:0;" + "padding-bottom:0;}" + "QListWidget::item{" + "background-color:rgba(0,0,0,0);" + "border-radius:6px;}" + ); + +// listwidget选中item项默认为蓝色,暂时没找到方法设置透明 +// QPalette pal = m_pOutputListWidget->palette(); +// pal.setBrush(QPalette::Base, QColor(0,0,0,0)); //背景透明 +// m_pOutputListWidget->setPalette(pal); +} + diff --git a/ukui-volume-control-applet-qt/ukmedia_system_volume_widget.h b/ukui-volume-control-applet-qt/ukmedia_system_volume_widget.h new file mode 100644 index 0000000..3101f83 --- /dev/null +++ b/ukui-volume-control-applet-qt/ukmedia_system_volume_widget.h @@ -0,0 +1,51 @@ +/* + * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * + * 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, 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 +#include +#include +#include +#include +#include "ukmedia_custom_class.h" + +class UkmediaSystemVolumeWidget : public QWidget +{ + Q_OBJECT +public: + explicit UkmediaSystemVolumeWidget(QWidget *parent = nullptr); + friend class UkmediaMainWidget; +Q_SIGNALS: + +private: + QListWidget *m_pInputListWidget; + QListWidget *m_pOutputListWidget; + QLabel *m_pOutputLabel; + QWidget *m_pSysSliderWidget; + QLabel *m_pSystemVolumeLabel; + UkmediaVolumeSlider *m_pSystemVolumeSlider; + QLabel *m_pSystemVolumeSliderLabel; + + QFrame *volumeSettingFrame; + UkuiSettingButton *volumeSettingButton; + + UkuiMediaMuteButton *m_pSystemVolumeBtn;//系统音量界面的音量按钮(点击可以静音) +}; + +#endif // UKMEDIASYSTEMVOLUMEWIDGET_H diff --git a/ukui-volume-control-applet-qt/ukmedia_volume_control.cpp b/ukui-volume-control-applet-qt/ukmedia_volume_control.cpp new file mode 100644 index 0000000..f13daae --- /dev/null +++ b/ukui-volume-control-applet-qt/ukmedia_volume_control.cpp @@ -0,0 +1,2111 @@ +/* + * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * + * 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, 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 +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include + +//pa_sink_info *m_pDefaultSink; +/* Used for profile sorting */ +struct profile_prio_compare { + bool operator() (pa_card_profile_info2 const * const lhs, pa_card_profile_info2 const * const rhs) const { + + if (lhs->priority == rhs->priority) + return strcmp(lhs->name, rhs->name) > 0; + + return lhs->priority > rhs->priority; + } +}; + +struct sink_port_prio_compare { + bool operator() (const pa_sink_port_info& lhs, const pa_sink_port_info& rhs) const { + + if (lhs.priority == rhs.priority) + return strcmp(lhs.name, rhs.name) > 0; + + return lhs.priority > rhs.priority; + } +}; + +struct source_port_prio_compare { + bool operator() (const pa_source_port_info& lhs, const pa_source_port_info& rhs) const { + + if (lhs.priority == rhs.priority) + return strcmp(lhs.name, rhs.name) > 0; + + return lhs.priority > rhs.priority; + } +}; + +UkmediaVolumeControl::UkmediaVolumeControl(): + + showSinkInputType(SINK_INPUT_CLIENT), + showSinkType(SINK_ALL), + showSourceOutputType(SOURCE_OUTPUT_CLIENT), + showSourceType(SOURCE_NO_MONITOR), + + canRenameDevices(false), + m_connected(false), + m_config_filename(nullptr) { + profileNameMap.clear(); + //创建声音初始化记录文件 + customSoundFile = new CustomSound(); + customSoundFile->createAudioFile(); + connectToPulse(this); + + if (reconnectTimeout >= 0) { + + } + + if (reconnectTimeout < 0) + showError(QObject::tr("Fatal Error: Unable to connect to PulseAudio").toUtf8().constData()); +} + +/* + * 设置输出设备静音 + */ +void UkmediaVolumeControl::setSinkMute(bool status) +{ + pa_operation* o; + + if (!(o = pa_context_set_sink_mute_by_index(getContext(), sinkIndex, status, nullptr, nullptr))) { + showError(tr("pa_context_set_sink_volume_by_index() failed").toUtf8().constData()); + } +} + +/* + * 设置输出设备音量 + */ +void UkmediaVolumeControl::setSinkVolume(int index,int value) +{ + pa_cvolume v = m_pDefaultSink->volume; + v.channels = channel; + for (int i=0;ivolume; + v.channels = inputChannel; + for (int i=0;i::iterator it; + for (it=sinkInputMuteMap.begin();it!=sinkInputMuteMap.end();) { + qDebug() << "getSinkInputMuted" << it.key() << description << it.value(); + if (it.key() == description) { + muteStatus = it.value(); + break; + } + ++it; + } + + return muteStatus==1?true:false; +} + +/* + * 滑动条更改设置sink input 音量值 + */ +void UkmediaVolumeControl::setSinkInputVolume(int index, int value,int channel) +{ + pa_cvolume v = m_pDefaultSink->volume; + + v.channels = channel; + for (int i=0;ivolume; + v.channels = sourceOutputChannel; + for (int i=0;isecond); + clientNames.erase(i); + } +} + +static void updatePorts(UkmediaVolumeControl *d, std::map &ports) { + std::map::iterator it; + PortInfo p; + for (auto & port : d->dPorts) { + QByteArray desc; + it = ports.find(port.first); + + if (it == ports.end()) + continue; + + p = it->second; + desc = p.description; + + if (p.available == PA_PORT_AVAILABLE_YES) + desc += UkmediaVolumeControl::tr(" (plugged in)").toUtf8().constData(); + else if (p.available == PA_PORT_AVAILABLE_NO) { + if (p.name == "analog-output-speaker" || + p.name == "analog-input-microphone-internal") + desc += UkmediaVolumeControl::tr(" (unavailable)").toUtf8().constData(); + else + desc += UkmediaVolumeControl::tr(" (unplugged)").toUtf8().constData(); + } + port.second = desc; + } + qDebug() << "updatePorts" << p.name << p.description; + + Q_EMIT d->updatePortSignal(); + + it = ports.find(d->activePort); + + if (it != ports.end()) { + p = it->second; +// d->setLatencyOffset(p.latency_offset); + } +} + +static void setIconByName(QLabel* label, const char* name) { + QIcon icon = QIcon::fromTheme(name); + int size = label->style()->pixelMetric(QStyle::PM_ToolBarIconSize); + QPixmap pix = icon.pixmap(size, size); + label->setPixmap(pix); +} + +int UkmediaVolumeControl::boolToInt(bool b) +{ + if (b == true) + return 1; + else + return 0; +} + +void UkmediaVolumeControl::updateCard(UkmediaVolumeControl *c, const pa_card_info &info) { + const char *description; + QMap tempInput; + QMap tempOutput; + QList profileName; + QMapportMap; + QMap outputPortNameLabelMap; + QMapinputPortNameLabelMap; + QMap profilePriorityMap; + std::set profile_priorities; + + description = pa_proplist_gets(info.proplist, PA_PROP_DEVICE_DESCRIPTION);//获取device.description字符串 + + hasSinks = c->hasSources = false; + profile_priorities.clear(); + for (pa_card_profile_info2 ** p_profile = info.profiles2; *p_profile != nullptr; ++p_profile) { +// c->hasSinks = c->hasSinks || ((*p_profile)->n_sinks > 0); +// c->hasSources = c->hasSources || ((*p_profile)->n_sources > 0); + profile_priorities.insert(*p_profile); + profileName.append((*p_profile)->name); + profilePriorityMap.insertMulti((*p_profile)->name,(*p_profile)->priority); + } + QList> cardProfilePriorityMapList; + if(cardProfilePriorityMap.isEmpty()) + cardProfilePriorityMap.insertMulti(info.index,profilePriorityMap); + + cardProfilePriorityMapList = cardProfilePriorityMap.values(); + if(!cardProfilePriorityMapList.contains(profilePriorityMap)) + cardProfilePriorityMap.insertMulti(info.index,profilePriorityMap); + + c->ports.clear(); + for (uint32_t i = 0; i < info.n_ports; ++i) { + PortInfo p; + p.name = info.ports[i]->name; + p.description = info.ports[i]->description; + p.priority = info.ports[i]->priority; + p.available = info.ports[i]->available; + p.direction = info.ports[i]->direction; + p.latency_offset = info.ports[i]->latency_offset; + if (info.ports[i]->profiles2)//bug#92426 该蓝牙音响存在输入端口无输入配置文件会导致段错误 + for (pa_card_profile_info2 ** p_profile = info.ports[i]->profiles2; *p_profile != nullptr; ++p_profile) { + p.profiles.push_back((*p_profile)->name); + } + if (p.direction == 1 && p.available != PA_PORT_AVAILABLE_NO) { +// portMap.insertMulti(p.name,p.description.data()); + + //新增UI设计,combobox显示portname+description + QString outputPortName = p.description.data();//端口名(如:扬声器,模拟耳机..) + QString outputPortName_and_description = outputPortName + "(" + description + ")"; + + tempOutput.insertMulti(p.name,outputPortName_and_description); + + QList portProfileName; + for (auto p_profile : p.profiles) { + portProfileName.append(p_profile.data()); + outputPortNameLabelMap.insertMulti(p.description.data(),p_profile.data()); + qDebug() << "ctf profilename map insert -----------" << p.description.data() << p_profile.data(); + } + profileNameMap.insert(info.index,outputPortNameLabelMap); + cardProfileMap.insert(info.index,portProfileName); + } + else if (p.direction == 2 && p.available != PA_PORT_AVAILABLE_NO){ + + qDebug() << " add source port name "<< info.index << p.name << p.description.data(); + QString inputPortName = p.description.data();//端口名(如:扬声器,模拟耳机..) + QString inputPortName_and_description = inputPortName + "(" + description + ")"; + + tempInput.insertMulti(p.name,inputPortName_and_description); + + for (auto p_profile : p.profiles) { + inputPortNameLabelMap.insertMulti(p.description.data(),p_profile.data()); + } + inputPortProfileNameMap.insert(info.index,inputPortNameLabelMap); + } + c->ports[p.name] = p; + } + inputPortMap.insert(info.index,tempInput); + outputPortMap.insert(info.index,tempOutput); + cardActiveProfileMap.insert(info.index,info.active_profile->name); + c->profiles.clear(); + for (auto p_profile : profile_priorities) { + bool hasNo = false, hasOther = false; + std::map::iterator portIt; + QByteArray desc = p_profile->description; + + for (portIt = c->ports.begin(); portIt != c->ports.end(); portIt++) { + PortInfo port = portIt->second; + + if (std::find(port.profiles.begin(), port.profiles.end(), p_profile->name) == port.profiles.end()) + continue; + + if (port.available == PA_PORT_AVAILABLE_NO) + hasNo = true; + else { + hasOther = true; + break; + } + } + if (hasNo && !hasOther) + desc += tr(" (unplugged)").toUtf8().constData(); + + if (!p_profile->available) + desc += tr(" (unavailable)").toUtf8().constData(); + + c->profiles.push_back(std::pair(p_profile->name, desc)); + if (p_profile->n_sinks == 0 && p_profile->n_sources == 0) + c->noInOutProfile = p_profile->name; + } + c->activeProfile = info.active_profile ? info.active_profile->name : ""; + + //bug 102001 针对hw990 9a0 panguv panguw,由于连上部分音箱后,创建蓝牙声卡时a2d_sink对应transport状态还是不可用的状态,因此进行延迟300ms的异常处理 + QString sessionType = getenv("XDG_SESSION_TYPE"); + if (sessionType.compare("wayland", Qt::CaseSensitive)) { + if (strstr(info.name,"bluez_card") && strcmp(info.active_profile->name,"off") == 0) { + qDebug() << "bluez card profile is off,need to set profile..."; + QTimer::singleShot(300,this,[=](){ + setCardProfile(info.index,"a2dp_sink"); + }); + } + } + + + /* Because the port info for sinks and sources is discontinued we need + * to update the port info for them here. */ + updatePorts(c,c->ports); + + Q_EMIT checkDeviceSelectionSianal(&info); +} + +/* + * Update output device when the default output device or port is updated + */ +bool UkmediaVolumeControl::updateSink(UkmediaVolumeControl *w,const pa_sink_info &info) { + bool is_new = false; + m_defaultSinkVolume = info.volume; + QMaptemp; + int volume; + if (info.volume.channels >= 2) + volume = MAX(info.volume.values[0],info.volume.values[1]); + else + volume = info.volume.values[0]; + if (info.active_port) + sinkActivePortMap.insert(info.name,info.active_port->name); + + //默认的输出音量 + if (strcmp(defaultSinkName.data(),info.name) == 0) { + channel = info.volume.channels; + channelMap = info.channel_map; + sinkIndex = info.index; + if (info.active_port) { + if((strcmp(info.active_port->name,sinkPortName.toLatin1().data()) != 0)){ + //拔出耳机转为扬声器时,音乐暂停信号 + if ((strstr(sinkPortName.toLatin1().data(),"headphone") || strstr(sinkPortName.toLatin1().data(),"Headphone")) \ + && strstr(info.active_port->name,"speaker") || strstr(info.active_port->name,"Speaker")) { + QDBusMessage message = QDBusMessage::createSignal("/","org.ukui.media","sinkPortChanged"); + message << "portChanged"; + QDBusConnection::sessionBus().send(message); + qDebug() << "sinkPortChanged" << sinkPortName; + } +// if(sinkPortName == "") +// { +// QDBusMessage message = QDBusMessage::createSignal("/","org.ukui.media","sinkPortChanged"); +// message << "portChanged"; +// QDBusConnection::sessionBus().send(message); +// qDebug() << "sinkPortChanged IN sinkindexCb with NO SINK" << w->sinkPortName; +// qDebug() << "sinkPortChanged" << sinkPortName; +// } + + sinkPortName = info.active_port->name; + //updateSinkFirstEnterFlag用来规避第一次出现osd弹窗提示的情况 + if(updateSinkFirstEnterFlag==false && !sinkPortName.contains("histen-algo",Qt::CaseInsensitive)){ + if (sinkPortName.contains("speaker",Qt::CaseInsensitive)) + Q_EMIT device_changed_signal("audio-volume-high"); + else + Q_EMIT device_changed_signal("ukui-headset"); + } + updateSinkFirstEnterFlag = false; + } + } + else { + if (sinkPortName != "") { + + sinkPortName = ""; + QDBusMessage message = QDBusMessage::createSignal("/","org.ukui.media","sinkPortChanged");//"sourcePortChanged"); + message << "portChanged"; + QDBusConnection::sessionBus().send(message); + qDebug() << "sinkPortChanged" << sinkPortName; + } + } + defaultOutputCard = info.card; + QString temp = ""; + balance = pa_cvolume_get_balance(&info.volume,&info.channel_map); +/* + bug:96232、95568、95523 解决 hw-panguw 机型,找不到对于sinkPortName导致音量无法同步、静音按钮只能按一次等问题 +*/ + if (sinkPortName.contains("histen-algo",Qt::CaseInsensitive)) { + sinkPortName = findSinkActivePortName(PANGUW_SINK); + temp = "histen-algo"; + } + + if(sinkMuted != info.mute) { + sinkMuted = info.mute; + Q_EMIT updateMute(sinkMuted); + } + if (sinkVolume != volume) { + if(temp != "") + sinkPortName = temp; + sinkVolume = volume; + sinkMuted = info.mute; + Q_EMIT updateVolume(sinkVolume); + } + } + qDebug() << "UpdateSink--->" << "sinkIndex:" << sinkIndex << "sinkPortName:" << sinkPortName << "sinkVolume:" << sinkVolume << "channel:" << channel; + + if (info.ports) { + for (pa_sink_port_info ** sinkPort = info.ports; *sinkPort != nullptr; ++sinkPort) { + temp.insertMulti(info.name,(*sinkPort)->name); + } + QList > sinkPortMapList; + if(sinkPortMap.isEmpty()) + sinkPortMap.insertMulti(info.card,temp); + sinkPortMapList = sinkPortMap.values(); + + if(!sinkPortMapList.contains(temp)) + sinkPortMap.insertMulti(info.card,temp); + + const char *icon; + std::set port_priorities; + + icon = pa_proplist_gets(info.proplist, PA_PROP_DEVICE_ICON_NAME); + + port_priorities.clear(); + for (uint32_t i=0; iports.clear(); + } + return is_new; +} + +QString UkmediaVolumeControl::stringRemoveUnrecignizedChar(QString str) { + str.remove(" "); + str.remove("/"); + str.remove("("); + str.remove(")"); + str.remove("["); + str.remove("]"); + return str; +} + + +/* + * stream suspend callback + */ +static void suspended_callback(pa_stream *s, void *userdata) { + UkmediaVolumeControl *w = static_cast(userdata); + + if (pa_stream_is_suspended(s)) { +// w->updateVolumeMeter(pa_stream_get_device_index(s), PA_INVALID_INDEX, -1); + } +} + +static void read_callback(pa_stream *s, size_t length, void *userdata) { + UkmediaVolumeControl *w = static_cast(userdata); + const void *data; + double v; + + if (pa_stream_peek(s, &data, &length) < 0) { + w->showError(UkmediaVolumeControl::tr("Failed to read data from stream").toUtf8().constData()); + return; + } + + if (!data) { + /* nullptr data means either a hole or empty buffer. + * Only drop the stream when there is a hole (length > 0) */ + if (length) + pa_stream_drop(s); + return; + } + + assert(length > 0); + assert(length % sizeof(float) == 0); + + v = ((const float*) data)[length / sizeof(float) -1]; + + pa_stream_drop(s); + + if (v < 0) + v = 0; + if (v > 1) + v = 1; +} + +pa_stream* UkmediaVolumeControl::createMonitorStreamForSource(uint32_t source_idx, uint32_t stream_idx = -1, bool suspend = false) { + pa_stream *s; + char t[16]; + pa_buffer_attr attr; + pa_sample_spec ss; + pa_stream_flags_t flags; + + ss.channels = 1; + ss.format = PA_SAMPLE_FLOAT32; + ss.rate = 25; + + memset(&attr, 0, sizeof(attr)); + attr.fragsize = sizeof(float); + attr.maxlength = (uint32_t) -1; + + snprintf(t, sizeof(t), "%u", source_idx); + m_pPaContext = getContext(); + if (!(s = pa_stream_new(getContext(), tr("Peak detect").toUtf8().constData(), &ss, nullptr))) { + showError(tr("Failed to create monitoring stream").toUtf8().constData()); + return nullptr; + } + + if (stream_idx != (uint32_t) -1) + pa_stream_set_monitor_stream(s, stream_idx); + + pa_stream_set_read_callback(s, read_callback, this); + pa_stream_set_suspended_callback(s, suspended_callback, this); + + flags = (pa_stream_flags_t) (PA_STREAM_DONT_MOVE | PA_STREAM_PEAK_DETECT | PA_STREAM_ADJUST_LATENCY | + (suspend ? PA_STREAM_DONT_INHIBIT_AUTO_SUSPEND : PA_STREAM_NOFLAGS) /*| + (!showVolumeMetersCheckButton->isChecked() ? PA_STREAM_START_CORKED : PA_STREAM_NOFLAGS)*/); + + if (pa_stream_connect_record(s, t, &attr, flags) < 0) { + showError(tr("Failed to connect monitoring stream").toUtf8().constData()); + pa_stream_unref(s); + return nullptr; + } + return s; +} + +void UkmediaVolumeControl::updateSource(const pa_source_info &info) { + int volume; + if (info.volume.channels >= 2) + volume = MAX(info.volume.values[0],info.volume.values[1]); + else + volume = info.volume.values[0]; + + //默认的输出音量 + if (strcmp(defaultSourceName.data(),info.name) == 0) { + inputChannel = info.volume.channels; + sourceIndex = info.index; + if (info.active_port) { + if (strcmp(info.active_port->name,sourcePortName.toLatin1().data()) != 0) { + sourcePortName = info.active_port->name; + QDBusMessage message = QDBusMessage::createSignal("/","org.ukui.media","sourcePortChanged"); + message << "portChanged"; + QDBusConnection::sessionBus().send(message); + qDebug() << "sourcePortChanged" << sourcePortName; + } + } + else { + if (sourcePortName != "") { + sourcePortName = ""; + QDBusMessage message = QDBusMessage::createSignal("/","org.ukui.media","sourcePortChanged"); + message << "portChanged"; + QDBusConnection::sessionBus().send(message); + qDebug() << "sourcePortChanged" << sourcePortName; + } + } + + defaultInputCard = info.card; + + if (sourceMuted != info.mute) { + sourceMuted = info.mute; + Q_EMIT updateSourceMute(sourceMuted); + } + + if (sourceVolume != volume) { + sourceMuted = info.mute; + sourceVolume = volume; + Q_EMIT updateSourceVolume(sourceVolume); + } + } + + QMaptemp; + if(info.ports) { + for (pa_source_port_info ** sourcePort = info.ports; *sourcePort != nullptr; ++sourcePort) { + temp.insertMulti(info.name,(*sourcePort)->name); + } + QList > sourcePortMapList; + if(sourcePortMap.isEmpty()) + sourcePortMap.insertMulti(info.card,temp); + sourcePortMapList = sourcePortMap.values(); + + if(!sourcePortMapList.contains(temp)) + sourcePortMap.insertMulti(info.card,temp); + + qDebug() << "UpdateSource--->" << "sourceIndex:" << sourceIndex << "sourcePortName:" << sourcePortName << "sourceVolume:" << sourceVolume << "inputChannel:" << inputChannel; + } +} + + +void UkmediaVolumeControl::setIconFromProplist(QLabel *icon, pa_proplist *l, const char *def) { + const char *t; + + if ((t = pa_proplist_gets(l, PA_PROP_MEDIA_ICON_NAME))) + goto finish; + + if ((t = pa_proplist_gets(l, PA_PROP_WINDOW_ICON_NAME))) + goto finish; + + if ((t = pa_proplist_gets(l, PA_PROP_APPLICATION_ICON_NAME))) + goto finish; + + if ((t = pa_proplist_gets(l, PA_PROP_MEDIA_ROLE))) { + + if (strcmp(t, "video") == 0 || + strcmp(t, "phone") == 0) + goto finish; + + if (strcmp(t, "music") == 0) { + t = "audio"; + goto finish; + } + + if (strcmp(t, "game") == 0) { + t = "applications-games"; + goto finish; + } + + if (strcmp(t, "event") == 0) { + t = "dialog-information"; + goto finish; + } + } + + t = def; + +finish: + + setIconByName(icon, t); +} + + +void UkmediaVolumeControl::updateSinkInput(const pa_sink_input_info &info) { + sinkInputChannel = info.volume.channels; + const char *t; + if ((t = pa_proplist_gets(info.proplist, "module-stream-restore.id"))) { + if (t && strcmp(t, "sink-input-by-media-role:event") == 0) { + g_debug("%s", tr("Ignoring sink-input due to it being designated as an event and thus handled by the Event widget").toUtf8().constData()); + return; + } + } + const gchar *description = pa_proplist_gets(info.proplist, PA_PROP_APPLICATION_NAME); + QString appId = pa_proplist_gets(info.proplist, PA_PROP_APPLICATION_ID); + QString appIconName = pa_proplist_gets(info.proplist,PA_PROP_APPLICATION_ICON_NAME);\ + const gchar *appBinary = pa_proplist_gets(info.proplist,PA_PROP_APPLICATION_PROCESS_BINARY); + if (appId == "") { + if (appIconName != "") { + appId = appIconName; + } + if (appBinary && strstr(appBinary,"kylin-video")) + { + appId = "kylin-video"; + appIconName = "kylin-video"; + description = "kylin-video"; + } + if (description && appBinary && strcmp(description,"Chromium") == 0 && appIconName == "chromium-browser" && strcmp(appBinary,"qqmusic") == 0) { + appId = "qqmusic"; + } + else if (description && strcmp(description,"kylin-recorder") == 0 ) { + appId = "kylin-recorder"; + } + else if (description && strcmp(description,"ALSA plug-in [ukui-sidebar]") == 0) { + appId = ""; + } + else if (description && strcmp(description,"Clock") == 0) { + appId = "ukui-clock"; + } + else if (description && strcmp(description,"Firefox") == 0) { + appId = "firefox-esr"; + } + else if (description && strcmp(description,"qaxbrowser") == 0) { + appId = "qaxbrowser-safe"; + } + //bug:92126,微信存在多种版本 + else if (description && strcmp(description,"wechat") == 0) { + appId = "electronic-wechat"; + appIconName = "electronic-wechat"; + description = "electronic-wechat"; + } + else if (description && strcmp(description,"WeChat.exe") == 0) { + appId = "wine-preloader"; + appIconName = "wine-preloader"; + description = "wine-preloader"; + } + else if (description && strcmp(description,"微信") == 0 ) { + appId = "wechat"; + appIconName = "wechat"; + description = "wechat"; + } + else if (appBinary && strstr(appBinary,"weixin")) { + appId = "weixin"; + appIconName = "weixin"; + description = "weixin"; + } + //fixed bug:100614、100610 无线投屏时应用音量界面里应用音量没有图标显示 + else if (description && (strcmp(description,"castplayer") == 0 || strcmp(description,"miraclecast") == 0 )) { + appId = "kylin-video"; + appIconName = "castplayer"; + description = "castplayer"; + } + + } + qDebug() << " updateSinkInput:" << "icon:"<< appIconName << "id" << appId <<"dess"<< description <<"bind"<< appBinary << info.volume.values[0] << (info.volume.values[0]/65536.0*100.0)+0.5; + //没制定应用名称的不加入到应用音量中 + if (description && !strstr(description,"QtPulseAudio") && !strstr(description,"ALSA")) { + // if (!info.corked) { + QMaptemp; + temp.insert(info.index,info.volume.values[0]); + sinkInputMuteMap.insert(description,info.mute); + sinkInputMap.insert(description,temp); + if (!sinkInputList.contains(description)) { + sinkInputList.append(description); + Q_EMIT addSinkInputSignal(description,appId.toLatin1().data(),info.index,info.volume.channels); + Q_EMIT sinkInputVolumeChangedSignal(description,appId.toLatin1().data(),info.index); + } + + Q_EMIT sinkInputVolumeChangedSignal(description,appId.toLatin1().data(),info.index); + } +/* + else { + qDebug() << "nnnnnnnnnn"; + Q_EMIT removeSinkInputSignal(description); + sinkInputList.removeAll(description); + QMap>::iterator it; + for(it = sinkInputMap.begin();it!=sinkInputMap.end();) + { + if (it.key() == description) { + sinkInputMuteMap.remove(description); + sinkInputMap.erase(it); + break; + } + ++it; + } + } + } +*/ +} + +void UkmediaVolumeControl::updateSourceOutput(const pa_source_output_info &info) { + sourceOutputChannel = info.volume.channels; + const char *app; + bool is_new = false; + + if ((app = pa_proplist_gets(info.proplist, PA_PROP_APPLICATION_ID))) + if (strcmp(app, "org.PulseAudio.pavucontrol") == 0 + || strcmp(app, "org.gnome.VolumeControl") == 0 + || strcmp(app, "org.kde.kmixd") == 0) + return; + + const gchar *description = pa_proplist_gets(info.proplist, PA_PROP_APPLICATION_NAME); + const gchar *appId = pa_proplist_gets(info.proplist, PA_PROP_APPLICATION_ID); + const gchar *appIconName = pa_proplist_gets(info.proplist, PA_PROP_APPLICATION_ICON_NAME); + + qDebug() << "updateSourceOutput" << "description:" << description << "id:" << appId << "appIconame:" <temp; + temp.insert(info.index,info.volume.values[0]); + sinkInputMuteMap.insert(description,info.mute); + sinkInputMap.insert(description,temp); + if (!sinkInputList.contains(description)) { + sinkInputList.append(description); + Q_EMIT addSinkInputSignal(description,appId,info.index,info.volume.channels); + } + Q_EMIT sinkInputVolumeChangedSignal(description,appId,info.index); + } + else { + Q_EMIT removeSinkInputSignal(description); + sinkInputList.removeAll(description); + QMap>::iterator it; + for(it = sinkInputMap.begin();it!=sinkInputMap.end();) + { + if (it.key() == description) { + sinkInputMap.erase(it); + sinkInputMuteMap.remove(description); + break; + } + ++it; + } + } + } +} + +void UkmediaVolumeControl::updateClient(const pa_client_info &info) { + g_free(clientNames[info.index]); + clientNames[info.index] = g_strdup(info.name); +} + +void UkmediaVolumeControl::updateServer(const pa_server_info &info) { + defaultSourceName = info.default_source_name ? info.default_source_name : ""; + defaultSinkName = info.default_sink_name ? info.default_sink_name : ""; + qDebug() << "updateServer" << "defaultSinkName " << defaultSinkName << "defaultSourceName" << defaultSourceName; + +} + +#if HAVE_EXT_DEVICE_RESTORE_API +void UkmediaVolumeControl::updateDeviceInfo(const pa_ext_device_restore_info &info) { +// if (sinkWidgets.count(info.index)) { +// SinkWidget *w; +// pa_format_info *format; + +// w = sinkWidgets[info.index]; + +// w->updating = true; + +// /* Unselect everything */ +// for (int j = 1; j < PAVU_NUM_ENCODINGS; ++j) +// w->encodings[j].widget->setChecked(false); + + +// for (uint8_t i = 0; i < info.n_formats; ++i) { +// format = info.formats[i]; +// for (int j = 1; j < PAVU_NUM_ENCODINGS; ++j) { +// if (format->encoding == w->encodings[j].encoding) { +// w->encodings[j].widget->setChecked(true); +// break; +// } +// } +// } + +// w->updating = false; +// } +} +#endif + + +void UkmediaVolumeControl::setConnectionState(gboolean connected) { + if (m_connected != connected) { + m_connected = connected; + if (m_connected) { +// connectingLabel->hide(); +// notebook->show(); + } else { +// notebook->hide(); +// connectingLabel->show(); + } + } +} + + +void UkmediaVolumeControl::removeCard(uint32_t index) { + +} + +void UkmediaVolumeControl::removeSink(uint32_t index) { + QMap::iterator it; + Q_EMIT removeSinkSignal(); + for (it=sinkMap.begin();it!=sinkMap.end();) { + if (it.key() == index) { + qDebug() << "removeSink" << index; + sinkMap.erase(it); + break; + } + ++it; + } +} + +void UkmediaVolumeControl::removeSource(uint32_t index) { + QMap::iterator it; + for (it=sourceMap.begin();it!=sourceMap.end();) { + if (it.key() == index) { + qDebug() << "removeSource" << index; + sourceMap.erase(it); + break; + } + ++it; + } +} + +void UkmediaVolumeControl::removeSinkInput(uint32_t index) { + QString description = ""; + QMap>::iterator it; + QMap::iterator at; + QMap temp; + for(it=sinkInputMap.begin();it!=sinkInputMap.end();) + { + temp = it.value(); + for (at=temp.begin();at!=temp.end();) { + if (at.key() == index) { + description = it.key(); + sinkInputMap.erase(it); + sinkInputMuteMap.remove(description); + Q_EMIT removeSinkInputSignal(description.toLatin1().data()); + return; + } + ++at; + } + ++it; + } +} + +void UkmediaVolumeControl::removeSourceOutput(uint32_t index) { + QString description = ""; + QMap>::iterator it; + QMap::iterator at; + QMap temp; + for(it=sinkInputMap.begin();it!=sinkInputMap.end();) + { + temp = it.value(); + for (at=temp.begin();at!=temp.end();) { + if (at.key() == index) { + description = it.key(); + sinkInputMap.erase(it); + sinkInputMuteMap.remove(description); + Q_EMIT removeSinkInputSignal(description.toLatin1().data()); + return; + } + ++at; + } + ++it; + } +} + +void UkmediaVolumeControl::removeClient(uint32_t index) { + g_free(clientNames[index]); + clientNames.erase(index); +} + +void UkmediaVolumeControl::setConnectingMessage(const char *string) { + QByteArray markup = ""; + if (!string) + markup += tr("Establishing connection to PulseAudio. Please wait...").toUtf8().constData(); + else + markup += string; + markup += ""; +} + +void UkmediaVolumeControl::showError(const char *txt) { + char buf[256]; + + snprintf(buf, sizeof(buf), "%s: %s", txt, pa_strerror(pa_context_errno(context))); + qDebug() <n_outstanding <= 0) + return; + + if (--w->n_outstanding <= 0) { + w->setConnectionState(true); + } +} + +void UkmediaVolumeControl::cardCb(pa_context *c, const pa_card_info *i, int eol, void *userdata) { + UkmediaVolumeControl *w = static_cast(userdata); + + if (eol < 0) { + if (pa_context_errno(c) == PA_ERR_NOENTITY) + return; + + w->showError(QObject::tr("Card callback failure").toUtf8().constData()); + return; + } + + if (eol > 0) { + decOutstanding(w); + return; + } + w->cardMap.insert(i->index,i->name); + + w->signalCount += 1; +// if(w->signalCount >= 2){ +// w->updateCard(w,*i); +// w->signalCount = 1; +// } + w->updateCard(w,*i); +} + +#if HAVE_EXT_DEVICE_RESTORE_API +static void ext_device_restore_subscribeCb(pa_context *c, pa_device_type_t type, uint32_t idx, void *userdata); +#endif + +void UkmediaVolumeControl::sinkIndexCb(pa_context *c, const pa_sink_info *i, int eol, void *userdata) { + UkmediaVolumeControl *w = static_cast(userdata); + if (eol < 0) { + if (pa_context_errno(c) == PA_ERR_NOENTITY) + return; + + w->showError(QObject::tr("Sink callback failure").toUtf8().constData()); + return; + } + + if (eol > 0) { + decOutstanding(w); + return; + } + int volume; + if(i->volume.channels >= 2) + volume = MAX(i->volume.values[0],i->volume.values[1]); + else + volume = i->volume.values[0]; + w->channel = i->volume.channels; + w->defaultOutputCard = i->card; + w->sinkIndex = i->index; + /* + 部分机器会出现sinkPort在updaeSink之前更新的情况 + */ + if(i->active_port) + { + QString portStr = i->active_port->name; + if (w->sinkPortName != i->active_port->name) + if (portStr.contains("speaker",Qt::CaseInsensitive)) + { + Q_EMIT w->device_changed_signal("audio-volume-high"); + } + else + { + Q_EMIT w->device_changed_signal("ukui-headset"); + } + w->sinkPortName = i->active_port->name; + } + else + w->sinkPortName = ""; + + if(w->sinkMuted != i->mute){ + w->sinkMuted = i->mute; + Q_EMIT w->updateMute(w->sinkMuted); + } + + if(w->sinkVolume != volume){ + w->sinkVolume = volume; + Q_EMIT w->updateVolume(w->sinkVolume); + } + + qDebug() << "sinkIndexCB" << w->sinkPortName; + + //拔出耳机转为扬声器时,音乐暂停信号 + QString currentCardName = i->name; + if(i->active_port && strcmp(i->active_port->name,"analog-output-speaker") == 0 && !currentCardName.contains("bluez",Qt::CaseInsensitive) + &&!currentCardName.contains("usb",Qt::CaseInsensitive)){ + int count = -1; + count = w->findOutputPort("analog-output-speaker"); + if(count == 0){ + if(w->firstgo == false){ + w->sendPortChangedSignal(); + qDebug() << "sinkPortChanged IN sinkindexCb" << w->sinkPortName; + } + w->firstgo = false; + } + } + if( w->sinkPortName == "") + { + if(w->firstGoWithNoSink == false){ + w->sendPortChangedSignal(); + qDebug() << "sinkPortChanged IN sinkindexCb with NO SINK" << w->sinkPortName; + } + w->firstGoWithNoSink = false; + } +} + +void UkmediaVolumeControl::sourceIndexCb(pa_context *c, const pa_source_info *i, int eol, void *userdata) { + UkmediaVolumeControl *w = static_cast(userdata); + if (eol < 0) { + if (pa_context_errno(c) == PA_ERR_NOENTITY) + return; + + w->showError(QObject::tr("Source callback failure").toUtf8().constData()); + return; + } + + if (eol > 0) { + decOutstanding(w); + return; + } + int volume; + if(i->volume.channels >= 2) + volume = MAX(i->volume.values[0],i->volume.values[1]); + else + volume = i->volume.values[0]; + + w->inputChannel = i->volume.channels; + w->defaultInputCard = i->card; + w->sourceIndex = i->index; + if(i->active_port) + w->sourcePortName = i->active_port->name; + else + w->sourcePortName = ""; + + if(w->sourceMuted != i->mute){ + w->sourceMuted = i->mute; + Q_EMIT w->updateSourceMute(w->sourceMuted); + } + + if(w->sourceVolume != volume){ + w->sourceVolume = volume; + Q_EMIT w->updateSourceVolume(w->sourceVolume); + } + + qDebug() << "sourceIndexCb---" << w->sourcePortName; +} + +void UkmediaVolumeControl::sinkCb(pa_context *c, const pa_sink_info *i, int eol, void *userdata) { + UkmediaVolumeControl *w = static_cast(userdata); + if (eol < 0) { + if (pa_context_errno(c) == PA_ERR_NOENTITY) + return; + + w->showError(QObject::tr("Sink callback failure").toUtf8().constData()); + return; + } + + if (eol > 0) { + decOutstanding(w); + return; + } + w->m_pDefaultSink = i; + qDebug() << "SinkCb" << "Volume:" << i->volume.values[0] << "isMute:" << i->mute << i->name; + w->sinkMap.insert(i->index,i->name); + w->updateSink(w,*i); +} + +void UkmediaVolumeControl::sourceCb(pa_context *c, const pa_source_info *i, int eol, void *userdata) { + UkmediaVolumeControl *w = static_cast(userdata); + if (eol < 0) { + if (pa_context_errno(c) == PA_ERR_NOENTITY) + return; + + w->showError(QObject::tr("Source callback failure").toUtf8().constData()); + return; + } + + if (eol > 0) { + decOutstanding(w); + return; + } + qDebug() << "SourceCb" << "Volume:" << i->volume.values[0] << "isMute:" << i->mute << i->name; + w->sourceIndex = i->index; + w->sourceMap.insert(i->index,i->name); + w->updateSource(*i); +} + +void UkmediaVolumeControl::sinkInputCb(pa_context *c, const pa_sink_input_info *i, int eol, void *userdata) { + UkmediaVolumeControl *w = static_cast(userdata); + if (eol < 0) { + if (pa_context_errno(c) == PA_ERR_NOENTITY) + return; + + w->showError(QObject::tr("Sink input callback failure").toUtf8().constData()); + return; + } + + if (eol > 0) { + decOutstanding(w); + return; + } + + w->updateSinkInput(*i); +} + +void UkmediaVolumeControl::sourceOutputCb(pa_context *c, const pa_source_output_info *i, int eol, void *userdata) { + UkmediaVolumeControl *w = static_cast(userdata); + + if (eol < 0) { + if (pa_context_errno(c) == PA_ERR_NOENTITY) + return; + + w->showError(QObject::tr("Source output callback failure").toUtf8().constData()); + return; + } + + if (eol > 0) { + decOutstanding(w); + return; + } + qDebug() << "sourceOutputCb" << i->name; + w->updateSourceOutput(*i); +} + +void UkmediaVolumeControl::clientCb(pa_context *c, const pa_client_info *i, int eol, void *userdata) { + UkmediaVolumeControl *w = static_cast(userdata); + + if (eol < 0) { + if (pa_context_errno(c) == PA_ERR_NOENTITY) + return; + + w->showError(QObject::tr("Client callback failure").toUtf8().constData()); + return; + } + + if (eol > 0) { + decOutstanding(w); + return; + } +// qDebug() << "clientCb" << i->name; + w->updateClient(*i); +} + +void UkmediaVolumeControl::serverInfoCb(pa_context *, const pa_server_info *i, void *userdata) { + UkmediaVolumeControl *w = static_cast(userdata); + + if (!i) { + w->showError(QObject::tr("Server info callback failure").toUtf8().constData()); + return; + } + + pa_operation *o; + //默认的输出设备改变时需要获取默认的输出音量 + if (strcmp(w->defaultSinkName.data(),i->default_sink_name) != 0) { + //默认输出改变时才走sinkindexcb + if(!(o = pa_context_get_sink_info_by_name(w->getContext(),i->default_sink_name,sinkIndexCb,w))) { + w->showError(tr("pa_context_get_sink_info_by_name() failed").toUtf8().constData()); + } + } + if(!(o = pa_context_get_source_info_by_name(w->getContext(),i->default_source_name,sourceIndexCb,w))){ + w->showError(tr("pa_context_get_source_info_by_name() failed").toUtf8().constData()); + } + + qDebug() << "serverInfoCb" << i->default_sink_name << i->default_source_name; + + w->updateServer(*i); + + QTimer::singleShot(100, w, SLOT(timeoutSlot())); + decOutstanding(w); +} + +void UkmediaVolumeControl::serverInfoIndexCb(pa_context *, const pa_server_info *i, void *userdata) { + UkmediaVolumeControl *w = static_cast(userdata); + + if (!i) { + w->showError(QObject::tr("Server info callback failure").toUtf8().constData()); + return; + } + pa_operation *o; + +// qDebug() << "serverInfoIndexCb" << i->default_sink_name << i->default_source_name; + w->updateServer(*i); + decOutstanding(w); +} + +void UkmediaVolumeControl::timeoutSlot() +{ + Q_EMIT deviceChangedSignal(); +} + +void UkmediaVolumeControl::extStreamRestoreReadCb( + pa_context *c, + const pa_ext_stream_restore_info *i, + int eol, + void *userdata) { + + UkmediaVolumeControl *w = static_cast(userdata); + + if (eol < 0) { + decOutstanding(w); + g_debug(QObject::tr("Failed to initialize stream_restore extension: %s").toUtf8().constData(), pa_strerror(pa_context_errno(c))); + return; + } + + if (eol > 0) { + decOutstanding(w); + return; + } +} + +void UkmediaVolumeControl::extStreamRestoreSubscribeCb(pa_context *c, void *userdata) { + UkmediaVolumeControl *w = static_cast(userdata); + pa_operation *o; + + if (!(o = pa_ext_stream_restore_read(c, extStreamRestoreReadCb, w))) { + w->showError(QObject::tr("pa_ext_stream_restore_read() failed").toUtf8().constData()); + return; + } + qDebug() << "extStreamRestoreSubscribeCb" ; + pa_operation_unref(o); +} + +#if HAVE_EXT_DEVICE_RESTORE_API +void ext_device_restore_read_cb( + pa_context *, + const pa_ext_device_restore_info *i, + int eol, + void *userdata) { + + UkmediaVolumeControl *w = static_cast(userdata); + + if (eol < 0) { + w->decOutstanding(w); + g_debug(QObject::tr("Failed to initialize device restore extension: %s").toUtf8().constData(), pa_strerror(pa_context_errno(context))); + return; + } + + if (eol > 0) { + w->decOutstanding(w); + return; + } + + /* Do something with a widget when this part is written */ + w->updateDeviceInfo(*i); +} + +static void ext_device_restore_subscribeCb(pa_context *c, pa_device_type_t type, uint32_t idx, void *userdata) { + UkmediaVolumeControl *w = static_cast(userdata); + pa_operation *o; + + if (type != PA_DEVICE_TYPE_SINK) + return; + + if (!(o = pa_ext_device_restore_read_formats(c, type, idx, ext_device_restore_read_cb, w))) { + w->showError(QObject::tr("pa_ext_device_restore_read_sink_formats() failed").toUtf8().constData()); + return; + } + + pa_operation_unref(o); +} +#endif + +void UkmediaVolumeControl::extDeviceManagerReadCb( + pa_context *c, + const pa_ext_device_manager_info *, + int eol, + void *userdata) { + + UkmediaVolumeControl *w = static_cast(userdata); + + if (eol < 0) { + decOutstanding(w); + g_debug(QObject::tr("Failed to initialize device manager extension: %s").toUtf8().constData(), pa_strerror(pa_context_errno(c))); + return; + } + + w->canRenameDevices = true; + + if (eol > 0) { + decOutstanding(w); + return; + } + qDebug() << "extDeviceManagerReadCb"; + /* Do something with a widget when this part is written */ +} + +void UkmediaVolumeControl::extDeviceManagerSubscribeCb(pa_context *c, void *userdata) { + UkmediaVolumeControl *w = static_cast(userdata); + pa_operation *o; + + if (!(o = pa_ext_device_manager_read(c, extDeviceManagerReadCb, w))) { + w->showError(QObject::tr("pa_ext_device_manager_read() failed").toUtf8().constData()); + return; + } + qDebug() << "extDeviceManagerSubscribeCb"; + pa_operation_unref(o); +} + +void UkmediaVolumeControl::subscribeCb(pa_context *c, pa_subscription_event_type_t t, uint32_t index, void *userdata) { + UkmediaVolumeControl *w = static_cast(userdata); + + switch (t & PA_SUBSCRIPTION_EVENT_FACILITY_MASK) { + case PA_SUBSCRIPTION_EVENT_SINK: + if ((t & PA_SUBSCRIPTION_EVENT_TYPE_MASK) == PA_SUBSCRIPTION_EVENT_REMOVE) + w->removeSink(index); + else { + pa_operation *o; + if (!(o = pa_context_get_sink_info_by_index(c, index, sinkCb, w))) { + w->showError(QObject::tr("pa_context_get_sink_info_by_index() failed").toUtf8().constData()); + return; + } + pa_operation_unref(o); + } + break; + + case PA_SUBSCRIPTION_EVENT_SOURCE: + if ((t & PA_SUBSCRIPTION_EVENT_TYPE_MASK) == PA_SUBSCRIPTION_EVENT_REMOVE) + w->removeSource(index); + else { + pa_operation *o; + if (!(o = pa_context_get_source_info_by_index(c, index, sourceCb, w))) { + w->showError(QObject::tr("pa_context_get_source_info_by_index() failed").toUtf8().constData()); + return; + } + pa_operation_unref(o); + } + break; + + case PA_SUBSCRIPTION_EVENT_SINK_INPUT: + if ((t & PA_SUBSCRIPTION_EVENT_TYPE_MASK) == PA_SUBSCRIPTION_EVENT_REMOVE) + w->removeSinkInput(index); + else { + pa_operation *o; + if (!(o = pa_context_get_sink_input_info(c, index, sinkInputCb, w))) { + w->showError(QObject::tr("pa_context_get_sink_input_info() failed").toUtf8().constData()); + return; + } + pa_operation_unref(o); + } + break; + + case PA_SUBSCRIPTION_EVENT_SOURCE_OUTPUT: + if ((t & PA_SUBSCRIPTION_EVENT_TYPE_MASK) == PA_SUBSCRIPTION_EVENT_REMOVE) + w->removeSourceOutput(index); + else { + pa_operation *o; + if (!(o = pa_context_get_source_output_info(c, index, sourceOutputCb, w))) { + w->showError(QObject::tr("pa_context_get_sink_input_info() failed").toUtf8().constData()); + return; + } + pa_operation_unref(o); + } + break; + + case PA_SUBSCRIPTION_EVENT_CLIENT: + if ((t & PA_SUBSCRIPTION_EVENT_TYPE_MASK) == PA_SUBSCRIPTION_EVENT_REMOVE) + w->removeClient(index); + else { + pa_operation *o; + if (!(o = pa_context_get_client_info(c, index, clientCb, w))) { + w->showError(QObject::tr("pa_context_get_client_info() failed").toUtf8().constData()); + return; + } + pa_operation_unref(o); + } + break; + + case PA_SUBSCRIPTION_EVENT_SERVER: { + pa_operation *o; + if (!(o = pa_context_get_server_info(c, serverInfoCb, w))) { + w->showError(QObject::tr("pa_context_get_server_info() failed").toUtf8().constData()); + return; + } + pa_operation_unref(o); + } + break; + + case PA_SUBSCRIPTION_EVENT_CARD: + if ((t & PA_SUBSCRIPTION_EVENT_TYPE_MASK) == PA_SUBSCRIPTION_EVENT_REMOVE) { + qDebug() << "remove cards------"; + //移除outputPort + w->removeSinkPortMap(index); + w->removeOutputPortMap(index); + w->removeInputPortMap(index); + w->removeCardMap(index); + w->removeCardProfileMap(index); + + w->removeProfileMap(index); + w->removeInputProfile(index); + w->removeCard(index); + Q_EMIT w->updatePortSignal(); + } + else { + pa_operation *o; + if (!(o = pa_context_get_card_info_by_index(c, index, cardCb, w))) { + w->showError(QObject::tr("pa_context_get_card_info_by_index() failed").toUtf8().constData()); + return; + } + pa_operation_unref(o); + } + break; + + } +} + +void UkmediaVolumeControl::contextStateCallback(pa_context *c, void *userdata) { + UkmediaVolumeControl *w = static_cast(userdata); + + g_assert(c); + + switch (pa_context_get_state(c)) { + case PA_CONTEXT_UNCONNECTED: + case PA_CONTEXT_CONNECTING: + case PA_CONTEXT_AUTHORIZING: + case PA_CONTEXT_SETTING_NAME: + + break; + + case PA_CONTEXT_READY: { + pa_operation *o; + qDebug() << "pa_context_get_state" << "PA_CONTEXT_READY" << pa_context_get_state(c); + w->reconnectTimeout = 1; + + /* Create event widget immediately so it's first in the list */ + + pa_context_set_subscribe_callback(c, subscribeCb, w); + + if (!(o = pa_context_subscribe(c, (pa_subscription_mask_t) + (PA_SUBSCRIPTION_MASK_SINK| + PA_SUBSCRIPTION_MASK_SOURCE| + PA_SUBSCRIPTION_MASK_SINK_INPUT| + PA_SUBSCRIPTION_MASK_SOURCE_OUTPUT| + PA_SUBSCRIPTION_MASK_CLIENT| + PA_SUBSCRIPTION_MASK_SERVER| + PA_SUBSCRIPTION_MASK_CARD), nullptr, nullptr))) { + w->showError(QObject::tr("pa_context_subscribe() failed").toUtf8().constData()); + return; + } + pa_operation_unref(o); + + /* Keep track of the outstanding callbacks for UI tweaks */ + w->n_outstanding = 0; + + if (!(o = pa_context_get_server_info(c, serverInfoCb, w))) { + w->showError(QObject::tr("pa_context_get_server_info() failed").toUtf8().constData()); + return; + } + pa_operation_unref(o); + w->n_outstanding++; + + if (!(o = pa_context_get_client_info_list(c, clientCb, w))) { + w->showError(QObject::tr("pa_context_client_info_list() failed").toUtf8().constData()); + return; + } + pa_operation_unref(o); + w->n_outstanding++; + + if (!(o = pa_context_get_card_info_list(c, cardCb, w))) { + w->showError(QObject::tr("pa_context_get_card_info_list() failed").toUtf8().constData()); + return; + } + pa_operation_unref(o); + w->n_outstanding++; + + if (!(o = pa_context_get_sink_info_list(c, sinkCb, w))) { + w->showError(QObject::tr("pa_context_get_sink_info_list() failed").toUtf8().constData()); + return; + } + pa_operation_unref(o); + w->n_outstanding++; + + if (!(o = pa_context_get_source_info_list(c, sourceCb, w))) { + w->showError(QObject::tr("pa_context_get_source_info_list() failed").toUtf8().constData()); + return; + } + pa_operation_unref(o); + w->n_outstanding++; + if (!(o = pa_context_get_sink_input_info_list(c, sinkInputCb, w))) { + w->showError(QObject::tr("pa_context_get_sink_input_info_list() failed").toUtf8().constData()); + return; + } + pa_operation_unref(o); + w->n_outstanding++; + + if (!(o = pa_context_get_source_output_info_list(c, sourceOutputCb, w))) { + w->showError(QObject::tr("pa_context_get_source_output_info_list() failed").toUtf8().constData()); + return; + } + pa_operation_unref(o); + w->n_outstanding++; + Q_EMIT w->paContextReady(); + break; + } + + case PA_CONTEXT_FAILED: + w->setConnectionState(false); + pa_context_unref(w->m_pPaContext); + w->m_pPaContext = nullptr; + + if (w->reconnectTimeout > 0) { + g_debug("%s", QObject::tr("Connection failed, attempting reconnect").toUtf8().constData()); +// g_timeout_add_seconds(reconnectTimeout, connectToPulse, w); + } + return; + + case PA_CONTEXT_TERMINATED: + default: + return; + } +} + +pa_context* UkmediaVolumeControl::getContext(void) { + return context; +} + +gboolean UkmediaVolumeControl::connectToPulse(gpointer userdata) { + pa_glib_mainloop *m = pa_glib_mainloop_new(g_main_context_default()); + api = pa_glib_mainloop_get_api(m); + pa_proplist *proplist = pa_proplist_new(); + pa_proplist_sets(proplist, PA_PROP_APPLICATION_NAME, QObject::tr("Ukui Media Volume Control").toUtf8().constData()); + pa_proplist_sets(proplist, PA_PROP_APPLICATION_ID, "org.PulseAudio.pavucontrol"); + pa_proplist_sets(proplist, PA_PROP_APPLICATION_ICON_NAME, "audio-card"); + pa_proplist_sets(proplist, PA_PROP_APPLICATION_VERSION, "PACKAGE_VERSION"); + context = pa_context_new_with_proplist(api, nullptr, proplist); + g_assert(context); + + pa_proplist_free(proplist); + + pa_context_set_state_callback(getContext(), contextStateCallback, this); + if (pa_context_connect(getContext(), nullptr, PA_CONTEXT_NOFAIL, nullptr) < 0) { + if (pa_context_errno(getContext()) == PA_ERR_INVALID) { + /*w->setConnectingMessage(QObject::tr("Connection to PulseAudio failed. Automatic retry in 5s\n\n" + "In this case this is likely because PULSE_SERVER in the Environment/X11 Root Window Properties\n" + "or default-server in client.conf is misconfigured.\n" + "This situation can also arrise when PulseAudio crashed and left stale details in the X11 Root Window.\n" + "If this is the case, then PulseAudio should autospawn again, or if this is not configured you should\n" + "run start-pulseaudio-x11 manually.").toUtf8().constData());*/ + qFatal("connect pulseaudio failed") ; + } + else { +// g_timeout_add_seconds(5,connectToPulse,w); + } + } + + return false; +} + + +/* + * 根据名称获取sink input音量 + */ +int UkmediaVolumeControl::getSinkInputVolume(const gchar *name) +{ + int value = 0; + QMap>::iterator it; + QMap::iterator at; + QMap temp; + for(it = sinkInputMap.begin();it!=sinkInputMap.end();) + { + if (it.key() == name) { + temp = it.value(); + for (at=temp.begin();at!=temp.end();) { + + value = at.value(); + break; + } + } +// for (at=temp.begin();at!=temp.end();) { +// if (at.key() == index) { +// description = it.key(); +// sinkInputMap.erase(it); +// break; +// } + +// ++at; +// } + ++it; + } +// for(it = sinkInputMap.begin();it!=sinkInputMap.end();) +// { +// if(it.key() == name) +// { +// qDebug() << "getSinkInputVolume" << "name:" <::iterator it; + int value = 0; + for(it = sourceOutputMap.begin();it!=sourceOutputMap.end();) + { + if(it.key() == name) + { + qDebug() << "getSourceOutputVolume" << "name:" <(userdata); + if (eol < 0) { + if (pa_context_errno(c) == PA_ERR_NOENTITY) + return; + + w->showError(QObject::tr("Sink input callback failure").toUtf8().constData()); + return; + } + if (eol > 0) { + decOutstanding(w); + return; + } + w->sinkInputMuted = i->mute; + if (i->volume.channels >= 2) + w->sinkInputVolume = MAX(i->volume.values[0],i->volume.values[1]); + else + w->sinkInputVolume = i->volume.values[0]; + qDebug() << "sinkInputCallback" <sinkInputVolume <name; +} + +/* + * 移除指定索引的output port + */ +void UkmediaVolumeControl::removeOutputPortMap(int index) +{ + QMap>::iterator it; + for (it=outputPortMap.begin();it!=outputPortMap.end();) { + if (it.key() == index) { + qDebug() << "removeoutputport" <>::iterator it; + for (it=inputPortMap.begin();it!=inputPortMap.end();) { + if (it.key() == index) { + inputPortMap.erase(it); + break; + } + ++it; + } +} + +/* + * 移除指定索引的card + */ +void UkmediaVolumeControl::removeCardMap(int index) +{ + QMap::iterator it; + for (it=cardMap.begin();it!=cardMap.end();) { + if (it.key() == index) { + cardMap.erase(it); + break; + } + ++it; + } +} + +void UkmediaVolumeControl::removeCardProfileMap(int index) +{ + qDebug() << "removeCardProfileMap"; + QMap>::iterator it; + QMap>::iterator at; + for (it=cardProfileMap.begin();it!=cardProfileMap.end();) { + if (it.key() == index) { + cardProfileMap.erase(it); + break; + } + ++it; + } + + for (at=cardProfilePriorityMap.begin();at!=cardProfilePriorityMap.cend();) { + if (at.key() == index) { + cardProfilePriorityMap.erase(at); + break; + } + ++at; + } +} + +void UkmediaVolumeControl::removeSinkPortMap(int index) +{ + qDebug() << "removeSinkPortMap///"; + QMap>::iterator it; + for(it=sinkPortMap.begin();it!=sinkPortMap.end();){ + if(it.key() == index) { + sinkPortMap.erase(it); + break; + } + ++it; + } +} + +void UkmediaVolumeControl::removeProfileMap(int index) +{ + QMap>::iterator it; + qDebug() << "removeProfileMap" << index; + + for (it=profileNameMap.begin();it!=profileNameMap.end();) { + if(it.key() == index) + { + profileNameMap.erase(it); + break; + } + ++it; + } + +} + +bool UkmediaVolumeControl::isExitOutputPort(QString name) +{ + QMap>::iterator it; + QMap::iterator at; + QMap portMap; + for (it=outputPortMap.begin();it!=outputPortMap.end();) { + portMap = it.value(); + for (at=portMap.begin();at!=portMap.end();) { + if (at.value() == name) + return true; + ++at; + } + ++it; + } + return false; +} + +int UkmediaVolumeControl::findOutputPort(QString name){ + QMap>::iterator it; + QMap::iterator at; + QMap portMap; + int count = 0; + for (it=outputPortMap.begin();it!=outputPortMap.end();) { + portMap = it.value(); + for (at=portMap.begin();at!=portMap.end();) { + if (at.key() != name) { + ++count; + } + ++at; + } + ++it; + } + return count; +} + +QString UkmediaVolumeControl::findSinkActivePortName(QString name) +{ + QString portName = ""; + QMap::iterator at; + for (at=sinkActivePortMap.begin();at!=sinkActivePortMap.end();++at) { + if (at.key() == name) { + portName = at.value(); + break; + } + } + return portName; +} + +void UkmediaVolumeControl::removeInputProfile(int index) +{ + QMap>::iterator it; + qDebug() << "removeInputProfile" << index; + + for (it=inputPortProfileNameMap.begin();it!=inputPortProfileNameMap.end();) { + if(it.key() == index){ + inputPortProfileNameMap.erase(it); + break; + } + ++it; + } +} + +bool UkmediaVolumeControl::isExitInputPort(QString name) +{ + QMap>::iterator it; + QMap::iterator at; + QMap portMap; + for (it=inputPortMap.begin();it!=inputPortMap.end();) { + portMap = it.value(); + for (at=portMap.begin();at!=portMap.end();) { + if (at.value() == name) + return true; + ++at; + } + ++it; + } + return false; +} + +void UkmediaVolumeControl::sendPortChangedSignal() +{ + QDBusMessage message = QDBusMessage::createSignal("/","org.ukui.media","sinkPortChanged"); + message<<"portChanged"; + QDBusConnection::sessionBus().send(message); +} diff --git a/ukui-volume-control-applet-qt/ukmedia_volume_control.h b/ukui-volume-control-applet-qt/ukmedia_volume_control.h new file mode 100644 index 0000000..dc0f816 --- /dev/null +++ b/ukui-volume-control-applet-qt/ukmedia_volume_control.h @@ -0,0 +1,264 @@ +/* + * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * + * 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, 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 +#if HAVE_EXT_DEVICE_RESTORE_API +# include +#endif + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "config.h" +#include "ukmedia_custom_sound.h" +#include + +#define PANGUW_SINK "alsa_output.platform-raoliang-sndcard.analog-stereo" + + +class PortInfo { +public: + QByteArray name; + QByteArray description; + uint32_t priority; + int available; + int direction; + int64_t latency_offset; + std::vector profiles; +}; + +class UkmediaVolumeControl : public QObject{ + Q_OBJECT +public: + UkmediaVolumeControl(); + virtual ~UkmediaVolumeControl(); + + int boolToInt(bool b); + void updateCard(UkmediaVolumeControl *c,const pa_card_info &info); + bool updateSink(UkmediaVolumeControl *c,const pa_sink_info &info); + void updateSource(const pa_source_info &info); + void updateSinkInput(const pa_sink_input_info &info); + void updateSourceOutput(const pa_source_output_info &info); + void updateClient(const pa_client_info &info); + void updateServer(const pa_server_info &info); + void updateRole(const pa_ext_stream_restore_info &info); + + void updateDeviceInfo(const pa_ext_device_restore_info &info) ; + void setSinkMute(bool status); //设置输出设备静音状态 + void setSinkVolume(int index,int value); //设置输出设备音量值 + void setSourceMute(bool status); //设置输入设备静音状态 + void setSourceVolume(int index,int value); //设置输入设备音量值 + bool getSinkMute(); //获取输出设备静音状态 + int getSinkVolume(); //获取输出设备音量值 + bool getSourceMute(); //获取输入设备静音状态 + int getSourceVolume(); //获取输入设备音量值 + bool getSinkInputMuted(QString description); + + int getDefaultSinkIndex(); + int getSinkInputVolume(const gchar *name); //根据name获取sink input的音量值 + void setSinkInputVolume(int index,int value,int channel); //设置sink input 音量值 + void setSinkInputMuted(int index,bool status); //设置sink input 静音状态 + void setSourceOutputVolume(int index, int value); + void setSourceOutputMuted(int index, bool status); + int getSourceOutputVolume(const gchar *name); //根据name获取source output的音量值 + bool setCardProfile(int index,const gchar *name); //设置声卡的配置文件 + bool setDefaultSink(const gchar *name); //设置默认的输出设备 + bool setDefaultSource(const gchar *name); //设置默认的输入设备 + bool setSinkPort(const gchar *sinkName,const gchar *name); //设置输出设备的端口 + QString stringRemoveUnrecignizedChar(QString str);//移除xml中不能识别的字符 + bool setSourcePort(const gchar *portName, const gchar *name); //设置输入设备的端口 + + + bool killSinkInput(int index); //kill 索引为index的sink input +//#if HAVE_EXT_DEVICE_RESTORE_API +//// void updateDeviceInfo(const pa_ext_device_restore_info &info); +//#endif + + void removeCard(uint32_t index); + void removeSink(uint32_t index); + void removeSource(uint32_t index); + void removeSinkInput(uint32_t index); + void removeSourceOutput(uint32_t index); + void removeClient(uint32_t index); + + void setConnectingMessage(const char *string = NULL); + + void showError(const char *txt); + static void decOutstanding(UkmediaVolumeControl *w); + static void cardCb(pa_context *, const pa_card_info *i, int eol, void *userdata); + static void sinkIndexCb(pa_context *c, const pa_sink_info *i, int eol, void *userdata); + static void sourceIndexCb(pa_context *c, const pa_source_info *i, int eol, void *userdata); + + static void sinkCb(pa_context *c, const pa_sink_info *i, int eol, void *userdata); + static void sourceCb(pa_context *, const pa_source_info *i, int eol, void *userdata); + static void sinkInputCb(pa_context *, const pa_sink_input_info *i, int eol, void *userdata); + static void sinkInputCallback(pa_context *c, const pa_sink_input_info *i, int eol, void *userdata); //不更新sink input + static void sourceOutputCb(pa_context *, const pa_source_output_info *i, int eol, void *userdata); + static void clientCb(pa_context *, const pa_client_info *i, int eol, void *userdata); + static void serverInfoCb(pa_context *, const pa_server_info *i, void *userdata); + static void serverInfoIndexCb(pa_context *, const pa_server_info *i, void *userdata); + static void extStreamRestoreReadCb(pa_context *,const pa_ext_stream_restore_info *i,int eol,void *userdata); + static void extStreamRestoreSubscribeCb(pa_context *c, void *userdata); +// void ext_device_restore_read_cb(pa_context *,const pa_ext_device_restore_info *i,int eol,void *userdata); +// static void ext_device_restore_subscribe_cb(pa_context *c, pa_device_type_t type, uint32_t idx, void *userdata); + static void extDeviceManagerReadCb(pa_context *,const pa_ext_device_manager_info *,int eol,void *userdata); + static void extDeviceManagerSubscribeCb(pa_context *c, void *userdata); + static void subscribeCb(pa_context *c, pa_subscription_event_type_t t, uint32_t index, void *userdata); + static void contextStateCallback(pa_context *c, void *userdata); + pa_context* getContext(void); + gboolean connectToPulse(gpointer userdata); + + void removeOutputPortMap(int index); //移除指定索引的output port + void removeInputPortMap(int index); //移除指定索引的input port + void removeCardMap(int index); //移除指定索引的 card + void removeCardProfileMap(int index); //移除声卡profile map + void removeSinkPortMap(int index); + void removeProfileMap(int index); + void removeInputProfile(int index); + bool isExitOutputPort(QString name); + int findOutputPort(QString name); + QString findSinkActivePortName(QString name); + bool isExitInputPort(QString name); + void sendPortChangedSignal(); + + std::vector< std::pair > profiles; + std::map ports; + + std::vector< std::pair > dPorts; + QByteArray activePort; + + QByteArray activeProfile; + QByteArray noInOutProfile; + QByteArray lastActiveProfile; + bool hasSinks; + bool hasSources; + bool firstRun = true; + pa_cvolume m_defaultSinkVolume; + + const pa_sink_info *m_pDefaultSink; + pa_context* m_pPaContext; + std::map clientNames; + SinkInputType showSinkInputType; + SinkType showSinkType; + SourceOutputType showSourceOutputType; + SourceType showSourceType; + int sinkVolume = 0; //输出音量 + int sourceVolume = 0; //输入音量 + bool sinkMuted; //输出静音状态 + bool sourceMuted; //输入静音状态 + int sinkInputVolume; //sink input 音量 + bool sinkInputMuted; //sink input 静音状态 + + int signalCount = 0; //为了防止多次发送信号的情况,当signalCount>=2时,置1 + bool updateSinkFirstEnterFlag = true; + + float balance; //平衡音量值 + int channel = 0; //通道数 + int inputChannel = 0; + int sinkInputChannel = 0; + int sourceOutputChannel = 0; + QString sourcePortName = ""; //输入设备端口名 + QString sinkPortName = ""; //输出设备端口名 + const gchar *sinkPortLabel; //输出设备端口名 + + int defaultOutputCard; + int defaultInputCard; + + pa_channel_map channelMap; + friend class UkmediaMainWidget; + + QMap sinkMap; //输出设备 + QMap sinkActivePortMap; //输出设备活跃端口 + QMap sourceMap; //输入设备 + QMap> outputPortMap; //输出端口 + QMap> inputPortMap; //输入端口 + QMap> profileNameMap; //声卡输出配置文件 + QMap>inputPortProfileNameMap; //声卡输入配置文件 + QMap> cardProfilePriorityMap; //记录声卡优先级配置文件 + QMap> cardProfileMap; + QMap cardMap; + QMap> sinkPortMap; + QMap> sourcePortMap; + QMap cardActiveProfileMap; + +Q_SIGNALS: + void paContextReady(); + void updateVolume(int value); + void updateSourceVolume(int value); + void updateMute(bool state); + void updateSourceMute(bool state); + void addSinkInputSignal(const gchar* name,const gchar *id,int index,int channel); //添加sink input 信号 + void sinkInputVolumeChangedSignal(const gchar* name,const gchar *id,int index); //sink input音量改变信号 + void removeSinkInputSignal(const gchar* name); + void addSourceOutputSignal(const gchar* name,const gchar *id,int index); + void removeSourceOutputSignal(const gchar* name); + void checkDeviceSelectionSianal(const pa_card_info *info); + void updatePortSignal(); + void deviceChangedSignal(); + void removeSinkSignal(); + void device_changed_signal(QString str); + +protected Q_SLOTS: + void timeoutSlot(); + +public: + void setConnectionState(gboolean connected); + pa_stream* createMonitorStreamForSource(uint32_t source_idx, uint32_t stream_idx, bool suspend); + + void setIconFromProplist(QLabel *icon, pa_proplist *l, const char *name); + + pa_context *context; + QByteArray defaultSinkName, defaultSourceName; + int n_outstanding = 0; + int reconnectTimeout = 0; + bool canRenameDevices; + int sinkIndex; //输出设备索引 + int sourceIndex; //输入设备索引 +// int sinkInputVolume; + pa_mainloop_api* api; + QStringList sinkInputList; + QMap> sinkInputMap; + QMap sourceOutputMap; + QMap sinkInputMuteMap; + +private: + + CustomSound *customSoundFile; + gboolean m_connected; + gchar* m_config_filename; + int firstgo = true; + int firstGoWithNoSink = true; +}; + + +#endif // UKMEDIAVOLUMECONTROL_H diff --git a/ukui-volume-control-applet-qt/ukmedia_volume_slider.cpp b/ukui-volume-control-applet-qt/ukmedia_volume_slider.cpp new file mode 100644 index 0000000..fa30655 --- /dev/null +++ b/ukui-volume-control-applet-qt/ukmedia_volume_slider.cpp @@ -0,0 +1,423 @@ +/* + * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * + * 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, 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 +#include +#include +#include +#include +#include +#include +#include + +//DisplayerMode displayMode = MINI_MODE; +//SwitchButtonState buttonState = SWITCH_BUTTON_NORMAL; +//extern double transparency; +//UkuiApplicationWidget::UkuiApplicationWidget(QWidget *parent) +//{ +//// this->setAttribute(Qt::WA_TranslucentBackground); +//// this->setStyleSheet("QWiget{background:rgba(0,0,0,0);}"); +// Q_UNUSED(parent); +//} + +//UkuiMediaSliderTipLabel::UkuiMediaSliderTipLabel(){ +// setAttribute(Qt::WA_TranslucentBackground); +//} + +//UkuiMediaSliderTipLabel::~UkuiMediaSliderTipLabel(){ +//} + +//void UkuiApplicationWidget::paintEvent(QPaintEvent *e) +//{ +// QStyleOption opt; +// opt.init(this); +// QPainter p(this); +//// double transparence = transparency * 255; +//// QColor color = palette().color(QPalette::Base); +//// color.setAlpha(transparence); +// QBrush brush = QBrush(QColor(0,0,0,0)); +// p.setBrush(brush); +//// p.setBrush(this->palette().base()); +//// p.setBrush(QBrush(QColor(19, 19, 20, 0))); +// p.setPen(Qt::NoPen); +// QPainterPath path; +// opt.rect.adjust(0,0,0,0); +// path.addRoundedRect(opt.rect,0,0); +// p.setRenderHint(QPainter::Antialiasing); // 反锯齿; +// p.drawRoundedRect(opt.rect,0,0); +// setProperty("blurRegion",QRegion(path.toFillPolygon().toPolygon())); +// style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this); + +//} + +//UkuiApplicationWidget::~UkuiApplicationWidget() +//{ + +//} + +//void UkuiMediaSliderTipLabel::paintEvent(QPaintEvent *e) +//{ +// QStyleOptionFrame opt; +// initStyleOption(&opt); +// QStylePainter p(this); +//// p.setBrush(QBrush(QColor(0x1A,0x1A,0x1A,0x4C))); +// p.setBrush(QBrush(QColor(0xFF,0xFF,0xFF,0x00))); +// p.setPen(Qt::NoPen); +// p.drawRoundedRect(this->rect(), 1, 1); +// QPainterPath path; +// path.addRoundedRect(opt.rect,6,6); +// p.setRenderHint(QPainter::Antialiasing); +// setProperty("blurRegion",QRegion(path.toFillPolygon().toPolygon())); +// p.drawPrimitive(QStyle::PE_PanelTipLabel, opt); +// this->setProperty("blurRegion", QRegion(QRect(0, 0, 1, 1))); +// QLabel::paintEvent(e); +//} + +//UkuiMediaButton::UkuiMediaButton(QWidget *parent) +//{ +// Q_UNUSED(parent); +// this->setFixedSize(36,36); +//} + +//UkuiMediaButton::~UkuiMediaButton() +//{ + +//} + +///*! +// * \brief +// * \details +// * 绘制窗体的颜色及圆角 +// */ +////void UkuiMediaButton::paintEvent(QPaintEvent *event) +////{ +//// QStyleOptionComplex opt; +//// opt.init(this); +//// QPainter p(this); +////// double transparence = transparency * 255; +//// p.setBrush(this->palette().base()); +//// p.setPen(Qt::NoPen); +//// QPainterPath path; +//// opt.rect.adjust(0,0,0,0); +//// path.addRoundedRect(opt.rect,6,6); +//// p.setRenderHint(QPainter::Antialiasing); // 反锯齿; +//// p.drawRoundedRect(opt.rect,6,6); +//// setProperty("blurRegion",QRegion(path.toFillPolygon().toPolygon())); +////// style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this); +//// style()->drawComplexControl(QStyle::CC_ToolButton,&opt,&p,this); +////} + +//void UkuiMediaButton::enterEvent(QEvent *event) +//{ +// buttonState = SWITCH_BUTTON_HOVER; +//} + +//void UkuiMediaButton::leaveEvent(QEvent *event) +//{ +// buttonState = SWITCH_BUTTON_NORMAL; +//} + +//void UkuiMediaButton::mouseMoveEvent(QMouseEvent *e) +//{ +// buttonState = SWITCH_BUTTON_HOVER; +// QPushButton::mouseMoveEvent(e); +//} + +//void UkuiMediaButton::mousePressEvent(QMouseEvent *e) +//{ +// buttonState = SWITCH_BUTTON_PRESS; +// if (displayMode == MINI_MODE) { +// Q_EMIT moveMiniSwitchBtnSignale(); +// this->setFixedSize(34,34); +// QSize iconSize(14,14); +// this->setIconSize(iconSize); +// this->setIcon(QIcon("/usr/share/ukui-media/img/complete-module.svg")); +// } +// else { +// this->setFixedSize(34,34); +// QSize iconSize(14,14); +// this->setIconSize(iconSize); +// this->setIcon(QIcon("/usr/share/ukui-media/img/mini-module.svg")); +// Q_EMIT moveAdvanceSwitchBtnSignal(); +// } +// QPushButton::mousePressEvent(e); +//} + +//void UkuiMediaButton::mouseReleaseEvent(QMouseEvent *e) +//{ +// buttonState = SWITCH_BUTTON_NORMAL; +// if (displayMode == MINI_MODE) { +// Q_EMIT miniToAdvanceSignal(); +// this->setFixedSize(36,36); +// QSize iconSize(16,16); +// this->setIconSize(iconSize); +// this->setIcon(QIcon("/usr/share/ukui-media/img/complete-module.svg")); +// } +// else { +// Q_EMIT advanceToMiniSignal(); +// this->setFixedSize(36,36); +// QSize iconSize(16,16); +// this->setIconSize(iconSize); +// qDebug() << "设置图标2"; +// this->setIcon(QIcon("/usr/share/ukui-media/img/mini-module.svg")); +// } +// QPushButton::mouseReleaseEvent(e); +//} + +//UkmediaVolumeSlider::UkmediaVolumeSlider(QWidget *parent,bool needTip) +//{ +// Q_UNUSED(parent); +// if (needTip) { +// state = needTip; +// m_pTiplabel = new UkuiMediaSliderTipLabel(); +// m_pTiplabel->setWindowFlags(Qt::ToolTip); +// // qApp->installEventFilter(new AppEventFilter(this)); +// m_pTiplabel->setFixedSize(52,30); +// m_pTiplabel->setAlignment(Qt::AlignHCenter | Qt::AlignVCenter); +// } +//} + +//void UkmediaVolumeSlider::mousePressEvent(QMouseEvent *ev) +//{ +// mousePress = true; +// Q_EMIT silderPressSignal(); +// if (state) { +// m_pTiplabel->show(); +// } +// //注意应先调用父类的鼠标点击处理事件,这样可以不影响拖动的情况 +// QSlider::mousePressEvent(ev); +// //获取鼠标的位置,这里并不能直接从ev中取值(因为如果是拖动的话,鼠标开始点击的位置没有意义了) +// double pos = ev->pos().x() / (double)width(); +// setValue(pos *(maximum() - minimum()) + minimum()); +// //向父窗口发送自定义事件event type,这样就可以在父窗口中捕获这个事件进行处理 +// QEvent evEvent(static_cast(QEvent::User + 1)); +// QCoreApplication::sendEvent(parentWidget(), &evEvent); +// QSlider::mousePressEvent(ev); +//} + +//void UkmediaVolumeSlider::mouseReleaseEvent(QMouseEvent *e) +//{ +// if(mousePress){ +// Q_EMIT silderReleaseSignal(); +// } +// mousePress = false; +// QSlider::mouseReleaseEvent(e); + +//} + +//void UkmediaVolumeSlider::initStyleOption(QStyleOptionSlider *option) +//{ +// QSlider::initStyleOption(option); +//} + +//void UkmediaVolumeSlider::leaveEvent(QEvent *e) +//{ +// if (state) { +// m_pTiplabel->hide(); +// } +//} + +//void UkmediaVolumeSlider::enterEvent(QEvent *e) +//{ +// if (state) { +// m_pTiplabel->show(); +// } +//} + +//void UkmediaVolumeSlider::paintEvent(QPaintEvent *e) +//{ +// QRect rect; +// QStyleOptionSlider m_option; +// QSlider::paintEvent(e); +// if (state) { + +// this->initStyleOption(&m_option); +// rect = this->style()->subControlRect(QStyle::CC_Slider, &m_option,QStyle::SC_SliderHandle,this); +// QPoint gPos = this->mapToGlobal(rect.topLeft()); +// QString percent; +// percent = QString::number(this->value()); +// percent.append("%"); +// m_pTiplabel->setText(percent); +// m_pTiplabel->move(gPos.x()-(m_pTiplabel->width()/2)+9,gPos.y()-m_pTiplabel->height()-1); +// } + + +//} + +//UkmediaVolumeSlider::~UkmediaVolumeSlider() +//{ +// delete m_pTiplabel; +//} + +//void UkuiButtonDrawSvg::init(QImage img, QColor color) +//{ +// themeIcon.image = img; +// themeIcon.color = color; +//} + +//void UkuiButtonDrawSvg::paintEvent(QPaintEvent *event) +//{ +// QStyleOption opt; +// opt.init(this); +// QPainter p(this); +// p.setBrush(QBrush(QColor(0x13,0x13,0x14,0x00))); +// p.setPen(Qt::NoPen); +// QPainterPath path; +// opt.rect.adjust(0,0,0,0); +// path.addRoundedRect(opt.rect,6,6); +// p.setRenderHint(QPainter::Antialiasing); // 反锯齿; +// p.drawRoundedRect(opt.rect,6,6); +// setProperty("blurRegion",QRegion(path.toFillPolygon().toPolygon())); +// style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this); +//} + +//QRect UkuiButtonDrawSvg::IconGeometry() +//{ +// QRect res = QRect(QPoint(0,0),QSize(24,24)); +// res.moveCenter(QRect(0,0,width(),height()).center()); +// return res; +//} + +//void UkuiButtonDrawSvg::draw(QPaintEvent* e) +//{ +// Q_UNUSED(e); +// QPainter painter(this); +// QRect iconRect = IconGeometry(); +// if (themeIcon.image.size() != iconRect.size()) +// { +// themeIcon.image = themeIcon.image.scaled(iconRect.size(), Qt::KeepAspectRatio, Qt::SmoothTransformation); +// QRect r = themeIcon.image.rect(); +// r.moveCenter(iconRect.center()); +// iconRect = r; +// } + +// this->setProperty("fillIconSymbolicColor", true); +// filledSymbolicColoredPixmap(themeIcon.image,themeIcon.color); +// painter.drawImage(iconRect, themeIcon.image); +//} + +//bool UkuiButtonDrawSvg::event(QEvent *event) +//{ +// switch (event->type()) +// { +// case QEvent::Paint: +// draw(static_cast(event)); +// break; + +// case QEvent::Move: +// case QEvent::Resize: +// { +// QRect rect = IconGeometry(); +// } +// break; + +// case QEvent::MouseButtonPress: +// case QEvent::MouseButtonRelease: +// case QEvent::MouseButtonDblClick: +// event->accept(); +// break; + +// default: +// break; +// } + +// return QPushButton::event(event); +//} + + +//UkuiButtonDrawSvg::UkuiButtonDrawSvg(QWidget *parent) +//{ +// Q_UNUSED(parent); +//} +//UkuiButtonDrawSvg::~UkuiButtonDrawSvg() +//{ + +//} + +//QPixmap UkuiButtonDrawSvg::filledSymbolicColoredPixmap(QImage &img, QColor &baseColor) +//{ + +// for (int x = 0; x < img.width(); x++) { +// for (int y = 0; y < img.height(); y++) { +// auto color = img.pixelColor(x, y); +// if (color.alpha() > 0) { +// int hue = color.hue(); +// if (!qAbs(hue - symbolic_color.hue()) < 10) { +// color.setRed(baseColor.red()); +// color.setGreen(baseColor.green()); +// color.setBlue(baseColor.blue()); +// img.setPixelColor(x, y, color); +// } +// } +// } +// } + +// return QPixmap::fromImage(img); +//} + +//UkuiScrollArea::UkuiScrollArea(QWidget *parent){ +//} + +//UkuiScrollArea::~UkuiScrollArea(){ +//} + +//void UkuiScrollArea::paintEvent(QPaintEvent *event) +//{ +// QStyleOption opt; +// opt.init(this); +// QPainter p(this); +// p.setBrush(this->palette().base()); +// p.setPen(Qt::NoPen); +// QPainterPath path; +// opt.rect.adjust(0,0,0,0); +// path.addRoundedRect(opt.rect,6,6); +// p.setRenderHint(QPainter::Antialiasing); // 反锯齿; +// p.drawRoundedRect(opt.rect,6,6); +// setProperty("blurRegion",QRegion(path.toFillPolygon().toPolygon())); +// style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this); +//// QWidget::paintEvent(event); +//} + +//UkuiQMenu::UkuiQMenu(){ +//} + +//bool UkuiQMenu::event(QEvent *e) +//{ +// qDebug() << "事件类型" << e->type() << "show"; +// if (e->type() == QEvent::ContextMenu) { +// this->show(); +// } +// else if (e->type() == QEvent::WinIdChange) { +// qDebug() << "winid changed"; +// } +// else if(e->type() == QEvent::MouseButtonRelease) { +//// this->hide(); +// qDebug() << "事件类型" << e->type(); +// } +// return QMenu::event(e); +//} + +//void UkuiQMenu::hideEvent(QHideEvent *e) +//{ +// this->activateWindow(); +// this->setAttribute(Qt::WA_NoMouseReplay); +// qDebug() << "菜单隐藏" << e->type(); +//} + +//UkuiQMenu::~UkuiQMenu(){ +//} diff --git a/ukui-volume-control-applet-qt/ukmedia_volume_slider.h b/ukui-volume-control-applet-qt/ukmedia_volume_slider.h new file mode 100644 index 0000000..ed1ad0b --- /dev/null +++ b/ukui-volume-control-applet-qt/ukmedia_volume_slider.h @@ -0,0 +1,186 @@ +/* + * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * + * 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, 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 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +//typedef struct UkuiThemeIcon +//{ +// QImage image; +// QColor color; +//}UkuiThemeIcon; +//enum DisplayerMode{ +// MINI_MODE, +// ADVANCED_MODE +//}; +//enum SwitchButtonState{ +// SWITCH_BUTTON_NORMAL, +// SWITCH_BUTTON_HOVER, +// SWITCH_BUTTON_PRESS +//}; +//static QColor symbolic_color = Qt::gray; + +//class UkuiMediaSliderTipLabel:public QLabel +//{ +// public: +// UkuiMediaSliderTipLabel(); +// ~UkuiMediaSliderTipLabel(); +//protected: +// void paintEvent(QPaintEvent*); +//}; + +//class UkuiButtonDrawSvg:public QPushButton +//{ +// Q_OBJECT +//public: +// UkuiButtonDrawSvg(QWidget *parent = nullptr); +// ~UkuiButtonDrawSvg(); +// QPixmap filledSymbolicColoredPixmap(QImage &source, QColor &baseColor); +// QRect IconGeometry(); +// void draw(QPaintEvent* e); +// void init(QImage image ,QColor color); +// friend class DeviceSwitchWidget; +// friend class UkmediaOsdDisplayWidget; + +//protected: +// void paintEvent(QPaintEvent *event); +// bool event(QEvent *e); +//private: +// UkuiThemeIcon themeIcon; +//}; + +//class UkuiApplicationWidget:public QWidget +//{ +// Q_OBJECT +//public: +// UkuiApplicationWidget(QWidget *parent = nullptr); +// ~UkuiApplicationWidget(); +//protected: +// void paintEvent(QPaintEvent*); +//}; + +//class UkuiMediaButton:public QPushButton +//{ +// Q_OBJECT +//public: +// UkuiMediaButton(QWidget *parent = nullptr); +// ~UkuiMediaButton(); +// friend class UkmediaMiniMasterVolumeWidget; + +//Q_SIGNALS: +// void advanceToMiniSignal(); +// void miniToAdvanceSignal(); +// void moveMiniSwitchBtnSignale(); +// void moveAdvanceSwitchBtnSignal(); +//protected: +// void mousePressEvent(QMouseEvent *e)override; +// void mouseMoveEvent(QMouseEvent *e)override; +// void mouseReleaseEvent(QMouseEvent *e)override; +//// void paintEvent(QPaintEvent *event); +// void enterEvent(QEvent *event); +// void leaveEvent(QEvent *event); +//private: +//}; + +//class UkmediaVolumeSlider : public QSlider +//{ +// Q_OBJECT +//public: +//// UkmediaVolumeSlider(QWidget *parent = nullptr); +// UkmediaVolumeSlider(QWidget *parent = nullptr,bool needTip = false); +// void initStyleOption(QStyleOptionSlider *option); +// ~UkmediaVolumeSlider(); +//Q_SIGNALS: +// void silderPressSignal(); +// void silderReleaseSignal(); +//private: +// UkuiMediaSliderTipLabel *m_pTiplabel; +// bool state = false; +// bool mousePress = false; + + +//protected: +// void mousePressEvent(QMouseEvent *ev); +// void mouseReleaseEvent(QMouseEvent *e); +// void mouseMoveEvent(QMouseEvent *e) +// { +// int value = 0; +// int currentX = e->pos().x(); +// double per = currentX * 1.0 / this->width(); +// if ((this->maximum() - this->minimum()) >= 50) { //减小鼠标点击像素的影响 +// value = qRound(per*(this->maximum() - this->minimum())) + this->minimum(); +// if (value <= (this->maximum() / 2 - this->maximum() / 10 + this->minimum() / 10)) { +// value = qRound(per*(this->maximum() - this->minimum() - 1)) + this->minimum(); +// } else if (value > (this->maximum() / 2 + this->maximum() / 10 + this->minimum() / 10)) { +// value = qRound(per*(this->maximum() - this->minimum() + 1)) + this->minimum(); +// } else { +// value = qRound(per*(this->maximum() - this->minimum())) + this->minimum(); +// } +// } else { +// value = qRound(per*(this->maximum() - this->minimum())) + this->minimum(); +// } +// this->setValue(value); +// QSlider::mousePressEvent(e); +//// setCursor(QCursor(Qt::OpenHandCursor)); +//// m_displayLabel->move((this->width()-m_displayLabel->width())*this->value()/(this->maximum()-this->minimum()),3); +//// QSlider::mouseMoveEvent(e); +// } +// void leaveEvent(QEvent *e); + +// void enterEvent(QEvent *e); +// void paintEvent(QPaintEvent *e); +//}; + +//class UkuiScrollArea : public QScrollArea +//{ +// Q_OBJECT +//public: +// UkuiScrollArea(QWidget *parent = nullptr); +// ~UkuiScrollArea(); + +//protected: +// void paintEvent(QPaintEvent *e); + +//}; + +//class UkuiQMenu:public QMenu +//{ +// Q_OBJECT +//public: +// UkuiQMenu(); +// ~UkuiQMenu(); +//protected: +// void hideEvent(QHideEvent *e); +// virtual bool event(QEvent *e) override; + + +//}; + +#endif // UKMEDIAVOLUMESLIDER_H diff --git a/ukui-volume-control-applet-qt/ukui-volume-control-applet-qt.pro b/ukui-volume-control-applet-qt/ukui-volume-control-applet-qt.pro new file mode 100644 index 0000000..a2af743 --- /dev/null +++ b/ukui-volume-control-applet-qt/ukui-volume-control-applet-qt.pro @@ -0,0 +1,98 @@ +###################################################################### +# Automatically generated by qmake (3.1) Fri Oct 11 17:35:00 2019 +###################################################################### + +QT += core gui dbus KWindowSystem xml + +greaterThan(QT_MAJOR_VERSION, 4): QT += widgets + +TEMPLATE = app +TARGET = ukui-volume-control-applet-qt +INCLUDEPATH += . +QMAKE_CXXFLAGS += -std=c++11 + +include(QtSingleApplication/qtsingleapplication.pri) +include(xatom/xatom.pri) + +DEFINES += QT_DEPRECATED_WARNINGS + +# You can also make your code fail to compile if you use deprecated APIs. +# In order to do so, uncomment the following line. +# You can also select to disable deprecated APIs only up to a certain version of Qt. +#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 + +# Default rules for deployment. +target.path = /usr/bin + +CONFIG += \ + c++11 \ + no_keywords link_pkgconfig debug\ + +PKGCONFIG += \ + glib-2.0 \ + gsettings-qt \ + Qt5Svg \ + gio-2.0 \ + Qt5Multimedia \ + dconf \ + x11 \ + libcanberra \ + libpulse \ + libpulse-mainloop-glib \ + alsa \ + Qt5X11Extras +# libwnck-1.0 + +LIBS += -lukui-log4qt + +HEADERS += \ + config.h \ + customstyle.h \ + ukmedia_custom_class.h \ + ukmedia_custom_sound.h \ + ukmedia_main_widget.h \ + ukmedia_application_volume_widget.h \ + ukmedia_monitor_window_thread.h \ + ukmedia_osd_display_widget.h \ + ukmedia_slider_tip_label_helper.h \ + ukmedia_system_volume_widget.h \ + ukmedia_volume_control.h \ + ukui_list_widget_item.h \ + ukui_media_set_headset_widget.h + +SOURCES += \ + customstyle.cpp \ + main.cpp \ + ukmedia_custom_class.cpp \ + ukmedia_custom_sound.cpp \ + ukmedia_application_volume_widget.cpp \ + ukmedia_main_widget.cpp \ + ukmedia_monitor_window_thread.cpp \ + ukmedia_osd_display_widget.cpp \ + ukmedia_slider_tip_label_helper.cpp \ + ukmedia_system_volume_widget.cpp \ + ukmedia_volume_control.cpp \ + ukui_list_widget_item.cpp \ + ukui_media_set_headset_widget.cpp + +RESOURCES += \ + res.qrc + +TRANSLATIONS += \ + translations/zh_CN.ts \ + translations/tr.ts \ + translations/bo.ts + +system("lrelease translations/*.ts") + +qm_file.files = translations/*.qm +qm_file.path = $${PREFIX}/translations/ + +data_files.files = data/* +data_files.path = $${PREFIX}/ + +INSTALLS += \ + target qm_file data_files + +#DISTFILES += \ +# xatom/xatom.pri diff --git a/ukui-volume-control-applet-qt/ukui_list_widget_item.cpp b/ukui-volume-control-applet-qt/ukui_list_widget_item.cpp new file mode 100644 index 0000000..e2c0f8a --- /dev/null +++ b/ukui-volume-control-applet-qt/ukui_list_widget_item.cpp @@ -0,0 +1,145 @@ +/* + * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * + * 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, 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 +#include +#include +#include +//#include +#include +#include +#include +bool isCheckBluetoothInput; + +UkuiListWidgetItem::UkuiListWidgetItem(QWidget *parent) : + QWidget(parent) +{ + this->setFixedSize(388,48); + QHBoxLayout *hLayout = new QHBoxLayout; + + deviceButton = new UkuiMediaButton(this); + portLabel = new FixLabel(this); + deviceLabel = new QLabel(this); + + deviceButton->setFixedSize(36,36); + portLabel->setFixedSize(310,24); + deviceLabel->setFixedSize(306,24); + deviceLabel->hide(); + hLayout->addWidget(deviceButton); + hLayout->addSpacing(10); + hLayout->addWidget(portLabel); + hLayout->setSpacing(0); + + this->setLayout(hLayout); + hLayout->setContentsMargins(16,6,16,6); + + this->show(); +} + +UkuiListWidgetItem::~UkuiListWidgetItem() +{ +} + +void UkuiListWidgetItem::paintEvent(QPaintEvent *event) +{ + QStyleOption opt; + opt.init(this); + QPainter p(this); + QColor color ; + switch (state) { + case WIDGET_NORMAL_STATE: + color = QColor(0xF0,0xF0,0xF0,0x00); + break; + case WIDGET_HOVER_STATE: + color = QColor(200,200,200,50); + break; + } + +// color.setAlpha(transparence); + QBrush brush = QBrush(color); + p.setBrush(brush); + p.setPen(Qt::NoPen); + QPainterPath path; + opt.rect.adjust(0,0,0,0); + path.addRoundedRect(opt.rect,6,6); + p.setRenderHint(QPainter::Antialiasing); // 反锯齿; + p.drawRoundedRect(opt.rect,6,6); + setProperty("blurRegion",QRegion(path.toFillPolygon().toPolygon())); + style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this); + QWidget::paintEvent(event); +} + + +void UkuiListWidgetItem::setSelected(bool selected){ + +} + +void UkuiListWidgetItem::leaveEvent(QEvent *e) +{ + state = WIDGET_NORMAL_STATE; + this->update(); + QWidget::leaveEvent(e); +} +void UkuiListWidgetItem::mouseReleaseEvent(QMouseEvent *e) +{ +// state = WIDGET_NORMAL_STATE; + QWidget::mouseReleaseEvent(e); +} +void UkuiListWidgetItem::enterEvent(QEvent *e) +{ + state = WIDGET_HOVER_STATE; + this->update(); + QWidget::enterEvent(e); +} + +void UkuiListWidgetItem::setButtonIcon(QString str) +{ + QString iconStr; + if (str.contains("headphone") || str.contains("Headphone") || str.contains("headset")) { + iconStr = "audio-headphones-symbolic"; + } + else { + iconStr = "audio-volume-high-symbolic"; + } + deviceButton->setButtonIcon(QIcon::fromTheme(iconStr)); + deviceButton->setProperty("useIconHighlightEffect", 0x8); +} + +void UkuiListWidgetItem::setLabelText(QString portLabel, QString deviceLabel){ + + this->portLabel->setText(portLabel,true); + this->deviceLabel->setText(deviceLabel); +} + +void UkuiListWidgetItem::mousePressEvent(QMouseEvent *event) +{ + + QWidget::mousePressEvent(event); + qDebug() << "Mouse Press Event" << this->portLabel->fullText << this->deviceLabel->text(); + //蓝牙输入去除勾选 + if (this->deviceLabel->text().contains("bluez_card")) { + if (isCheckBluetoothInput == false) + isCheckBluetoothInput = true; + else { + isCheckBluetoothInput = false; + QString cmd = "pactl set-card-profile "+this->deviceLabel->text()+" a2dp_sink"; + system(cmd.toLocal8Bit().data()); + } + } +} diff --git a/ukui-volume-control-applet-qt/ukui_list_widget_item.h b/ukui-volume-control-applet-qt/ukui_list_widget_item.h new file mode 100644 index 0000000..2176843 --- /dev/null +++ b/ukui-volume-control-applet-qt/ukui_list_widget_item.h @@ -0,0 +1,64 @@ +/* + * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * + * 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, 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 +#include +#include +#include +#include +#include +#include +#include "ukmedia_custom_class.h" + +enum WidgetState{ + WIDGET_NORMAL_STATE, + WIDGET_HOVER_STATE +}; + +class UkuiListWidgetItem : public QWidget +{ + Q_OBJECT + +public: + UkuiListWidgetItem(QWidget *parent = 0); + ~UkuiListWidgetItem(); + +public: + void setLabelText(QString portText,QString deviceLabel); +// void setLabelTextIsWhite(bool selected); + void setSelected(bool selected); + void setButtonIcon(QString str); + FixLabel *portLabel; + QLabel *deviceLabel; + UkuiMediaButton *deviceButton; + +protected: + void mousePressEvent(QMouseEvent *ev); + void mouseReleaseEvent(QMouseEvent *e)override; + void paintEvent(QPaintEvent *event); + void enterEvent(QEvent *e); + void leaveEvent(QEvent *e); + +private: + QWidget * widget; + int state = WIDGET_NORMAL_STATE; +}; + +#endif // UKUILISTWIDGETITEM_H diff --git a/ukui-volume-control-applet-qt/ukui_media_set_headset_widget.cpp b/ukui-volume-control-applet-qt/ukui_media_set_headset_widget.cpp new file mode 100644 index 0000000..a8e75c4 --- /dev/null +++ b/ukui-volume-control-applet-qt/ukui_media_set_headset_widget.cpp @@ -0,0 +1,490 @@ +/* + * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * + * 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, 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 +#include +#include +#include +#include +#include +#include +#include + +extern double transparency; +UkuiMediaSetHeadsetWidget::UkuiMediaSetHeadsetWidget(QWidget *parent) : QWidget (parent) +{ + headphoneIconButton = new QToolButton(); + headsetIconButton = new QToolButton(); + microphoneIconButton = new QToolButton(); + soundSettingButton = new QPushButton(tr("Sound Settings")); + cancelButton = new QPushButton(tr("Cancel")); + selectSoundDeviceLabel = new QLabel(tr("Select Sound Device")); + + initSetHeadsetWidget(); + + headphoneIconButton->setToolButtonStyle(Qt::ToolButtonTextUnderIcon); + connect(headphoneIconButton,SIGNAL(clicked()),this,SLOT(headphoneButtonClickedSlot())); + connect(headsetIconButton,SIGNAL(clicked()),this,SLOT(headsetButtonClickedSlot())); + connect(microphoneIconButton,SIGNAL(clicked()),this,SLOT(microphoneButtonClickedSlot())); + connect(soundSettingButton,SIGNAL(clicked()),this,SLOT(soundSettingButtonClickedSlot())); + connect(cancelButton,SIGNAL(clicked()),this,SLOT(cancelButtonClickedSlot())); + this->setWindowFlags(Qt::WindowStaysOnTopHint | Qt::FramelessWindowHint | Qt::ToolTip); +} + +void UkuiMediaSetHeadsetWidget::initSetHeadsetWidget() +{ + this->setFixedSize(402,252); + headphoneIconButton->setFixedSize(96,96); + headsetIconButton->setFixedSize(96,96); + microphoneIconButton->setFixedSize(96,96); + headphoneIconButton->setIconSize(QSize(32,32)); + headsetIconButton->setIconSize(QSize(32,32)); + microphoneIconButton->setIconSize(QSize(32,32)); + selectSoundDeviceLabel->setFixedSize(402,24); + soundSettingButton->setFixedSize(120,36); + cancelButton->setFixedSize(107,36); + + soundSettingButton->setContextMenuPolicy(Qt::DefaultContextMenu); + + headphoneIconButton->setText(tr("Headphone")); + headsetIconButton->setText(tr("Headset")); + microphoneIconButton->setText(tr("Microphone")); + + headphoneIconButton->setIcon(QIcon::fromTheme("headphones-symbolic")); + headsetIconButton->setIcon(QIcon::fromTheme("audio-headset-symbolic")); + microphoneIconButton->setIcon(QIcon::fromTheme("audio-input-microphone")); + + headphoneIconButton->setToolButtonStyle(Qt::ToolButtonTextUnderIcon); + headsetIconButton->setToolButtonStyle(Qt::ToolButtonTextUnderIcon); + microphoneIconButton->setToolButtonStyle(Qt::ToolButtonTextUnderIcon); + selectSoundDeviceLabel->setAlignment(Qt::AlignCenter); + + QWidget *labelWidget = new QWidget; + labelWidget->setFixedSize(402,24); + QVBoxLayout *labelLayout = new QVBoxLayout; + labelLayout->addWidget(selectSoundDeviceLabel); + labelLayout->setContentsMargins(0,0,0,0); + labelWidget->setLayout(labelLayout); + + QWidget *headsetButtonWidget = new QWidget(); + headsetButtonWidget->setFixedSize(402,96); + QHBoxLayout *headsetButtonLayout = new QHBoxLayout; + headsetButtonLayout->addWidget(headphoneIconButton); + headsetButtonLayout->addWidget(headsetIconButton); + headsetButtonLayout->addWidget(microphoneIconButton); + headsetButtonLayout->setSpacing(24); + headsetButtonLayout->setContentsMargins(32,0,32,0); + headsetButtonWidget->setLayout(headsetButtonLayout); + + QWidget *buttonWidget = new QWidget; + buttonWidget->setFixedSize(402,36); +// buttonWidget->setStyleSheet("QWidget{background-color:rgb(255,0,0);}"); + QHBoxLayout *buttonLayout = new QHBoxLayout(); + buttonLayout->addWidget(soundSettingButton); + buttonLayout->addWidget(cancelButton); + buttonLayout->setSpacing(108); + buttonLayout->setContentsMargins(32,0,32,0); + buttonWidget->setLayout(buttonLayout); + + QVBoxLayout *mainLayout = new QVBoxLayout; + mainLayout->addWidget(labelWidget); + mainLayout->addWidget(headsetButtonWidget); + mainLayout->addWidget(buttonWidget); + this->setLayout(mainLayout); + this->setProperty("useSystemStyleBlur",true); + this->setWindowTitle("whole window blur"); + this->setAttribute(Qt::WA_TranslucentBackground); + this->setContentsMargins(0,16,0,16); +} + +void UkuiMediaSetHeadsetWidget::paintEvent(QPaintEvent *event) +{ + QStyleOption opt; + opt.init(this); + QPainter p(this); +// double transparence = transparency * 255; + QColor color = palette().color(QPalette::Base); +// color.setAlpha(transparence); + QBrush brush = QBrush(color); + p.setBrush(brush); + p.setPen(Qt::NoPen); + QPainterPath path; + opt.rect.adjust(0,0,0,0); + path.addRoundedRect(opt.rect,12,12); + p.setRenderHint(QPainter::Antialiasing); // 反锯齿; + p.drawRoundedRect(opt.rect,12,12); + setProperty("blurRegion",QRegion(path.toFillPolygon().toPolygon())); + style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this); + QWidget::paintEvent(event); +} + +/* + * set input and output port. + * input: intel mic + * output: headphone +*/ +void UkuiMediaSetHeadsetWidget::headphoneButtonClickedSlot() +{ + isShow = false; +// cset("name=Capture Source", HW_CARD, "2", 0, 0); + QDBusMessage message =QDBusMessage::createSignal("/", "org.ukui.media", "headsetJack"); + message<<"headphone"; + QDBusConnection::sessionBus().send(message); + this->hide(); +} + +/* + * set input and output port. + * input: headsed mic + * output: headphone + */ +void UkuiMediaSetHeadsetWidget::headsetButtonClickedSlot() +{ + isShow = false; +// cset("name=Capture Source", HW_CARD, "0", 0, 0); + QDBusMessage message =QDBusMessage::createSignal("/", "org.ukui.media", "headsetJack"); + message<<"headset"; + QDBusConnection::sessionBus().send(message); + this->hide(); +} + +/* + * set input and output port. + * input: headphone mic + * output: speaker +*/ +void UkuiMediaSetHeadsetWidget::microphoneButtonClickedSlot() +{ + isShow = false; +// int ret = cset("name=Capture Source", HW_CARD, "1", 0, 0); + QDBusMessage message =QDBusMessage::createSignal("/", "org.ukui.media", "headsetJack"); + message<<"headphone mic" ; +// if (ret < 0) +// cset("name=Input Source", HW_CARD, "1", 0, 0); + QDBusConnection::sessionBus().send(message); + this->hide(); +} + +/* + * Jump to the control panel +*/ +void UkuiMediaSetHeadsetWidget::soundSettingButtonClickedSlot() +{ + QProcess *process; + QStringList args; + args.append("module Audio"); + QString command = "ukui-control-center"; + process = new QProcess(); + process->setProcessChannelMode(QProcess::MergedChannels); + process->start(command, args); + + if (!process->waitForStarted()) { + qDebug() << "start failed:" << process->errorString(); + } else { + qDebug() << "start success:"; + } + this->hide(); + isShow = false; +} + +/* + * Cancel settings +*/ +void UkuiMediaSetHeadsetWidget::cancelButtonClickedSlot() +{ + this->hide(); + isShow = false; +} + +int UkuiMediaSetHeadsetWidget::cset(char * name, char *card, char *c, int roflag, int keep_handle) +{ + int err; + static snd_ctl_t *handle = NULL; + snd_ctl_elem_info_t *info; + snd_ctl_elem_id_t *id; + snd_ctl_elem_value_t *control; + snd_ctl_elem_info_alloca(&info); + snd_ctl_elem_id_alloca(&id); + snd_ctl_elem_value_alloca(&control); + + printf("name[%s]card[%s]c[%s]", name, card, c); + if (snd_ctl_ascii_elem_id_parse(id, name)) { + printf("Wrong control identifier: %\n", name); + return -1; + } + + if (handle == NULL && + (err = snd_ctl_open(&handle, card, 0)) < 0) { + printf("Control %s open error: %s", card, snd_strerror(err)); + return err; + } + + snd_ctl_elem_info_set_id(info, id); + + if ((err = snd_ctl_elem_info(handle, info)) < 0) { + //if (ignore_error) + //return 0; + printf("Cannot find the given element from control %s", card); + if (! keep_handle) { + snd_ctl_close(handle); + handle = NULL; + } + return err; + } + + snd_ctl_elem_info_get_id(info, id); + if (!roflag) { + snd_ctl_elem_value_set_id(control, id); + + if ((err = snd_ctl_elem_read(handle, control)) < 0) { + //if (ignore_error) + //return 0; + printf("Cannot read the given element from control %s", card); + if (! keep_handle) { + snd_ctl_close(handle); + handle = NULL; + } + return err; + } + err = snd_ctl_ascii_value_parse(handle, control, info, c); + if (err < 0) { + //if (!ignore_error) + //error("Control %s parse error: %s\n", card, snd_strerror(err)); + if (!keep_handle) { + snd_ctl_close(handle); + handle = NULL; + } + //return ignore_error ? 0 : err; + return err; + } + + if ((err = snd_ctl_elem_write(handle, control)) < 0) { + //if (!ignore_error) + //error("Control %s element write error: %s\n", card, snd_strerror(err)); + if (!keep_handle) { + snd_ctl_close(handle); + handle = NULL; + } + //return ignore_error ? 0 : err; + return err; + } + } + if (! keep_handle) { + snd_ctl_close(handle); + handle = NULL; + } + + snd_hctl_t *hctl; + snd_hctl_elem_t *elem; + if ((err = snd_hctl_open(&hctl, card, 0)) < 0) { + printf("Control %s open error: %s", card, snd_strerror(err)); + return err; + } + + if ((err = snd_hctl_load(hctl)) < 0) { + printf("Control %s load error: %s", card, snd_strerror(err)); + return err; + } + + elem = snd_hctl_find_elem(hctl, id); + if (elem) + showControl(" ", elem, LEVEL_BASIC | LEVEL_ID); + else + printf("Could not find the specified element"); + snd_hctl_close(hctl); + + return 0; +} + +void UkuiMediaSetHeadsetWidget::showControlId(snd_ctl_elem_id_t *id) +{ + char *str; + + str = snd_ctl_ascii_elem_id_get(id); + if (str) + printf("%s", str); + free(str); +} + +int UkuiMediaSetHeadsetWidget::showControl(const char *space, snd_hctl_elem_t *elem, + int level) +{ + int err; + unsigned int item, idx, count, *tlv; + snd_ctl_elem_type_t type; + snd_ctl_elem_id_t *id; + snd_ctl_elem_info_t *info; + snd_ctl_elem_value_t *control; + snd_aes_iec958_t iec958; + snd_ctl_elem_id_alloca(&id); + snd_ctl_elem_info_alloca(&info); + snd_ctl_elem_value_alloca(&control); + if ((err = snd_hctl_elem_info(elem, info)) < 0) { + printf("Control hw snd_hctl_elem_info error: %s\n", snd_strerror(err)); + return err; + } + if (level & LEVEL_ID) { + snd_hctl_elem_get_id(elem, id); + showControlId(id); + printf("\n"); + } + count = snd_ctl_elem_info_get_count(info); + type = snd_ctl_elem_info_get_type(info); + + switch (type) { + case SND_CTL_ELEM_TYPE_INTEGER: + printf(",min=%li,max=%li,step=%li \n", + snd_ctl_elem_info_get_min(info), + snd_ctl_elem_info_get_max(info), + snd_ctl_elem_info_get_step(info)); + break; + case SND_CTL_ELEM_TYPE_INTEGER64: + printf(",min=%lli,max=%lli,step=%lli \n", + snd_ctl_elem_info_get_min64(info), + snd_ctl_elem_info_get_max64(info), + snd_ctl_elem_info_get_step64(info)); + break; + case SND_CTL_ELEM_TYPE_ENUMERATED: + { + unsigned int items = snd_ctl_elem_info_get_items(info); + printf(",items=%u\n", items); + for (item = 0; item < items; item++) { + snd_ctl_elem_info_set_item(info, item); + if ((err = snd_hctl_elem_info(elem, info)) < 0) { + printf("Control hw element info error: %s\n", snd_strerror(err)); + return err; + } + printf("%s; Item #%u '%s' \n", space, item, snd_ctl_elem_info_get_item_name(info)); + } + break; + } + default: + printf("\n"); + break; + } + + if (level & LEVEL_BASIC) { + if (!snd_ctl_elem_info_is_readable(info)) + goto __skip_read; + if ((err = snd_hctl_elem_read(elem, control)) < 0) { + printf("Control hw:0 element read error: %s\n", snd_strerror(err)); + return err; + } + + for (idx = 0; idx < count; idx++) { + if (idx > 0) + printf(",\n"); + switch (type) { + case SND_CTL_ELEM_TYPE_BOOLEAN: + printf("%s \n", snd_ctl_elem_value_get_boolean(control, idx) ? "on" : "off"); + break; + case SND_CTL_ELEM_TYPE_INTEGER: + printf("%li \n", snd_ctl_elem_value_get_integer(control, idx)); + break; + case SND_CTL_ELEM_TYPE_INTEGER64: + printf("%lli \n", snd_ctl_elem_value_get_integer64(control, idx)); + break; + case SND_CTL_ELEM_TYPE_ENUMERATED: + printf("%u \n", snd_ctl_elem_value_get_enumerated(control, idx)); + break; + case SND_CTL_ELEM_TYPE_BYTES: + printf("0x%02x \n", snd_ctl_elem_value_get_byte(control, idx)); + break; + case SND_CTL_ELEM_TYPE_IEC958: + snd_ctl_elem_value_get_iec958(control, &iec958); + printf("[AES0=0x%02x AES1=0x%02x AES2=0x%02x AES3=0x%02x] \n", + iec958.status[0], iec958.status[1], + iec958.status[2], iec958.status[3]); + break; + default: + printf("? \n"); + break; + } + } +__skip_read: + if (!snd_ctl_elem_info_is_tlv_readable(info)) + goto __skip_tlv; + /* skip ASoC ext bytes controls that may have huge binary TLV data */ + if (type == SND_CTL_ELEM_TYPE_BYTES && + !snd_ctl_elem_info_is_readable(info) && + !snd_ctl_elem_info_is_writable(info)) { + printf("%s; ASoC TLV Byte control, skipping bytes dump \n", space); + goto __skip_tlv; + } + + tlv = (unsigned int *)malloc(4096); + if ((err = snd_hctl_elem_tlv_read(elem, tlv, 4096)) < 0) { + printf("Control hw:0 element TLV read error: %s \n", snd_strerror(err)); + free(tlv); + return err; + } + //decode_tlv(strlen(space), tlv, 4096); + free(tlv); + } +__skip_tlv: + return 0; +} + +void UkuiMediaSetHeadsetWidget::showWindow() +{ + #define MARGIN 4 + QDBusInterface iface("org.ukui.panel", + "/panel/position", + "org.ukui.panel", + QDBusConnection::sessionBus()); + QDBusReply reply=iface.call("GetPrimaryScreenGeometry"); + QVariantList position_list=reply.value(); + /* + * 通过这个dbus接口获取到的6个参数分别为 :可用屏幕大小的x坐标、y坐标、宽度、高度,任务栏位置 + */ + this->setGeometry((position_list.at(0).toInt()+position_list.at(2).toInt()-this->width())/2, + (position_list.at(1).toInt()+reply.value().at(3).toInt()-this->height())/2, + this->width(),this->height()); + isShow = true; + this->show(); +} + +UkuiMediaSetHeadsetWidget::~UkuiMediaSetHeadsetWidget() +{ + +} + +UkmediaHeadsetButtonWidget::UkmediaHeadsetButtonWidget(QString icon, QString text) +{ + iconLabel = new QLabel; + textLabel = new QLabel(text); + + this->setFixedSize(96,96); + iconLabel->setFixedSize(32,32); + textLabel->setFixedHeight(20); + QVBoxLayout *vLayout = new QVBoxLayout(); + vLayout->addWidget(iconLabel); + vLayout->addWidget(textLabel); + vLayout->setSpacing(7); + vLayout->setContentsMargins(0,20,0,20); + this->setLayout(vLayout); + + iconLabel->setPixmap(QIcon::fromTheme(icon).pixmap(32,32)); +} + +UkmediaHeadsetButtonWidget::~UkmediaHeadsetButtonWidget() +{ + +} diff --git a/ukui-volume-control-applet-qt/ukui_media_set_headset_widget.h b/ukui-volume-control-applet-qt/ukui_media_set_headset_widget.h new file mode 100644 index 0000000..20dacd1 --- /dev/null +++ b/ukui-volume-control-applet-qt/ukui_media_set_headset_widget.h @@ -0,0 +1,86 @@ +/* + * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * + * 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, 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 +#include +#include +#include +#include +#include +#include +#include +#include +#include "customstyle.h" + +//设置声卡的key controls +#define LEVEL_BASIC (1<<0) +#define LEVEL_ID (1<<2) +#define HW_CARD "hw:0" + +class UkmediaHeadsetButtonWidget : public QWidget +{ + Q_OBJECT +public: + UkmediaHeadsetButtonWidget(QString icon,QString text); + ~UkmediaHeadsetButtonWidget(); + +private: + QLabel *iconLabel; + QLabel *textLabel; +}; + +class UkuiMediaSetHeadsetWidget : public QWidget +{ + Q_OBJECT +public: + UkuiMediaSetHeadsetWidget(QWidget *parent = nullptr); + ~UkuiMediaSetHeadsetWidget(); + void initSetHeadsetWidget(); + int cset(char * name, char *card, char *c, int roflag, int keep_handle); + void showControlId(snd_ctl_elem_id_t *id); + int showControl(const char *space, snd_hctl_elem_t *elem,int level); + void showWindow(); + friend class DeviceSwitchWidget; + friend class UkmediaMainWidget; +private: + QToolButton *headphoneIconButton; + QToolButton *headsetIconButton; + QToolButton *microphoneIconButton; + QLabel *headphoneLabel; + QLabel *headsetLabel; + QLabel *microphoneLabel; + + QLabel *selectSoundDeviceLabel; + QPushButton *soundSettingButton; + QPushButton *cancelButton; + + bool isShow = false; +private Q_SLOTS: + void headphoneButtonClickedSlot(); //点击headphone按钮 + void headsetButtonClickedSlot(); //点击headset 按钮 + void microphoneButtonClickedSlot(); //点击microphone 按钮 + void soundSettingButtonClickedSlot(); //点击声音设置按钮 + void cancelButtonClickedSlot(); //点击取消按钮 +protected: + void paintEvent(QPaintEvent *event); +}; + + +#endif // UKUIMEDIASETHEADSETWIDGET_H diff --git a/ukui-volume-control-applet-qt/xatom/xatom-helper.cpp b/ukui-volume-control-applet-qt/xatom/xatom-helper.cpp new file mode 100644 index 0000000..cf7b293 --- /dev/null +++ b/ukui-volume-control-applet-qt/xatom/xatom-helper.cpp @@ -0,0 +1,210 @@ +/* + * KWin Style UKUI + * + * Copyright (C) 2020, KylinSoft Co., Ltd. + * + * 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 . + * + * Authors: Yue Lan + * + */ + +#include "xatom-helper.h" +#include +#include +#include +#include + +static XAtomHelper *global_instance = nullptr; + +XAtomHelper *XAtomHelper::getInstance() +{ + if(!global_instance) + global_instance = new XAtomHelper; + return global_instance; +} + +bool XAtomHelper::isFrameLessWindow(int winId) +{ + auto hints = getInstance()->getWindowMotifHint(winId); + if(hints.flags == MWM_HINTS_DECORATIONS && hints.functions == 1) { + return true; + } + return false; +} + +bool XAtomHelper::isWindowDecorateBorderOnly(int winId) +{ + return isWindowMotifHintDecorateBorderOnly(getInstance()->getWindowMotifHint(winId)); +} + +bool XAtomHelper::isWindowMotifHintDecorateBorderOnly(const MotifWmHints &hint) { + bool isDeco = false; + if(hint.flags & MWM_HINTS_DECORATIONS && hint.flags != MWM_HINTS_DECORATIONS) { + if(hint.decorations == MWM_DECOR_BORDER) + isDeco = true; + } + return isDeco; +} + +bool XAtomHelper::isUKUICsdSupported() +{ + // fixme: + return false; +} + +bool XAtomHelper::isUKUIDecorationWindow(int winId) +{ + if(m_ukuiDecorationAtion == None) + return false; + + Atom type; + int format; + ulong nitems; + ulong bytes_after; + uchar *data; + + bool isUKUIDecoration = false; + + XGetWindowProperty(QX11Info::display(), winId, m_ukuiDecorationAtion, + 0, LONG_MAX, false, + m_ukuiDecorationAtion, &type, + &format, &nitems, + &bytes_after, &data); + + if(type == m_ukuiDecorationAtion) { + if(nitems == 1) { + isUKUIDecoration = data[0]; + } + } + + return isUKUIDecoration; +} + +UnityCorners XAtomHelper::getWindowBorderRadius(int winId) +{ + UnityCorners corners; + + Atom type; + int format; + ulong nitems; + ulong bytes_after; + uchar *data; + + if(m_unityBorderRadiusAtom != None) { + XGetWindowProperty(QX11Info::display(), winId, m_unityBorderRadiusAtom, + 0, LONG_MAX, false, + XA_CARDINAL, &type, + &format, &nitems, + &bytes_after, &data); + + if(type == XA_CARDINAL) { + if(nitems == 4) { + corners.topLeft = static_cast(data[0]); + corners.topRight = static_cast(data[1 * sizeof(ulong)]); + corners.bottomLeft = static_cast(data[2 * sizeof(ulong)]); + corners.bottomRight = static_cast(data[3 * sizeof(ulong)]); + } + XFree(data); + } + } + + return corners; +} + +void XAtomHelper::setWindowBorderRadius(int winId, const UnityCorners &data) +{ + if(m_unityBorderRadiusAtom == None) + return; + + ulong corners[4] = {data.topLeft, data.topRight, data.bottomLeft, data.bottomRight}; + + XChangeProperty(QX11Info::display(), winId, m_unityBorderRadiusAtom, XA_CARDINAL, + 32, XCB_PROP_MODE_REPLACE, (const unsigned char *) &corners, sizeof(corners) / sizeof(corners[0])); +} + +void XAtomHelper::setWindowBorderRadius(int winId, int topLeft, int topRight, int bottomLeft, int bottomRight) +{ + if(m_unityBorderRadiusAtom == None) + return; + + ulong corners[4] = {(ulong)topLeft, (ulong)topRight, (ulong)bottomLeft, (ulong)bottomRight}; + + XChangeProperty(QX11Info::display(), winId, m_unityBorderRadiusAtom, XA_CARDINAL, + 32, XCB_PROP_MODE_REPLACE, (const unsigned char *) &corners, sizeof(corners) / sizeof(corners[0])); +} + +void XAtomHelper::setUKUIDecoraiontHint(int winId, bool set) +{ + if(m_ukuiDecorationAtion == None) + return; + + XChangeProperty(QX11Info::display(), winId, m_ukuiDecorationAtion, m_ukuiDecorationAtion, 32, XCB_PROP_MODE_REPLACE, (const unsigned char *) &set, 1); +} + +void XAtomHelper::setWindowMotifHint(int winId, const MotifWmHints &hints) +{ + if(m_unityBorderRadiusAtom == None) + return; + + XChangeProperty(QX11Info::display(), winId, m_motifWMHintsAtom, m_motifWMHintsAtom, + 32, XCB_PROP_MODE_REPLACE, (const unsigned char *)&hints, sizeof(MotifWmHints) / sizeof(ulong)); +} + +MotifWmHints XAtomHelper::getWindowMotifHint(int winId) +{ + MotifWmHints hints; + + if(m_unityBorderRadiusAtom == None) + return hints; + + uchar *data; + Atom type; + int format; + ulong nitems; + ulong bytes_after; + + XGetWindowProperty(QX11Info::display(), winId, m_motifWMHintsAtom, + 0, sizeof(MotifWmHints) / sizeof(long), false, AnyPropertyType, &type, + &format, &nitems, &bytes_after, &data); + + if(type == None) { + return hints; + } else { + hints = *(MotifWmHints *)data; + XFree(data); + } + return hints; +} + +XAtomHelper::XAtomHelper(QObject *parent) : QObject(parent) +{ + if(!QX11Info::isPlatformX11()) + return; + + m_motifWMHintsAtom = XInternAtom(QX11Info::display(), "_MOTIF_WM_HINTS", true); + m_unityBorderRadiusAtom = XInternAtom(QX11Info::display(), "_UNITY_GTK_BORDER_RADIUS", false); + m_ukuiDecorationAtion = XInternAtom(QX11Info::display(), "_KWIN_UKUI_DECORAION", false); +} + +Atom XAtomHelper::registerUKUICsdNetWmSupportAtom() +{ + // fixme: + return None; +} + +void XAtomHelper::unregisterUKUICsdNetWmSupportAtom() +{ + // fixme: +} diff --git a/ukui-volume-control-applet-qt/xatom/xatom-helper.h b/ukui-volume-control-applet-qt/xatom/xatom-helper.h new file mode 100644 index 0000000..8727245 --- /dev/null +++ b/ukui-volume-control-applet-qt/xatom/xatom-helper.h @@ -0,0 +1,110 @@ +/* + * KWin Style UKUI + * + * Copyright (C) 2020, KylinSoft Co., Ltd. + * + * 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 . + * + * Authors: Yue Lan + * + */ + +#ifndef XATOMHELPER_H +#define XATOMHELPER_H + +#include +#include +#include + +struct UnityCorners { + ulong topLeft = 0; + ulong topRight = 0; + ulong bottomLeft = 0; + ulong bottomRight = 0; +}; + +typedef struct { + ulong flags = 0; + ulong functions = 0; + ulong decorations = 0; + long input_mode = 0; + ulong status = 0; +} MotifWmHints, MwmHints; + +#define MWM_HINTS_FUNCTIONS (1L << 0) +#define MWM_HINTS_DECORATIONS (1L << 1) +#define MWM_HINTS_INPUT_MODE (1L << 2) +#define MWM_HINTS_STATUS (1L << 3) + +#define MWM_FUNC_ALL (1L << 0) +#define MWM_FUNC_RESIZE (1L << 1) +#define MWM_FUNC_MOVE (1L << 2) +#define MWM_FUNC_MINIMIZE (1L << 3) +#define MWM_FUNC_MAXIMIZE (1L << 4) +#define MWM_FUNC_CLOSE (1L << 5) + +#define MWM_DECOR_ALL (1L << 0) +#define MWM_DECOR_BORDER (1L << 1) +#define MWM_DECOR_RESIZEH (1L << 2) +#define MWM_DECOR_TITLE (1L << 3) +#define MWM_DECOR_MENU (1L << 4) +#define MWM_DECOR_MINIMIZE (1L << 5) +#define MWM_DECOR_MAXIMIZE (1L << 6) + +#define MWM_INPUT_MODELESS 0 +#define MWM_INPUT_PRIMARY_APPLICATION_MODAL 1 +#define MWM_INPUT_SYSTEM_MODAL 2 +#define MWM_INPUT_FULL_APPLICATION_MODAL 3 +#define MWM_INPUT_APPLICATION_MODAL MWM_INPUT_PRIMARY_APPLICATION_MODAL + +#define MWM_TEAROFF_WINDOW (1L<<0) + +namespace UKUI { +class Decoration; +} + +class XAtomHelper : public QObject +{ + // friend class UKUI::Decoration; + Q_OBJECT +public: + static XAtomHelper *getInstance(); + + static bool isFrameLessWindow(int winId); + + static bool isWindowDecorateBorderOnly(int winId); + static bool isWindowMotifHintDecorateBorderOnly(const MotifWmHints &hint); + bool isUKUICsdSupported(); + bool isUKUIDecorationWindow(int winId); + + UnityCorners getWindowBorderRadius(int winId); + void setWindowBorderRadius(int winId, const UnityCorners &data); + void setWindowBorderRadius(int winId, int topLeft, int topRight, int bottomLeft, int bottomRight); + void setUKUIDecoraiontHint(int winId, bool set = true); + + void setWindowMotifHint(int winId, const MotifWmHints &hints); + MotifWmHints getWindowMotifHint(int winId); + +private: + explicit XAtomHelper(QObject *parent = nullptr); + + Atom registerUKUICsdNetWmSupportAtom(); + void unregisterUKUICsdNetWmSupportAtom(); + + Atom m_motifWMHintsAtom = None; + Atom m_unityBorderRadiusAtom = None; + Atom m_ukuiDecorationAtion = None; +}; + +#endif // XATOMHELPER_H diff --git a/ukui-volume-control-applet-qt/xatom/xatom.pri b/ukui-volume-control-applet-qt/xatom/xatom.pri new file mode 100644 index 0000000..2d5b140 --- /dev/null +++ b/ukui-volume-control-applet-qt/xatom/xatom.pri @@ -0,0 +1,7 @@ +INCLUDEPATH += $$PWD + +HEADERS += \ + $$PWD/xatom-helper.h \ + +SOURCES += \ + $$PWD/xatom-helper.cpp \