diff options
218 files changed, 6091 insertions, 43955 deletions
diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 75726e7..0000000 --- a/.gitattributes +++ /dev/null @@ -1,18 +0,0 @@ -# remove files from deployment using `git archive` - -# git files -.gitattributes export-ignore -.github export-ignore -.gitignore export-ignore - -# several files and directories we never want to export -# a little bit belt and braces as the most of these files -# should never ever be in the repository - -.*~ export-ignore -.kdev4 export-ignore -.translation-update export-ignore - -/build export-ignore -/temp export-ignore -/tmp export-ignore diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md deleted file mode 100644 index 9e10416..0000000 --- a/.github/ISSUE_TEMPLATE.md +++ /dev/null @@ -1,43 +0,0 @@ -<!--- Provide a general summary of the issue in the title above. You ---> -<!--- should not delete relevant sections and/or questions in your report ---> - -<!--- BEFORE FILLING OUT THIS REPORT FORM: ---> -<!--- Dear users of stable and LTS (long term service) distributions: ---> -<!--- Please do NOT file bugs against old (dead) versions but use your ---> -<!--- distribution bugtracker instead. This is esp. true for Ubuntu LTS. ---> - -##### Expected Behavior -<!--- If you're describing a bug, tell us what should happen --> -<!--- If you're suggesting a change/improvement, tell us how it should work --> - -##### Current Behavior -<!--- If describing a bug, tell us what happens instead of the expected ---> -<!--- behaviour. If suggesting a change/improvement, explain the difference --> -<!--- from current behavior (a screenshot might help) ---> - -##### Possible Solution -<!--- Not obligatory, but suggest a fix/reason for the bug, ---> -<!--- or ideas how to implement the addition or change ---> - -##### Steps to Reproduce (for bugs) -<!--- Provide a link to a live example, or an unambiguous set of steps to ---> -<!--- reproduce this bug. Include code to reproduce, if relevant ---> -1. -2. -3. -4. - -##### Context -<!--- How has this issue affected you? What are you trying to accomplish? ---> -<!--- Providing context helps us come up with a solution that is most ---> -<!--- useful in the real world ---> - -##### System Information -<!--- Include as many relevant details about the system you experienced ---> -<!--- the bug in ---> -* Distribution & Version: -* Kernel: -* Qt Version: -* libqtxdg Version: -* lxqt-build-tools Version: -* Package version: @@ -1,3 +1,4 @@ +CMakeLists.txt.user build *~ .deps diff --git a/.translation-update b/.translation-update deleted file mode 100644 index f25285c..0000000 --- a/.translation-update +++ /dev/null @@ -1 +0,0 @@ -translations='./src' diff --git a/AUTHORS b/AUTHORS deleted file mode 100644 index 05c542b..0000000 --- a/AUTHORS +++ /dev/null @@ -1,9 +0,0 @@ -This is the Qt port of pavucontrol <https://freedesktop.org/software/pulseaudio/pavucontrol/>. - -The original authors of the gtk+ version of pavucontrol are: -* Copyright 2006-2009 Lennart Poettering -* Copyright 2009-2011 Colin Guthrie <mzcnihpbageby (at) 0pointer (dot) de> - -The Qt port pavucontrol-qt is derived from the gtk+ version. -It's done by LXQt developers: -* Copyright 2016 Hong Jen-Yee (PCMan) <pcman.tw@gmail.com> diff --git a/CHANGELOG b/CHANGELOG deleted file mode 100644 index d7d0180..0000000 --- a/CHANGELOG +++ /dev/null @@ -1,556 +0,0 @@ -pavucontrol-qt-0.17.0 / 2021-04-15 -================================== - * Removed the unused dbus dependency. - -pavucontrol-qt-0.16.0 / 2020-11-01 -================================== - * Safely iterate over card profile info array. - * Fall back to default icon when no candidate is found. - * Elide playback name label if needed - * Don't force a height on progressbars. - * Remove warnings about unused function parameters. - * Wrapped the text of connecting error label. - -pavucontrol-qt-0.15.0 / 2020-04-23 -================================== - * Bumped version to 0.15.0. - * Avoid char raw strings literals memory allocations. - * Don't use automatic string conversions. - * Removed (duplicated) string casts definitions. - -pavucontrol-qt-0.14.1 / 2019-02-25 -================================== - - * Bumped version to 0.14.1 - * Only translations was changed. - -pavucontrol-qt-0.14.0 / 2019-01-25 -================================== - - * Bumped version to 0.14.0 - * Added FreeBSD installation instructions - * Implementation fixed: - - Some code modernizations like range based loops, - auto declared iterators and use of nullptr - - Don't use automatic string conversions - - Remove unused Makefile.am - - Treat the 'off' card profile specifically - - Mainwindow: Don't use deprecated libpulse members - * Improved cmake scripting - - Set cmake_minimum_required to 3.1.0 - - Removed locale compile definitons - * Moved translations from lxqt-l10n back to pavucontrol-qt - - Removed obsolete translation fuctionality - - Added translation promo in README.md - * Translation updates - -pavucontrol-qt-0.4.0 / 2018-05-21 -================================= - - * Bumped minor version to 4 - * Spanish translation update - * Qt5.11 beta: xxxwidget: include QAction explicitely - * CMake: Prevent in-source builds - * build: Use pkg-config's *_LDFLAGS - * fix http -> https - * Fixed mentions of LXDE - * pavucontrol: Remove unique application constraint - * Add Simplified Chinese desktop entry - -pavucontrol-qt-0.3.0 / 2017-09-24 -================================= - - * Release 0.3.0: Update changelog - * Bump version to 0.3.0 - * correct spelling mistake - * Added Lithuanian .desktop file - * liblxqt make no sense here - * Copied issue template - * set Qt::AA_UseHighDpiPixmaps to true - * Added version to cli options - * Added default CMAKE_BUILD_TYPE and versioning - * added pl.desktop - * ui: Use "changes-prevent-symbolic" icon - * MainWindow: Remove old GTK remnants - * Add Catalan translation - * Channel: Add slider snapping to 100% - * Channel: Address compiler warnings - * Channel: Align slider controls correclty - * Channel: Add ticks to volume slider - * Channel: Use percentage for volume scale - * devicewidgte: Re-add device renaming - * MainWindow: Force using the size from previous run - * MainWindow: Add quit shortcut - * Added pavucontrol-qt_da.desktop - -pavucontrol-qt-0.2.0 / 2016-12-11 -================================= - - * Release 0.2.0: Update changelog - * Release 0.2.0: Update changelog - * Use QSettings for storing configuration - * Create pavucontrol-qt_pt.desktop - * Use the new lxqt-build-tools package - * - Add a simple single instance controller to avoid run multiple simultaneous applications - * Use same approach as avidemux - * Simply differentiate the namnig to avoid menu duplication - * CMakeLists: Remove XdgUserDirs requirement - * mainwindow: Set icon for eventRoleWidget - -pavucontrol-qt-0.1.0 / 2016-09-24 -================================= - - * Release 0.1.0: Add changelog - * devicewidget: Remove debug - * Address compiler warnings - * streamwidget: Fix specific termination text - * Re-add support for changing source output - * streamwidget: Re-add "Terminate" context menu - * Re-add support for changing sink input - * ui: Lock channels by default - * ui: Enable sink's advanced options only if digital - * ui: Condense device advanced settings - * ui: Align titles left - * ui: Use "changes-prevent" icon for "Lock channels.." - * ui: Don't stretch content horizontaly - * ui: Simplify peak bar - * channels: Align channel sliders - * Add README.md - * devicewidget: Set the PCM encoding always enabled - * Properly install pavucontrol-qt.desktop file. - * Prevent recursive signal handler invocation. * Replace some push buttons with tool buttons. - * Add authors information. - * Remove glibmm dependency. - * Fix translations. - * Replace GNU gettext with Qt tr() in all places. - * Add missing ui files to CMakeLists.txt - * Trivial fix for Timeout handlers. - * Porting to Qt 5 - Finish the basic UI. - * Make all source code compile with Qt5. - * Port DeviceWidget and ChannelWidget to Qt5. - * Add missing file. - * Fix broken combo box in CardWidget. Remove unused code. - * Port the sound card configuration page to Qt. - -start-qt / 2016-08-31 -===================== - - * Start working on a Qt5 port. - * mainwindow: force icons to have sane size - * Add checkbutton for disabling volume meters - * .gitignore: add compile - * mainwindow: Don't add a border on the outermost vbox - * build-sys: Add m4 file for AX_CXX_COMPILE_STDCXX_11 - * doc: Update link to git repository - * build-sys: Use C++11 for building - * Remove Encoding key from .desktop file - * i18n: improve one Italian string - * i18n: Some fixes for the Italian translation - * Add --version command line option - * build-sys: Depend on libpulse >= 5.0 - * mainwindow: unavailable profiles are marked as such in their description - * i18n: Updated Polish translation - * build-sys: Release pavucontrol 3.0 - * doc: Adapt the sed expression for cleaning up links - * build-sys: Don't dist m4/ChangeLog - * build-sys: Fix README building - * mainwindow: Remember device visibility selections - * devicewidget, streamwidget: Show only one volume slider when channels are locked - * mainwindow: Catch Gdk::PixbufError - * Handle IO errors in icon setting code - * Don't crash if pa_stream_peek returns NULL - * Do not instantiate cardwidget, devicewidget and rolewidget with a type of EventBox - * Reference the widget before returning it from ::create methods - * Add horizontal scrollbars automatically - * Add TRANSLATORS_README.txt - * Add a --maximize command line option - * pavucontrol: ellipsize labels to fix window resizing - * build-sys: Use autoreconf in bootstrap.sh - * sinkwidget: add support for AAC pass-through - * added back support for gtkmm-2.4 builds - * build-sys: Drop ChangeLog generation from git - * build-sys: Prepare for a 2.0 release - * sinkwidget: Move format selection options to 'Advanced' expander - * devicewidget: Move latency offset into an expander - * mainwindow: Fix iterator dereferencing style. - * mainwindow: Show the availability of the ports and profiles. - * mainwindow: Don't clear the "updating" flag in updateCard() too early. - * Enable Automake's silent-rules option. - * Add a few known peak-detect stream clients to a source-output blacklist - * devicewidget: Add a latency offset spinbutton - * sink/sourcewidget: Move the index and card_index to the devicewidget - * cardwidget: Add a port class - * bootstrap: Enable the pre-commit hook. - * gitignore: Add *.swp. - * Add --retry command line option - * Fix theme under gtk3 - * build-sys: Prepare 1.0 - * build-sys: Switch to the tar-ustar format (as per a lot of GNOME stuff for 3.2) and distribute .xz files. - * i18n: Add devicewidget to POTFILES.in - * source: Only autosuspend network sources - * build-sys: Prepare 0.99.2 - * Update device format stuff for (pre-release) API changes. - * Check if PA_SINK_SET_FORMATS is defined before using it - * Use sink flags to figure out if we can set formats - * Add UI to select the formats supported by the receiver attached to a digitial sink - * build-sys: Prepare 0.99.1 - * Fix strange vertical alignment of sinks/source/cards - * Fix GTK Warnings under GTK3 due to combo box sizes - * source-output: We will officially support source output volumes in 0.99 - * source-output: Don't set the channel map for the SO if we do not support SO volumes. - * sink: Oops. I didn't mean to comment this out in the previous commit. - * stream-volumes: Support source-output volume controls now available in PA. - * i18n: Fix markup error in de translation. - * Handle simple key events. - * Deal more gracefully with disconnections. - * Add support for gtkmm-3.0 and prefer it over gtkmm-2.* by default. - * Ensure the marker for base volume is set on all channels. - * volume: Don't bother setting the steps. - * volume: Support volumes up to 11. - * ui: Remove ellipsize attribute from some labels (causes ellipsis to be displayed rather than real text) - * ui: Resave glade file without any changes to tidy it up - * Drop the need to use libglademm - * Add DONT_INHIBIT_AUTO_SUSPEND flag to monitor streams - * source-outputs: Source outputs do not support volume control, so hide the mute and lock channels buttons - * main: Format string fixes - * main: Add a --tab command line argument to force a given tab to be displayed. - * mainwindow: Fix clearing out of clients - * mainwindow: Save/restore window size - * mainwindow: Compact iterator decls - * main: Cleanup labels after connection rework - * source-outputs: Fix a bug where the 'no streams' label is sometimes shown along with the actual widget. - * connection: Show a nice label when connecting to PA. - * main: Automatically reconnect to PA upon disconnection - * mainwindow: Add a method to remove all widgets (e.g. on disconnect) - * streamwidget: Fix a compile warning. - * Split out the creation of the PA context a little. - * glade: ellipsize user supplied text strings - * Allow for the sink input peak detect to survive across sink moves. - * Update for the latest incarnation of module-device-manager - * Use the correct update mode for device-restore database write - * Add support for the device-manager module. - * build-sys: prepare 0.9.10 - * add ja to LINGUAS - * run make update-po - * Sending translation for Hungarian - * volume: Set the scale properly for delta changes via mouse/keyboard. - * events: Hide output streams with a stream restore designator for the event widget. - * Sending translation for Czech - * Sending translation for Kannada - * Sending translation for Japanese - * Sending translation for French - * Sending translation for Brazilian Portuguese - * Sending translation for Hindi - * Sending translation for Slovak - * Require at least PulseAudio 0.9.16. - * Sending translation for Danish - * Sending translation for Portuguese - * Sending translation for Serbian (Latin) - * Sending translation for Serbian - * Sending translation for Finnish - * Sending translation for German - * Sending translation for Ukrainian - * build-sys: require at least gtkmn 2.16 - * Add missing source file to POTFILES.in. - * Sending translation for Catalan - * Sending translation for Polish - * Sending translation for Spanish - * Sending translation for Oriya - * Sending translation for Dutch - * Sending translation for po/ja.po - * Sending translation for Telugu - * Sending translation for Bengali (India) - * Sending translation for Hindi - * Sending translation for Marathi - * Sending translation for Tamil - * Sending translation for Malayalam - * Sending translation for Gujarati - * Sending translation for Malayalam - * Sending translation for Punjabi - * i18n: run make update-po - * i18n: drop ko.po since it does not include a single translated string - * Prepare 0.9.9 relase - * drop reference to beepDevice - * Sending translation for Tamil - * Sending translation for Finnish - * Sending translation for po/LINGUAS - * fix event sound generation for volume changes - * only assume that the minimal volume is silence for devices that can do dB volumes - * use fallback icon scheme for stream icons, too - * Sending translation for po/uk.po - * Sending translation for po/ko.po - * Sending translation for Swedish - * Sending translation for Hungarian - * glade: minor alignment fixes - * Restructure the class inheritance a bit. - * Rename event method to be more indicative of what it does. - * Rename a variable to make it more generic - * Add support for changing ports. - * Don't use a hyperlink to display the device, just use a regular button. - * Do not disable the default button when it's set. - * Hide the terminate button. - * More changes in the UI to try and make things neater. - * Create the event role widget early so that it's always top of the list. - * Change 'Default' to 'Use as fallback' - * Move the setBaseVolume()/setSteps() methods to devicewidget (problem found after rebasing) - * Include config.h in the cc file (after rebase) - * Add a tooltip - * Wire up all the new UI code. - * Wire up the default toggle button (replaces the old menu) - * Hook up the device combo box on change event - * Remove the 'Default [Out|In]put' option from the combo for now. - * Set the correct combo index for display purposes - * Record in a map the combobox indexes vs. the sink/source indexes - * Add setter/getter methods for sink/source indexes so we can update our combo boxes current item - * Remove the kill menu item now we have a dedicated button - * Wire up the terminate button - * Set the pack_start on the deviceCombo - * Set the mainwindow pointer via an init() method rather than directly via public member variable. - * Adapt to new UI - * Rebase the sink/source widgets on the device widget - * Create a devicewidget based on streamwidget. - * Glade UI changes. Code still needs to be updated - * update po/ - * make sure that two card profiles with the same priority don't collide with each other - * don't abort when icon is missing from the theme - * Fix my name. - * Sending translation for Punjabi - * Sending translation for po/hi.po - * Sending translation for Punjabi - * Sending translation for Punjabi - * Sending translation for Bengali (India) - * Sending translation for Malayalam - * Sending translation for Slovak - * Sending translation for po/sr@latin.po - * Sending translation for Serbian - * Sending translation for French - * Sending translation for French - * Sending translation for Portuguese - * Sending translation for Czech - * Sending translation for Assamese - * Sending translation for po/ru.po - * Sending translation for Italian - * Sending translation for Brazilian Portuguese - * Sending translation for French - * Sending translation for German - * Sending translation for Danish - * Sending translation for Dutch - * Sending translation for Polish - * Sending translation for Telugu - * Sending translation for Marathi - * Sending translation for Gujarati - * Sending translation for Oriya - * Sending translation for Kannada - * Sending translation for Spanish - * fix year - * update screenshot - * fix POTFILES.in - * update README - * bump version - * don't show failure msgbox twice - * reenable monitor streams - * sort LINGUAS - * add missing languages to LINGUAS - * run make update-po - * Sending translation for Portuguese - * Sending translation for Portuguese - * Sending translation for Polish - * Sending translation for Assamese - * don't show wait cursor forever if stream_restore extension is not available - * Sending translation for po/LINGUAS - * Sending translation for Portuguese - * Sending translation for po/bn_IN.po - * Sending translation for po/ta.po - * Sending translation for po/as.po - * Sending translation for po/te.po - * Sending translation for po/kn.po - * Sending translation for po/gu.po - * Sending translation for po/sr@latin.po - * Sending translation for Serbian - * Sending translation for Portuguese - * Sending translation for Serbian - * Sending translation for Finnish - * Sending translation for po/da.po - * Sending translation for Dutch - * Sending translation for po/mr.po - * Sending translation for Portuguese - * Sending translation for Portuguese - * Sending translation for po/pt.po - * Sending translation for po/or.po - * Sending translation for Slovak - * Sending translation for po/ml.po - * Sending translation for po/it.po - * Sending translation for Chinese (Simplified) - * Order the card profiles by their priority - * Silence a warning - * Sending translation for Hungarian - * configure steps for scales - * visualize base volume - * Updated catalan po - * Shuffle some headers around a bit so that some systems don't have build errors - * Use C style comments as per Lennart's fetish :p - * Move config.h inclusion to the .cc files - * Split mainwindow into it's own files. - * Split rolewidget into it's own files. - * Split sourceoutputwidget out into it's own files. - * Split sinkinputwidget into it's own files. - * Split sourcewidget into it's own files. - * Split sinkwidget into it's own files. - * Split cardwidget out into it's own files. - * Move common setup into a shared header - * Split out streamwidget into it's own files. - * Split channelwidget into separate files. Also separate out the definition of streamwidget into it's own header - * Include config.h in minimalstreamwidget.h - * Split the minimalstreamwidget into it's own file - * Updated Thai translation - * Adding Punjabi (pa) Language to LINGUAS - * updated Spanish translation - * Remove the minimalStreamWindow. It's no longer used - * Updated Polish translation - * use the server provided icons - * Initialise our dropdown at contruction and just repopulate it when the cardinfo callback is received - * various small glade updates - * fix version of libcanberra dependency, fixes PA bug #494 - * Fix the number of outstanding operations. - * Typo: spell configuration right - * Add a new widget for the card configuration and use it. - * Create a new 'Configuration' tab - * Silence some warnings - * Initial support for changing card profiles. - * run make update-po - * Add 'Mixer' categorization to .desktop file - * deal with non-initialized data from m-s-r - * Punjabi translation for Module: A S Alam - * Add fi (Finnish) to LINGUAS. - * Add Finnish (fi) translation by Timo Jyrinki. - * Added zh_CN to LINGUAS - * Add zh_CN.po - * Added sr and sr@latin to LINGUAS - * Initial Serbian Latin translation - * Initial Serbian translation - * Updated LINGUAS - * LINGUAS: Added cs. - * Added Czech translation. - * updated spanish translation - * Added tr to LINGUAS - * Added Turkish Translation - * remove debug output - * Added ca locale - * Add sk to LINGUAS - * First Slovak translation. - * Updated Greek translation - * Added catalan po - * Add pt_BR to LINGUAS - * Initial Brazilian Portuguese translation - * Add nl to LINGUAS - * Initial Dutch translation by Reinout van Schouwen - * Updated de translation with input from gnome-de (thanks Hendrik Richter). - * prepare release 0.9.7 - * initialize maximum buffer length to automatic value (uint32_t) -1 instead of smallest value 0 - * Updated de translation with input from gnome-de (thanks andre klapper). - * Added sv to LINGUAS. - * Added Swedish translation. - * Updated Polish translation - * Added el, fr, hu, pl to LINGUAS - * Initial German translation - * Added Hungarian translation - * Updated French translation - * Initial Polish translation - * Started Greek translation - * beep when changing volume - * Install README files in doc/html directories. - * Make use of common ZP_LYNX_DOC macro. - * Create m4 directory, and set it up. - * Bump autoconf requirement to 2.62 (latest released version). - * Remove gettext macro, the package uses intltool instead. - * improve german translation - * add basic german translation - * internationalize pavucontrol.cc - * hide .desktop file from git - * add i18n - * generate changelog from git history - * use system installed glade file - * update license headers for GPL 2.0+ - * update bootstrap.sh a bit - * add a special track for controlling event sound volume - * bump required version - * fix glade widget name case - * hide tarballs from git - * change 'git' tag in tarball name to 'svn' - * bump revision - * bump deps - * remove $Id$ - * add gitignore - * fix a typo spotted by Romain Tartière - * Make icons work - * show stream icons, don't show our own monitor streams, initialize client proplist properly - * add volume meter support to each sink/source/record stream - * more intelligent initial page selection - * Also point the minimalStreamWindow downward - * move no_xxx labels in the middle of the dialogs - * properly initialize source output type dropdown; show string for record streams properly - * switch to sink page by default if no streams are active - * unclutter UI, remove redundant hint bar - * show volume in decibel - * Remove the white header, drop all references to PulseAudio to become a more normal program - * move the lock/mute buttons to the same spot as the menu buttons - * Merge patch from sjoerd that adds a new panel for listing recording streams, and makes the menu more visible by adding a button for it - * prepare next pavucontrol release - * don't crash if server has no default sink/source set - * show radio buttons for the the sink menu items - * prepare next release - * add changelog to tarball - * make stream title selectable, Closes #140 in pa trac - * add option to kill a stream to popup menu - * add popup menu to sink/source view to choose default device - * use pretty channel names - * add a combobox to the streams page, to filter application streams - * Don't pass the button index to popup() for the GtkMenu to avoid strange GTK behaviour in newer versions. Identified by coling - * add fedora-snapshot target - * bump deps - * support muting sink inputs, avoid duplicate events - * fix button tooltips - * fix lock icon - * minor tweaks - * Fix license mess: change everything to GPL - * fix typo - * update docs for 0.9.5 - * bump requirements - * add lightbulb - * - add new option "All Except Monitor Sources" to sources option menu - show a nice hint that one can right click on a stream - * use the sink descripion instead of the name for the stream popup menu - * In times where the sink/source names are generated from HAL UDIs don't show the cryptic device name any more - * optimize redraw a little - * add popup menu to stream list, allowing "hot" moving of playback streams between sinks - * add focus target - * show an watch cursor while loading device data - * add combobox to show only a subset of sinks/sources, replacing the old monitor expander - * prepare release 0.9.3 - * bump version - * Make jhbuild happy by adding a file autgen.sh - * show client name only if we have it - * prepare 0.9.2 release - * include config.h properly - * s/polyp/pulse/ in README - * s/polyp/pulse/g - * update docs for 0.9.1 - * bump version number to 0.9.1 - * actually ship the .desktop file - * use gtk_widget_queue_redraw() to try to workaround an issues that the sources are not shown - * Add .desktop file. - * set icon for the main window - * use some icons from the icon spec - * minor updates - * prepare release 0.9.0 - * Show client name for playback streams - * change scale behaviour to be more resposive * make "Streams" page the default - * bump version number for polypaudio 0.9.0 - * bump for polypadio 0.8.1 - * make SIGPIPE warning disappear - * fix glade file path - * add screenshot for website - * build system updates - * add coumentation and license - * show proper message boxes in case of error instead of printing just to STDERR - * initial commit - * Create trunk directory diff --git a/CMakeLists.txt b/CMakeLists.txt index 2c83719..0a4d476 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.1.0 FATAL_ERROR) +cmake_minimum_required(VERSION 3.10.0 FATAL_ERROR) # CMP0000: Call the cmake_minimum_required() command at the beginning of the top-level # CMakeLists.txt file even before calling the project() command. # The cmake_minimum_required(VERSION) command implicitly invokes the cmake_policy(VERSION) @@ -6,8 +6,6 @@ cmake_minimum_required(VERSION 3.1.0 FATAL_ERROR) # versions. project(pavucontrol-qt) -option(UPDATE_TRANSLATIONS "Update source translation translations/*.ts files" OFF) - list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake") set(CMAKE_INCLUDE_CURRENT_DIR ON) @@ -18,31 +16,24 @@ set(CMAKE_AUTOUIC ON) include(GNUInstallDirs) # Minimum Versions -set(GLIB_MINIMUM_VERSION "2.50.0") -set(LXQTBT_MINIMUM_VERSION "0.4.0") set(QT_MINIMUM_VERSION "5.9.5") -find_package(Qt5Widgets ${QT_MINIMUM_VERSION} REQUIRED) -find_package(Qt5LinguistTools ${QT_MINIMUM_VERSION} REQUIRED) -find_package(lxqt-build-tools ${LXQTBT_MINIMUM_VERSION} REQUIRED) +find_package(PkgConfig REQUIRED) -find_package(GLIB ${GLIB_MINIMUM_VERSION} REQUIRED) +pkg_check_modules(LIBPULSE libpulse REQUIRED IMPORTED_TARGET) +pkg_check_modules(LIBPULSE_MAINLOOP libpulse-mainloop-glib REQUIRED IMPORTED_TARGET) -set(PAVUCONTROLQT_MAJOR_VERSION 0) -set(PAVUCONTROLQT_MINOR_VERSION 17) +set(PAVUCONTROLQT_MAJOR_VERSION 1) +set(PAVUCONTROLQT_MINOR_VERSION 0) set(PAVUCONTROLQT_PATCH_VERSION 0) set(PAVUCONTROLQT_VERSION ${PAVUCONTROLQT_MAJOR_VERSION}.${PAVUCONTROLQT_MINOR_VERSION}.${PAVUCONTROLQT_PATCH_VERSION}) add_definitions("-DPAVUCONTROLQT_VERSION=\"${PAVUCONTROLQT_VERSION}\"") -include(LXQtPreventInSourceBuilds) -include(LXQtCompilerSettings NO_POLICY_SCOPE) -include(LXQtTranslate) - -find_package(PkgConfig REQUIRED) -pkg_check_modules( - PULSE REQUIRED - libpulse>=5.0 - libpulse-mainloop-glib>=0.9.16 -) +#find_package(PkgConfig REQUIRED) +#pkg_check_modules( +# PULSE REQUIRED +# libpulse>=5.0 +# libpulse-mainloop-glib>=0.9.16 +#) add_subdirectory(src) diff --git a/LICENSE b/LICENSE deleted file mode 100644 index d511905..0000000 --- a/LICENSE +++ /dev/null @@ -1,339 +0,0 @@ - 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. - - <one line to give the program's name and a brief idea of what it does.> - Copyright (C) <year> <name of author> - - 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. - - <signature of Ty Coon>, 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/README.md b/README.md deleted file mode 100644 index 11e3337..0000000 --- a/README.md +++ /dev/null @@ -1,56 +0,0 @@ -# pavucontrol-qt - -## Overview - -pavucontrol-qt is the Qt port of volume control [pavucontrol](https://freedesktop.org/software/pulseaudio/pavucontrol/) of sound server [PulseAudio](https://www.freedesktop.org/wiki/Software/PulseAudio/). - -As such it can be used to adjust all controls provided by PulseAudio as well as some additional settings. - -The software belongs to the LXQt project but its usage isn't limited to this desktop environment. - -## Installation - -### Compiling source code - -Runtime dependencies are qtbase and PulseAudio client library libpulse. -Additional build dependencies are CMake and [liblxqt](https://github.com/lxqt/liblxqt) as well as optionally Git to pull latest VCS checkouts. The localization files were outsourced to repository [lxqt-l10n](https://github.com/lxqt/lxqt-l10n) so the corresponding dependencies are needed, too. Please refer to this repository's `README.md` for further information. - -Code configuration is handled by CMake. CMake variable `CMAKE_INSTALL_PREFIX` has to be set to `/usr` on most operating systems. - -To build run `make`, to install `make install` which accepts variable `DESTDIR` as usual. - -### Binary packages - -On Arch Linux the package [pavucontrol-qt](https://www.archlinux.org/packages/community/x86_64/pavucontrol-qt/) can be used and [pavucontrol-qt-git](https://aur.archlinux.org/packages/pavucontrol-qt-git/) is to build current checkouts of branch `master`. - -On FreeBSD the binary package is available as [pavucontrol-qt](https://www.freshports.org/audio/pavucontrol-qt/) and can be installed with `pkg install pavucontrol-qt`. - -#### Debian - -Package `pavucontrol-qt` is available in the official repositories as of Debian buster. - -#### Fedora - -Package `pavucontrol-qt` is available in the official repositories as of Fedora 31. - -#### OpenSuse - -Package `pavucontrol-qt` is available in the official repositories as of openSUSE Leap:15.2 - - - - -## Usage - -In LXQt sessions the binary is placed in sub-menu "Sound & Video" of the panel's main menu. - -The usage itself should be self-explanatory. - - -## Translations - -Translations can be done in [LXQt-Weblate](https://translate.lxqt-project.org/projects/lxqt-configuration/pavucontrol-qt/). - -<a href="https://translate.lxqt-project.org/projects/lxqt-configuration/pavucontrol-qt/"> -<img src="https://translate.lxqt-project.org/widgets/lxqt-configuration/-/pavucontrol-qt/multi-auto.svg" alt="Translation status" /> -</a> diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 7e4effe..d7ff79a 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,67 +1,43 @@ -include_directories( - ${PULSE_INCLUDE_DIRS} - ${GLIB_INCLUDE_DIRS} -) +#include_directories( +# ${PULSE_INCLUDE_DIRS} +# ${GLIB_INCLUDE_DIRS} +#) + +add_subdirectory(PulseAudioQt) + +find_package(Qt5Widgets ${QT_MINIMUM_VERSION} REQUIRED) +find_package(Qt5Core ${QT_MINIMUM_VERSION} REQUIRED) +#find_package(Qt5LinguistTools ${QT_MINIMUM_VERSION} REQUIRED) set(pavucontrol-qt_HDRS - pavucontrol.h + main.h mainwindow.h - cardwidget.h - channel.h - devicewidget.h - minimalstreamwidget.h - rolewidget.h - sinkinputwidget.h - sinkwidget.h - sourceoutputwidget.h - sourcewidget.h - streamwidget.h - elidinglabel.h - helper.h + slxoutput.h ) set(pavucontrol-qt_SRCS - pavucontrol.cc - mainwindow.cc - cardwidget.cc - channel.cc - devicewidget.cc - minimalstreamwidget.cc - rolewidget.cc - sinkinputwidget.cc - sinkwidget.cc - sourceoutputwidget.cc - sourcewidget.cc - streamwidget.cc - elidinglabel.cc - helper.cc + main.cpp + mainwindow.cpp + slxoutput.cpp ) set(pavucontrol-qt_UI - cardwidget.ui - devicewidget.ui mainwindow.ui - streamwidget.ui + slxoutput.ui ) -# Translations +qt5_add_resources(pavucontrol-qt_RCS resources.qrc) add_executable(pavucontrol-qt ${pavucontrol-qt_SRCS} - ${pavucontrol-qt_QM_FILES} - ${pavucontrol-qt_QM_LOADER} - ${DESKTOP_FILES} -) -set_property( - TARGET pavucontrol-qt APPEND - PROPERTY COMPILE_DEFINITIONS - PAVUCONTROL_QT_DATA_DIR="${CMAKE_INSTALL_PREFIX}/share/${PROJECT_NAME}" + ${pavucontrol-qt_RCS} ) +# ${PULSE_LDFLAGS} +# ${GLIB_LDFLAGS} target_link_libraries(pavucontrol-qt Qt5::Widgets - ${PULSE_LDFLAGS} - ${GLIB_LDFLAGS} + KF5PulseAudioQt ) install(TARGETS diff --git a/src/PulseAudioQt/CMakeLists.txt b/src/PulseAudioQt/CMakeLists.txt new file mode 100644 index 0000000..7578983 --- /dev/null +++ b/src/PulseAudioQt/CMakeLists.txt @@ -0,0 +1,49 @@ +add_library(KF5PulseAudioQt STATIC) + +project(PulseAudioQt) + +find_package(Qt5DBus ${QT_MINIMUM_VERSION} REQUIRED) +find_package(Qt5Core ${QT_MINIMUM_VERSION} REQUIRED) +find_package(Qt5Gui ${QT_MINIMUM_VERSION} REQUIRED) + +target_sources(KF5PulseAudioQt PRIVATE + card.cpp + cardport.cpp + client.cpp + context.cpp + device.cpp + maps.cpp + operation.cpp + port.cpp + profile.cpp + models.cpp + pulseobject.cpp + sink.cpp + sinkinput.cpp + source.cpp + sourceoutput.cpp + stream.cpp + volumeobject.cpp + server.cpp + streamrestore.cpp + module.cpp + indexedpulseobject.cpp +) + +target_link_libraries(KF5PulseAudioQt + PUBLIC + Qt5::Core + PRIVATE + Qt5::Gui + Qt5::DBus + PkgConfig::LIBPULSE + PkgConfig::LIBPULSE_MAINLOOP +) + +#target_include_directories(KF5PulseAudioQt INTERFACE "$<INSTALL_INTERFACE:${KDE_INSTALL_INCLUDEDIR_KF5}/KF5PulseAudioQt>" ) + +#set_target_properties(KF5PulseAudioQt PROPERTIES VERSION ${PULSEAUDIOQT_VERSION} +# SOVERSION ${PULSEAUDIOQT_SOVERSION} +# EXPORT_NAME PulseAudioQt +#) + diff --git a/src/PulseAudioQt/Card b/src/PulseAudioQt/Card new file mode 100644 index 0000000..c618865 --- /dev/null +++ b/src/PulseAudioQt/Card @@ -0,0 +1 @@ +#include "card.h" diff --git a/src/PulseAudioQt/CardPort b/src/PulseAudioQt/CardPort new file mode 100644 index 0000000..71e4307 --- /dev/null +++ b/src/PulseAudioQt/CardPort @@ -0,0 +1 @@ +#include "cardport.h" diff --git a/src/PulseAudioQt/Client b/src/PulseAudioQt/Client new file mode 100644 index 0000000..f679c0d --- /dev/null +++ b/src/PulseAudioQt/Client @@ -0,0 +1 @@ +#include "client.h" diff --git a/src/PulseAudioQt/Context b/src/PulseAudioQt/Context new file mode 100644 index 0000000..7e33fb6 --- /dev/null +++ b/src/PulseAudioQt/Context @@ -0,0 +1 @@ +#include "context.h" diff --git a/src/PulseAudioQt/Device b/src/PulseAudioQt/Device new file mode 100644 index 0000000..155c911 --- /dev/null +++ b/src/PulseAudioQt/Device @@ -0,0 +1 @@ +#include "device.h" diff --git a/src/PulseAudioQt/IndexedPulseObject b/src/PulseAudioQt/IndexedPulseObject new file mode 100644 index 0000000..491cb42 --- /dev/null +++ b/src/PulseAudioQt/IndexedPulseObject @@ -0,0 +1 @@ +#include "indexedpulseobject.h" diff --git a/src/PulseAudioQt/Messages.sh b/src/PulseAudioQt/Messages.sh new file mode 100644 index 0000000..fd6430e --- /dev/null +++ b/src/PulseAudioQt/Messages.sh @@ -0,0 +1,4 @@ +#! /usr/bin/env bash +$EXTRACTRC *.ui >> rc.cpp +$XGETTEXT `find . -name \*.qml -o -name \*.cpp` -o $podir/kcm_pulseaudio.pot +rm -f rc.cpp diff --git a/src/PulseAudioQt/Models b/src/PulseAudioQt/Models new file mode 100644 index 0000000..4925970 --- /dev/null +++ b/src/PulseAudioQt/Models @@ -0,0 +1 @@ +#include "models.h" diff --git a/src/PulseAudioQt/Module b/src/PulseAudioQt/Module new file mode 100644 index 0000000..0275ca9 --- /dev/null +++ b/src/PulseAudioQt/Module @@ -0,0 +1 @@ +#include "module.h" diff --git a/src/PulseAudioQt/Port b/src/PulseAudioQt/Port new file mode 100644 index 0000000..877e571 --- /dev/null +++ b/src/PulseAudioQt/Port @@ -0,0 +1 @@ +#include "port.h" diff --git a/src/PulseAudioQt/Profile b/src/PulseAudioQt/Profile new file mode 100644 index 0000000..5b20bae --- /dev/null +++ b/src/PulseAudioQt/Profile @@ -0,0 +1 @@ +#include "profile.h" diff --git a/src/PulseAudioQt/PulseObject b/src/PulseAudioQt/PulseObject new file mode 100644 index 0000000..4189e21 --- /dev/null +++ b/src/PulseAudioQt/PulseObject @@ -0,0 +1 @@ +#include "pulseobject.h" diff --git a/src/PulseAudioQt/Server b/src/PulseAudioQt/Server new file mode 100644 index 0000000..bce425e --- /dev/null +++ b/src/PulseAudioQt/Server @@ -0,0 +1 @@ +#include "server.h" diff --git a/src/PulseAudioQt/Sink b/src/PulseAudioQt/Sink new file mode 100644 index 0000000..9d8afe8 --- /dev/null +++ b/src/PulseAudioQt/Sink @@ -0,0 +1 @@ +#include "sink.h" diff --git a/src/PulseAudioQt/SinkInput b/src/PulseAudioQt/SinkInput new file mode 100644 index 0000000..c6f8760 --- /dev/null +++ b/src/PulseAudioQt/SinkInput @@ -0,0 +1 @@ +#include "sinkinput.h" diff --git a/src/PulseAudioQt/Source b/src/PulseAudioQt/Source new file mode 100644 index 0000000..a5c5313 --- /dev/null +++ b/src/PulseAudioQt/Source @@ -0,0 +1 @@ +#include "source.h" diff --git a/src/PulseAudioQt/SourceOutput b/src/PulseAudioQt/SourceOutput new file mode 100644 index 0000000..7a9e223 --- /dev/null +++ b/src/PulseAudioQt/SourceOutput @@ -0,0 +1 @@ +#include "sourceoutput.h" diff --git a/src/PulseAudioQt/Stream b/src/PulseAudioQt/Stream new file mode 100644 index 0000000..65e61e9 --- /dev/null +++ b/src/PulseAudioQt/Stream @@ -0,0 +1 @@ +#include "stream.h" diff --git a/src/PulseAudioQt/StreamRestore b/src/PulseAudioQt/StreamRestore new file mode 100644 index 0000000..f775c8c --- /dev/null +++ b/src/PulseAudioQt/StreamRestore @@ -0,0 +1 @@ +#include "streamrestore.h" diff --git a/src/PulseAudioQt/VolumeObject b/src/PulseAudioQt/VolumeObject new file mode 100644 index 0000000..2f0c160 --- /dev/null +++ b/src/PulseAudioQt/VolumeObject @@ -0,0 +1 @@ +#include "volumeobject.h" diff --git a/src/PulseAudioQt/card.cpp b/src/PulseAudioQt/card.cpp new file mode 100644 index 0000000..122ce33 --- /dev/null +++ b/src/PulseAudioQt/card.cpp @@ -0,0 +1,168 @@ +/* + SPDX-FileCopyrightText: 2014-2015 Harald Sitter <sitter@kde.org> + + SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL +*/ + +#include "card.h" +#include "card_p.h" +#include "debug.h" + +#include "context.h" +#include "indexedpulseobject_p.h" +#include "port_p.h" +#include "profile_p.h" + +namespace PulseAudioQt +{ +Card::Card(QObject *parent) + : IndexedPulseObject(parent) + , d(new CardPrivate(this)) +{ + connect(Context::instance(), &Context::sinkAdded, this, &Card::sinksChanged); + connect(Context::instance(), &Context::sinkRemoved, this, &Card::sinksChanged); + + connect(Context::instance(), &Context::sourceAdded, this, &Card::sourcesChanged); + connect(Context::instance(), &Context::sourceRemoved, this, &Card::sourcesChanged); +} + +Card::~Card() +{ + delete d; +} + +CardPrivate::CardPrivate(Card *q) + : q(q) +{ +} + +CardPrivate::~CardPrivate() +{ +} + +void CardPrivate::update(const pa_card_info *info) +{ + q->IndexedPulseObject::d->updatePulseObject(info); + q->PulseObject::d->updateProperties(info); + m_description = q->PulseObject::d->m_properties.value(QLatin1String(PA_PROP_DEVICE_DESCRIPTION), QString()).toString(); + + QStringList newProfiles; + QStringList existingProfiles; + + for (const Profile *profile : qAsConst(m_profiles)) { + existingProfiles << profile->name(); + } + + for (auto **it = info->profiles2; it && *it != nullptr; ++it) { + const QString name = QString::fromUtf8((*it)->name); + newProfiles << name; + Profile *profile = nullptr; + if (existingProfiles.contains(name)) { + profile = m_profiles[existingProfiles.indexOf(name)]; + } else { + profile = new Profile(q); + m_profiles << profile; + } + profile->d->setInfo(*it); + } + + for (Profile *profile : qAsConst(m_profiles)) { + if (!newProfiles.contains(profile->name())) { + m_profiles.removeOne(profile); + delete profile; + } + } + + for (Profile *profile : qAsConst(m_profiles)) { + if (info->active_profile2->name == profile->name()) { + m_activeProfileIndex = m_profiles.indexOf(profile); + } + } + + Q_EMIT q->profilesChanged(); + Q_EMIT q->activeProfileIndexChanged(); + + QStringList newPorts; + QStringList existingPorts; + + for (const Port *port : qAsConst(m_ports)) { + existingPorts << port->name(); + } + for (auto **it = info->ports; it && *it != nullptr; ++it) { + const QString name = QString::fromUtf8((*it)->name); + newPorts << name; + CardPort *port = nullptr; + if (existingPorts.contains(name)) { + port = m_ports[existingPorts.indexOf(name)]; + } else { + port = new CardPort(q); + m_ports << port; + } + port->d->setInfo(*it); + } + + for (CardPort *port : qAsConst(m_ports)) { + if (!newPorts.contains(port->name())) { + m_ports.removeOne(port); + delete port; + } + } + + Q_EMIT q->portsChanged(); +} + +QString Card::description() const +{ + return d->m_description; +} + +QList<Profile *> Card::profiles() const +{ + return d->m_profiles; +} + +quint32 Card::activeProfileIndex() const +{ + return d->m_activeProfileIndex; +} + +void Card::setActiveProfileIndex(quint32 profileIndex) +{ + const Profile *profile = qobject_cast<Profile *>(profiles().at(profileIndex)); + Context::instance()->setCardProfile(index(), profile->name()); +} + +QList<CardPort *> Card::ports() const +{ + return d->m_ports; +} + +QList<Sink *> Card::sinks() const +{ + QList<Sink *> ret; + + const auto allSinks = Context::instance()->sinks(); + for (Sink *sink : allSinks) { + if (sink->cardIndex() == IndexedPulseObject::d->m_index) { + ret << sink; + } + } + + return ret; +} + +QList<Source *> Card::sources() const +{ + QList<Source *> ret; + + const auto allSources = Context::instance()->sources(); + for (Source *source : allSources) { + if (source->cardIndex() == IndexedPulseObject::d->m_index) { + ret << source; + } + } + + return ret; +} + +} // PulseAudioQt diff --git a/src/PulseAudioQt/card.h b/src/PulseAudioQt/card.h new file mode 100644 index 0000000..2618ac7 --- /dev/null +++ b/src/PulseAudioQt/card.h @@ -0,0 +1,59 @@ +/* + SPDX-FileCopyrightText: 2014-2015 Harald Sitter <sitter@kde.org> + + SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL +*/ + +#ifndef CARD_H +#define CARD_H + +#include "cardport.h" +#include "indexedpulseobject.h" +#include "profile.h" +#include "sink.h" +#include "source.h" + +struct pa_card_info; + +namespace PulseAudioQt +{ +class CardPort; +class Profile; + +class PULSEAUDIOQT_EXPORT Card : public IndexedPulseObject +{ + Q_OBJECT + Q_PROPERTY(QList<Profile *> profiles READ profiles NOTIFY profilesChanged) + Q_PROPERTY(quint32 activeProfileIndex READ activeProfileIndex WRITE setActiveProfileIndex NOTIFY activeProfileIndexChanged) + Q_PROPERTY(QList<CardPort *> ports READ ports NOTIFY portsChanged) + Q_PROPERTY(QList<Sink *> sinks READ sinks NOTIFY sinksChanged) + Q_PROPERTY(QList<Source *> sources READ sources NOTIFY sourcesChanged) + +public: + ~Card(); + + QString description() const; + QList<Profile *> profiles() const; + quint32 activeProfileIndex() const; + void setActiveProfileIndex(quint32 profileIndex); + QList<CardPort *> ports() const; + QList<Sink *> sinks() const; + QList<Source *> sources() const; + +Q_SIGNALS: + void profilesChanged(); + void activeProfileIndexChanged(); + void portsChanged(); + void sinksChanged(); + void sourcesChanged(); + +private: + explicit Card(QObject *parent); + + class CardPrivate *const d; + friend class MapBase<Card, pa_card_info>; +}; + +} // PulseAudioQt + +#endif // CARD_H diff --git a/src/PulseAudioQt/card_p.h b/src/PulseAudioQt/card_p.h new file mode 100644 index 0000000..890ba8f --- /dev/null +++ b/src/PulseAudioQt/card_p.h @@ -0,0 +1,35 @@ +/* + SPDX-FileCopyrightText: 2018 Nicolas Fella <nicolas.fella@gmx.de> + + SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL +*/ +#ifndef CARD_P_H +#define CARD_P_H + +#include "card.h" +#include "cardport.h" +#include "profile.h" +#include <QHash> +#include <QVector> +#include <pulse/introspect.h> + +namespace PulseAudioQt +{ +class CardPrivate +{ +public: + explicit CardPrivate(Card *q); + virtual ~CardPrivate(); + + Card *q; + + void update(const pa_card_info *info); + + QString m_description; + QList<Profile *> m_profiles; + quint32 m_activeProfileIndex; + QList<CardPort *> m_ports; +}; +} + +#endif diff --git a/src/PulseAudioQt/cardport.cpp b/src/PulseAudioQt/cardport.cpp new file mode 100644 index 0000000..863e247 --- /dev/null +++ b/src/PulseAudioQt/cardport.cpp @@ -0,0 +1,26 @@ +/* + SPDX-FileCopyrightText: 2018 Nicolas Fella <nicolas.fella@gmx.de> + + SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL +*/ +#include "cardport.h" +#include "port_p.h" + +namespace PulseAudioQt +{ +CardPort::CardPort(QObject *parent) + : Port(parent) +{ +} + +CardPort::~CardPort() +{ +} + +void CardPort::update(const pa_card_port_info *info) +{ + Port::d->setInfo(info); + PulseObject::d->updateProperties(info); +} + +} // PulseAudioQt diff --git a/src/PulseAudioQt/cardport.h b/src/PulseAudioQt/cardport.h new file mode 100644 index 0000000..77d2c90 --- /dev/null +++ b/src/PulseAudioQt/cardport.h @@ -0,0 +1,36 @@ +/* + SPDX-FileCopyrightText: 2018 Nicolas Fella <nicolas.fella@gmx.de> + + SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL +*/ +#ifndef CARDPORT_H +#define CARDPORT_H + +#include "port.h" + +#include <QObject> +#include <pulse/introspect.h> + +namespace PulseAudioQt +{ +/** + * A Port associated with a Card. + */ +class PULSEAUDIOQT_EXPORT CardPort : public Port +{ + Q_OBJECT + +public: + ~CardPort(); + + void update(const pa_card_port_info *info); + +private: + explicit CardPort(QObject *parent); + + friend class CardPrivate; +}; + +} // PulseAudioQt + +#endif diff --git a/src/PulseAudioQt/client.cpp b/src/PulseAudioQt/client.cpp new file mode 100644 index 0000000..427e34e --- /dev/null +++ b/src/PulseAudioQt/client.cpp @@ -0,0 +1,37 @@ +/* + SPDX-FileCopyrightText: 2014-2015 Harald Sitter <sitter@kde.org> + + SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL +*/ + +#include "client.h" +#include "client_p.h" + +#include "debug.h" +#include "indexedpulseobject_p.h" + +namespace PulseAudioQt +{ +Client::Client(QObject *parent) + : IndexedPulseObject(parent) + , d(new ClientPrivate(this)) +{ +} + +ClientPrivate::ClientPrivate(Client *q) + : q(q) +{ +} + +Client::~Client() +{ + delete d; +} + +void ClientPrivate::update(const pa_client_info *info) +{ + q->IndexedPulseObject::d->updatePulseObject(info); + q->PulseObject::d->updateProperties(info); +} + +} // PulseAudioQt diff --git a/src/PulseAudioQt/client.h b/src/PulseAudioQt/client.h new file mode 100644 index 0000000..dfa2cf3 --- /dev/null +++ b/src/PulseAudioQt/client.h @@ -0,0 +1,32 @@ +/* + SPDX-FileCopyrightText: 2014-2015 Harald Sitter <sitter@kde.org> + + SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL +*/ + +#ifndef CLIENT_H +#define CLIENT_H + +#include "indexedpulseobject.h" +#include "pulseaudioqt_export.h" + +struct pa_client_info; + +namespace PulseAudioQt +{ +class PULSEAUDIOQT_EXPORT Client : public IndexedPulseObject +{ + Q_OBJECT +public: + ~Client(); + +private: + explicit Client(QObject *parent); + + class ClientPrivate *const d; + friend class MapBase<Client, pa_client_info>; +}; + +} // PulseAudioQt + +#endif // CLIENT_H diff --git a/src/PulseAudioQt/client_p.h b/src/PulseAudioQt/client_p.h new file mode 100644 index 0000000..0f62616 --- /dev/null +++ b/src/PulseAudioQt/client_p.h @@ -0,0 +1,26 @@ +/* + SPDX-FileCopyrightText: 2018 Nicolas Fella <nicolas.fella@gmx.de> + + SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL +*/ +#ifndef CLIENT_P_H +#define CLIENT_P_H + +#include "client.h" +#include <pulse/introspect.h> + +namespace PulseAudioQt +{ +class ClientPrivate +{ +public: + ClientPrivate(Client *q); + + void update(const pa_client_info *info); + + Client *q; +}; + +} // PulseAudioQt + +#endif diff --git a/src/PulseAudioQt/context.cpp b/src/PulseAudioQt/context.cpp new file mode 100644 index 0000000..9967cea --- /dev/null +++ b/src/PulseAudioQt/context.cpp @@ -0,0 +1,842 @@ +/* + SPDX-FileCopyrightText: 2014-2015 Harald Sitter <sitter@kde.org> + + SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL +*/ + +#include "context.h" +#include "server.h" + +#include "debug.h" +#include <QAbstractEventDispatcher> +#include <QDBusConnection> +#include <QDBusServiceWatcher> +#include <QGuiApplication> +#include <QIcon> +#include <QTimer> + +#include <memory> + +#include "card.h" +#include "client.h" +#include "module.h" +#include "sink.h" +#include "sinkinput.h" +#include "source.h" +#include "sourceoutput.h" +#include "streamrestore.h" + +#include "context_p.h" +#include "server_p.h" +#include "streamrestore_p.h" + +namespace PulseAudioQt +{ +qint64 normalVolume() +{ + return PA_VOLUME_NORM; +} + +qint64 minimumVolume() +{ + return PA_VOLUME_MUTED; +} + +qint64 maximumVolume() +{ + return PA_VOLUME_MAX; +} + +qint64 maximumUIVolume() +{ + return PA_VOLUME_UI_MAX; +} + +QString ContextPrivate::s_applicationId; + +#ifndef K_DOXYGEN + +static bool isGoodState(int eol) +{ + if (eol < 0) { + // Error + return false; + } + + if (eol > 0) { + // End of callback chain + return false; + } + + return true; +} + +// -------------------------- + +static void sink_cb(pa_context *context, const pa_sink_info *info, int eol, void *data) +{ + if (!isGoodState(eol)) + return; + Q_ASSERT(context); + Q_ASSERT(data); + static_cast<ContextPrivate *>(data)->sinkCallback(info); +} + +static void sink_input_callback(pa_context *context, const pa_sink_input_info *info, int eol, void *data) +{ + if (!isGoodState(eol)) + return; + // pulsesink probe is used by gst-pulse only to query sink formats (not for playback) + if (qstrcmp(info->name, "pulsesink probe") == 0) { + return; + } + if (const char *id = pa_proplist_gets(info->proplist, "module-stream-restore.id")) { + if (qstrcmp(id, "sink-input-by-media-role:event") == 0) { + qDebug() << "Ignoring event role sink input."; + return; + } + } + Q_ASSERT(context); + Q_ASSERT(data); + static_cast<ContextPrivate *>(data)->sinkInputCallback(info); +} + +static void source_cb(pa_context *context, const pa_source_info *info, int eol, void *data) +{ + if (!isGoodState(eol)) + return; + // FIXME: This forces excluding monitors + if (info->monitor_of_sink != PA_INVALID_INDEX) + return; + Q_ASSERT(context); + Q_ASSERT(data); + static_cast<ContextPrivate *>(data)->sourceCallback(info); +} + +static void source_output_cb(pa_context *context, const pa_source_output_info *info, int eol, void *data) +{ + if (!isGoodState(eol)) + return; + // FIXME: This forces excluding these apps + if (const char *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 // + || strcmp(app, "org.kde.plasma-pa") == 0) // + return; + } + Q_ASSERT(context); + Q_ASSERT(data); + static_cast<ContextPrivate *>(data)->sourceOutputCallback(info); +} + +static void client_cb(pa_context *context, const pa_client_info *info, int eol, void *data) +{ + if (!isGoodState(eol)) + return; + Q_ASSERT(context); + Q_ASSERT(data); + static_cast<ContextPrivate *>(data)->clientCallback(info); +} + +static void card_cb(pa_context *context, const pa_card_info *info, int eol, void *data) +{ + if (!isGoodState(eol)) + return; + Q_ASSERT(context); + Q_ASSERT(data); + static_cast<ContextPrivate *>(data)->cardCallback(info); +} + +static void module_info_list_cb(pa_context *context, const pa_module_info *info, int eol, void *data) +{ + if (!isGoodState(eol)) + return; + Q_ASSERT(context); + Q_ASSERT(data); + static_cast<ContextPrivate *>(data)->moduleCallback(info); +} + +static void server_cb(pa_context *context, const pa_server_info *info, void *data) +{ + Q_ASSERT(context); + Q_ASSERT(data); + static_cast<ContextPrivate *>(data)->serverCallback(info); +} + +static void context_state_callback(pa_context *context, void *data) +{ + Q_ASSERT(data); + static_cast<ContextPrivate *>(data)->contextStateCallback(context); +} + +static void subscribe_cb(pa_context *context, pa_subscription_event_type_t type, uint32_t index, void *data) +{ + Q_ASSERT(data); + static_cast<ContextPrivate *>(data)->subscribeCallback(context, type, index); +} + +static void ext_stream_restore_read_cb(pa_context *context, const pa_ext_stream_restore_info *info, int eol, void *data) +{ + if (!isGoodState(eol)) { + return; + } + Q_ASSERT(context); + Q_ASSERT(data); + static_cast<ContextPrivate *>(data)->streamRestoreCallback(info); +} + +static void ext_stream_restore_subscribe_cb(pa_context *context, void *data) +{ + Q_ASSERT(context); + Q_ASSERT(data); + if (!PAOperation(pa_ext_stream_restore_read(context, ext_stream_restore_read_cb, data))) { + qWarning() << "pa_ext_stream_restore_read() failed"; + } +} + +static void ext_stream_restore_change_sink_cb(pa_context *context, const pa_ext_stream_restore_info *info, int eol, void *data) +{ + if (!isGoodState(eol)) { + return; + } + Q_ASSERT(context); + Q_ASSERT(data); + if (qstrncmp(info->name, "sink-input-by", 13) == 0) { + ContextPrivate *contextp = static_cast<ContextPrivate *>(data); + const QByteArray deviceData = contextp->m_newDefaultSink.toUtf8(); + pa_ext_stream_restore_info newinfo; + newinfo.name = info->name; + newinfo.channel_map = info->channel_map; + newinfo.volume = info->volume; + newinfo.mute = info->mute; + newinfo.device = deviceData.constData(); + contextp->streamRestoreWrite(&newinfo); + } +} + +static void ext_stream_restore_change_source_cb(pa_context *context, const pa_ext_stream_restore_info *info, int eol, void *data) +{ + if (!isGoodState(eol)) { + return; + } + Q_ASSERT(context); + Q_ASSERT(data); + if (qstrncmp(info->name, "source-output-by", 16) == 0) { + ContextPrivate *contextp = static_cast<ContextPrivate *>(data); + const QByteArray deviceData = contextp->m_newDefaultSource.toUtf8(); + pa_ext_stream_restore_info newinfo; + newinfo.name = info->name; + newinfo.channel_map = info->channel_map; + newinfo.volume = info->volume; + newinfo.mute = info->mute; + newinfo.device = deviceData.constData(); + contextp->streamRestoreWrite(&newinfo); + } +} + +#endif + +// -------------------------- + +Context::Context(QObject *parent) + : QObject(parent) + , d(new ContextPrivate(this)) +{ + d->m_server = new Server(this); + d->m_context = nullptr; + d->m_mainloop = nullptr; + d->m_references = 0; + + d->connectToDaemon(); + + QDBusServiceWatcher *watcher = + new QDBusServiceWatcher(QStringLiteral("org.pulseaudio.Server"), QDBusConnection::sessionBus(), QDBusServiceWatcher::WatchForRegistration, this); + connect(watcher, &QDBusServiceWatcher::serviceRegistered, this, [this] { + d->connectToDaemon(); + }); + + connect(&d->m_sinks, &MapBaseQObject::added, this, [this](int, QObject *object) { + Q_EMIT sinkAdded(static_cast<Sink *>(object)); + }); + connect(&d->m_sinks, &MapBaseQObject::removed, this, [this](int, QObject *object) { + Q_EMIT sinkRemoved(static_cast<Sink *>(object)); + }); + + connect(&d->m_sinkInputs, &MapBaseQObject::added, this, [this](int, QObject *object) { + Q_EMIT sinkInputAdded(static_cast<SinkInput *>(object)); + }); + connect(&d->m_sinkInputs, &MapBaseQObject::removed, this, [this](int, QObject *object) { + Q_EMIT sinkInputRemoved(static_cast<SinkInput *>(object)); + }); + + connect(&d->m_sources, &MapBaseQObject::added, this, [this](int, QObject *object) { + Q_EMIT sourceAdded(static_cast<Source *>(object)); + }); + connect(&d->m_sources, &MapBaseQObject::removed, this, [this](int, QObject *object) { + Q_EMIT sourceRemoved(static_cast<Source *>(object)); + }); + + connect(&d->m_sourceOutputs, &MapBaseQObject::added, this, [this](int, QObject *object) { + Q_EMIT sourceOutputAdded(static_cast<SourceOutput *>(object)); + }); + connect(&d->m_sourceOutputs, &MapBaseQObject::removed, this, [this](int, QObject *object) { + Q_EMIT sourceOutputRemoved(static_cast<SourceOutput *>(object)); + }); + + connect(&d->m_clients, &MapBaseQObject::added, this, [this](int, QObject *object) { + Q_EMIT clientAdded(static_cast<Client *>(object)); + }); + connect(&d->m_clients, &MapBaseQObject::removed, this, [this](int, QObject *object) { + Q_EMIT clientRemoved(static_cast<Client *>(object)); + }); + + connect(&d->m_cards, &MapBaseQObject::added, this, [this](int, QObject *object) { + Q_EMIT cardAdded(static_cast<Card *>(object)); + }); + connect(&d->m_cards, &MapBaseQObject::removed, this, [this](int, QObject *object) { + Q_EMIT cardRemoved(static_cast<Card *>(object)); + }); + + connect(&d->m_modules, &MapBaseQObject::added, this, [this](int, QObject *object) { + Q_EMIT moduleAdded(static_cast<Module *>(object)); + }); + connect(&d->m_modules, &MapBaseQObject::removed, this, [this](int, QObject *object) { + Q_EMIT moduleRemoved(static_cast<Module *>(object)); + }); + + connect(&d->m_streamRestores, &MapBaseQObject::added, this, [this](int, QObject *object) { + Q_EMIT streamRestoreAdded(static_cast<StreamRestore *>(object)); + }); + connect(&d->m_streamRestores, &MapBaseQObject::removed, this, [this](int, QObject *object) { + Q_EMIT streamRestoreRemoved(static_cast<StreamRestore *>(object)); + }); +} + +ContextPrivate::ContextPrivate(Context *q) + : q(q) +{ +} + +Context::~Context() +{ + delete d; +} + +ContextPrivate::~ContextPrivate() +{ + if (m_context) { + pa_context_unref(m_context); + m_context = nullptr; + } + + if (m_mainloop) { + pa_glib_mainloop_free(m_mainloop); + m_mainloop = nullptr; + } + + reset(); +} + +Context *Context::instance() +{ + static std::unique_ptr<Context> context(new Context); + return context.get(); +} + +void ContextPrivate::subscribeCallback(pa_context *context, pa_subscription_event_type_t type, uint32_t index) +{ + Q_ASSERT(context == m_context); + + switch (type & PA_SUBSCRIPTION_EVENT_FACILITY_MASK) { + case PA_SUBSCRIPTION_EVENT_SINK: + if ((type & PA_SUBSCRIPTION_EVENT_TYPE_MASK) == PA_SUBSCRIPTION_EVENT_REMOVE) { + m_sinks.removeEntry(index); + } else { + if (!PAOperation(pa_context_get_sink_info_by_index(context, index, sink_cb, this))) { + qWarning() << "pa_context_get_sink_info_by_index() failed"; + return; + } + } + break; + + case PA_SUBSCRIPTION_EVENT_SOURCE: + if ((type & PA_SUBSCRIPTION_EVENT_TYPE_MASK) == PA_SUBSCRIPTION_EVENT_REMOVE) { + m_sources.removeEntry(index); + } else { + if (!PAOperation(pa_context_get_source_info_by_index(context, index, source_cb, this))) { + qWarning() << "pa_context_get_source_info_by_index() failed"; + return; + } + } + break; + + case PA_SUBSCRIPTION_EVENT_SINK_INPUT: + if ((type & PA_SUBSCRIPTION_EVENT_TYPE_MASK) == PA_SUBSCRIPTION_EVENT_REMOVE) { + m_sinkInputs.removeEntry(index); + } else { + if (!PAOperation(pa_context_get_sink_input_info(context, index, sink_input_callback, this))) { + qWarning() << "pa_context_get_sink_input_info() failed"; + return; + } + } + break; + + case PA_SUBSCRIPTION_EVENT_SOURCE_OUTPUT: + if ((type & PA_SUBSCRIPTION_EVENT_TYPE_MASK) == PA_SUBSCRIPTION_EVENT_REMOVE) { + m_sourceOutputs.removeEntry(index); + } else { + if (!PAOperation(pa_context_get_source_output_info(context, index, source_output_cb, this))) { + qWarning() << "pa_context_get_sink_input_info() failed"; + return; + } + } + break; + + case PA_SUBSCRIPTION_EVENT_CLIENT: + if ((type & PA_SUBSCRIPTION_EVENT_TYPE_MASK) == PA_SUBSCRIPTION_EVENT_REMOVE) { + m_clients.removeEntry(index); + } else { + if (!PAOperation(pa_context_get_client_info(context, index, client_cb, this))) { + qWarning() << "pa_context_get_client_info() failed"; + return; + } + } + break; + + case PA_SUBSCRIPTION_EVENT_CARD: + if ((type & PA_SUBSCRIPTION_EVENT_TYPE_MASK) == PA_SUBSCRIPTION_EVENT_REMOVE) { + m_cards.removeEntry(index); + } else { + if (!PAOperation(pa_context_get_card_info_by_index(context, index, card_cb, this))) { + qWarning() << "pa_context_get_card_info_by_index() failed"; + return; + } + } + break; + + case PA_SUBSCRIPTION_EVENT_MODULE: + if ((type & PA_SUBSCRIPTION_EVENT_TYPE_MASK) == PA_SUBSCRIPTION_EVENT_REMOVE) { + m_modules.removeEntry(index); + } else { + if (!PAOperation(pa_context_get_module_info_list(context, module_info_list_cb, this))) { + qWarning() << "pa_context_get_module_info_list() failed"; + return; + } + } + break; + + case PA_SUBSCRIPTION_EVENT_SERVER: + if (!PAOperation(pa_context_get_server_info(context, server_cb, this))) { + qWarning() << "pa_context_get_server_info() failed"; + return; + } + break; + } +} + +void ContextPrivate::contextStateCallback(pa_context *c) +{ + qDebug() << "state callback"; + pa_context_state_t state = pa_context_get_state(c); + if (state == PA_CONTEXT_READY) { + qDebug() << "ready"; + + // 1. Register for the stream changes (except during probe) + if (m_context == c) { + pa_context_set_subscribe_callback(c, subscribe_cb, this); + + if (!PAOperation( + pa_context_subscribe(c, + (pa_subscription_mask_t)(PA_SUBSCRIPTION_MASK_SINK | PA_SUBSCRIPTION_MASK_SOURCE | PA_SUBSCRIPTION_MASK_CLIENT + | PA_SUBSCRIPTION_MASK_SINK_INPUT | PA_SUBSCRIPTION_MASK_SOURCE_OUTPUT + | PA_SUBSCRIPTION_MASK_CARD | PA_SUBSCRIPTION_MASK_MODULE | PA_SUBSCRIPTION_MASK_SERVER), + nullptr, + nullptr))) { + qWarning() << "pa_context_subscribe() failed"; + return; + } + } + + if (!PAOperation(pa_context_get_sink_info_list(c, sink_cb, this))) { + qWarning() << "pa_context_get_sink_info_list() failed"; + return; + } + + if (!PAOperation(pa_context_get_source_info_list(c, source_cb, this))) { + qWarning() << "pa_context_get_source_info_list() failed"; + return; + } + + if (!PAOperation(pa_context_get_client_info_list(c, client_cb, this))) { + qWarning() << "pa_context_client_info_list() failed"; + return; + } + + if (!PAOperation(pa_context_get_card_info_list(c, card_cb, this))) { + qWarning() << "pa_context_get_card_info_list() failed"; + return; + } + + if (!PAOperation(pa_context_get_sink_input_info_list(c, sink_input_callback, this))) { + qWarning() << "pa_context_get_sink_input_info_list() failed"; + return; + } + + if (!PAOperation(pa_context_get_source_output_info_list(c, source_output_cb, this))) { + qWarning() << "pa_context_get_source_output_info_list() failed"; + return; + } + + if (!PAOperation(pa_context_get_module_info_list(c, module_info_list_cb, this))) { + qWarning() << "pa_context_get_module_info_list() failed"; + return; + } + + if (!PAOperation(pa_context_get_server_info(c, server_cb, this))) { + qWarning() << "pa_context_get_server_info() failed"; + return; + } + + if (PAOperation(pa_ext_stream_restore_read(c, ext_stream_restore_read_cb, this))) { + pa_ext_stream_restore_set_subscribe_cb(c, ext_stream_restore_subscribe_cb, this); + PAOperation(pa_ext_stream_restore_subscribe(c, 1, nullptr, this)); + } else { + qWarning() << "Failed to initialize stream_restore extension"; + } + } else if (!PA_CONTEXT_IS_GOOD(state)) { + qWarning() << "context kaput"; + if (m_context) { + pa_context_unref(m_context); + m_context = nullptr; + } + reset(); + QTimer::singleShot(1000, q, [this] { + connectToDaemon(); + }); + } +} + +void ContextPrivate::sinkCallback(const pa_sink_info *info) +{ + // This parenting here is a bit weird + m_sinks.updateEntry(info, q); +} + +void ContextPrivate::sinkInputCallback(const pa_sink_input_info *info) +{ + m_sinkInputs.updateEntry(info, q); +} + +void ContextPrivate::sourceCallback(const pa_source_info *info) +{ + m_sources.updateEntry(info, q); +} + +void ContextPrivate::sourceOutputCallback(const pa_source_output_info *info) +{ + m_sourceOutputs.updateEntry(info, q); +} + +void ContextPrivate::clientCallback(const pa_client_info *info) +{ + m_clients.updateEntry(info, q); +} + +void ContextPrivate::cardCallback(const pa_card_info *info) +{ + m_cards.updateEntry(info, q); +} + +void ContextPrivate::moduleCallback(const pa_module_info *info) +{ + m_modules.updateEntry(info, q); +} + +void ContextPrivate::streamRestoreCallback(const pa_ext_stream_restore_info *info) +{ + if (qstrcmp(info->name, "sink-input-by-media-role:event") != 0) { + return; + } + + const int eventRoleIndex = 1; + StreamRestore *obj = qobject_cast<StreamRestore *>(m_streamRestores.data().value(eventRoleIndex)); + + if (!obj) { + QVariantMap props; + props.insert(QStringLiteral("application.icon_name"), QStringLiteral("preferences-desktop-notification")); + obj = new StreamRestore(eventRoleIndex, props, q); + obj->d->update(info); + m_streamRestores.insert(obj); + } else { + obj->d->update(info); + } +} + +void ContextPrivate::serverCallback(const pa_server_info *info) +{ + m_server->d->update(info); +} + +void Context::setCardProfile(quint32 index, const QString &profile) +{ + if (!d->m_context) { + return; + } + qDebug() << index << profile; + if (!PAOperation(pa_context_set_card_profile_by_index(d->m_context, index, profile.toUtf8().constData(), nullptr, nullptr))) { + qWarning() << "pa_context_set_card_profile_by_index failed"; + return; + } +} + +void Context::setDefaultSink(const QString &name) +{ + if (!d->m_context) { + return; + } + const QByteArray nameData = name.toUtf8(); + if (!PAOperation(pa_context_set_default_sink(d->m_context, nameData.constData(), nullptr, nullptr))) { + qWarning() << "pa_context_set_default_sink failed"; + } + + // Change device for all entries in stream-restore database + d->m_newDefaultSink = name; + if (!PAOperation(pa_ext_stream_restore_read(d->m_context, ext_stream_restore_change_sink_cb, d))) { + qWarning() << "pa_ext_stream_restore_read failed"; + } +} + +void Context::setDefaultSource(const QString &name) +{ + if (!d->m_context) { + return; + } + const QByteArray nameData = name.toUtf8(); + if (!PAOperation(pa_context_set_default_source(d->m_context, nameData.constData(), nullptr, nullptr))) { + qWarning() << "pa_context_set_default_source failed"; + } + + // Change device for all entries in stream-restore database + d->m_newDefaultSource = name; + if (!PAOperation(pa_ext_stream_restore_read(d->m_context, ext_stream_restore_change_source_cb, d))) { + qWarning() << "pa_ext_stream_restore_read failed"; + } +} + +void ContextPrivate::streamRestoreWrite(const pa_ext_stream_restore_info *info) +{ + if (!m_context) { + return; + } + if (!PAOperation(pa_ext_stream_restore_write(m_context, PA_UPDATE_REPLACE, info, 1, true, nullptr, nullptr))) { + qWarning() << "pa_ext_stream_restore_write failed"; + } +} + +void ContextPrivate::connectToDaemon() +{ + if (m_context) { + return; + } + + // We require a glib event loop + if (!QByteArray(QAbstractEventDispatcher::instance()->metaObject()->className()).contains("Glib")) { + qWarning() << "Disabling PulseAudio integration for lack of GLib event loop"; + return; + } + + qDebug() << "Attempting connection to PulseAudio sound daemon"; + if (!m_mainloop) { + m_mainloop = pa_glib_mainloop_new(nullptr); + Q_ASSERT(m_mainloop); + } + + pa_mainloop_api *api = pa_glib_mainloop_get_api(m_mainloop); + Q_ASSERT(api); + + pa_proplist *proplist = pa_proplist_new(); + pa_proplist_sets(proplist, PA_PROP_APPLICATION_NAME, QGuiApplication::applicationDisplayName().toUtf8().constData()); + if (!s_applicationId.isEmpty()) { + pa_proplist_sets(proplist, PA_PROP_APPLICATION_ID, s_applicationId.toUtf8().constData()); + } else { + pa_proplist_sets(proplist, PA_PROP_APPLICATION_ID, QGuiApplication::desktopFileName().toUtf8().constData()); + } + pa_proplist_sets(proplist, PA_PROP_APPLICATION_ICON_NAME, QGuiApplication::windowIcon().name().toUtf8().constData()); + m_context = pa_context_new_with_proplist(api, nullptr, proplist); + pa_proplist_free(proplist); + Q_ASSERT(m_context); + + if (pa_context_connect(m_context, NULL, PA_CONTEXT_NOFAIL, nullptr) < 0) { + pa_context_unref(m_context); + pa_glib_mainloop_free(m_mainloop); + m_context = nullptr; + m_mainloop = nullptr; + return; + } + pa_context_set_state_callback(m_context, &context_state_callback, this); +} + +void ContextPrivate::reset() +{ + m_sinks.reset(); + m_sinkInputs.reset(); + m_sources.reset(); + m_sourceOutputs.reset(); + m_clients.reset(); + m_cards.reset(); + m_modules.reset(); + m_streamRestores.reset(); + m_server->reset(); +} + +bool Context::isValid() +{ + return d->m_context && d->m_mainloop; +} + +QVector<Sink *> Context::sinks() const +{ + return d->m_sinks.data(); +} + +QVector<SinkInput *> Context::sinkInputs() const +{ + return d->m_sinkInputs.data(); +} + +QVector<Source *> Context::sources() const +{ + return d->m_sources.data(); +} + +QVector<SourceOutput *> Context::sourceOutputs() const +{ + return d->m_sourceOutputs.data(); +} + +QVector<Client *> Context::clients() const +{ + return d->m_clients.data(); +} + +QVector<Card *> Context::cards() const +{ + return d->m_cards.data(); +} + +QVector<Module *> Context::modules() const +{ + return d->m_modules.data(); +} + +QVector<StreamRestore *> Context::streamRestores() const +{ + return d->m_streamRestores.data(); +} + +Server *Context::server() const +{ + return d->m_server; +} + +void ContextPrivate::setGenericVolume( + quint32 index, + int channel, + qint64 newVolume, + pa_cvolume cVolume, + const std::function<pa_operation *(pa_context *, uint32_t, const pa_cvolume *, pa_context_success_cb_t, void *)> &pa_set_volume) +{ + if (!m_context) { + return; + } + newVolume = qBound<qint64>(0, newVolume, PA_VOLUME_MAX); + pa_cvolume newCVolume = cVolume; + if (channel == -1) { // -1 all channels + const qint64 diff = newVolume - pa_cvolume_max(&cVolume); + for (int i = 0; i < newCVolume.channels; ++i) { + newCVolume.values[i] = qBound<qint64>(0, newCVolume.values[i] + diff, PA_VOLUME_MAX); + } + } else { + Q_ASSERT(newCVolume.channels > channel); + newCVolume.values[channel] = newVolume; + } + if (!pa_set_volume(m_context, index, &newCVolume, nullptr, nullptr)) { + qWarning() << "pa_set_volume failed"; + return; + } +} + +void ContextPrivate::setGenericMute(quint32 index, + bool mute, + const std::function<pa_operation *(pa_context *, uint32_t, int, pa_context_success_cb_t, void *)> &pa_set_mute) +{ + if (!m_context) { + return; + } + if (!PAOperation(pa_set_mute(m_context, index, mute, nullptr, nullptr))) { + qWarning() << "pa_set_mute failed"; + return; + } +} + +void ContextPrivate::setGenericPort(quint32 index, + const QString &portName, + const std::function<pa_operation *(pa_context *, uint32_t, const char *, pa_context_success_cb_t, void *)> &pa_set_port) +{ + if (!m_context) { + return; + } + if (!PAOperation(pa_set_port(m_context, index, portName.toUtf8().constData(), nullptr, nullptr))) { + qWarning() << "pa_set_port failed"; + return; + } +} + +void ContextPrivate::setGenericDeviceForStream( + quint32 streamIndex, + quint32 deviceIndex, + const std::function<pa_operation *(pa_context *, uint32_t, uint32_t, pa_context_success_cb_t, void *)> &pa_move_stream_to_device) +{ + if (!m_context) { + return; + } + if (!PAOperation(pa_move_stream_to_device(m_context, streamIndex, deviceIndex, nullptr, nullptr))) { + qWarning() << "pa_move_stream_to_device failed"; + return; + } +} + +void ContextPrivate::setGenericVolumes( + quint32 index, + QVector<qint64> channelVolumes, + pa_cvolume cVolume, + const std::function<pa_operation *(pa_context *, uint32_t, const pa_cvolume *, pa_context_success_cb_t, void *)> &pa_set_volume) +{ + if (!m_context) { + return; + } + Q_ASSERT(channelVolumes.count() == cVolume.channels); + + pa_cvolume newCVolume = cVolume; + for (int i = 0; i < channelVolumes.count(); ++i) { + newCVolume.values[i] = qBound<qint64>(0, channelVolumes.at(i), PA_VOLUME_MAX); + } + + if (!PAOperation(pa_set_volume(m_context, index, &newCVolume, nullptr, nullptr))) { + qWarning() << "pa_set_volume failed"; + return; + } +} + +void Context::setApplicationId(const QString &applicationId) +{ + ContextPrivate::s_applicationId = applicationId; +} + +pa_context *Context::context() const +{ + return d->m_context; +} + +} // PulseAudioQt diff --git a/src/PulseAudioQt/context.h b/src/PulseAudioQt/context.h new file mode 100644 index 0000000..f9cc9cf --- /dev/null +++ b/src/PulseAudioQt/context.h @@ -0,0 +1,238 @@ +/* + SPDX-FileCopyrightText: 2014-2015 Harald Sitter <sitter@kde.org> + + SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL +*/ + +#ifndef CONTEXT_H +#define CONTEXT_H + +#include "pulseaudioqt_export.h" +#include <QObject> + +struct pa_context; + +/** + * The primary namespace of PulseAudioQt. + */ +namespace PulseAudioQt +{ +class Card; +class Client; +class Sink; +class SinkInput; +class Source; +class SourceOutput; +class StreamRestore; +class Module; +class Server; + +/** + * The normal volume (100%, 0 dB). Equivalent to PA_VOLUME_NORM. + */ +PULSEAUDIOQT_EXPORT qint64 normalVolume(); +/** + * The minimum volume (0%). Equivalent to PA_VOLUME_MUTED. + */ +PULSEAUDIOQT_EXPORT qint64 minimumVolume(); +/** + * The maximum volume PulseAudio can store. Equivalent to PA_VOLUME_MAX. + * \warning For UI elements like volume sliders use maximumUIVolume instead. + */ +PULSEAUDIOQT_EXPORT qint64 maximumVolume(); + +/** + * The maximum volume suitable to display in a UI. Equivalent to PA_VOLUME_UI_MAX. + */ +PULSEAUDIOQT_EXPORT qint64 maximumUIVolume(); + +class PULSEAUDIOQT_EXPORT Context : public QObject +{ + Q_OBJECT + +public: + ~Context(); + + static Context *instance(); + + /** + * Set the application id that is reported to PulseAudio. + * This needs to be called before accessing the context singleton the first time. + * If not set QGuiApplication::desktopFileName() is used. + */ + static void setApplicationId(const QString &applicationId); + + bool isValid(); + + /** + * Returns a list of all sinks. + * + * @return list of sinks + */ + QVector<Sink *> sinks() const; + + /** + * Returns a list of all sink inputs. + * + * @return list of sink inputs + */ + QVector<SinkInput *> sinkInputs() const; + + /** + * Returns a list of all sources. + * + * @return list of sources + */ + QVector<Source *> sources() const; + + /** + * Returns a list of all source outputs. + * + * @return list of source outputs + */ + QVector<SourceOutput *> sourceOutputs() const; + + /** + * Returns a list of all clients. + * + * @return list of clients + */ + QVector<Client *> clients() const; + + /** + * Returns a list of all cards. + * + * @return list of cards + */ + QVector<Card *> cards() const; + + /** + * Returns a list of all modules. + * + * @return list of modules + */ + QVector<Module *> modules() const; + + /** + * Returns a list of all stream restores. + * + * @return list of stream restores + */ + QVector<StreamRestore *> streamRestores() const; + + Server *server() const; + + /** + * Returns a pointer to the raw PulseAudio context. + */ + pa_context *context() const; + + void setCardProfile(quint32 index, const QString &profile); + void setDefaultSink(const QString &name); + void setDefaultSource(const QString &name); + +Q_SIGNALS: + /** + * Indicates that sink was added. + */ + void sinkAdded(PulseAudioQt::Sink *sink); + + /** + * Indicates that sink was removed. + */ + void sinkRemoved(PulseAudioQt::Sink *sink); + + /** + * Indicates that sink input was added. + */ + void sinkInputAdded(PulseAudioQt::SinkInput *sinkInput); + + /** + * Indicates that sink input was removed. + */ + void sinkInputRemoved(PulseAudioQt::SinkInput *sinkInput); + + /** + * Indicates that source was added. + */ + void sourceAdded(PulseAudioQt::Source *source); + + /** + * Indicates that source was removed. + */ + void sourceRemoved(PulseAudioQt::Source *source); + + /** + * Indicates that source output was added. + */ + void sourceOutputAdded(PulseAudioQt::SourceOutput *sourceOutput); + + /** + * Indicates that source output was removed. + */ + void sourceOutputRemoved(PulseAudioQt::SourceOutput *sourceOutput); + + /** + * Indicates that client was added. + */ + void clientAdded(PulseAudioQt::Client *client); + + /** + * Indicates that client was removed. + */ + void clientRemoved(PulseAudioQt::Client *client); + + /** + * Indicates that card was added. + */ + void cardAdded(PulseAudioQt::Card *card); + + /** + * Indicates that card was removed. + */ + void cardRemoved(PulseAudioQt::Card *card); + + /** + * Indicates that module was added. + */ + void moduleAdded(PulseAudioQt::Module *module); + + /** + * Indicates that module was removed. + */ + void moduleRemoved(PulseAudioQt::Module *module); + + /** + * Indicates that stream restore was added. + */ + void streamRestoreAdded(PulseAudioQt::StreamRestore *streamRestore); + + /** + * Indicates that streamRestore was removed. + */ + void streamRestoreRemoved(PulseAudioQt::StreamRestore *streamRestore); + +private: + explicit Context(QObject *parent = nullptr); + + class ContextPrivate *const d; + + friend class Sink; + friend class SinkInput; + friend class Source; + friend class SourceOutput; + friend class Stream; + friend class StreamRestorePrivate; + friend class Server; + friend class SinkModel; + friend class SinkInputModel; + friend class SourceModel; + friend class SourceOutputModel; + friend class StreamRestoreModel; + friend class CardModel; + friend class ModuleModel; +}; + +} // PulseAudioQt + +#endif // CONTEXT_H diff --git a/src/PulseAudioQt/context_p.h b/src/PulseAudioQt/context_p.h new file mode 100644 index 0000000..5b163a1 --- /dev/null +++ b/src/PulseAudioQt/context_p.h @@ -0,0 +1,85 @@ +/* + SPDX-FileCopyrightText: 2018 Nicolas Fella <nicolas.fella@gmx.de> + + SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL +*/ +#ifndef CONTEXT_P_H +#define CONTEXT_P_H + +#include "maps.h" +#include "operation.h" +#include <functional> +#include <pulse/context.h> +#include <pulse/ext-stream-restore.h> +#include <pulse/glib-mainloop.h> +#include <pulse/introspect.h> +#include <qglobal.h> + +namespace PulseAudioQt +{ +class Server; + +class ContextPrivate +{ +public: + explicit ContextPrivate(Context *q); + virtual ~ContextPrivate(); + + // Don't forget to add things to reset(). + SinkMap m_sinks; + SinkInputMap m_sinkInputs; + SourceMap m_sources; + SourceOutputMap m_sourceOutputs; + ClientMap m_clients; + CardMap m_cards; + ModuleMap m_modules; + StreamRestoreMap m_streamRestores; + Server *m_server; + + pa_context *m_context; + pa_glib_mainloop *m_mainloop; + + QString m_newDefaultSink; + QString m_newDefaultSource; + + int m_references; + + static QString s_applicationId; + + void subscribeCallback(pa_context *context, pa_subscription_event_type_t type, uint32_t index); + void contextStateCallback(pa_context *context); + void sinkCallback(const pa_sink_info *info); + void sinkInputCallback(const pa_sink_input_info *info); + void sourceCallback(const pa_source_info *info); + void sourceOutputCallback(const pa_source_output_info *info); + void clientCallback(const pa_client_info *info); + void cardCallback(const pa_card_info *info); + void moduleCallback(const pa_module_info *info); + void streamRestoreCallback(const pa_ext_stream_restore_info *info); + void serverCallback(const pa_server_info *info); + void streamRestoreWrite(const pa_ext_stream_restore_info *info); + void setGenericVolume(quint32 index, + int channel, + qint64 newVolume, + pa_cvolume cVolume, + const std::function<pa_operation *(pa_context *, uint32_t, const pa_cvolume *, pa_context_success_cb_t, void *)> &); + void setGenericMute(quint32 index, bool mute, const std::function<pa_operation *(pa_context *, uint32_t, int, pa_context_success_cb_t, void *)> &); + void setGenericPort(quint32 index, + const QString &portName, + const std::function<pa_operation *(pa_context *, uint32_t, const char *, pa_context_success_cb_t, void *)> &); + void setGenericDeviceForStream(quint32 streamIndex, + quint32 deviceIndex, + const std::function<pa_operation *(pa_context *, uint32_t, uint32_t, pa_context_success_cb_t, void *)> &); + void setGenericVolumes(quint32 index, + QVector<qint64> channelVolumes, + pa_cvolume cVolume, + const std::function<pa_operation *(pa_context *, uint32_t, const pa_cvolume *, pa_context_success_cb_t, void *)> &); + + void reset(); + void connectToDaemon(); + + Context *q; +}; + +} +#endif diff --git a/src/PulseAudioQt/debug.h b/src/PulseAudioQt/debug.h new file mode 100644 index 0000000..d3e83bc --- /dev/null +++ b/src/PulseAudioQt/debug.h @@ -0,0 +1 @@ +#include <QDebug> diff --git a/src/PulseAudioQt/device.cpp b/src/PulseAudioQt/device.cpp new file mode 100644 index 0000000..c30df8b --- /dev/null +++ b/src/PulseAudioQt/device.cpp @@ -0,0 +1,74 @@ +/* + SPDX-FileCopyrightText: 2014-2015 Harald Sitter <sitter@kde.org> + + SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL +*/ + +#include "device.h" +#include "device_p.h" + +namespace PulseAudioQt +{ +Device::State Device::state() const +{ + return d->m_state; +} + +QString Device::description() const +{ + return d->m_description; +} + +QString Device::formFactor() const +{ + return d->m_formFactor; +} + +quint32 Device::cardIndex() const +{ + return d->m_cardIndex; +} + +QList<Port *> Device::ports() const +{ + return d->m_ports; +} + +quint32 Device::activePortIndex() const +{ + return d->m_activePortIndex; +} + +Device::Device(QObject *parent) + : VolumeObject(parent) + , d(new DevicePrivate(this)) +{ +} + +DevicePrivate::DevicePrivate(Device *q) + : q(q) +{ +} + +Device::State DevicePrivate::stateFromPaState(int value) const +{ + switch (value) { + case -1: // PA_X_INVALID_STATE + return Device::InvalidState; + case 0: // PA_X_RUNNING + return Device::RunningState; + case 1: // PA_X_IDLE + return Device::IdleState; + case 2: // PA_X_SUSPENDED + return Device::SuspendedState; + default: + return Device::UnknownState; + } +} + +Device::~Device() +{ + delete d; +} + +} // namespace PulseAudioQt diff --git a/src/PulseAudioQt/device.h b/src/PulseAudioQt/device.h new file mode 100644 index 0000000..450ae6b --- /dev/null +++ b/src/PulseAudioQt/device.h @@ -0,0 +1,119 @@ +/* + SPDX-FileCopyrightText: 2014-2015 Harald Sitter <sitter@kde.org> + + SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL +*/ + +#ifndef PA_DEVICE_H +#define PA_DEVICE_H + +#include <QString> + +#include "port.h" +#include "volumeobject.h" + +namespace PulseAudioQt +{ +class Port; +class DevicePrivate; + +/** + * A PulseAudio device. Can be either a Sink or Source. + */ +class PULSEAUDIOQT_EXPORT Device : public VolumeObject +{ + Q_OBJECT + Q_PROPERTY(State state READ state NOTIFY stateChanged) + Q_PROPERTY(QString description READ description NOTIFY descriptionChanged) + Q_PROPERTY(QString formFactor READ formFactor NOTIFY formFactorChanged) + Q_PROPERTY(quint32 cardIndex READ cardIndex NOTIFY cardIndexChanged) + Q_PROPERTY(QList<Port *> ports READ ports NOTIFY portsChanged) + Q_PROPERTY(quint32 activePortIndex READ activePortIndex WRITE setActivePortIndex NOTIFY activePortIndexChanged) + Q_PROPERTY(bool default READ isDefault WRITE setDefault NOTIFY defaultChanged) + +public: + enum State { + /** This state is used when the server does not support sink/source state introspection. */ + InvalidState = 0, + /** Running, sink/source is playing/recording and used by at least one non-corked sink-input/source-output. */ + RunningState, + /** When idle, the sink/source is playing/recording but there is no non-corked sink-input/source-output attached to it. */ + IdleState, + /** When suspended, actual sink/source access can be closed, for instance. */ + SuspendedState, + UnknownState, + }; + Q_ENUM(State); + + ~Device(); + + /** + * The state of this device. + */ + State state() const; + + /** + * A human readable description of this device. + */ + QString description() const; + + /** + * The device's form factor. + * One of "internal", "speaker", "handset", "tv", "webcam", "microphone", "headset", "headphone", "hands-free", "car", "hifi", "computer", "portable". + * This is based on PA_PROP_DEVICE_FORM_FACTOR. + */ + QString formFactor() const; + + /** + * Index of the card that owns this device. + */ + quint32 cardIndex() const; + + /** + * The ports associated with this device. + */ + QList<Port *> ports() const; + + /** + * The currently active port, by index. + */ + quint32 activePortIndex() const; + + /** + * Set the currently active port, by index. + */ + virtual void setActivePortIndex(quint32 port_index) = 0; + + /** + * Whether this is the default device. + */ + virtual bool isDefault() const = 0; + + /** + * Set whether this is the default device. + */ + virtual void setDefault(bool enable) = 0; + +Q_SIGNALS: + void stateChanged(); + void descriptionChanged(); + void formFactorChanged(); + void cardIndexChanged(); + void portsChanged(); + void activePortIndexChanged(); + void defaultChanged(); + +protected: + /** @private */ + explicit Device(QObject *parent); + /** @private */ + DevicePrivate *d; + +private: + friend class SinkPrivate; + friend class SourcePrivate; +}; + +} // PulseAudioQt + +#endif // DEVICE_H diff --git a/src/PulseAudioQt/device_p.h b/src/PulseAudioQt/device_p.h new file mode 100644 index 0000000..462862e --- /dev/null +++ b/src/PulseAudioQt/device_p.h @@ -0,0 +1,111 @@ +/* + SPDX-FileCopyrightText: 2018 Nicolas Fella <nicolas.fella@gmx.de> + + SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL +*/ +#ifndef DEVICE_P_H +#define DEVICE_P_H + +#include <pulse/proplist.h> + +#include <QHash> +#include <QVector> + +#include "device.h" +#include "port.h" +#include "port_p.h" +#include "volumeobject_p.h" + +namespace PulseAudioQt +{ +class DevicePrivate +{ +public: + explicit DevicePrivate(Device *q); + + Device *q; + + QString m_description; + QString m_formFactor; + quint32 m_cardIndex = -1; + QList<Port *> m_ports; + quint32 m_activePortIndex = -1; + Device::State m_state = Device::UnknownState; + + Device::State stateFromPaState(int value) const; + + template<typename PAInfo> + void updateDevice(const PAInfo *info) + { + q->VolumeObject::d->updateVolumeObject(info); + + if (m_description != info->description) { + m_description = info->description; + Q_EMIT q->descriptionChanged(); + } + const char *form_factor = pa_proplist_gets(info->proplist, PA_PROP_DEVICE_FORM_FACTOR); + if (form_factor) { + QString formFactor = QString::fromUtf8(form_factor); + if (m_formFactor != formFactor) { + m_formFactor = formFactor; + Q_EMIT q->formFactorChanged(); + } + } + + m_cardIndex = info->card; + Q_EMIT q->cardIndexChanged(); + + QStringList newPorts; + QStringList existingPorts; + + // Build list of existing ports + for (const Port *port : qAsConst(m_ports)) { + existingPorts << port->name(); + } + + // Add new ports from the updated port list and re/set port info + for (auto **it = info->ports; it && *it != nullptr; ++it) { + const QString name = QString::fromUtf8((*it)->name); + newPorts << name; + + Port *port = nullptr; + + if (existingPorts.contains(name)) { + port = m_ports[existingPorts.indexOf(name)]; + } else { + port = new Port(q); + m_ports << port; + } + + port->d->setInfo(*it); + } + + // Remove ports that are not in the updated port list + for (Port *port : qAsConst(m_ports)) { + if (!newPorts.contains(port->name())) { + m_ports.removeOne(port); + delete port; + } + } + + // Set active port + for (Port *port : qAsConst(m_ports)) { + if (info->active_port->name == port->name()) { + m_activePortIndex = m_ports.indexOf(port); + } + } + + Q_EMIT q->portsChanged(); + Q_EMIT q->activePortIndexChanged(); + + Device::State infoState = stateFromPaState(info->state); + if (infoState != m_state) { + m_state = infoState; + Q_EMIT q->stateChanged(); + } + } +}; + +} // namespace PulseAudioQt + +#endif diff --git a/src/PulseAudioQt/indexedpulseobject.cpp b/src/PulseAudioQt/indexedpulseobject.cpp new file mode 100644 index 0000000..d8177b0 --- /dev/null +++ b/src/PulseAudioQt/indexedpulseobject.cpp @@ -0,0 +1,39 @@ +/* + SPDX-FileCopyrightText: 2021 Nicolas Fella <nicolas.fella@gmx.de> + + SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL +*/ + +#include "indexedpulseobject.h" +#include "indexedpulseobject_p.h" + +#include "context.h" + +namespace PulseAudioQt +{ +IndexedPulseObject::IndexedPulseObject(QObject *parent) + : PulseObject(parent) + , d(new IndexedPulseObjectPrivate(this)) +{ +} + +IndexedPulseObject::~IndexedPulseObject() +{ + delete d; +} + +IndexedPulseObjectPrivate::IndexedPulseObjectPrivate(IndexedPulseObject *q) + : q(q) +{ +} + +IndexedPulseObjectPrivate::~IndexedPulseObjectPrivate() +{ +} + +quint32 IndexedPulseObject::index() const +{ + return d->m_index; +} + +} // PulseAudioQt diff --git a/src/PulseAudioQt/indexedpulseobject.h b/src/PulseAudioQt/indexedpulseobject.h new file mode 100644 index 0000000..135afb9 --- /dev/null +++ b/src/PulseAudioQt/indexedpulseobject.h @@ -0,0 +1,48 @@ +/* + SPDX-FileCopyrightText: 2021 Nicolas Fella <nicolas.fella@gmx.de> + + SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL +*/ + +#ifndef INDEXEDPULSEOBJECT_H +#define INDEXEDPULSEOBJECT_H + +#include <QObject> + +#include "pulseaudioqt_export.h" +#include "pulseobject.h" + +namespace PulseAudioQt +{ +class PULSEAUDIOQT_EXPORT IndexedPulseObject : public PulseObject +{ + Q_OBJECT + Q_PROPERTY(quint32 index READ index CONSTANT) + +public: + ~IndexedPulseObject(); + + /** + * Index of this object. + */ + quint32 index() const; + +protected: + /** @private */ + explicit IndexedPulseObject(QObject *parent); + /** @private */ + class IndexedPulseObjectPrivate *const d; + +private: + // Ensure that we get properly parented. + IndexedPulseObject(); + friend class ClientPrivate; + friend class CardPrivate; + friend class ModulePrivate; + friend class VolumeObjectPrivate; + friend class ProfilePrivate; +}; + +} // PulseAudioQt + +#endif // INDEXEDPULSEOBJECT_H diff --git a/src/PulseAudioQt/indexedpulseobject_p.h b/src/PulseAudioQt/indexedpulseobject_p.h new file mode 100644 index 0000000..d37fae9 --- /dev/null +++ b/src/PulseAudioQt/indexedpulseobject_p.h @@ -0,0 +1,35 @@ +/* + SPDX-FileCopyrightText: 2021 Nicolas Fella <nicolas.fella@gmx.de> + + SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL +*/ +#ifndef INDEXEDPULSEOBJECT_P_H +#define INDEXEDPULSEOBJECT_P_H + +#include "debug.h" + +#include "pulseobject_p.h" + +#include <pulse/introspect.h> + +namespace PulseAudioQt +{ +class IndexedPulseObjectPrivate +{ +public: + explicit IndexedPulseObjectPrivate(IndexedPulseObject *q); + virtual ~IndexedPulseObjectPrivate(); + + PulseObject *q; + quint32 m_index = 0; + + template<typename PAInfo> + void updatePulseObject(PAInfo *info) + { + m_index = info->index; + + q->PulseObject::d->updatePulseObject(info); + } +}; +} +#endif diff --git a/src/PulseAudioQt/maps.cpp b/src/PulseAudioQt/maps.cpp new file mode 100644 index 0000000..186c56a --- /dev/null +++ b/src/PulseAudioQt/maps.cpp @@ -0,0 +1,7 @@ +/* + SPDX-FileCopyrightText: 2014-2015 Harald Sitter <sitter@kde.org> + + SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL +*/ + +#include "maps.h" diff --git a/src/PulseAudioQt/maps.h b/src/PulseAudioQt/maps.h new file mode 100644 index 0000000..206c5cd --- /dev/null +++ b/src/PulseAudioQt/maps.h @@ -0,0 +1,165 @@ +/* + SPDX-FileCopyrightText: 2014-2015 Harald Sitter <sitter@kde.org> + SPDX-FileCopyrightText: 2018 David Rosca <nowrep@gmail.com> + + SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL +*/ + +#pragma once + +#include <QHash> +#include <QObject> +#include <QSet> +#include <QVector> + +#include <pulse/ext-stream-restore.h> +#include <pulse/pulseaudio.h> + +#include "card_p.h" +#include "client_p.h" +#include "module_p.h" +#include "sink_p.h" +#include "sinkinput_p.h" +#include "source_p.h" +#include "sourceoutput_p.h" +#include "streamrestore_p.h" + +namespace PulseAudioQt +{ +// Used for typedefs. +class Card; +class Client; +class Sink; +class SinkInput; +class Source; +class SourceOutput; +class StreamRestore; +class Module; + +/** + * @see MapBase + * This class is nothing more than the QObject base since moc cannot handle + * templates. + */ +class MapBaseQObject : public QObject +{ + Q_OBJECT + +public: + virtual int count() const = 0; + virtual QObject *objectAt(int index) const = 0; + virtual int indexOfObject(QObject *object) const = 0; + +Q_SIGNALS: + void aboutToBeAdded(int index); + void added(int index, QObject *object); + void aboutToBeRemoved(int index); + void removed(int index, QObject *object); +}; + +/** + * Maps a specific index to a specific object pointer. + * This is used to give the unique arbitrary PulseAudio index of a PulseObject a + * serialized list index. Namely it enables us to translate a discrete list + * index to a pulse index to an object, and any permutation thereof. + */ +template<typename Type, typename PAInfo> +class MapBase : public MapBaseQObject +{ +public: + virtual ~MapBase() + { + } + + const QVector<Type *> &data() const + { + return m_data; + } + + int count() const override + { + return m_data.count(); + } + + int indexOfObject(QObject *object) const override + { + return m_data.indexOf(static_cast<Type *>(object)); + } + + QObject *objectAt(int index) const override + { + return m_data.at(index); + } + + void reset() + { + while (!m_hash.isEmpty()) { + removeEntry(m_data.at(m_data.count() - 1)->index()); + } + m_pendingRemovals.clear(); + } + + void insert(Type *object) + { + Q_ASSERT(!m_data.contains(object)); + + const int modelIndex = m_data.count(); + + Q_EMIT aboutToBeAdded(modelIndex); + m_data.append(object); + m_hash[object->index()] = object; + Q_EMIT added(modelIndex, object); + } + + // Context is passed in as parent because context needs to include the maps + // so we'd cause a circular dep if we were to try to use the instance here. + // Plus that's weird separation anyway. + void updateEntry(const PAInfo *info, QObject *parent) + { + Q_ASSERT(info); + + if (m_pendingRemovals.remove(info->index)) { + // Was already removed again. + return; + } + + auto *obj = m_hash.value(info->index); + if (!obj) { + obj = new Type(parent); + obj->d->update(info); + insert(obj); + } else { + obj->d->update(info); + } + } + + void removeEntry(quint32 index) + { + if (!m_hash.contains(index)) { + m_pendingRemovals.insert(index); + } else { + const int modelIndex = m_data.indexOf(m_hash.value(index)); + Q_EMIT aboutToBeRemoved(modelIndex); + m_data.removeAt(modelIndex); + auto object = m_hash.take(index); + Q_EMIT removed(modelIndex, object); + delete object; + } + } + +protected: + QVector<Type *> m_data; + QHash<quint32, Type *> m_hash; + QSet<quint32> m_pendingRemovals; +}; + +typedef MapBase<Card, pa_card_info> CardMap; +typedef MapBase<Client, pa_client_info> ClientMap; +typedef MapBase<SinkInput, pa_sink_input_info> SinkInputMap; +typedef MapBase<Sink, pa_sink_info> SinkMap; +typedef MapBase<Source, pa_source_info> SourceMap; +typedef MapBase<SourceOutput, pa_source_output_info> SourceOutputMap; +typedef MapBase<StreamRestore, pa_ext_stream_restore_info> StreamRestoreMap; +typedef MapBase<Module, pa_module_info> ModuleMap; + +} // PulseAudioQt diff --git a/src/PulseAudioQt/models.cpp b/src/PulseAudioQt/models.cpp new file mode 100644 index 0000000..9fc3f32 --- /dev/null +++ b/src/PulseAudioQt/models.cpp @@ -0,0 +1,396 @@ +/* + SPDX-FileCopyrightText: 2014-2015 Harald Sitter <sitter@kde.org> + SPDX-FileCopyrightText: 2016 David Rosca <nowrep@gmail.com> + + SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL +*/ + +#include "models.h" + +#include "card.h" +#include "context.h" +#include "context_p.h" +#include "debug.h" +#include "maps.h" +#include "module.h" +#include "server.h" +#include "sink.h" +#include "sinkinput.h" +#include "source.h" +#include "sourceoutput.h" +#include "streamrestore.h" + +#include "models_p.h" +#include <QMetaEnum> + +namespace PulseAudioQt +{ +AbstractModel::AbstractModel(const MapBaseQObject *map, QObject *parent) + : QAbstractListModel(parent) + , d(new AbstractModelPrivate(this, map)) +{ + connect(d->m_map, &MapBaseQObject::aboutToBeAdded, this, [this](int index) { + beginInsertRows(QModelIndex(), index, index); + }); + connect(d->m_map, &MapBaseQObject::added, this, [this](int index) { + onDataAdded(index); + endInsertRows(); + Q_EMIT countChanged(); + }); + connect(d->m_map, &MapBaseQObject::aboutToBeRemoved, this, [this](int index) { + beginRemoveRows(QModelIndex(), index, index); + }); + connect(d->m_map, &MapBaseQObject::removed, this, [this](int index) { + Q_UNUSED(index); + endRemoveRows(); + Q_EMIT countChanged(); + }); +} + +AbstractModel::~AbstractModel() +{ + delete d; +} + +AbstractModelPrivate::AbstractModelPrivate(AbstractModel *q, const MapBaseQObject *map) + : q(q) + , m_map(map) +{ +} + +AbstractModelPrivate::~AbstractModelPrivate() +{ +} + +QHash<int, QByteArray> AbstractModel::roleNames() const +{ + if (!d->m_roles.empty()) { + qDebug() << "returning roles" << d->m_roles; + return d->m_roles; + } + Q_UNREACHABLE(); + return QHash<int, QByteArray>(); +} + +int AbstractModel::rowCount(const QModelIndex &parent) const +{ + if (parent.isValid()) { + return 0; + } + return d->m_map->count(); +} + +QVariant AbstractModel::data(const QModelIndex &index, int role) const +{ + if (!hasIndex(index.row(), index.column())) { + return QVariant(); + } + QObject *data = d->m_map->objectAt(index.row()); + Q_ASSERT(data); + if (role == PulseObjectRole) { + return QVariant::fromValue(data); + } else if (role == Qt::DisplayRole) { + return static_cast<PulseObject *>(data)->name(); + } + int property = d->m_objectProperties.value(role, -1); + if (property == -1) { + return QVariant(); + } + return data->metaObject()->property(property).read(data); +} + +bool AbstractModel::setData(const QModelIndex &index, const QVariant &value, int role) +{ + if (!hasIndex(index.row(), index.column())) { + return false; + } + int propertyIndex = d->m_objectProperties.value(role, -1); + if (propertyIndex == -1) { + return false; + } + QObject *data = d->m_map->objectAt(index.row()); + auto property = data->metaObject()->property(propertyIndex); + return property.write(data, value); +} + +int AbstractModel::role(const QByteArray &roleName) const +{ + qDebug() << roleName << d->m_roles.key(roleName, -1); + return d->m_roles.key(roleName, -1); +} + +Context *AbstractModel::context() const +{ + return Context::instance(); +} + +void AbstractModel::initRoleNames(const QMetaObject &qobjectMetaObject) +{ + d->m_roles[PulseObjectRole] = QByteArrayLiteral("PulseObject"); + + QMetaEnum enumerator; + for (int i = 0; i < metaObject()->enumeratorCount(); ++i) { + if (metaObject()->enumerator(i).name() == QLatin1String("ItemRole")) { + enumerator = metaObject()->enumerator(i); + break; + } + } + + for (int i = 0; i < enumerator.keyCount(); ++i) { + // Clip the Role suffix and glue it in the hash. + const int roleLength = 4; + QByteArray key(enumerator.key(i)); + // Enum values must end in Role or the enum is crap + Q_ASSERT(key.right(roleLength) == QByteArrayLiteral("Role")); + key.chop(roleLength); + d->m_roles[enumerator.value(i)] = key; + } + + int maxEnumValue = -1; + for (auto it = d->m_roles.constBegin(); it != d->m_roles.constEnd(); ++it) { + if (it.key() > maxEnumValue) { + maxEnumValue = it.key(); + } + } + Q_ASSERT(maxEnumValue != -1); + auto mo = qobjectMetaObject; + for (int i = 0; i < mo.propertyCount(); ++i) { + QMetaProperty property = mo.property(i); + QString name(property.name()); + name.replace(0, 1, name.at(0).toUpper()); + d->m_roles[++maxEnumValue] = name.toLatin1(); + d->m_objectProperties.insert(maxEnumValue, i); + if (!property.hasNotifySignal()) { + continue; + } + d->m_signalIndexToProperties.insert(property.notifySignalIndex(), i); + } + qDebug() << d->m_roles; + + // Connect to property changes also with objects already in model + for (int i = 0; i < d->m_map->count(); ++i) { + onDataAdded(i); + } +} + +void AbstractModel::propertyChanged() +{ + if (!sender() || senderSignalIndex() == -1) { + return; + } + int propertyIndex = d->m_signalIndexToProperties.value(senderSignalIndex(), -1); + if (propertyIndex == -1) { + return; + } + int role = d->m_objectProperties.key(propertyIndex, -1); + if (role == -1) { + return; + } + int index = d->m_map->indexOfObject(sender()); + qDebug() << "PROPERTY CHANGED (" << index << ") :: " << role << roleNames().value(role); + Q_EMIT dataChanged(createIndex(index, 0), createIndex(index, 0), {role}); +} + +void AbstractModel::onDataAdded(int index) +{ + QObject *data = d->m_map->objectAt(index); + const QMetaObject *mo = data->metaObject(); + // We have all the data changed notify signals already stored + auto keys = d->m_signalIndexToProperties.keys(); + foreach (int index, keys) { + QMetaMethod meth = mo->method(index); + connect(data, meth, this, propertyChangedMetaMethod()); + } +} + +QMetaMethod AbstractModel::propertyChangedMetaMethod() const +{ + auto mo = metaObject(); + int methodIndex = mo->indexOfMethod("propertyChanged()"); + if (methodIndex == -1) { + return QMetaMethod(); + } + return mo->method(methodIndex); +} + +SinkModel::SinkModel(QObject *parent) + : AbstractModel(&context()->d->m_sinks, parent) + , d(new SinkModelPrivate(this)) +{ + initRoleNames(Sink::staticMetaObject); + + for (int i = 0; i < context()->d->m_sinks.count(); ++i) { + sinkAdded(i); + } + + connect(&context()->d->m_sinks, &MapBaseQObject::added, this, &SinkModel::sinkAdded); + connect(&context()->d->m_sinks, &MapBaseQObject::removed, this, &SinkModel::sinkRemoved); + + connect(context()->server(), &Server::defaultSinkChanged, this, [this]() { + updatePreferredSink(); + Q_EMIT defaultSinkChanged(); + }); +} + +SinkModel::~SinkModel() +{ + delete d; +} + +SinkModelPrivate::SinkModelPrivate(SinkModel *q) + : q(q) + , m_preferredSink(nullptr) +{ +} + +SinkModelPrivate::~SinkModelPrivate() +{ +} + +Sink *SinkModel::defaultSink() const +{ + return context()->server()->defaultSink(); +} + +Sink *SinkModel::preferredSink() const +{ + return d->m_preferredSink; +} + +QVariant SinkModel::data(const QModelIndex &index, int role) const +{ + if (role == SortByDefaultRole) { + // Workaround QTBUG-1548 + const QString pulseIndex = data(index, AbstractModel::role(QByteArrayLiteral("Index"))).toString(); + const QString defaultDevice = data(index, AbstractModel::role(QByteArrayLiteral("Default"))).toString(); + return defaultDevice + pulseIndex; + } + return AbstractModel::data(index, role); +} + +void SinkModel::sinkAdded(int index) +{ + Q_ASSERT(qobject_cast<Sink *>(context()->d->m_sinks.objectAt(index))); + Sink *sink = static_cast<Sink *>(context()->d->m_sinks.objectAt(index)); + connect(sink, &Sink::stateChanged, this, &SinkModel::updatePreferredSink); + + updatePreferredSink(); +} + +void SinkModel::sinkRemoved(int index) +{ + Q_UNUSED(index); + + updatePreferredSink(); +} + +void SinkModel::updatePreferredSink() +{ + Sink *sink = findPreferredSink(); + + if (sink != d->m_preferredSink) { + qDebug() << "Changing preferred sink to" << sink << (sink ? sink->name() : ""); + d->m_preferredSink = sink; + Q_EMIT preferredSinkChanged(); + } +} + +Sink *SinkModel::findPreferredSink() const +{ + const auto &sinks = context()->d->m_sinks; + + // Only one sink is the preferred one + if (sinks.count() == 1) { + return static_cast<Sink *>(sinks.objectAt(0)); + } + + auto lookForState = [&](Device::State state) { + Sink *ret = nullptr; + const auto data = sinks.data(); + for (Sink *sink : data) { + if (sink->state() != state) { + continue; + } + if (!ret) { + ret = sink; + } else if (sink == defaultSink()) { + ret = sink; + break; + } + } + return ret; + }; + + Sink *preferred = nullptr; + + // Look for playing sinks + prefer default sink + preferred = lookForState(Device::RunningState); + if (preferred) { + return preferred; + } + + // Look for idle sinks + prefer default sink + preferred = lookForState(Device::IdleState); + if (preferred) { + return preferred; + } + + // Fallback to default sink + return defaultSink(); +} + +SourceModel::SourceModel(QObject *parent) + : AbstractModel(&context()->d->m_sources, parent) +{ + initRoleNames(Source::staticMetaObject); + + connect(context()->server(), &Server::defaultSourceChanged, this, &SourceModel::defaultSourceChanged); +} + +Source *SourceModel::defaultSource() const +{ + return context()->server()->defaultSource(); +} + +QVariant SourceModel::data(const QModelIndex &index, int role) const +{ + if (role == SortByDefaultRole) { + // Workaround QTBUG-1548 + const QString pulseIndex = data(index, AbstractModel::role(QByteArrayLiteral("Index"))).toString(); + const QString defaultDevice = data(index, AbstractModel::role(QByteArrayLiteral("Default"))).toString(); + return defaultDevice + pulseIndex; + } + return AbstractModel::data(index, role); +} + +SinkInputModel::SinkInputModel(QObject *parent) + : AbstractModel(&context()->d->m_sinkInputs, parent) +{ + initRoleNames(SinkInput::staticMetaObject); +} + +SourceOutputModel::SourceOutputModel(QObject *parent) + : AbstractModel(&context()->d->m_sourceOutputs, parent) +{ + initRoleNames(SourceOutput::staticMetaObject); +} + +CardModel::CardModel(QObject *parent) + : AbstractModel(&context()->d->m_cards, parent) +{ + initRoleNames(Card::staticMetaObject); +} + +StreamRestoreModel::StreamRestoreModel(QObject *parent) + : AbstractModel(&context()->d->m_streamRestores, parent) +{ + initRoleNames(StreamRestore::staticMetaObject); +} + +ModuleModel::ModuleModel(QObject *parent) + : AbstractModel(&context()->d->m_modules, parent) +{ + initRoleNames(Module::staticMetaObject); +} + +} // PulseAudioQt diff --git a/src/PulseAudioQt/models.h b/src/PulseAudioQt/models.h new file mode 100644 index 0000000..733e9e4 --- /dev/null +++ b/src/PulseAudioQt/models.h @@ -0,0 +1,163 @@ +/* + SPDX-FileCopyrightText: 2014-2015 Harald Sitter <sitter@kde.org> + SPDX-FileCopyrightText: 2016 David Rosca <nowrep@gmail.com> + + SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL +*/ + +#ifndef PULSEAUDIO_H +#define PULSEAUDIO_H + +#include <QAbstractListModel> + +#include "pulseaudioqt_export.h" + +namespace PulseAudioQt +{ +class Context; +class MapBaseQObject; +class Sink; +class Source; +class AbstractModelPrivate; +class SinkModelPrivate; + +class PULSEAUDIOQT_EXPORT AbstractModel : public QAbstractListModel +{ + Q_OBJECT +public: + enum ItemRole { PulseObjectRole = Qt::UserRole + 1 }; + + Q_PROPERTY(int count READ rowCount NOTIFY countChanged) + + ~AbstractModel() override; + QHash<int, QByteArray> roleNames() const final override; + int rowCount(const QModelIndex &parent = QModelIndex()) const final override; + QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override; + bool setData(const QModelIndex &index, const QVariant &value, int role) final override; + + Q_INVOKABLE int role(const QByteArray &roleName) const; + +Q_SIGNALS: + void countChanged(); + +protected: + AbstractModel(const MapBaseQObject *map, QObject *parent); + void initRoleNames(const QMetaObject &qobjectMetaObject); + Context *context() const; + +private Q_SLOTS: + void propertyChanged(); + +private: + void onDataAdded(int index); + void onDataRemoved(int index); + QMetaMethod propertyChangedMetaMethod() const; + + AbstractModelPrivate *d; + + // Prevent leaf-classes from default constructing as we want to enforce + // them passing us a context or explicit nullptrs. + AbstractModel() + { + } +}; + +class PULSEAUDIOQT_EXPORT CardModel : public AbstractModel +{ + Q_OBJECT +public: + CardModel(QObject *parent = nullptr); + +private: + void *d; +}; + +class PULSEAUDIOQT_EXPORT SinkModel : public AbstractModel +{ + Q_OBJECT + Q_PROPERTY(PulseAudioQt::Sink *defaultSink READ defaultSink NOTIFY defaultSinkChanged) + Q_PROPERTY(PulseAudioQt::Sink *preferredSink READ preferredSink NOTIFY preferredSinkChanged) +public: + enum ItemRole { SortByDefaultRole = PulseObjectRole + 1 }; + Q_ENUM(ItemRole) + + SinkModel(QObject *parent = nullptr); + virtual ~SinkModel(); + Sink *defaultSink() const; + Sink *preferredSink() const; + QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override; + +Q_SIGNALS: + void defaultSinkChanged(); + void preferredSinkChanged(); + +private: + void sinkAdded(int index); + void sinkRemoved(int index); + void updatePreferredSink(); + Sink *findPreferredSink() const; + SinkModelPrivate *d; +}; + +class PULSEAUDIOQT_EXPORT SinkInputModel : public AbstractModel +{ + Q_OBJECT +public: + SinkInputModel(QObject *parent = nullptr); + +private: + void *d; +}; + +class PULSEAUDIOQT_EXPORT SourceModel : public AbstractModel +{ + Q_OBJECT + Q_PROPERTY(PulseAudioQt::Source *defaultSource READ defaultSource NOTIFY defaultSourceChanged) +public: + enum ItemRole { SortByDefaultRole = PulseObjectRole + 1 }; + Q_ENUM(ItemRole) + + SourceModel(QObject *parent = nullptr); + Source *defaultSource() const; + QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override; + +Q_SIGNALS: + void defaultSourceChanged(); + +private: + void *d; +}; + +class PULSEAUDIOQT_EXPORT SourceOutputModel : public AbstractModel +{ + Q_OBJECT +public: + SourceOutputModel(QObject *parent = nullptr); + +private: + void *d; +}; + +class PULSEAUDIOQT_EXPORT StreamRestoreModel : public AbstractModel +{ + Q_OBJECT +public: + StreamRestoreModel(QObject *parent = nullptr); + +private: + void *d; +}; + +class PULSEAUDIOQT_EXPORT ModuleModel : public AbstractModel +{ + Q_OBJECT +public: + ModuleModel(QObject *parent = nullptr); + +private: + void *d; +}; + +} // PulseAudioQt + +#endif // PULSEAUDIO_H diff --git a/src/PulseAudioQt/models_p.h b/src/PulseAudioQt/models_p.h new file mode 100644 index 0000000..d0c9a50 --- /dev/null +++ b/src/PulseAudioQt/models_p.h @@ -0,0 +1,33 @@ +/* + SPDX-FileCopyrightText: 2018 Nicolas Fella <nicolas.fella@gmx.de> + + SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL +*/ +#pragma once +#include "maps.h" + +namespace PulseAudioQt +{ +class AbstractModelPrivate +{ +public: + explicit AbstractModelPrivate(AbstractModel *q, const MapBaseQObject *map); + virtual ~AbstractModelPrivate(); + + AbstractModel *q; + const MapBaseQObject *m_map; + QHash<int, QByteArray> m_roles; + QHash<int, int> m_objectProperties; + QHash<int, int> m_signalIndexToProperties; +}; + +class SinkModelPrivate +{ +public: + explicit SinkModelPrivate(SinkModel *q); + virtual ~SinkModelPrivate(); + + SinkModel *q; + Sink *m_preferredSink; +}; +} diff --git a/src/PulseAudioQt/module.cpp b/src/PulseAudioQt/module.cpp new file mode 100644 index 0000000..af80fb7 --- /dev/null +++ b/src/PulseAudioQt/module.cpp @@ -0,0 +1,53 @@ +/* + SPDX-FileCopyrightText: 2017 David Rosca <nowrep@gmail.com> + + SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL +*/ + +#include "module.h" +#include "debug.h" +#include "module_p.h" + +#include "context.h" +#include "indexedpulseobject_p.h" + +namespace PulseAudioQt +{ +Module::Module(QObject *parent) + : IndexedPulseObject(parent) + , d(new ModulePrivate(this)) +{ +} + +ModulePrivate::ModulePrivate(Module *q) + : q(q) +{ +} + +ModulePrivate::~ModulePrivate() +{ +} + +void ModulePrivate::update(const pa_module_info *info) +{ + q->IndexedPulseObject::d->updatePulseObject(info); + q->PulseObject::d->updateProperties(info); + + const QString infoArgument = QString::fromUtf8(info->argument); + if (m_argument != infoArgument) { + m_argument = infoArgument; + Q_EMIT q->argumentChanged(); + } +} + +Module::~Module() +{ + delete d; +} + +QString Module::argument() const +{ + return d->m_argument; +} + +} // PulseAudioQt diff --git a/src/PulseAudioQt/module.h b/src/PulseAudioQt/module.h new file mode 100644 index 0000000..ef778d0 --- /dev/null +++ b/src/PulseAudioQt/module.h @@ -0,0 +1,39 @@ +/* + SPDX-FileCopyrightText: 2017 David Rosca <nowrep@gmail.com> + + SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL +*/ + +#ifndef MODULE_H +#define MODULE_H + +#include "indexedpulseobject.h" +#include "pulseaudioqt_export.h" + +struct pa_module_info; + +namespace PulseAudioQt +{ +class PULSEAUDIOQT_EXPORT Module : public IndexedPulseObject +{ + Q_OBJECT + Q_PROPERTY(QString argument READ argument NOTIFY argumentChanged) + +public: + ~Module(); + + QString argument() const; + +Q_SIGNALS: + void argumentChanged(); + +private: + explicit Module(QObject *parent); + + class ModulePrivate *const d; + friend class MapBase<Module, pa_module_info>; +}; + +} // PulseAudioQt + +#endif // MODULE_H diff --git a/src/PulseAudioQt/module_p.h b/src/PulseAudioQt/module_p.h new file mode 100644 index 0000000..36b7dab --- /dev/null +++ b/src/PulseAudioQt/module_p.h @@ -0,0 +1,29 @@ +/* + SPDX-FileCopyrightText: 2018 Nicolas Fella <nicolas.fella@gmx.de> + + SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL +*/ +#ifndef MODULE_P_H +#define MODULE_P_H + +#include "module.h" +#include <pulse/introspect.h> + +namespace PulseAudioQt +{ +class ModulePrivate +{ +public: + explicit ModulePrivate(Module *q); + virtual ~ModulePrivate(); + + void update(const pa_module_info *info); + + Module *q; + + QString m_argument; +}; + +} // PulseAudioQt + +#endif diff --git a/src/PulseAudioQt/operation.cpp b/src/PulseAudioQt/operation.cpp new file mode 100644 index 0000000..d3a0212 --- /dev/null +++ b/src/PulseAudioQt/operation.cpp @@ -0,0 +1,44 @@ +/* + SPDX-FileCopyrightText: 2014-2015 Harald Sitter <sitter@kde.org> + + SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL +*/ + +#include "operation.h" + +namespace PulseAudioQt +{ +PAOperation::PAOperation(pa_operation *operation) + : m_operation(operation) +{ +} + +PAOperation::~PAOperation() +{ + if (m_operation) { + pa_operation_unref(m_operation); + } +} + +PAOperation &PAOperation::operator=(pa_operation *operation) +{ + m_operation = operation; + return *this; +} + +bool PAOperation::operator!() +{ + return !m_operation; +} + +pa_operation *&PAOperation::operator*() +{ + return m_operation; +} + +PAOperation::operator bool() +{ + return m_operation; +} + +} // PulseAudioQt diff --git a/src/PulseAudioQt/operation.h b/src/PulseAudioQt/operation.h new file mode 100644 index 0000000..771a09c --- /dev/null +++ b/src/PulseAudioQt/operation.h @@ -0,0 +1,56 @@ +/* + SPDX-FileCopyrightText: 2014-2015 Harald Sitter <sitter@kde.org> + + SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL +*/ + +#ifndef OPERATION_H +#define OPERATION_H + +#include <pulse/operation.h> + +namespace PulseAudioQt +{ +/** + * @brief The PAOperation class + * Helps with management of pa_operations. pa_operations need to be expicitly + * unref'd after use, so this class is essentially a fancy scoping helper where + * destruction of an instance would also unref the held operation (if there is + * one). + */ +class PAOperation +{ +public: + /** + * @brief PAOperation + * @param operation operation to manage the scope of + */ + PAOperation(pa_operation *operation = nullptr); + ~PAOperation(); + + PAOperation &operator=(pa_operation *operation); + + /** + * @brief operator ! + * @return whether or not there is an operation pointer + */ + bool operator!(); + + /** + * @brief operator bool representing whether there is an operation + */ + operator bool(); + + /** + * @brief operator * + * @return pointer to internal pa_operation object + */ + pa_operation *&operator*(); + +private: + pa_operation *m_operation; +}; + +} // PulseAudioQt + +#endif // OPERATION_H diff --git a/src/PulseAudioQt/port.cpp b/src/PulseAudioQt/port.cpp new file mode 100644 index 0000000..0fff169 --- /dev/null +++ b/src/PulseAudioQt/port.cpp @@ -0,0 +1,35 @@ +/* + SPDX-FileCopyrightText: 2014-2015 Harald Sitter <sitter@kde.org> + + SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL +*/ + +#include "port.h" +#include "port_p.h" +namespace PulseAudioQt +{ +Port::Port(QObject *parent) + : Profile(parent) + , d(new PortPrivate(this)) +{ +} + +Port::~Port() +{ +} + +PortPrivate::PortPrivate(Port *q) + : q(q) +{ +} + +PortPrivate::~PortPrivate() +{ +} + +Port::Type Port::type() const +{ + return d->m_type; +} + +} // PulseAudioQt diff --git a/src/PulseAudioQt/port.h b/src/PulseAudioQt/port.h new file mode 100644 index 0000000..8473d96 --- /dev/null +++ b/src/PulseAudioQt/port.h @@ -0,0 +1,70 @@ +/* + SPDX-FileCopyrightText: 2014-2015 Harald Sitter <sitter@kde.org> + + SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL +*/ + +#ifndef PORT_H +#define PORT_H + +#include "profile.h" +#include "pulseaudioqt_export.h" + +namespace PulseAudioQt +{ +/** + * A PulseAudio port. + */ +class PULSEAUDIOQT_EXPORT Port : public Profile +{ + Q_OBJECT + Q_PROPERTY(Type type READ type NOTIFY typeChanged) + +public: + ~Port(); + + enum Type { + Unknown, + AUX, + Speaker, + Headphones, + Line, + Mic, + Headset, + Handset, + Earpiece, + SPDIF, + HDMI, + TV, + Radio, + Video, + USB, + Bluetooth, + Portable, + Handsfree, + Car, + HiFi, + Phone, + Network, + Analog, + }; + Q_ENUM(Type) + + Type type() const; + +Q_SIGNALS: + void typeChanged(); + +protected: + /** @private */ + explicit Port(QObject *parent); + /** @private */ + class PortPrivate *const d; + + friend class DevicePrivate; + friend class CardPrivate; +}; + +} // PulseAudioQt + +#endif // PORT_H diff --git a/src/PulseAudioQt/port_p.h b/src/PulseAudioQt/port_p.h new file mode 100644 index 0000000..7501c66 --- /dev/null +++ b/src/PulseAudioQt/port_p.h @@ -0,0 +1,47 @@ +/* + SPDX-FileCopyrightText: 2018 Nicolas Fella <nicolas.fella@gmx.de> + + SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL +*/ + +#pragma once + +#include "port.h" +#include "profile_p.h" +#include <pulse/def.h> + +namespace PulseAudioQt +{ +class PortPrivate +{ +public: + explicit PortPrivate(Port *q); + virtual ~PortPrivate(); + + Port *q; + Port::Type m_type = Port::Type::Unknown; + + template<typename PAInfo> + void setInfo(const PAInfo *info) + { + Profile::Availability newAvailability; + switch (info->available) { + case PA_PORT_AVAILABLE_NO: + newAvailability = Profile::Unavailable; + break; + case PA_PORT_AVAILABLE_YES: + newAvailability = Profile::Available; + break; + default: + newAvailability = Profile::Unknown; + } + +#if PA_CHECK_VERSION(14, 0, 0) + m_type = static_cast<Port::Type>(info->type); +#endif + Q_EMIT q->typeChanged(); + + q->Profile::d->setCommonInfo(info, newAvailability); + } +}; +} diff --git a/src/PulseAudioQt/profile.cpp b/src/PulseAudioQt/profile.cpp new file mode 100644 index 0000000..6fb496a --- /dev/null +++ b/src/PulseAudioQt/profile.cpp @@ -0,0 +1,56 @@ +/* + SPDX-FileCopyrightText: 2014-2015 Harald Sitter <sitter@kde.org> + + SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL +*/ + +#include "profile.h" +#include "profile_p.h" + +namespace PulseAudioQt +{ +Profile::Profile(QObject *parent) + : PulseObject(parent) + , d(new ProfilePrivate(this)) +{ +} + +Profile::~Profile() +{ +} + +ProfilePrivate::ProfilePrivate(Profile *q) + : q(q) +{ +} + +ProfilePrivate::~ProfilePrivate() +{ +} + +QString Profile::description() const +{ + return d->m_description; +} + +quint32 Profile::priority() const +{ + return d->m_priority; +} + +Profile::Availability Profile::availability() const +{ + return d->m_availability; +} + +quint32 Profile::sources() const +{ + return d->m_sources; +} + +quint32 Profile::sinks() const +{ + return d->m_sinks; +} + +} // PulseAudioQt diff --git a/src/PulseAudioQt/profile.h b/src/PulseAudioQt/profile.h new file mode 100644 index 0000000..79fe26f --- /dev/null +++ b/src/PulseAudioQt/profile.h @@ -0,0 +1,81 @@ +/* + SPDX-FileCopyrightText: 2014-2015 Harald Sitter <sitter@kde.org> + + SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL +*/ + +#ifndef PROFILE_H +#define PROFILE_H + +#include "pulseaudioqt_export.h" +#include "pulseobject.h" +#include <QObject> +#include <QString> + +namespace PulseAudioQt +{ +/** + * A PulseAudio profile. + */ +class PULSEAUDIOQT_EXPORT Profile : public PulseObject +{ + Q_OBJECT + Q_PROPERTY(QString description READ description NOTIFY descriptionChanged) + Q_PROPERTY(quint32 priority READ priority NOTIFY priorityChanged) + Q_PROPERTY(Availability availability READ availability NOTIFY availabilityChanged) + +public: + enum Availability { Unknown, Available, Unavailable }; + Q_ENUM(Availability) + + ~Profile(); + + /** + * A human readable description. + */ + QString description() const; + + /** + * This object's priority. A higher number means higher priority. + */ + quint32 priority() const; + + /** + * Whether this object is available. + */ + Availability availability() const; + + quint32 sources() const; + + quint32 sinks() const; + +Q_SIGNALS: + /** + * Emitted when the description changed. + */ + void descriptionChanged(); + + /** + * Emitted when the priority changed. + */ + void priorityChanged(); + + /** + * Emitted when the availability changed. + */ + void availabilityChanged(); + +protected: + /** @private */ + explicit Profile(QObject *parent); + /** @private */ + class ProfilePrivate *const d; + + friend class Device; + friend class CardPrivate; + friend class PortPrivate; +}; + +} // PulseAudioQt + +#endif // PROFILE_H diff --git a/src/PulseAudioQt/profile_p.h b/src/PulseAudioQt/profile_p.h new file mode 100644 index 0000000..7fa1f9d --- /dev/null +++ b/src/PulseAudioQt/profile_p.h @@ -0,0 +1,59 @@ +/* + SPDX-FileCopyrightText: 2018 Nicolas Fella <nicolas.fella@gmx.de> + + SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL +*/ + +#pragma once + +#include "profile.h" +#include "pulseobject_p.h" + +namespace PulseAudioQt +{ +class ProfilePrivate +{ +public: + explicit ProfilePrivate(Profile *q); + virtual ~ProfilePrivate(); + + Profile *q; + + QString m_description; + quint32 m_priority = 0; + quint32 m_sources = 0; + quint32 m_sinks = 0; + Profile::Availability m_availability = Profile::Unknown; + + template<typename PAInfo> + void setInfo(const PAInfo *info) + { + setCommonInfo(info, info->available ? Profile::Available : Profile::Unavailable); + m_sources = info->n_sources; + m_sinks = info->n_sinks; + } + + template<typename PAInfo> + void setCommonInfo(const PAInfo *info, Profile::Availability newAvailability) + { + if (info->description) { + QString infoDescription = QString::fromUtf8(info->description); + if (m_description != infoDescription) { + m_description = infoDescription; + Q_EMIT q->descriptionChanged(); + } + } + if (m_priority != info->priority) { + m_priority = info->priority; + Q_EMIT q->priorityChanged(); + } + + if (m_availability != newAvailability) { + m_availability = newAvailability; + Q_EMIT q->availabilityChanged(); + } + + q->PulseObject::d->updatePulseObject(info); + } +}; +} diff --git a/src/PulseAudioQt/pulseaudioqt_export.h b/src/PulseAudioQt/pulseaudioqt_export.h new file mode 100644 index 0000000..53a6a24 --- /dev/null +++ b/src/PulseAudioQt/pulseaudioqt_export.h @@ -0,0 +1,192 @@ + +#ifndef PULSEAUDIOQT_EXPORT_H +#define PULSEAUDIOQT_EXPORT_H + +#ifdef PULSEAUDIOQT_STATIC_DEFINE +# define PULSEAUDIOQT_EXPORT +# define PULSEAUDIOQT_NO_EXPORT +#else +# ifndef PULSEAUDIOQT_EXPORT +# ifdef KF5PulseAudioQt_EXPORTS + /* We are building this library */ +# define PULSEAUDIOQT_EXPORT __attribute__((visibility("default"))) +# else + /* We are using this library */ +# define PULSEAUDIOQT_EXPORT __attribute__((visibility("default"))) +# endif +# endif + +# ifndef PULSEAUDIOQT_NO_EXPORT +# define PULSEAUDIOQT_NO_EXPORT __attribute__((visibility("hidden"))) +# endif +#endif + +#ifndef PULSEAUDIOQT_DECL_DEPRECATED +# define PULSEAUDIOQT_DECL_DEPRECATED __attribute__ ((__deprecated__)) +#endif + +#ifndef PULSEAUDIOQT_DECL_DEPRECATED_EXPORT +# define PULSEAUDIOQT_DECL_DEPRECATED_EXPORT PULSEAUDIOQT_EXPORT PULSEAUDIOQT_DECL_DEPRECATED +#endif + +#ifndef PULSEAUDIOQT_DECL_DEPRECATED_NO_EXPORT +# define PULSEAUDIOQT_DECL_DEPRECATED_NO_EXPORT PULSEAUDIOQT_NO_EXPORT PULSEAUDIOQT_DECL_DEPRECATED +#endif + +#if 0 /* DEFINE_NO_DEPRECATED */ +# ifndef PULSEAUDIOQT_NO_DEPRECATED +# define PULSEAUDIOQT_NO_DEPRECATED +# endif +#endif + +#define PULSEAUDIOQT_DECL_DEPRECATED_TEXT(text) __attribute__ ((__deprecated__(text))) + +#define ECM_GENERATEEXPORTHEADER_VERSION_VALUE(major, minor, patch) ((major<<16)|(minor<<8)|(patch)) + +/* Take any defaults from group settings */ +#if !defined(PULSEAUDIOQT_NO_DEPRECATED) && !defined(PULSEAUDIOQT_DISABLE_DEPRECATED_BEFORE_AND_AT) +# ifdef KF_NO_DEPRECATED +# define PULSEAUDIOQT_NO_DEPRECATED +# elif defined(KF_DISABLE_DEPRECATED_BEFORE_AND_AT) +# define PULSEAUDIOQT_DISABLE_DEPRECATED_BEFORE_AND_AT KF_DISABLE_DEPRECATED_BEFORE_AND_AT +# endif +#endif +#if !defined(PULSEAUDIOQT_DISABLE_DEPRECATED_BEFORE_AND_AT) && defined(KF_DISABLE_DEPRECATED_BEFORE_AND_AT) +# define PULSEAUDIOQT_DISABLE_DEPRECATED_BEFORE_AND_AT KF_DISABLE_DEPRECATED_BEFORE_AND_AT +#endif + +#if !defined(PULSEAUDIOQT_NO_DEPRECATED_WARNINGS) && !defined(PULSEAUDIOQT_DEPRECATED_WARNINGS_SINCE) +# ifdef KF_NO_DEPRECATED_WARNINGS +# define PULSEAUDIOQT_NO_DEPRECATED_WARNINGS +# elif defined(KF_DEPRECATED_WARNINGS_SINCE) +# define PULSEAUDIOQT_DEPRECATED_WARNINGS_SINCE KF_DEPRECATED_WARNINGS_SINCE +# endif +#endif +#if !defined(PULSEAUDIOQT_DEPRECATED_WARNINGS_SINCE) && defined(KF_DEPRECATED_WARNINGS_SINCE) +# define PULSEAUDIOQT_DEPRECATED_WARNINGS_SINCE KF_DEPRECATED_WARNINGS_SINCE +#endif + +#if defined(PULSEAUDIOQT_NO_DEPRECATED) +# undef PULSEAUDIOQT_DEPRECATED +# define PULSEAUDIOQT_DEPRECATED_EXPORT PULSEAUDIOQT_EXPORT +# define PULSEAUDIOQT_DEPRECATED_NO_EXPORT PULSEAUDIOQT_NO_EXPORT +#elif defined(PULSEAUDIOQT_NO_DEPRECATED_WARNINGS) +# define PULSEAUDIOQT_DEPRECATED +# define PULSEAUDIOQT_DEPRECATED_EXPORT PULSEAUDIOQT_EXPORT +# define PULSEAUDIOQT_DEPRECATED_NO_EXPORT PULSEAUDIOQT_NO_EXPORT +#else +# define PULSEAUDIOQT_DEPRECATED PULSEAUDIOQT_DECL_DEPRECATED +# define PULSEAUDIOQT_DEPRECATED_EXPORT PULSEAUDIOQT_DECL_DEPRECATED_EXPORT +# define PULSEAUDIOQT_DEPRECATED_NO_EXPORT PULSEAUDIOQT_DECL_DEPRECATED_NO_EXPORT +#endif + +/* No deprecated API had been removed from build */ +#define PULSEAUDIOQT_EXCLUDE_DEPRECATED_BEFORE_AND_AT 0 + +#define PULSEAUDIOQT_BUILD_DEPRECATED_SINCE(major, minor) 1 + +#ifdef PULSEAUDIOQT_NO_DEPRECATED +# define PULSEAUDIOQT_DISABLE_DEPRECATED_BEFORE_AND_AT 0x10300 +#endif +#ifdef PULSEAUDIOQT_NO_DEPRECATED_WARNINGS +# define PULSEAUDIOQT_DEPRECATED_WARNINGS_SINCE 0 +#endif + +#ifndef PULSEAUDIOQT_DEPRECATED_WARNINGS_SINCE +# ifdef PULSEAUDIOQT_DISABLE_DEPRECATED_BEFORE_AND_AT +# define PULSEAUDIOQT_DEPRECATED_WARNINGS_SINCE PULSEAUDIOQT_DISABLE_DEPRECATED_BEFORE_AND_AT +# else +# define PULSEAUDIOQT_DEPRECATED_WARNINGS_SINCE 0x10300 +# endif +#endif + +#ifndef PULSEAUDIOQT_DISABLE_DEPRECATED_BEFORE_AND_AT +# define PULSEAUDIOQT_DISABLE_DEPRECATED_BEFORE_AND_AT 0x10000 +#endif + +#ifdef PULSEAUDIOQT_DEPRECATED +# define PULSEAUDIOQT_ENABLE_DEPRECATED_SINCE(major, minor) (ECM_GENERATEEXPORTHEADER_VERSION_VALUE(major, minor, 0) > PULSEAUDIOQT_DISABLE_DEPRECATED_BEFORE_AND_AT) +#else +# define PULSEAUDIOQT_ENABLE_DEPRECATED_SINCE(major, minor) 0 +#endif + +#endif /* PULSEAUDIOQT_EXPORT_H */ + + +#ifndef ECM_GENERATEEXPORTHEADER_PULSEAUDIOQT_EXPORT_H +#define ECM_GENERATEEXPORTHEADER_PULSEAUDIOQT_EXPORT_H + + +#define PULSEAUDIOQT_DECL_DEPRECATED_TEXT(text) __attribute__ ((__deprecated__(text))) + +#define ECM_GENERATEEXPORTHEADER_VERSION_VALUE(major, minor, patch) ((major<<16)|(minor<<8)|(patch)) + +/* Take any defaults from group settings */ +#if !defined(PULSEAUDIOQT_NO_DEPRECATED) && !defined(PULSEAUDIOQT_DISABLE_DEPRECATED_BEFORE_AND_AT) +# ifdef KF_NO_DEPRECATED +# define PULSEAUDIOQT_NO_DEPRECATED +# elif defined(KF_DISABLE_DEPRECATED_BEFORE_AND_AT) +# define PULSEAUDIOQT_DISABLE_DEPRECATED_BEFORE_AND_AT KF_DISABLE_DEPRECATED_BEFORE_AND_AT +# endif +#endif +#if !defined(PULSEAUDIOQT_DISABLE_DEPRECATED_BEFORE_AND_AT) && defined(KF_DISABLE_DEPRECATED_BEFORE_AND_AT) +# define PULSEAUDIOQT_DISABLE_DEPRECATED_BEFORE_AND_AT KF_DISABLE_DEPRECATED_BEFORE_AND_AT +#endif + +#if !defined(PULSEAUDIOQT_NO_DEPRECATED_WARNINGS) && !defined(PULSEAUDIOQT_DEPRECATED_WARNINGS_SINCE) +# ifdef KF_NO_DEPRECATED_WARNINGS +# define PULSEAUDIOQT_NO_DEPRECATED_WARNINGS +# elif defined(KF_DEPRECATED_WARNINGS_SINCE) +# define PULSEAUDIOQT_DEPRECATED_WARNINGS_SINCE KF_DEPRECATED_WARNINGS_SINCE +# endif +#endif +#if !defined(PULSEAUDIOQT_DEPRECATED_WARNINGS_SINCE) && defined(KF_DEPRECATED_WARNINGS_SINCE) +# define PULSEAUDIOQT_DEPRECATED_WARNINGS_SINCE KF_DEPRECATED_WARNINGS_SINCE +#endif + +#if defined(PULSEAUDIOQT_NO_DEPRECATED) +# undef PULSEAUDIOQT_DEPRECATED +# define PULSEAUDIOQT_DEPRECATED_EXPORT PULSEAUDIOQT_EXPORT +# define PULSEAUDIOQT_DEPRECATED_NO_EXPORT PULSEAUDIOQT_NO_EXPORT +#elif defined(PULSEAUDIOQT_NO_DEPRECATED_WARNINGS) +# define PULSEAUDIOQT_DEPRECATED +# define PULSEAUDIOQT_DEPRECATED_EXPORT PULSEAUDIOQT_EXPORT +# define PULSEAUDIOQT_DEPRECATED_NO_EXPORT PULSEAUDIOQT_NO_EXPORT +#else +# define PULSEAUDIOQT_DEPRECATED PULSEAUDIOQT_DECL_DEPRECATED +# define PULSEAUDIOQT_DEPRECATED_EXPORT PULSEAUDIOQT_DECL_DEPRECATED_EXPORT +# define PULSEAUDIOQT_DEPRECATED_NO_EXPORT PULSEAUDIOQT_DECL_DEPRECATED_NO_EXPORT +#endif + +/* No deprecated API had been removed from build */ +#define PULSEAUDIOQT_EXCLUDE_DEPRECATED_BEFORE_AND_AT 0 + +#define PULSEAUDIOQT_BUILD_DEPRECATED_SINCE(major, minor) 1 + +#ifdef PULSEAUDIOQT_NO_DEPRECATED +# define PULSEAUDIOQT_DISABLE_DEPRECATED_BEFORE_AND_AT 0x10300 +#endif +#ifdef PULSEAUDIOQT_NO_DEPRECATED_WARNINGS +# define PULSEAUDIOQT_DEPRECATED_WARNINGS_SINCE 0 +#endif + +#ifndef PULSEAUDIOQT_DEPRECATED_WARNINGS_SINCE +# ifdef PULSEAUDIOQT_DISABLE_DEPRECATED_BEFORE_AND_AT +# define PULSEAUDIOQT_DEPRECATED_WARNINGS_SINCE PULSEAUDIOQT_DISABLE_DEPRECATED_BEFORE_AND_AT +# else +# define PULSEAUDIOQT_DEPRECATED_WARNINGS_SINCE 0x10300 +# endif +#endif + +#ifndef PULSEAUDIOQT_DISABLE_DEPRECATED_BEFORE_AND_AT +# define PULSEAUDIOQT_DISABLE_DEPRECATED_BEFORE_AND_AT 0x10000 +#endif + +#ifdef PULSEAUDIOQT_DEPRECATED +# define PULSEAUDIOQT_ENABLE_DEPRECATED_SINCE(major, minor) (ECM_GENERATEEXPORTHEADER_VERSION_VALUE(major, minor, 0) > PULSEAUDIOQT_DISABLE_DEPRECATED_BEFORE_AND_AT) +#else +# define PULSEAUDIOQT_ENABLE_DEPRECATED_SINCE(major, minor) 0 +#endif + + +#endif /* ECM_GENERATEEXPORTHEADER_PULSEAUDIOQT_EXPORT_H */ diff --git a/src/PulseAudioQt/pulseobject.cpp b/src/PulseAudioQt/pulseobject.cpp new file mode 100644 index 0000000..ac9b975 --- /dev/null +++ b/src/PulseAudioQt/pulseobject.cpp @@ -0,0 +1,86 @@ +/* + SPDX-FileCopyrightText: 2014-2015 Harald Sitter <sitter@kde.org> + + SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL +*/ + +#include "pulseobject.h" +#include "pulseobject_p.h" + +#include "context.h" + +#include <QIcon> + +namespace PulseAudioQt +{ +PulseObject::PulseObject(QObject *parent) + : QObject(parent) + , d(new PulseObjectPrivate(this)) +{ +} + +PulseObject::~PulseObject() +{ + delete d; +} + +PulseObjectPrivate::PulseObjectPrivate(PulseObject *q) + : q(q) +{ +} + +PulseObjectPrivate::~PulseObjectPrivate() +{ +} + +QString PulseObject::name() const +{ + return d->m_name; +} + +QString PulseObject::iconName() const +{ + QString name = d->m_properties.value(QStringLiteral("device.icon_name")).toString(); + if (!name.isEmpty() && QIcon::hasThemeIcon(name)) { + return name; + } + + name = d->m_properties.value(QStringLiteral("media.icon_name")).toString(); + if (!name.isEmpty() && QIcon::hasThemeIcon(name)) { + return name; + } + + name = d->m_properties.value(QStringLiteral("window.icon_name")).toString(); + if (!name.isEmpty() && QIcon::hasThemeIcon(name)) { + return name; + } + + name = d->m_properties.value(QStringLiteral("application.icon_name")).toString(); + if (!name.isEmpty() && QIcon::hasThemeIcon(name)) { + return name; + } + + name = d->m_properties.value(QStringLiteral("application.process.binary")).toString(); + if (!name.isEmpty() && QIcon::hasThemeIcon(name)) { + return name; + } + + name = d->m_properties.value(QStringLiteral("application.name")).toString(); + if (!name.isEmpty() && QIcon::hasThemeIcon(name)) { + return name; + } + + name = property("name").toString(); + if (!name.isEmpty() && QIcon::hasThemeIcon(name)) { + return name; + } + + return QString(); +} + +QVariantMap PulseObject::properties() const +{ + return d->m_properties; +} + +} // PulseAudioQt diff --git a/src/PulseAudioQt/pulseobject.h b/src/PulseAudioQt/pulseobject.h new file mode 100644 index 0000000..4d5b494 --- /dev/null +++ b/src/PulseAudioQt/pulseobject.h @@ -0,0 +1,76 @@ +/* + SPDX-FileCopyrightText: 2014-2015 Harald Sitter <sitter@kde.org> + + SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL +*/ + +#ifndef PULSEOBJECT_H +#define PULSEOBJECT_H + +#include <QObject> + +#include "pulseaudioqt_export.h" + +namespace PulseAudioQt +{ +class Context; + +template<typename Type, typename PAInfo> +class MapBase; + +/** + * Base class for most PulseAudio objects. + */ +class PULSEAUDIOQT_EXPORT PulseObject : public QObject +{ + Q_OBJECT + Q_PROPERTY(QString name READ name NOTIFY nameChanged) + Q_PROPERTY(QString iconName READ iconName CONSTANT) + Q_PROPERTY(QVariantMap properties READ properties NOTIFY propertiesChanged) + +public: + ~PulseObject(); + + QString name() const; + + /** + * A freedesktop.org icon name that fits this object. + */ + QString iconName() const; + + /** + * A map of properties associated with this object. + * The set of available properties depends on the type of object. + */ + QVariantMap properties() const; + +Q_SIGNALS: + /** + * Emitted when any of the \ref properties changed. + */ + void propertiesChanged(); + + void nameChanged(); + +protected: + /** @private */ + explicit PulseObject(QObject *parent); + + /** @private */ + class PulseObjectPrivate *const d; + +private: + // Ensure that we get properly parented. + PulseObject(); + friend class IndexedPulseObjectPrivate; + friend class ClientPrivate; + friend class CardPrivate; + friend class ModulePrivate; + friend class VolumeObjectPrivate; + friend class ProfilePrivate; + friend class StreamRestorePrivate; +}; + +} // PulseAudioQt + +#endif // PULSEOBJECT_H diff --git a/src/PulseAudioQt/pulseobject_p.h b/src/PulseAudioQt/pulseobject_p.h new file mode 100644 index 0000000..946b66c --- /dev/null +++ b/src/PulseAudioQt/pulseobject_p.h @@ -0,0 +1,57 @@ +/* + SPDX-FileCopyrightText: 2018 Nicolas Fella <nicolas.fella@gmx.de> + + SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL +*/ +#ifndef PULSEOBJECT_P_H +#define PULSEOBJECT_P_H + +#include "debug.h" + +#include <QVariantMap> + +#include <pulse/introspect.h> + +#include "context.h" + +namespace PulseAudioQt +{ +class PulseObjectPrivate +{ +public: + explicit PulseObjectPrivate(PulseObject *q); + virtual ~PulseObjectPrivate(); + + PulseObject *q; + QVariantMap m_properties; + QString m_name; + + template<typename PAInfo> + void updatePulseObject(PAInfo *info) + { + if (m_name != QString::fromUtf8(info->name)) { + m_name = QString::fromUtf8(info->name); + Q_EMIT q->nameChanged(); + } + } + + template<typename PAInfo> + void updateProperties(PAInfo *info) + { + m_properties.clear(); + void *it = nullptr; + while (const char *key = pa_proplist_iterate(info->proplist, &it)) { + Q_ASSERT(key); + const char *value = pa_proplist_gets(info->proplist, key); + if (!value) { + qDebug() << "property" << key << "not a string"; + continue; + } + Q_ASSERT(value); + m_properties.insert(QString::fromUtf8(key), QString::fromUtf8(value)); + } + Q_EMIT q->propertiesChanged(); + } +}; +} +#endif diff --git a/src/PulseAudioQt/server.cpp b/src/PulseAudioQt/server.cpp new file mode 100644 index 0000000..c0b464b --- /dev/null +++ b/src/PulseAudioQt/server.cpp @@ -0,0 +1,137 @@ +/* + SPDX-FileCopyrightText: 2016 David Rosca <nowrep@gmail.com> + + SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL +*/ + +#include "server.h" +#include "server_p.h" + +#include "context.h" +#include "context_p.h" +#include "debug.h" +#include "sink.h" +#include "source.h" + +namespace PulseAudioQt +{ +Server::Server(Context *context) + : QObject(context) + , d(new ServerPrivate(this)) +{ + Q_ASSERT(context); + + connect(&context->d->m_sinks, &MapBaseQObject::added, this, &Server::updateDefaultDevices); + connect(&context->d->m_sinks, &MapBaseQObject::removed, this, &Server::updateDefaultDevices); + connect(&context->d->m_sources, &MapBaseQObject::added, this, &Server::updateDefaultDevices); + connect(&context->d->m_sources, &MapBaseQObject::removed, this, &Server::updateDefaultDevices); +} + +Server::~Server() +{ +} + +ServerPrivate::ServerPrivate(Server *q) + : q(q) + , m_defaultSink(nullptr) + , m_defaultSource(nullptr) +{ +} + +ServerPrivate::~ServerPrivate() +{ +} + +Sink *Server::defaultSink() const +{ + return d->m_defaultSink; +} + +void Server::setDefaultSink(Sink *sink) +{ + Q_ASSERT(sink); + Context::instance()->setDefaultSink(sink->name()); +} + +Source *Server::defaultSource() const +{ + return d->m_defaultSource; +} + +void Server::setDefaultSource(Source *source) +{ + Q_ASSERT(source); + Context::instance()->setDefaultSource(source->name()); +} + +void Server::reset() +{ + if (d->m_defaultSink) { + d->m_defaultSink = nullptr; + Q_EMIT defaultSinkChanged(d->m_defaultSink); + } + + if (d->m_defaultSource) { + d->m_defaultSource = nullptr; + Q_EMIT defaultSourceChanged(d->m_defaultSource); + } +} + +void ServerPrivate::update(const pa_server_info *info) +{ + m_defaultSinkName = QString::fromUtf8(info->default_sink_name); + m_defaultSourceName = QString::fromUtf8(info->default_source_name); + + const bool isPw = QString::fromUtf8(info->server_name).contains("PipeWire"); + + if (isPw != m_isPipeWire) { + m_isPipeWire = isPw; + Q_EMIT q->isPipeWireChanged(); + } + + q->updateDefaultDevices(); +} + +/** @private */ +template<typename Type, typename Vector> +static Type *findByName(const Vector &vector, const QString &name) +{ + Type *out = nullptr; + if (name.isEmpty()) { + return out; + } + for (Type *t : vector) { + out = t; + if (out->name() == name) { + return out; + } + } + qWarning() << "No object for name" << name; + return out; +} + +void Server::updateDefaultDevices() +{ + Sink *sink = findByName<Sink>(Context::instance()->d->m_sinks.data(), d->m_defaultSinkName); + Source *source = findByName<Source>(Context::instance()->d->m_sources.data(), d->m_defaultSourceName); + + if (d->m_defaultSink != sink) { + qDebug() << "Default sink changed" << sink; + d->m_defaultSink = sink; + Q_EMIT defaultSinkChanged(d->m_defaultSink); + } + + if (d->m_defaultSource != source) { + qDebug() << "Default source changed" << source; + d->m_defaultSource = source; + Q_EMIT defaultSourceChanged(d->m_defaultSource); + } +} + +bool Server::isPipeWire() const +{ + return d->m_isPipeWire; +} + + +} // PulseAudioQt diff --git a/src/PulseAudioQt/server.h b/src/PulseAudioQt/server.h new file mode 100644 index 0000000..f388f5c --- /dev/null +++ b/src/PulseAudioQt/server.h @@ -0,0 +1,57 @@ +/* + SPDX-FileCopyrightText: 2016 David Rosca <nowrep@gmail.com> + + SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL +*/ + +#ifndef SERVER_H +#define SERVER_H + +#include "pulseaudioqt_export.h" +#include <QObject> + +namespace PulseAudioQt +{ +class Sink; +class Source; +class Context; + +class PULSEAUDIOQT_EXPORT Server : public QObject +{ + Q_OBJECT + +public: + ~Server(); + + Sink *defaultSink() const; + void setDefaultSink(Sink *sink); + + Source *defaultSource() const; + void setDefaultSource(Source *source); + + /** + * Whether PulseAudio is provided via pipewire-pulse. + */ + bool isPipeWire() const; + +Q_SIGNALS: + void defaultSinkChanged(PulseAudioQt::Sink *sink); + void defaultSourceChanged(PulseAudioQt::Source *source); + void isPipeWireChanged(); + +private: + explicit Server(Context *context); + + void reset(); + void updateDefaultDevices(); + + class ServerPrivate *const d; + + friend class ServerPrivate; + friend class Context; + friend class ContextPrivate; +}; + +} // PulseAudioQt + +#endif // CONTEXT_H diff --git a/src/PulseAudioQt/server_p.h b/src/PulseAudioQt/server_p.h new file mode 100644 index 0000000..83550b4 --- /dev/null +++ b/src/PulseAudioQt/server_p.h @@ -0,0 +1,28 @@ +/* + SPDX-FileCopyrightText: 2018 Nicolas Fella <nicolas.fella@gmx.de> + + SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL +*/ +#pragma once +#include "server.h" +#include <pulse/introspect.h> + +namespace PulseAudioQt +{ +class ServerPrivate +{ +public: + explicit ServerPrivate(Server *q); + virtual ~ServerPrivate(); + + Server *q; + + QString m_defaultSinkName; + QString m_defaultSourceName; + Sink *m_defaultSink; + Source *m_defaultSource; + bool m_isPipeWire = false; + + void update(const pa_server_info *info); +}; +} diff --git a/src/PulseAudioQt/sink.cpp b/src/PulseAudioQt/sink.cpp new file mode 100644 index 0000000..6b36762 --- /dev/null +++ b/src/PulseAudioQt/sink.cpp @@ -0,0 +1,93 @@ +/* + SPDX-FileCopyrightText: 2014-2015 Harald Sitter <sitter@kde.org> + + SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL +*/ + +#include "sink.h" +#include "sink_p.h" + +#include "context.h" +#include "context_p.h" +#include "server.h" + +#include "device_p.h" +#include "volumeobject_p.h" + +namespace PulseAudioQt +{ +Sink::Sink(QObject *parent) + : Device(parent) + , d(new SinkPrivate(this)) +{ + connect(Context::instance()->server(), &Server::defaultSinkChanged, this, &Sink::defaultChanged); +} + +SinkPrivate::SinkPrivate(Sink *q) + : q(q) +{ +} + +Sink::~Sink() +{ + delete d; +} + +void SinkPrivate::update(const pa_sink_info *info) +{ + q->Device::d->updateDevice(info); + + if (m_monitorIndex != info->monitor_source) { + m_monitorIndex = info->monitor_source; + Q_EMIT q->monitorIndexChanged(); + } +} + +void Sink::setVolume(qint64 volume) +{ + Context::instance()->d->setGenericVolume(index(), -1, volume, VolumeObject::d->cvolume(), &pa_context_set_sink_volume_by_index); +} + +void Sink::setMuted(bool muted) +{ + Context::instance()->d->setGenericMute(index(), muted, &pa_context_set_sink_mute_by_index); +} + +void Sink::setActivePortIndex(quint32 port_index) +{ + Port *port = qobject_cast<Port *>(ports().at(port_index)); + if (!port) { + qWarning() << "invalid port set request" << port_index; + return; + } + Context::instance()->d->setGenericPort(index(), port->name(), &pa_context_set_sink_port_by_index); +} + +void Sink::setChannelVolume(int channel, qint64 volume) +{ + Context::instance()->d->setGenericVolume(index(), channel, volume, VolumeObject::d->cvolume(), &pa_context_set_sink_volume_by_index); +} + +bool Sink::isDefault() const +{ + return Context::instance()->server()->defaultSink() == this; +} + +void Sink::setDefault(bool enable) +{ + if (!isDefault() && enable) { + Context::instance()->server()->setDefaultSink(this); + } +} + +quint32 Sink::monitorIndex() const +{ + return d->m_monitorIndex; +} + +void Sink::setChannelVolumes(const QVector<qint64> &channelVolumes) +{ + Context::instance()->d->setGenericVolumes(index(), channelVolumes, VolumeObject::d->m_volume, &pa_context_set_sink_volume_by_index); +} + +} // PulseAudioQt diff --git a/src/PulseAudioQt/sink.h b/src/PulseAudioQt/sink.h new file mode 100644 index 0000000..9551763 --- /dev/null +++ b/src/PulseAudioQt/sink.h @@ -0,0 +1,57 @@ +/* + SPDX-FileCopyrightText: 2014-2015 Harald Sitter <sitter@kde.org> + + SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL +*/ + +#ifndef SINK_H +#define SINK_H + +#include "device.h" + +struct pa_sink_info; + +namespace PulseAudioQt +{ +/** + * A PulseAudio sink. This class is based on https://freedesktop.org/software/pulseaudio/doxygen/structpa__sink__info.html. + */ +class PULSEAUDIOQT_EXPORT Sink : public Device +{ + Q_OBJECT + +public: + ~Sink(); + + void setVolume(qint64 volume) override; + + void setMuted(bool muted) override; + + void setActivePortIndex(quint32 port_index) override; + + void setChannelVolume(int channel, qint64 volume) override; + + bool isDefault() const override; + + void setDefault(bool enable) override; + + void setChannelVolumes(const QVector<qint64> &channelVolumes) override; + + /** + * Index of the monitor source for this sink. + */ + quint32 monitorIndex() const; + +Q_SIGNALS: + void monitorIndexChanged(); + +private: + explicit Sink(QObject *parent); + + class SinkPrivate *const d; + friend class MapBase<Sink, pa_sink_info>; +}; + +} // PulseAudioQt + +#endif // SINK_H diff --git a/src/PulseAudioQt/sink_p.h b/src/PulseAudioQt/sink_p.h new file mode 100644 index 0000000..2b8efd2 --- /dev/null +++ b/src/PulseAudioQt/sink_p.h @@ -0,0 +1,25 @@ +/* + SPDX-FileCopyrightText: 2018 Nicolas Fella <nicolas.fella@gmx.de> + + SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL +*/ +#ifndef SINK_P_H +#define SINK_P_H + +#include "pulse/introspect.h" +#include "sink.h" + +namespace PulseAudioQt +{ +class SinkPrivate +{ +public: + explicit SinkPrivate(Sink *q); + + void update(const pa_sink_info *info); + + Sink *q; + quint32 m_monitorIndex = -1; +}; +} +#endif diff --git a/src/PulseAudioQt/sinkinput.cpp b/src/PulseAudioQt/sinkinput.cpp new file mode 100644 index 0000000..235553f --- /dev/null +++ b/src/PulseAudioQt/sinkinput.cpp @@ -0,0 +1,66 @@ +/* + SPDX-FileCopyrightText: 2014-2015 Harald Sitter <sitter@kde.org> + + SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL +*/ + +#include "sinkinput.h" +#include "sinkinput_p.h" + +#include "context.h" +#include "context_p.h" +#include "stream_p.h" + +namespace PulseAudioQt +{ +SinkInput::SinkInput(QObject *parent) + : Stream(parent) + , d(new SinkInputPrivate(this)) +{ +} + +SinkInputPrivate::SinkInputPrivate(SinkInput *q) + : q(q) +{ +} + +SinkInput::~SinkInput() +{ + delete d; +} + +void SinkInputPrivate::update(const pa_sink_input_info *info) +{ + q->Stream::d->updateStream(info); + if (q->Stream::d->m_deviceIndex != info->sink) { + q->Stream::d->m_deviceIndex = info->sink; + Q_EMIT q->deviceIndexChanged(); + } +} + +void SinkInput::setDeviceIndex(quint32 deviceIndex) +{ + Context::instance()->d->setGenericDeviceForStream(index(), deviceIndex, &pa_context_move_sink_input_by_index); +} + +void SinkInput::setVolume(qint64 volume) +{ + Context::instance()->d->setGenericVolume(index(), -1, volume, VolumeObject::d->cvolume(), &pa_context_set_sink_input_volume); +} + +void SinkInput::setMuted(bool muted) +{ + Context::instance()->d->setGenericMute(index(), muted, &pa_context_set_sink_input_mute); +} + +void SinkInput::setChannelVolume(int channel, qint64 volume) +{ + Context::instance()->d->setGenericVolume(index(), channel, volume, VolumeObject::d->cvolume(), &pa_context_set_sink_input_volume); +} + +void SinkInput::setChannelVolumes(const QVector<qint64> &channelVolumes) +{ + Context::instance()->d->setGenericVolumes(index(), channelVolumes, VolumeObject::d->m_volume, &pa_context_set_sink_input_volume); +} + +} // PulseAudioQt diff --git a/src/PulseAudioQt/sinkinput.h b/src/PulseAudioQt/sinkinput.h new file mode 100644 index 0000000..85dce4e --- /dev/null +++ b/src/PulseAudioQt/sinkinput.h @@ -0,0 +1,41 @@ +/* + SPDX-FileCopyrightText: 2014-2015 Harald Sitter <sitter@kde.org> + + SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL +*/ + +#ifndef SINKINPUT_H +#define SINKINPUT_H + +#include "stream.h" + +struct pa_sink_input_info; + +namespace PulseAudioQt +{ +/** + * A SinkInput stream. + */ +class PULSEAUDIOQT_EXPORT SinkInput : public Stream +{ + Q_OBJECT + +public: + ~SinkInput(); + + void setVolume(qint64 volume) override; + void setMuted(bool muted) override; + void setChannelVolume(int channel, qint64 volume) override; + void setDeviceIndex(quint32 deviceIndex) override; + void setChannelVolumes(const QVector<qint64> &channelVolumes) override; + +private: + SinkInput(QObject *parent); + + class SinkInputPrivate *const d; + friend class MapBase<SinkInput, pa_sink_input_info>; +}; + +} // PulseAudioQt + +#endif // SINKINPUT_H diff --git a/src/PulseAudioQt/sinkinput_p.h b/src/PulseAudioQt/sinkinput_p.h new file mode 100644 index 0000000..f7748c9 --- /dev/null +++ b/src/PulseAudioQt/sinkinput_p.h @@ -0,0 +1,25 @@ +/* + SPDX-FileCopyrightText: 2018 Nicolas Fella <nicolas.fella@gmx.de> + + SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL +*/ +#ifndef SINKINPUT_P_H +#define SINKINPUT_P_H + +#include "sinkinput.h" +#include <pulse/introspect.h> + +namespace PulseAudioQt +{ +class SinkInputPrivate +{ +public: + explicit SinkInputPrivate(SinkInput *q); + + SinkInput *q; + + void update(const pa_sink_input_info *info); +}; +} + +#endif diff --git a/src/PulseAudioQt/source.cpp b/src/PulseAudioQt/source.cpp new file mode 100644 index 0000000..e6a34c8 --- /dev/null +++ b/src/PulseAudioQt/source.cpp @@ -0,0 +1,81 @@ +/* + SPDX-FileCopyrightText: 2014-2015 Harald Sitter <sitter@kde.org> + + SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL +*/ + +#include "source.h" +#include "source_p.h" + +#include "context.h" +#include "context_p.h" +#include "device_p.h" +#include "server.h" +#include "volumeobject_p.h" + +namespace PulseAudioQt +{ +Source::Source(QObject *parent) + : Device(parent) + , d(new SourcePrivate(this)) +{ + connect(Context::instance()->server(), &Server::defaultSourceChanged, this, &Source::defaultChanged); +} + +SourcePrivate::SourcePrivate(Source *q) + : q(q) +{ +} + +void SourcePrivate::update(const pa_source_info *info) +{ + q->Device::d->updateDevice(info); +} + +void Source::setVolume(qint64 volume) +{ + Context::instance()->d->setGenericVolume(index(), -1, volume, VolumeObject::d->cvolume(), &pa_context_set_source_volume_by_index); +} + +void Source::setMuted(bool muted) +{ + Context::instance()->d->setGenericMute(index(), muted, &pa_context_set_source_mute_by_index); +} + +void Source::setActivePortIndex(quint32 port_index) +{ + Port *port = qobject_cast<Port *>(ports().at(port_index)); + if (!port) { + qWarning() << "invalid port set request" << port_index; + return; + } + Context::instance()->d->setGenericPort(index(), port->name(), &pa_context_set_source_port_by_index); +} + +void Source::setChannelVolume(int channel, qint64 volume) +{ + Context::instance()->d->setGenericVolume(index(), channel, volume, VolumeObject::d->cvolume(), &pa_context_set_source_volume_by_index); +} + +bool Source::isDefault() const +{ + return Context::instance()->server()->defaultSource() == this; +} + +void Source::setDefault(bool enable) +{ + if (!isDefault() && enable) { + Context::instance()->server()->setDefaultSource(this); + } +} + +void Source::setChannelVolumes(const QVector<qint64> &volumes) +{ + Context::instance()->d->setGenericVolumes(index(), volumes, VolumeObject::d->m_volume, &pa_context_set_source_volume_by_index); +} + +Source::~Source() +{ + delete d; +} +} // PulseAudioQt diff --git a/src/PulseAudioQt/source.h b/src/PulseAudioQt/source.h new file mode 100644 index 0000000..17c4cb9 --- /dev/null +++ b/src/PulseAudioQt/source.h @@ -0,0 +1,44 @@ +/* + SPDX-FileCopyrightText: 2014-2015 Harald Sitter <sitter@kde.org> + + SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL +*/ + +#ifndef SOURCE_H +#define SOURCE_H + +#include "device.h" + +struct pa_source_info; + +namespace PulseAudioQt +{ +/** + * A PulseAudio source. This class is based on https://freedesktop.org/software/pulseaudio/doxygen/structpa__source__info.html. + */ +class PULSEAUDIOQT_EXPORT Source : public Device +{ + Q_OBJECT + +public: + ~Source(); + + void setVolume(qint64 volume) override; + void setMuted(bool muted) override; + void setActivePortIndex(quint32 port_index) override; + void setChannelVolume(int channel, qint64 volume) override; + void setChannelVolumes(const QVector<qint64> &volumes) override; + + bool isDefault() const override; + void setDefault(bool enable) override; + +private: + explicit Source(QObject *parent); + + class SourcePrivate *const d; + friend class MapBase<Source, pa_source_info>; +}; + +} // PulseAudioQt + +#endif // SOURCE_H diff --git a/src/PulseAudioQt/source_p.h b/src/PulseAudioQt/source_p.h new file mode 100644 index 0000000..46becdf --- /dev/null +++ b/src/PulseAudioQt/source_p.h @@ -0,0 +1,24 @@ +/* + SPDX-FileCopyrightText: 2018 Nicolas Fella <nicolas.fella@gmx.de> + + SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL +*/ +#ifndef SOURCE_P_H +#define SOURCE_P_H + +#include "source.h" +#include <pulse/introspect.h> + +namespace PulseAudioQt +{ +class SourcePrivate +{ +public: + explicit SourcePrivate(Source *q); + + void update(const pa_source_info *info); + + Source *q; +}; +} +#endif diff --git a/src/PulseAudioQt/sourceoutput.cpp b/src/PulseAudioQt/sourceoutput.cpp new file mode 100644 index 0000000..1420da3 --- /dev/null +++ b/src/PulseAudioQt/sourceoutput.cpp @@ -0,0 +1,65 @@ +/* + SPDX-FileCopyrightText: 2014-2015 Harald Sitter <sitter@kde.org> + + SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL +*/ + +#include "sourceoutput.h" +#include "sourceoutput_p.h" + +#include "context.h" +#include "context_p.h" +#include "stream_p.h" + +namespace PulseAudioQt +{ +SourceOutput::SourceOutput(QObject *parent) + : Stream(parent) + , d(new SourceOutputPrivate(this)) +{ +} + +SourceOutput::~SourceOutput() +{ +} + +SourceOutputPrivate::SourceOutputPrivate(SourceOutput *q) + : q(q) +{ +} + +void SourceOutputPrivate::update(const pa_source_output_info *info) +{ + q->Stream::d->updateStream(info); + if (q->Stream::d->m_deviceIndex != info->source) { + q->Stream::d->m_deviceIndex = info->source; + Q_EMIT q->deviceIndexChanged(); + } +} + +void SourceOutput::setDeviceIndex(quint32 deviceIndex) +{ + Context::instance()->d->setGenericDeviceForStream(index(), deviceIndex, &pa_context_move_source_output_by_index); +} + +void SourceOutput::setVolume(qint64 volume) +{ + Context::instance()->d->setGenericVolume(index(), -1, volume, VolumeObject::d->cvolume(), &pa_context_set_source_output_volume); +} + +void SourceOutput::setMuted(bool muted) +{ + Context::instance()->d->setGenericMute(index(), muted, &pa_context_set_source_output_mute); +} + +void SourceOutput::setChannelVolume(int channel, qint64 volume) +{ + Context::instance()->d->setGenericVolume(index(), channel, volume, VolumeObject::d->cvolume(), &pa_context_set_source_output_volume); +} + +void SourceOutput::setChannelVolumes(const QVector<qint64> &channelVolumes) +{ + Context::instance()->d->setGenericVolumes(index(), channelVolumes, VolumeObject::d->m_volume, &pa_context_set_source_output_volume); +} + +} // PulseAudioQt diff --git a/src/PulseAudioQt/sourceoutput.h b/src/PulseAudioQt/sourceoutput.h new file mode 100644 index 0000000..758f80a --- /dev/null +++ b/src/PulseAudioQt/sourceoutput.h @@ -0,0 +1,41 @@ +/* + SPDX-FileCopyrightText: 2014-2015 Harald Sitter <sitter@kde.org> + + SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL +*/ + +#ifndef SOURCEOUTPUT_H +#define SOURCEOUTPUT_H + +#include "stream.h" + +struct pa_source_output_info; + +namespace PulseAudioQt +{ +/** + * A SourceOutput Stream. + */ +class PULSEAUDIOQT_EXPORT SourceOutput : public Stream +{ + Q_OBJECT + +public: + ~SourceOutput(); + + void setVolume(qint64 volume) override; + void setMuted(bool muted) override; + void setChannelVolume(int channel, qint64 volume) override; + void setDeviceIndex(quint32 deviceIndex) override; + void setChannelVolumes(const QVector<qint64> &channelVolumes) override; + +private: + explicit SourceOutput(QObject *parent); + + class SourceOutputPrivate *const d; + friend class MapBase<SourceOutput, pa_source_output_info>; +}; + +} // PulseAudioQt + +#endif // SOURCEOUTPUT_H diff --git a/src/PulseAudioQt/sourceoutput_p.h b/src/PulseAudioQt/sourceoutput_p.h new file mode 100644 index 0000000..02d5d5a --- /dev/null +++ b/src/PulseAudioQt/sourceoutput_p.h @@ -0,0 +1,26 @@ +/* + SPDX-FileCopyrightText: 2018 Nicolas Fella <nicolas.fella@gmx.de> + + SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL +*/ +#ifndef SOURCEOUTPUT_P_H +#define SOURCEOUTPUT_P_H + +#include "sourceoutput.h" +#include <pulse/introspect.h> + +namespace PulseAudioQt +{ +class SourceOutputPrivate +{ +public: + explicit SourceOutputPrivate(SourceOutput *q); + + void update(const pa_source_output_info *info); + + SourceOutput *q; +}; + +} + +#endif diff --git a/src/PulseAudioQt/stream.cpp b/src/PulseAudioQt/stream.cpp new file mode 100644 index 0000000..8a392f0 --- /dev/null +++ b/src/PulseAudioQt/stream.cpp @@ -0,0 +1,60 @@ +/* + SPDX-FileCopyrightText: 2014-2015 Harald Sitter <sitter@kde.org> + + SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL +*/ + +#include "stream.h" +#include "context_p.h" +#include "stream_p.h" +#include "volumeobject_p.h" + +namespace PulseAudioQt +{ +Stream::Stream(QObject *parent) + : VolumeObject(parent) + , d(new StreamPrivate(this)) +{ + VolumeObject::d->m_volumeWritable = false; +} + +Stream::~Stream() +{ + delete d; +} + +StreamPrivate::StreamPrivate(Stream *q) + : q(q) +{ +} + +StreamPrivate::~StreamPrivate() +{ +} + +Client *Stream::client() const +{ + return Context::instance()->d->m_clients.data().value(d->m_clientIndex, nullptr); +} + +bool Stream::isVirtualStream() const +{ + return d->m_virtualStream; +} + +quint32 Stream::deviceIndex() const +{ + return d->m_deviceIndex; +} + +bool Stream::isCorked() const +{ + return d->m_corked; +} + +bool Stream::hasVolume() const +{ + return d->m_hasVolume; +} + +} // PulseAudioQt diff --git a/src/PulseAudioQt/stream.h b/src/PulseAudioQt/stream.h new file mode 100644 index 0000000..c48a429 --- /dev/null +++ b/src/PulseAudioQt/stream.h @@ -0,0 +1,60 @@ +/* + SPDX-FileCopyrightText: 2014-2015 Harald Sitter <sitter@kde.org> + + SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL +*/ + +#ifndef STREAM_H +#define STREAM_H + +#include <QString> + +#include "volumeobject.h" + +// Properties need fully qualified classes even with pointers. +#include "client.h" + +namespace PulseAudioQt +{ +class StreamPrivate; + +class PULSEAUDIOQT_EXPORT Stream : public VolumeObject +{ + Q_OBJECT + Q_PROPERTY(PulseAudioQt::Client *client READ client NOTIFY clientChanged) + Q_PROPERTY(bool virtualStream READ isVirtualStream NOTIFY virtualStreamChanged) + Q_PROPERTY(quint32 deviceIndex READ deviceIndex WRITE setDeviceIndex NOTIFY deviceIndexChanged) + Q_PROPERTY(bool corked READ isCorked NOTIFY corkedChanged) + Q_PROPERTY(bool hasVolume READ hasVolume NOTIFY hasVolumeChanged) + +public: + ~Stream(); + + Client *client() const; + bool isVirtualStream() const; + quint32 deviceIndex() const; + bool isCorked() const; + bool hasVolume() const; + + virtual void setDeviceIndex(quint32 deviceIndex) = 0; + +Q_SIGNALS: + void clientChanged(); + void virtualStreamChanged(); + void deviceIndexChanged(); + void corkedChanged(); + void hasVolumeChanged(); + +protected: + /** @private */ + explicit Stream(QObject *parent); + /** @private */ + class StreamPrivate *const d; + + friend class SinkInputPrivate; + friend class SourceOutputPrivate; +}; + +} // PulseAudioQt + +#endif // STREAM_H diff --git a/src/PulseAudioQt/stream_p.h b/src/PulseAudioQt/stream_p.h new file mode 100644 index 0000000..7d2f2e2 --- /dev/null +++ b/src/PulseAudioQt/stream_p.h @@ -0,0 +1,56 @@ +/* + SPDX-FileCopyrightText: 2018 Nicolas Fella <nicolas.fella@gmx.de> + + SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL +*/ +#ifndef STREAM_P_H +#define STREAM_P_H + +#include "stream.h" +#include "volumeobject_p.h" + +namespace PulseAudioQt +{ +class StreamPrivate +{ +public: + explicit StreamPrivate(Stream *q); + virtual ~StreamPrivate(); + + Stream *q; + + quint32 m_deviceIndex = PA_INVALID_INDEX; + quint32 m_clientIndex = PA_INVALID_INDEX; + bool m_virtualStream = false; + bool m_corked = false; + bool m_hasVolume = false; + + template<typename PAInfo> + void updateStream(const PAInfo *info) + { + q->VolumeObject::d->updateVolumeObject(info); + + if (m_hasVolume != info->has_volume) { + m_hasVolume = info->has_volume; + Q_EMIT q->hasVolumeChanged(); + } + if (q->VolumeObject::d->m_volumeWritable != info->volume_writable) { + q->VolumeObject::d->m_volumeWritable = info->volume_writable; + Q_EMIT q->isVolumeWritableChanged(); + } + if (m_clientIndex != info->client) { + m_clientIndex = info->client; + Q_EMIT q->clientChanged(); + } + if (m_virtualStream != (info->client == PA_INVALID_INDEX)) { + m_virtualStream = info->client == PA_INVALID_INDEX; + Q_EMIT q->virtualStreamChanged(); + } + if (m_corked != info->corked) { + m_corked = info->corked; + Q_EMIT q->corkedChanged(); + } + } +}; +} +#endif diff --git a/src/PulseAudioQt/streamrestore.cpp b/src/PulseAudioQt/streamrestore.cpp new file mode 100644 index 0000000..fee9f88 --- /dev/null +++ b/src/PulseAudioQt/streamrestore.cpp @@ -0,0 +1,214 @@ +/* + SPDX-FileCopyrightText: 2016 David Rosca <nowrep@gmail.com> + + SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL +*/ + +#include "streamrestore.h" +#include "context.h" +#include "context_p.h" +#include "streamrestore_p.h" + +#include "debug.h" +#include "pulseobject_p.h" + +namespace PulseAudioQt +{ +StreamRestore::StreamRestore(quint32 index, const QVariantMap &properties, QObject *parent) + : PulseObject(parent) + , d(new StreamRestorePrivate(this)) +{ + memset(&d->m_volume, 0, sizeof(d->m_volume)); + memset(&d->m_channelMap, 0, sizeof(d->m_channelMap)); + + d->m_index = index; + PulseObject::d->m_properties = properties; +} + +StreamRestore::~StreamRestore() +{ +} + +StreamRestorePrivate::StreamRestorePrivate(StreamRestore *q) + : q(q) +{ +} + +StreamRestorePrivate::~StreamRestorePrivate() +{ +} + +void StreamRestorePrivate::update(const pa_ext_stream_restore_info *info) +{ + q->PulseObject::d->updatePulseObject(info); + m_cache.valid = false; + + const QString infoDevice = QString::fromUtf8(info->device); + if (m_device != infoDevice) { + m_device = infoDevice; + Q_EMIT q->deviceChanged(); + } + if (m_muted != info->mute) { + m_muted = info->mute; + Q_EMIT q->mutedChanged(); + } + if (!pa_cvolume_equal(&m_volume, &info->volume)) { + m_volume = info->volume; + Q_EMIT q->volumeChanged(); + Q_EMIT q->channelVolumesChanged(); + } + if (!pa_channel_map_equal(&m_channelMap, &info->channel_map)) { + m_channels.clear(); + m_channels.reserve(info->channel_map.channels); + for (int i = 0; i < info->channel_map.channels; ++i) { + m_channels << QString::fromUtf8(pa_channel_position_to_pretty_string(info->channel_map.map[i])); + } + m_channelMap = info->channel_map; + Q_EMIT q->channelsChanged(); + } +} + +QString StreamRestore::device() const +{ + return d->m_device; +} + +void StreamRestore::setDevice(const QString &device) +{ + if (d->m_cache.valid) { + if (d->m_cache.device != device) { + d->writeChanges(d->m_cache.volume, d->m_cache.muted, device); + } + } else { + if (d->m_device != device) { + d->writeChanges(d->m_volume, d->m_muted, device); + } + } +} + +qint64 StreamRestore::volume() const +{ + return d->m_volume.values[0]; +} + +void StreamRestore::setVolume(qint64 volume) +{ + pa_cvolume vol = d->m_cache.valid ? d->m_cache.volume : d->m_volume; + + // If no channel exists force one. We need one to be able to control the volume + // See https://bugs.kde.org/show_bug.cgi?id=407397 + if (vol.channels == 0) { + vol.channels = 1; + } + + for (int i = 0; i < vol.channels; ++i) { + vol.values[i] = volume; + } + + if (d->m_cache.valid) { + d->writeChanges(vol, d->m_cache.muted, d->m_cache.device); + } else { + d->writeChanges(vol, d->m_muted, d->m_device); + } +} + +bool StreamRestore::isMuted() const +{ + return d->m_muted; +} + +void StreamRestore::setMuted(bool muted) +{ + if (d->m_cache.valid) { + if (d->m_cache.muted != muted) { + d->writeChanges(d->m_cache.volume, muted, d->m_cache.device); + } + } else { + if (d->m_muted != muted) { + d->writeChanges(d->m_volume, muted, d->m_device); + } + } +} + +bool StreamRestore::hasVolume() const +{ + return true; +} + +bool StreamRestore::isVolumeWritable() const +{ + return true; +} + +QVector<QString> StreamRestore::channels() const +{ + return d->m_channels; +} + +QVector<qreal> StreamRestore::channelVolumes() const +{ + QVector<qreal> ret; + ret.reserve(d->m_volume.channels); + for (int i = 0; i < d->m_volume.channels; ++i) { + ret << d->m_volume.values[i]; + } + return ret; +} + +void StreamRestore::setChannelVolume(int channel, qint64 volume) +{ + Q_ASSERT(channel >= 0 && channel < d->m_volume.channels); + pa_cvolume vol = d->m_cache.valid ? d->m_cache.volume : d->m_volume; + vol.values[channel] = volume; + + if (d->m_cache.valid) { + d->writeChanges(vol, d->m_cache.muted, d->m_cache.device); + } else { + d->writeChanges(vol, d->m_muted, d->m_device); + } +} + +quint32 StreamRestore::deviceIndex() const +{ + return PA_INVALID_INDEX; +} + +void StreamRestore::setDeviceIndex(quint32 deviceIndex) +{ + Q_UNUSED(deviceIndex); + qWarning() << "Not implemented"; +} + +void StreamRestorePrivate::writeChanges(const pa_cvolume &volume, bool muted, const QString &device) +{ + const QByteArray nameData = q->name().toUtf8(); + const QByteArray deviceData = device.toUtf8(); + + pa_ext_stream_restore_info info; + info.name = nameData.constData(); + info.channel_map = m_channelMap; + info.volume = volume; + info.device = deviceData.isEmpty() ? nullptr : deviceData.constData(); + info.mute = muted; + + // If no channel exists force one. We need one to be able to control the volume + // See https://bugs.kde.org/show_bug.cgi?id=407397 + if (info.channel_map.channels == 0) { + info.channel_map.channels = 1; + info.channel_map.map[0] = PA_CHANNEL_POSITION_MONO; + } + + m_cache.valid = true; + m_cache.volume = volume; + m_cache.muted = muted; + m_cache.device = device; + + Context::instance()->d->streamRestoreWrite(&info); +} + +quint32 StreamRestore::index() const +{ + return d->m_index; +} + +} // PulseAudioQt diff --git a/src/PulseAudioQt/streamrestore.h b/src/PulseAudioQt/streamrestore.h new file mode 100644 index 0000000..cb74006 --- /dev/null +++ b/src/PulseAudioQt/streamrestore.h @@ -0,0 +1,74 @@ +/* + SPDX-FileCopyrightText: 2016 David Rosca <nowrep@gmail.com> + + SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL +*/ + +#ifndef STREAMRESTORE_H +#define STREAMRESTORE_H + +#include "pulseobject.h" + +struct pa_ext_stream_restore_info; + +namespace PulseAudioQt +{ +class PULSEAUDIOQT_EXPORT StreamRestore : public PulseObject +{ + Q_OBJECT + Q_PROPERTY(QString device READ device WRITE setDevice NOTIFY deviceChanged) + Q_PROPERTY(qint64 volume READ volume WRITE setVolume NOTIFY volumeChanged) + Q_PROPERTY(bool muted READ isMuted WRITE setMuted NOTIFY mutedChanged) + Q_PROPERTY(bool hasVolume READ hasVolume CONSTANT) + Q_PROPERTY(bool volumeWritable READ isVolumeWritable CONSTANT) + Q_PROPERTY(QVector<QString> channels READ channels NOTIFY channelsChanged) + Q_PROPERTY(QVector<qreal> channelVolumes READ channelVolumes NOTIFY channelVolumesChanged) + Q_PROPERTY(quint32 deviceIndex READ deviceIndex WRITE setDeviceIndex NOTIFY deviceIndexChanged) + // Not a IndexedPulseObject since pa_ext_stream_restore_info does not have an index member + Q_PROPERTY(quint32 index READ index CONSTANT) + +public: + ~StreamRestore(); + + QString device() const; + void setDevice(const QString &device); + + qint64 volume() const; + void setVolume(qint64 volume); + + bool isMuted() const; + void setMuted(bool muted); + + bool hasVolume() const; + bool isVolumeWritable() const; + + QVector<QString> channels() const; + + QVector<qreal> channelVolumes() const; + + quint32 index() const; + + quint32 deviceIndex() const; + void setDeviceIndex(quint32 deviceIndex); + + void setChannelVolume(int channel, qint64 volume); + +Q_SIGNALS: + void deviceChanged(); + void volumeChanged(); + void mutedChanged(); + void channelsChanged(); + void channelVolumesChanged(); + void deviceIndexChanged(); + +private: + explicit StreamRestore(quint32 index, const QVariantMap &properties, QObject *parent); + + class StreamRestorePrivate *const d; + friend class MapBase<StreamRestore, pa_ext_stream_restore_info>; + friend class ContextPrivate; +}; + +} // PulseAudioQt + +#endif // STREAMRESTORE_H diff --git a/src/PulseAudioQt/streamrestore_p.h b/src/PulseAudioQt/streamrestore_p.h new file mode 100644 index 0000000..80c32c5 --- /dev/null +++ b/src/PulseAudioQt/streamrestore_p.h @@ -0,0 +1,42 @@ +/* + SPDX-FileCopyrightText: 2018 Nicolas Fella <nicolas.fella@gmx.de> + + SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL +*/ +#ifndef STREAMRESTORE_P_H +#define STREAMRESTORE_P_H + +#include "streamrestore.h" +#include <QVector> +#include <pulse/ext-stream-restore.h> + +namespace PulseAudioQt +{ +class StreamRestorePrivate +{ +public: + explicit StreamRestorePrivate(StreamRestore *q); + virtual ~StreamRestorePrivate(); + + void writeChanges(const pa_cvolume &volume, bool muted, const QString &device); + void update(const pa_ext_stream_restore_info *info); + + StreamRestore *q; + QString m_device; + pa_cvolume m_volume; + pa_channel_map m_channelMap; + QVector<QString> m_channels; + bool m_muted = false; + quint32 m_index = 0; + + struct { + bool valid = false; + pa_cvolume volume; + bool muted; + QString device; + } m_cache; +}; + +} + +#endif diff --git a/src/PulseAudioQt/volumeobject.cpp b/src/PulseAudioQt/volumeobject.cpp new file mode 100644 index 0000000..a18a12a --- /dev/null +++ b/src/PulseAudioQt/volumeobject.cpp @@ -0,0 +1,70 @@ +/* + SPDX-FileCopyrightText: 2014-2015 Harald Sitter <sitter@kde.org> + + SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL +*/ + +#include <pulse/volume.h> + +#include "volumeobject.h" +#include "volumeobject_p.h" + +namespace PulseAudioQt +{ +VolumeObject::VolumeObject(QObject *parent) + : IndexedPulseObject(parent) + , d(new VolumeObjectPrivate(this)) +{ +} + +VolumeObjectPrivate::VolumeObjectPrivate(VolumeObject *q) + : q(q) +{ + pa_cvolume_init(&m_volume); +} + +VolumeObject::~VolumeObject() +{ +} + +qint64 VolumeObject::volume() const +{ + return pa_cvolume_max(&d->m_volume); +} + +bool VolumeObject::isMuted() const +{ + return d->m_muted; +} + +pa_cvolume VolumeObjectPrivate::cvolume() const +{ + return m_volume; +} + +bool VolumeObject::isVolumeWritable() const +{ + return d->m_volumeWritable; +} + +QVector<QString> VolumeObject::channels() const +{ + return d->m_channels; +} + +QStringList VolumeObject::rawChannels() const +{ + return d->m_rawChannels; +} + +QVector<qint64> VolumeObject::channelVolumes() const +{ + QVector<qint64> ret; + ret.reserve(d->m_volume.channels); + for (int i = 0; i < d->m_volume.channels; ++i) { + ret << d->m_volume.values[i]; + } + return ret; +} + +} // PulseAudioQt diff --git a/src/PulseAudioQt/volumeobject.h b/src/PulseAudioQt/volumeobject.h new file mode 100644 index 0000000..d560963 --- /dev/null +++ b/src/PulseAudioQt/volumeobject.h @@ -0,0 +1,79 @@ +/* + SPDX-FileCopyrightText: 2014-2015 Harald Sitter <sitter@kde.org> + + SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL +*/ + +#ifndef VOLUMEOBJECT_H +#define VOLUMEOBJECT_H + +#include "indexedpulseobject.h" + +namespace PulseAudioQt +{ +/** + * An PulseObject that has a volume. Can be a Device or a Stream. + */ +class PULSEAUDIOQT_EXPORT VolumeObject : public IndexedPulseObject +{ + Q_OBJECT + Q_PROPERTY(qint64 volume READ volume WRITE setVolume NOTIFY volumeChanged) + Q_PROPERTY(bool muted READ isMuted WRITE setMuted NOTIFY mutedChanged) + Q_PROPERTY(bool volumeWritable READ isVolumeWritable NOTIFY isVolumeWritableChanged) + Q_PROPERTY(QVector<QString> channels READ channels NOTIFY channelsChanged) + Q_PROPERTY(QVector<qint64> channelVolumes READ channelVolumes WRITE setChannelVolumes NOTIFY channelVolumesChanged) + Q_PROPERTY(QStringList rawChannels READ rawChannels NOTIFY rawChannelsChanged) + +public: + ~VolumeObject(); + + /** + * This object's volume + */ + qint64 volume() const; + + /** + * Set the volume for this object. + * This affects all channels. + * The volume must be between PulseAudioQt::minimumVolume() and PulseAudioQt::maximumVolume(). + */ + virtual void setVolume(qint64 volume) = 0; + + /** + * Whether this object is muted. + */ + bool isMuted() const; + + /** + * Set whether this object is muted. + */ + virtual void setMuted(bool muted) = 0; + + bool isVolumeWritable() const; + + QVector<QString> channels() const; + QStringList rawChannels() const; + QVector<qint64> channelVolumes() const; + virtual void setChannelVolumes(const QVector<qint64> &channelVolumes) = 0; + Q_INVOKABLE virtual void setChannelVolume(int channel, qint64 volume) = 0; + +Q_SIGNALS: + void volumeChanged(); + void mutedChanged(); + void isVolumeWritableChanged(); + void channelsChanged(); + void rawChannelsChanged(); + void channelVolumesChanged(); + +protected: + /** @private */ + explicit VolumeObject(QObject *parent); + /** @private */ + class VolumeObjectPrivate *const d; + friend class DevicePrivate; + friend class StreamPrivate; +}; + +} // PulseAudioQt + +#endif // VOLUMEOBJECT_H diff --git a/src/PulseAudioQt/volumeobject_p.h b/src/PulseAudioQt/volumeobject_p.h new file mode 100644 index 0000000..7ac5b55 --- /dev/null +++ b/src/PulseAudioQt/volumeobject_p.h @@ -0,0 +1,67 @@ +/* + SPDX-FileCopyrightText: 2018 Nicolas Fella <nicolas.fella@gmx.de> + + SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL +*/ +#ifndef VOLUMEOBJECT_P_H +#define VOLUMEOBJECT_P_H + +#include <pulse/volume.h> + +#include "indexedpulseobject_p.h" +#include "volumeobject.h" + +namespace PulseAudioQt +{ +class VolumeObjectPrivate +{ +public: + explicit VolumeObjectPrivate(VolumeObject *q); + + VolumeObject *q; + pa_channel_map foo; + pa_cvolume m_volume; + bool m_muted = true; + bool m_volumeWritable = true; + QVector<QString> m_channels; + QStringList m_rawChannels; + + pa_cvolume cvolume() const; + + template<typename PAInfo> + void updateVolumeObject(PAInfo *info) + { + q->IndexedPulseObject::d->updatePulseObject(info); + q->PulseObject::d->updateProperties(info); + if (m_muted != info->mute) { + m_muted = info->mute; + Q_EMIT q->mutedChanged(); + } + if (!pa_cvolume_equal(&m_volume, &info->volume)) { + m_volume = info->volume; + Q_EMIT q->volumeChanged(); + Q_EMIT q->channelVolumesChanged(); + } + QVector<QString> infoChannels; + infoChannels.reserve(info->channel_map.channels); + for (int i = 0; i < info->channel_map.channels; ++i) { + infoChannels << QString::fromUtf8(pa_channel_position_to_pretty_string(info->channel_map.map[i])); + } + if (m_channels != infoChannels) { + m_channels = infoChannels; + Q_EMIT q->channelsChanged(); + } + + QStringList infoRawChannels; + infoRawChannels.reserve(info->channel_map.channels); + for (int i = 0; i < info->channel_map.channels; ++i) { + infoRawChannels << QString::fromUtf8(pa_channel_position_to_string(info->channel_map.map[i])); + } + if (m_rawChannels != infoRawChannels) { + m_rawChannels = infoRawChannels; + Q_EMIT q->rawChannelsChanged(); + } + } +}; +} +#endif diff --git a/src/cardwidget.cc b/src/cardwidget.cc deleted file mode 100644 index 5755d46..0000000 --- a/src/cardwidget.cc +++ /dev/null @@ -1,176 +0,0 @@ -/*** - This file is part of pavucontrol. - - Copyright 2006-2008 Lennart Poettering - Copyright 2009 Colin Guthrie - - pavucontrol 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. - - pavucontrol 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 pavucontrol. If not, see <https://www.gnu.org/licenses/>. -***/ - -#ifdef HAVE_CONFIG_H -#include <config.h> -#endif - -#include "cardwidget.h" - -#include <QDebug> -#include <QHash> -#include <QSet> - -/*** CardWidget ***/ -CardWidget::CardWidget(QWidget* parent) : - QWidget(parent) { - setupUi(this); - connect(profileList, static_cast<void(QComboBox::*)(int)>(&QComboBox::currentIndexChanged), this, &CardWidget::onProfileChange); - connect(profileFlavorList, static_cast<void(QComboBox::*)(int)>(&QComboBox::currentIndexChanged), this, &CardWidget::onProfileFlavorChange); -} - - -void CardWidget::prepareMenu() { - int idx = 0; - - profileList->clear(); - /* Fill the ComboBox */ - for (auto k : profiles.keys()) { - auto & profile = profiles[k]; - auto desc = profile.getProfileName(); - profileList->addItem(desc, k); - if (profile.containsProfile(activeProfile)) { - profileList->setCurrentIndex(idx); - changeProfile(k); - } - ++idx; - } -} - -void CardWidget::changeProfile(const QString & name) -{ - auto &profile = profiles[name]; - auto old = profileFlavorList->currentText(); - profileFlavorList->clear(); - int idx = 0; - for (auto & entry : profile.entries) { - auto name = entry.getName(); - profileFlavorList->addItem(name, entry.id); - if (name == old || entry.id == activeProfile) { - profileFlavorList->setCurrentIndex(idx); - } - ++idx; - } - if (profileFlavorList->currentIndex() == -1) { - profileFlavorList->setCurrentIndex(0); - } -} - -void CardWidget::changeProfileFlavor(const QByteArray & id) { - pa_operation* o; - - if (!(o = pa_context_set_card_profile_by_index(get_context(), index, id.constData(), nullptr, nullptr))) { - show_error(tr("pa_context_set_card_profile_by_index() failed").toUtf8().constData()); - return; - } - - pa_operation_unref(o); -} - -void CardWidget::onProfileChange(int active) { - if (updating) - return; - - if (active != -1) - changeProfile(profileList->itemData(active).toString()); -} - -void CardWidget::onProfileFlavorChange(int active) { - if (updating) - return; - - if (active != -1) - changeProfileFlavor(profileFlavorList->itemData(active).toByteArray()); -} - -QString ProfileGroup::getProfileName() { - if (!name.isEmpty()) - return name; - // TODO - QHash<QString, int> counts; - //qDebug() << "Entries" << this; - for (auto n : entries) { - //qDebug() << n.tokens; - QSet<QString> tmp = n.tokens.toSet(); //(n.tokens.begin(), n.tokens.end()); - for (auto t : tmp) { - counts[t]++; - } - } - //qDebug() << counts; - QSet<QString> todo = counts.keys().toSet(); - for (auto &pe : entries) { - QMutableListIterator<QString> it(pe.tokens); - while (it.hasNext()) { - auto s = it.next(); - if (counts[s] == entries.size()) { - it.remove(); - if (todo.remove(s)) { - if (!name.isEmpty()) { - name.append(QLatin1Char(' ')); - } - name.append(s); - } - } - } - } - return name; -} - -void ProfileGroup::addEntry(const char *id, const char *name) { - auto *pe = new ProfileEntry; - bool paren = false; - const char *pos = name, *tokenStart = name; - //qDebug() << name << "is" << id; - while (*pos != '\0') { - if (!paren && isspace(*pos)) { - if (pos > tokenStart) { - pe->tokens.append(QString::fromUtf8(tokenStart, pos - tokenStart)); - } - tokenStart = pos + 1; - } - if (paren && *pos == ')') { - pe->tokens.append(QString::fromUtf8(tokenStart, pos - tokenStart + 1)); - paren = false; - tokenStart = pos + 1; - } - if (tokenStart == pos && *pos == '(') { - paren = true; - } - pos++; - } - if (pos > tokenStart) { - pe->tokens.append(QString::fromUtf8(tokenStart, pos - tokenStart)); - } - pe->id = id; - this->entries.append(*pe); - delete pe; -} - -QString ProfileEntry::getName() const { - return tokens.join(QLatin1String(" ")); -} - -bool ProfileGroup::containsProfile(const QByteArray &pro) const { - for (const auto &e : this->entries) { - if (e.id == pro) - return true; - } - return false; -} diff --git a/src/cardwidget.h b/src/cardwidget.h deleted file mode 100644 index 92d544d..0000000 --- a/src/cardwidget.h +++ /dev/null @@ -1,58 +0,0 @@ -/*** - This file is part of pavucontrol. - - Copyright 2006-2008 Lennart Poettering - Copyright 2009 Colin Guthrie - - pavucontrol 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. - - pavucontrol 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 pavucontrol. If not, see <https://www.gnu.org/licenses/>. -***/ - -#ifndef cardwidget_h -#define cardwidget_h - -#include "pavucontrol.h" -#include "helper.h" -#include "ui_cardwidget.h" -#include <QWidget> -#include <QMap> -#include <QString> -#include <QList> - -class CardWidget : public QWidget, public Ui::CardWidget { - Q_OBJECT -public: - CardWidget(QWidget *parent = nullptr); - - QByteArray name; - uint32_t index; - bool updating; - - - QMap<QString, ProfileGroup> profiles; - std::map<QByteArray, PortInfo> ports; - QByteArray activeProfile; - bool hasSinks; - bool hasSources; - - void prepareMenu(); - -protected: - void changeProfile(const QString & name); - void changeProfileFlavor(const QByteArray & id); - void onProfileChange(int active); - void onProfileFlavorChange(int active); - -}; - -#endif diff --git a/src/cardwidget.ui b/src/cardwidget.ui deleted file mode 100644 index a75654b..0000000 --- a/src/cardwidget.ui +++ /dev/null @@ -1,67 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<ui version="4.0"> - <class>CardWidget</class> - <widget class="QWidget" name="CardWidget"> - <property name="geometry"> - <rect> - <x>0</x> - <y>0</y> - <width>368</width> - <height>106</height> - </rect> - </property> - <property name="windowTitle"> - <string>Form</string> - </property> - <layout class="QVBoxLayout" name="verticalLayout"> - <item> - <layout class="QHBoxLayout" name="nameHLayout" stretch="0,1"> - <item> - <widget class="QLabel" name="iconImage"> - <property name="text"> - <string/> - </property> - </widget> - </item> - <item> - <widget class="QLabel" name="nameLabel"> - <property name="text"> - <string>Card Name</string> - </property> - </widget> - </item> - </layout> - </item> - <item> - <layout class="QHBoxLayout" name="profileHLayout" stretch="0,1"> - <item> - <widget class="QLabel" name="profileLabel"> - <property name="text"> - <string>Profile:</string> - </property> - </widget> - </item> - <item> - <widget class="QComboBox" name="profileList"/> - </item> - </layout> - </item> - <item> - <layout class="QHBoxLayout" name="variantHLayout"> - <item> - <widget class="QComboBox" name="profileFlavorList"/> - </item> - </layout> - </item> - <item> - <widget class="Line" name="line"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - </widget> - </item> - </layout> - </widget> - <resources/> - <connections/> -</ui> diff --git a/src/channel.cc b/src/channel.cc deleted file mode 100644 index 195e2f1..0000000 --- a/src/channel.cc +++ /dev/null @@ -1,169 +0,0 @@ -/*** - This file is part of pavucontrol. - - Copyright 2006-2008 Lennart Poettering - Copyright 2009 Colin Guthrie - - pavucontrol 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. - - pavucontrol 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 pavucontrol. If not, see <https://www.gnu.org/licenses/>. -***/ - -#ifdef HAVE_CONFIG_H -#include <config.h> -#endif - -#include <QGridLayout> -#include <QLabel> -#include <QSlider> -#include <QFontMetrics> -#include "channel.h" -#include "minimalstreamwidget.h" - -constexpr int SLIDER_SNAP = 2; -static inline int paVolume2Percent(pa_volume_t vol) -{ - if (vol > PA_VOLUME_UI_MAX) - vol = PA_VOLUME_UI_MAX; - return qRound(static_cast<double>(vol - PA_VOLUME_MUTED) / PA_VOLUME_NORM * 100); -} - -static inline pa_volume_t percent2PaVolume(int percent) -{ - return PA_VOLUME_MUTED + qRound(static_cast<double>(percent) / 100 * PA_VOLUME_NORM); -} - -/*** ChannelWidget ***/ - -Channel::Channel(QGridLayout* parent) : - QObject(parent), - can_decibel(false), - volumeScaleEnabled(true), - last(false) -{ - channelLabel = new QLabel(nullptr); - volumeScale = new QSlider(Qt::Horizontal, nullptr); - volumeLabel = new QLabel(nullptr); - - const int row = parent->rowCount(); - parent->addWidget(channelLabel, row, 0); - parent->addWidget(volumeScale, row, 1); - parent->addWidget(volumeLabel, row, 2); - - // make the info font smaller - QFont label_font = volumeLabel->font(); - if (label_font.pixelSize() == -1) - label_font.setPointSizeF(label_font.pointSizeF() * 0.8); - else - label_font.setPixelSize(qRound(static_cast<double>(label_font.pixelSize()) * 0.8)); - volumeLabel->setFont(label_font); - volumeLabel->setFixedWidth(QFontMetrics{volumeLabel->font()}.size(Qt::TextSingleLine, QStringLiteral("100%(-99.99dB)")).width()); - volumeLabel->setAlignment(Qt::AlignHCenter); - volumeLabel->setTextFormat(Qt::RichText); - - volumeScale->setRange(paVolume2Percent(PA_VOLUME_MUTED), paVolume2Percent(PA_VOLUME_UI_MAX)); - volumeScale->setValue(paVolume2Percent(PA_VOLUME_NORM)); - volumeScale->setPageStep(5); - volumeScale->setTickInterval(paVolume2Percent(PA_VOLUME_NORM)); - volumeScale->setTickPosition(QSlider::TicksBelow); - volumeScale->setTracking(false); - setBaseVolume(PA_VOLUME_NORM); - - connect(volumeScale, &QSlider::valueChanged, this, &Channel::onVolumeScaleValueChanged); - connect(volumeScale, &QSlider::sliderMoved, this, &Channel::onVolumeScaleSliderMoved); -} - -void Channel::setVolume(pa_volume_t volume) { - const int v = paVolume2Percent(volume); - if (can_decibel) { - const double dB = pa_sw_volume_to_dB(volume); - volumeLabel->setText(tr("%1% (%2dB)", "volume slider label [X% (YdB)]").arg(v) - .arg(dB > PA_DECIBEL_MININFTY ? QString::asprintf("%0.2f", dB) : QStringLiteral("-∞"))); - } - else - volumeLabel->setText(tr("%1%", "volume slider label [X%]").arg(v)); - - volumeScaleEnabled = false; - volumeScale->setValue(v); - volumeScaleEnabled = true; -} - -void Channel::setVisible(bool visible) -{ - channelLabel->setVisible(visible); - volumeScale->setVisible(visible); - volumeLabel->setVisible(visible); -} - -void Channel::setEnabled(bool enabled) -{ - channelLabel->setEnabled(enabled); - volumeScale->setEnabled(enabled); - volumeLabel->setEnabled(enabled); -} - -void Channel::onVolumeScaleValueChanged(int value) { - - if (!volumeScaleEnabled) - return; - - if (minimalStreamWidget->updating) - return; - - minimalStreamWidget->updateChannelVolume(channel, percent2PaVolume(value)); -} - -void Channel::onVolumeScaleSliderMoved(int value) -{ - if (!volumeScaleEnabled) - return; - - if (minimalStreamWidget->updating) - return; - - const int current_value = volumeScale->value(); - if (current_value == 100 && qAbs(value - current_value) <= SLIDER_SNAP) - { - volumeScale->blockSignals(true); - volumeScale->setSliderPosition(current_value); - volumeScale->blockSignals(false); - return; - } - - volumeScale->setValue(value); -} - -/* -void Channel::set_sensitive(bool enabled) { - setEnabled(enabled); - - channelLabel->setEnabled(enabled); - volumeLabel->setEnabled(enabled); - volumeScale->setEnabled(enabled); -} -*/ - -void Channel::setBaseVolume(pa_volume_t /*v*/) { -#if 0 // FIXME: Qt does not support this functionality - gtk_scale_clear_marks(GTK_SCALE(volumeScale->gobj())); - - gtk_scale_add_mark(GTK_SCALE(volumeScale->gobj()), (double)PA_VOLUME_MUTED, (GtkPositionType) GTK_POS_BOTTOM, - last ? (can_decibel ? tr("<small>Silence</small>").toUtf8().constData() : tr("<small>Min</small>").toUtf8().constData()) : NULL); - gtk_scale_add_mark(GTK_SCALE(volumeScale->gobj()), (double)PA_VOLUME_NORM, (GtkPositionType) GTK_POS_BOTTOM, - last ? tr("<small>100% (0dB)</small>").toUtf8().constData() : NULL); - if (v > PA_VOLUME_MUTED && v < PA_VOLUME_NORM) { - gtk_scale_add_mark(GTK_SCALE(volumeScale->gobj()), (double)v, (GtkPositionType) GTK_POS_BOTTOM, - last ? tr("<small><i>Base</i></small>").toUtf8().constData() : NULL); - } -#endif - -} diff --git a/src/channel.h b/src/channel.h deleted file mode 100644 index e1c1df8..0000000 --- a/src/channel.h +++ /dev/null @@ -1,62 +0,0 @@ -/*** - This file is part of pavucontrol. - - Copyright 2006-2008 Lennart Poettering - Copyright 2009 Colin Guthrie - - pavucontrol 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. - - pavucontrol 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 pavucontrol. If not, see <https://www.gnu.org/licenses/>. -***/ - -#ifndef channel_h -#define channel_h - -#include <QObject> -#include "pavucontrol.h" - -class QGridLayout; -class QLabel; -class QSlider; -class MinimalStreamWidget; - -class Channel : public QObject { - Q_OBJECT -public: - Channel(QGridLayout* parent=nullptr); - - void setVolume(pa_volume_t volume); - void setVisible(bool visible); - void setEnabled(bool enabled); - - int channel; - MinimalStreamWidget *minimalStreamWidget; - -protected Q_SLOTS: - void onVolumeScaleValueChanged(int value); - void onVolumeScaleSliderMoved(int value); - -public: - bool can_decibel; - bool volumeScaleEnabled; - bool last; - - QLabel *channelLabel; - QSlider *volumeScale; - QLabel *volumeLabel; - - //virtual void set_sensitive(bool enabled); - virtual void setBaseVolume(pa_volume_t); -}; - - -#endif diff --git a/src/channelwidget.ui b/src/channelwidget.ui deleted file mode 100644 index a2b65f2..0000000 --- a/src/channelwidget.ui +++ /dev/null @@ -1,42 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<ui version="4.0"> - <class>ChannelWidget</class> - <widget class="QWidget" name="ChannelWidget"> - <property name="geometry"> - <rect> - <x>0</x> - <y>0</y> - <width>400</width> - <height>34</height> - </rect> - </property> - <property name="windowTitle"> - <string>Form</string> - </property> - <layout class="QHBoxLayout" name="horizontalLayout"> - <item> - <widget class="QLabel" name="channelLabel"> - <property name="text"> - <string><b>left-front</b></string> - </property> - </widget> - </item> - <item> - <widget class="QSlider" name="volumeScale"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - </widget> - </item> - <item> - <widget class="QLabel" name="volumeLabel"> - <property name="text"> - <string><small>50%</small></string> - </property> - </widget> - </item> - </layout> - </widget> - <resources/> - <connections/> -</ui> diff --git a/src/devicewidget.cc b/src/devicewidget.cc deleted file mode 100644 index 85c856a..0000000 --- a/src/devicewidget.cc +++ /dev/null @@ -1,245 +0,0 @@ -/*** - This file is part of pavucontrol. - - Copyright 2006-2008 Lennart Poettering - Copyright 2009 Colin Guthrie - - pavucontrol 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. - - pavucontrol 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 pavucontrol. If not, see <https://www.gnu.org/licenses/>. -***/ - -#ifdef HAVE_CONFIG_H -#include <config.h> -#endif - -#include <pulse/ext-device-manager.h> - -#include "mainwindow.h" -#include "devicewidget.h" -#include "channel.h" -#include <sstream> -#include <QAction> -#include <QLabel> -#include <QMessageBox> -#include <QInputDialog> - -/*** DeviceWidget ***/ -DeviceWidget::DeviceWidget(MainWindow* parent, QByteArray deviceType) : - MinimalStreamWidget(parent), - offsetButtonEnabled(false), - mpMainWindow(parent), - rename{new QAction{tr("Rename device..."), this}}, - mDeviceType(deviceType) { - - setupUi(this); - advancedWidget->hide(); - initPeakProgressBar(channelsGrid); - - timeout.setSingleShot(true); - timeout.setInterval(100); - connect(&timeout, &QTimer::timeout, this, &DeviceWidget::timeoutEvent); - - connect(muteToggleButton, &QToolButton::toggled, this, &DeviceWidget::onMuteToggleButton); - connect(lockToggleButton, &QToolButton::toggled, this, &DeviceWidget::onLockToggleButton); - connect(defaultToggleButton, &QToolButton::toggled, this, &DeviceWidget::onDefaultToggleButton); - - connect(rename, &QAction::triggered, this, &DeviceWidget::renamePopup); - addAction(rename); - setContextMenuPolicy(Qt::ActionsContextMenu); - - connect(portList, static_cast<void(QComboBox::*)(int)>(&QComboBox::currentIndexChanged), this, &DeviceWidget::onPortChange); - connect(offsetButton, static_cast<void(QSpinBox::*)(int)>(&QSpinBox::valueChanged), this, &DeviceWidget::onOffsetChange); - - for (auto & channel : channels) - channel = nullptr; - - - // FIXME: -// offsetAdjustment = Gtk::Adjustment::create(0.0, -2000.0, 2000.0, 10.0, 50.0, 0.0); -// offsetButton->configure(offsetAdjustment, 0, 2); -} - -void DeviceWidget::setChannelMap(const pa_channel_map &m, bool can_decibel) { - channelMap = m; - - for (int i = 0; i < m.channels; i++) { - Channel *ch = channels[i] = new Channel(channelsGrid); - ch->channel = i; - ch->can_decibel = can_decibel; - ch->minimalStreamWidget = this; - char text[64]; - snprintf(text, sizeof(text), "<b>%s</b>", pa_channel_position_to_pretty_string(m.map[i])); - ch->channelLabel->setText(QString::fromUtf8(text)); - } - channels[m.channels-1]->last = true; - - lockToggleButton->setEnabled(m.channels > 1); - hideLockedChannels(lockToggleButton->isChecked()); -} - -void DeviceWidget::setVolume(const pa_cvolume &v, bool force) { - g_assert(v.channels == channelMap.channels); - - volume = v; - - if (!timeout.isActive() || force) { /* do not update the volume when a volume change is still in flux */ - for (int i = 0; i < volume.channels; i++) - channels[i]->setVolume(volume.values[i]); - } -} - -void DeviceWidget::updateChannelVolume(int channel, pa_volume_t v) { - pa_cvolume n; - g_assert(channel < volume.channels); - - n = volume; - if (lockToggleButton->isChecked()) - pa_cvolume_set(&n, n.channels, v); - else - n.values[channel] = v; - - setVolume(n, true); - - if (!timeout.isActive()) { - timeout.start(); - } -} - -void DeviceWidget::hideLockedChannels(bool hide) { - for (int i = 0; i < channelMap.channels - 1; i++) - channels[i]->setVisible(!hide); - - channels[channelMap.channels - 1]->channelLabel->setVisible(!hide); -} - -void DeviceWidget::onMuteToggleButton() { - - lockToggleButton->setEnabled(!muteToggleButton->isChecked()); - - for (int i = 0; i < channelMap.channels; i++) - channels[i]->setEnabled(!muteToggleButton->isChecked()); -} - -void DeviceWidget::onLockToggleButton() { - hideLockedChannels(lockToggleButton->isChecked()); -} - -void DeviceWidget::onDefaultToggleButton() { -} - -void DeviceWidget::onOffsetChange() { - pa_operation *o; - int64_t offset; - std::ostringstream card_stream; - QByteArray card_name; - - if (!offsetButtonEnabled) - return; - - offset = offsetButton->value() * 1000.0; - card_stream << card_index; - card_name = QByteArray::fromStdString(card_stream.str()); - - if (!(o = pa_context_set_port_latency_offset(get_context(), - card_name.constData(), activePort.constData(), offset, nullptr, nullptr))) { - show_error(tr("pa_context_set_port_latency_offset() failed").toUtf8().constData()); - return; - } - pa_operation_unref(o); -} - -void DeviceWidget::setDefault(bool isDefault) { - defaultToggleButton->setChecked(isDefault); - /*defaultToggleButton->setEnabled(!isDefault);*/ -} - -bool DeviceWidget::timeoutEvent() { - executeVolumeUpdate(); - return false; -} - -void DeviceWidget::executeVolumeUpdate() { -} - -void DeviceWidget::setLatencyOffset(int64_t offset) { - offsetButtonEnabled = false; - offsetButton->setValue(offset / 1000.0); - offsetButtonEnabled = true; -} - -void DeviceWidget::setBaseVolume(pa_volume_t v) { - - for (int i = 0; i < channelMap.channels; i++) - channels[i]->setBaseVolume(v); -} - -void DeviceWidget::prepareMenu() { - int idx = 0; - int active_idx = -1; - - portList->clear(); - /* Fill the ComboBox's Model */ - for (auto & port : ports) { - QByteArray name = port.first; - QString desc = QString::fromUtf8(port.second); - portList->addItem(desc, name); - if (port.first == activePort) - active_idx = idx; - idx++; - } - - if (active_idx >= 0) - portList->setCurrentIndex(active_idx); - - if (!ports.empty()) { - portSelect->show(); - - if (pa_context_get_server_protocol_version(get_context()) >= 27) { - offsetSelect->show(); - advancedOptions->setEnabled(true); - } else { - /* advancedOptions has sensitive=false by default */ - offsetSelect->hide(); - } - - } else { - portSelect->hide(); - advancedOptions->setEnabled(false); - offsetSelect->hide(); - } -} - -void DeviceWidget::renamePopup() { - if (updating) - return; - if (!mpMainWindow->canRenameDevices) { - QMessageBox::warning(this, tr("Sorry, but device renaming is not supported.") - , tr("You need to load module-device-manager in the PulseAudio server in order to rename devices")); - return; - } - - const QString old_name = QString::fromUtf8(description); - bool ok; - const QString new_name = QInputDialog::getText(this, QCoreApplication::organizationName(), tr("Rename device %1 to:").arg(old_name) - , QLineEdit::Normal, old_name, &ok); - if (ok && new_name != old_name) { - pa_operation* o; - gchar *key = g_markup_printf_escaped("%s:%s", mDeviceType.constData(), name.constData()); - - if (!(o = pa_ext_device_manager_set_device_description(get_context(), key, new_name.toUtf8().constData(), nullptr, nullptr))) - show_error(tr("pa_ext_device_manager_set_device_description() failed").toUtf8().constData()); - else - pa_operation_unref(o); - g_free(key); - } -} diff --git a/src/devicewidget.h b/src/devicewidget.h deleted file mode 100644 index a5104c0..0000000 --- a/src/devicewidget.h +++ /dev/null @@ -1,92 +0,0 @@ -/*** - This file is part of pavucontrol. - - Copyright 2006-2008 Lennart Poettering - Copyright 2009 Colin Guthrie - - pavucontrol 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. - - pavucontrol 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 pavucontrol. If not, see <https://www.gnu.org/licenses/>. -***/ - -#ifndef devicewidget_h -#define devicewidget_h - -#include "pavucontrol.h" - -#include "minimalstreamwidget.h" -#include "ui_devicewidget.h" -#include <QTimer> -#include <vector> - -class MainWindow; -class Channel; -class QAction; - -class DeviceWidget : public MinimalStreamWidget, public Ui::DeviceWidget { - Q_OBJECT -public: - DeviceWidget(MainWindow *parent, QByteArray deviceType = ""); - - void setChannelMap(const pa_channel_map &m, bool can_decibel); - void setVolume(const pa_cvolume &volume, bool force = false); - virtual void updateChannelVolume(int channel, pa_volume_t v); - - void hideLockedChannels(bool hide = true); - - QByteArray name; - QByteArray description; - uint32_t index, card_index; - - bool offsetButtonEnabled; - - pa_channel_map channelMap; - pa_cvolume volume; - - Channel *channels[PA_CHANNELS_MAX]; - -public Q_SLOTS: - virtual void onMuteToggleButton(); - virtual void onLockToggleButton(); - virtual void onDefaultToggleButton(); - virtual void setDefault(bool isDefault); - // virtual bool onContextTriggerEvent(GdkEventButton*); - virtual void setLatencyOffset(int64_t offset); - void onOffsetChange(); - bool timeoutEvent(); - -public: - QTimer timeout; - - virtual void executeVolumeUpdate(); - virtual void setBaseVolume(pa_volume_t v); - - std::vector< std::pair<QByteArray,QByteArray> > ports; - QByteArray activePort; - - void prepareMenu(); - - void renamePopup(); - -protected: - MainWindow *mpMainWindow; - - virtual void onPortChange() = 0; - - QAction * rename; - -private: - QByteArray mDeviceType; - -}; - -#endif diff --git a/src/devicewidget.ui b/src/devicewidget.ui deleted file mode 100644 index 3b5f781..0000000 --- a/src/devicewidget.ui +++ /dev/null @@ -1,283 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<ui version="4.0"> - <class>DeviceWidget</class> - <widget class="QWidget" name="DeviceWidget"> - <property name="geometry"> - <rect> - <x>0</x> - <y>0</y> - <width>400</width> - <height>306</height> - </rect> - </property> - <property name="windowTitle"> - <string>Form</string> - </property> - <layout class="QVBoxLayout" name="verticalLayout"> - <item> - <layout class="QHBoxLayout" name="horizontalLayout"> - <item> - <widget class="QLabel" name="iconImage"> - <property name="text"> - <string/> - </property> - </widget> - </item> - <item> - <widget class="QLabel" name="boldNameLabel"> - <property name="text"> - <string/> - </property> - </widget> - </item> - <item> - <widget class="QLabel" name="nameLabel"> - <property name="text"> - <string>Device Title</string> - </property> - </widget> - </item> - <item> - <spacer name="horizontalSpacer"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>40</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - <item> - <widget class="QToolButton" name="muteToggleButton"> - <property name="toolTip"> - <string>Mute audio</string> - </property> - <property name="icon"> - <iconset theme="audio-volume-muted"/> - </property> - <property name="checkable"> - <bool>true</bool> - </property> - </widget> - </item> - <item> - <widget class="QToolButton" name="lockToggleButton"> - <property name="toolTip"> - <string>Lock channels together</string> - </property> - <property name="icon"> - <iconset theme="changes-prevent-symbolic"/> - </property> - <property name="checkable"> - <bool>true</bool> - </property> - <property name="checked"> - <bool>true</bool> - </property> - </widget> - </item> - <item> - <widget class="QToolButton" name="defaultToggleButton"> - <property name="toolTip"> - <string>Set as fallback</string> - </property> - <property name="icon"> - <iconset theme="applications-multimedia"/> - </property> - <property name="checkable"> - <bool>true</bool> - </property> - </widget> - </item> - </layout> - </item> - <item> - <widget class="QWidget" name="portSelect" native="true"> - <layout class="QHBoxLayout" name="horizontalLayout_2" stretch="0,1"> - <item> - <widget class="QLabel" name="label_3"> - <property name="text"> - <string><b>Port:</b></string> - </property> - </widget> - </item> - <item> - <widget class="QComboBox" name="portList"/> - </item> - </layout> - </widget> - </item> - <item> - <layout class="QGridLayout" name="channelsGrid"> - <property name="horizontalSpacing"> - <number>0</number> - </property> - </layout> - </item> - <item> - <widget class="QCheckBox" name="advancedOptions"> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="text"> - <string>Show advanced options</string> - </property> - </widget> - </item> - <item> - <widget class="QWidget" name="advancedWidget" native="true"> - <layout class="QVBoxLayout" name="verticalLayout_2"> - <property name="spacing"> - <number>0</number> - </property> - <property name="leftMargin"> - <number>9</number> - </property> - <property name="topMargin"> - <number>0</number> - </property> - <property name="rightMargin"> - <number>0</number> - </property> - <property name="bottomMargin"> - <number>0</number> - </property> - <item> - <widget class="QWidget" name="encodingSelect" native="true"> - <layout class="QGridLayout" name="gridLayout"> - <property name="leftMargin"> - <number>0</number> - </property> - <property name="topMargin"> - <number>0</number> - </property> - <property name="rightMargin"> - <number>0</number> - </property> - <property name="bottomMargin"> - <number>0</number> - </property> - <property name="spacing"> - <number>0</number> - </property> - <item row="0" column="0"> - <widget class="QCheckBox" name="encodingFormatPCM"> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="text"> - <string>PCM</string> - </property> - <property name="checked"> - <bool>true</bool> - </property> - </widget> - </item> - <item row="0" column="1"> - <widget class="QCheckBox" name="encodingFormatAC3"> - <property name="text"> - <string>AC3</string> - </property> - </widget> - </item> - <item row="0" column="2"> - <widget class="QCheckBox" name="encodingFormatEAC3"> - <property name="text"> - <string>EAC3</string> - </property> - </widget> - </item> - <item row="1" column="0"> - <widget class="QCheckBox" name="encodingFormatDTS"> - <property name="text"> - <string>DTS</string> - </property> - </widget> - </item> - <item row="1" column="1"> - <widget class="QCheckBox" name="encodingFormatMPEG"> - <property name="text"> - <string>MPEG</string> - </property> - </widget> - </item> - <item row="1" column="2"> - <widget class="QCheckBox" name="encodingFormatAAC"> - <property name="text"> - <string>AAC</string> - </property> - </widget> - </item> - </layout> - </widget> - </item> - <item> - <widget class="QWidget" name="offsetSelect" native="true"> - <layout class="QHBoxLayout" name="horizontalLayout_3"> - <property name="spacing"> - <number>0</number> - </property> - <property name="leftMargin"> - <number>0</number> - </property> - <property name="topMargin"> - <number>0</number> - </property> - <property name="rightMargin"> - <number>0</number> - </property> - <property name="bottomMargin"> - <number>0</number> - </property> - <item> - <widget class="QLabel" name="label_4"> - <property name="text"> - <string><b>Latency offset:</b></string> - </property> - </widget> - </item> - <item> - <widget class="QSpinBox" name="offsetButton"> - <property name="suffix"> - <string> ms</string> - </property> - </widget> - </item> - </layout> - </widget> - </item> - </layout> - </widget> - </item> - <item> - <widget class="Line" name="line"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - </widget> - </item> - </layout> - </widget> - <resources/> - <connections> - <connection> - <sender>advancedOptions</sender> - <signal>toggled(bool)</signal> - <receiver>advancedWidget</receiver> - <slot>setVisible(bool)</slot> - <hints> - <hint type="sourcelabel"> - <x>151</x> - <y>103</y> - </hint> - <hint type="destinationlabel"> - <x>364</x> - <y>122</y> - </hint> - </hints> - </connection> - </connections> -</ui> diff --git a/src/elidinglabel.cc b/src/elidinglabel.cc deleted file mode 100644 index e1df4b6..0000000 --- a/src/elidinglabel.cc +++ /dev/null @@ -1,46 +0,0 @@ -/*** - This file is part of pavucontrol-qt. - - pavucontrol-qt 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. - - pavucontrol-qt 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 pavucontrol-qt. If not, see <https://www.gnu.org/licenses/>. -***/ - -#include "elidinglabel.h" -#include <QPainter> -#include <QStyleOption> - -ElidingLabel::ElidingLabel(QWidget *parent, Qt::WindowFlags f): - QLabel(parent, f), - lastWidth_(0) { - setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred); - // set a min width to prevent the window from widening with long texts - setMinimumWidth(fontMetrics().averageCharWidth() * 10); -} - -// A simplified version of QLabel::paintEvent() without pixmap or shortcut but with eliding -void ElidingLabel::paintEvent(QPaintEvent */*event*/) { - QRect cr = contentsRect().adjusted(margin(), margin(), -margin(), -margin()); - QString txt = text(); - // if the text is changed or its rect is resized (due to window resizing), - // find whether it needs to be elided... - if (txt != lastText_ || cr.width() != lastWidth_) { - lastText_ = txt; - lastWidth_ = cr.width(); - elidedText_ = fontMetrics().elidedText(txt, Qt::ElideMiddle, cr.width()); - } - // ... then, draw the (elided) text */ - QPainter painter(this); - QStyleOption opt; - opt.initFrom(this); - style()->drawItemText(&painter, cr, alignment(), opt.palette, isEnabled(), elidedText_, foregroundRole()); -} diff --git a/src/elidinglabel.h b/src/elidinglabel.h deleted file mode 100644 index a9492c8..0000000 --- a/src/elidinglabel.h +++ /dev/null @@ -1,38 +0,0 @@ -/*** - This file is part of pavucontrol-qt. - - pavucontrol-qt 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. - - pavucontrol-qt 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 pavucontrol-qt. If not, see <https://www.gnu.org/licenses/>. -***/ - -#ifndef elidinglabel_h -#define elidinglabel_h - -#include <QLabel> - -class ElidingLabel : public QLabel { - Q_OBJECT - -public: - explicit ElidingLabel(QWidget *parent = 0, Qt::WindowFlags f = Qt::WindowFlags()); - -protected: - void paintEvent(QPaintEvent *event) override; - -private: - QString elidedText_; - QString lastText_; - int lastWidth_; -}; - -#endif // elidinglabel_h diff --git a/src/helper.cc b/src/helper.cc deleted file mode 100644 index fac1bb9..0000000 --- a/src/helper.cc +++ /dev/null @@ -1,75 +0,0 @@ -#include "helper.h" - -#include "mainwindow.h" -#include <QDebug> - -void populatePorts(const pa_card_info &info, std::map<QByteArray, PortInfo> &ports) -{ - 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; - for (pa_card_profile_info2 ** p_profile = info.ports[i]->profiles2; p_profile && *p_profile != nullptr; ++p_profile) - p.profiles.push_back((*p_profile)->name); - - ports[p.name] = p; - } -} - -void groupProfiles(const std::set<pa_card_profile_info2 *, profile_prio_compare> &profile_priorities, - const std::map<QByteArray, PortInfo> &ports, - QMap<QString, ProfileGroup> &profiles) -{ - profiles.clear(); - for (auto p_profile : profile_priorities) { - bool hasNo = false, hasOther = false; - std::map<QByteArray, PortInfo>::const_iterator portIt; - QByteArray desc = p_profile->description; - - for (portIt = ports.begin(); portIt != 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 += MainWindow::tr(" (unplugged)").toUtf8().constData(); - - if (!p_profile->available) - desc += MainWindow::tr(" (unavailable)").toUtf8().constData(); - - QString parseId = QString::fromUtf8(p_profile->name); - int plus = parseId.indexOf(QLatin1Char('+')); - if (plus != -1) { - parseId = parseId.left(plus); - } - auto list = parseId.split(QRegularExpression(QLatin1String("[:\\-]"))); - parseId.clear(); - for (auto p : list) { - if (p == QLatin1String("input") || p == QLatin1String("output")) - continue; - if (parseId.isEmpty() || p.startsWith(QLatin1String("extra"))) { - parseId.append(p); - } - } - //qDebug() << "ParseID:" << parseId; - ProfileGroup &group = profiles[parseId]; - if (p_profile->available) { - group.available = true; - } - group.addEntry(p_profile->name, desc.constData()); - } -} diff --git a/src/helper.h b/src/helper.h deleted file mode 100644 index 823f3e1..0000000 --- a/src/helper.h +++ /dev/null @@ -1,61 +0,0 @@ -#ifndef _HELPER_H_ -#define _HELPER_H_ - -#include "pavucontrol.h" -#include <pulse/ext-stream-restore.h> -#if HAVE_EXT_DEVICE_RESTORE_API -# include <pulse/ext-device-restore.h> -#endif - -#include <set> -#include <map> -#include <QByteArray> -#include <QMap> -#include <vector> - -struct ProfileEntry { - QByteArray id; - QStringList tokens; - QString getName() const; -}; - -struct ProfileGroup { - ProfileGroup() : available(false) {} - bool available; - QString name; - QList<ProfileEntry> entries; - QString getProfileName(); - void addEntry(const char* id, const char* name); - bool containsProfile(const QByteArray &pro) const; -}; - -struct PortInfo { - QByteArray name; - QByteArray description; - uint32_t priority; - int available; - int direction; - int64_t latency_offset; - std::vector<QByteArray> profiles; -}; - - -/* 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; - } -}; - -void populatePorts(const pa_card_info &info, std::map<QByteArray, PortInfo> &ports); - - -void groupProfiles(const std::set<pa_card_profile_info2 *, profile_prio_compare> &profile_priorities, - const std::map<QByteArray, PortInfo> &ports, - QMap<QString, ProfileGroup> &profiles); - -#endif diff --git a/src/icons/checkmark.svg b/src/icons/checkmark.svg new file mode 100644 index 0000000..214db50 --- /dev/null +++ b/src/icons/checkmark.svg @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + width="200mm" + height="200mm" + viewBox="0 0 200 200" + version="1.1" + id="svg5" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg"> + <defs + id="defs2" /> + <g + id="layer1"> + <path + style="fill:none;fill-rule:evenodd;stroke:#800000;stroke-width:13;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 11.632616,103.25917 C 62.406956,156.18139 50.284158,255.87375 124.78438,132.14843 199.28477,8.4228577 183.63194,8.1400739 183.63194,8.1400739" + id="path42" /> + </g> +</svg> diff --git a/src/icons/mute-off.svg b/src/icons/mute-off.svg new file mode 100644 index 0000000..6e310bb --- /dev/null +++ b/src/icons/mute-off.svg @@ -0,0 +1,31 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + width="200mm" + height="200mm" + viewBox="0 0 200 200" + version="1.1" + id="svg5" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg"> + <defs + id="defs2" /> + <g + id="layer1"> + <g + id="g1552"> + <path + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 167.98653,21.199967 V 195.7005 L 60.320394,134.08789 V 66.045289 L 167.6673,3.9454664 Z" + id="path60" /> + <rect + style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect1309" + width="23.082476" + height="67.013138" + x="30.375635" + y="67.074753" /> + </g> + </g> +</svg> diff --git a/src/icons/mute-on.svg b/src/icons/mute-on.svg new file mode 100644 index 0000000..24e33f4 --- /dev/null +++ b/src/icons/mute-on.svg @@ -0,0 +1,49 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + width="200mm" + height="200mm" + viewBox="0 0 200 200" + version="1.1" + id="svg5" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg"> + <defs + id="defs2" /> + <g + id="layer1"> + <g + id="g1552"> + <path + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 167.98653,21.199967 V 195.7005 L 60.320394,134.08789 V 66.045289 L 167.6673,3.9454664 Z" + id="path60" /> + <rect + style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect1309" + width="23.082476" + height="67.013138" + x="30.375635" + y="67.074753" /> + </g> + <g + id="g2529" + transform="translate(-124.74691,-21.687646)"> + <circle + style="opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path1576" + cx="264.53412" + cy="160.82233" + r="46.784809" /> + <path + style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 294.14326,130.46793 -60.20129,60.20128 z" + id="path1963" /> + <path + style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 234.40776,131.0912 60.20129,60.20128 z" + id="path2285" /> + </g> + </g> +</svg> diff --git a/src/icons/none.svg b/src/icons/none.svg new file mode 100644 index 0000000..26e5ace --- /dev/null +++ b/src/icons/none.svg @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + width="200mm" + height="200mm" + viewBox="0 0 200 200" + version="1.1" + id="svg5" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg"> + <defs + id="defs2" /> + <g + id="layer1"> + </g> +</svg> diff --git a/src/main.cpp b/src/main.cpp new file mode 100644 index 0000000..a06f6f5 --- /dev/null +++ b/src/main.cpp @@ -0,0 +1,306 @@ +#include "main.h" +#include "mainwindow.h" +#include "slxoutput.h" + +#include <cstdio> +#include <cstring> +#include <cstddef> +#include <QVector> +#include <QGuiApplication> +#include <QTimer> +#include <PulseAudioQt/Context> +#include <PulseAudioQt/Server> +#include <PulseAudioQt/Profile> +#include <PulseAudioQt/PulseObject> +#include <PulseAudioQt/SinkInput> +#include <PulseAudioQt/Sink> +#include <PulseAudioQt/Card> +#include <PulseAudioQt/Port> +#include <QList> +#include <QSet> +#include <QTimer> +// libkf5pulseaudioqt-dev + +// Public + +/** Ignore any signals from GUI elements when this is true. Set when we're updating the GUI */ +bool g_IgnoreGui; + +// Private + +/** If not empty, on profile change, if profile belings to this card, make its sink default */ +static QString _pendingCardDefault; + +static QSet<QString> _donePorts; + +static QTimer _updateDelay; + +static MainWindow *_mainWindow; + +static void queueGuiUpdate(int ms = 50) +{ + _updateDelay.start(ms); +} + +static void updateActiveOutput() +{ + g_IgnoreGui = true; + _mainWindow->mark(); + auto *i = PulseAudioQt::Context::instance(); + //QSet<int> usedCards; + auto cards = i->cards(); + printf(".--------------------------------------------.\n"); + for (auto *sink : i->sinks()) { + QString cardName = sink->cardIndex() < cards.size() ? cards.at(sink->cardIndex())->name() : QString(); + int portIndex = -1; + //usedCards.insert(sink->cardIndex()); + for (auto *port : sink->ports()) { + portIndex++; + //if (port->availability() == PulseAudioQt::Port::Unavailable) + // continue; + bool active = (sink->isDefault() && portIndex == sink->activePortIndex()); + printf("[%c] Output: '%s %s', volume: %d, mute: %d\n", + active ? 'x' : ' ', + sink->description().toLocal8Bit().constData(), port->description().toLocal8Bit().constData(), + (int)sink->volume(), (int)sink->isMuted()); + qint64 volume = sink->volume(); + QString id = cardName + sink->name() + port->name(); + if (active) { + if (!_donePorts.contains(id)) { + _donePorts.insert(id); + if (volume < 60000) { + volume = 65535; + sink->setVolume(volume); + } + } + } + QString title = sink->description() + ", " + port->description(); + _mainWindow->getOutput(id, true, title)->updateOutput(title, + active, sink->isMuted(), sink->isVolumeWritable() ? sink->volume() : -1, QString(), sink->name(), port->name()); + } + } + for (auto *card : cards) { + QString cardDescription = card->description(); + int profIndex = -1; + for (auto *profile : card->profiles()) { + profIndex++; + if (profIndex == card->activeProfileIndex() || profile->availability() == PulseAudioQt::Profile::Unavailable) + continue; + if (profile->sinks() == 0) + continue; + printf("[ ] Output: '%s', sinks: %d\n", + profile->description().toLocal8Bit().constData(), profile->sinks()); + QString id = card->name() + profile->name(); + QString title = cardDescription + ", " + profile->description(); + _mainWindow->getOutput(id, false, title)->updateOutput(title, + false, false, -1, card->name(), QString(), profile->name()); + } + } + printf("`--------------------------------------------´\n"); + _mainWindow->sweep(); + g_IgnoreGui = false; +} + +static void checkShouldSetDefault() +{ + if (_pendingCardDefault.isEmpty()) + return; + printf("Pending card default to %s\n", _pendingCardDefault.toLocal8Bit().constData()); + auto *i = PulseAudioQt::Context::instance(); + int cardIdx = -1; + for (auto *card : i->cards()) { + cardIdx++; + if (card->name() == _pendingCardDefault && !card->ports().isEmpty()) + break; + } + for (auto *sink : i->sinks()) { + if (sink->cardIndex() == cardIdx) { + printf("MATCH SET!\n"); + sink->setDefault(true); + sink->setMuted(false); + _pendingCardDefault.clear(); + } + } +} + +static void newCardAppeared(PulseAudioQt::Card *card) +{ + //if (_doneCards.contains(card->name())) + // return; + auto *i = PulseAudioQt::Context::instance(); + QCoreApplication::connect(card, &PulseAudioQt::Card::profilesChanged, [=]() { + printf("Card %p profiles changed\n", card); + }); + QCoreApplication::connect(card, &PulseAudioQt::Card::activeProfileIndexChanged, [=]() { + printf("Card %p active profile index changed\n", card); + checkShouldSetDefault(); + queueGuiUpdate(); + }); + QCoreApplication::connect(card, &PulseAudioQt::Card::portsChanged, [=]() { + printf("Card %p ports changed\n", card); + checkShouldSetDefault(); + queueGuiUpdate(); + }); + /* + QCoreApplication::connect(card, &PulseAudioQt::Card::sinksChanged, [=]() { + printf("Card %p sinks changed\n", card); + }); + */ +} + +static void newSinkAppeared(PulseAudioQt::Sink *sink) +{ + for (auto *port : sink->ports()) { + printf(" Port: %s\n", port->name().toLocal8Bit().constData()); + } + QCoreApplication::connect(sink, &PulseAudioQt::Sink::activePortIndexChanged, [=]() { + printf("Sink %p changed active port\n", sink); + queueGuiUpdate(); + }); + QCoreApplication::connect(sink, &PulseAudioQt::Sink::defaultChanged, [=]() { + printf("Sink %p changed default\n", sink); + queueGuiUpdate(); + }); + QCoreApplication::connect(sink, &PulseAudioQt::Sink::volumeChanged, [=]() { + queueGuiUpdate(); + }); + QCoreApplication::connect(sink, &PulseAudioQt::Sink::isVolumeWritableChanged, [=]() { + queueGuiUpdate(); + }); + queueGuiUpdate(); +} + +void setMuted(const QString &sink, bool muted) +{ + auto *i = PulseAudioQt::Context::instance(); + + for (auto *sp : i->sinks()) { + if (sp->name() == sink) { + sp->setMuted(muted); + } + } + queueGuiUpdate(); +} + +void setSinkVolume(const QString &sink, int volume) +{ + auto *i = PulseAudioQt::Context::instance(); + + for (auto *sp : i->sinks()) { + if (sp->name() == sink) { + sp->setVolume(volume); + queueGuiUpdate(250); + } + } +} + +void enableCard(const QString &card, const QString &profile) +{ + auto *i = PulseAudioQt::Context::instance(); + PulseAudioQt::Card *matchingCard = nullptr; + int profileIdx = -1; + int cardIdx = -1; + + _pendingCardDefault.clear(); + for (auto *cp : i->cards()) { + cardIdx++; + if (cp->name() != card) + continue; + int i = -1; + int exactProfileIdx = -1; + for (auto *pp : cp->profiles()) { + i++; + if (pp->availability() == PulseAudioQt::Profile::Unavailable) + continue; + if (pp->description().contains(QLatin1String("Duplex"))) { + // Prefer Duplex mode for analog outputs, it's usually listed after output only + profileIdx = i; + } + if (profileIdx == -1) { + // Otherwise default to first one in list + profileIdx = i; + } + if (pp->name() == profile) { + exactProfileIdx = i; + } + } + if (exactProfileIdx != -1) { + profileIdx = exactProfileIdx; + } + if (profileIdx != -1) { + matchingCard = cp; + break; + } + } + if (matchingCard != nullptr && profileIdx < matchingCard->profiles().size()) { + if (matchingCard->activeProfileIndex() == profileIdx) { + for (auto *sink : i->sinks()) { + if (sink->cardIndex() == cardIdx) { + sink->setMuted(false); + sink->setDefault(true); + } + } + } else { + matchingCard->setActiveProfileIndex(profileIdx); + _pendingCardDefault = matchingCard->name(); + } + } + queueGuiUpdate(); +} + +void enableSink(const QString &sink, const QString &port) +{ + auto *i = PulseAudioQt::Context::instance(); + + _pendingCardDefault.clear(); + for (auto *sp : i->sinks()) { + if (sp->name() != sink) + continue; + int i = -1; + for (auto *pp : sp->ports()) { + i++; + if (pp->name() == port) { + sp->setDefault(true); + sp->setMuted(false); + sp->setActivePortIndex(i); + } + } + } + queueGuiUpdate(); +} + +int main(int argc, char **argv) +{ + QApplication a(argc, argv); + printf("Muh\n"); + auto *i = PulseAudioQt::Context::instance(); + printf("Pa is %p = %d\n", i, (int)i->isValid()); + printf("Cards: %d\n", (int)i->cards().size()); + + QTimer::singleShot(100, [=]() { + for (auto *card : i->cards()) { + newCardAppeared(card); + printf("Card: %s (index: %d)\n", card->name().toLocal8Bit().constData(), (int)card->index()); + for (auto *profile : card->profiles()) { + printf(" Profile: %s\n", profile->name().toLocal8Bit().constData()); + } + } + for (auto *sink : i->sinks()) { + printf("Sink: %s (for card index %d)\n", sink->name().toLocal8Bit().constData(), sink->cardIndex()); + newSinkAppeared(sink); + } + QCoreApplication::connect(i, &PulseAudioQt::Context::cardAdded, &newCardAppeared); + QCoreApplication::connect(i, &PulseAudioQt::Context::sinkAdded, &newSinkAppeared); + printf("Initial output\n"); + queueGuiUpdate(); + }); + + QCoreApplication::connect(&_updateDelay, &QTimer::timeout, &updateActiveOutput); + _updateDelay.setInterval(50); + _updateDelay.setSingleShot(true); + + _mainWindow = new MainWindow; + _mainWindow->show(); + + return a.exec(); +} diff --git a/src/main.h b/src/main.h new file mode 100644 index 0000000..7402d6e --- /dev/null +++ b/src/main.h @@ -0,0 +1,16 @@ +#ifndef _MAIN_H_ +#define _MAIN_H_ + +#include <QString> + +extern bool g_IgnoreGui; + +void setMuted(const QString &sink, bool muted); + +void setSinkVolume(const QString &sink, int volume); + +void enableCard(const QString &card, const QString &profile); + +void enableSink(const QString &sink, const QString &port); + +#endif diff --git a/src/mainwindow.cc b/src/mainwindow.cc deleted file mode 100644 index 0b6b310..0000000 --- a/src/mainwindow.cc +++ /dev/null @@ -1,1124 +0,0 @@ -/*** - This file is part of pavucontrol. - - Copyright 2006-2008 Lennart Poettering - Copyright 2009 Colin Guthrie - - pavucontrol 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. - - pavucontrol 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 pavucontrol. If not, see <https://www.gnu.org/licenses/>. -***/ - -#ifdef HAVE_CONFIG_H -#include <config.h> -#endif - -#include <QDebug> -#include <set> - -#include "mainwindow.h" -#include "cardwidget.h" -#include "sinkwidget.h" -#include "sourcewidget.h" -#include "sinkinputwidget.h" -#include "sourceoutputwidget.h" -#include "rolewidget.h" -#include <QIcon> -#include <QStyle> -#include <QSettings> - -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; - } -}; - -MainWindow::MainWindow(): - QDialog(), - showSinkInputType(SINK_INPUT_CLIENT), - showSinkType(SINK_ALL), - showSourceOutputType(SOURCE_OUTPUT_CLIENT), - showSourceType(SOURCE_NO_MONITOR), - eventRoleWidget(nullptr), - canRenameDevices(false), - m_connected(false), - m_config_filename(nullptr) { - - setupUi(this); - - sinkInputTypeComboBox->setCurrentIndex((int) showSinkInputType); - sourceOutputTypeComboBox->setCurrentIndex((int) showSourceOutputType); - sinkTypeComboBox->setCurrentIndex((int) showSinkType); - sourceTypeComboBox->setCurrentIndex((int) showSourceType); - - connect(sinkInputTypeComboBox, static_cast<void(QComboBox::*)(int)>(&QComboBox::currentIndexChanged), this, &MainWindow::onSinkInputTypeComboBoxChanged); - connect(sourceOutputTypeComboBox, static_cast<void(QComboBox::*)(int)>(&QComboBox::currentIndexChanged), this, &MainWindow::onSourceOutputTypeComboBoxChanged); - connect(sinkTypeComboBox, static_cast<void(QComboBox::*)(int)>(&QComboBox::currentIndexChanged), this, &MainWindow::onSinkTypeComboBoxChanged); - connect(sourceTypeComboBox, static_cast<void(QComboBox::*)(int)>(&QComboBox::currentIndexChanged), this, &MainWindow::onSourceTypeComboBoxChanged); - connect(showVolumeMetersCheckButton, &QCheckBox::toggled, this, &MainWindow::onShowVolumeMetersCheckButtonToggled); - - QAction * quit = new QAction{this}; - connect(quit, &QAction::triggered, this, &QWidget::close); - quit->setShortcut(QKeySequence::Quit); - addAction(quit); - - const QSettings config; - - showVolumeMetersCheckButton->setChecked(config.value(QStringLiteral("window/showVolumeMeters"), true).toBool()); - - const QSize last_size = config.value(QStringLiteral("window/size")).toSize(); - if (last_size.isValid()) - resize(last_size); - - const QVariant sinkInputTypeSelection = config.value(QStringLiteral("window/sinkInputType")); - if (sinkInputTypeSelection.isValid()) - sinkInputTypeComboBox->setCurrentIndex(sinkInputTypeSelection.toInt()); - - const QVariant sourceOutputTypeSelection = config.value(QStringLiteral("window/sourceOutputType")); - if (sourceOutputTypeSelection.isValid()) - sourceOutputTypeComboBox->setCurrentIndex(sourceOutputTypeSelection.toInt()); - - const QVariant sinkTypeSelection = config.value(QStringLiteral("window/sinkType")); - if (sinkTypeSelection.isValid()) - sinkTypeComboBox->setCurrentIndex(sinkTypeSelection.toInt()); - - const QVariant sourceTypeSelection = config.value(QStringLiteral("window/sourceType")); - if (sourceTypeSelection.isValid()) - sourceTypeComboBox->setCurrentIndex(sourceTypeSelection.toInt()); - - /* Hide first and show when we're connected */ - notebook->hide(); - connectingLabel->show(); -} - -MainWindow::~MainWindow() { - QSettings config; - config.setValue(QStringLiteral("window/size"), size()); - config.setValue(QStringLiteral("window/sinkInputType"), sinkInputTypeComboBox->currentIndex()); - config.setValue(QStringLiteral("window/sourceOutputType"), sourceOutputTypeComboBox->currentIndex()); - config.setValue(QStringLiteral("window/sinkType"), sinkTypeComboBox->currentIndex()); - config.setValue(QStringLiteral("window/sourceType"), sourceTypeComboBox->currentIndex()); - config.setValue(QStringLiteral("window/showVolumeMeters"), showVolumeMetersCheckButton->isChecked()); - - while (!clientNames.empty()) { - auto i = clientNames.begin(); - g_free(i->second); - clientNames.erase(i); - } -} - -class DeviceWidget; -static void updatePorts(DeviceWidget *w, std::map<QByteArray, PortInfo> &ports) { - std::map<QByteArray, PortInfo>::iterator it; - PortInfo p; - - for (auto & port : w->ports) { - 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 += MainWindow::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 += MainWindow::tr(" (unavailable)").toUtf8().constData(); - else - desc += MainWindow::tr(" (unplugged)").toUtf8().constData(); - } - - port.second = desc; - } - - it = ports.find(w->activePort); - - if (it != ports.end()) { - p = it->second; - w->setLatencyOffset(p.latency_offset); - } -} - -static void setIconByName(QLabel* label, const char* name, const char* fallback_name = nullptr) { - QIcon icon = QIcon::fromTheme(QString::fromLatin1(name)); - if (icon.isNull() || icon.availableSizes().isEmpty()) - icon = QIcon::fromTheme(QString::fromLatin1(fallback_name)); - int size = label->style()->pixelMetric(QStyle::PM_ToolBarIconSize); - QPixmap pix = icon.pixmap(size, size); - label->setPixmap(pix); -} - -void MainWindow::updateCard(const pa_card_info &info) { - CardWidget *w; - bool is_new = false; - const char *description, *icon; - std::set<pa_card_profile_info2 *, profile_prio_compare> profile_priorities; - - if (cardWidgets.count(info.index)) - w = cardWidgets[info.index]; - else { - cardWidgets[info.index] = w = new CardWidget(this); - cardsVBox->layout()->addWidget(w); - w->index = info.index; - is_new = true; - } - - w->updating = true; - - description = pa_proplist_gets(info.proplist, PA_PROP_DEVICE_DESCRIPTION); - w->name = description ? description : info.name; - w->nameLabel->setText(QString::fromUtf8(w->name)); - - icon = pa_proplist_gets(info.proplist, PA_PROP_DEVICE_ICON_NAME); - setIconByName(w->iconImage, icon, "audio-card"); - - w->hasSinks = w->hasSources = false; - - profile_priorities.clear(); - for (pa_card_profile_info2 ** p_profile = info.profiles2; p_profile && *p_profile != nullptr; ++p_profile) { - w->hasSinks = w->hasSinks || ((*p_profile)->n_sinks > 0); - w->hasSources = w->hasSources || ((*p_profile)->n_sources > 0); - profile_priorities.insert(*p_profile); - } - - populatePorts(info, w->ports); - - groupProfiles(profile_priorities, w->ports, w->profiles); - - w->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. */ - if (w->hasSinks) { - std::map<uint32_t, SinkWidget*>::iterator it; - - for (it = sinkWidgets.begin() ; it != sinkWidgets.end(); it++) { - SinkWidget *sw = it->second; - - if (sw->card_index == w->index) { - sw->updating = true; - updatePorts(sw, w->ports); - sw->updating = false; - } - } - } - - if (w->hasSources) { - std::map<uint32_t, SourceWidget*>::iterator it; - - for (it = sourceWidgets.begin() ; it != sourceWidgets.end(); it++) { - SourceWidget *sw = it->second; - - if (sw->card_index == w->index) { - sw->updating = true; - updatePorts(sw, w->ports); - sw->updating = false; - } - } - } - w->prepareMenu(); - - if (is_new) - updateDeviceVisibility(); - - w->updating = false; -} - -bool MainWindow::updateSink(const pa_sink_info &info) { - SinkWidget *w; - bool is_new = false; - - const char *icon; - std::map<uint32_t, CardWidget*>::iterator cw; - std::set<pa_sink_port_info,sink_port_prio_compare> port_priorities; - - if (sinkWidgets.count(info.index)) - w = sinkWidgets[info.index]; - else { - sinkWidgets[info.index] = w = new SinkWidget(this); - w->setChannelMap(info.channel_map, !!(info.flags & PA_SINK_DECIBEL_VOLUME)); - sinksVBox->layout()->addWidget(w); - w->index = info.index; - w->monitor_index = info.monitor_source; - is_new = true; - - w->setBaseVolume(info.base_volume); - w->setVolumeMeterVisible(showVolumeMetersCheckButton->isChecked()); - } - - w->updating = true; - - w->card_index = info.card; - w->name = info.name; - w->description = info.description; - w->type = info.flags & PA_SINK_HARDWARE ? SINK_HARDWARE : SINK_VIRTUAL; - - w->boldNameLabel->setText(QLatin1String("")); - gchar *txt = g_markup_printf_escaped("%s", info.description); - w->nameLabel->setText(QString::fromUtf8(static_cast<char*>(txt))); - w->nameLabel->setToolTip(QString::fromUtf8(info.description)); - g_free(txt); - - icon = pa_proplist_gets(info.proplist, PA_PROP_DEVICE_ICON_NAME); - setIconByName(w->iconImage, icon, "audio-card"); - - w->setVolume(info.volume); - w->muteToggleButton->setChecked(info.mute); - - w->setDefault(w->name == defaultSinkName); - - port_priorities.clear(); - for (uint32_t i=0; i<info.n_ports; ++i) { - port_priorities.insert(*info.ports[i]); - } - - w->ports.clear(); - for (const auto & port_prioritie : port_priorities) - w->ports.push_back(std::pair<QByteArray,QByteArray>(port_prioritie.name, port_prioritie.description)); - - w->activePort = info.active_port ? info.active_port->name : ""; - - cw = cardWidgets.find(info.card); - - if (cw != cardWidgets.end()) - updatePorts(w, cw->second->ports); - -#ifdef PA_SINK_SET_FORMATS - w->setDigital(info.flags & PA_SINK_SET_FORMATS); -#endif - - w->prepareMenu(); - - w->updating = false; - if (is_new) - updateDeviceVisibility(); - - return is_new; -} - -static void suspended_callback(pa_stream *s, void *userdata) { - MainWindow *w = static_cast<MainWindow*>(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) { - MainWindow *w = static_cast<MainWindow*>(userdata); - const void *data; - double v; - - if (pa_stream_peek(s, &data, &length) < 0) { - show_error(MainWindow::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; - - w->updateVolumeMeter(pa_stream_get_device_index(s), pa_stream_get_monitor_stream(s), v); -} - -pa_stream* MainWindow::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); - - if (!(s = pa_stream_new(get_context(), tr("Peak detect").toUtf8().constData(), &ss, nullptr))) { - show_error(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) { - show_error(tr("Failed to connect monitoring stream").toUtf8().constData()); - pa_stream_unref(s); - return nullptr; - } - return s; -} - -void MainWindow::createMonitorStreamForSinkInput(SinkInputWidget* w, uint32_t sink_idx) { - if (!sinkWidgets.count(sink_idx)) - return; - - if (w->peak) { - pa_stream_disconnect(w->peak); - w->peak = nullptr; - } - - w->peak = createMonitorStreamForSource(sinkWidgets[sink_idx]->monitor_index, w->index); -} - -void MainWindow::updateSource(const pa_source_info &info) { - SourceWidget *w; - bool is_new = false; - const char *icon; - std::map<uint32_t, CardWidget*>::iterator cw; - std::set<pa_source_port_info,source_port_prio_compare> port_priorities; - - if (sourceWidgets.count(info.index)) - w = sourceWidgets[info.index]; - else { - sourceWidgets[info.index] = w = new SourceWidget(this); - w->setChannelMap(info.channel_map, !!(info.flags & PA_SOURCE_DECIBEL_VOLUME)); - sourcesVBox->layout()->addWidget(w); - - w->index = info.index; - is_new = true; - - w->setBaseVolume(info.base_volume); - w->setVolumeMeterVisible(showVolumeMetersCheckButton->isChecked()); - - if (pa_context_get_server_protocol_version(get_context()) >= 13) - w->peak = createMonitorStreamForSource(info.index, -1, !!(info.flags & PA_SOURCE_NETWORK)); - } - - w->updating = true; - - w->card_index = info.card; - w->name = info.name; - w->description = info.description; - w->type = info.monitor_of_sink != PA_INVALID_INDEX ? SOURCE_MONITOR : (info.flags & PA_SOURCE_HARDWARE ? SOURCE_HARDWARE : SOURCE_VIRTUAL); - - w->boldNameLabel->setText(QLatin1String("")); - gchar *txt = g_markup_printf_escaped("%s", info.description); - w->nameLabel->setText(QString::fromUtf8(static_cast<char*>(txt))); - w->nameLabel->setToolTip(QString::fromUtf8(info.description)); - g_free(txt); - - icon = pa_proplist_gets(info.proplist, PA_PROP_DEVICE_ICON_NAME); - setIconByName(w->iconImage, icon, "audio-input-microphone"); - - w->setVolume(info.volume); - w->muteToggleButton->setChecked(info.mute); - - w->setDefault(w->name == defaultSourceName); - - port_priorities.clear(); - for (uint32_t i=0; i<info.n_ports; ++i) { - port_priorities.insert(*info.ports[i]); - } - - - w->ports.clear(); - for (const auto & port_prioritie : port_priorities) - w->ports.push_back(std::pair<QByteArray,QByteArray>(port_prioritie.name, port_prioritie.description)); - - w->activePort = info.active_port ? info.active_port->name : ""; - - cw = cardWidgets.find(info.card); - - if (cw != cardWidgets.end()) - updatePorts(w, cw->second->ports); - - w->prepareMenu(); - - w->updating = false; - - if (is_new) - updateDeviceVisibility(); -} - - -void MainWindow::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, def); -} - - -void MainWindow::updateSinkInput(const pa_sink_input_info &info) { - const char *t; - SinkInputWidget *w; - bool is_new = false; - - if ((t = pa_proplist_gets(info.proplist, "module-stream-restore.id"))) { - if (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; - } - } - - if (sinkInputWidgets.count(info.index)) { - w = sinkInputWidgets[info.index]; - if (pa_context_get_server_protocol_version(get_context()) >= 13) - if (w->sinkIndex() != info.sink) - createMonitorStreamForSinkInput(w, info.sink); - } else { - sinkInputWidgets[info.index] = w = new SinkInputWidget(this); - w->setChannelMap(info.channel_map, true); - streamsVBox->layout()->addWidget(w); - - w->index = info.index; - w->clientIndex = info.client; - is_new = true; - w->setVolumeMeterVisible(showVolumeMetersCheckButton->isChecked()); - - if (pa_context_get_server_protocol_version(get_context()) >= 13) - createMonitorStreamForSinkInput(w, info.sink); - } - - w->updating = true; - - w->type = info.client != PA_INVALID_INDEX ? SINK_INPUT_CLIENT : SINK_INPUT_VIRTUAL; - - w->setSinkIndex(info.sink); - - char *txt; - if (clientNames.count(info.client)) { - w->boldNameLabel->setText(QString::fromUtf8(txt = g_markup_printf_escaped("<b>%s</b>", clientNames[info.client]))); - g_free(txt); - w->nameLabel->setText(QString::fromUtf8(txt = g_markup_printf_escaped(": %s", info.name))); - g_free(txt); - } else { - w->boldNameLabel->setText(QLatin1String("")); - w->nameLabel->setText(QString::fromUtf8(info.name)); - } - - w->nameLabel->setToolTip(QString::fromUtf8(info.name)); - - setIconFromProplist(w->iconImage, info.proplist, "audio-card"); - - w->setVolume(info.volume); - w->muteToggleButton->setChecked(info.mute); - - w->updating = false; - - if (is_new) - updateDeviceVisibility(); -} - -void MainWindow::updateSourceOutput(const pa_source_output_info &info) { - SourceOutputWidget *w; - 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; - - if (sourceOutputWidgets.count(info.index)) - w = sourceOutputWidgets[info.index]; - else { - sourceOutputWidgets[info.index] = w = new SourceOutputWidget(this); -#if HAVE_SOURCE_OUTPUT_VOLUMES - w->setChannelMap(info.channel_map, true); -#endif - recsVBox->layout()->addWidget(w); - - w->index = info.index; - w->clientIndex = info.client; - is_new = true; - w->setVolumeMeterVisible(showVolumeMetersCheckButton->isChecked()); - } - - w->updating = true; - - w->type = info.client != PA_INVALID_INDEX ? SOURCE_OUTPUT_CLIENT : SOURCE_OUTPUT_VIRTUAL; - - w->setSourceIndex(info.source); - - char *txt; - if (clientNames.count(info.client)) { - w->boldNameLabel->setText(QString::fromUtf8(txt = g_markup_printf_escaped("<b>%s</b>", clientNames[info.client]))); - g_free(txt); - w->nameLabel->setText(QString::fromUtf8(txt = g_markup_printf_escaped(": %s", info.name))); - g_free(txt); - } else { - w->boldNameLabel->setText(QLatin1String("")); - w->nameLabel->setText(QString::fromUtf8(info.name)); - } - - w->nameLabel->setToolTip(QString::fromUtf8(info.name)); - - setIconFromProplist(w->iconImage, info.proplist, "audio-input-microphone"); - -#if HAVE_SOURCE_OUTPUT_VOLUMES - w->setVolume(info.volume); - w->muteToggleButton->setChecked(info.mute); -#endif - - w->updating = false; - - if (is_new) - updateDeviceVisibility(); -} - -void MainWindow::updateClient(const pa_client_info &info) { - g_free(clientNames[info.index]); - clientNames[info.index] = g_strdup(info.name); - - for (auto & sinkInputWidget : sinkInputWidgets) { - SinkInputWidget *w = sinkInputWidget.second; - - if (!w) - continue; - - if (w->clientIndex == info.index) { - gchar *txt; - w->boldNameLabel->setText(QString::fromUtf8(txt = g_markup_printf_escaped("<b>%s</b>", info.name))); - g_free(txt); - } - } -} - -void MainWindow::updateServer(const pa_server_info &info) { - defaultSourceName = info.default_source_name ? info.default_source_name : ""; - defaultSinkName = info.default_sink_name ? info.default_sink_name : ""; - - for (auto & sinkWidget : sinkWidgets) { - SinkWidget *w = sinkWidget.second; - - if (!w) - continue; - - w->updating = true; - w->setDefault(w->name == defaultSinkName); - - w->updating = false; - } - - for (auto & sourceWidget : sourceWidgets) { - SourceWidget *w = sourceWidget.second; - - if (!w) - continue; - - w->updating = true; - w->setDefault(w->name == defaultSourceName); - w->updating = false; - } -} - -bool MainWindow::createEventRoleWidget() { - if (eventRoleWidget) - return false; - - pa_channel_map cm = { - 1, { PA_CHANNEL_POSITION_MONO } - }; - - eventRoleWidget = new RoleWidget(this); - streamsVBox->layout()->addWidget(eventRoleWidget); - eventRoleWidget->role = "sink-input-by-media-role:event"; - eventRoleWidget->setChannelMap(cm, true); - - eventRoleWidget->boldNameLabel->setText(QLatin1String("")); - eventRoleWidget->nameLabel->setText(tr("System Sounds")); - - setIconByName(eventRoleWidget->iconImage, "multimedia-volume-control"); - - eventRoleWidget->device = ""; - - eventRoleWidget->updating = true; - - pa_cvolume volume; - volume.channels = 1; - volume.values[0] = PA_VOLUME_NORM; - - eventRoleWidget->setVolume(volume); - eventRoleWidget->muteToggleButton->setChecked(false); - - eventRoleWidget->updating = false; - return TRUE; -} - -void MainWindow::deleteEventRoleWidget() { - delete eventRoleWidget; - eventRoleWidget = nullptr; -} - -void MainWindow::updateRole(const pa_ext_stream_restore_info &info) { - pa_cvolume volume; - bool is_new = false; - - if (strcmp(info.name, "sink-input-by-media-role:event") != 0) - return; - - is_new = createEventRoleWidget(); - - eventRoleWidget->updating = true; - - eventRoleWidget->device = info.device ? info.device : ""; - - volume.channels = 1; - volume.values[0] = pa_cvolume_max(&info.volume); - - eventRoleWidget->setVolume(volume); - eventRoleWidget->muteToggleButton->setChecked(info.mute); - - eventRoleWidget->updating = false; - - if (is_new) - updateDeviceVisibility(); -} - -#if HAVE_EXT_DEVICE_RESTORE_API -void MainWindow::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 MainWindow::updateVolumeMeter(uint32_t source_index, uint32_t sink_input_idx, double v) { - if (sink_input_idx != PA_INVALID_INDEX) { - SinkInputWidget *w; - - if (sinkInputWidgets.count(sink_input_idx)) { - w = sinkInputWidgets[sink_input_idx]; - w->updatePeak(v); - } - - } else { - - for (auto & sinkWidget : sinkWidgets) { - SinkWidget* w = sinkWidget.second; - - if (w->monitor_index == source_index) - w->updatePeak(v); - } - - for (auto & sourceWidget : sourceWidgets) { - SourceWidget* w = sourceWidget.second; - - if (w->index == source_index) - w->updatePeak(v); - } - - for (auto & sourceOutputWidget : sourceOutputWidgets) { - SourceOutputWidget* w = sourceOutputWidget.second; - - if (w->sourceIndex() == source_index) - w->updatePeak(v); - } - } -} - -static guint idle_source = 0; - -gboolean idle_cb(gpointer data) { - ((MainWindow*) data)->reallyUpdateDeviceVisibility(); - idle_source = 0; - return FALSE; -} - -void MainWindow::setConnectionState(gboolean connected) { - if (m_connected != connected) { - m_connected = connected; - if (m_connected) { - connectingLabel->hide(); - notebook->show(); - } else { - notebook->hide(); - connectingLabel->show(); - } - } -} - -void MainWindow::updateDeviceVisibility() { - - if (idle_source) - return; - - idle_source = g_idle_add(idle_cb, this); -} - -void MainWindow::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 MainWindow::removeCard(uint32_t index) { - if (!cardWidgets.count(index)) - return; - - delete cardWidgets[index]; - cardWidgets.erase(index); - updateDeviceVisibility(); -} - -void MainWindow::removeSink(uint32_t index) { - if (!sinkWidgets.count(index)) - return; - - delete sinkWidgets[index]; - sinkWidgets.erase(index); - updateDeviceVisibility(); -} - -void MainWindow::removeSource(uint32_t index) { - if (!sourceWidgets.count(index)) - return; - - delete sourceWidgets[index]; - sourceWidgets.erase(index); - updateDeviceVisibility(); -} - -void MainWindow::removeSinkInput(uint32_t index) { - if (!sinkInputWidgets.count(index)) - return; - - delete sinkInputWidgets[index]; - sinkInputWidgets.erase(index); - updateDeviceVisibility(); -} - -void MainWindow::removeSourceOutput(uint32_t index) { - if (!sourceOutputWidgets.count(index)) - return; - - delete sourceOutputWidgets[index]; - sourceOutputWidgets.erase(index); - updateDeviceVisibility(); -} - -void MainWindow::removeClient(uint32_t index) { - g_free(clientNames[index]); - clientNames.erase(index); -} - -void MainWindow::removeAllWidgets() { - for (auto & sinkInputWidget : sinkInputWidgets) - removeSinkInput(sinkInputWidget.first); - for (auto & sourceOutputWidget : sourceOutputWidgets) - removeSourceOutput(sourceOutputWidget.first); - for (auto & sinkWidget : sinkWidgets) - removeSink(sinkWidget.first); - for (auto & sourceWidget : sourceWidgets) - removeSource(sourceWidget.first); - for (auto & cardWidget : cardWidgets) - removeCard(cardWidget.first); - for (auto & clientName : clientNames) - removeClient(clientName.first); - deleteEventRoleWidget(); -} - -void MainWindow::setConnectingMessage(const char *string) { - QByteArray markup = "<i>"; - if (!string) - markup += tr("Establishing connection to PulseAudio. Please wait...").toUtf8().constData(); - else - markup += string; - markup += "</i>"; - connectingLabel->setText(QString::fromUtf8(markup)); -} - -void MainWindow::onSinkTypeComboBoxChanged(int /*index*/) { - showSinkType = (SinkType) sinkTypeComboBox->currentIndex(); - - if (showSinkType == (SinkType) -1) - sinkTypeComboBox->setCurrentIndex((int) SINK_ALL); - - updateDeviceVisibility(); -} - -void MainWindow::onSourceTypeComboBoxChanged(int /*index*/) { - showSourceType = (SourceType) sourceTypeComboBox->currentIndex(); - - if (showSourceType == (SourceType) -1) - sourceTypeComboBox->setCurrentIndex((int) SOURCE_NO_MONITOR); - - updateDeviceVisibility(); -} - -void MainWindow::onSinkInputTypeComboBoxChanged(int /*index*/) { - showSinkInputType = (SinkInputType) sinkInputTypeComboBox->currentIndex(); - - if (showSinkInputType == (SinkInputType) -1) - sinkInputTypeComboBox->setCurrentIndex((int) SINK_INPUT_CLIENT); - - updateDeviceVisibility(); -} - -void MainWindow::onSourceOutputTypeComboBoxChanged(int /*index*/) { - showSourceOutputType = (SourceOutputType) sourceOutputTypeComboBox->currentIndex(); - - if (showSourceOutputType == (SourceOutputType) -1) - sourceOutputTypeComboBox->setCurrentIndex((int) SOURCE_OUTPUT_CLIENT); - - updateDeviceVisibility(); -} - - -void MainWindow::onShowVolumeMetersCheckButtonToggled(bool /*toggled*/) { - bool state = showVolumeMetersCheckButton->isChecked(); - pa_operation *o; - - for (auto & sinkWidget : sinkWidgets) { - SinkWidget *sw = sinkWidget.second; - if (sw->peak) { - o = pa_stream_cork(sw->peak, (int)!state, nullptr, nullptr); - if (o) - pa_operation_unref(o); - } - sw->setVolumeMeterVisible(state); - } - for (auto & sourceWidget : sourceWidgets) { - SourceWidget *sw = sourceWidget.second; - if (sw->peak) { - o = pa_stream_cork(sw->peak, (int)!state, nullptr, nullptr); - if (o) - pa_operation_unref(o); - } - sw->setVolumeMeterVisible(state); - } - for (auto & sinkInputWidget : sinkInputWidgets) { - SinkInputWidget *sw = sinkInputWidget.second; - if (sw->peak) { - o = pa_stream_cork(sw->peak, (int)!state, nullptr, nullptr); - if (o) - pa_operation_unref(o); - } - sw->setVolumeMeterVisible(state); - } - for (auto & sourceOutputWidget : sourceOutputWidgets) { - SourceOutputWidget *sw = sourceOutputWidget.second; - if (sw->peak) { - o = pa_stream_cork(sw->peak, (int)!state, nullptr, nullptr); - if (o) - pa_operation_unref(o); - } - sw->setVolumeMeterVisible(state); - } -} diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp new file mode 100644 index 0000000..4860f2b --- /dev/null +++ b/src/mainwindow.cpp @@ -0,0 +1,73 @@ +#include "mainwindow.h" +#include "slxoutput.h" + +MainWindow::MainWindow() : QDialog() +{ + setupUi(this); + setWindowFlags(Qt::WindowStaysOnTopHint | windowFlags()); +} + +MainWindow::~MainWindow() +{ + +} + +// Need to pass newSink as new widget's sink isn't set here yet, so always empty +SlxOutput* MainWindow::getOutput(const QString &id, bool isSink, const QString &newTitle) +{ + SlxOutput* w = _widgets.value(id, nullptr); + if (w == nullptr) { + w = new SlxOutput(nullptr, id); + _widgets.insert(id, w); + bool done = false; + printf("New %s - %s\n", isSink ? "SINK" : "PROF", newTitle.toLocal8Bit().constData()); + printf("Conteints: %d\n", container->count()); + int idx; + for (idx = 0; idx < container->count(); ++idx) { + auto *l = container->itemAt(idx); + SlxOutput *other = qobject_cast<SlxOutput*>(l->widget()); + if (other == nullptr) + continue; + printf(" Comparing %s - %s\n", other->isSink() ? "SINK" : "PROF", other->nameLabel->text().toLocal8Bit().constData()); + if (isSink != other->isSink()) { + if (isSink) + break; + continue; + } + if (newTitle.compare(other->nameLabel->text()) < 0) { + done = true; + printf("Inserting before that (%d)!\n", idx); + container->insertWidget(idx, w); + break; + } + } + if (!done) { + if (idx == -1) { + idx = 0; + } + printf("Inserting before that (%d) 2!\n", idx); + container->insertWidget(idx, w); + } + } + return w; +} + +void MainWindow::mark() +{ + for (auto *w : _widgets) { + w->unused = true; + } +} + +void MainWindow::sweep() +{ + for (QMutableMapIterator<QString, SlxOutput*> it(_widgets); it.hasNext(); ) { + it.next(); + auto *w = it.value(); + if (w->unused) { + printf("Killing %p\n", w); + it.remove(); + w->deleteLater(); + } + } +} diff --git a/src/mainwindow.h b/src/mainwindow.h index 9a91fb1..7f792c5 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -1,113 +1,28 @@ -/*** - This file is part of pavucontrol. - - Copyright 2006-2008 Lennart Poettering - Copyright 2009 Colin Guthrie - - pavucontrol 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. - - pavucontrol 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 pavucontrol. If not, see <https://www.gnu.org/licenses/>. -***/ - -#ifndef mainwindow_h -#define mainwindow_h - -#include "pavucontrol.h" -#include <pulse/ext-stream-restore.h> -#if HAVE_EXT_DEVICE_RESTORE_API -# include <pulse/ext-device-restore.h> -#endif +#ifndef _MAIN_WINDOW_H_ +#define _MAIN_WINDOW_H_ #include <QDialog> +#include <QMap> + #include "ui_mainwindow.h" -class CardWidget; -class SinkWidget; -class SourceWidget; -class SinkInputWidget; -class SourceOutputWidget; -class RoleWidget; +class SlxOutput; -class MainWindow : public QDialog, public Ui::MainWindow { +class MainWindow : public QDialog, public Ui::MainWindow +{ Q_OBJECT + public: MainWindow(); virtual ~MainWindow(); - void updateCard(const pa_card_info &info); - bool updateSink(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); -#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 removeAllWidgets(); + SlxOutput* getOutput(const QString &id, bool isSink, const QString &newTitle); - void setConnectingMessage(const char *string = NULL); - - std::map<uint32_t, CardWidget*> cardWidgets; - std::map<uint32_t, SinkWidget*> sinkWidgets; - std::map<uint32_t, SourceWidget*> sourceWidgets; - std::map<uint32_t, SinkInputWidget*> sinkInputWidgets; - std::map<uint32_t, SourceOutputWidget*> sourceOutputWidgets; - - std::map<uint32_t, char*> clientNames; - SinkInputType showSinkInputType; - SinkType showSinkType; - SourceOutputType showSourceOutputType; - SourceType showSourceType; - -protected Q_SLOTS: - virtual void onSinkInputTypeComboBoxChanged(int index); - virtual void onSourceOutputTypeComboBoxChanged(int index); - virtual void onSinkTypeComboBoxChanged(int index); - virtual void onSourceTypeComboBoxChanged(int index); - virtual void onShowVolumeMetersCheckButtonToggled(bool toggled); - -public: - void setConnectionState(gboolean connected); - void updateDeviceVisibility(); - void reallyUpdateDeviceVisibility(); - pa_stream* createMonitorStreamForSource(uint32_t source_idx, uint32_t stream_idx, bool suspend); - void createMonitorStreamForSinkInput(SinkInputWidget* w, uint32_t sink_idx); - - void setIconFromProplist(QLabel *icon, pa_proplist *l, const char *name); - - RoleWidget *eventRoleWidget; - - bool createEventRoleWidget(); - void deleteEventRoleWidget(); - - QByteArray defaultSinkName, defaultSourceName; - - bool canRenameDevices; + void mark(); + void sweep(); private: - gboolean m_connected; - gchar* m_config_filename; + QMap<QString, SlxOutput*> _widgets; }; - #endif diff --git a/src/mainwindow.ui b/src/mainwindow.ui index b6cb231..80c81d9 100644 --- a/src/mainwindow.ui +++ b/src/mainwindow.ui @@ -6,361 +6,29 @@ <rect> <x>0</x> <y>0</y> - <width>766</width> - <height>548</height> + <width>587</width> + <height>300</height> </rect> </property> <property name="windowTitle"> - <string>Volume Control</string> - </property> - <property name="windowIcon"> - <iconset theme="multimedia-volume-control"> - <normaloff>.</normaloff>.</iconset> - </property> - <property name="styleSheet"> - <string notr="true">QToolButton:checked { -background-color: #aaffaa; -}</string> + <string>Form</string> </property> <layout class="QVBoxLayout" name="verticalLayout"> <item> - <widget class="QTabWidget" name="notebook"> - <property name="currentIndex"> - <number>0</number> - </property> - <widget class="QWidget" name="tab"> - <attribute name="title"> - <string>&Playback</string> - </attribute> - <layout class="QGridLayout" name="gridLayout"> - <item row="0" column="0" colspan="2"> - <widget class="QScrollArea" name="scrollArea"> - <property name="widgetResizable"> - <bool>true</bool> - </property> - <widget class="QWidget" name="streamsVBox"> - <property name="geometry"> - <rect> - <x>0</x> - <y>0</y> - <width>730</width> - <height>423</height> - </rect> - </property> - <property name="sizePolicy"> - <sizepolicy hsizetype="Preferred" vsizetype="Maximum"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <layout class="QVBoxLayout" name="verticalLayout_2"> - <item> - <widget class="QLabel" name="noStreamsLabel"> - <property name="text"> - <string><i>No application is currently playing audio.</i></string> - </property> - </widget> - </item> - </layout> - </widget> - </widget> - </item> - <item row="1" column="0"> - <widget class="QLabel" name="label"> - <property name="text"> - <string>Show:</string> - </property> - </widget> - </item> - <item row="1" column="1"> - <widget class="QComboBox" name="sinkInputTypeComboBox"> - <item> - <property name="text"> - <string>All Streams</string> - </property> - </item> - <item> - <property name="text"> - <string>Applications</string> - </property> - </item> - <item> - <property name="text"> - <string>Virtual Streams</string> - </property> - </item> - </widget> - </item> - </layout> - </widget> - <widget class="QWidget" name="tab_2"> - <attribute name="title"> - <string>&Recording</string> - </attribute> - <layout class="QGridLayout" name="gridLayout_2"> - <item row="0" column="0" colspan="2"> - <widget class="QScrollArea" name="scrollArea_2"> - <property name="widgetResizable"> - <bool>true</bool> - </property> - <widget class="QWidget" name="recsVBox"> - <property name="geometry"> - <rect> - <x>0</x> - <y>0</y> - <width>730</width> - <height>423</height> - </rect> - </property> - <property name="sizePolicy"> - <sizepolicy hsizetype="Preferred" vsizetype="Maximum"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <layout class="QVBoxLayout" name="verticalLayout_3"> - <item> - <widget class="QLabel" name="noRecsLabel"> - <property name="text"> - <string><i>No application is currently recording audio.</i></string> - </property> - </widget> - </item> - </layout> - </widget> - </widget> - </item> - <item row="1" column="0"> - <widget class="QLabel" name="label_2"> - <property name="text"> - <string>Show:</string> - </property> - </widget> - </item> - <item row="1" column="1"> - <widget class="QComboBox" name="sourceOutputTypeComboBox"> - <item> - <property name="text"> - <string>All Streams</string> - </property> - </item> - <item> - <property name="text"> - <string>Applications</string> - </property> - </item> - <item> - <property name="text"> - <string>Virtual Streams</string> - </property> - </item> - </widget> - </item> - </layout> - </widget> - <widget class="QWidget" name="tab_3"> - <attribute name="title"> - <string>&Output Devices</string> - </attribute> - <layout class="QGridLayout" name="gridLayout_3"> - <item row="0" column="0" colspan="2"> - <widget class="QScrollArea" name="scrollArea_3"> - <property name="widgetResizable"> - <bool>true</bool> - </property> - <widget class="QWidget" name="sinksVBox"> - <property name="geometry"> - <rect> - <x>0</x> - <y>0</y> - <width>730</width> - <height>423</height> - </rect> - </property> - <property name="sizePolicy"> - <sizepolicy hsizetype="Preferred" vsizetype="Maximum"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <layout class="QVBoxLayout" name="verticalLayout_4"> - <item> - <widget class="QLabel" name="noSinksLabel"> - <property name="text"> - <string><i>No output devices available</i></string> - </property> - </widget> - </item> - </layout> - </widget> - </widget> - </item> - <item row="1" column="0"> - <widget class="QLabel" name="label_3"> - <property name="text"> - <string>Show:</string> - </property> - </widget> - </item> - <item row="1" column="1"> - <widget class="QComboBox" name="sinkTypeComboBox"> - <item> - <property name="text"> - <string>All Output Devices</string> - </property> - </item> - <item> - <property name="text"> - <string>Hardware Output Devices</string> - </property> - </item> - <item> - <property name="text"> - <string>Virtual Output Devices</string> - </property> - </item> - </widget> - </item> - </layout> - </widget> - <widget class="QWidget" name="tab_4"> - <attribute name="title"> - <string>&Input Devices</string> - </attribute> - <layout class="QGridLayout" name="gridLayout_4"> - <item row="0" column="0" colspan="2"> - <widget class="QScrollArea" name="scrollArea_4"> - <property name="widgetResizable"> - <bool>true</bool> - </property> - <widget class="QWidget" name="sourcesVBox"> - <property name="geometry"> - <rect> - <x>0</x> - <y>0</y> - <width>730</width> - <height>423</height> - </rect> - </property> - <property name="sizePolicy"> - <sizepolicy hsizetype="Preferred" vsizetype="Maximum"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <layout class="QVBoxLayout" name="verticalLayout_5"> - <item> - <widget class="QLabel" name="noSourcesLabel"> - <property name="text"> - <string><i>No input devices available</i></string> - </property> - </widget> - </item> - </layout> - </widget> - </widget> - </item> - <item row="1" column="0"> - <widget class="QLabel" name="label_4"> - <property name="text"> - <string>Show:</string> - </property> - </widget> - </item> - <item row="1" column="1"> - <widget class="QComboBox" name="sourceTypeComboBox"> - <item> - <property name="text"> - <string>All Input Devices</string> - </property> - </item> - <item> - <property name="text"> - <string>All Except Monitors</string> - </property> - </item> - <item> - <property name="text"> - <string>Hardware Input Devices</string> - </property> - </item> - <item> - <property name="text"> - <string>Virtual Input Devices</string> - </property> - </item> - <item> - <property name="text"> - <string>Monitors</string> - </property> - </item> - </widget> - </item> - </layout> - </widget> - <widget class="QWidget" name="tab_5"> - <attribute name="title"> - <string>&Configuration</string> - </attribute> - <layout class="QVBoxLayout" name="verticalLayout_7"> - <item> - <widget class="QScrollArea" name="scrollArea_5"> - <property name="widgetResizable"> - <bool>true</bool> - </property> - <widget class="QWidget" name="cardsVBox"> - <property name="geometry"> - <rect> - <x>0</x> - <y>0</y> - <width>730</width> - <height>433</height> - </rect> - </property> - <property name="sizePolicy"> - <sizepolicy hsizetype="Preferred" vsizetype="Maximum"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <layout class="QVBoxLayout" name="verticalLayout_6"> - <item> - <widget class="QLabel" name="noCardsLabel"> - <property name="text"> - <string><i>No cards available for configuration</i></string> - </property> - </widget> - </item> - </layout> - </widget> - </widget> - </item> - <item> - <widget class="QCheckBox" name="showVolumeMetersCheckButton"> - <property name="text"> - <string>Show volume meters</string> - </property> - </widget> - </item> - </layout> - </widget> - </widget> + <layout class="QVBoxLayout" name="container"/> </item> <item> - <widget class="QLabel" name="connectingLabel"> - <property name="text"> - <string>...</string> - </property> - <property name="alignment"> - <set>Qt::AlignCenter</set> - </property> - <property name="wordWrap"> - <bool>true</bool> + <spacer name="verticalSpacer"> + <property name="orientation"> + <enum>Qt::Vertical</enum> </property> - <property name="textInteractionFlags"> - <set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set> + <property name="sizeHint" stdset="0"> + <size> + <width>20</width> + <height>40</height> + </size> </property> - </widget> + </spacer> </item> </layout> </widget> diff --git a/src/minimalstreamwidget.cc b/src/minimalstreamwidget.cc deleted file mode 100644 index a1d2773..0000000 --- a/src/minimalstreamwidget.cc +++ /dev/null @@ -1,89 +0,0 @@ -/*** - This file is part of pavucontrol. - - Copyright 2006-2008 Lennart Poettering - Copyright 2009 Colin Guthrie - - pavucontrol 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. - - pavucontrol 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 pavucontrol. If not, see <https://www.gnu.org/licenses/>. -***/ - -#ifdef HAVE_CONFIG_H -#include <config.h> -#endif - -#include "minimalstreamwidget.h" -#include <QGridLayout> -#include <QProgressBar> -#include <QDebug> - -/*** MinimalStreamWidget ***/ -MinimalStreamWidget::MinimalStreamWidget(QWidget *parent) : - QWidget(parent), - peakProgressBar(new QProgressBar(this)), - lastPeak(0), - peak(nullptr), - updating(false), - volumeMeterEnabled(false), - volumeMeterVisible(true) { - - peakProgressBar->setTextVisible(false); - peakProgressBar->hide(); -} - -void MinimalStreamWidget::initPeakProgressBar(QGridLayout* channelsGrid) { - channelsGrid->addWidget(peakProgressBar, channelsGrid->rowCount(), 0, 1, -1); -} - -#define DECAY_STEP .04 - -void MinimalStreamWidget::updatePeak(double v) { - - if (lastPeak >= DECAY_STEP) - if (v < lastPeak - DECAY_STEP) - v = lastPeak - DECAY_STEP; - - lastPeak = v; - - if (v >= 0) { - peakProgressBar->setEnabled(TRUE); - int value = qRound(v * peakProgressBar->maximum()); - peakProgressBar->setValue(value); - } else { - peakProgressBar->setEnabled(FALSE); - peakProgressBar->setValue(0); - } - - enableVolumeMeter(); -} - -void MinimalStreamWidget::enableVolumeMeter() { - if (volumeMeterEnabled) - return; - - volumeMeterEnabled = true; - if (volumeMeterVisible) { - peakProgressBar->show(); - } -} - -void MinimalStreamWidget::setVolumeMeterVisible(bool v) { - volumeMeterVisible = v; - if (v) { - if (volumeMeterEnabled) { - peakProgressBar->show(); - } - } else { - peakProgressBar->hide(); - } -} diff --git a/src/minimalstreamwidget.h b/src/minimalstreamwidget.h deleted file mode 100644 index 1c4292c..0000000 --- a/src/minimalstreamwidget.h +++ /dev/null @@ -1,56 +0,0 @@ -/*** - This file is part of pavucontrol. - - Copyright 2006-2008 Lennart Poettering - Copyright 2009 Colin Guthrie - - pavucontrol 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. - - pavucontrol 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 pavucontrol. If not, see <https://www.gnu.org/licenses/>. -***/ - -#ifndef minimalstreamwidget_h -#define minimalstreamwidget_h - -#include "pavucontrol.h" -#include <QWidget> - -class QProgressBar; -class QGridLayout; - -class MinimalStreamWidget : public QWidget { - Q_OBJECT -public: - MinimalStreamWidget(QWidget* parent = nullptr); - void initPeakProgressBar(QGridLayout* channelsGrid); - - QProgressBar* peakProgressBar; - double lastPeak; - pa_stream *peak; - - bool updating; - - virtual void onMuteToggleButton() = 0; - virtual void onLockToggleButton() = 0; - virtual void updateChannelVolume(int channel, pa_volume_t v) = 0; - - bool volumeMeterEnabled; - void enableVolumeMeter(); - void updatePeak(double v); - void setVolumeMeterVisible(bool v); - -private : - bool volumeMeterVisible; - -}; - -#endif diff --git a/src/pavucontrol-qt.desktop.in b/src/pavucontrol-qt.desktop.in deleted file mode 100644 index b8c1c20..0000000 --- a/src/pavucontrol-qt.desktop.in +++ /dev/null @@ -1,7 +0,0 @@ -[Desktop Entry] -Version=1.0 -Exec=pavucontrol-qt -Icon=multimedia-volume-control -StartupNotify=true -Type=Application -Categories=AudioVideo;Audio;Mixer;Qt; diff --git a/src/pavucontrol.cc b/src/pavucontrol.cc deleted file mode 100644 index 92bcc48..0000000 --- a/src/pavucontrol.cc +++ /dev/null @@ -1,869 +0,0 @@ -/*** - This file is part of pavucontrol. - - Copyright 2006-2008 Lennart Poettering - Copyright 2008 Sjoerd Simons <sjoerd@luon.net> - - pavucontrol 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. - - pavucontrol 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 pavucontrol. If not, see <https://www.gnu.org/licenses/>. -***/ - -#ifdef HAVE_CONFIG_H -#include <config.h> -#endif - -#define PACKAGE_VERSION "0.1" - -#include <pulse/pulseaudio.h> -#include <pulse/glib-mainloop.h> -#include <pulse/ext-stream-restore.h> -#include <pulse/ext-device-manager.h> - -// #include <canberra-gtk.h> - -#include "helper.h" -#include "pavucontrol.h" -#include "minimalstreamwidget.h" -#include "channel.h" -#include "streamwidget.h" -#include "cardwidget.h" -#include "sinkwidget.h" -#include "sourcewidget.h" -#include "sinkinputwidget.h" -#include "sourceoutputwidget.h" -#include "rolewidget.h" -#include "mainwindow.h" -#include <QMessageBox> -#include <QApplication> -#include <QLocale> -#include <QLibraryInfo> -#include <QTranslator> -#include <QCommandLineParser> -#include <QCommandLineOption> -#include <QString> -#include <QRegularExpression> - -#include <unistd.h> - -static pa_context* context = nullptr; -static pa_mainloop_api* api = nullptr; -static int n_outstanding = 0; -static int default_tab = 0; -static bool retry = false; -static int reconnect_timeout = 1; -static QRegularExpression select_output; -static uint32_t select_output_card = UINT32_MAX; - -void show_error(const char *txt) { - char buf[256]; - - snprintf(buf, sizeof(buf), "%s: %s", txt, pa_strerror(pa_context_errno(context))); - - QMessageBox::critical(nullptr, QObject::tr("Error"), QString::fromUtf8(buf)); - qApp->quit(); -} - -static void dec_outstanding(MainWindow *w) { - if (n_outstanding <= 0) - return; - - if (--n_outstanding <= 0) { - // w->get_window()->set_cursor(); - w->setConnectionState(true); - } -} - -static void card_cb(pa_context *, const pa_card_info *i, int eol, void *userdata) { - MainWindow *w = static_cast<MainWindow*>(userdata); - - if (eol < 0) { - if (pa_context_errno(context) == PA_ERR_NOENTITY) - return; - - show_error(QObject::tr("Card callback failure").toUtf8().constData()); - return; - } - - if (eol > 0) { - dec_outstanding(w); - return; - } - - w->updateCard(*i); -} - -static void sink_cb_setdef(pa_context *ctx, const pa_sink_info *sink_info, int eol, void *) { - if (eol < 0) { - if (pa_context_errno(ctx) == PA_ERR_NOENTITY) - return; - show_error(QObject::tr("Card callback failure").toUtf8().constData()); - return; - } - if (eol > 0) - return; - if (sink_info->card != select_output_card) - return; - - printf("Setting default sink of card %d which is sink '%s' (%s)\n", (int)sink_info->card, sink_info->name, sink_info->description); - pa_operation *o; - if (!(o = pa_context_set_default_sink(ctx, sink_info->name, nullptr, nullptr))) { - printf("pa_context_set_default_sink() failed\n"); - return; - } - pa_operation_unref(o); -} - -static void card_cb_setdef(pa_context * ctx, const pa_card_info *card_info, int eol, void *) { - if (eol < 0) { - if (pa_context_errno(ctx) == PA_ERR_NOENTITY) - return; - - show_error(QObject::tr("Card callback failure").toUtf8().constData()); - return; - } - - if (eol > 0) { - pa_operation *o; - printf("Trying to set default sink to card %d\n", (int)select_output_card); - if (select_output_card != UINT32_MAX) { - if (!(o = pa_context_get_sink_info_list(ctx, sink_cb_setdef, nullptr))) { - show_error(QObject::tr("pa_context_get_sink_info_list() failed").toUtf8().constData()); - return; - } - pa_operation_unref(o); - } - return; - } - - // TODO Check stuff - - std::set<pa_card_profile_info2 *, profile_prio_compare> profile_priorities; - std::map<QByteArray, PortInfo> ports; - QMap<QString, ProfileGroup> profiles; - - profile_priorities.clear(); - for (pa_card_profile_info2 ** p_profile = card_info->profiles2; p_profile && *p_profile != nullptr; ++p_profile) { - profile_priorities.insert(*p_profile); - } - - populatePorts(*card_info, ports); - groupProfiles(profile_priorities, ports, profiles); - - ProfileGroup *best = nullptr; - for (auto &p : profiles) { - if (p.getProfileName().contains(select_output)) { - // Maybe we should track per-profile availability too and scan the list... - if (best == nullptr || p.available) { - best = &p; - if (select_output_card == UINT32_MAX || p.available) - select_output_card = card_info->index; - if (p.available) - break; - } - } - } - - if (best != nullptr) { - // Can we do this inside the callback? - pa_operation* o; - const auto *entry = best->entries.first().id.constData(); - printf("Selecting profile %s of card %s\n", entry, card_info->name); - if (!(o = pa_context_set_card_profile_by_index(ctx, card_info->index, entry, nullptr, nullptr))) { - printf("pa_context_set_card_profile_by_index() failed\n"); - return; - } - pa_operation_unref(o); - } -} - -static void context_state_callback_setdef(pa_context *c, void *) { - if (pa_context_get_state(c) == PA_CONTEXT_READY) { - pa_operation *o; - if (!(o = pa_context_get_card_info_list(c, card_cb_setdef, nullptr))) { - show_error(QObject::tr("pa_context_get_card_info_list() failed").toUtf8().constData()); - return; - } - pa_operation_unref(o); - } -} - -#if HAVE_EXT_DEVICE_RESTORE_API -static void ext_device_restore_subscribe_cb(pa_context *c, pa_device_type_t type, uint32_t idx, void *userdata); -#endif - -void sink_cb(pa_context *c, const pa_sink_info *i, int eol, void *userdata) { - MainWindow *w = static_cast<MainWindow*>(userdata); - - if (eol < 0) { - if (pa_context_errno(context) == PA_ERR_NOENTITY) - return; - - show_error(QObject::tr("Sink callback failure").toUtf8().constData()); - return; - } - - if (eol > 0) { - dec_outstanding(w); - return; - } -#if HAVE_EXT_DEVICE_RESTORE_API - if (w->updateSink(*i)) - ext_device_restore_subscribe_cb(c, PA_DEVICE_TYPE_SINK, i->index, w); -#else - w->updateSink(*i); -#endif -} - -void source_cb(pa_context *, const pa_source_info *i, int eol, void *userdata) { - MainWindow *w = static_cast<MainWindow*>(userdata); - - if (eol < 0) { - if (pa_context_errno(context) == PA_ERR_NOENTITY) - return; - - show_error(QObject::tr("Source callback failure").toUtf8().constData()); - return; - } - - if (eol > 0) { - dec_outstanding(w); - return; - } - - w->updateSource(*i); -} - -void sink_input_cb(pa_context *, const pa_sink_input_info *i, int eol, void *userdata) { - MainWindow *w = static_cast<MainWindow*>(userdata); - - if (eol < 0) { - if (pa_context_errno(context) == PA_ERR_NOENTITY) - return; - - show_error(QObject::tr("Sink input callback failure").toUtf8().constData()); - return; - } - - if (eol > 0) { - dec_outstanding(w); - return; - } - - w->updateSinkInput(*i); -} - -void source_output_cb(pa_context *, const pa_source_output_info *i, int eol, void *userdata) { - MainWindow *w = static_cast<MainWindow*>(userdata); - - if (eol < 0) { - if (pa_context_errno(context) == PA_ERR_NOENTITY) - return; - - show_error(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; - } - } - - dec_outstanding(w); - return; - } - - w->updateSourceOutput(*i); -} - -void client_cb(pa_context *, const pa_client_info *i, int eol, void *userdata) { - MainWindow *w = static_cast<MainWindow*>(userdata); - - if (eol < 0) { - if (pa_context_errno(context) == PA_ERR_NOENTITY) - return; - - show_error(QObject::tr("Client callback failure").toUtf8().constData()); - return; - } - - if (eol > 0) { - dec_outstanding(w); - return; - } - - w->updateClient(*i); -} - -void server_info_cb(pa_context *, const pa_server_info *i, void *userdata) { - MainWindow *w = static_cast<MainWindow*>(userdata); - - if (!i) { - show_error(QObject::tr("Server info callback failure").toUtf8().constData()); - return; - } - - w->updateServer(*i); - dec_outstanding(w); -} - -void ext_stream_restore_read_cb( - pa_context *, - const pa_ext_stream_restore_info *i, - int eol, - void *userdata) { - - MainWindow *w = static_cast<MainWindow*>(userdata); - - if (eol < 0) { - dec_outstanding(w); - g_debug(QObject::tr("Failed to initialize stream_restore extension: %s").toUtf8().constData(), pa_strerror(pa_context_errno(context))); - w->deleteEventRoleWidget(); - return; - } - - if (eol > 0) { - dec_outstanding(w); - return; - } - - w->updateRole(*i); -} - -static void ext_stream_restore_subscribe_cb(pa_context *c, void *userdata) { - MainWindow *w = static_cast<MainWindow*>(userdata); - pa_operation *o; - - if (!(o = pa_ext_stream_restore_read(c, ext_stream_restore_read_cb, w))) { - show_error(QObject::tr("pa_ext_stream_restore_read() failed").toUtf8().constData()); - return; - } - - 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) { - - MainWindow *w = static_cast<MainWindow*>(userdata); - - if (eol < 0) { - dec_outstanding(w); - g_debug(QObject::tr("Failed to initialize device restore extension: %s").toUtf8().constData(), pa_strerror(pa_context_errno(context))); - return; - } - - if (eol > 0) { - dec_outstanding(w); - return; - } - - /* Do something with a widget when this part is written */ - w->updateDeviceInfo(*i); -} - -static void ext_device_restore_subscribe_cb(pa_context *c, pa_device_type_t type, uint32_t idx, void *userdata) { - MainWindow *w = static_cast<MainWindow*>(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))) { - show_error(QObject::tr("pa_ext_device_restore_read_sink_formats() failed").toUtf8().constData()); - return; - } - - pa_operation_unref(o); -} -#endif - -void ext_device_manager_read_cb( - pa_context *, - const pa_ext_device_manager_info *, - int eol, - void *userdata) { - - MainWindow *w = static_cast<MainWindow*>(userdata); - - if (eol < 0) { - dec_outstanding(w); - g_debug(QObject::tr("Failed to initialize device manager extension: %s").toUtf8().constData(), pa_strerror(pa_context_errno(context))); - return; - } - - w->canRenameDevices = true; - - if (eol > 0) { - dec_outstanding(w); - return; - } - - /* Do something with a widget when this part is written */ -} - -static void ext_device_manager_subscribe_cb(pa_context *c, void *userdata) { - MainWindow *w = static_cast<MainWindow*>(userdata); - pa_operation *o; - - if (!(o = pa_ext_device_manager_read(c, ext_device_manager_read_cb, w))) { - show_error(QObject::tr("pa_ext_device_manager_read() failed").toUtf8().constData()); - return; - } - - pa_operation_unref(o); -} - -void subscribe_cb(pa_context *c, pa_subscription_event_type_t t, uint32_t index, void *userdata) { - MainWindow *w = static_cast<MainWindow*>(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, sink_cb, w))) { - show_error(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, source_cb, w))) { - show_error(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, sink_input_cb, w))) { - show_error(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, source_output_cb, w))) { - show_error(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, client_cb, w))) { - show_error(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, server_info_cb, w))) { - show_error(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) - w->removeCard(index); - else { - pa_operation *o; - if (!(o = pa_context_get_card_info_by_index(c, index, card_cb, w))) { - show_error(QObject::tr("pa_context_get_card_info_by_index() failed").toUtf8().constData()); - return; - } - pa_operation_unref(o); - } - break; - - } -} - -/* Forward Declaration */ -gboolean connect_to_pulse(gpointer userdata); - -void context_state_callback(pa_context *c, void *userdata) { - MainWindow *w = static_cast<MainWindow*>(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; - - reconnect_timeout = 1; - - /* Create event widget immediately so it's first in the list */ - w->createEventRoleWidget(); - - pa_context_set_subscribe_callback(c, subscribe_cb, 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))) { - show_error(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, server_info_cb, w))) { - show_error(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, client_cb, w))) { - show_error(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, card_cb, w))) { - show_error(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, sink_cb, w))) { - show_error(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, source_cb, w))) { - show_error(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, sink_input_cb, w))) { - show_error(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, source_output_cb, w))) { - show_error(QObject::tr("pa_context_get_source_output_info_list() failed").toUtf8().constData()); - return; - } - pa_operation_unref(o); - n_outstanding++; - - /* These calls are not always supported */ - if ((o = pa_ext_stream_restore_read(c, ext_stream_restore_read_cb, w))) { - pa_operation_unref(o); - n_outstanding++; - - pa_ext_stream_restore_set_subscribe_cb(c, ext_stream_restore_subscribe_cb, w); - - if ((o = pa_ext_stream_restore_subscribe(c, 1, nullptr, nullptr))) - pa_operation_unref(o); - - } else - g_debug(QObject::tr("Failed to initialize stream_restore extension: %s").toUtf8().constData(), pa_strerror(pa_context_errno(context))); - -#if HAVE_EXT_DEVICE_RESTORE_API - /* TODO Change this to just the test function */ - if ((o = pa_ext_device_restore_read_formats_all(c, ext_device_restore_read_cb, w))) { - pa_operation_unref(o); - n_outstanding++; - - pa_ext_device_restore_set_subscribe_cb(c, ext_device_restore_subscribe_cb, w); - - if ((o = pa_ext_device_restore_subscribe(c, 1, nullptr, nullptr))) - pa_operation_unref(o); - - } else - g_debug(QObject::tr("Failed to initialize device restore extension: %s").toUtf8().constData(), pa_strerror(pa_context_errno(context))); -#endif - - if ((o = pa_ext_device_manager_read(c, ext_device_manager_read_cb, w))) { - pa_operation_unref(o); - n_outstanding++; - - pa_ext_device_manager_set_subscribe_cb(c, ext_device_manager_subscribe_cb, w); - - if ((o = pa_ext_device_manager_subscribe(c, 1, nullptr, nullptr))) - pa_operation_unref(o); - - } else - g_debug(QObject::tr("Failed to initialize device manager extension: %s").toUtf8().constData(), pa_strerror(pa_context_errno(context))); - - - break; - } - - case PA_CONTEXT_FAILED: - w->setConnectionState(false); - - w->removeAllWidgets(); - w->updateDeviceVisibility(); - pa_context_unref(context); - context = nullptr; - - if (reconnect_timeout > 0) { - g_debug("%s", QObject::tr("Connection failed, attempting reconnect").toUtf8().constData()); - g_timeout_add_seconds(reconnect_timeout, connect_to_pulse, w); - } - return; - - case PA_CONTEXT_TERMINATED: - default: - qApp->quit(); - return; - } -} - -pa_context* get_context(void) { - return context; -} - -void update_default_sinks(MainWindow *w) { - pa_operation *o; - if (!(o = pa_context_get_server_info(context, server_info_cb, w))) { - show_error(QObject::tr("pa_context_get_server_info() failed").toUtf8().constData()); - return; - } - pa_operation_unref(o); - n_outstanding++; -} - -void connectToPulse(void) { - pa_proplist *proplist = pa_proplist_new(); - pa_proplist_sets(proplist, PA_PROP_APPLICATION_NAME, QObject::tr("PulseAudio 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); -} - -gboolean connect_to_pulse(gpointer userdata) { - MainWindow *w = static_cast<MainWindow*>(userdata); - - if (context) - return false; - - connectToPulse(); - - pa_context_set_state_callback(context, context_state_callback, w); - - w->setConnectingMessage(); - if (pa_context_connect(context, nullptr, PA_CONTEXT_NOFAIL, nullptr) < 0) { - if (pa_context_errno(context) == PA_ERR_INVALID) { - w->setConnectingMessage(QObject::tr("Connection to PulseAudio failed. Automatic retry in 5s.<br><br>" - "In this case this is likely because PULSE_SERVER in the Environment/X11 Root Window Properties" - "or default-server in client.conf is misconfigured.<br>" - "This situation can also arrise when PulseAudio crashed and left stale details in the X11 Root Window.<br>" - "If this is the case, then PulseAudio should autospawn again, or if this is not configured you should" - "run start-pulseaudio-x11 manually.").toUtf8().constData()); - reconnect_timeout = 5; - } - else { - if(!retry) { - reconnect_timeout = -1; - qApp->quit(); - } else { - g_debug("%s", QObject::tr("Connection failed, attempting reconnect").toUtf8().constData()); - reconnect_timeout = 5; - g_timeout_add_seconds(reconnect_timeout, connect_to_pulse, userdata); - } - } - } - - return false; -} - -int main(int argc, char *argv[]) { - int exit_code = 0, have_regex = 0; - - signal(SIGPIPE, SIG_IGN); - - QApplication app(argc, argv); - - app.setOrganizationName(QStringLiteral("pavucontrol-qt")); - app.setAttribute(Qt::AA_UseHighDpiPixmaps, true); - - QString locale = QLocale::system().name(); - QTranslator qtTranslator; - if(qtTranslator.load(QStringLiteral("qt_") + locale, QLibraryInfo::location(QLibraryInfo::TranslationsPath))) - qApp->installTranslator(&qtTranslator); - - QTranslator appTranslator; - if(appTranslator.load(QStringLiteral("pavucontrol-qt_") + locale, QStringLiteral(PAVUCONTROL_QT_DATA_DIR) + QStringLiteral("/translations"))) - qApp->installTranslator(&appTranslator); - - QCommandLineParser parser; - parser.setApplicationDescription(QObject::tr("PulseAudio Volume Control")); - parser.addHelpOption(); - - const QString VERINFO = QStringLiteral(PAVUCONTROLQT_VERSION - "\nQt " QT_VERSION_STR); - app.setApplicationVersion(VERINFO); - parser.addVersionOption(); - - QCommandLineOption tabOption(QStringList() << QStringLiteral("tab") << QStringLiteral("t"), QObject::tr("Select a specific tab on load."), QStringLiteral("tab")); - parser.addOption(tabOption); - - QCommandLineOption retryOption(QStringList() << QStringLiteral("retry") << QStringLiteral("r"), QObject::tr("Retry forever if pa quits (every 5 seconds).")); - parser.addOption(retryOption); - - QCommandLineOption maximizeOption(QStringList() << QStringLiteral("maximize") << QStringLiteral("m"), QObject::tr("Maximize the window.")); - parser.addOption(maximizeOption); - - QCommandLineOption selectOption(QStringList() << QStringLiteral("output") << QStringLiteral("o"), QObject::tr("Select a specific output configuration and quit."), QStringLiteral("regex")); - parser.addOption(selectOption); - - parser.process(app); - default_tab = parser.value(tabOption).toInt(); - retry = parser.isSet(retryOption); - if (parser.isSet(selectOption)) { - select_output = QRegularExpression(parser.value(selectOption)); - if (!select_output.isValid()) { - select_output = QRegularExpression(QRegularExpression::escape(parser.value(selectOption))); - } - have_regex = select_output.isValid(); - } - - if (have_regex) { - pa_mainloop *m = pa_mainloop_new(); - g_assert(m); - api = pa_mainloop_get_api(m); - g_assert(api); - - connectToPulse(); - pa_context_set_state_callback(context, context_state_callback_setdef, nullptr); - if (pa_context_connect(context, nullptr, PA_CONTEXT_NOFAIL, nullptr) >= 0) { - if (pa_context_errno(context) == PA_ERR_INVALID) { - printf("pa_context_errno = PA_ERR_INVALID\n"); - exit_code = 1; - } else { - int evs; - int tries = 50; - exit_code = 100; - // WTF - while ((evs = pa_mainloop_iterate(m, 0, &exit_code)) >= 0) { - if (evs == 0) { - if (--tries == 0) - break; - usleep(20000); - } - } - printf("Exit: %d\n", exit_code); - } - } - - if (context) - pa_context_unref(context); - pa_mainloop_free(m); - } else { - MainWindow* mainWindow = new MainWindow(); - if(parser.isSet(maximizeOption)) - mainWindow->showMaximized(); - - pa_glib_mainloop *m = pa_glib_mainloop_new(g_main_context_default()); - g_assert(m); - api = pa_glib_mainloop_get_api(m); - g_assert(api); - - connect_to_pulse(mainWindow); - if (reconnect_timeout >= 0) { - mainWindow->show(); - app.exec(); - } - - if (reconnect_timeout < 0) - show_error(QObject::tr("Fatal Error: Unable to connect to PulseAudio").toUtf8().constData()); - - delete mainWindow; - - if (context) - pa_context_unref(context); - pa_glib_mainloop_free(m); - } - - return exit_code; -} diff --git a/src/pavucontrol.h b/src/pavucontrol.h deleted file mode 100644 index 3d7fa88..0000000 --- a/src/pavucontrol.h +++ /dev/null @@ -1,69 +0,0 @@ -/*** - This file is part of pavucontrol. - - Copyright 2006-2008 Lennart Poettering - Copyright 2009 Colin Guthrie - - pavucontrol 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. - - pavucontrol 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 pavucontrol. If not, see <https://www.gnu.org/licenses/>. -***/ - -#ifndef pavucontrol_h -#define pavucontrol_h - -#include <signal.h> -#include <string.h> -#include <glib.h> - -#include <pulse/pulseaudio.h> - -/* Can be removed when PulseAudio 0.9.23 or newer is required */ -#ifndef PA_VOLUME_UI_MAX -# define PA_VOLUME_UI_MAX (pa_sw_volume_from_dB(+11.0)) -#endif - -#define HAVE_SOURCE_OUTPUT_VOLUMES PA_CHECK_VERSION(0,99,0) -#define HAVE_EXT_DEVICE_RESTORE_API PA_CHECK_VERSION(0,99,0) - -enum SinkInputType { - SINK_INPUT_ALL, - SINK_INPUT_CLIENT, - SINK_INPUT_VIRTUAL -}; - -enum SinkType { - SINK_ALL, - SINK_HARDWARE, - SINK_VIRTUAL, -}; - -enum SourceOutputType { - SOURCE_OUTPUT_ALL, - SOURCE_OUTPUT_CLIENT, - SOURCE_OUTPUT_VIRTUAL -}; - -enum SourceType { - SOURCE_ALL, - SOURCE_NO_MONITOR, - SOURCE_HARDWARE, - SOURCE_VIRTUAL, - SOURCE_MONITOR, -}; - -class MainWindow; -void update_default_sinks(MainWindow *w); -pa_context* get_context(void); -void show_error(const char *txt); - -#endif diff --git a/src/resources.qrc b/src/resources.qrc new file mode 100644 index 0000000..3d98cb4 --- /dev/null +++ b/src/resources.qrc @@ -0,0 +1,8 @@ +<RCC> + <qresource> + <file alias="mute-on">icons/mute-on.svg</file> + <file alias="mute-off">icons/mute-off.svg</file> + <file alias="checkmark">icons/checkmark.svg</file> + <file alias="none">icons/none.svg</file> + </qresource> +</RCC> diff --git a/src/rolewidget.cc b/src/rolewidget.cc deleted file mode 100644 index fa415e9..0000000 --- a/src/rolewidget.cc +++ /dev/null @@ -1,65 +0,0 @@ -/*** - This file is part of pavucontrol. - - Copyright 2006-2008 Lennart Poettering - Copyright 2009 Colin Guthrie - - pavucontrol 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. - - pavucontrol 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 pavucontrol. If not, see <https://www.gnu.org/licenses/>. -***/ - -#ifdef HAVE_CONFIG_H -#include <config.h> -#endif - -#include "rolewidget.h" - -#include <pulse/ext-stream-restore.h> - -RoleWidget::RoleWidget(MainWindow *parent) : - StreamWidget(parent) { - - lockToggleButton->hide(); - directionLabel->hide(); - deviceButton->hide(); - setContextMenuPolicy(Qt::DefaultContextMenu); -} - -void RoleWidget::onMuteToggleButton() { - StreamWidget::onMuteToggleButton(); - - executeVolumeUpdate(); -} - -void RoleWidget::executeVolumeUpdate() { - pa_ext_stream_restore_info info; - - if (updating) - return; - - info.name = role.constData(); - info.channel_map.channels = 1; - info.channel_map.map[0] = PA_CHANNEL_POSITION_MONO; - info.volume = volume; - info.device = device == "" ? nullptr : device.constData(); - info.mute = muteToggleButton->isChecked(); - - pa_operation* o; - if (!(o = pa_ext_stream_restore_write(get_context(), PA_UPDATE_REPLACE, &info, 1, TRUE, nullptr, nullptr))) { - show_error(tr("pa_ext_stream_restore_write() failed").toUtf8().constData()); - return; - } - - pa_operation_unref(o); -} - diff --git a/src/rolewidget.h b/src/rolewidget.h deleted file mode 100644 index 63ea2c4..0000000 --- a/src/rolewidget.h +++ /dev/null @@ -1,40 +0,0 @@ -/*** - This file is part of pavucontrol. - - Copyright 2006-2008 Lennart Poettering - Copyright 2009 Colin Guthrie - - pavucontrol 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. - - pavucontrol 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 pavucontrol. If not, see <https://www.gnu.org/licenses/>. -***/ - -#ifndef rolewidget_h -#define rolewidget_h - -#include "pavucontrol.h" - -#include "streamwidget.h" - -class RoleWidget : public StreamWidget { - Q_OBJECT -public: - RoleWidget(MainWindow* parent); - - QByteArray role; - QByteArray device; - - virtual void onMuteToggleButton(); - virtual void executeVolumeUpdate(); -}; - -#endif diff --git a/src/sinkinputwidget.cc b/src/sinkinputwidget.cc deleted file mode 100644 index 81a52e9..0000000 --- a/src/sinkinputwidget.cc +++ /dev/null @@ -1,125 +0,0 @@ -/*** - This file is part of pavucontrol. - - Copyright 2006-2008 Lennart Poettering - Copyright 2009 Colin Guthrie - - pavucontrol 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. - - pavucontrol 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 pavucontrol. If not, see <https://www.gnu.org/licenses/>. -***/ - -#ifdef HAVE_CONFIG_H -#include <config.h> -#endif - -#include "sinkinputwidget.h" -#include "mainwindow.h" -#include "sinkwidget.h" -#include <QMenu> - - -SinkInputWidget::SinkInputWidget(MainWindow *parent) : - StreamWidget(parent), - menu{new QMenu{this}} { - - gchar *txt; - directionLabel->setText(QString::fromUtf8(txt = g_markup_printf_escaped("<i>%s</i>", tr("on").toUtf8().constData()))); - g_free(txt); - - terminate->setText(tr("Terminate Playback")); -} - -SinkInputWidget::~SinkInputWidget(void) { -} - -void SinkInputWidget::setSinkIndex(uint32_t idx) { - mSinkIndex = idx; - - if (mpMainWindow->sinkWidgets.count(idx)) { - SinkWidget *w = mpMainWindow->sinkWidgets[idx]; - deviceButton->setText(QString::fromUtf8(w->description)); - } - else - deviceButton->setText(tr("Unknown output")); -} - -uint32_t SinkInputWidget::sinkIndex() { - return mSinkIndex; -} - -void SinkInputWidget::executeVolumeUpdate() { - pa_operation* o; - - if (!(o = pa_context_set_sink_input_volume(get_context(), index, &volume, nullptr, nullptr))) { - show_error(tr("pa_context_set_sink_input_volume() failed").toUtf8().constData()); - return; - } - - pa_operation_unref(o); -} - -void SinkInputWidget::onMuteToggleButton() { - StreamWidget::onMuteToggleButton(); - - if (updating) - return; - - pa_operation* o; - if (!(o = pa_context_set_sink_input_mute(get_context(), index, muteToggleButton->isChecked(), nullptr, nullptr))) { - show_error(tr("pa_context_set_sink_input_mute() failed").toUtf8().constData()); - return; - } - - pa_operation_unref(o); -} - -void SinkInputWidget::onKill() { - pa_operation* o; - if (!(o = pa_context_kill_sink_input(get_context(), index, nullptr, nullptr))) { - show_error(tr("pa_context_kill_sink_input() failed").toUtf8().constData()); - return; - } - - pa_operation_unref(o); -} - -void SinkInputWidget::buildMenu() { - for (auto & sinkWidget : mpMainWindow->sinkWidgets) { - menu->addAction(new SinkMenuItem{this, sinkWidget.second->description.constData(), sinkWidget.second->index, sinkWidget.second->index == mSinkIndex, menu}); - } -} - -void SinkInputWidget::SinkMenuItem::onToggle() { - if (widget->updating) - return; - - if (!isChecked()) - return; - - /*if (!mpMainWindow->sinkWidgets.count(widget->index)) - return;*/ - - pa_operation* o; - if (!(o = pa_context_move_sink_input_by_index(get_context(), widget->index, index, nullptr, nullptr))) { - show_error(tr("pa_context_move_sink_input_by_index() failed").toUtf8().constData()); - return; - } - - pa_operation_unref(o); -} - -void SinkInputWidget::onDeviceChangePopup() { - menu->clear(); - buildMenu(); - menu->popup(QCursor::pos()); -} diff --git a/src/sinkinputwidget.h b/src/sinkinputwidget.h deleted file mode 100644 index fda790c..0000000 --- a/src/sinkinputwidget.h +++ /dev/null @@ -1,77 +0,0 @@ -/*** - This file is part of pavucontrol. - - Copyright 2006-2008 Lennart Poettering - Copyright 2009 Colin Guthrie - - pavucontrol 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. - - pavucontrol 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 pavucontrol. If not, see <https://www.gnu.org/licenses/>. -***/ - -#ifndef sinkinputwidget_h -#define sinkinputwidget_h - -#include "pavucontrol.h" - -#include "streamwidget.h" -#include <QAction> - -class MainWindow; -class QMenu; - -class SinkInputWidget : public StreamWidget { - Q_OBJECT -public: - SinkInputWidget(MainWindow *parent); - ~SinkInputWidget(void); - - SinkInputType type; - - uint32_t index, clientIndex; - void setSinkIndex(uint32_t idx); - uint32_t sinkIndex(); - virtual void executeVolumeUpdate(); - virtual void onMuteToggleButton(); - virtual void onDeviceChangePopup(); - virtual void onKill(); - -private: - uint32_t mSinkIndex; - - void buildMenu(); - - QMenu * menu; - - struct SinkMenuItem : public QAction - { - SinkMenuItem(SinkInputWidget *w - , const char *label - , uint32_t i - , bool active - , QObject * parent = nullptr) - : QAction(QString::fromUtf8(label), parent) - , widget(w) - , index(i) - { - setCheckable(true); - setChecked(active); - connect(this, &QAction::toggled, [this] { onToggle(); }); - } - - SinkInputWidget *widget; - uint32_t index; - void onToggle(); - }; -}; - -#endif diff --git a/src/sinkwidget.cc b/src/sinkwidget.cc deleted file mode 100644 index f404a0b..0000000 --- a/src/sinkwidget.cc +++ /dev/null @@ -1,175 +0,0 @@ -/*** - This file is part of pavucontrol. - - Copyright 2006-2008 Lennart Poettering - Copyright 2009 Colin Guthrie - - pavucontrol 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. - - pavucontrol 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 pavucontrol. If not, see <https://www.gnu.org/licenses/>. -***/ - -#ifdef HAVE_CONFIG_H -#include <config.h> -#endif - -#include "sinkwidget.h" - -// #include <canberra-gtk.h> -#if HAVE_EXT_DEVICE_RESTORE_API -# include <pulse/format.h> -# include <pulse/ext-device-restore.h> -#endif - -SinkWidget::SinkWidget(MainWindow *parent) : - DeviceWidget(parent, "sink") { - -#if HAVE_EXT_DEVICE_RESTORE_API - uint8_t i = 0; - - encodings[i].encoding = PA_ENCODING_PCM; - encodings[i].widget = encodingFormatPCM; - connect(encodings[i].widget, &QCheckBox::toggled, this, &SinkWidget::onEncodingsChange); - - ++i; - encodings[i].encoding = PA_ENCODING_AC3_IEC61937; - encodings[i].widget = encodingFormatAC3; - connect(encodings[i].widget, &QCheckBox::toggled, this, &SinkWidget::onEncodingsChange); - - ++i; - encodings[i].encoding = PA_ENCODING_EAC3_IEC61937; - encodings[i].widget = encodingFormatEAC3; - connect(encodings[i].widget, &QCheckBox::toggled, this, &SinkWidget::onEncodingsChange); - - ++i; - encodings[i].encoding = PA_ENCODING_MPEG_IEC61937; - encodings[i].widget = encodingFormatMPEG; - connect(encodings[i].widget, &QCheckBox::toggled, this, &SinkWidget::onEncodingsChange); - - ++i; - encodings[i].encoding = PA_ENCODING_DTS_IEC61937; - encodings[i].widget = encodingFormatDTS; - connect(encodings[i].widget, &QCheckBox::toggled, this, &SinkWidget::onEncodingsChange); - - ++i; - encodings[i].encoding = PA_ENCODING_INVALID; - encodings[i].widget = encodingFormatAAC; - encodings[i].widget->setEnabled(false); -#ifdef PA_ENCODING_MPEG2_AAC_IEC61937 - if (pa_context_get_server_protocol_version(get_context()) >= 28) { - encodings[i].encoding = PA_ENCODING_MPEG2_AAC_IEC61937; - connect(encodings[i].widget, &QCheckBox::toggled, this, &SinkWidget::onEncodingsChange); - encodings[i].widget->setEnabled(true); - } -#endif -#endif - -} - -void SinkWidget::executeVolumeUpdate() { - pa_operation* o; - if (!(o = pa_context_set_sink_volume_by_index(get_context(), index, &volume, nullptr, nullptr))) { - show_error(tr("pa_context_set_sink_volume_by_index() failed").toUtf8().constData()); - return; - } - - pa_operation_unref(o); -} - -void SinkWidget::onMuteToggleButton() { - DeviceWidget::onMuteToggleButton(); - - if (updating) - return; - - pa_operation* o; - if (!(o = pa_context_set_sink_mute_by_index(get_context(), index, muteToggleButton->isChecked(), nullptr, nullptr))) { - show_error(tr("pa_context_set_sink_mute_by_index() failed").toUtf8().constData()); - return; - } - - pa_operation_unref(o); -} - -void SinkWidget::onDefaultToggleButton() { - pa_operation* o; - - if (updating) - return; - - if (!(o = pa_context_set_default_sink(get_context(), name.constData(), nullptr, nullptr))) { - show_error(tr("pa_context_set_default_sink() failed").toUtf8().constData()); - return; - } - pa_operation_unref(o); - update_default_sinks(mpMainWindow); -} - -void SinkWidget::onPortChange() { - if (updating) - return; - - int sel = portList->currentIndex(); - if (sel != -1) { - pa_operation* o; - QByteArray port = portList->itemData(sel).toString().toUtf8(); - - if (!(o = pa_context_set_sink_port_by_index(get_context(), index, port.constData(), nullptr, nullptr))) { - show_error(tr("pa_context_set_sink_port_by_index() failed").toUtf8().constData()); - return; - } - - pa_operation_unref(o); - } -} - -void SinkWidget::setDigital(bool digital) { -#if HAVE_EXT_DEVICE_RESTORE_API - if (digital) { - encodingSelect->show(); - advancedOptions->setEnabled(true); - } else { - /* advancedOptions is disabled by default */ - encodingSelect->hide(); - } -#endif -} - -void SinkWidget::onEncodingsChange() { -#if HAVE_EXT_DEVICE_RESTORE_API - pa_operation* o; - uint8_t n_formats = 0; - pa_format_info **formats; - - if (updating) - return; - - formats = (pa_format_info**)malloc(sizeof(pa_format_info*) * PAVU_NUM_ENCODINGS); - - for (auto & encoding : encodings) { - if (encoding.widget->isChecked()) { - formats[n_formats] = pa_format_info_new(); - formats[n_formats]->encoding = encoding.encoding; - ++n_formats; - } - } - - if (!(o = pa_ext_device_restore_save_formats(get_context(), PA_DEVICE_TYPE_SINK, index, n_formats, formats, nullptr, nullptr))) { - show_error(tr("pa_ext_device_restore_save_sink_formats() failed").toUtf8().constData()); - free(formats); - return; - } - - free(formats); - pa_operation_unref(o); -#endif -} diff --git a/src/sinkwidget.h b/src/sinkwidget.h deleted file mode 100644 index 74c3b30..0000000 --- a/src/sinkwidget.h +++ /dev/null @@ -1,64 +0,0 @@ -/*** - This file is part of pavucontrol. - - Copyright 2006-2008 Lennart Poettering - Copyright 2009 Colin Guthrie - - pavucontrol 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. - - pavucontrol 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 pavucontrol. If not, see <https://www.gnu.org/licenses/>. -***/ - -#ifndef sinkwidget_h -#define sinkwidget_h - -#include "pavucontrol.h" -#include "devicewidget.h" - - -#if HAVE_EXT_DEVICE_RESTORE_API -# include <pulse/format.h> - -# define PAVU_NUM_ENCODINGS 6 - -class QCheckBox; - -typedef struct { - pa_encoding encoding; - QCheckBox *widget; -} encodingList; -#endif - -class SinkWidget : public DeviceWidget { - Q_OBJECT -public: - SinkWidget(MainWindow *parent); - - SinkType type; - uint32_t monitor_index; - bool can_decibel; - -#if HAVE_EXT_DEVICE_RESTORE_API - encodingList encodings[PAVU_NUM_ENCODINGS]; -#endif - - virtual void onMuteToggleButton(); - virtual void executeVolumeUpdate(); - virtual void onDefaultToggleButton(); - void setDigital(bool); - -protected Q_SLOTS: - virtual void onPortChange(); - virtual void onEncodingsChange(); -}; - -#endif diff --git a/src/slxoutput.cpp b/src/slxoutput.cpp new file mode 100644 index 0000000..d46b0e9 --- /dev/null +++ b/src/slxoutput.cpp @@ -0,0 +1,82 @@ +#include "slxoutput.h" +#include "main.h" + +SlxOutput::SlxOutput(QWidget *parent, const QString &id) + : unused(false), + QWidget(parent), + _id(id) +{ + setupUi(this); + volumeSlider->setMaximum(65535); + volumeSlider->setSingleStep(200); + volumeSlider->setSingleStep(2000); + _volumeTimer.setInterval(100); + _volumeTimer.setSingleShot(true); + // Events + connect(muteToggleButton, &QToolButton::toggled, [this]() { + if (g_IgnoreGui) + return; + if (_sink.isEmpty()) + return; + setMuted(_sink, muteToggleButton->isChecked()); + }); + connect(defaultToggleButton, &QToolButton::toggled, [this]() { + if (g_IgnoreGui) + return; + if (!defaultToggleButton->isChecked()) { + defaultToggleButton->setChecked(true); + } + if (_sink.isEmpty()) { + enableCard(_card, _port); + } else { + enableSink(_sink, _port); + } + }); + connect(volumeSlider, &QSlider::sliderMoved, this, &SlxOutput::volumeSliderChanged); + connect(volumeSlider, &QSlider::valueChanged, this, &SlxOutput::volumeSliderChanged); + connect(&_volumeTimer, &QTimer::timeout, [this]() { + if (g_IgnoreGui || !isSink()) + return; + setSinkVolume(_sink, volumeSlider->value()); + }); +} + +SlxOutput::~SlxOutput() +{ + +} + +void SlxOutput::volumeSliderChanged(int value) +{ + if (g_IgnoreGui) + return; + if (_volumeTimer.isActive()) + return; + _volumeTimer.start(); +} + +void SlxOutput::updateOutput(const QString &name, bool isDefault, bool isMuted, int volume, const QString &card, const QString &sink, const QString &port) +{ + nameLabel->setText(name); + if (sink != _sink) { + QFont fi = nameLabel->font(); + fi.setBold(!sink.isEmpty()); + nameLabel->setFont(fi); + } + _card = card; + _sink = sink; + _port = port; + defaultToggleButton->setChecked(isDefault); + muteToggleButton->setChecked(isMuted); + if (volume == -1) { + volumeSlider->setEnabled(false); + } else { + if (volume > volumeSlider->maximum()) { + volumeSlider->setMaximum(volume); + } + volumeSlider->setValue(volume); + volumeSlider->setEnabled(isSink()); + } + muteToggleButton->setEnabled(isSink()); + unused = false; +} diff --git a/src/slxoutput.h b/src/slxoutput.h new file mode 100644 index 0000000..15f8554 --- /dev/null +++ b/src/slxoutput.h @@ -0,0 +1,33 @@ +#ifndef _SLX_OUTPUT_H_ +#define _SLX_OUTPUT_H_ + +#include <QWidget> +#include <QTimer> + +#include "ui_slxoutput.h" + +class SlxOutput : public QWidget, public Ui::SlxOutput +{ + Q_OBJECT +public: + SlxOutput(QWidget *parent, const QString &id); + virtual ~SlxOutput(); + + void updateOutput(const QString &name, bool isDefault, bool isMuted, int volume, const QString &card, const QString &sink, const QString &port); + const QString &sink() const { return _sink; } + const bool isSink() const { return !_sink.isEmpty(); } + + bool unused; + +private: + QString _id; + QString _card; + QString _sink; + QString _port; + QTimer _volumeTimer; + +private slots: + void volumeSliderChanged(int value); +}; + +#endif diff --git a/src/streamwidget.ui b/src/slxoutput.ui index b4f7d69..3516d82 100644 --- a/src/streamwidget.ui +++ b/src/slxoutput.ui @@ -1,13 +1,13 @@ <?xml version="1.0" encoding="UTF-8"?> <ui version="4.0"> - <class>StreamWidget</class> - <widget class="QWidget" name="StreamWidget"> + <class>SlxOutput</class> + <widget class="QWidget" name="SlxOutput"> <property name="geometry"> <rect> <x>0</x> <y>0</y> - <width>416</width> - <height>103</height> + <width>400</width> + <height>81</height> </rect> </property> <property name="windowTitle"> @@ -17,17 +17,29 @@ <item> <layout class="QHBoxLayout" name="horizontalLayout"> <item> - <widget class="QLabel" name="iconImage"/> - </item> - <item> - <widget class="QLabel" name="boldNameLabel"> - <property name="text"> - <string/> + <widget class="QToolButton" name="defaultToggleButton"> + <property name="toolTip"> + <string>Set as fallback</string> + </property> + <property name="icon"> + <iconset resource="resources.qrc"> + <normaloff>:/none</normaloff> + <normalon>:/checkmark</normalon> + </iconset> + </property> + <property name="iconSize"> + <size> + <width>24</width> + <height>24</height> + </size> + </property> + <property name="checkable"> + <bool>true</bool> </property> </widget> </item> <item> - <widget class="ElidingLabel" name="nameLabel"> + <widget class="QLabel" name="nameLabel"> <property name="text"> <string>Device Title</string> </property> @@ -47,52 +59,35 @@ </spacer> </item> <item> - <widget class="QLabel" name="directionLabel"> - <property name="text"> - <string>direction</string> - </property> - </widget> - </item> - <item> - <widget class="QToolButton" name="deviceButton"> - <property name="text"> - <string>device</string> - </property> - </widget> - </item> - <item> <widget class="QToolButton" name="muteToggleButton"> <property name="toolTip"> <string>Mute audio</string> </property> <property name="icon"> - <iconset theme="audio-volume-muted"/> - </property> - <property name="checkable"> - <bool>true</bool> - </property> - </widget> - </item> - <item> - <widget class="QToolButton" name="lockToggleButton"> - <property name="toolTip"> - <string>Lock channels together</string> + <iconset resource="resources.qrc"> + <normaloff>:/mute-off</normaloff> + <normalon>:/mute-on</normalon> + </iconset> </property> - <property name="icon"> - <iconset theme="changes-prevent-symbolic"/> + <property name="iconSize"> + <size> + <width>24</width> + <height>24</height> + </size> </property> <property name="checkable"> <bool>true</bool> </property> - <property name="checked"> - <bool>true</bool> - </property> </widget> </item> </layout> </item> <item> - <layout class="QGridLayout" name="channelsGrid"/> + <widget class="QSlider" name="volumeSlider"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + </widget> </item> <item> <widget class="Line" name="line"> @@ -103,13 +98,6 @@ </item> </layout> </widget> - <customwidgets> - <customwidget> - <class>ElidingLabel</class> - <extends>QLabel</extends> - <header>elidinglabel.h</header> - </customwidget> - </customwidgets> <resources/> <connections/> </ui> diff --git a/src/sourceoutputwidget.cc b/src/sourceoutputwidget.cc deleted file mode 100644 index 3927dba..0000000 --- a/src/sourceoutputwidget.cc +++ /dev/null @@ -1,136 +0,0 @@ -/*** - This file is part of pavucontrol. - - Copyright 2006-2008 Lennart Poettering - Copyright 2009 Colin Guthrie - - pavucontrol 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. - - pavucontrol 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 pavucontrol. If not, see <https://www.gnu.org/licenses/>. -***/ - -#ifdef HAVE_CONFIG_H -#include <config.h> -#endif - -#include "sourceoutputwidget.h" -#include "mainwindow.h" -#include "sourcewidget.h" -#include <QMenu> - -SourceOutputWidget::SourceOutputWidget(MainWindow *parent) : - StreamWidget(parent), - menu{new QMenu{this}} -{ - - gchar *txt = g_markup_printf_escaped("<i>%s</i>", tr("from").toUtf8().constData()); - directionLabel->setText(QString::fromUtf8(static_cast<char*>(txt))); - g_free(txt); - - terminate->setText(tr("Terminate Recording")); - -#if !HAVE_SOURCE_OUTPUT_VOLUMES - /* Source Outputs do not have volume controls in versions of PA < 1.0 */ - muteToggleButton->hide(); - lockToggleButton->hide(); -#endif -} - - -SourceOutputWidget::~SourceOutputWidget(void) { -} - -void SourceOutputWidget::setSourceIndex(uint32_t idx) { - mSourceIndex = idx; - - if (mpMainWindow->sourceWidgets.count(idx)) { - SourceWidget *w = mpMainWindow->sourceWidgets[idx]; - deviceButton->setText(QString::fromUtf8(w->description)); - } - else - deviceButton->setText(tr("Unknown input")); -} - -uint32_t SourceOutputWidget::sourceIndex() { - return mSourceIndex; -} - -#if HAVE_SOURCE_OUTPUT_VOLUMES -void SourceOutputWidget::executeVolumeUpdate() { - pa_operation* o; - - if (!(o = pa_context_set_source_output_volume(get_context(), index, &volume, nullptr, nullptr))) { - show_error(tr("pa_context_set_source_output_volume() failed").toUtf8().constData()); - return; - } - - pa_operation_unref(o); -} - -void SourceOutputWidget::onMuteToggleButton() { - StreamWidget::onMuteToggleButton(); - - if (updating) - return; - - pa_operation* o; - if (!(o = pa_context_set_source_output_mute(get_context(), index, muteToggleButton->isChecked(), nullptr, nullptr))) { - show_error(tr("pa_context_set_source_output_mute() failed").toUtf8().constData()); - return; - } - - pa_operation_unref(o); -} -#endif - -void SourceOutputWidget::onKill() { - pa_operation* o; - if (!(o = pa_context_kill_source_output(get_context(), index, nullptr, nullptr))) { - show_error(tr("pa_context_kill_source_output() failed").toUtf8().constData()); - return; - } - - pa_operation_unref(o); -} - - -void SourceOutputWidget::buildMenu() { - for (auto & sourceWidget : mpMainWindow->sourceWidgets) { - menu->addAction(new SourceMenuItem{this, sourceWidget.second->description.constData(), sourceWidget.second->index, sourceWidget.second->index == mSourceIndex, menu}); - } -} - -void SourceOutputWidget::SourceMenuItem::onToggle() { - - if (widget->updating) - return; - - if (!isChecked()) - return; - - /*if (!mpMainWindow->sourceWidgets.count(widget->index)) - return;*/ - - pa_operation* o; - if (!(o = pa_context_move_source_output_by_index(get_context(), widget->index, index, nullptr, nullptr))) { - show_error(tr("pa_context_move_source_output_by_index() failed").toUtf8().constData()); - return; - } - - pa_operation_unref(o); -} - -void SourceOutputWidget::onDeviceChangePopup() { - menu->clear(); - buildMenu(); - menu->popup(QCursor::pos()); -} diff --git a/src/sourceoutputwidget.h b/src/sourceoutputwidget.h deleted file mode 100644 index d30f83a..0000000 --- a/src/sourceoutputwidget.h +++ /dev/null @@ -1,80 +0,0 @@ -/*** - This file is part of pavucontrol. - - Copyright 2006-2008 Lennart Poettering - Copyright 2009 Colin Guthrie - - pavucontrol 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. - - pavucontrol 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 pavucontrol. If not, see <https://www.gnu.org/licenses/>. -***/ - -#ifndef sourceoutputwidget_h -#define sourceoutputwidget_h - -#include "pavucontrol.h" - -#include "streamwidget.h" -#include <QAction> - -class MainWindow; -class QMenu; - -class SourceOutputWidget : public StreamWidget { - Q_OBJECT -public: - SourceOutputWidget(MainWindow *parent); - ~SourceOutputWidget(void); - - SourceOutputType type; - - uint32_t index, clientIndex; - void setSourceIndex(uint32_t idx); - uint32_t sourceIndex(); -#if HAVE_SOURCE_OUTPUT_VOLUMES - virtual void executeVolumeUpdate(); - virtual void onMuteToggleButton(); -#endif - virtual void onDeviceChangePopup(); - virtual void onKill(); - -private: - uint32_t mSourceIndex; - - void clearMenu(); - void buildMenu(); - - QMenu * menu; - - struct SourceMenuItem : public QAction - { - SourceMenuItem(SourceOutputWidget *w - , const char *label - , uint32_t i - , bool active - , QObject * parent = nullptr) - : QAction{QString::fromUtf8(label), parent} - , widget(w) - , index(i) - { - setCheckable(true); - setChecked(active); - connect(this, &QAction::toggled, [this] { onToggle(); }); - } - - SourceOutputWidget *widget; - uint32_t index; - void onToggle(); - }; -}; - -#endif diff --git a/src/sourcewidget.cc b/src/sourcewidget.cc deleted file mode 100644 index 6dbfeea..0000000 --- a/src/sourcewidget.cc +++ /dev/null @@ -1,87 +0,0 @@ -/*** - This file is part of pavucontrol. - - Copyright 2006-2008 Lennart Poettering - Copyright 2009 Colin Guthrie - - pavucontrol 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. - - pavucontrol 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 pavucontrol. If not, see <https://www.gnu.org/licenses/>. -***/ - -#ifdef HAVE_CONFIG_H -#include <config.h> -#endif - -#include "sourcewidget.h" - -SourceWidget::SourceWidget(MainWindow *parent) : - DeviceWidget(parent, "source") { -} - -void SourceWidget::executeVolumeUpdate() { - pa_operation* o; - - if (!(o = pa_context_set_source_volume_by_index(get_context(), index, &volume, nullptr, nullptr))) { - show_error(tr("pa_context_set_source_volume_by_index() failed").toUtf8().constData()); - return; - } - - pa_operation_unref(o); -} - -void SourceWidget::onMuteToggleButton() { - DeviceWidget::onMuteToggleButton(); - - if (updating) - return; - - pa_operation* o; - if (!(o = pa_context_set_source_mute_by_index(get_context(), index, muteToggleButton->isChecked(), nullptr, nullptr))) { - show_error(tr("pa_context_set_source_mute_by_index() failed").toUtf8().constData()); - return; - } - - pa_operation_unref(o); -} - -void SourceWidget::onDefaultToggleButton() { - pa_operation* o; - - if (updating) - return; - - if (!(o = pa_context_set_default_source(get_context(), name.constData(), nullptr, nullptr))) { - show_error(tr("pa_context_set_default_source() failed").toUtf8().constData()); - return; - } - pa_operation_unref(o); - update_default_sinks(mpMainWindow); -} - -void SourceWidget::onPortChange() { - if (updating) - return; - - int current = portList->currentIndex(); - if (current != -1) { - pa_operation* o; - QByteArray port = portList->itemData(current).toByteArray(); - - if (!(o = pa_context_set_source_port_by_index(get_context(), index, port.constData(), nullptr, nullptr))) { - show_error(tr("pa_context_set_source_port_by_index() failed").toUtf8().constData()); - return; - } - - pa_operation_unref(o); - } -} diff --git a/src/sourcewidget.h b/src/sourcewidget.h deleted file mode 100644 index c329c77..0000000 --- a/src/sourcewidget.h +++ /dev/null @@ -1,45 +0,0 @@ -/*** - This file is part of pavucontrol. - - Copyright 2006-2008 Lennart Poettering - Copyright 2009 Colin Guthrie - - pavucontrol 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. - - pavucontrol 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 pavucontrol. If not, see <https://www.gnu.org/licenses/>. -***/ - -#ifndef sourcewidget_h -#define sourcewidget_h - -#include "pavucontrol.h" - -#include "devicewidget.h" - -class SourceWidget : public DeviceWidget { - Q_OBJECT -public: - SourceWidget(MainWindow *parent); - static SourceWidget* create(MainWindow* mainWindow); - - SourceType type; - bool can_decibel; - - virtual void onMuteToggleButton(); - virtual void executeVolumeUpdate(); - virtual void onDefaultToggleButton(); - -protected: - virtual void onPortChange(); -}; - -#endif diff --git a/src/streamwidget.cc b/src/streamwidget.cc deleted file mode 100644 index f7b06e0..0000000 --- a/src/streamwidget.cc +++ /dev/null @@ -1,134 +0,0 @@ -/*** - This file is part of pavucontrol. - - Copyright 2006-2008 Lennart Poettering - Copyright 2009 Colin Guthrie - - pavucontrol 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. - - pavucontrol 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 pavucontrol. If not, see <https://www.gnu.org/licenses/>. -***/ - -#ifdef HAVE_CONFIG_H -#include <config.h> -#endif - -#include "streamwidget.h" -#include "mainwindow.h" -#include "channel.h" -#include <QAction> - -/*** StreamWidget ***/ -StreamWidget::StreamWidget(MainWindow *parent) : - MinimalStreamWidget(parent), - mpMainWindow(parent), - terminate{new QAction{tr("Terminate"), this}} { - - setupUi(this); - initPeakProgressBar(channelsGrid); - - timeout.setSingleShot(true); - timeout.setInterval(100); - connect(&timeout, &QTimer::timeout, this, &StreamWidget::timeoutEvent); - - connect(muteToggleButton, &QToolButton::toggled, this, &StreamWidget::onMuteToggleButton); - connect(lockToggleButton, &QToolButton::toggled, this, &StreamWidget::onLockToggleButton); - connect(deviceButton, &QAbstractButton::released, this, &StreamWidget::onDeviceChangePopup); - - connect(terminate, &QAction::triggered, this, &StreamWidget::onKill); - addAction(terminate); - setContextMenuPolicy(Qt::ActionsContextMenu); - - for (auto & channel : channels) - channel = nullptr; -} - -void StreamWidget::setChannelMap(const pa_channel_map &m, bool can_decibel) { - channelMap = m; - - for (int i = 0; i < m.channels; i++) { - Channel *ch = channels[i] = new Channel(channelsGrid); - ch->channel = i; - ch->can_decibel = can_decibel; - ch->minimalStreamWidget = this; - char text[64]; - snprintf(text, sizeof(text), "<b>%s</b>", pa_channel_position_to_pretty_string(m.map[i])); - ch->channelLabel->setText(QString::fromUtf8(text)); - } - channels[m.channels-1]->last = true; - channels[m.channels-1]->setBaseVolume(PA_VOLUME_NORM); - - lockToggleButton->setEnabled(m.channels > 1); - hideLockedChannels(lockToggleButton->isChecked()); -} - -void StreamWidget::setVolume(const pa_cvolume &v, bool force) { - g_assert(v.channels == channelMap.channels); - - volume = v; - - if (!timeout.isActive() || force) { /* do not update the volume when a volume change is still in flux */ - for (int i = 0; i < volume.channels; i++) - channels[i]->setVolume(volume.values[i]); - } -} - -void StreamWidget::updateChannelVolume(int channel, pa_volume_t v) { - pa_cvolume n; - g_assert(channel < volume.channels); - - n = volume; - if (lockToggleButton->isChecked()) { - for (int i = 0; i < n.channels; i++) - n.values[i] = v; - } else - n.values[channel] = v; - - setVolume(n, true); - - if(!timeout.isActive()) { - timeout.start(); - } -} - -void StreamWidget::hideLockedChannels(bool hide) { - for (int i = 0; i < channelMap.channels - 1; i++) - channels[i]->setVisible(!hide); - - channels[channelMap.channels - 1]->channelLabel->setVisible(!hide); -} - -void StreamWidget::onMuteToggleButton() { - - lockToggleButton->setEnabled(!muteToggleButton->isChecked()); - - for (int i = 0; i < channelMap.channels; i++) - channels[i]->setEnabled(!muteToggleButton->isChecked()); -} - -void StreamWidget::onLockToggleButton() { - hideLockedChannels(lockToggleButton->isChecked()); -} - -bool StreamWidget::timeoutEvent() { - executeVolumeUpdate(); - return false; -} - -void StreamWidget::executeVolumeUpdate() { -} - -void StreamWidget::onDeviceChangePopup() { -} - -void StreamWidget::onKill() { -} diff --git a/src/streamwidget.h b/src/streamwidget.h deleted file mode 100644 index 7db5251..0000000 --- a/src/streamwidget.h +++ /dev/null @@ -1,68 +0,0 @@ -/*** - This file is part of pavucontrol. - - Copyright 2006-2008 Lennart Poettering - Copyright 2009 Colin Guthrie - - pavucontrol 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. - - pavucontrol 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 pavucontrol. If not, see <https://www.gnu.org/licenses/>. -***/ - -#ifndef streamwidget_h -#define streamwidget_h - -#include "pavucontrol.h" - -#include "minimalstreamwidget.h" -#include "ui_streamwidget.h" -#include <QTimer> - -class MainWindow; -class Channel; -class QAction; - -class StreamWidget : public MinimalStreamWidget, public Ui::StreamWidget { - Q_OBJECT -public: - StreamWidget(MainWindow *parent); - - void setChannelMap(const pa_channel_map &m, bool can_decibel); - void setVolume(const pa_cvolume &volume, bool force = false); - virtual void updateChannelVolume(int channel, pa_volume_t v); - - void hideLockedChannels(bool hide = true); - - pa_channel_map channelMap; - pa_cvolume volume; - - Channel *channels[PA_CHANNELS_MAX]; - - virtual void onMuteToggleButton(); - virtual void onLockToggleButton(); - virtual void onDeviceChangePopup(); - // virtual bool onContextTriggerEvent(GdkEventButton*); - - QTimer timeout; - - bool timeoutEvent(); - - virtual void executeVolumeUpdate(); - virtual void onKill(); - -protected: - MainWindow* mpMainWindow; - - QAction * terminate; -}; - -#endif diff --git a/src/translations/CMakeLists.txt b/src/translations/CMakeLists.txt deleted file mode 100644 index 59d51bd..0000000 --- a/src/translations/CMakeLists.txt +++ /dev/null @@ -1,3 +0,0 @@ -project(pavucontrol-qt) - -build_component("." "${CMAKE_INSTALL_FULL_DATADIR}/pavucontrol-qt/translations") diff --git a/src/translations/pavucontrol-qt.desktop.yaml b/src/translations/pavucontrol-qt.desktop.yaml deleted file mode 100644 index c7e2ba0..0000000 --- a/src/translations/pavucontrol-qt.desktop.yaml +++ /dev/null @@ -1,3 +0,0 @@ -Desktop Entry/Name: "PulseAudio Volume Control" -Desktop Entry/GenericName: "Volume Control" -Desktop Entry/Comment: "Adjust the volume level" diff --git a/src/translations/pavucontrol-qt.ts b/src/translations/pavucontrol-qt.ts deleted file mode 100644 index 3b80447..0000000 --- a/src/translations/pavucontrol-qt.ts +++ /dev/null @@ -1,733 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE TS> -<TS version="2.1"> -<context> - <name>CardWidget</name> - <message> - <location filename="../cardwidget.ui" line="14"/> - <source>Form</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../cardwidget.ui" line="29"/> - <source>Card Name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../cardwidget.ui" line="47"/> - <source>Profile:</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../cardwidget.cc" line="67"/> - <source>pa_context_set_card_profile_by_index() failed</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>Channel</name> - <message> - <location filename="../channel.cc" line="89"/> - <source>%1% (%2dB)</source> - <comment>volume slider label [X% (YdB)]</comment> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../channel.cc" line="93"/> - <source>%1%</source> - <comment>volume slider label [X%]</comment> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Silence</small></source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Min</small></source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../channel.cc" line="162"/> - <source><small>100% (0dB)</small></source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../channel.cc" line="165"/> - <source><small><i>Base</i></small></source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>ChannelWidget</name> - <message> - <location filename="../channelwidget.ui" line="14"/> - <source>Form</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../channelwidget.ui" line="20"/> - <source><b>left-front</b></source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../channelwidget.ui" line="34"/> - <source><small>50%</small></source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>DeviceWidget</name> - <message> - <location filename="../devicewidget.ui" line="14"/> - <source>Form</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="36"/> - <source>Device Title</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="56"/> - <source>Mute audio</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="69"/> - <source>Lock channels together</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="85"/> - <source>Set as fallback</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="103"/> - <source><b>Port:</b></source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="126"/> - <source>Show advanced options</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="172"/> - <source>PCM</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="182"/> - <source>AC3</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="189"/> - <source>EAC3</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="196"/> - <source>DTS</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="203"/> - <source>MPEG</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="210"/> - <source>AAC</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="238"/> - <source><b>Latency offset:</b></source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="245"/> - <source> ms</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="41"/> - <source>Rename device...</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="155"/> - <source>pa_context_set_port_latency_offset() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="226"/> - <source>Sorry, but device renaming is not supported.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="227"/> - <source>You need to load module-device-manager in the PulseAudio server in order to rename devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="233"/> - <source>Rename device %1 to:</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="240"/> - <source>pa_ext_device_manager_set_device_description() failed</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>MainWindow</name> - <message> - <location filename="../mainwindow.ui" line="14"/> - <source>Volume Control</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="55"/> - <source><i>No application is currently playing audio.</i></source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="66"/> - <location filename="../mainwindow.ui" line="131"/> - <location filename="../mainwindow.ui" line="196"/> - <location filename="../mainwindow.ui" line="261"/> - <source>Show:</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="74"/> - <location filename="../mainwindow.ui" line="139"/> - <source>All Streams</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="79"/> - <location filename="../mainwindow.ui" line="144"/> - <source>Applications</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="84"/> - <location filename="../mainwindow.ui" line="149"/> - <source>Virtual Streams</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="120"/> - <source><i>No application is currently recording audio.</i></source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="185"/> - <source><i>No output devices available</i></source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="204"/> - <source>All Output Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="209"/> - <source>Hardware Output Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="214"/> - <source>Virtual Output Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="28"/> - <source>&Playback</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="93"/> - <source>&Recording</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="158"/> - <source>&Output Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="223"/> - <source>&Input Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="250"/> - <source><i>No input devices available</i></source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="269"/> - <source>All Input Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="274"/> - <source>All Except Monitors</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="279"/> - <source>Hardware Input Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="284"/> - <source>Virtual Input Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="289"/> - <source>Monitors</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="298"/> - <source>&Configuration</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="325"/> - <source><i>No cards available for configuration</i></source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="336"/> - <source>Show volume meters</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="347"/> - <source>...</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="159"/> - <source> (plugged in)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="163"/> - <location filename="../mainwindow.cc" line="257"/> - <source> (unavailable)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="165"/> - <location filename="../mainwindow.cc" line="254"/> - <source> (unplugged)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="388"/> - <source>Failed to read data from stream</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="432"/> - <source>Peak detect</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="433"/> - <source>Failed to create monitoring stream</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="448"/> - <source>Failed to connect monitoring stream</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="587"/> - <source>Ignoring sink-input due to it being designated as an event and thus handled by the Event widget</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="759"/> - <source>System Sounds</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="1089"/> - <source>Establishing connection to PulseAudio. Please wait...</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>QObject</name> - <message> - <location filename="../pavucontrol.cc" line="66"/> - <source>Error</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="87"/> - <source>Card callback failure</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="110"/> - <source>Sink callback failure</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="133"/> - <source>Source callback failure</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="152"/> - <source>Sink input callback failure</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="171"/> - <source>Source output callback failure</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="211"/> - <source>Client callback failure</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="227"/> - <source>Server info callback failure</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="245"/> - <location filename="../pavucontrol.cc" line="542"/> - <source>Failed to initialize stream_restore extension: %s</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="263"/> - <source>pa_ext_stream_restore_read() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="281"/> - <location filename="../pavucontrol.cc" line="556"/> - <source>Failed to initialize device restore extension: %s</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="302"/> - <source>pa_ext_device_restore_read_sink_formats() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="320"/> - <location filename="../pavucontrol.cc" line="569"/> - <source>Failed to initialize device manager extension: %s</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="339"/> - <source>pa_ext_device_manager_read() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="356"/> - <source>pa_context_get_sink_info_by_index() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="369"/> - <source>pa_context_get_source_info_by_index() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="382"/> - <location filename="../pavucontrol.cc" line="395"/> - <source>pa_context_get_sink_input_info() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="408"/> - <source>pa_context_get_client_info() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="418"/> - <location filename="../pavucontrol.cc" line="483"/> - <source>pa_context_get_server_info() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="431"/> - <source>pa_context_get_card_info_by_index() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="474"/> - <source>pa_context_subscribe() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="490"/> - <source>pa_context_client_info_list() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="497"/> - <source>pa_context_get_card_info_list() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="504"/> - <source>pa_context_get_sink_info_list() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="511"/> - <source>pa_context_get_source_info_list() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="518"/> - <source>pa_context_get_sink_input_info_list() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="525"/> - <source>pa_context_get_source_output_info_list() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="584"/> - <location filename="../pavucontrol.cc" line="635"/> - <source>Connection failed, attempting reconnect</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="607"/> - <location filename="../pavucontrol.cc" line="664"/> - <source>PulseAudio Volume Control</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="622"/> - <source>Connection to PulseAudio failed. Automatic retry in 5s - -In this case this is likely because PULSE_SERVER in the Environment/X11 Root Window Properties -or default-server in client.conf is misconfigured. -This situation can also arrise when PulseAudio crashed and left stale details in the X11 Root Window. -If this is the case, then PulseAudio should autospawn again, or if this is not configured you should -run start-pulseaudio-x11 manually.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="672"/> - <source>Select a specific tab on load.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="675"/> - <source>Retry forever if pa quits (every 5 seconds).</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="678"/> - <source>Maximize the window.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="703"/> - <source>Fatal Error: Unable to connect to PulseAudio</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>RoleWidget</name> - <message> - <location filename="../rolewidget.cc" line="59"/> - <source>pa_ext_stream_restore_write() failed</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>SinkInputWidget</name> - <message> - <location filename="../sinkinputwidget.cc" line="36"/> - <source>on</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="39"/> - <source>Terminate Playback</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="53"/> - <source>Unknown output</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="64"/> - <source>pa_context_set_sink_input_volume() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="79"/> - <source>pa_context_set_sink_input_mute() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="89"/> - <source>pa_context_kill_sink_input() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="114"/> - <source>pa_context_move_sink_input_by_index() failed</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>SinkWidget</name> - <message> - <location filename="../sinkwidget.cc" line="81"/> - <source>pa_context_set_sink_volume_by_index() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="96"/> - <source>pa_context_set_sink_mute_by_index() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="110"/> - <source>pa_context_set_default_sink() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="126"/> - <source>pa_context_set_sink_port_by_index() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="166"/> - <source>pa_ext_device_restore_save_sink_formats() failed</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>SourceOutputWidget</name> - <message> - <location filename="../sourceoutputwidget.cc" line="35"/> - <source>from</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="39"/> - <source>Terminate Recording</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="60"/> - <source>Unknown input</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="72"/> - <source>pa_context_set_source_output_volume() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="87"/> - <source>pa_context_set_source_output_mute() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="98"/> - <source>pa_context_kill_source_output() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="125"/> - <source>pa_context_move_source_output_by_index() failed</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>SourceWidget</name> - <message> - <location filename="../sourcewidget.cc" line="35"/> - <source>pa_context_set_source_volume_by_index() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="50"/> - <source>pa_context_set_source_mute_by_index() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="64"/> - <source>pa_context_set_default_source() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="80"/> - <source>pa_context_set_source_port_by_index() failed</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>StreamWidget</name> - <message> - <location filename="../streamwidget.ui" line="14"/> - <source>Form</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.ui" line="32"/> - <source>Device Title</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.ui" line="52"/> - <source>direction</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.ui" line="59"/> - <source>device</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.ui" line="66"/> - <source>Mute audio</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.ui" line="79"/> - <source>Lock channels together</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.cc" line="34"/> - <source>Terminate</source> - <translation type="unfinished"></translation> - </message> -</context> -</TS> diff --git a/src/translations/pavucontrol-qt_arn.ts b/src/translations/pavucontrol-qt_arn.ts deleted file mode 100644 index 0383dac..0000000 --- a/src/translations/pavucontrol-qt_arn.ts +++ /dev/null @@ -1,733 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE TS> -<TS version="2.1" language="arn"> -<context> - <name>CardWidget</name> - <message> - <location filename="../cardwidget.ui" line="14"/> - <source>Form</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../cardwidget.ui" line="29"/> - <source>Card Name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../cardwidget.ui" line="47"/> - <source>Profile:</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../cardwidget.cc" line="67"/> - <source>pa_context_set_card_profile_by_index() failed</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>Channel</name> - <message> - <location filename="../channel.cc" line="89"/> - <source>%1% (%2dB)</source> - <comment>volume slider label [X% (YdB)]</comment> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../channel.cc" line="93"/> - <source>%1%</source> - <comment>volume slider label [X%]</comment> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Silence</small></source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Min</small></source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../channel.cc" line="162"/> - <source><small>100% (0dB)</small></source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../channel.cc" line="165"/> - <source><small><i>Base</i></small></source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>ChannelWidget</name> - <message> - <location filename="../channelwidget.ui" line="14"/> - <source>Form</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../channelwidget.ui" line="20"/> - <source><b>left-front</b></source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../channelwidget.ui" line="34"/> - <source><small>50%</small></source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>DeviceWidget</name> - <message> - <location filename="../devicewidget.ui" line="14"/> - <source>Form</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="36"/> - <source>Device Title</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="56"/> - <source>Mute audio</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="69"/> - <source>Lock channels together</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="85"/> - <source>Set as fallback</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="103"/> - <source><b>Port:</b></source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="126"/> - <source>Show advanced options</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="172"/> - <source>PCM</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="182"/> - <source>AC3</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="189"/> - <source>EAC3</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="196"/> - <source>DTS</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="203"/> - <source>MPEG</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="210"/> - <source>AAC</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="238"/> - <source><b>Latency offset:</b></source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="245"/> - <source> ms</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="41"/> - <source>Rename device...</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="155"/> - <source>pa_context_set_port_latency_offset() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="226"/> - <source>Sorry, but device renaming is not supported.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="227"/> - <source>You need to load module-device-manager in the PulseAudio server in order to rename devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="233"/> - <source>Rename device %1 to:</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="240"/> - <source>pa_ext_device_manager_set_device_description() failed</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>MainWindow</name> - <message> - <location filename="../mainwindow.ui" line="14"/> - <source>Volume Control</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="55"/> - <source><i>No application is currently playing audio.</i></source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="66"/> - <location filename="../mainwindow.ui" line="131"/> - <location filename="../mainwindow.ui" line="196"/> - <location filename="../mainwindow.ui" line="261"/> - <source>Show:</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="74"/> - <location filename="../mainwindow.ui" line="139"/> - <source>All Streams</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="79"/> - <location filename="../mainwindow.ui" line="144"/> - <source>Applications</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="84"/> - <location filename="../mainwindow.ui" line="149"/> - <source>Virtual Streams</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="120"/> - <source><i>No application is currently recording audio.</i></source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="185"/> - <source><i>No output devices available</i></source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="204"/> - <source>All Output Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="209"/> - <source>Hardware Output Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="214"/> - <source>Virtual Output Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="28"/> - <source>&Playback</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="93"/> - <source>&Recording</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="158"/> - <source>&Output Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="223"/> - <source>&Input Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="250"/> - <source><i>No input devices available</i></source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="269"/> - <source>All Input Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="274"/> - <source>All Except Monitors</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="279"/> - <source>Hardware Input Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="284"/> - <source>Virtual Input Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="289"/> - <source>Monitors</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="298"/> - <source>&Configuration</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="325"/> - <source><i>No cards available for configuration</i></source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="336"/> - <source>Show volume meters</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="347"/> - <source>...</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="159"/> - <source> (plugged in)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="163"/> - <location filename="../mainwindow.cc" line="257"/> - <source> (unavailable)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="165"/> - <location filename="../mainwindow.cc" line="254"/> - <source> (unplugged)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="388"/> - <source>Failed to read data from stream</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="432"/> - <source>Peak detect</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="433"/> - <source>Failed to create monitoring stream</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="448"/> - <source>Failed to connect monitoring stream</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="587"/> - <source>Ignoring sink-input due to it being designated as an event and thus handled by the Event widget</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="759"/> - <source>System Sounds</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="1089"/> - <source>Establishing connection to PulseAudio. Please wait...</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>QObject</name> - <message> - <location filename="../pavucontrol.cc" line="66"/> - <source>Error</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="87"/> - <source>Card callback failure</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="110"/> - <source>Sink callback failure</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="133"/> - <source>Source callback failure</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="152"/> - <source>Sink input callback failure</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="171"/> - <source>Source output callback failure</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="211"/> - <source>Client callback failure</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="227"/> - <source>Server info callback failure</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="245"/> - <location filename="../pavucontrol.cc" line="542"/> - <source>Failed to initialize stream_restore extension: %s</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="263"/> - <source>pa_ext_stream_restore_read() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="281"/> - <location filename="../pavucontrol.cc" line="556"/> - <source>Failed to initialize device restore extension: %s</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="302"/> - <source>pa_ext_device_restore_read_sink_formats() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="320"/> - <location filename="../pavucontrol.cc" line="569"/> - <source>Failed to initialize device manager extension: %s</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="339"/> - <source>pa_ext_device_manager_read() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="356"/> - <source>pa_context_get_sink_info_by_index() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="369"/> - <source>pa_context_get_source_info_by_index() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="382"/> - <location filename="../pavucontrol.cc" line="395"/> - <source>pa_context_get_sink_input_info() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="408"/> - <source>pa_context_get_client_info() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="418"/> - <location filename="../pavucontrol.cc" line="483"/> - <source>pa_context_get_server_info() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="431"/> - <source>pa_context_get_card_info_by_index() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="474"/> - <source>pa_context_subscribe() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="490"/> - <source>pa_context_client_info_list() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="497"/> - <source>pa_context_get_card_info_list() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="504"/> - <source>pa_context_get_sink_info_list() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="511"/> - <source>pa_context_get_source_info_list() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="518"/> - <source>pa_context_get_sink_input_info_list() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="525"/> - <source>pa_context_get_source_output_info_list() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="584"/> - <location filename="../pavucontrol.cc" line="635"/> - <source>Connection failed, attempting reconnect</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="607"/> - <location filename="../pavucontrol.cc" line="664"/> - <source>PulseAudio Volume Control</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="622"/> - <source>Connection to PulseAudio failed. Automatic retry in 5s - -In this case this is likely because PULSE_SERVER in the Environment/X11 Root Window Properties -or default-server in client.conf is misconfigured. -This situation can also arrise when PulseAudio crashed and left stale details in the X11 Root Window. -If this is the case, then PulseAudio should autospawn again, or if this is not configured you should -run start-pulseaudio-x11 manually.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="672"/> - <source>Select a specific tab on load.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="675"/> - <source>Retry forever if pa quits (every 5 seconds).</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="678"/> - <source>Maximize the window.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="703"/> - <source>Fatal Error: Unable to connect to PulseAudio</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>RoleWidget</name> - <message> - <location filename="../rolewidget.cc" line="59"/> - <source>pa_ext_stream_restore_write() failed</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>SinkInputWidget</name> - <message> - <location filename="../sinkinputwidget.cc" line="36"/> - <source>on</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="39"/> - <source>Terminate Playback</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="53"/> - <source>Unknown output</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="64"/> - <source>pa_context_set_sink_input_volume() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="79"/> - <source>pa_context_set_sink_input_mute() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="89"/> - <source>pa_context_kill_sink_input() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="114"/> - <source>pa_context_move_sink_input_by_index() failed</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>SinkWidget</name> - <message> - <location filename="../sinkwidget.cc" line="81"/> - <source>pa_context_set_sink_volume_by_index() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="96"/> - <source>pa_context_set_sink_mute_by_index() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="110"/> - <source>pa_context_set_default_sink() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="126"/> - <source>pa_context_set_sink_port_by_index() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="166"/> - <source>pa_ext_device_restore_save_sink_formats() failed</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>SourceOutputWidget</name> - <message> - <location filename="../sourceoutputwidget.cc" line="35"/> - <source>from</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="39"/> - <source>Terminate Recording</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="60"/> - <source>Unknown input</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="72"/> - <source>pa_context_set_source_output_volume() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="87"/> - <source>pa_context_set_source_output_mute() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="98"/> - <source>pa_context_kill_source_output() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="125"/> - <source>pa_context_move_source_output_by_index() failed</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>SourceWidget</name> - <message> - <location filename="../sourcewidget.cc" line="35"/> - <source>pa_context_set_source_volume_by_index() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="50"/> - <source>pa_context_set_source_mute_by_index() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="64"/> - <source>pa_context_set_default_source() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="80"/> - <source>pa_context_set_source_port_by_index() failed</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>StreamWidget</name> - <message> - <location filename="../streamwidget.ui" line="14"/> - <source>Form</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.ui" line="32"/> - <source>Device Title</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.ui" line="52"/> - <source>direction</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.ui" line="59"/> - <source>device</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.ui" line="66"/> - <source>Mute audio</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.ui" line="79"/> - <source>Lock channels together</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.cc" line="34"/> - <source>Terminate</source> - <translation type="unfinished"></translation> - </message> -</context> -</TS> diff --git a/src/translations/pavucontrol-qt_as.ts b/src/translations/pavucontrol-qt_as.ts deleted file mode 100644 index 6b8f5bf..0000000 --- a/src/translations/pavucontrol-qt_as.ts +++ /dev/null @@ -1,733 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE TS> -<TS version="2.1" language="as"> -<context> - <name>CardWidget</name> - <message> - <location filename="../cardwidget.ui" line="14"/> - <source>Form</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../cardwidget.ui" line="29"/> - <source>Card Name</source> - <translation>কাৰ্ডৰ নাম</translation> - </message> - <message> - <location filename="../cardwidget.ui" line="47"/> - <source>Profile:</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../cardwidget.cc" line="67"/> - <source>pa_context_set_card_profile_by_index() failed</source> - <translation>pa_context_set_card_profile_by_index() বিফল</translation> - </message> -</context> -<context> - <name>Channel</name> - <message> - <location filename="../channel.cc" line="89"/> - <source>%1% (%2dB)</source> - <comment>volume slider label [X% (YdB)]</comment> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../channel.cc" line="93"/> - <source>%1%</source> - <comment>volume slider label [X%]</comment> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Silence</small></source> - <translation type="unfinished"><small>নিঃশব্দ</small></translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Min</small></source> - <translation type="unfinished"><small>সৰ্বাধিক</small></translation> - </message> - <message> - <location filename="../channel.cc" line="162"/> - <source><small>100% (0dB)</small></source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../channel.cc" line="165"/> - <source><small><i>Base</i></small></source> - <translation type="unfinished"><small><i>আধাৰ</i></small></translation> - </message> -</context> -<context> - <name>ChannelWidget</name> - <message> - <location filename="../channelwidget.ui" line="14"/> - <source>Form</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../channelwidget.ui" line="20"/> - <source><b>left-front</b></source> - <translation><b>left-front</b></translation> - </message> - <message> - <location filename="../channelwidget.ui" line="34"/> - <source><small>50%</small></source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>DeviceWidget</name> - <message> - <location filename="../devicewidget.ui" line="14"/> - <source>Form</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="36"/> - <source>Device Title</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="56"/> - <source>Mute audio</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="69"/> - <source>Lock channels together</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="85"/> - <source>Set as fallback</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="103"/> - <source><b>Port:</b></source> - <translation><b>পৰিলেখ:</b></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="126"/> - <source>Show advanced options</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="172"/> - <source>PCM</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="182"/> - <source>AC3</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="189"/> - <source>EAC3</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="196"/> - <source>DTS</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="203"/> - <source>MPEG</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="210"/> - <source>AAC</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="238"/> - <source><b>Latency offset:</b></source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="245"/> - <source> ms</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="41"/> - <source>Rename device...</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="155"/> - <source>pa_context_set_port_latency_offset() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="226"/> - <source>Sorry, but device renaming is not supported.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="227"/> - <source>You need to load module-device-manager in the PulseAudio server in order to rename devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="233"/> - <source>Rename device %1 to:</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="240"/> - <source>pa_ext_device_manager_set_device_description() failed</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>MainWindow</name> - <message> - <location filename="../mainwindow.ui" line="14"/> - <source>Volume Control</source> - <translation>শব্দৰ মাত্ৰা নিয়ন্ত্ৰণকাৰী</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="28"/> - <source>&Playback</source> - <translation>প্লেবেক (&P)</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="55"/> - <source><i>No application is currently playing audio.</i></source> - <translation><i>বৰ্ত্তমানে কোনো অনুপ্ৰয়োগে অ'ডিঅ' বজোৱা নাই</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="66"/> - <location filename="../mainwindow.ui" line="131"/> - <location filename="../mainwindow.ui" line="196"/> - <location filename="../mainwindow.ui" line="261"/> - <source>Show:</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="74"/> - <location filename="../mainwindow.ui" line="139"/> - <source>All Streams</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="79"/> - <location filename="../mainwindow.ui" line="144"/> - <source>Applications</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="84"/> - <location filename="../mainwindow.ui" line="149"/> - <source>Virtual Streams</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="93"/> - <source>&Recording</source> - <translation>ৰেকৰ্ডিং (&R)</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="120"/> - <source><i>No application is currently recording audio.</i></source> - <translation><i>বৰ্ত্তমানে কোনো অনুপ্ৰয়োগে অ'ডিঅ' ৰেকৰ্ড কৰা নাই</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="158"/> - <source>&Output Devices</source> - <translation>নিৰ্গম যন্ত্ৰ (&O)</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="185"/> - <source><i>No output devices available</i></source> - <translation><i>কোনো নিৰ্গম যন্ত্ৰ নাই</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="204"/> - <source>All Output Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="209"/> - <source>Hardware Output Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="214"/> - <source>Virtual Output Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="223"/> - <source>&Input Devices</source> - <translation>নিবেশ যন্ত্ৰ (&I)</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="250"/> - <source><i>No input devices available</i></source> - <translation><i>কোনো নিবেশ যন্ত্ৰ নাই</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="269"/> - <source>All Input Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="274"/> - <source>All Except Monitors</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="279"/> - <source>Hardware Input Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="284"/> - <source>Virtual Input Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="289"/> - <source>Monitors</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="298"/> - <source>&Configuration</source> - <translation>বিন্যাস (&C)</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="325"/> - <source><i>No cards available for configuration</i></source> - <translation><i>বিন্যাসৰ কাৰণে কোনো কাৰ্ড নাই</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="336"/> - <source>Show volume meters</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="347"/> - <source>...</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="159"/> - <source> (plugged in)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="163"/> - <location filename="../mainwindow.cc" line="257"/> - <source> (unavailable)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="165"/> - <location filename="../mainwindow.cc" line="254"/> - <source> (unplugged)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="388"/> - <source>Failed to read data from stream</source> - <translation>স্ট্ৰিমৰ পৰা তথ্য পঢ়িবলৈ বিফল</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="432"/> - <source>Peak detect</source> - <translation>সৰ্বাধিক মাত্ৰা চিনাক্ত</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="433"/> - <source>Failed to create monitoring stream</source> - <translation>monitoring stream নিৰ্মাণ কৰোঁতে ব্যৰ্থ</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="448"/> - <source>Failed to connect monitoring stream</source> - <translation>monitoring stream লৈ সংয়োগ কৰিবলৈ অক্ষম</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="587"/> - <source>Ignoring sink-input due to it being designated as an event and thus handled by the Event widget</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="759"/> - <source>System Sounds</source> - <translation>ব্যৱস্থাপ্ৰণালীৰ শব্দ</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="1089"/> - <source>Establishing connection to PulseAudio. Please wait...</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>QObject</name> - <message> - <location filename="../pavucontrol.cc" line="66"/> - <source>Error</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="87"/> - <source>Card callback failure</source> - <translation>কাৰ্ডৰ callback বিফলতা</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="110"/> - <source>Sink callback failure</source> - <translation>Sink callback বিফলতা</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="133"/> - <source>Source callback failure</source> - <translation>উৎসৰ callback বিফলতা</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="152"/> - <source>Sink input callback failure</source> - <translation>Sink নিবেশ callback বিফলতা</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="171"/> - <source>Source output callback failure</source> - <translation>উৎসৰ নিৰ্গমৰ callback বিফলতা</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="211"/> - <source>Client callback failure</source> - <translation>গ্ৰাহক callback বিফলতা</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="227"/> - <source>Server info callback failure</source> - <translation>সেৱক তথ্য callback বিফলতা</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="245"/> - <location filename="../pavucontrol.cc" line="542"/> - <source>Failed to initialize stream_restore extension: %s</source> - <translation>stream restore সম্প্ৰসাৰণ আৰম্ভ কৰিবলৈ বিফলতা (_r): %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="263"/> - <source>pa_ext_stream_restore_read() failed</source> - <translation>pa_ext_stream_restore_read() বিফল</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="281"/> - <location filename="../pavucontrol.cc" line="556"/> - <source>Failed to initialize device restore extension: %s</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="302"/> - <source>pa_ext_device_restore_read_sink_formats() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="320"/> - <location filename="../pavucontrol.cc" line="569"/> - <source>Failed to initialize device manager extension: %s</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="339"/> - <source>pa_ext_device_manager_read() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="356"/> - <source>pa_context_get_sink_info_by_index() failed</source> - <translation>pa_context_get_sink_info_by_index() বিফল</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="369"/> - <source>pa_context_get_source_info_by_index() failed</source> - <translation>pa_context_get_source_info_by_index() বিফল</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="382"/> - <location filename="../pavucontrol.cc" line="395"/> - <source>pa_context_get_sink_input_info() failed</source> - <translation>pa_context_get_sink_input_info() বিফল</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="408"/> - <source>pa_context_get_client_info() failed</source> - <translation>pa_context_get_client_info() বিফল</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="418"/> - <location filename="../pavucontrol.cc" line="483"/> - <source>pa_context_get_server_info() failed</source> - <translation>pa_context_get_server_info() বিফল</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="431"/> - <source>pa_context_get_card_info_by_index() failed</source> - <translation>pa_context_get_card_info_by_index() বিফল</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="474"/> - <source>pa_context_subscribe() failed</source> - <translation>pa_context_subscribe() বিফল</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="490"/> - <source>pa_context_client_info_list() failed</source> - <translation>pa_context_client_info_list() বিফল</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="497"/> - <source>pa_context_get_card_info_list() failed</source> - <translation>pa_context_get_card_info_list() বিফল</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="504"/> - <source>pa_context_get_sink_info_list() failed</source> - <translation>pa_context_get_sink_info_list() বিফল</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="511"/> - <source>pa_context_get_source_info_list() failed</source> - <translation>pa_context_get_source_info_list() বিফল</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="518"/> - <source>pa_context_get_sink_input_info_list() failed</source> - <translation>pa_context_get_sink_input_info_list() বিফল</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="525"/> - <source>pa_context_get_source_output_info_list() failed</source> - <translation>pa_context_get_source_output_info_list() বিফল</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="584"/> - <location filename="../pavucontrol.cc" line="635"/> - <source>Connection failed, attempting reconnect</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="607"/> - <location filename="../pavucontrol.cc" line="664"/> - <source>PulseAudio Volume Control</source> - <translation>PulseAudio শব্দৰ মাত্ৰা নিয়ন্ত্ৰণকাৰী</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="622"/> - <source>Connection to PulseAudio failed. Automatic retry in 5s - -In this case this is likely because PULSE_SERVER in the Environment/X11 Root Window Properties -or default-server in client.conf is misconfigured. -This situation can also arrise when PulseAudio crashed and left stale details in the X11 Root Window. -If this is the case, then PulseAudio should autospawn again, or if this is not configured you should -run start-pulseaudio-x11 manually.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="672"/> - <source>Select a specific tab on load.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="675"/> - <source>Retry forever if pa quits (every 5 seconds).</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="678"/> - <source>Maximize the window.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="703"/> - <source>Fatal Error: Unable to connect to PulseAudio</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>RoleWidget</name> - <message> - <location filename="../rolewidget.cc" line="59"/> - <source>pa_ext_stream_restore_write() failed</source> - <translation>pa_ext_stream_restore_write() বিফল</translation> - </message> -</context> -<context> - <name>SinkInputWidget</name> - <message> - <location filename="../sinkinputwidget.cc" line="36"/> - <source>on</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="39"/> - <source>Terminate Playback</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="53"/> - <source>Unknown output</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="64"/> - <source>pa_context_set_sink_input_volume() failed</source> - <translation>pa_context_set_sink_input_volume() বিফল</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="79"/> - <source>pa_context_set_sink_input_mute() failed</source> - <translation>pa_context_set_sink_input_mute() বিফল</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="89"/> - <source>pa_context_kill_sink_input() failed</source> - <translation>pa_context_kill_sink_input() বিফল</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="114"/> - <source>pa_context_move_sink_input_by_index() failed</source> - <translation>pa_context_move_sink_input_by_index() বিফল</translation> - </message> -</context> -<context> - <name>SinkWidget</name> - <message> - <location filename="../sinkwidget.cc" line="81"/> - <source>pa_context_set_sink_volume_by_index() failed</source> - <translation>pa_context_set_sink_volume_by_index() বিফল</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="96"/> - <source>pa_context_set_sink_mute_by_index() failed</source> - <translation>pa_context_set_sink_mute_by_index() বিফল</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="110"/> - <source>pa_context_set_default_sink() failed</source> - <translation>pa_context_set_default_sink() বিফল</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="126"/> - <source>pa_context_set_sink_port_by_index() failed</source> - <translation>pa_context_set_sink_mute_by_index() বিফল</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="166"/> - <source>pa_ext_device_restore_save_sink_formats() failed</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>SourceOutputWidget</name> - <message> - <location filename="../sourceoutputwidget.cc" line="35"/> - <source>from</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="39"/> - <source>Terminate Recording</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="60"/> - <source>Unknown input</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="72"/> - <source>pa_context_set_source_output_volume() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="87"/> - <source>pa_context_set_source_output_mute() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="98"/> - <source>pa_context_kill_source_output() failed</source> - <translation>pa_context_kill_source_output() বিফল</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="125"/> - <source>pa_context_move_source_output_by_index() failed</source> - <translation>pa_context_move_source_output_by_index() বিফল</translation> - </message> -</context> -<context> - <name>SourceWidget</name> - <message> - <location filename="../sourcewidget.cc" line="35"/> - <source>pa_context_set_source_volume_by_index() failed</source> - <translation>pa_context_set_source_volume_by_index() বিফল</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="50"/> - <source>pa_context_set_source_mute_by_index() failed</source> - <translation>pa_context_set_source_mute_by_index() বিফল</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="64"/> - <source>pa_context_set_default_source() failed</source> - <translation>pa_context_set_default_source() বিফল</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="80"/> - <source>pa_context_set_source_port_by_index() failed</source> - <translation>pa_context_set_source_mute_by_index() বিফল</translation> - </message> -</context> -<context> - <name>StreamWidget</name> - <message> - <location filename="../streamwidget.ui" line="14"/> - <source>Form</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.ui" line="32"/> - <source>Device Title</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.ui" line="52"/> - <source>direction</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.ui" line="59"/> - <source>device</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.ui" line="66"/> - <source>Mute audio</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.ui" line="79"/> - <source>Lock channels together</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.cc" line="34"/> - <source>Terminate</source> - <translation>স্ট্ৰিম বন্ধ কৰক (&T)</translation> - </message> -</context> -</TS> diff --git a/src/translations/pavucontrol-qt_ast.ts b/src/translations/pavucontrol-qt_ast.ts deleted file mode 100644 index edff082..0000000 --- a/src/translations/pavucontrol-qt_ast.ts +++ /dev/null @@ -1,733 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE TS> -<TS version="2.1" language="ast"> -<context> - <name>CardWidget</name> - <message> - <location filename="../cardwidget.ui" line="14"/> - <source>Form</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../cardwidget.ui" line="29"/> - <source>Card Name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../cardwidget.ui" line="47"/> - <source>Profile:</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../cardwidget.cc" line="67"/> - <source>pa_context_set_card_profile_by_index() failed</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>Channel</name> - <message> - <location filename="../channel.cc" line="89"/> - <source>%1% (%2dB)</source> - <comment>volume slider label [X% (YdB)]</comment> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../channel.cc" line="93"/> - <source>%1%</source> - <comment>volume slider label [X%]</comment> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Silence</small></source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Min</small></source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../channel.cc" line="162"/> - <source><small>100% (0dB)</small></source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../channel.cc" line="165"/> - <source><small><i>Base</i></small></source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>ChannelWidget</name> - <message> - <location filename="../channelwidget.ui" line="14"/> - <source>Form</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../channelwidget.ui" line="20"/> - <source><b>left-front</b></source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../channelwidget.ui" line="34"/> - <source><small>50%</small></source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>DeviceWidget</name> - <message> - <location filename="../devicewidget.ui" line="14"/> - <source>Form</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="36"/> - <source>Device Title</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="56"/> - <source>Mute audio</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="69"/> - <source>Lock channels together</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="85"/> - <source>Set as fallback</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="103"/> - <source><b>Port:</b></source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="126"/> - <source>Show advanced options</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="172"/> - <source>PCM</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="182"/> - <source>AC3</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="189"/> - <source>EAC3</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="196"/> - <source>DTS</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="203"/> - <source>MPEG</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="210"/> - <source>AAC</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="238"/> - <source><b>Latency offset:</b></source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="245"/> - <source> ms</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="41"/> - <source>Rename device...</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="155"/> - <source>pa_context_set_port_latency_offset() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="226"/> - <source>Sorry, but device renaming is not supported.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="227"/> - <source>You need to load module-device-manager in the PulseAudio server in order to rename devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="233"/> - <source>Rename device %1 to:</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="240"/> - <source>pa_ext_device_manager_set_device_description() failed</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>MainWindow</name> - <message> - <location filename="../mainwindow.ui" line="14"/> - <source>Volume Control</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="55"/> - <source><i>No application is currently playing audio.</i></source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="66"/> - <location filename="../mainwindow.ui" line="131"/> - <location filename="../mainwindow.ui" line="196"/> - <location filename="../mainwindow.ui" line="261"/> - <source>Show:</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="74"/> - <location filename="../mainwindow.ui" line="139"/> - <source>All Streams</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="79"/> - <location filename="../mainwindow.ui" line="144"/> - <source>Applications</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="84"/> - <location filename="../mainwindow.ui" line="149"/> - <source>Virtual Streams</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="120"/> - <source><i>No application is currently recording audio.</i></source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="185"/> - <source><i>No output devices available</i></source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="204"/> - <source>All Output Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="209"/> - <source>Hardware Output Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="214"/> - <source>Virtual Output Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="28"/> - <source>&Playback</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="93"/> - <source>&Recording</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="158"/> - <source>&Output Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="223"/> - <source>&Input Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="250"/> - <source><i>No input devices available</i></source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="269"/> - <source>All Input Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="274"/> - <source>All Except Monitors</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="279"/> - <source>Hardware Input Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="284"/> - <source>Virtual Input Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="289"/> - <source>Monitors</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="298"/> - <source>&Configuration</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="325"/> - <source><i>No cards available for configuration</i></source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="336"/> - <source>Show volume meters</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="347"/> - <source>...</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="159"/> - <source> (plugged in)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="163"/> - <location filename="../mainwindow.cc" line="257"/> - <source> (unavailable)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="165"/> - <location filename="../mainwindow.cc" line="254"/> - <source> (unplugged)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="388"/> - <source>Failed to read data from stream</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="432"/> - <source>Peak detect</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="433"/> - <source>Failed to create monitoring stream</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="448"/> - <source>Failed to connect monitoring stream</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="587"/> - <source>Ignoring sink-input due to it being designated as an event and thus handled by the Event widget</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="759"/> - <source>System Sounds</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="1089"/> - <source>Establishing connection to PulseAudio. Please wait...</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>QObject</name> - <message> - <location filename="../pavucontrol.cc" line="66"/> - <source>Error</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="87"/> - <source>Card callback failure</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="110"/> - <source>Sink callback failure</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="133"/> - <source>Source callback failure</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="152"/> - <source>Sink input callback failure</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="171"/> - <source>Source output callback failure</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="211"/> - <source>Client callback failure</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="227"/> - <source>Server info callback failure</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="245"/> - <location filename="../pavucontrol.cc" line="542"/> - <source>Failed to initialize stream_restore extension: %s</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="263"/> - <source>pa_ext_stream_restore_read() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="281"/> - <location filename="../pavucontrol.cc" line="556"/> - <source>Failed to initialize device restore extension: %s</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="302"/> - <source>pa_ext_device_restore_read_sink_formats() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="320"/> - <location filename="../pavucontrol.cc" line="569"/> - <source>Failed to initialize device manager extension: %s</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="339"/> - <source>pa_ext_device_manager_read() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="356"/> - <source>pa_context_get_sink_info_by_index() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="369"/> - <source>pa_context_get_source_info_by_index() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="382"/> - <location filename="../pavucontrol.cc" line="395"/> - <source>pa_context_get_sink_input_info() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="408"/> - <source>pa_context_get_client_info() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="418"/> - <location filename="../pavucontrol.cc" line="483"/> - <source>pa_context_get_server_info() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="431"/> - <source>pa_context_get_card_info_by_index() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="474"/> - <source>pa_context_subscribe() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="490"/> - <source>pa_context_client_info_list() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="497"/> - <source>pa_context_get_card_info_list() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="504"/> - <source>pa_context_get_sink_info_list() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="511"/> - <source>pa_context_get_source_info_list() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="518"/> - <source>pa_context_get_sink_input_info_list() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="525"/> - <source>pa_context_get_source_output_info_list() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="584"/> - <location filename="../pavucontrol.cc" line="635"/> - <source>Connection failed, attempting reconnect</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="607"/> - <location filename="../pavucontrol.cc" line="664"/> - <source>PulseAudio Volume Control</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="622"/> - <source>Connection to PulseAudio failed. Automatic retry in 5s - -In this case this is likely because PULSE_SERVER in the Environment/X11 Root Window Properties -or default-server in client.conf is misconfigured. -This situation can also arrise when PulseAudio crashed and left stale details in the X11 Root Window. -If this is the case, then PulseAudio should autospawn again, or if this is not configured you should -run start-pulseaudio-x11 manually.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="672"/> - <source>Select a specific tab on load.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="675"/> - <source>Retry forever if pa quits (every 5 seconds).</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="678"/> - <source>Maximize the window.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="703"/> - <source>Fatal Error: Unable to connect to PulseAudio</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>RoleWidget</name> - <message> - <location filename="../rolewidget.cc" line="59"/> - <source>pa_ext_stream_restore_write() failed</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>SinkInputWidget</name> - <message> - <location filename="../sinkinputwidget.cc" line="36"/> - <source>on</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="39"/> - <source>Terminate Playback</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="53"/> - <source>Unknown output</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="64"/> - <source>pa_context_set_sink_input_volume() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="79"/> - <source>pa_context_set_sink_input_mute() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="89"/> - <source>pa_context_kill_sink_input() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="114"/> - <source>pa_context_move_sink_input_by_index() failed</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>SinkWidget</name> - <message> - <location filename="../sinkwidget.cc" line="81"/> - <source>pa_context_set_sink_volume_by_index() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="96"/> - <source>pa_context_set_sink_mute_by_index() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="110"/> - <source>pa_context_set_default_sink() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="126"/> - <source>pa_context_set_sink_port_by_index() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="166"/> - <source>pa_ext_device_restore_save_sink_formats() failed</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>SourceOutputWidget</name> - <message> - <location filename="../sourceoutputwidget.cc" line="35"/> - <source>from</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="39"/> - <source>Terminate Recording</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="60"/> - <source>Unknown input</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="72"/> - <source>pa_context_set_source_output_volume() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="87"/> - <source>pa_context_set_source_output_mute() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="98"/> - <source>pa_context_kill_source_output() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="125"/> - <source>pa_context_move_source_output_by_index() failed</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>SourceWidget</name> - <message> - <location filename="../sourcewidget.cc" line="35"/> - <source>pa_context_set_source_volume_by_index() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="50"/> - <source>pa_context_set_source_mute_by_index() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="64"/> - <source>pa_context_set_default_source() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="80"/> - <source>pa_context_set_source_port_by_index() failed</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>StreamWidget</name> - <message> - <location filename="../streamwidget.ui" line="14"/> - <source>Form</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.ui" line="32"/> - <source>Device Title</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.ui" line="52"/> - <source>direction</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.ui" line="59"/> - <source>device</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.ui" line="66"/> - <source>Mute audio</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.ui" line="79"/> - <source>Lock channels together</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.cc" line="34"/> - <source>Terminate</source> - <translation type="unfinished"></translation> - </message> -</context> -</TS> diff --git a/src/translations/pavucontrol-qt_bg.desktop.yaml b/src/translations/pavucontrol-qt_bg.desktop.yaml deleted file mode 100644 index 86c3b09..0000000 --- a/src/translations/pavucontrol-qt_bg.desktop.yaml +++ /dev/null @@ -1,4 +0,0 @@ -Desktop Entry/Name: "Контрол на звука" -Desktop Entry/GenericName: "PulseAudio настройки на звука" -Desktop Entry/Comment: "Конфигуриране на устройствата за възпроизвеждане и запис на\ - \ звук" diff --git a/src/translations/pavucontrol-qt_bg.ts b/src/translations/pavucontrol-qt_bg.ts deleted file mode 100644 index f8486d7..0000000 --- a/src/translations/pavucontrol-qt_bg.ts +++ /dev/null @@ -1,739 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE TS> -<TS version="2.1" language="bg"> -<context> - <name>CardWidget</name> - <message> - <location filename="../cardwidget.ui" line="14"/> - <source>Form</source> - <translation>Форма</translation> - </message> - <message> - <location filename="../cardwidget.ui" line="29"/> - <source>Card Name</source> - <translation>Име на звукова карта</translation> - </message> - <message> - <location filename="../cardwidget.ui" line="47"/> - <source>Profile:</source> - <translation>Профил:</translation> - </message> - <message> - <location filename="../cardwidget.cc" line="67"/> - <source>pa_context_set_card_profile_by_index() failed</source> - <translation>pa_context_set_card_profile_by_index() неуспешно</translation> - </message> -</context> -<context> - <name>Channel</name> - <message> - <location filename="../channel.cc" line="89"/> - <source>%1% (%2dB)</source> - <comment>volume slider label [X% (YdB)]</comment> - <translation>%1% (%2dB)</translation> - </message> - <message> - <location filename="../channel.cc" line="93"/> - <source>%1%</source> - <comment>volume slider label [X%]</comment> - <translation>%1%</translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Silence</small></source> - <translation>Заглушаване</translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Min</small></source> - <translation><small>Min</small></translation> - </message> - <message> - <location filename="../channel.cc" line="162"/> - <source><small>100% (0dB)</small></source> - <translation><small>100% (0dB)</small></translation> - </message> - <message> - <location filename="../channel.cc" line="165"/> - <source><small><i>Base</i></small></source> - <translation>База</translation> - </message> -</context> -<context> - <name>ChannelWidget</name> - <message> - <location filename="../channelwidget.ui" line="14"/> - <source>Form</source> - <translation>Форма</translation> - </message> - <message> - <location filename="../channelwidget.ui" line="20"/> - <source><b>left-front</b></source> - <translation><b>лява-предна</b></translation> - </message> - <message> - <location filename="../channelwidget.ui" line="34"/> - <source><small>50%</small></source> - <translation><small>50%</small></translation> - </message> -</context> -<context> - <name>DeviceWidget</name> - <message> - <location filename="../devicewidget.ui" line="14"/> - <source>Form</source> - <translation>Форма</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="36"/> - <source>Device Title</source> - <translation>Заглавие на устройство</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="56"/> - <source>Mute audio</source> - <translation>Заглушаване</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="69"/> - <source>Lock channels together</source> - <translation>Свързване на каналите</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="85"/> - <source>Set as fallback</source> - <translation>Задаване като резервно устройство</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="103"/> - <source><b>Port:</b></source> - <translation><b>Порт:</b></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="126"/> - <source>Show advanced options</source> - <translation>Показване на разширени опции</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="172"/> - <source>PCM</source> - <translation>PCM</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="182"/> - <source>AC3</source> - <translation>AC3</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="189"/> - <source>EAC3</source> - <translation>EAC3</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="196"/> - <source>DTS</source> - <translation>DTS</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="203"/> - <source>MPEG</source> - <translation>MPEG</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="210"/> - <source>AAC</source> - <translation>AAC</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="238"/> - <source><b>Latency offset:</b></source> - <translation><b>Изместване на латентност:</b></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="245"/> - <source> ms</source> - <translation> ms</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="41"/> - <source>Rename device...</source> - <translation>Преименуване на устройство...</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="155"/> - <source>pa_context_set_port_latency_offset() failed</source> - <translation>pa_context_set_port_latency_offset() неуспешно</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="226"/> - <source>Sorry, but device renaming is not supported.</source> - <translation>За съжаление преименуване на устройството не се поддържа.</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="227"/> - <source>You need to load module-device-manager in the PulseAudio server in order to rename devices</source> - <translation>Необходимо е зареждане на module-device-manager в PulseAudio за преименуване на устройство</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="233"/> - <source>Rename device %1 to:</source> - <translation>Преименуване на устройство %1 като:</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="240"/> - <source>pa_ext_device_manager_set_device_description() failed</source> - <translation>pa_ext_device_manager_set_device_description() неуспешно</translation> - </message> -</context> -<context> - <name>MainWindow</name> - <message> - <location filename="../mainwindow.ui" line="14"/> - <source>Volume Control</source> - <translation>Контрол на звука</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="55"/> - <source><i>No application is currently playing audio.</i></source> - <translation><i>Понастоящем нито едно приложение не възпроизвежда аудио.</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="66"/> - <location filename="../mainwindow.ui" line="131"/> - <location filename="../mainwindow.ui" line="196"/> - <location filename="../mainwindow.ui" line="261"/> - <source>Show:</source> - <translation>Показване:</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="74"/> - <location filename="../mainwindow.ui" line="139"/> - <source>All Streams</source> - <translation>Всички потоци</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="79"/> - <location filename="../mainwindow.ui" line="144"/> - <source>Applications</source> - <translation>Приложения</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="84"/> - <location filename="../mainwindow.ui" line="149"/> - <source>Virtual Streams</source> - <translation>Виртуални потоци</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="120"/> - <source><i>No application is currently recording audio.</i></source> - <translation><i>Понастоящем нито едно приложение не записва аудио.</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="185"/> - <source><i>No output devices available</i></source> - <translation><i>Не е налично изходно устройство</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="204"/> - <source>All Output Devices</source> - <translation>Всички изходни устройства</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="209"/> - <source>Hardware Output Devices</source> - <translation>Хардуерни изходни устройства</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="214"/> - <source>Virtual Output Devices</source> - <translation>Виртуални изходни устройства</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="28"/> - <source>&Playback</source> - <translation>&Възпроизвеждане</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="93"/> - <source>&Recording</source> - <translation>&Записване</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="158"/> - <source>&Output Devices</source> - <translation>&Изходни устройства</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="223"/> - <source>&Input Devices</source> - <translation>&Входни устройства</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="250"/> - <source><i>No input devices available</i></source> - <translation><i>Не е налично входно устройство</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="269"/> - <source>All Input Devices</source> - <translation>Всички входни устройства</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="274"/> - <source>All Except Monitors</source> - <translation>Всички без монитори</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="279"/> - <source>Hardware Input Devices</source> - <translation>Хардуерни входни устройства</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="284"/> - <source>Virtual Input Devices</source> - <translation>Виртуални входни устройства</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="289"/> - <source>Monitors</source> - <translation>Монитори</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="298"/> - <source>&Configuration</source> - <translation>&Конфигуриране</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="325"/> - <source><i>No cards available for configuration</i></source> - <translation><i>Не са налични устройства за конфигуриране</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="336"/> - <source>Show volume meters</source> - <translation>Показване скалите за силата на звука</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="347"/> - <source>...</source> - <translation>...</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="159"/> - <source> (plugged in)</source> - <translation> (включен)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="163"/> - <location filename="../mainwindow.cc" line="257"/> - <source> (unavailable)</source> - <translation> (не е налично)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="165"/> - <location filename="../mainwindow.cc" line="254"/> - <source> (unplugged)</source> - <translation> (изключен)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="388"/> - <source>Failed to read data from stream</source> - <translation>Четенето на данни от потока неуспешно</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="432"/> - <source>Peak detect</source> - <translation>Детекция на пикове</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="433"/> - <source>Failed to create monitoring stream</source> - <translation>Създаването на поток за мониториране неуспешно</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="448"/> - <source>Failed to connect monitoring stream</source> - <translation>Свързването към поток за мониториране неуспешно</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="587"/> - <source>Ignoring sink-input due to it being designated as an event and thus handled by the Event widget</source> - <translation>Игнориране на входните данни на устройството поради това, че са определени като събитие и по този начин се обработват от Event widget</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="759"/> - <source>System Sounds</source> - <translation>Системни звуци</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="1089"/> - <source>Establishing connection to PulseAudio. Please wait...</source> - <translation>Установяване връзка с PulseAudio. Моля изчакайте...</translation> - </message> -</context> -<context> - <name>QObject</name> - <message> - <location filename="../pavucontrol.cc" line="66"/> - <source>Error</source> - <translation>Грешка</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="87"/> - <source>Card callback failure</source> - <translation>Неуспешен обратен отговор на картата</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="110"/> - <source>Sink callback failure</source> - <translation>Неуспешен обратен отговор на дигиталния вход</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="133"/> - <source>Source callback failure</source> - <translation>Неуспешен обратен отговор на дигиталния източник</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="152"/> - <source>Sink input callback failure</source> - <translation>Неуспешен обратен отговор на дигиталния вход</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="171"/> - <source>Source output callback failure</source> - <translation>Неуспешен обратен отговор на дигиталния вход</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="211"/> - <source>Client callback failure</source> - <translation>Неуспешен обратен отговор на клиента</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="227"/> - <source>Server info callback failure</source> - <translation>Неуспешен обратен отговор от сървъра</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="245"/> - <location filename="../pavucontrol.cc" line="542"/> - <source>Failed to initialize stream_restore extension: %s</source> - <translation>Неуспешно инициализиране на stream_restore разширение: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="263"/> - <source>pa_ext_stream_restore_read() failed</source> - <translation>pa_ext_stream_restore_read() неуспешно</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="281"/> - <location filename="../pavucontrol.cc" line="556"/> - <source>Failed to initialize device restore extension: %s</source> - <translation>Неуспешно инициализиране на device restore разширение: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="302"/> - <source>pa_ext_device_restore_read_sink_formats() failed</source> - <translation>pa_ext_device_restore_read_sink_formats() неуспешно</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="320"/> - <location filename="../pavucontrol.cc" line="569"/> - <source>Failed to initialize device manager extension: %s</source> - <translation>Неуспешно инициализиране на device manager разширение: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="339"/> - <source>pa_ext_device_manager_read() failed</source> - <translation>pa_ext_device_manager_read() неуспешно</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="356"/> - <source>pa_context_get_sink_info_by_index() failed</source> - <translation>pa_context_get_sink_info_by_index() неуспешно</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="369"/> - <source>pa_context_get_source_info_by_index() failed</source> - <translation>pa_context_get_source_info_by_index() неуспешно</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="382"/> - <location filename="../pavucontrol.cc" line="395"/> - <source>pa_context_get_sink_input_info() failed</source> - <translation>pa_context_get_sink_input_info() неуспешно</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="408"/> - <source>pa_context_get_client_info() failed</source> - <translation>pa_context_get_client_info() неуспешно</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="418"/> - <location filename="../pavucontrol.cc" line="483"/> - <source>pa_context_get_server_info() failed</source> - <translation>pa_context_get_server_info() неуспешно</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="431"/> - <source>pa_context_get_card_info_by_index() failed</source> - <translation>pa_context_get_card_info_by_index() неуспешно</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="474"/> - <source>pa_context_subscribe() failed</source> - <translation>pa_context_subscribe() неуспешно</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="490"/> - <source>pa_context_client_info_list() failed</source> - <translation>pa_context_client_info_list() неуспешно</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="497"/> - <source>pa_context_get_card_info_list() failed</source> - <translation>pa_context_get_card_info_list() неуспешно</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="504"/> - <source>pa_context_get_sink_info_list() failed</source> - <translation>pa_context_get_sink_info_list() неуспешно</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="511"/> - <source>pa_context_get_source_info_list() failed</source> - <translation>pa_context_get_source_info_list() неуспешно</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="518"/> - <source>pa_context_get_sink_input_info_list() failed</source> - <translation>pa_context_get_sink_input_info_list() неуспешно</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="525"/> - <source>pa_context_get_source_output_info_list() failed</source> - <translation>pa_context_get_source_output_info_list() неуспешно</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="584"/> - <location filename="../pavucontrol.cc" line="635"/> - <source>Connection failed, attempting reconnect</source> - <translation>Свързването неуспешно, опитване повторно свързване</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="607"/> - <location filename="../pavucontrol.cc" line="664"/> - <source>PulseAudio Volume Control</source> - <translation>PulseAudio Контрол на звука</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="622"/> - <source>Connection to PulseAudio failed. Automatic retry in 5s - -In this case this is likely because PULSE_SERVER in the Environment/X11 Root Window Properties -or default-server in client.conf is misconfigured. -This situation can also arrise when PulseAudio crashed and left stale details in the X11 Root Window. -If this is the case, then PulseAudio should autospawn again, or if this is not configured you should -run start-pulseaudio-x11 manually.</source> - <translation>Връзката с PulseAudio не бе успешна. Автоматичен повторен опит след 5 секунди - -Вероятна причина за това е неправилно конфигуриране на PULSE_SERVER в Environment / X11 Root Window Properties -или сървърът по подразбиране в client.conf . -Тази ситуация може също да възникне, когато PulseAudio се срине и остави неактуални детайли в X11 Root Window. -Ако случаят е такъв, тогава PulseAudio трябва да се стартира автоматично отново или ако това не е конфигурирано, трябва -да изпълните ръчно start-pulseaudio-x11.</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="672"/> - <source>Select a specific tab on load.</source> - <translation>Избиране на определен раздел при зареждане.</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="675"/> - <source>Retry forever if pa quits (every 5 seconds).</source> - <translation>Повторни опитвания без прекъсване, ако pa прекъсне (всеки 5 секунди).</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="678"/> - <source>Maximize the window.</source> - <translation>Максимализиране на прозореца.</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="703"/> - <source>Fatal Error: Unable to connect to PulseAudio</source> - <translation>Фатална грешка: Невъзможна връзка с PulseAudio</translation> - </message> -</context> -<context> - <name>RoleWidget</name> - <message> - <location filename="../rolewidget.cc" line="59"/> - <source>pa_ext_stream_restore_write() failed</source> - <translation>pa_ext_stream_restore_write() неуспешно</translation> - </message> -</context> -<context> - <name>SinkInputWidget</name> - <message> - <location filename="../sinkinputwidget.cc" line="36"/> - <source>on</source> - <translation>включен</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="39"/> - <source>Terminate Playback</source> - <translation>Спиране на възпроизвеждането</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="53"/> - <source>Unknown output</source> - <translation>Неизвестен изход</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="64"/> - <source>pa_context_set_sink_input_volume() failed</source> - <translation>pa_context_set_sink_input_volume() неуспешно</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="79"/> - <source>pa_context_set_sink_input_mute() failed</source> - <translation>pa_context_set_sink_input_mute() неуспешно</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="89"/> - <source>pa_context_kill_sink_input() failed</source> - <translation>pa_context_kill_sink_input() неуспешно</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="114"/> - <source>pa_context_move_sink_input_by_index() failed</source> - <translation>pa_context_move_sink_input_by_index() неуспешно</translation> - </message> -</context> -<context> - <name>SinkWidget</name> - <message> - <location filename="../sinkwidget.cc" line="81"/> - <source>pa_context_set_sink_volume_by_index() failed</source> - <translation>pa_context_set_sink_volume_by_index() неуспешно</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="96"/> - <source>pa_context_set_sink_mute_by_index() failed</source> - <translation>pa_context_set_sink_mute_by_index() неуспешно</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="110"/> - <source>pa_context_set_default_sink() failed</source> - <translation>pa_context_set_default_sink() неуспешно</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="126"/> - <source>pa_context_set_sink_port_by_index() failed</source> - <translation>pa_context_set_sink_port_by_index() неуспешно</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="166"/> - <source>pa_ext_device_restore_save_sink_formats() failed</source> - <translation>pa_ext_device_restore_save_sink_formats() неуспешно</translation> - </message> -</context> -<context> - <name>SourceOutputWidget</name> - <message> - <location filename="../sourceoutputwidget.cc" line="35"/> - <source>from</source> - <translation>от</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="39"/> - <source>Terminate Recording</source> - <translation>Спиране на записването</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="60"/> - <source>Unknown input</source> - <translation>Неизвестен вход</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="72"/> - <source>pa_context_set_source_output_volume() failed</source> - <translation>pa_context_set_source_output_volume() неуспешно</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="87"/> - <source>pa_context_set_source_output_mute() failed</source> - <translation>pa_context_set_source_output_mute() неуспешно</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="98"/> - <source>pa_context_kill_source_output() failed</source> - <translation>pa_context_kill_source_output() неуспешно</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="125"/> - <source>pa_context_move_source_output_by_index() failed</source> - <translation>pa_context_move_source_output_by_index() неуспешно</translation> - </message> -</context> -<context> - <name>SourceWidget</name> - <message> - <location filename="../sourcewidget.cc" line="35"/> - <source>pa_context_set_source_volume_by_index() failed</source> - <translation>pa_context_set_source_volume_by_index() неуспешно</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="50"/> - <source>pa_context_set_source_mute_by_index() failed</source> - <translation>pa_context_set_source_mute_by_index() неуспешно</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="64"/> - <source>pa_context_set_default_source() failed</source> - <translation>pa_context_set_default_source() неуспешно</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="80"/> - <source>pa_context_set_source_port_by_index() failed</source> - <translation>pa_context_set_source_port_by_index() неуспешно</translation> - </message> -</context> -<context> - <name>StreamWidget</name> - <message> - <location filename="../streamwidget.ui" line="14"/> - <source>Form</source> - <translation>Форма</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="32"/> - <source>Device Title</source> - <translation>Заглавие на устройство</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="52"/> - <source>direction</source> - <translation>посока</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="59"/> - <source>device</source> - <translation>устройство</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="66"/> - <source>Mute audio</source> - <translation>Заглушаване</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="79"/> - <source>Lock channels together</source> - <translation>Свързване на каналите</translation> - </message> - <message> - <location filename="../streamwidget.cc" line="34"/> - <source>Terminate</source> - <translation>Спиране</translation> - </message> -</context> -</TS> diff --git a/src/translations/pavucontrol-qt_bn_IN.ts b/src/translations/pavucontrol-qt_bn_IN.ts deleted file mode 100644 index c9d59ae..0000000 --- a/src/translations/pavucontrol-qt_bn_IN.ts +++ /dev/null @@ -1,733 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE TS> -<TS version="2.1" language="bn_IN"> -<context> - <name>CardWidget</name> - <message> - <location filename="../cardwidget.ui" line="14"/> - <source>Form</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../cardwidget.ui" line="29"/> - <source>Card Name</source> - <translation>কার্ডের নাম</translation> - </message> - <message> - <location filename="../cardwidget.ui" line="47"/> - <source>Profile:</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../cardwidget.cc" line="67"/> - <source>pa_context_set_card_profile_by_index() failed</source> - <translation>pa_context_set_card_profile_by_index() ব্যর্থ</translation> - </message> -</context> -<context> - <name>Channel</name> - <message> - <location filename="../channel.cc" line="89"/> - <source>%1% (%2dB)</source> - <comment>volume slider label [X% (YdB)]</comment> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../channel.cc" line="93"/> - <source>%1%</source> - <comment>volume slider label [X%]</comment> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Silence</small></source> - <translation type="unfinished"><small>নিঃশব্দ</small></translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Min</small></source> - <translation type="unfinished"><small>সর্বনিম্ন</small></translation> - </message> - <message> - <location filename="../channel.cc" line="162"/> - <source><small>100% (0dB)</small></source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../channel.cc" line="165"/> - <source><small><i>Base</i></small></source> - <translation type="unfinished"><small><i>বেস</i></small></translation> - </message> -</context> -<context> - <name>ChannelWidget</name> - <message> - <location filename="../channelwidget.ui" line="14"/> - <source>Form</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../channelwidget.ui" line="20"/> - <source><b>left-front</b></source> - <translation><b>সামনে বাঁদিকে</b></translation> - </message> - <message> - <location filename="../channelwidget.ui" line="34"/> - <source><small>50%</small></source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>DeviceWidget</name> - <message> - <location filename="../devicewidget.ui" line="14"/> - <source>Form</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="36"/> - <source>Device Title</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="56"/> - <source>Mute audio</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="69"/> - <source>Lock channels together</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="85"/> - <source>Set as fallback</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="103"/> - <source><b>Port:</b></source> - <translation><b>পোর্ট:</b></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="126"/> - <source>Show advanced options</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="172"/> - <source>PCM</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="182"/> - <source>AC3</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="189"/> - <source>EAC3</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="196"/> - <source>DTS</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="203"/> - <source>MPEG</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="210"/> - <source>AAC</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="238"/> - <source><b>Latency offset:</b></source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="245"/> - <source> ms</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="41"/> - <source>Rename device...</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="155"/> - <source>pa_context_set_port_latency_offset() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="226"/> - <source>Sorry, but device renaming is not supported.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="227"/> - <source>You need to load module-device-manager in the PulseAudio server in order to rename devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="233"/> - <source>Rename device %1 to:</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="240"/> - <source>pa_ext_device_manager_set_device_description() failed</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>MainWindow</name> - <message> - <location filename="../mainwindow.ui" line="14"/> - <source>Volume Control</source> - <translation>শব্দের মাত্রা নিয়ন্ত্রণ</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="28"/> - <source>&Playback</source> - <translation>প্লে-ব্যাক (&P)</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="55"/> - <source><i>No application is currently playing audio.</i></source> - <translation><i>কোনো অ্যাপ্লিকেশন দ্বারা বর্তমানে অডিও বাজানো হচ্ছে না।</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="66"/> - <location filename="../mainwindow.ui" line="131"/> - <location filename="../mainwindow.ui" line="196"/> - <location filename="../mainwindow.ui" line="261"/> - <source>Show:</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="74"/> - <location filename="../mainwindow.ui" line="139"/> - <source>All Streams</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="79"/> - <location filename="../mainwindow.ui" line="144"/> - <source>Applications</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="84"/> - <location filename="../mainwindow.ui" line="149"/> - <source>Virtual Streams</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="93"/> - <source>&Recording</source> - <translation>রেকর্ডিং (&R)</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="120"/> - <source><i>No application is currently recording audio.</i></source> - <translation><i>কোনো অ্যাপ্লিকেশন দ্বারা বর্তমানে অডিও রেকর্ড হচ্ছে না।</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="158"/> - <source>&Output Devices</source> - <translation>আউটপুট ডিভাইস (&O)</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="185"/> - <source><i>No output devices available</i></source> - <translation><i>কোনো আউটপুট ডিভাইস উপলব্ধ নেই</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="204"/> - <source>All Output Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="209"/> - <source>Hardware Output Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="214"/> - <source>Virtual Output Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="223"/> - <source>&Input Devices</source> - <translation>ইনপুট ডিভাইস (&I)</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="250"/> - <source><i>No input devices available</i></source> - <translation><i>কোনো ইনপুট ডিভাইস উপলব্ধ নেই</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="269"/> - <source>All Input Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="274"/> - <source>All Except Monitors</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="279"/> - <source>Hardware Input Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="284"/> - <source>Virtual Input Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="289"/> - <source>Monitors</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="298"/> - <source>&Configuration</source> - <translation>কনফিগারেশন (&C)</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="325"/> - <source><i>No cards available for configuration</i></source> - <translation><i>কনফিগারেশনের জন্য কোনো কার্ড উপলব্ধ নেই</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="336"/> - <source>Show volume meters</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="347"/> - <source>...</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="159"/> - <source> (plugged in)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="163"/> - <location filename="../mainwindow.cc" line="257"/> - <source> (unavailable)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="165"/> - <location filename="../mainwindow.cc" line="254"/> - <source> (unplugged)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="388"/> - <source>Failed to read data from stream</source> - <translation>স্ট্রিম থেকে তথ্য পড়তে ব্যর্থ</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="432"/> - <source>Peak detect</source> - <translation>চুড়ান্ত মাপ সনাক্ত হয়েছে</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="433"/> - <source>Failed to create monitoring stream</source> - <translation>নিরীক্ষণের স্ট্রিম নির্মাণ করতে ব্যর্থ</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="448"/> - <source>Failed to connect monitoring stream</source> - <translation>নিরীক্ষণের স্ট্রিম সংযুক্ত করতে ব্যর্থ</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="587"/> - <source>Ignoring sink-input due to it being designated as an event and thus handled by the Event widget</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="759"/> - <source>System Sounds</source> - <translation>সিস্টেমের শব্দ</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="1089"/> - <source>Establishing connection to PulseAudio. Please wait...</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>QObject</name> - <message> - <location filename="../pavucontrol.cc" line="66"/> - <source>Error</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="87"/> - <source>Card callback failure</source> - <translation>কার্ড কল-ব্যাক বিফল</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="110"/> - <source>Sink callback failure</source> - <translation>সিংক কল-ব্যাক বিফল</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="133"/> - <source>Source callback failure</source> - <translation>সোর্স কল-ব্যাক বিফল</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="152"/> - <source>Sink input callback failure</source> - <translation>সিংক ইনপুট কল-ব্যাক বিফল</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="171"/> - <source>Source output callback failure</source> - <translation>সোর্স আউটপুট কল-ব্যাক বিফল</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="211"/> - <source>Client callback failure</source> - <translation>ক্লায়েন্ট কল-ব্যাক বিফল</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="227"/> - <source>Server info callback failure</source> - <translation>সার্ভার ইনফো কল-ব্যাক বিফল</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="245"/> - <location filename="../pavucontrol.cc" line="542"/> - <source>Failed to initialize stream_restore extension: %s</source> - <translation>stream_restore এক্সটেনশন আরম্ভ করতে ব্যর্থ: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="263"/> - <source>pa_ext_stream_restore_read() failed</source> - <translation>pa_ext_stream_restore_read() ব্যর্থ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="281"/> - <location filename="../pavucontrol.cc" line="556"/> - <source>Failed to initialize device restore extension: %s</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="302"/> - <source>pa_ext_device_restore_read_sink_formats() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="320"/> - <location filename="../pavucontrol.cc" line="569"/> - <source>Failed to initialize device manager extension: %s</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="339"/> - <source>pa_ext_device_manager_read() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="356"/> - <source>pa_context_get_sink_info_by_index() failed</source> - <translation>pa_context_get_sink_info_by_index() ব্যর্থ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="369"/> - <source>pa_context_get_source_info_by_index() failed</source> - <translation>pa_context_get_source_info_by_index() ব্যর্থ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="382"/> - <location filename="../pavucontrol.cc" line="395"/> - <source>pa_context_get_sink_input_info() failed</source> - <translation>pa_context_get_sink_input_info() ব্যর্থ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="408"/> - <source>pa_context_get_client_info() failed</source> - <translation>pa_context_get_client_info() ব্যর্থ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="418"/> - <location filename="../pavucontrol.cc" line="483"/> - <source>pa_context_get_server_info() failed</source> - <translation>pa_context_get_server_info() ব্যর্থ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="431"/> - <source>pa_context_get_card_info_by_index() failed</source> - <translation>pa_context_get_card_info_by_index() ব্যর্থ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="474"/> - <source>pa_context_subscribe() failed</source> - <translation>pa_context_subscribe() ব্যর্থ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="490"/> - <source>pa_context_client_info_list() failed</source> - <translation>pa_context_client_info_list() ব্যর্থ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="497"/> - <source>pa_context_get_card_info_list() failed</source> - <translation>pa_context_get_card_info_list() ব্যর্থ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="504"/> - <source>pa_context_get_sink_info_list() failed</source> - <translation>pa_context_get_sink_info_list() ব্যর্থ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="511"/> - <source>pa_context_get_source_info_list() failed</source> - <translation>pa_context_get_source_info_list() ব্যর্থ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="518"/> - <source>pa_context_get_sink_input_info_list() failed</source> - <translation>pa_context_get_sink_input_info_list() ব্যর্থ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="525"/> - <source>pa_context_get_source_output_info_list() failed</source> - <translation>pa_context_get_source_output_info_list() ব্যর্থ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="584"/> - <location filename="../pavucontrol.cc" line="635"/> - <source>Connection failed, attempting reconnect</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="607"/> - <location filename="../pavucontrol.cc" line="664"/> - <source>PulseAudio Volume Control</source> - <translation>PulseAudio শব্দের মাত্রা নিয়ন্ত্রণ ব্যবস্থা</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="622"/> - <source>Connection to PulseAudio failed. Automatic retry in 5s - -In this case this is likely because PULSE_SERVER in the Environment/X11 Root Window Properties -or default-server in client.conf is misconfigured. -This situation can also arrise when PulseAudio crashed and left stale details in the X11 Root Window. -If this is the case, then PulseAudio should autospawn again, or if this is not configured you should -run start-pulseaudio-x11 manually.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="672"/> - <source>Select a specific tab on load.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="675"/> - <source>Retry forever if pa quits (every 5 seconds).</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="678"/> - <source>Maximize the window.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="703"/> - <source>Fatal Error: Unable to connect to PulseAudio</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>RoleWidget</name> - <message> - <location filename="../rolewidget.cc" line="59"/> - <source>pa_ext_stream_restore_write() failed</source> - <translation>pa_ext_stream_restore_write() ব্যর্থ</translation> - </message> -</context> -<context> - <name>SinkInputWidget</name> - <message> - <location filename="../sinkinputwidget.cc" line="36"/> - <source>on</source> - <translation>চালু</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="39"/> - <source>Terminate Playback</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="53"/> - <source>Unknown output</source> - <translation>অজানা আউটপুট</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="64"/> - <source>pa_context_set_sink_input_volume() failed</source> - <translation>pa_context_set_sink_input_volume() ব্যর্থ</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="79"/> - <source>pa_context_set_sink_input_mute() failed</source> - <translation>pa_context_set_sink_input_mute() ব্যর্থ</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="89"/> - <source>pa_context_kill_sink_input() failed</source> - <translation>pa_context_kill_sink_input() ব্যর্থ</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="114"/> - <source>pa_context_move_sink_input_by_index() failed</source> - <translation>pa_context_move_sink_input_by_index() ব্যর্থ</translation> - </message> -</context> -<context> - <name>SinkWidget</name> - <message> - <location filename="../sinkwidget.cc" line="81"/> - <source>pa_context_set_sink_volume_by_index() failed</source> - <translation>pa_context_set_sink_volume_by_index() ব্যর্থ</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="96"/> - <source>pa_context_set_sink_mute_by_index() failed</source> - <translation>pa_context_set_sink_mute_by_index() ব্যর্থ</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="110"/> - <source>pa_context_set_default_sink() failed</source> - <translation>pa_context_set_default_sink() ব্যর্থ</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="126"/> - <source>pa_context_set_sink_port_by_index() failed</source> - <translation>pa_context_set_sink_port_by_index() ব্যর্থ</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="166"/> - <source>pa_ext_device_restore_save_sink_formats() failed</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>SourceOutputWidget</name> - <message> - <location filename="../sourceoutputwidget.cc" line="35"/> - <source>from</source> - <translation>আরম্ভ</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="39"/> - <source>Terminate Recording</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="60"/> - <source>Unknown input</source> - <translation>অজানা ইনপুট</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="72"/> - <source>pa_context_set_source_output_volume() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="87"/> - <source>pa_context_set_source_output_mute() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="98"/> - <source>pa_context_kill_source_output() failed</source> - <translation>pa_context_kill_source_output() ব্যর্থ</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="125"/> - <source>pa_context_move_source_output_by_index() failed</source> - <translation>pa_context_move_source_output_by_index() ব্যর্থ</translation> - </message> -</context> -<context> - <name>SourceWidget</name> - <message> - <location filename="../sourcewidget.cc" line="35"/> - <source>pa_context_set_source_volume_by_index() failed</source> - <translation>pa_context_set_source_volume_by_index() ব্যর্থ</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="50"/> - <source>pa_context_set_source_mute_by_index() failed</source> - <translation>pa_context_set_source_mute_by_index() ব্যর্থ</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="64"/> - <source>pa_context_set_default_source() failed</source> - <translation>pa_context_set_default_source() ব্যর্থ</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="80"/> - <source>pa_context_set_source_port_by_index() failed</source> - <translation>pa_context_set_source_port_by_index() ব্যর্থ</translation> - </message> -</context> -<context> - <name>StreamWidget</name> - <message> - <location filename="../streamwidget.ui" line="14"/> - <source>Form</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.ui" line="32"/> - <source>Device Title</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.ui" line="52"/> - <source>direction</source> - <translation>দিশা</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="59"/> - <source>device</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.ui" line="66"/> - <source>Mute audio</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.ui" line="79"/> - <source>Lock channels together</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.cc" line="34"/> - <source>Terminate</source> - <translation>প্লে-ব্যাক বন্ধ করুন</translation> - </message> -</context> -</TS> diff --git a/src/translations/pavucontrol-qt_ca.desktop.yaml b/src/translations/pavucontrol-qt_ca.desktop.yaml deleted file mode 100644 index 022525a..0000000 --- a/src/translations/pavucontrol-qt_ca.desktop.yaml +++ /dev/null @@ -1,3 +0,0 @@ -Desktop Entry/Name: "Control del volum de PulseAudio" -Desktop Entry/GenericName: "Control del volum" -Desktop Entry/Comment: "Ajusteu el nivell del volum" diff --git a/src/translations/pavucontrol-qt_ca.ts b/src/translations/pavucontrol-qt_ca.ts deleted file mode 100644 index 0c0d398..0000000 --- a/src/translations/pavucontrol-qt_ca.ts +++ /dev/null @@ -1,739 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE TS> -<TS version="2.1" language="ca"> -<context> - <name>CardWidget</name> - <message> - <location filename="../cardwidget.ui" line="14"/> - <source>Form</source> - <translation>Formulari</translation> - </message> - <message> - <location filename="../cardwidget.ui" line="29"/> - <source>Card Name</source> - <translation>Nom de la targeta</translation> - </message> - <message> - <location filename="../cardwidget.ui" line="47"/> - <source>Profile:</source> - <translation>Perfil:</translation> - </message> - <message> - <location filename="../cardwidget.cc" line="67"/> - <source>pa_context_set_card_profile_by_index() failed</source> - <translation>Ha fallat pa_context_set_card_profile_by_index()</translation> - </message> -</context> -<context> - <name>Channel</name> - <message> - <location filename="../channel.cc" line="89"/> - <source>%1% (%2dB)</source> - <comment>volume slider label [X% (YdB)]</comment> - <translation>%1% (%2 dB)</translation> - </message> - <message> - <location filename="../channel.cc" line="93"/> - <source>%1%</source> - <comment>volume slider label [X%]</comment> - <translation>%1%</translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Silence</small></source> - <translation><small>Silenci</small></translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Min</small></source> - <translation><small>Mín.</small></translation> - </message> - <message> - <location filename="../channel.cc" line="162"/> - <source><small>100% (0dB)</small></source> - <translation><small>100% (0 dB)</small></translation> - </message> - <message> - <location filename="../channel.cc" line="165"/> - <source><small><i>Base</i></small></source> - <translation><small><i>Base</i></small></translation> - </message> -</context> -<context> - <name>ChannelWidget</name> - <message> - <location filename="../channelwidget.ui" line="14"/> - <source>Form</source> - <translation>Formulari</translation> - </message> - <message> - <location filename="../channelwidget.ui" line="20"/> - <source><b>left-front</b></source> - <translation><b>esquerra-davant</b></translation> - </message> - <message> - <location filename="../channelwidget.ui" line="34"/> - <source><small>50%</small></source> - <translation><small>50%</small></translation> - </message> -</context> -<context> - <name>DeviceWidget</name> - <message> - <location filename="../devicewidget.ui" line="14"/> - <source>Form</source> - <translation>Formulari</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="36"/> - <source>Device Title</source> - <translation>Títol del dispositiu</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="56"/> - <source>Mute audio</source> - <translation>Silencia l'àudio</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="69"/> - <source>Lock channels together</source> - <translation>Bloqueja els canals junts</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="85"/> - <source>Set as fallback</source> - <translation>Estableix com a alternativa</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="103"/> - <source><b>Port:</b></source> - <translation><b>Port:</b></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="126"/> - <source>Show advanced options</source> - <translation>Mostra les opcions avançades</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="172"/> - <source>PCM</source> - <translation>PCM</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="182"/> - <source>AC3</source> - <translation>AC3</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="189"/> - <source>EAC3</source> - <translation>EAC3</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="196"/> - <source>DTS</source> - <translation>DTS</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="203"/> - <source>MPEG</source> - <translation>MPEG</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="210"/> - <source>AAC</source> - <translation>AAC</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="238"/> - <source><b>Latency offset:</b></source> - <translation><b>Desplaçament de la latència:</b></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="245"/> - <source> ms</source> - <translation> ms</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="41"/> - <source>Rename device...</source> - <translation>Reanomena el dispositiu...</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="155"/> - <source>pa_context_set_port_latency_offset() failed</source> - <translation>Ha fallat pa_context_set_port_latency_offset()</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="226"/> - <source>Sorry, but device renaming is not supported.</source> - <translation>Ho sentim, però el reanomenament del dispositiu no és compatible.</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="227"/> - <source>You need to load module-device-manager in the PulseAudio server in order to rename devices</source> - <translation>Heu de carregar el mòdul del gestor de dispositius al servidor de PulseAudio per a reanomenar dispositius</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="233"/> - <source>Rename device %1 to:</source> - <translation>Reanomena el dispositiu %1 a:</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="240"/> - <source>pa_ext_device_manager_set_device_description() failed</source> - <translation>Ha fallat pa_ext_device_manager_set_device_description()</translation> - </message> -</context> -<context> - <name>MainWindow</name> - <message> - <location filename="../mainwindow.ui" line="14"/> - <source>Volume Control</source> - <translation>Control del volum</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="28"/> - <source>&Playback</source> - <translation>Re&producció</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="55"/> - <source><i>No application is currently playing audio.</i></source> - <translation><i>Cap aplicació està reproduint àudio actualment</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="66"/> - <location filename="../mainwindow.ui" line="131"/> - <location filename="../mainwindow.ui" line="196"/> - <location filename="../mainwindow.ui" line="261"/> - <source>Show:</source> - <translation>Mostra:</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="74"/> - <location filename="../mainwindow.ui" line="139"/> - <source>All Streams</source> - <translation>Totes les transmissions</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="79"/> - <location filename="../mainwindow.ui" line="144"/> - <source>Applications</source> - <translation>Aplicacions</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="84"/> - <location filename="../mainwindow.ui" line="149"/> - <source>Virtual Streams</source> - <translation>Transmissions virtuals</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="93"/> - <source>&Recording</source> - <translation>En&registrament</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="120"/> - <source><i>No application is currently recording audio.</i></source> - <translation><i>Cap aplicació està enregistrant àudio actualment.</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="158"/> - <source>&Output Devices</source> - <translation>Dispositius de s&ortida</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="185"/> - <source><i>No output devices available</i></source> - <translation><i>No hi ha cap dispositiu de sortida disponible</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="204"/> - <source>All Output Devices</source> - <translation>Tots els dispositius de sortida</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="209"/> - <source>Hardware Output Devices</source> - <translation>Dispositius de sortida de maquinari</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="214"/> - <source>Virtual Output Devices</source> - <translation>Dispositius de sortida virtuals</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="223"/> - <source>&Input Devices</source> - <translation>D&ispositius d'entrada</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="250"/> - <source><i>No input devices available</i></source> - <translation><i>No hi ha cap dispositiu d'entrada disponible</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="269"/> - <source>All Input Devices</source> - <translation>Tots els dispositius d'entrada</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="274"/> - <source>All Except Monitors</source> - <translation>Tots excepte els monitors</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="279"/> - <source>Hardware Input Devices</source> - <translation>Dispositius d'entrada de maquinari</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="284"/> - <source>Virtual Input Devices</source> - <translation>Dispositius d'entrada virtuals</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="289"/> - <source>Monitors</source> - <translation>Monitors</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="298"/> - <source>&Configuration</source> - <translation>&Configuració</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="325"/> - <source><i>No cards available for configuration</i></source> - <translation><i>No hi ha cap targeta disponible per a la configuració</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="336"/> - <source>Show volume meters</source> - <translation>Mostra les mètriques del volum</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="347"/> - <source>...</source> - <translation>...</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="159"/> - <source> (plugged in)</source> - <translation> (endollat)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="163"/> - <location filename="../mainwindow.cc" line="257"/> - <source> (unavailable)</source> - <translation> (no disponible)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="165"/> - <location filename="../mainwindow.cc" line="254"/> - <source> (unplugged)</source> - <translation> (desendollat)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="388"/> - <source>Failed to read data from stream</source> - <translation>No s'han pogut llegir les dades del flux</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="432"/> - <source>Peak detect</source> - <translation>Detecta els pics</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="433"/> - <source>Failed to create monitoring stream</source> - <translation>No s'ha pogut crear el flux de monitoratge</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="448"/> - <source>Failed to connect monitoring stream</source> - <translation>No s'ha pogut connectar al flux de monitoratge</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="587"/> - <source>Ignoring sink-input due to it being designated as an event and thus handled by the Event widget</source> - <translation>S'ignora l'entrada sink a causa que és designada com a un esdeveniment i per tant tractada pel giny d'esdeveniments</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="759"/> - <source>System Sounds</source> - <translation>Sons del sistema</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="1089"/> - <source>Establishing connection to PulseAudio. Please wait...</source> - <translation>S'està establint la connexió a PulseAudio. Espereu...</translation> - </message> -</context> -<context> - <name>QObject</name> - <message> - <location filename="../pavucontrol.cc" line="66"/> - <source>Error</source> - <translation>Error</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="87"/> - <source>Card callback failure</source> - <translation>Ha fallat la crida de retorn a la targeta</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="110"/> - <source>Sink callback failure</source> - <translation>Ha fallat la crida de retorn del conducte</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="133"/> - <source>Source callback failure</source> - <translation>Ha fallat la crida de retorn de l'origen</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="152"/> - <source>Sink input callback failure</source> - <translation>Ha fallat la crida de retorn del conducte d'entrada</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="171"/> - <source>Source output callback failure</source> - <translation>Ha fallat la crida de retorn de l'origen de la sortida</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="211"/> - <source>Client callback failure</source> - <translation>Ha fallat la crida de retorn del client</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="227"/> - <source>Server info callback failure</source> - <translation>Ha fallat la crida de retorn de la informació del servidor</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="245"/> - <location filename="../pavucontrol.cc" line="542"/> - <source>Failed to initialize stream_restore extension: %s</source> - <translation>No s'ha pogut inicialitzar l'extensió stream_restore: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="263"/> - <source>pa_ext_stream_restore_read() failed</source> - <translation>Ha fallat pa_ext_stream_restore_read()</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="281"/> - <location filename="../pavucontrol.cc" line="556"/> - <source>Failed to initialize device restore extension: %s</source> - <translation>No s'ha pogut inicialitzar l'extensió de restauració de dispositius: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="302"/> - <source>pa_ext_device_restore_read_sink_formats() failed</source> - <translation>Ha fallat pa_ext_device_restore_read_sink_formats()</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="320"/> - <location filename="../pavucontrol.cc" line="569"/> - <source>Failed to initialize device manager extension: %s</source> - <translation>No s'ha pogut inicialitzar l'extensió del gestor de dispositius: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="339"/> - <source>pa_ext_device_manager_read() failed</source> - <translation>Ha fallat pa_ext_device_manager_read()</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="356"/> - <source>pa_context_get_sink_info_by_index() failed</source> - <translation>Ha fallat pa_context_get_sink_info_by_index()</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="369"/> - <source>pa_context_get_source_info_by_index() failed</source> - <translation>Ha fallat pa_context_get_source_info_by_index()</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="382"/> - <location filename="../pavucontrol.cc" line="395"/> - <source>pa_context_get_sink_input_info() failed</source> - <translation>Ha fallat pa_context_get_sink_input_info()</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="408"/> - <source>pa_context_get_client_info() failed</source> - <translation>Ha fallat pa_context_get_client_info()</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="418"/> - <location filename="../pavucontrol.cc" line="483"/> - <source>pa_context_get_server_info() failed</source> - <translation>Ha fallat pa_context_get_server_info()</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="431"/> - <source>pa_context_get_card_info_by_index() failed</source> - <translation>Ha fallat pa_context_get_card_info_by_index()</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="474"/> - <source>pa_context_subscribe() failed</source> - <translation>Ha fallat pa_context_subscribe()</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="490"/> - <source>pa_context_client_info_list() failed</source> - <translation>Ha fallat pa_context_client_info_list()</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="497"/> - <source>pa_context_get_card_info_list() failed</source> - <translation>Ha fallat pa_context_get_card_info_list()</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="504"/> - <source>pa_context_get_sink_info_list() failed</source> - <translation>Ha fallat pa_context_get_sink_info_list()</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="511"/> - <source>pa_context_get_source_info_list() failed</source> - <translation>Ha fallat pa_context_get_source_info_list()</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="518"/> - <source>pa_context_get_sink_input_info_list() failed</source> - <translation>Ha fallat pa_context_get_sink_input_info_list()</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="525"/> - <source>pa_context_get_source_output_info_list() failed</source> - <translation>Ha fallat pa_context_get_source_output_info_list()</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="584"/> - <location filename="../pavucontrol.cc" line="635"/> - <source>Connection failed, attempting reconnect</source> - <translation>La conneció ha fallat, s'intenta la reconnexió</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="607"/> - <location filename="../pavucontrol.cc" line="664"/> - <source>PulseAudio Volume Control</source> - <translation>Control del volum del PulseAudio</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="622"/> - <source>Connection to PulseAudio failed. Automatic retry in 5s - -In this case this is likely because PULSE_SERVER in the Environment/X11 Root Window Properties -or default-server in client.conf is misconfigured. -This situation can also arrise when PulseAudio crashed and left stale details in the X11 Root Window. -If this is the case, then PulseAudio should autospawn again, or if this is not configured you should -run start-pulseaudio-x11 manually.</source> - <translation>Ha fallat la connexió a PulseAudio. Reintent automàtic en 5 s - -En aquest cas, això és probablement a causa de PULSE_SERVER a l'entorn o a les propietats de la finestra arrel de X11, -o bé el servidor predeterminat està configurat de forma incorrecta al client.conf. -Aquesta situació també pot donar-se quan PulseAudio s'estrella i perd els detalls de l'estat a la finestra arrel de X11. -Si aquest és el cas, llavors PulseAudio s'hauria d'autogenerar un altre cop, o bé si això no estigués configurat hauríeu -d'executar manualment-pulseaudio-x11.</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="672"/> - <source>Select a specific tab on load.</source> - <translation>Selecciona una pestanya específica amb la càrrega.</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="675"/> - <source>Retry forever if pa quits (every 5 seconds).</source> - <translation>Torna a intentar-ho per sempre si pa surt (cada 5 segons).</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="678"/> - <source>Maximize the window.</source> - <translation>Maximitza la finestra.</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="703"/> - <source>Fatal Error: Unable to connect to PulseAudio</source> - <translation>Error fatal: no s'ha pogut connectar a PulseAudio</translation> - </message> -</context> -<context> - <name>RoleWidget</name> - <message> - <location filename="../rolewidget.cc" line="59"/> - <source>pa_ext_stream_restore_write() failed</source> - <translation>Ha fallat pa_ext_stream_restore_write()</translation> - </message> -</context> -<context> - <name>SinkInputWidget</name> - <message> - <location filename="../sinkinputwidget.cc" line="36"/> - <source>on</source> - <translation>a</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="39"/> - <source>Terminate Playback</source> - <translation>Acaba la reproducció</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="53"/> - <source>Unknown output</source> - <translation>Sortida desconeguda</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="64"/> - <source>pa_context_set_sink_input_volume() failed</source> - <translation>Ha fallat pa_context_set_sink_input_volume()</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="79"/> - <source>pa_context_set_sink_input_mute() failed</source> - <translation>Ha fallat pa_context_set_sink_input_mute()</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="89"/> - <source>pa_context_kill_sink_input() failed</source> - <translation>Ha fallat pa_context_kill_sink_input()</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="114"/> - <source>pa_context_move_sink_input_by_index() failed</source> - <translation>Ha fallat pa_context_move_sink_input_by_index()</translation> - </message> -</context> -<context> - <name>SinkWidget</name> - <message> - <location filename="../sinkwidget.cc" line="81"/> - <source>pa_context_set_sink_volume_by_index() failed</source> - <translation>Ha fallat pa_context_set_sink_volume_by_index()</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="96"/> - <source>pa_context_set_sink_mute_by_index() failed</source> - <translation>Ha fallat pa_context_set_sink_mute_by_index()</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="110"/> - <source>pa_context_set_default_sink() failed</source> - <translation>Ha fallat pa_context_set_default_sink()</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="126"/> - <source>pa_context_set_sink_port_by_index() failed</source> - <translation>Ha fallat pa_context_set_sink_port_by_index()</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="166"/> - <source>pa_ext_device_restore_save_sink_formats() failed</source> - <translation>Ha fallat pa_ext_device_restore_save_sink_formats()</translation> - </message> -</context> -<context> - <name>SourceOutputWidget</name> - <message> - <location filename="../sourceoutputwidget.cc" line="35"/> - <source>from</source> - <translation>des de</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="39"/> - <source>Terminate Recording</source> - <translation>Acaba l'enregistrament</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="60"/> - <source>Unknown input</source> - <translation>Entrada desconeguda</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="72"/> - <source>pa_context_set_source_output_volume() failed</source> - <translation>Ha fallat pa_context_set_source_output_volume()</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="87"/> - <source>pa_context_set_source_output_mute() failed</source> - <translation>Ha fallat pa_context_set_source_output_mute()</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="98"/> - <source>pa_context_kill_source_output() failed</source> - <translation>Ha fallat pa_context_kill_source_output()</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="125"/> - <source>pa_context_move_source_output_by_index() failed</source> - <translation>Ha fallat pa_context_move_source_output_by_index()</translation> - </message> -</context> -<context> - <name>SourceWidget</name> - <message> - <location filename="../sourcewidget.cc" line="35"/> - <source>pa_context_set_source_volume_by_index() failed</source> - <translation>Ha fallat pa_context_set_source_volume_by_index()</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="50"/> - <source>pa_context_set_source_mute_by_index() failed</source> - <translation>Ha fallat pa_context_set_source_mute_by_index()</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="64"/> - <source>pa_context_set_default_source() failed</source> - <translation>Ha fallat pa_context_set_default_source()</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="80"/> - <source>pa_context_set_source_port_by_index() failed</source> - <translation>Ha fallat pa_context_set_source_port_by_index()</translation> - </message> -</context> -<context> - <name>StreamWidget</name> - <message> - <location filename="../streamwidget.ui" line="14"/> - <source>Form</source> - <translation>Formulari</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="32"/> - <source>Device Title</source> - <translation>Títol del dispositiu</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="52"/> - <source>direction</source> - <translation>direcció</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="59"/> - <source>device</source> - <translation>dispositiu</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="66"/> - <source>Mute audio</source> - <translation>Silencia l'àudio</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="79"/> - <source>Lock channels together</source> - <translation>Bloqueja els canals junts</translation> - </message> - <message> - <location filename="../streamwidget.cc" line="34"/> - <source>Terminate</source> - <translation>Finalitza la reproducció</translation> - </message> -</context> -</TS> diff --git a/src/translations/pavucontrol-qt_cs.desktop.yaml b/src/translations/pavucontrol-qt_cs.desktop.yaml deleted file mode 100644 index 80a8c47..0000000 --- a/src/translations/pavucontrol-qt_cs.desktop.yaml +++ /dev/null @@ -1,3 +0,0 @@ -Desktop Entry/Name: "PulseAudio ovládání hlasitosti" -Desktop Entry/GenericName: "Ovládání hlasitosti" -Desktop Entry/Comment: "Upravit hlasitost" diff --git a/src/translations/pavucontrol-qt_cs.ts b/src/translations/pavucontrol-qt_cs.ts deleted file mode 100644 index f945b09..0000000 --- a/src/translations/pavucontrol-qt_cs.ts +++ /dev/null @@ -1,739 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE TS> -<TS version="2.1" language="cs"> -<context> - <name>CardWidget</name> - <message> - <location filename="../cardwidget.ui" line="14"/> - <source>Form</source> - <translation>Formulář</translation> - </message> - <message> - <location filename="../cardwidget.ui" line="29"/> - <source>Card Name</source> - <translation>Název karty</translation> - </message> - <message> - <location filename="../cardwidget.ui" line="47"/> - <source>Profile:</source> - <translation>Profil:</translation> - </message> - <message> - <location filename="../cardwidget.cc" line="67"/> - <source>pa_context_set_card_profile_by_index() failed</source> - <translation>volání funkce pa_context_set_card_profile_by_index() neproběhlo úspěšně</translation> - </message> -</context> -<context> - <name>Channel</name> - <message> - <location filename="../channel.cc" line="89"/> - <source>%1% (%2dB)</source> - <comment>volume slider label [X% (YdB)]</comment> - <translation>%1% (%2dB)</translation> - </message> - <message> - <location filename="../channel.cc" line="93"/> - <source>%1%</source> - <comment>volume slider label [X%]</comment> - <translation>%1%</translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Silence</small></source> - <translation><small>Ztišit</small></translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Min</small></source> - <translation><small>Min.</small></translation> - </message> - <message> - <location filename="../channel.cc" line="162"/> - <source><small>100% (0dB)</small></source> - <translation><small>100% (0 dB)</small></translation> - </message> - <message> - <location filename="../channel.cc" line="165"/> - <source><small><i>Base</i></small></source> - <translation><small><i>Základ</i></small></translation> - </message> -</context> -<context> - <name>ChannelWidget</name> - <message> - <location filename="../channelwidget.ui" line="14"/> - <source>Form</source> - <translation>Formulář</translation> - </message> - <message> - <location filename="../channelwidget.ui" line="20"/> - <source><b>left-front</b></source> - <translation><b>levý přední</b></translation> - </message> - <message> - <location filename="../channelwidget.ui" line="34"/> - <source><small>50%</small></source> - <translation><small>50%</small></translation> - </message> -</context> -<context> - <name>DeviceWidget</name> - <message> - <location filename="../devicewidget.ui" line="14"/> - <source>Form</source> - <translation>Formulář</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="36"/> - <source>Device Title</source> - <translation>Název zařízení</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="56"/> - <source>Mute audio</source> - <translation>Ztlumit zvuk</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="69"/> - <source>Lock channels together</source> - <translation>Ovládat kanály společně</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="85"/> - <source>Set as fallback</source> - <translation>Nastavit jako náhradní</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="103"/> - <source><b>Port:</b></source> - <translation><b>Port:</b></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="126"/> - <source>Show advanced options</source> - <translation>Zobrazit pokročilé volby</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="172"/> - <source>PCM</source> - <translation>PCM</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="182"/> - <source>AC3</source> - <translation>AC3</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="189"/> - <source>EAC3</source> - <translation>EAC3</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="196"/> - <source>DTS</source> - <translation>DTS</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="203"/> - <source>MPEG</source> - <translation>MPEG</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="210"/> - <source>AAC</source> - <translation>AAC</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="238"/> - <source><b>Latency offset:</b></source> - <translation><b>Posun prodlevy:</b></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="245"/> - <source> ms</source> - <translation> ms</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="41"/> - <source>Rename device...</source> - <translation>Přejmenovat zařízení…</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="155"/> - <source>pa_context_set_port_latency_offset() failed</source> - <translation>volání funkce pa_context_set_port_latency_offset() neproběhlo úspěšně</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="226"/> - <source>Sorry, but device renaming is not supported.</source> - <translation>Omlouváme se, ale přejmenování zařízení není podporováno.</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="227"/> - <source>You need to load module-device-manager in the PulseAudio server in order to rename devices</source> - <translation>Pro přejmenovávání zařízení je potřeba do zvukového serveru PulseAudio nahrát modul module-device-manager (správa zařízení)</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="233"/> - <source>Rename device %1 to:</source> - <translation>Přejmenovat zařízení %1 na:</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="240"/> - <source>pa_ext_device_manager_set_device_description() failed</source> - <translation>volání funkce pa_ext_device_manager_set_device_description() neproběhlo úspěšně</translation> - </message> -</context> -<context> - <name>MainWindow</name> - <message> - <location filename="../mainwindow.ui" line="14"/> - <source>Volume Control</source> - <translation>Ovládání hlasitosti</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="28"/> - <source>&Playback</source> - <translation>&Přehrávání</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="55"/> - <source><i>No application is currently playing audio.</i></source> - <translation><i>Žádná aplikace momentálně nepřehrává zvuk.</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="66"/> - <location filename="../mainwindow.ui" line="131"/> - <location filename="../mainwindow.ui" line="196"/> - <location filename="../mainwindow.ui" line="261"/> - <source>Show:</source> - <translation>Ukázat:</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="74"/> - <location filename="../mainwindow.ui" line="139"/> - <source>All Streams</source> - <translation>Všechny proudy</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="79"/> - <location filename="../mainwindow.ui" line="144"/> - <source>Applications</source> - <translation>Aplikace</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="84"/> - <location filename="../mainwindow.ui" line="149"/> - <source>Virtual Streams</source> - <translation>Virtuální proudy</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="93"/> - <source>&Recording</source> - <translation>Nah&rávání</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="120"/> - <source><i>No application is currently recording audio.</i></source> - <translation><i>Žádná aplikace momentálně nenahrává zvuk.</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="158"/> - <source>&Output Devices</source> - <translation>&Výstupní zařízení</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="185"/> - <source><i>No output devices available</i></source> - <translation><i>Nejsou k dispozici žádná výstupní zařízení.</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="204"/> - <source>All Output Devices</source> - <translation>Všechna výstupní zařízení</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="209"/> - <source>Hardware Output Devices</source> - <translation>Fyzická výstupní zařízení</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="214"/> - <source>Virtual Output Devices</source> - <translation>Virtuální výstupní zařízení</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="223"/> - <source>&Input Devices</source> - <translation>&Vstupní zařízení</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="250"/> - <source><i>No input devices available</i></source> - <translation><i>Nejsou k dispozici žádná vstupní zařízení.</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="269"/> - <source>All Input Devices</source> - <translation>Všechna vstupní zařízení</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="274"/> - <source>All Except Monitors</source> - <translation>Vše vyjma monitorů</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="279"/> - <source>Hardware Input Devices</source> - <translation>Fyzická vstupní zařízení</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="284"/> - <source>Virtual Input Devices</source> - <translation>Virtuální vstupní zařízení</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="289"/> - <source>Monitors</source> - <translation>Monitory</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="298"/> - <source>&Configuration</source> - <translation>&Nastavení</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="325"/> - <source><i>No cards available for configuration</i></source> - <translation><i>Nejsou k dispozici žádná zvuková zařízení, která by bylo možné nastavovat</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="336"/> - <source>Show volume meters</source> - <translation>Zobrazovat ukazatele hlasitosti</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="347"/> - <source>...</source> - <translation>…</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="159"/> - <source> (plugged in)</source> - <translation> (zapojeno)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="163"/> - <location filename="../mainwindow.cc" line="257"/> - <source> (unavailable)</source> - <translation> (nedostupné)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="165"/> - <location filename="../mainwindow.cc" line="254"/> - <source> (unplugged)</source> - <translation> (vypojeno)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="388"/> - <source>Failed to read data from stream</source> - <translation>Nepodařilo se přečíst data z proudu</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="432"/> - <source>Peak detect</source> - <translation>Rozpoznávání špiček</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="433"/> - <source>Failed to create monitoring stream</source> - <translation>Nepodařilo se vytvořit sledovací proud</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="448"/> - <source>Failed to connect monitoring stream</source> - <translation>Nepodařilo se připojit sledovací proud</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="587"/> - <source>Ignoring sink-input due to it being designated as an event and thus handled by the Event widget</source> - <translation>Ignoruje se vstup do odchodu protože je označen jako událost a proto obsloužen ovládacím prvkem pro události</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="759"/> - <source>System Sounds</source> - <translation>Systémové zvuky</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="1089"/> - <source>Establishing connection to PulseAudio. Please wait...</source> - <translation>Navazuje se spojení s PulseAudio. Čekejte…</translation> - </message> -</context> -<context> - <name>QObject</name> - <message> - <location filename="../pavucontrol.cc" line="66"/> - <source>Error</source> - <translation>Chyba</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="87"/> - <source>Card callback failure</source> - <translation>Zpětné volání karty se nezdařilo</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="110"/> - <source>Sink callback failure</source> - <translation>Cílové zpětné volání se nezdařilo</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="133"/> - <source>Source callback failure</source> - <translation>Zdrojové zpětné volání se nezdařilo</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="152"/> - <source>Sink input callback failure</source> - <translation>Cílové vstupní zpětné volání se nezdařilo</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="171"/> - <source>Source output callback failure</source> - <translation>Zdrojové výstupní zpětné volání se nezdařilo</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="211"/> - <source>Client callback failure</source> - <translation>Zpětné volání klienta se nezdařilo</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="227"/> - <source>Server info callback failure</source> - <translation>Zpětné volání serverových informací se nezdařilo</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="245"/> - <location filename="../pavucontrol.cc" line="542"/> - <source>Failed to initialize stream_restore extension: %s</source> - <translation>Nepodařilo se inicializovat rozšíření stream_restore (obnovení proudu): %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="263"/> - <source>pa_ext_stream_restore_read() failed</source> - <translation>volání funkce pa_ext_stream_restore_read() se nezdařilo</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="281"/> - <location filename="../pavucontrol.cc" line="556"/> - <source>Failed to initialize device restore extension: %s</source> - <translation>Nepodařilo se inicializovat rozšíření pro obnovení zařízení: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="302"/> - <source>pa_ext_device_restore_read_sink_formats() failed</source> - <translation>volání funkce pa_ext_device_restore_read_sink_formats() se nezdařilo</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="320"/> - <location filename="../pavucontrol.cc" line="569"/> - <source>Failed to initialize device manager extension: %s</source> - <translation>Nepodařilo se spustit rozšíření pro správu zařízení: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="339"/> - <source>pa_ext_device_manager_read() failed</source> - <translation>volání funkce pa_ext_device_manager_read() se nezdařilo</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="356"/> - <source>pa_context_get_sink_info_by_index() failed</source> - <translation>volání funkce pa_context_get_sink_info_by_index() se nezdařilo</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="369"/> - <source>pa_context_get_source_info_by_index() failed</source> - <translation>volání funkce pa_context_get_source_info_by_index() se nezdařilo</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="382"/> - <location filename="../pavucontrol.cc" line="395"/> - <source>pa_context_get_sink_input_info() failed</source> - <translation>volání funkce pa_context_get_sink_input_info() se nezdařilo</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="408"/> - <source>pa_context_get_client_info() failed</source> - <translation>volání funkce pa_context_get_client_info() se nezdařilo</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="418"/> - <location filename="../pavucontrol.cc" line="483"/> - <source>pa_context_get_server_info() failed</source> - <translation>volání funkce pa_context_get_server_info() se nezdařilo</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="431"/> - <source>pa_context_get_card_info_by_index() failed</source> - <translation>volání funkce pa_context_get_card_info_by_index() se nezdařilo</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="474"/> - <source>pa_context_subscribe() failed</source> - <translation>volání funkce pa_context_subscribe() se nezdařilo</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="490"/> - <source>pa_context_client_info_list() failed</source> - <translation>volání funkce pa_context_client_info_list() se nezdařilo</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="497"/> - <source>pa_context_get_card_info_list() failed</source> - <translation>volání funkce pa_context_get_card_info_list() se nezdařilo</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="504"/> - <source>pa_context_get_sink_info_list() failed</source> - <translation>volání funkce pa_context_get_sink_info_list() se nezdařilo</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="511"/> - <source>pa_context_get_source_info_list() failed</source> - <translation>volání funkce pa_context_get_source_info_list() se nezdařilo</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="518"/> - <source>pa_context_get_sink_input_info_list() failed</source> - <translation>volání funkce pa_context_get_sink_input_info_list() se nezdařilo</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="525"/> - <source>pa_context_get_source_output_info_list() failed</source> - <translation>volání funkce pa_context_get_source_output_info_list() se nezdařilo</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="584"/> - <location filename="../pavucontrol.cc" line="635"/> - <source>Connection failed, attempting reconnect</source> - <translation>Spojení se nezdařilo, probíhá pokus o opětovné připojení</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="607"/> - <location filename="../pavucontrol.cc" line="664"/> - <source>PulseAudio Volume Control</source> - <translation>Ovládání hlasitosti PulseAudio</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="622"/> - <source>Connection to PulseAudio failed. Automatic retry in 5s - -In this case this is likely because PULSE_SERVER in the Environment/X11 Root Window Properties -or default-server in client.conf is misconfigured. -This situation can also arrise when PulseAudio crashed and left stale details in the X11 Root Window. -If this is the case, then PulseAudio should autospawn again, or if this is not configured you should -run start-pulseaudio-x11 manually.</source> - <translation>Spojení s PulseAudio vypadlo. Pokus o automatické opětovné navázání za 5 s - -V tomto případě je to nejspíš proto, že je chybně nastavená proměnná PULSE_SERVER v -Prostředí/Vlastnosti X11 kořenového okna nebo je v client.conf chybně nastaven parametr default-server. -Tato situace také může nastat když PulseAudio zhavaruje a zanechá staré údaje v kořenovém okně X11. -Pokud tomu je tak, PulseAudio by se mělo automaticky znovu spustit, nebo pokud tak není nastavené, -je třeba ručně spustit start-pulseaudio-x11.</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="672"/> - <source>Select a specific tab on load.</source> - <translation>Při načítání vybrat konkrétní panel.</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="675"/> - <source>Retry forever if pa quits (every 5 seconds).</source> - <translation>Pokud PulseAudio skončí, opakovat neustále (každých 5 sekund).</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="678"/> - <source>Maximize the window.</source> - <translation>Maximalizovat okno.</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="703"/> - <source>Fatal Error: Unable to connect to PulseAudio</source> - <translation>Vážná chyba: nedaří se spojit s PulseAudio</translation> - </message> -</context> -<context> - <name>RoleWidget</name> - <message> - <location filename="../rolewidget.cc" line="59"/> - <source>pa_ext_stream_restore_write() failed</source> - <translation>volání funkce pa_ext_stream_restore_write() se nezdařilo</translation> - </message> -</context> -<context> - <name>SinkInputWidget</name> - <message> - <location filename="../sinkinputwidget.cc" line="36"/> - <source>on</source> - <translation>na</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="39"/> - <source>Terminate Playback</source> - <translation>Ukončit přehrávání</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="53"/> - <source>Unknown output</source> - <translation>Neznámý výstup</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="64"/> - <source>pa_context_set_sink_input_volume() failed</source> - <translation>volání funkce pa_context_set_sink_input_volume() se nezdařilo</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="79"/> - <source>pa_context_set_sink_input_mute() failed</source> - <translation>volání funkce pa_context_set_sink_input_mute() se nezdařilo</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="89"/> - <source>pa_context_kill_sink_input() failed</source> - <translation>volání funkce pa_context_kill_sink_input() se nezdařilo</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="114"/> - <source>pa_context_move_sink_input_by_index() failed</source> - <translation>volání funkce pa_context_move_sink_input_by_index() se nezdařilo</translation> - </message> -</context> -<context> - <name>SinkWidget</name> - <message> - <location filename="../sinkwidget.cc" line="81"/> - <source>pa_context_set_sink_volume_by_index() failed</source> - <translation>volání funkce pa_context_set_sink_volume_by_index() se nezdařilo</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="96"/> - <source>pa_context_set_sink_mute_by_index() failed</source> - <translation>volání funkce pa_context_set_sink_mute_by_index() se nezdařilo</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="110"/> - <source>pa_context_set_default_sink() failed</source> - <translation>volání funkce pa_context_set_default_sink() se nezdařilo</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="126"/> - <source>pa_context_set_sink_port_by_index() failed</source> - <translation>volání funkce pa_context_set_sink_port_by_index() se nezdařilo</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="166"/> - <source>pa_ext_device_restore_save_sink_formats() failed</source> - <translation>volání funkce pa_ext_device_restore_save_sink_formats() se nezdařilo</translation> - </message> -</context> -<context> - <name>SourceOutputWidget</name> - <message> - <location filename="../sourceoutputwidget.cc" line="35"/> - <source>from</source> - <translation>z</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="39"/> - <source>Terminate Recording</source> - <translation>Ukončit nahrávání</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="60"/> - <source>Unknown input</source> - <translation>Neznámý vstup</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="72"/> - <source>pa_context_set_source_output_volume() failed</source> - <translation>volání funkce pa_context_set_source_output_volume() se nezdařilo</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="87"/> - <source>pa_context_set_source_output_mute() failed</source> - <translation>volání funkce pa_context_set_source_output_mute() se nezdařilo</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="98"/> - <source>pa_context_kill_source_output() failed</source> - <translation>volání funkce pa_context_kill_source_output() se nezdařilo</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="125"/> - <source>pa_context_move_source_output_by_index() failed</source> - <translation>volání funkce pa_context_move_source_output_by_index() se nezdařilo</translation> - </message> -</context> -<context> - <name>SourceWidget</name> - <message> - <location filename="../sourcewidget.cc" line="35"/> - <source>pa_context_set_source_volume_by_index() failed</source> - <translation>volání funkce pa_context_set_source_volume_by_index() se nezdařilo</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="50"/> - <source>pa_context_set_source_mute_by_index() failed</source> - <translation>volání funkce pa_context_set_source_mute_by_index() se nezdařilo</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="64"/> - <source>pa_context_set_default_source() failed</source> - <translation>volání funkce pa_context_set_default_source() se nezdařilo</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="80"/> - <source>pa_context_set_source_port_by_index() failed</source> - <translation>volání funkce pa_context_set_source_port_by_index() se nezdařilo</translation> - </message> -</context> -<context> - <name>StreamWidget</name> - <message> - <location filename="../streamwidget.ui" line="14"/> - <source>Form</source> - <translation>Formulář</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="32"/> - <source>Device Title</source> - <translation>Název zařízení</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="52"/> - <source>direction</source> - <translation>směr</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="59"/> - <source>device</source> - <translation>zařízení</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="66"/> - <source>Mute audio</source> - <translation>Ztlumit zvuk</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="79"/> - <source>Lock channels together</source> - <translation>Ovládat kanály společně</translation> - </message> - <message> - <location filename="../streamwidget.cc" line="34"/> - <source>Terminate</source> - <translation>Ukončit</translation> - </message> -</context> -</TS> diff --git a/src/translations/pavucontrol-qt_cy.ts b/src/translations/pavucontrol-qt_cy.ts deleted file mode 100644 index 0922be9..0000000 --- a/src/translations/pavucontrol-qt_cy.ts +++ /dev/null @@ -1,733 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE TS> -<TS version="2.1" language="cy"> -<context> - <name>CardWidget</name> - <message> - <location filename="../cardwidget.ui" line="14"/> - <source>Form</source> - <translation></translation> - </message> - <message> - <location filename="../cardwidget.ui" line="29"/> - <source>Card Name</source> - <translation></translation> - </message> - <message> - <location filename="../cardwidget.ui" line="47"/> - <source>Profile:</source> - <translation></translation> - </message> - <message> - <location filename="../cardwidget.cc" line="67"/> - <source>pa_context_set_card_profile_by_index() failed</source> - <translation></translation> - </message> -</context> -<context> - <name>Channel</name> - <message> - <location filename="../channel.cc" line="89"/> - <source>%1% (%2dB)</source> - <comment>volume slider label [X% (YdB)]</comment> - <translation></translation> - </message> - <message> - <location filename="../channel.cc" line="93"/> - <source>%1%</source> - <comment>volume slider label [X%]</comment> - <translation></translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Silence</small></source> - <translation></translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Min</small></source> - <translation></translation> - </message> - <message> - <location filename="../channel.cc" line="162"/> - <source><small>100% (0dB)</small></source> - <translation></translation> - </message> - <message> - <location filename="../channel.cc" line="165"/> - <source><small><i>Base</i></small></source> - <translation></translation> - </message> -</context> -<context> - <name>ChannelWidget</name> - <message> - <location filename="../channelwidget.ui" line="14"/> - <source>Form</source> - <translation></translation> - </message> - <message> - <location filename="../channelwidget.ui" line="20"/> - <source><b>left-front</b></source> - <translation></translation> - </message> - <message> - <location filename="../channelwidget.ui" line="34"/> - <source><small>50%</small></source> - <translation></translation> - </message> -</context> -<context> - <name>DeviceWidget</name> - <message> - <location filename="../devicewidget.ui" line="14"/> - <source>Form</source> - <translation></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="36"/> - <source>Device Title</source> - <translation></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="56"/> - <source>Mute audio</source> - <translation></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="69"/> - <source>Lock channels together</source> - <translation></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="85"/> - <source>Set as fallback</source> - <translation></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="103"/> - <source><b>Port:</b></source> - <translation></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="126"/> - <source>Show advanced options</source> - <translation></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="172"/> - <source>PCM</source> - <translation></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="182"/> - <source>AC3</source> - <translation></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="189"/> - <source>EAC3</source> - <translation></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="196"/> - <source>DTS</source> - <translation></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="203"/> - <source>MPEG</source> - <translation></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="210"/> - <source>AAC</source> - <translation></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="238"/> - <source><b>Latency offset:</b></source> - <translation></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="245"/> - <source> ms</source> - <translation></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="41"/> - <source>Rename device...</source> - <translation></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="155"/> - <source>pa_context_set_port_latency_offset() failed</source> - <translation></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="226"/> - <source>Sorry, but device renaming is not supported.</source> - <translation></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="227"/> - <source>You need to load module-device-manager in the PulseAudio server in order to rename devices</source> - <translation></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="233"/> - <source>Rename device %1 to:</source> - <translation></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="240"/> - <source>pa_ext_device_manager_set_device_description() failed</source> - <translation></translation> - </message> -</context> -<context> - <name>MainWindow</name> - <message> - <location filename="../mainwindow.ui" line="14"/> - <source>Volume Control</source> - <translation></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="55"/> - <source><i>No application is currently playing audio.</i></source> - <translation></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="66"/> - <location filename="../mainwindow.ui" line="131"/> - <location filename="../mainwindow.ui" line="196"/> - <location filename="../mainwindow.ui" line="261"/> - <source>Show:</source> - <translation></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="74"/> - <location filename="../mainwindow.ui" line="139"/> - <source>All Streams</source> - <translation></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="79"/> - <location filename="../mainwindow.ui" line="144"/> - <source>Applications</source> - <translation></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="84"/> - <location filename="../mainwindow.ui" line="149"/> - <source>Virtual Streams</source> - <translation></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="120"/> - <source><i>No application is currently recording audio.</i></source> - <translation></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="185"/> - <source><i>No output devices available</i></source> - <translation></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="204"/> - <source>All Output Devices</source> - <translation></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="209"/> - <source>Hardware Output Devices</source> - <translation></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="214"/> - <source>Virtual Output Devices</source> - <translation></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="28"/> - <source>&Playback</source> - <translation></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="93"/> - <source>&Recording</source> - <translation></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="158"/> - <source>&Output Devices</source> - <translation></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="223"/> - <source>&Input Devices</source> - <translation></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="250"/> - <source><i>No input devices available</i></source> - <translation></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="269"/> - <source>All Input Devices</source> - <translation></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="274"/> - <source>All Except Monitors</source> - <translation></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="279"/> - <source>Hardware Input Devices</source> - <translation></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="284"/> - <source>Virtual Input Devices</source> - <translation></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="289"/> - <source>Monitors</source> - <translation></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="298"/> - <source>&Configuration</source> - <translation></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="325"/> - <source><i>No cards available for configuration</i></source> - <translation></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="336"/> - <source>Show volume meters</source> - <translation></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="347"/> - <source>...</source> - <translation></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="159"/> - <source> (plugged in)</source> - <translation></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="163"/> - <location filename="../mainwindow.cc" line="257"/> - <source> (unavailable)</source> - <translation></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="165"/> - <location filename="../mainwindow.cc" line="254"/> - <source> (unplugged)</source> - <translation></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="388"/> - <source>Failed to read data from stream</source> - <translation></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="432"/> - <source>Peak detect</source> - <translation></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="433"/> - <source>Failed to create monitoring stream</source> - <translation></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="448"/> - <source>Failed to connect monitoring stream</source> - <translation></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="587"/> - <source>Ignoring sink-input due to it being designated as an event and thus handled by the Event widget</source> - <translation></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="759"/> - <source>System Sounds</source> - <translation></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="1089"/> - <source>Establishing connection to PulseAudio. Please wait...</source> - <translation></translation> - </message> -</context> -<context> - <name>QObject</name> - <message> - <location filename="../pavucontrol.cc" line="66"/> - <source>Error</source> - <translation></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="87"/> - <source>Card callback failure</source> - <translation></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="110"/> - <source>Sink callback failure</source> - <translation></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="133"/> - <source>Source callback failure</source> - <translation></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="152"/> - <source>Sink input callback failure</source> - <translation></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="171"/> - <source>Source output callback failure</source> - <translation></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="211"/> - <source>Client callback failure</source> - <translation></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="227"/> - <source>Server info callback failure</source> - <translation></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="245"/> - <location filename="../pavucontrol.cc" line="542"/> - <source>Failed to initialize stream_restore extension: %s</source> - <translation></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="263"/> - <source>pa_ext_stream_restore_read() failed</source> - <translation></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="281"/> - <location filename="../pavucontrol.cc" line="556"/> - <source>Failed to initialize device restore extension: %s</source> - <translation></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="302"/> - <source>pa_ext_device_restore_read_sink_formats() failed</source> - <translation></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="320"/> - <location filename="../pavucontrol.cc" line="569"/> - <source>Failed to initialize device manager extension: %s</source> - <translation></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="339"/> - <source>pa_ext_device_manager_read() failed</source> - <translation></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="356"/> - <source>pa_context_get_sink_info_by_index() failed</source> - <translation></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="369"/> - <source>pa_context_get_source_info_by_index() failed</source> - <translation></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="382"/> - <location filename="../pavucontrol.cc" line="395"/> - <source>pa_context_get_sink_input_info() failed</source> - <translation></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="408"/> - <source>pa_context_get_client_info() failed</source> - <translation></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="418"/> - <location filename="../pavucontrol.cc" line="483"/> - <source>pa_context_get_server_info() failed</source> - <translation></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="431"/> - <source>pa_context_get_card_info_by_index() failed</source> - <translation></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="474"/> - <source>pa_context_subscribe() failed</source> - <translation></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="490"/> - <source>pa_context_client_info_list() failed</source> - <translation></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="497"/> - <source>pa_context_get_card_info_list() failed</source> - <translation></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="504"/> - <source>pa_context_get_sink_info_list() failed</source> - <translation></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="511"/> - <source>pa_context_get_source_info_list() failed</source> - <translation></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="518"/> - <source>pa_context_get_sink_input_info_list() failed</source> - <translation></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="525"/> - <source>pa_context_get_source_output_info_list() failed</source> - <translation></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="584"/> - <location filename="../pavucontrol.cc" line="635"/> - <source>Connection failed, attempting reconnect</source> - <translation></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="607"/> - <location filename="../pavucontrol.cc" line="664"/> - <source>PulseAudio Volume Control</source> - <translation></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="622"/> - <source>Connection to PulseAudio failed. Automatic retry in 5s - -In this case this is likely because PULSE_SERVER in the Environment/X11 Root Window Properties -or default-server in client.conf is misconfigured. -This situation can also arrise when PulseAudio crashed and left stale details in the X11 Root Window. -If this is the case, then PulseAudio should autospawn again, or if this is not configured you should -run start-pulseaudio-x11 manually.</source> - <translation></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="672"/> - <source>Select a specific tab on load.</source> - <translation></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="675"/> - <source>Retry forever if pa quits (every 5 seconds).</source> - <translation></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="678"/> - <source>Maximize the window.</source> - <translation></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="703"/> - <source>Fatal Error: Unable to connect to PulseAudio</source> - <translation></translation> - </message> -</context> -<context> - <name>RoleWidget</name> - <message> - <location filename="../rolewidget.cc" line="59"/> - <source>pa_ext_stream_restore_write() failed</source> - <translation></translation> - </message> -</context> -<context> - <name>SinkInputWidget</name> - <message> - <location filename="../sinkinputwidget.cc" line="36"/> - <source>on</source> - <translation></translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="39"/> - <source>Terminate Playback</source> - <translation></translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="53"/> - <source>Unknown output</source> - <translation></translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="64"/> - <source>pa_context_set_sink_input_volume() failed</source> - <translation></translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="79"/> - <source>pa_context_set_sink_input_mute() failed</source> - <translation></translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="89"/> - <source>pa_context_kill_sink_input() failed</source> - <translation></translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="114"/> - <source>pa_context_move_sink_input_by_index() failed</source> - <translation></translation> - </message> -</context> -<context> - <name>SinkWidget</name> - <message> - <location filename="../sinkwidget.cc" line="81"/> - <source>pa_context_set_sink_volume_by_index() failed</source> - <translation></translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="96"/> - <source>pa_context_set_sink_mute_by_index() failed</source> - <translation></translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="110"/> - <source>pa_context_set_default_sink() failed</source> - <translation></translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="126"/> - <source>pa_context_set_sink_port_by_index() failed</source> - <translation></translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="166"/> - <source>pa_ext_device_restore_save_sink_formats() failed</source> - <translation></translation> - </message> -</context> -<context> - <name>SourceOutputWidget</name> - <message> - <location filename="../sourceoutputwidget.cc" line="35"/> - <source>from</source> - <translation></translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="39"/> - <source>Terminate Recording</source> - <translation></translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="60"/> - <source>Unknown input</source> - <translation></translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="72"/> - <source>pa_context_set_source_output_volume() failed</source> - <translation></translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="87"/> - <source>pa_context_set_source_output_mute() failed</source> - <translation></translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="98"/> - <source>pa_context_kill_source_output() failed</source> - <translation></translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="125"/> - <source>pa_context_move_source_output_by_index() failed</source> - <translation></translation> - </message> -</context> -<context> - <name>SourceWidget</name> - <message> - <location filename="../sourcewidget.cc" line="35"/> - <source>pa_context_set_source_volume_by_index() failed</source> - <translation></translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="50"/> - <source>pa_context_set_source_mute_by_index() failed</source> - <translation></translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="64"/> - <source>pa_context_set_default_source() failed</source> - <translation></translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="80"/> - <source>pa_context_set_source_port_by_index() failed</source> - <translation></translation> - </message> -</context> -<context> - <name>StreamWidget</name> - <message> - <location filename="../streamwidget.ui" line="14"/> - <source>Form</source> - <translation></translation> - </message> - <message> - <location filename="../streamwidget.ui" line="32"/> - <source>Device Title</source> - <translation></translation> - </message> - <message> - <location filename="../streamwidget.ui" line="52"/> - <source>direction</source> - <translation></translation> - </message> - <message> - <location filename="../streamwidget.ui" line="59"/> - <source>device</source> - <translation></translation> - </message> - <message> - <location filename="../streamwidget.ui" line="66"/> - <source>Mute audio</source> - <translation></translation> - </message> - <message> - <location filename="../streamwidget.ui" line="79"/> - <source>Lock channels together</source> - <translation></translation> - </message> - <message> - <location filename="../streamwidget.cc" line="34"/> - <source>Terminate</source> - <translation></translation> - </message> -</context> -</TS> diff --git a/src/translations/pavucontrol-qt_da.desktop.yaml b/src/translations/pavucontrol-qt_da.desktop.yaml deleted file mode 100644 index 1093d30..0000000 --- a/src/translations/pavucontrol-qt_da.desktop.yaml +++ /dev/null @@ -1,3 +0,0 @@ -Desktop Entry/Name: "PulseAudio-lydstyrkekontrol" -Desktop Entry/GenericName: "Lydstyrkekontrol" -Desktop Entry/Comment: "Justér lydstyrkeniveauet" diff --git a/src/translations/pavucontrol-qt_da.ts b/src/translations/pavucontrol-qt_da.ts deleted file mode 100644 index 986204f..0000000 --- a/src/translations/pavucontrol-qt_da.ts +++ /dev/null @@ -1,739 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE TS> -<TS version="2.1" language="da"> -<context> - <name>CardWidget</name> - <message> - <location filename="../cardwidget.ui" line="14"/> - <source>Form</source> - <translation>Formular</translation> - </message> - <message> - <location filename="../cardwidget.ui" line="29"/> - <source>Card Name</source> - <translation>Kortnavn</translation> - </message> - <message> - <location filename="../cardwidget.ui" line="47"/> - <source>Profile:</source> - <translation>Profil:</translation> - </message> - <message> - <location filename="../cardwidget.cc" line="67"/> - <source>pa_context_set_card_profile_by_index() failed</source> - <translation>pa_context_set_card_profile_by_index() mislykkedes</translation> - </message> -</context> -<context> - <name>Channel</name> - <message> - <location filename="../channel.cc" line="89"/> - <source>%1% (%2dB)</source> - <comment>volume slider label [X% (YdB)]</comment> - <translation>%1% (%2dB)</translation> - </message> - <message> - <location filename="../channel.cc" line="93"/> - <source>%1%</source> - <comment>volume slider label [X%]</comment> - <translation>%1%</translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Silence</small></source> - <translation><small>Lydløs</small></translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Min</small></source> - <translation><small>Min.</small></translation> - </message> - <message> - <location filename="../channel.cc" line="162"/> - <source><small>100% (0dB)</small></source> - <translation><small>100% (0dB)</small></translation> - </message> - <message> - <location filename="../channel.cc" line="165"/> - <source><small><i>Base</i></small></source> - <translation><small><i>Basis</i></small></translation> - </message> -</context> -<context> - <name>ChannelWidget</name> - <message> - <location filename="../channelwidget.ui" line="14"/> - <source>Form</source> - <translation>Formular</translation> - </message> - <message> - <location filename="../channelwidget.ui" line="20"/> - <source><b>left-front</b></source> - <translation><b>venstre-front</b></translation> - </message> - <message> - <location filename="../channelwidget.ui" line="34"/> - <source><small>50%</small></source> - <translation><small>50%</small></translation> - </message> -</context> -<context> - <name>DeviceWidget</name> - <message> - <location filename="../devicewidget.ui" line="14"/> - <source>Form</source> - <translation>Formular</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="36"/> - <source>Device Title</source> - <translation>Enhedens titel</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="56"/> - <source>Mute audio</source> - <translation>Mute lyd</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="69"/> - <source>Lock channels together</source> - <translation>Lås kanaler sammen</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="85"/> - <source>Set as fallback</source> - <translation>Sæt som reserve</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="103"/> - <source><b>Port:</b></source> - <translation><b>Port:</b></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="126"/> - <source>Show advanced options</source> - <translation>Vis avanceret valgmuligheder</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="172"/> - <source>PCM</source> - <translation>PCM</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="182"/> - <source>AC3</source> - <translation>AC3</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="189"/> - <source>EAC3</source> - <translation>EAC3</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="196"/> - <source>DTS</source> - <translation>DTS</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="203"/> - <source>MPEG</source> - <translation>MPEG</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="210"/> - <source>AAC</source> - <translation>AAC</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="238"/> - <source><b>Latency offset:</b></source> - <translation><b>Forskydning af forsinkelse:</b></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="245"/> - <source> ms</source> - <translation> ms</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="41"/> - <source>Rename device...</source> - <translation>Omdøb enhed...</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="155"/> - <source>pa_context_set_port_latency_offset() failed</source> - <translation>pa_context_set_port_latency_offset() mislykkedes</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="226"/> - <source>Sorry, but device renaming is not supported.</source> - <translation>Beklager, men omdøbning af enhed understøttes ikke.</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="227"/> - <source>You need to load module-device-manager in the PulseAudio server in order to rename devices</source> - <translation>Du kan indlæse module-device-manager i PulseAudio-servere for at kunne omdøbe enheder</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="233"/> - <source>Rename device %1 to:</source> - <translation>Omdøb enhed %1 til:</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="240"/> - <source>pa_ext_device_manager_set_device_description() failed</source> - <translation>pa_ext_device_manager_set_device_description() mislykkedes</translation> - </message> -</context> -<context> - <name>MainWindow</name> - <message> - <location filename="../mainwindow.ui" line="14"/> - <source>Volume Control</source> - <translation>Lydstyrkekontrol</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="28"/> - <source>&Playback</source> - <translation>&Afspilning</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="55"/> - <source><i>No application is currently playing audio.</i></source> - <translation><i>Intet program spiller lyd i øjeblikket.</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="66"/> - <location filename="../mainwindow.ui" line="131"/> - <location filename="../mainwindow.ui" line="196"/> - <location filename="../mainwindow.ui" line="261"/> - <source>Show:</source> - <translation>Vis:</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="74"/> - <location filename="../mainwindow.ui" line="139"/> - <source>All Streams</source> - <translation>Alle strømme</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="79"/> - <location filename="../mainwindow.ui" line="144"/> - <source>Applications</source> - <translation>Programmer</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="84"/> - <location filename="../mainwindow.ui" line="149"/> - <source>Virtual Streams</source> - <translation>Virtuelle strømme</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="93"/> - <source>&Recording</source> - <translation>&Optagelse</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="120"/> - <source><i>No application is currently recording audio.</i></source> - <translation><i>Intet program optager lyd i øjeblikket.</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="158"/> - <source>&Output Devices</source> - <translation>&Output-enheder</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="185"/> - <source><i>No output devices available</i></source> - <translation><i>Ingen output-enheder tilgængelige</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="204"/> - <source>All Output Devices</source> - <translation>Alle output-enheder</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="209"/> - <source>Hardware Output Devices</source> - <translation>Hardware output-enheder</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="214"/> - <source>Virtual Output Devices</source> - <translation>Virtuelle output-enheder</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="223"/> - <source>&Input Devices</source> - <translation>&Inputenheder</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="250"/> - <source><i>No input devices available</i></source> - <translation><i>Ingen inputenheder tilgængelige</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="269"/> - <source>All Input Devices</source> - <translation>Alle inputenheder</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="274"/> - <source>All Except Monitors</source> - <translation>Alle, undtagen monitorer</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="279"/> - <source>Hardware Input Devices</source> - <translation>Hardware inputenheder</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="284"/> - <source>Virtual Input Devices</source> - <translation>Virtuelle inputenheder</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="289"/> - <source>Monitors</source> - <translation>Monitorer</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="298"/> - <source>&Configuration</source> - <translation>&Konfiguration</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="325"/> - <source><i>No cards available for configuration</i></source> - <translation><i>Ingen kort tilgængelige til konfiguration</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="336"/> - <source>Show volume meters</source> - <translation>Vis lydstyrkemetre</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="347"/> - <source>...</source> - <translation>...</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="159"/> - <source> (plugged in)</source> - <translation> (tilkoblet)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="163"/> - <location filename="../mainwindow.cc" line="257"/> - <source> (unavailable)</source> - <translation> (utilgængelig)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="165"/> - <location filename="../mainwindow.cc" line="254"/> - <source> (unplugged)</source> - <translation> (frakoblet)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="388"/> - <source>Failed to read data from stream</source> - <translation>Kunne ikke læse data fra lydstrøm</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="432"/> - <source>Peak detect</source> - <translation>Detektér højeste udslag</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="433"/> - <source>Failed to create monitoring stream</source> - <translation>Kunne ikke oprette kontrol af lydstrøm</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="448"/> - <source>Failed to connect monitoring stream</source> - <translation>Kunne ikke forbinde kontrollydstrøm</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="587"/> - <source>Ignoring sink-input due to it being designated as an event and thus handled by the Event widget</source> - <translation>Ignorerer sink-input da det bliver udpeget som en begivenhed og derfor håndteret af Event-widget'en</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="759"/> - <source>System Sounds</source> - <translation>Systemlyde</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="1089"/> - <source>Establishing connection to PulseAudio. Please wait...</source> - <translation>Etablerer forbindelse til PulseAudio. Vent venligst...</translation> - </message> -</context> -<context> - <name>QObject</name> - <message> - <location filename="../pavucontrol.cc" line="66"/> - <source>Error</source> - <translation>Fejl</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="87"/> - <source>Card callback failure</source> - <translation>Tilbagekaldsfejl for kort</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="110"/> - <source>Sink callback failure</source> - <translation>Tilbagekaldsfejl for sink</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="133"/> - <source>Source callback failure</source> - <translation>Tilbagekaldsfejl for kilde</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="152"/> - <source>Sink input callback failure</source> - <translation>Tilbagekaldsfejl for sinkinput</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="171"/> - <source>Source output callback failure</source> - <translation>Tilbagekaldsfejl for kilde-output</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="211"/> - <source>Client callback failure</source> - <translation>Tilbagekaldsfejl for klient</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="227"/> - <source>Server info callback failure</source> - <translation>Tilbagekaldsfejl for serverinformation</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="245"/> - <location filename="../pavucontrol.cc" line="542"/> - <source>Failed to initialize stream_restore extension: %s</source> - <translation>Kunne ikke initiere stream_restore-udvidelse: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="263"/> - <source>pa_ext_stream_restore_read() failed</source> - <translation>pa_ext_stream_restore_read() mislykkedes</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="281"/> - <location filename="../pavucontrol.cc" line="556"/> - <source>Failed to initialize device restore extension: %s</source> - <translation>Kunne ikke initialisere device restore-udvidelse: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="302"/> - <source>pa_ext_device_restore_read_sink_formats() failed</source> - <translation>pa_ext_device_restore_read_sink_formats() mislykkedes</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="320"/> - <location filename="../pavucontrol.cc" line="569"/> - <source>Failed to initialize device manager extension: %s</source> - <translation>Kunne ikke initiere device manager-udvidelse: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="339"/> - <source>pa_ext_device_manager_read() failed</source> - <translation>pa_ext_device_manager_read() mislykkedes</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="356"/> - <source>pa_context_get_sink_info_by_index() failed</source> - <translation>pa_context_get_sink_info_by_index() mislykkedes</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="369"/> - <source>pa_context_get_source_info_by_index() failed</source> - <translation>pa_context_get_source_info_by_index() mislykkedes</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="382"/> - <location filename="../pavucontrol.cc" line="395"/> - <source>pa_context_get_sink_input_info() failed</source> - <translation>pa_context_get_sink_input_info() mislykkedes</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="408"/> - <source>pa_context_get_client_info() failed</source> - <translation>pa_context_get_client_info() mislykkedes</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="418"/> - <location filename="../pavucontrol.cc" line="483"/> - <source>pa_context_get_server_info() failed</source> - <translation>pa_context_get_server_info() mislykkedes</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="431"/> - <source>pa_context_get_card_info_by_index() failed</source> - <translation>pa_context_get_card_info_by_index() mislykkedes</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="474"/> - <source>pa_context_subscribe() failed</source> - <translation>pa_context_subscribe() mislykkedes</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="490"/> - <source>pa_context_client_info_list() failed</source> - <translation>pa_context_client_info_list() mislykkedes</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="497"/> - <source>pa_context_get_card_info_list() failed</source> - <translation>pa_context_get_card_info_list() mislykkedes</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="504"/> - <source>pa_context_get_sink_info_list() failed</source> - <translation>pa_context_get_sink_info_list() mislykkedes</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="511"/> - <source>pa_context_get_source_info_list() failed</source> - <translation>pa_context_get_source_info_list() mislykkedes</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="518"/> - <source>pa_context_get_sink_input_info_list() failed</source> - <translation>pa_context_get_sink_input_info_list() mislykkedes</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="525"/> - <source>pa_context_get_source_output_info_list() failed</source> - <translation>pa_context_get_source_output_info_list() mislykkedes</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="584"/> - <location filename="../pavucontrol.cc" line="635"/> - <source>Connection failed, attempting reconnect</source> - <translation>Forbindelsen mislykkedes, forsøger at oprette forbindelsen igen</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="607"/> - <location filename="../pavucontrol.cc" line="664"/> - <source>PulseAudio Volume Control</source> - <translation>Lydstyrkekontrol for PulseAudio</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="622"/> - <source>Connection to PulseAudio failed. Automatic retry in 5s - -In this case this is likely because PULSE_SERVER in the Environment/X11 Root Window Properties -or default-server in client.conf is misconfigured. -This situation can also arrise when PulseAudio crashed and left stale details in the X11 Root Window. -If this is the case, then PulseAudio should autospawn again, or if this is not configured you should -run start-pulseaudio-x11 manually.</source> - <translation>Forbindelsen til PulseAudio mislykkedes. Forsøger automatisk igen om 5 sekunder - -I dette tilfælde er det sansynligvis på grund af at PULSE_SERVER i miljøet/X11 rod-vindue-egenskaber -eller default-server i client.conf er fejlkonfigureret. -Dette kan også ske når PulseAudio holder op med at virke og efterlod gamle detaljer i X11 rod-vinduet. -Hvis dette er tilfældet, bør PulseAudio automatisk genopstå og hvis dette ikke er konfigureret skal du -køre start-pulseaudio-x11 manuelt.</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="672"/> - <source>Select a specific tab on load.</source> - <translation>Vælg et bestemt faneblad ved start.</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="675"/> - <source>Retry forever if pa quits (every 5 seconds).</source> - <translation>Gentag uendeligt hvis pa afslutter (hvert 5. sekund).</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="678"/> - <source>Maximize the window.</source> - <translation>Maksimer vinduet.</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="703"/> - <source>Fatal Error: Unable to connect to PulseAudio</source> - <translation>Fatal fejl: kan ikke oprette forbindelse til PulseAudio</translation> - </message> -</context> -<context> - <name>RoleWidget</name> - <message> - <location filename="../rolewidget.cc" line="59"/> - <source>pa_ext_stream_restore_write() failed</source> - <translation>pa_ext_stream_restore_write() mislykkedes</translation> - </message> -</context> -<context> - <name>SinkInputWidget</name> - <message> - <location filename="../sinkinputwidget.cc" line="36"/> - <source>on</source> - <translation>tændt</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="39"/> - <source>Terminate Playback</source> - <translation>Afslut afspilning</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="53"/> - <source>Unknown output</source> - <translation>Ukendt output</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="64"/> - <source>pa_context_set_sink_input_volume() failed</source> - <translation>pa_context_set_sink_input_volume() mislykkedes</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="79"/> - <source>pa_context_set_sink_input_mute() failed</source> - <translation>pa_context_set_sink_input_mute() mislykkedes</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="89"/> - <source>pa_context_kill_sink_input() failed</source> - <translation>pa_context_kill_sink_input() mislykkedes</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="114"/> - <source>pa_context_move_sink_input_by_index() failed</source> - <translation>pa_context_move_sink_input_by_index() mislykkedes</translation> - </message> -</context> -<context> - <name>SinkWidget</name> - <message> - <location filename="../sinkwidget.cc" line="81"/> - <source>pa_context_set_sink_volume_by_index() failed</source> - <translation>pa_context_set_sink_volume_by_index() mislykkedes</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="96"/> - <source>pa_context_set_sink_mute_by_index() failed</source> - <translation>pa_context_set_sink_mute_by_index() mislykkedes</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="110"/> - <source>pa_context_set_default_sink() failed</source> - <translation>pa_context_set_default_sink() mislykkedes</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="126"/> - <source>pa_context_set_sink_port_by_index() failed</source> - <translation>pa_context_set_sink_port_by_index() mislykkedes</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="166"/> - <source>pa_ext_device_restore_save_sink_formats() failed</source> - <translation>pa_ext_device_restore_save_sink_formats() mislykkedes</translation> - </message> -</context> -<context> - <name>SourceOutputWidget</name> - <message> - <location filename="../sourceoutputwidget.cc" line="35"/> - <source>from</source> - <translation>fra</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="39"/> - <source>Terminate Recording</source> - <translation>Afslut optagelse</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="60"/> - <source>Unknown input</source> - <translation>Ukendt input</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="72"/> - <source>pa_context_set_source_output_volume() failed</source> - <translation>pa_context_set_source_output_volume() mislykkedes</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="87"/> - <source>pa_context_set_source_output_mute() failed</source> - <translation>pa_context_set_source_output_mute() mislykkedes</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="98"/> - <source>pa_context_kill_source_output() failed</source> - <translation>pa_context_kill_source_output() mislykkedes</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="125"/> - <source>pa_context_move_source_output_by_index() failed</source> - <translation>pa_context_move_source_output_by_index() mislykkedes</translation> - </message> -</context> -<context> - <name>SourceWidget</name> - <message> - <location filename="../sourcewidget.cc" line="35"/> - <source>pa_context_set_source_volume_by_index() failed</source> - <translation>pa_context_set_source_volume_by_index() mislykkedes</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="50"/> - <source>pa_context_set_source_mute_by_index() failed</source> - <translation>pa_context_set_source_mute_by_index() mislykkedes</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="64"/> - <source>pa_context_set_default_source() failed</source> - <translation>pa_context_set_default_source() mislykkedes</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="80"/> - <source>pa_context_set_source_port_by_index() failed</source> - <translation>pa_context_set_source_port_by_index() mislykkedes</translation> - </message> -</context> -<context> - <name>StreamWidget</name> - <message> - <location filename="../streamwidget.ui" line="14"/> - <source>Form</source> - <translation>Formular</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="32"/> - <source>Device Title</source> - <translation>Enhedens titel</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="52"/> - <source>direction</source> - <translation>retning</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="59"/> - <source>device</source> - <translation>enhed</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="66"/> - <source>Mute audio</source> - <translation>Mute lyd</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="79"/> - <source>Lock channels together</source> - <translation>Lås kanaler sammen</translation> - </message> - <message> - <location filename="../streamwidget.cc" line="34"/> - <source>Terminate</source> - <translation>Afslut afspilning</translation> - </message> -</context> -</TS> diff --git a/src/translations/pavucontrol-qt_de.ts b/src/translations/pavucontrol-qt_de.ts deleted file mode 100644 index c1e0d62..0000000 --- a/src/translations/pavucontrol-qt_de.ts +++ /dev/null @@ -1,738 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE TS> -<TS version="2.1" language="de"> -<context> - <name>CardWidget</name> - <message> - <location filename="../cardwidget.ui" line="14"/> - <source>Form</source> - <translation>Form</translation> - </message> - <message> - <location filename="../cardwidget.ui" line="29"/> - <source>Card Name</source> - <translation>Soundkarten-Name</translation> - </message> - <message> - <location filename="../cardwidget.ui" line="47"/> - <source>Profile:</source> - <translation>Profil:</translation> - </message> - <message> - <location filename="../cardwidget.cc" line="67"/> - <source>pa_context_set_card_profile_by_index() failed</source> - <translation>pa_context_set_card_profile_by_index() gescheitert</translation> - </message> -</context> -<context> - <name>Channel</name> - <message> - <location filename="../channel.cc" line="89"/> - <source>%1% (%2dB)</source> - <comment>volume slider label [X% (YdB)]</comment> - <translation>%1 % (%2 dB)</translation> - </message> - <message> - <location filename="../channel.cc" line="93"/> - <source>%1%</source> - <comment>volume slider label [X%]</comment> - <translation>%1 %</translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Silence</small></source> - <translation><small>Stumm</small></translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Min</small></source> - <translation><small>Minimum</small></translation> - </message> - <message> - <location filename="../channel.cc" line="162"/> - <source><small>100% (0dB)</small></source> - <translation><small>100 % (0 dB)</small></translation> - </message> - <message> - <location filename="../channel.cc" line="165"/> - <source><small><i>Base</i></small></source> - <translation><small><i>Basis</i></small></translation> - </message> -</context> -<context> - <name>ChannelWidget</name> - <message> - <location filename="../channelwidget.ui" line="14"/> - <source>Form</source> - <translation>Form</translation> - </message> - <message> - <location filename="../channelwidget.ui" line="20"/> - <source><b>left-front</b></source> - <translation><b>vorne links</b></translation> - </message> - <message> - <location filename="../channelwidget.ui" line="34"/> - <source><small>50%</small></source> - <translation><small>50 %</small></translation> - </message> -</context> -<context> - <name>DeviceWidget</name> - <message> - <location filename="../devicewidget.ui" line="14"/> - <source>Form</source> - <translation>Form</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="36"/> - <source>Device Title</source> - <translation>Gerätetitel</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="56"/> - <source>Mute audio</source> - <translation>Audio stummschalten</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="69"/> - <source>Lock channels together</source> - <translation>Kanäle zusammenschließen</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="85"/> - <source>Set as fallback</source> - <translation>Als Rückfallebene setzen</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="103"/> - <source><b>Port:</b></source> - <translation><b>Port:</b></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="126"/> - <source>Show advanced options</source> - <translation>Erweiterte Optionen anzeigen</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="172"/> - <source>PCM</source> - <translation>PCM</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="182"/> - <source>AC3</source> - <translation>AC3</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="189"/> - <source>EAC3</source> - <translation>EAC3</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="196"/> - <source>DTS</source> - <translation>DTS</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="203"/> - <source>MPEG</source> - <translation>MPEG</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="210"/> - <source>AAC</source> - <translation>AAC</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="238"/> - <source><b>Latency offset:</b></source> - <translation><b>Latenzversatz:</b></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="245"/> - <source> ms</source> - <translation> ms</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="41"/> - <source>Rename device...</source> - <translation>Gerät umbenennen...</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="155"/> - <source>pa_context_set_port_latency_offset() failed</source> - <translation>pa_context_set_port_latency_offset() fehlgeschlagen</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="226"/> - <source>Sorry, but device renaming is not supported.</source> - <translation>Entschuldigung, aber Geräteumbenennung wird nicht unterstützt.</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="227"/> - <source>You need to load module-device-manager in the PulseAudio server in order to rename devices</source> - <translation>Es muss der module-device-manager im PulseAudio Server geladen sein um Geräte umzubenennen</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="233"/> - <source>Rename device %1 to:</source> - <translation>Gerät %1 umbenennen nach:</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="240"/> - <source>pa_ext_device_manager_set_device_description() failed</source> - <translation>pa_ext_device_manager_set_device_description() fehlgeschlagen</translation> - </message> -</context> -<context> - <name>MainWindow</name> - <message> - <location filename="../mainwindow.ui" line="14"/> - <source>Volume Control</source> - <translation>Lautstärkeregler</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="28"/> - <source>&Playback</source> - <translation>&Wiedergabe</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="55"/> - <source><i>No application is currently playing audio.</i></source> - <translation><i>Keine Applikation gibt zur Zeit Ton wieder.</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="66"/> - <location filename="../mainwindow.ui" line="131"/> - <location filename="../mainwindow.ui" line="196"/> - <location filename="../mainwindow.ui" line="261"/> - <source>Show:</source> - <translation>Zeige:</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="74"/> - <location filename="../mainwindow.ui" line="139"/> - <source>All Streams</source> - <translation>Alle Streams</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="79"/> - <location filename="../mainwindow.ui" line="144"/> - <source>Applications</source> - <translation>Anwendungen</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="84"/> - <location filename="../mainwindow.ui" line="149"/> - <source>Virtual Streams</source> - <translation>Virtuelle Streams</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="93"/> - <source>&Recording</source> - <translation>&Aufnahme</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="120"/> - <source><i>No application is currently recording audio.</i></source> - <translation><i>Keine Applikation nimmt zur Zeit Ton auf.</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="158"/> - <source>&Output Devices</source> - <translation>A&usgabegeräte</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="185"/> - <source><i>No output devices available</i></source> - <translation><i>Keine Ausgabegeräte verfügbar</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="204"/> - <source>All Output Devices</source> - <translation>Alle Ausgabegeräte</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="209"/> - <source>Hardware Output Devices</source> - <translation>Hardware Ausgabegeräte</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="214"/> - <source>Virtual Output Devices</source> - <translation>Virtuelle Ausgabegeräte</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="223"/> - <source>&Input Devices</source> - <translation>&Eingabegeräte</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="250"/> - <source><i>No input devices available</i></source> - <translation><i>Keine Eingabegeräte verfügbar.</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="269"/> - <source>All Input Devices</source> - <translation>Alle Eingabegeräte</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="274"/> - <source>All Except Monitors</source> - <translation>Alle außer Monitore</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="279"/> - <source>Hardware Input Devices</source> - <translation>Hardware Eingabegeräte</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="284"/> - <source>Virtual Input Devices</source> - <translation>Virtuelle Eingabegeräte</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="289"/> - <source>Monitors</source> - <translation>Monitore</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="298"/> - <source>&Configuration</source> - <translation>&Konfiguration</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="325"/> - <source><i>No cards available for configuration</i></source> - <translation><i>Keine Karten zur Konfiguration verfügbar</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="336"/> - <source>Show volume meters</source> - <translation>Lautstärkemesser anzeigen</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="347"/> - <source>...</source> - <translation>...</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="159"/> - <source> (plugged in)</source> - <translation> (eingesteckt)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="163"/> - <location filename="../mainwindow.cc" line="257"/> - <source> (unavailable)</source> - <translation> (nicht verfügbar)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="165"/> - <location filename="../mainwindow.cc" line="254"/> - <source> (unplugged)</source> - <translation> (abgesteckt)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="388"/> - <source>Failed to read data from stream</source> - <translation>Lesen des Datenstroms gescheitert</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="432"/> - <source>Peak detect</source> - <translation>Ausschlagsserkennung</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="433"/> - <source>Failed to create monitoring stream</source> - <translation>Erstellung des Beobachterdatenstroms gescheitert</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="448"/> - <source>Failed to connect monitoring stream</source> - <translation>Verbindungsaufbau zum Beobachterdatenstrom gescheitert</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="587"/> - <source>Ignoring sink-input due to it being designated as an event and thus handled by the Event widget</source> - <translation>Ignoriere sink-input, weil es als ein Ereignis festgelegt wurde und somit vom Ereignis 'widget' gehandhabt wird</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="759"/> - <source>System Sounds</source> - <translation>Systemtöne</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="1089"/> - <source>Establishing connection to PulseAudio. Please wait...</source> - <translation>Errichte Verbindung zu PulseAudio. Bitte warten...</translation> - </message> -</context> -<context> - <name>QObject</name> - <message> - <location filename="../pavucontrol.cc" line="66"/> - <source>Error</source> - <translation>Fehler</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="87"/> - <source>Card callback failure</source> - <translation>Soundkarten Callback-Fehler</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="110"/> - <source>Sink callback failure</source> - <translation>Senke Callback-Fehler</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="133"/> - <source>Source callback failure</source> - <translation>Quellen Callback-Fehler</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="152"/> - <source>Sink input callback failure</source> - <translation>Senken-Eingabe Callback-Fehler</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="171"/> - <source>Source output callback failure</source> - <translation>Quellen-Ausgabe Callback-Fehler</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="211"/> - <source>Client callback failure</source> - <translation>Client Callback-Fehler</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="227"/> - <source>Server info callback failure</source> - <translation>Server-Information Callback-Fehler</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="245"/> - <location filename="../pavucontrol.cc" line="542"/> - <source>Failed to initialize stream_restore extension: %s</source> - <translation>Initialisierung der »stream_restore«-Erweiterung gescheitert: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="263"/> - <source>pa_ext_stream_restore_read() failed</source> - <translation>pa_ext_stream_restore_read() gescheitert</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="281"/> - <location filename="../pavucontrol.cc" line="556"/> - <source>Failed to initialize device restore extension: %s</source> - <translation>Initialisierung der Gerätewiederherstellungserweiterung fehlgeschlagen: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="302"/> - <source>pa_ext_device_restore_read_sink_formats() failed</source> - <translation>pa_ext_device_restore_read_sink_formats() fehlgeschlagen</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="320"/> - <location filename="../pavucontrol.cc" line="569"/> - <source>Failed to initialize device manager extension: %s</source> - <translation>Initialisierung der Geräteverwaltungserweiterung fehlgeschlagen: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="339"/> - <source>pa_ext_device_manager_read() failed</source> - <translation>pa_ext_device_manager_read() fehlgeschlagen</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="356"/> - <source>pa_context_get_sink_info_by_index() failed</source> - <translation>pa_context_get_sink_info_by_index() gescheitert</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="369"/> - <source>pa_context_get_source_info_by_index() failed</source> - <translation>pa_context_get_source_info_by_index() gescheitert</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="382"/> - <location filename="../pavucontrol.cc" line="395"/> - <source>pa_context_get_sink_input_info() failed</source> - <translation>pa_context_get_sink_input_info() gescheitert</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="408"/> - <source>pa_context_get_client_info() failed</source> - <translation>pa_context_get_client_info() gescheitert</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="418"/> - <location filename="../pavucontrol.cc" line="483"/> - <source>pa_context_get_server_info() failed</source> - <translation>pa_context_get_server_info() gescheitert</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="431"/> - <source>pa_context_get_card_info_by_index() failed</source> - <translation>pa_context_get_card_info_by_index() gescheitert</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="474"/> - <source>pa_context_subscribe() failed</source> - <translation>pa_context_subscribe() gescheitert</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="490"/> - <source>pa_context_client_info_list() failed</source> - <translation>pa_context_client_info_list() gescheitert</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="497"/> - <source>pa_context_get_card_info_list() failed</source> - <translation>pa_context_get_card_info_list() gescheitert</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="504"/> - <source>pa_context_get_sink_info_list() failed</source> - <translation>pa_context_get_sink_info_list() gescheitert</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="511"/> - <source>pa_context_get_source_info_list() failed</source> - <translation>pa_context_get_source_info_list() gescheitert</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="518"/> - <source>pa_context_get_sink_input_info_list() failed</source> - <translation>pa_context_get_sink_input_info_list() gescheitert</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="525"/> - <source>pa_context_get_source_output_info_list() failed</source> - <translation>pa_context_get_source_output_info_list() gescheitert</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="584"/> - <location filename="../pavucontrol.cc" line="635"/> - <source>Connection failed, attempting reconnect</source> - <translation>Verbindung fehlgeschlagen, versuche erneut zu verbinden</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="607"/> - <location filename="../pavucontrol.cc" line="664"/> - <source>PulseAudio Volume Control</source> - <translation>PulseAudio-Lautstärkeregler</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="622"/> - <source>Connection to PulseAudio failed. Automatic retry in 5s - -In this case this is likely because PULSE_SERVER in the Environment/X11 Root Window Properties -or default-server in client.conf is misconfigured. -This situation can also arrise when PulseAudio crashed and left stale details in the X11 Root Window. -If this is the case, then PulseAudio should autospawn again, or if this is not configured you should -run start-pulseaudio-x11 manually.</source> - <translation>Verbindung zu PulseAudio fehlgeschlagen. Automatische Wiederholung in 5s - -In diesem Fall ist es wahrscheinlich, dass PULSE_SERVER in der Umgebung/X11 Root Fenster Eigenschaften -oder default-server in client.conf fehlconfiguriert ist. -Diese Situation kann auch entstehen, wenn PulseAudio abgestürzt ist und alte Details im X11 Root Fenster hinterlassen hat. -Wenn dies der Fall ist, sollte PulseAudio wieder automatisch starten. Wenn automatisches Starten nicht konfiguriert ist, ist 'start-pulseaudio-x11' manuell auszuführen.</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="672"/> - <source>Select a specific tab on load.</source> - <translation>Eine bestimmte Registerkarte beim Start auswählen.</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="675"/> - <source>Retry forever if pa quits (every 5 seconds).</source> - <translation>Wiederhole für immer, wenn pa sich beendet (alle 5 Sekunden).</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="678"/> - <source>Maximize the window.</source> - <translation>Fenster maximieren.</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="703"/> - <source>Fatal Error: Unable to connect to PulseAudio</source> - <translation>Schwerwiegender Fehler: Verbindung zu PulseAudio nicht möglich</translation> - </message> -</context> -<context> - <name>RoleWidget</name> - <message> - <location filename="../rolewidget.cc" line="59"/> - <source>pa_ext_stream_restore_write() failed</source> - <translation>pa_ext_stream_restore_write() gescheitert</translation> - </message> -</context> -<context> - <name>SinkInputWidget</name> - <message> - <location filename="../sinkinputwidget.cc" line="36"/> - <source>on</source> - <translation>ein</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="39"/> - <source>Terminate Playback</source> - <translation>Wiedergabe beenden</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="53"/> - <source>Unknown output</source> - <translation>Unbekannte Ausgabe</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="64"/> - <source>pa_context_set_sink_input_volume() failed</source> - <translation>pa_context_set_sink_input_volume() gescheitert</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="79"/> - <source>pa_context_set_sink_input_mute() failed</source> - <translation>pa_context_set_sink_input_mute() gescheitert</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="89"/> - <source>pa_context_kill_sink_input() failed</source> - <translation>pa_context_kill_sink_input() gescheitert</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="114"/> - <source>pa_context_move_sink_input_by_index() failed</source> - <translation>pa_context_move_sink_input_by_index() gescheitert</translation> - </message> -</context> -<context> - <name>SinkWidget</name> - <message> - <location filename="../sinkwidget.cc" line="81"/> - <source>pa_context_set_sink_volume_by_index() failed</source> - <translation>pa_context_set_sink_volume_by_index() gescheitert</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="96"/> - <source>pa_context_set_sink_mute_by_index() failed</source> - <translation>pa_context_set_sink_mute_by_index() gescheitert</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="110"/> - <source>pa_context_set_default_sink() failed</source> - <translation>pa_context_set_default_sink() gescheitert</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="126"/> - <source>pa_context_set_sink_port_by_index() failed</source> - <translation>pa_context_set_sink_port_by_index() gescheitert</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="166"/> - <source>pa_ext_device_restore_save_sink_formats() failed</source> - <translation>pa_ext_device_restore_save_sink_formats() fehlgeschlagen</translation> - </message> -</context> -<context> - <name>SourceOutputWidget</name> - <message> - <location filename="../sourceoutputwidget.cc" line="35"/> - <source>from</source> - <translation>von</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="39"/> - <source>Terminate Recording</source> - <translation>Aufnahme beenden</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="60"/> - <source>Unknown input</source> - <translation>Unbekannte Eingabe</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="72"/> - <source>pa_context_set_source_output_volume() failed</source> - <translation>pa_context_set_source_output_volume() fehlgeschlagen</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="87"/> - <source>pa_context_set_source_output_mute() failed</source> - <translation>pa_context_set_source_output_mute() fehlgeschlagen</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="98"/> - <source>pa_context_kill_source_output() failed</source> - <translation>pa_context_kill_source_output() gescheitert</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="125"/> - <source>pa_context_move_source_output_by_index() failed</source> - <translation>pa_context_move_source_output_by_index() gescheitert</translation> - </message> -</context> -<context> - <name>SourceWidget</name> - <message> - <location filename="../sourcewidget.cc" line="35"/> - <source>pa_context_set_source_volume_by_index() failed</source> - <translation>pa_context_set_source_volume_by_index() gescheitert</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="50"/> - <source>pa_context_set_source_mute_by_index() failed</source> - <translation>pa_context_set_source_mute_by_index() gescheitert</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="64"/> - <source>pa_context_set_default_source() failed</source> - <translation>pa_context_set_default_source() gescheitert</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="80"/> - <source>pa_context_set_source_port_by_index() failed</source> - <translation>pa_context_set_source_port_by_index() gescheitert</translation> - </message> -</context> -<context> - <name>StreamWidget</name> - <message> - <location filename="../streamwidget.ui" line="14"/> - <source>Form</source> - <translation>Form</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="32"/> - <source>Device Title</source> - <translation>Gerätetitel</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="52"/> - <source>direction</source> - <translation>Richtung</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="59"/> - <source>device</source> - <translation>Gerät</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="66"/> - <source>Mute audio</source> - <translation>Audio stummschalten</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="79"/> - <source>Lock channels together</source> - <translation>Kanäle zusammenschließen</translation> - </message> - <message> - <location filename="../streamwidget.cc" line="34"/> - <source>Terminate</source> - <translation>Beenden</translation> - </message> -</context> -</TS> diff --git a/src/translations/pavucontrol-qt_el.ts b/src/translations/pavucontrol-qt_el.ts deleted file mode 100644 index 8ba226e..0000000 --- a/src/translations/pavucontrol-qt_el.ts +++ /dev/null @@ -1,738 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE TS> -<TS version="2.1" language="el"> -<context> - <name>CardWidget</name> - <message> - <location filename="../cardwidget.ui" line="14"/> - <source>Form</source> - <translation>Φόρμα</translation> - </message> - <message> - <location filename="../cardwidget.ui" line="29"/> - <source>Card Name</source> - <translation>Όνομα κάρτας</translation> - </message> - <message> - <location filename="../cardwidget.ui" line="47"/> - <source>Profile:</source> - <translation>Ταυτότητα:</translation> - </message> - <message> - <location filename="../cardwidget.cc" line="67"/> - <source>pa_context_set_card_profile_by_index() failed</source> - <translation>το pa_context_set_card_profile_by_index() απέτυχε</translation> - </message> -</context> -<context> - <name>Channel</name> - <message> - <location filename="../channel.cc" line="89"/> - <source>%1% (%2dB)</source> - <comment>volume slider label [X% (YdB)]</comment> - <translation>%1% (%2dB)</translation> - </message> - <message> - <location filename="../channel.cc" line="93"/> - <source>%1%</source> - <comment>volume slider label [X%]</comment> - <translation>%1%</translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Silence</small></source> - <translation><small>Σίγαση</small></translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Min</small></source> - <translation><small>Ελάχ</small></translation> - </message> - <message> - <location filename="../channel.cc" line="162"/> - <source><small>100% (0dB)</small></source> - <translation><small>100% (0dB)</small></translation> - </message> - <message> - <location filename="../channel.cc" line="165"/> - <source><small><i>Base</i></small></source> - <translation><small><i>Βάση</i></small></translation> - </message> -</context> -<context> - <name>ChannelWidget</name> - <message> - <location filename="../channelwidget.ui" line="14"/> - <source>Form</source> - <translation>Φόρμα</translation> - </message> - <message> - <location filename="../channelwidget.ui" line="20"/> - <source><b>left-front</b></source> - <translation><b>εμπρός-αριστερά</b></translation> - </message> - <message> - <location filename="../channelwidget.ui" line="34"/> - <source><small>50%</small></source> - <translation><small>50%</small></translation> - </message> -</context> -<context> - <name>DeviceWidget</name> - <message> - <location filename="../devicewidget.ui" line="14"/> - <source>Form</source> - <translation>Φόρμα</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="36"/> - <source>Device Title</source> - <translation>Τίτλος συσκευής</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="56"/> - <source>Mute audio</source> - <translation>Σίγαση ήχου</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="69"/> - <source>Lock channels together</source> - <translation>Κλείδωμα των καναλιών μαζί</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="85"/> - <source>Set as fallback</source> - <translation>Ορισμός ως συσκευή μετάπτωσης</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="103"/> - <source><b>Port:</b></source> - <translation><b>Θύρα:</b></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="126"/> - <source>Show advanced options</source> - <translation>Προβολή προηγμένων επιλογών</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="172"/> - <source>PCM</source> - <translation>PCM</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="182"/> - <source>AC3</source> - <translation>AC3</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="189"/> - <source>EAC3</source> - <translation>EAC3</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="196"/> - <source>DTS</source> - <translation>DTS</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="203"/> - <source>MPEG</source> - <translation>MPEG</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="210"/> - <source>AAC</source> - <translation>AAC</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="238"/> - <source><b>Latency offset:</b></source> - <translation><b>Μετατόπιση του χρόνου καθυστέρησης:</b></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="245"/> - <source> ms</source> - <translation> ms</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="41"/> - <source>Rename device...</source> - <translation>Μετονομασία συσκευής...</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="155"/> - <source>pa_context_set_port_latency_offset() failed</source> - <translation>το pa_context_set_port_latency_offset() απέτυχε</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="226"/> - <source>Sorry, but device renaming is not supported.</source> - <translation>Λυπάμαι, αλλά η μετονομασία της συσκευής δεν υποστηρίζεται.</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="227"/> - <source>You need to load module-device-manager in the PulseAudio server in order to rename devices</source> - <translation>Πρέπει να φορτώσετε το module-device-manager στον εξυπηρετητή PulseAudio προκειμένου να μετονομάσετε συσκευές</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="233"/> - <source>Rename device %1 to:</source> - <translation>Μετονομασία της συσκευής %1 σε:</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="240"/> - <source>pa_ext_device_manager_set_device_description() failed</source> - <translation>το pa_ext_device_manager_set_device_description() απέτυχε</translation> - </message> -</context> -<context> - <name>MainWindow</name> - <message> - <location filename="../mainwindow.ui" line="14"/> - <source>Volume Control</source> - <translation>Έλεγχος έντασης ήχου</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="28"/> - <source>&Playback</source> - <translation>&Αναπαραγωγή</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="55"/> - <source><i>No application is currently playing audio.</i></source> - <translation><i>Καμιά εφαρμογή δεν αναπαράγει ήχο αυτήν την στιγμή.</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="66"/> - <location filename="../mainwindow.ui" line="131"/> - <location filename="../mainwindow.ui" line="196"/> - <location filename="../mainwindow.ui" line="261"/> - <source>Show:</source> - <translation>Εμφάνιση:</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="74"/> - <location filename="../mainwindow.ui" line="139"/> - <source>All Streams</source> - <translation>Όλες οι ροές</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="79"/> - <location filename="../mainwindow.ui" line="144"/> - <source>Applications</source> - <translation>Εφαρμογές</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="84"/> - <location filename="../mainwindow.ui" line="149"/> - <source>Virtual Streams</source> - <translation>Εικονικές ροές</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="93"/> - <source>&Recording</source> - <translation>&Ηχογράφηση</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="120"/> - <source><i>No application is currently recording audio.</i></source> - <translation><i>Καμιά εφαρμογή δεν ηχογραφεί αυτήν την στιγμή.</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="158"/> - <source>&Output Devices</source> - <translation>Συσκευές ε&ξόδου</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="185"/> - <source><i>No output devices available</i></source> - <translation><i>Δεν υπάρχουν διαθέσιμες συσκευές εξόδου</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="204"/> - <source>All Output Devices</source> - <translation>Όλες οι συσκευές εξόδου</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="209"/> - <source>Hardware Output Devices</source> - <translation>Συσκευές εξόδου υλικού</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="214"/> - <source>Virtual Output Devices</source> - <translation>Εικονικές συσκευές εξόδου</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="223"/> - <source>&Input Devices</source> - <translation>&Συσκευές εισόδου</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="250"/> - <source><i>No input devices available</i></source> - <translation><i>Δεν υπάρχουν διαθέσιμες συσκευές εισόδου</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="269"/> - <source>All Input Devices</source> - <translation>Όλες οι συσκευές εισόδου</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="274"/> - <source>All Except Monitors</source> - <translation>Όλες εκτός των οθονών</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="279"/> - <source>Hardware Input Devices</source> - <translation>Συσκευές εισόδου υλικού</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="284"/> - <source>Virtual Input Devices</source> - <translation>Εικονικές συσκευές εισόδου</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="289"/> - <source>Monitors</source> - <translation>Οθόνες</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="298"/> - <source>&Configuration</source> - <translation>&Διαμόρφωση</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="325"/> - <source><i>No cards available for configuration</i></source> - <translation><i>Δεν υπάρχουν διαθέσιμες κάρτες για διαμόρφωση</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="336"/> - <source>Show volume meters</source> - <translation>Εμφάνιση των μετρητών έντασης</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="347"/> - <source>...</source> - <translation>...</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="159"/> - <source> (plugged in)</source> - <translation> (συνδεδεμένο)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="163"/> - <location filename="../mainwindow.cc" line="257"/> - <source> (unavailable)</source> - <translation> (μη διαθέσιμο)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="165"/> - <location filename="../mainwindow.cc" line="254"/> - <source> (unplugged)</source> - <translation> (αποσυνδεδεμένο)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="388"/> - <source>Failed to read data from stream</source> - <translation>Αποτυχία ανάγνωσης δεδομένων από την ροή</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="432"/> - <source>Peak detect</source> - <translation>Εντοπισμός αιχμής</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="433"/> - <source>Failed to create monitoring stream</source> - <translation>Αποτυχία δημιουργίας της ροής εποπτείας</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="448"/> - <source>Failed to connect monitoring stream</source> - <translation>Αποτυχία σύνδεσης της ροής εποπτείας</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="587"/> - <source>Ignoring sink-input due to it being designated as an event and thus handled by the Event widget</source> - <translation>Αγνόηση του αποδέκτη εισόδου διότι είναι καθορισμένη ως ένα συμβάν και ως εκ τούτου διαχειρίζεται από το συστατικό των συμβάντων</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="759"/> - <source>System Sounds</source> - <translation>Ήχοι συστήματος</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="1089"/> - <source>Establishing connection to PulseAudio. Please wait...</source> - <translation>Εδραίωση της σύνδεσης με το PulseAudio. Παρακαλώ περιμένετε...</translation> - </message> -</context> -<context> - <name>QObject</name> - <message> - <location filename="../pavucontrol.cc" line="66"/> - <source>Error</source> - <translation>Σφάλμα</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="87"/> - <source>Card callback failure</source> - <translation>Αποτυχία επανάκλησης κάρτας</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="110"/> - <source>Sink callback failure</source> - <translation>Αποτυχία επανάκλησης αποδέκτη</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="133"/> - <source>Source callback failure</source> - <translation>Αποτυχία επανάκλησης πηγής</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="152"/> - <source>Sink input callback failure</source> - <translation>Αποτυχία επανάκλησης αποδέκτη εισόδου</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="171"/> - <source>Source output callback failure</source> - <translation>Αποτυχία επανάκλησης πηγής εξόδου</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="211"/> - <source>Client callback failure</source> - <translation>Αποτυχία επανάκλησης πελάτη</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="227"/> - <source>Server info callback failure</source> - <translation>Αποτυχία επανάκλησης πληροφοριών εξυπηρετητή</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="245"/> - <location filename="../pavucontrol.cc" line="542"/> - <source>Failed to initialize stream_restore extension: %s</source> - <translation>Αποτυχία αρχικοποίησης της επέκτασης επαναφοράς ροής: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="263"/> - <source>pa_ext_stream_restore_read() failed</source> - <translation>το pa_ext_stream_restore_read() απέτυχε</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="281"/> - <location filename="../pavucontrol.cc" line="556"/> - <source>Failed to initialize device restore extension: %s</source> - <translation>Αποτυχία αρχικοποίησης της επέκτασης επαναφοράς συσκευής: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="302"/> - <source>pa_ext_device_restore_read_sink_formats() failed</source> - <translation>το pa_ext_device_restore_read_sink_formats() απέτυχε</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="320"/> - <location filename="../pavucontrol.cc" line="569"/> - <source>Failed to initialize device manager extension: %s</source> - <translation>Αποτυχία αρχικοποίησης της επέκτασης διαχειριστή συσκευών: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="339"/> - <source>pa_ext_device_manager_read() failed</source> - <translation>το pa_ext_device_manager_read() απέτυχε</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="356"/> - <source>pa_context_get_sink_info_by_index() failed</source> - <translation>το pa_context_get_sink_info_by_index() απέτυχε</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="369"/> - <source>pa_context_get_source_info_by_index() failed</source> - <translation>το pa_context_get_source_info_by_index() απέτυχε</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="382"/> - <location filename="../pavucontrol.cc" line="395"/> - <source>pa_context_get_sink_input_info() failed</source> - <translation>το pa_context_get_sink_input_info() απέτυχε</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="408"/> - <source>pa_context_get_client_info() failed</source> - <translation>το pa_context_get_client_info() απέτυχε</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="418"/> - <location filename="../pavucontrol.cc" line="483"/> - <source>pa_context_get_server_info() failed</source> - <translation>το pa_context_get_server_info() απέτυχε</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="431"/> - <source>pa_context_get_card_info_by_index() failed</source> - <translation>το pa_context_get_card_info_by_index() απέτυχε</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="474"/> - <source>pa_context_subscribe() failed</source> - <translation>το pa_context_subscribe() απέτυχε</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="490"/> - <source>pa_context_client_info_list() failed</source> - <translation>το pa_context_client_info_list() απέτυχε</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="497"/> - <source>pa_context_get_card_info_list() failed</source> - <translation>το pa_context_get_card_info_list() απέτυχε</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="504"/> - <source>pa_context_get_sink_info_list() failed</source> - <translation>το pa_context_get_sink_info_list() απέτυχε</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="511"/> - <source>pa_context_get_source_info_list() failed</source> - <translation>το pa_context_get_source_info_list() απέτυχε</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="518"/> - <source>pa_context_get_sink_input_info_list() failed</source> - <translation>το pa_context_get_sink_input_info_list() απέτυχε</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="525"/> - <source>pa_context_get_source_output_info_list() failed</source> - <translation>το pa_context_get_source_output_info_list() απέτυχε</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="584"/> - <location filename="../pavucontrol.cc" line="635"/> - <source>Connection failed, attempting reconnect</source> - <translation>Αποτυχία της σύνδεσης, προσπάθεια επανασύνδεσης</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="607"/> - <location filename="../pavucontrol.cc" line="664"/> - <source>PulseAudio Volume Control</source> - <translation>Έλεγχος έντασης ήχου PulseAudio</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="622"/> - <source>Connection to PulseAudio failed. Automatic retry in 5s - -In this case this is likely because PULSE_SERVER in the Environment/X11 Root Window Properties -or default-server in client.conf is misconfigured. -This situation can also arrise when PulseAudio crashed and left stale details in the X11 Root Window. -If this is the case, then PulseAudio should autospawn again, or if this is not configured you should -run start-pulseaudio-x11 manually.</source> - <translation>Η σύνδεση στο PulseAudio απέτυχε. Αυτόματη επανάληψη σε 5 δευτ. - -Αυτό μπορεί να συμβαίνει διότι ο PULSE_SERVER είναι κακώς διαμορφωμένος στο παράθυρο διαχειριστή Ιδιότητες Environment/X11 -ή το default-server στο client.conf. -Αυτή η κατάσταση συναντάται επίσης μετά από κατάρρευση του PulseAudio και παραμονή υπολειμμάτων στο παράθυρο διαχειριστή X11. -Αν πρόκειται για αυτήν την περίπτωση, τότε το PulseAudio θα πρέπει να αυτοδημιουργηθεί εκ νέου, ή αν αυτό δεν έχει ρυθμιστεί θα πρέπει να εκτελέσετε χειροκίνητα το start-pulseaudio-x11.</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="672"/> - <source>Select a specific tab on load.</source> - <translation>Επιλογή μιας συγκεκριμένης καρτέλας κατά την φόρτωση.</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="675"/> - <source>Retry forever if pa quits (every 5 seconds).</source> - <translation>Επαναφορά αέναα κατά την εγκατάλειψη του pa (κάθε 5 δευτερόλεπτα).</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="678"/> - <source>Maximize the window.</source> - <translation>Μεγιστοποίηση του παράθυρου.</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="703"/> - <source>Fatal Error: Unable to connect to PulseAudio</source> - <translation>Ανεπανόρθωτο σφάλμα: Αδύνατη η σύνδεση στο PulseAudio</translation> - </message> -</context> -<context> - <name>RoleWidget</name> - <message> - <location filename="../rolewidget.cc" line="59"/> - <source>pa_ext_stream_restore_write() failed</source> - <translation>το pa_ext_stream_restore_write() απέτυχε</translation> - </message> -</context> -<context> - <name>SinkInputWidget</name> - <message> - <location filename="../sinkinputwidget.cc" line="36"/> - <source>on</source> - <translation>σε</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="39"/> - <source>Terminate Playback</source> - <translation>Τερματισμός αναπαραγωγής</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="53"/> - <source>Unknown output</source> - <translation>Άγνωστη έξοδος</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="64"/> - <source>pa_context_set_sink_input_volume() failed</source> - <translation>το pa_context_set_sink_input_volume() απέτυχε</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="79"/> - <source>pa_context_set_sink_input_mute() failed</source> - <translation>το pa_context_set_sink_input_mute() απέτυχε</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="89"/> - <source>pa_context_kill_sink_input() failed</source> - <translation>το pa_context_kill_sink_input() απέτυχε</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="114"/> - <source>pa_context_move_sink_input_by_index() failed</source> - <translation>το pa_context_move_sink_input_by_index() απέτυχε</translation> - </message> -</context> -<context> - <name>SinkWidget</name> - <message> - <location filename="../sinkwidget.cc" line="81"/> - <source>pa_context_set_sink_volume_by_index() failed</source> - <translation>το pa_context_set_sink_volume_by_index() απέτυχε</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="96"/> - <source>pa_context_set_sink_mute_by_index() failed</source> - <translation>το pa_context_set_sink_mute_by_index() απέτυχε</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="110"/> - <source>pa_context_set_default_sink() failed</source> - <translation>το pa_context_set_default_sink() απέτυχε</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="126"/> - <source>pa_context_set_sink_port_by_index() failed</source> - <translation>το pa_context_set_sink_port_by_index() απέτυχε</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="166"/> - <source>pa_ext_device_restore_save_sink_formats() failed</source> - <translation>το pa_ext_device_restore_save_sink_formats() απέτυχε</translation> - </message> -</context> -<context> - <name>SourceOutputWidget</name> - <message> - <location filename="../sourceoutputwidget.cc" line="35"/> - <source>from</source> - <translation>από</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="39"/> - <source>Terminate Recording</source> - <translation>Τερματισμός ηχογράφησης</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="60"/> - <source>Unknown input</source> - <translation>Άγνωστη είσοδος</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="72"/> - <source>pa_context_set_source_output_volume() failed</source> - <translation>το pa_context_set_source_output_volume() απέτυχε</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="87"/> - <source>pa_context_set_source_output_mute() failed</source> - <translation>το pa_context_set_source_output_mute() απέτυχε</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="98"/> - <source>pa_context_kill_source_output() failed</source> - <translation>το pa_context_kill_source_output() απέτυχε</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="125"/> - <source>pa_context_move_source_output_by_index() failed</source> - <translation>το pa_context_move_source_output_by_index() απέτυχε</translation> - </message> -</context> -<context> - <name>SourceWidget</name> - <message> - <location filename="../sourcewidget.cc" line="35"/> - <source>pa_context_set_source_volume_by_index() failed</source> - <translation>το pa_context_set_source_volume_by_index() απέτυχε</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="50"/> - <source>pa_context_set_source_mute_by_index() failed</source> - <translation>το pa_context_set_source_mute_by_index() απέτυχε</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="64"/> - <source>pa_context_set_default_source() failed</source> - <translation>το pa_context_set_default_source() απέτυχε</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="80"/> - <source>pa_context_set_source_port_by_index() failed</source> - <translation>το pa_context_set_source_port_by_index() απέτυχε</translation> - </message> -</context> -<context> - <name>StreamWidget</name> - <message> - <location filename="../streamwidget.ui" line="14"/> - <source>Form</source> - <translation>Φόρμα</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="32"/> - <source>Device Title</source> - <translation>Τίτλος συσκευής</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="52"/> - <source>direction</source> - <translation>κατεύθυνση</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="59"/> - <source>device</source> - <translation>συσκευή</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="66"/> - <source>Mute audio</source> - <translation>Σίγαση ήχου</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="79"/> - <source>Lock channels together</source> - <translation>Κλείδωμα των καναλιών μαζί</translation> - </message> - <message> - <location filename="../streamwidget.cc" line="34"/> - <source>Terminate</source> - <translation>Τερματισμός</translation> - </message> -</context> -</TS> diff --git a/src/translations/pavucontrol-qt_es.desktop.yaml b/src/translations/pavucontrol-qt_es.desktop.yaml deleted file mode 100644 index 3c4ced8..0000000 --- a/src/translations/pavucontrol-qt_es.desktop.yaml +++ /dev/null @@ -1,3 +0,0 @@ -Desktop Entry/Name: "Control de volumen de PulseAudio" -Desktop Entry/GenericName: "Control de volumen" -Desktop Entry/Comment: "Ajustar el nivel del volumen" diff --git a/src/translations/pavucontrol-qt_es.ts b/src/translations/pavucontrol-qt_es.ts deleted file mode 100644 index bb15cdd..0000000 --- a/src/translations/pavucontrol-qt_es.ts +++ /dev/null @@ -1,739 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE TS> -<TS version="2.1" language="es"> -<context> - <name>CardWidget</name> - <message> - <location filename="../cardwidget.ui" line="14"/> - <source>Form</source> - <translation>Formulario</translation> - </message> - <message> - <location filename="../cardwidget.ui" line="29"/> - <source>Card Name</source> - <translation>Nombre de la tarjeta</translation> - </message> - <message> - <location filename="../cardwidget.ui" line="47"/> - <source>Profile:</source> - <translation>Perfil:</translation> - </message> - <message> - <location filename="../cardwidget.cc" line="67"/> - <source>pa_context_set_card_profile_by_index() failed</source> - <translation>pa_context_set_card_profile_by_index() ha fallado</translation> - </message> -</context> -<context> - <name>Channel</name> - <message> - <location filename="../channel.cc" line="89"/> - <source>%1% (%2dB)</source> - <comment>volume slider label [X% (YdB)]</comment> - <translation>%1 % (%2 dB)</translation> - </message> - <message> - <location filename="../channel.cc" line="93"/> - <source>%1%</source> - <comment>volume slider label [X%]</comment> - <translation>%1 %</translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Silence</small></source> - <translation><small>Silencio</small></translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Min</small></source> - <translation><small>Mín</small></translation> - </message> - <message> - <location filename="../channel.cc" line="162"/> - <source><small>100% (0dB)</small></source> - <translation><small>100 % (0 dB)</small></translation> - </message> - <message> - <location filename="../channel.cc" line="165"/> - <source><small><i>Base</i></small></source> - <translation><small><i>Base</i></small></translation> - </message> -</context> -<context> - <name>ChannelWidget</name> - <message> - <location filename="../channelwidget.ui" line="14"/> - <source>Form</source> - <translation>Formulario</translation> - </message> - <message> - <location filename="../channelwidget.ui" line="20"/> - <source><b>left-front</b></source> - <translation><b>frente-izquierda</b></translation> - </message> - <message> - <location filename="../channelwidget.ui" line="34"/> - <source><small>50%</small></source> - <translation><small>50 %</small></translation> - </message> -</context> -<context> - <name>DeviceWidget</name> - <message> - <location filename="../devicewidget.ui" line="14"/> - <source>Form</source> - <translation>Formulario</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="36"/> - <source>Device Title</source> - <translation>Título del dispositivo</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="56"/> - <source>Mute audio</source> - <translation>Silenciar el sonido</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="69"/> - <source>Lock channels together</source> - <translation>Bloquear juntos los canales</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="85"/> - <source>Set as fallback</source> - <translation>Establecer como alternativa</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="103"/> - <source><b>Port:</b></source> - <translation><b>Puerto:</b></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="126"/> - <source>Show advanced options</source> - <translation>Mostrar opciones avanzadas</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="172"/> - <source>PCM</source> - <translation>PCM</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="182"/> - <source>AC3</source> - <translation>AC3</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="189"/> - <source>EAC3</source> - <translation>EAC3</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="196"/> - <source>DTS</source> - <translation>DTS</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="203"/> - <source>MPEG</source> - <translation>MPEG</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="210"/> - <source>AAC</source> - <translation>AAC</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="238"/> - <source><b>Latency offset:</b></source> - <translation><b>Desviación de la latencia:</b></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="245"/> - <source> ms</source> - <translation> ms</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="41"/> - <source>Rename device...</source> - <translation>Cambiar nombre del dispositivo…</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="155"/> - <source>pa_context_set_port_latency_offset() failed</source> - <translation>pa_context_set_port_latency_offset() ha fallado</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="226"/> - <source>Sorry, but device renaming is not supported.</source> - <translation>No se admite el cambio de nombre del dispositivo.</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="227"/> - <source>You need to load module-device-manager in the PulseAudio server in order to rename devices</source> - <translation>Necesita cargar module-device-manager en el servidor de PulseAudio para cambiar los nombres de los dispositivos</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="233"/> - <source>Rename device %1 to:</source> - <translation>Cambiar nombre del dispositivo %1 a:</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="240"/> - <source>pa_ext_device_manager_set_device_description() failed</source> - <translation>pa_ext_device_manager_set_device_description() ha fallado</translation> - </message> -</context> -<context> - <name>MainWindow</name> - <message> - <location filename="../mainwindow.ui" line="14"/> - <source>Volume Control</source> - <translation>Control de volumen</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="28"/> - <source>&Playback</source> - <translation>&Reproducción</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="55"/> - <source><i>No application is currently playing audio.</i></source> - <translation><i>Ninguna aplicación está actualmente reproduciendo sonidos.</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="66"/> - <location filename="../mainwindow.ui" line="131"/> - <location filename="../mainwindow.ui" line="196"/> - <location filename="../mainwindow.ui" line="261"/> - <source>Show:</source> - <translation>Mostrar:</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="74"/> - <location filename="../mainwindow.ui" line="139"/> - <source>All Streams</source> - <translation>Todos los flujos</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="79"/> - <location filename="../mainwindow.ui" line="144"/> - <source>Applications</source> - <translation>Aplicaciones</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="84"/> - <location filename="../mainwindow.ui" line="149"/> - <source>Virtual Streams</source> - <translation>Flujos virtuales</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="93"/> - <source>&Recording</source> - <translation>&Grabación</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="120"/> - <source><i>No application is currently recording audio.</i></source> - <translation><i>Ninguna aplicación está actualmente grabando audio.</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="158"/> - <source>&Output Devices</source> - <translation>Dispositivos de &salida</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="185"/> - <source><i>No output devices available</i></source> - <translation><i>No hay dispositivos de salida disponibles</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="204"/> - <source>All Output Devices</source> - <translation>Todos los dispositivos de salida</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="209"/> - <source>Hardware Output Devices</source> - <translation>Dispositivos de salida por hardware</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="214"/> - <source>Virtual Output Devices</source> - <translation>Dispositivos de salida virtuales</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="223"/> - <source>&Input Devices</source> - <translation>&Dispositivos de entrada</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="250"/> - <source><i>No input devices available</i></source> - <translation><i>No hay dispositivos de entrada disponibles</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="269"/> - <source>All Input Devices</source> - <translation>Todos los dispositivos de entrada</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="274"/> - <source>All Except Monitors</source> - <translation>Todos excepto los monitores</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="279"/> - <source>Hardware Input Devices</source> - <translation>Dispositivos de entrada por hardware</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="284"/> - <source>Virtual Input Devices</source> - <translation>Dispositivos de entrada virtuales</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="289"/> - <source>Monitors</source> - <translation>Monitores</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="298"/> - <source>&Configuration</source> - <translation>&Configuración</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="325"/> - <source><i>No cards available for configuration</i></source> - <translation><i>No hay tarjetas disponibles para configurar</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="336"/> - <source>Show volume meters</source> - <translation>Mostrar los medidores de volumen</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="347"/> - <source>...</source> - <translation>...</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="159"/> - <source> (plugged in)</source> - <translation> (conectado)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="163"/> - <location filename="../mainwindow.cc" line="257"/> - <source> (unavailable)</source> - <translation> (no disponible)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="165"/> - <location filename="../mainwindow.cc" line="254"/> - <source> (unplugged)</source> - <translation> (desconectado)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="388"/> - <source>Failed to read data from stream</source> - <translation>Fallo al leer datos del flujo</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="432"/> - <source>Peak detect</source> - <translation>Detección de picos</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="433"/> - <source>Failed to create monitoring stream</source> - <translation>Fallo al crear flujo de monitoreo</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="448"/> - <source>Failed to connect monitoring stream</source> - <translation>Fallo al conectarse al flujo de monitoreo</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="587"/> - <source>Ignoring sink-input due to it being designated as an event and thus handled by the Event widget</source> - <translation>Se ignora la entrada del receptor por haberse designado como un suceso, siendo por tanto gestionado por la miniaplicación Sucesos</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="759"/> - <source>System Sounds</source> - <translation>Sonidos del sistema</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="1089"/> - <source>Establishing connection to PulseAudio. Please wait...</source> - <translation>Estableciendo la conexión con PulseAudio. Espere…</translation> - </message> -</context> -<context> - <name>QObject</name> - <message> - <location filename="../pavucontrol.cc" line="66"/> - <source>Error</source> - <translation>Error</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="87"/> - <source>Card callback failure</source> - <translation>Fallo en la devolución de llamada de la tarjeta</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="110"/> - <source>Sink callback failure</source> - <translation>Fallo en la devolución de llamada al receptor</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="133"/> - <source>Source callback failure</source> - <translation>Fallo en la devolución de llamada a la fuente</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="152"/> - <source>Sink input callback failure</source> - <translation>Fallo en la devolución de llamada de la entrada del receptor</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="171"/> - <source>Source output callback failure</source> - <translation>Fallo en la devolución de llamada de la salida de la fuente</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="211"/> - <source>Client callback failure</source> - <translation>Fallo en la devolución de llamada al cliente</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="227"/> - <source>Server info callback failure</source> - <translation>Fallo en la devolución de llamada por información del servidor</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="245"/> - <location filename="../pavucontrol.cc" line="542"/> - <source>Failed to initialize stream_restore extension: %s</source> - <translation>Fallo al iniciar la extensión stream_restore: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="263"/> - <source>pa_ext_stream_restore_read() failed</source> - <translation>pa_ext_stream_restore_read() ha fallado</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="281"/> - <location filename="../pavucontrol.cc" line="556"/> - <source>Failed to initialize device restore extension: %s</source> - <translation>Error al inicializar la extensión de restauración del dispositivo: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="302"/> - <source>pa_ext_device_restore_read_sink_formats() failed</source> - <translation>pa_ext_device_restore_read_sink_formats() ha fallado</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="320"/> - <location filename="../pavucontrol.cc" line="569"/> - <source>Failed to initialize device manager extension: %s</source> - <translation>Error al inicializar la extensión de gestión del dispositivo: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="339"/> - <source>pa_ext_device_manager_read() failed</source> - <translation>pa_ext_device_manager_read() ha fallado</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="356"/> - <source>pa_context_get_sink_info_by_index() failed</source> - <translation>pa_context_get_sink_info_by_index() ha fallado</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="369"/> - <source>pa_context_get_source_info_by_index() failed</source> - <translation>pa_context_get_source_info_by_index() ha fallado</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="382"/> - <location filename="../pavucontrol.cc" line="395"/> - <source>pa_context_get_sink_input_info() failed</source> - <translation>pa_context_get_sink_input_info() ha fallado</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="408"/> - <source>pa_context_get_client_info() failed</source> - <translation>pa_context_get_client_info() ha fallado</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="418"/> - <location filename="../pavucontrol.cc" line="483"/> - <source>pa_context_get_server_info() failed</source> - <translation>pa_context_get_server_info() ha fallado</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="431"/> - <source>pa_context_get_card_info_by_index() failed</source> - <translation>pa_context_get_card_info_by_index() ha fallado</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="474"/> - <source>pa_context_subscribe() failed</source> - <translation>pa_context_subscribe() ha fallado</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="490"/> - <source>pa_context_client_info_list() failed</source> - <translation>pa_context_client_info_list() ha fallado</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="497"/> - <source>pa_context_get_card_info_list() failed</source> - <translation>pa_context_get_card_info_list() ha fallado</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="504"/> - <source>pa_context_get_sink_info_list() failed</source> - <translation>pa_context_get_sink_info_list() ha fallado</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="511"/> - <source>pa_context_get_source_info_list() failed</source> - <translation>pa_context_get_source_info_list() ha fallado</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="518"/> - <source>pa_context_get_sink_input_info_list() failed</source> - <translation>pa_context_get_sink_input_info_list() ha fallado</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="525"/> - <source>pa_context_get_source_output_info_list() failed</source> - <translation>pa_context_get_source_output_info_list() ha fallado</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="584"/> - <location filename="../pavucontrol.cc" line="635"/> - <source>Connection failed, attempting reconnect</source> - <translation>La conexión ha fallado; intentando reconectar</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="607"/> - <location filename="../pavucontrol.cc" line="664"/> - <source>PulseAudio Volume Control</source> - <translation>Control de volumen de PulseAudio</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="622"/> - <source>Connection to PulseAudio failed. Automatic retry in 5s - -In this case this is likely because PULSE_SERVER in the Environment/X11 Root Window Properties -or default-server in client.conf is misconfigured. -This situation can also arrise when PulseAudio crashed and left stale details in the X11 Root Window. -If this is the case, then PulseAudio should autospawn again, or if this is not configured you should -run start-pulseaudio-x11 manually.</source> - <translation>La conexión a PulseAudio ha fallado. Reintento automático en 5s - -En este caso es probable porque PULSE_SERVER en las propiedades de Entorno/Ventana raíz de X11 -o servidor por omisión en client.conf esté mal configurada. -Esta situación también puede surgir cuando PulseAudio ha fallado y dejado restos en la Ventana raíz de X11. -Si este es el caso, entonces PulseAudio debería reiniciarse de nuevo, o, si esto no está configurado, usted debería -ejecutar start-pulseaudio-x11 manualmente.</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="672"/> - <source>Select a specific tab on load.</source> - <translation>Seleccionar una pestaña específica al cargar.</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="675"/> - <source>Retry forever if pa quits (every 5 seconds).</source> - <translation>Reintentar indefinidamente si pa termina (cada 5 segundos).</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="678"/> - <source>Maximize the window.</source> - <translation>Maximizar la ventana.</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="703"/> - <source>Fatal Error: Unable to connect to PulseAudio</source> - <translation>Error fatal: no se puede reconectar con PulseAudio</translation> - </message> -</context> -<context> - <name>RoleWidget</name> - <message> - <location filename="../rolewidget.cc" line="59"/> - <source>pa_ext_stream_restore_write() failed</source> - <translation>pa_ext_stream_restore_write() ha fallado</translation> - </message> -</context> -<context> - <name>SinkInputWidget</name> - <message> - <location filename="../sinkinputwidget.cc" line="36"/> - <source>on</source> - <translation>encendido</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="39"/> - <source>Terminate Playback</source> - <translation>Terminar la reproducción</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="53"/> - <source>Unknown output</source> - <translation>Salida desconocida</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="64"/> - <source>pa_context_set_sink_input_volume() failed</source> - <translation>pa_context_set_sink_input_volume() ha fallado</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="79"/> - <source>pa_context_set_sink_input_mute() failed</source> - <translation>pa_context_set_sink_input_mute() ha fallado</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="89"/> - <source>pa_context_kill_sink_input() failed</source> - <translation>pa_context_kill_sink_input() ha fallado</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="114"/> - <source>pa_context_move_sink_input_by_index() failed</source> - <translation>pa_context_move_sink_input_by_index() ha fallado</translation> - </message> -</context> -<context> - <name>SinkWidget</name> - <message> - <location filename="../sinkwidget.cc" line="81"/> - <source>pa_context_set_sink_volume_by_index() failed</source> - <translation>pa_context_set_sink_volume_by_index() ha fallado</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="96"/> - <source>pa_context_set_sink_mute_by_index() failed</source> - <translation>pa_context_set_sink_mute_by_index() ha fallado</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="110"/> - <source>pa_context_set_default_sink() failed</source> - <translation>pa_context_set_default_sink() ha fallado</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="126"/> - <source>pa_context_set_sink_port_by_index() failed</source> - <translation>pa_context_set_sink_port_by_index() ha fallado</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="166"/> - <source>pa_ext_device_restore_save_sink_formats() failed</source> - <translation>pa_ext_device_restore_save_sink_formats() ha fallado</translation> - </message> -</context> -<context> - <name>SourceOutputWidget</name> - <message> - <location filename="../sourceoutputwidget.cc" line="35"/> - <source>from</source> - <translation>desde</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="39"/> - <source>Terminate Recording</source> - <translation>Terminar la grabación</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="60"/> - <source>Unknown input</source> - <translation>Entrada desconocida</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="72"/> - <source>pa_context_set_source_output_volume() failed</source> - <translation>pa_context_set_source_output_volume() ha fallado</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="87"/> - <source>pa_context_set_source_output_mute() failed</source> - <translation>pa_context_set_source_output_mute() ha fallado</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="98"/> - <source>pa_context_kill_source_output() failed</source> - <translation>pa_context_kill_source_output() ha fallado</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="125"/> - <source>pa_context_move_source_output_by_index() failed</source> - <translation>pa_context_move_source_output_by_index() ha fallado</translation> - </message> -</context> -<context> - <name>SourceWidget</name> - <message> - <location filename="../sourcewidget.cc" line="35"/> - <source>pa_context_set_source_volume_by_index() failed</source> - <translation>pa_context_set_source_volume_by_index() ha fallado</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="50"/> - <source>pa_context_set_source_mute_by_index() failed</source> - <translation>pa_context_set_source_mute_by_index() ha fallado</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="64"/> - <source>pa_context_set_default_source() failed</source> - <translation>pa_context_set_default_source() ha fallado</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="80"/> - <source>pa_context_set_source_port_by_index() failed</source> - <translation>pa_context_set_source_port_by_index() ha fallado</translation> - </message> -</context> -<context> - <name>StreamWidget</name> - <message> - <location filename="../streamwidget.ui" line="14"/> - <source>Form</source> - <translation>Formulario</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="32"/> - <source>Device Title</source> - <translation>Título del dispositivo</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="52"/> - <source>direction</source> - <translation>dirección</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="59"/> - <source>device</source> - <translation>dispositivo</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="66"/> - <source>Mute audio</source> - <translation>Silenciar el sonido</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="79"/> - <source>Lock channels together</source> - <translation>Sincronizar canales</translation> - </message> - <message> - <location filename="../streamwidget.cc" line="34"/> - <source>Terminate</source> - <translation>Terminar</translation> - </message> -</context> -</TS> diff --git a/src/translations/pavucontrol-qt_et.desktop.yaml b/src/translations/pavucontrol-qt_et.desktop.yaml deleted file mode 100644 index 8b100d7..0000000 --- a/src/translations/pavucontrol-qt_et.desktop.yaml +++ /dev/null @@ -1,3 +0,0 @@ -Desktop Entry/Name: "PulseAudio helitugevuse juhtimine" -Desktop Entry/GenericName: "Helitugevuse juhtimine" -Desktop Entry/Comment: "Seadista heli valjust" diff --git a/src/translations/pavucontrol-qt_et.ts b/src/translations/pavucontrol-qt_et.ts deleted file mode 100644 index 34b5cf3..0000000 --- a/src/translations/pavucontrol-qt_et.ts +++ /dev/null @@ -1,739 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE TS> -<TS version="2.1" language="et"> -<context> - <name>CardWidget</name> - <message> - <location filename="../cardwidget.ui" line="14"/> - <source>Form</source> - <translation>Vorm</translation> - </message> - <message> - <location filename="../cardwidget.ui" line="29"/> - <source>Card Name</source> - <translation>Kaardi nimi</translation> - </message> - <message> - <location filename="../cardwidget.ui" line="47"/> - <source>Profile:</source> - <translation>Profiil:</translation> - </message> - <message> - <location filename="../cardwidget.cc" line="67"/> - <source>pa_context_set_card_profile_by_index() failed</source> - <translation>pa_context_set_card_profile_by_index() päring nurjus</translation> - </message> -</context> -<context> - <name>Channel</name> - <message> - <location filename="../channel.cc" line="89"/> - <source>%1% (%2dB)</source> - <comment>volume slider label [X% (YdB)]</comment> - <translation>%1% (%2dB)</translation> - </message> - <message> - <location filename="../channel.cc" line="93"/> - <source>%1%</source> - <comment>volume slider label [X%]</comment> - <translation>%1%</translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Silence</small></source> - <translation><small>Vaikus</small></translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Min</small></source> - <translation><small>Vaikne</small></translation> - </message> - <message> - <location filename="../channel.cc" line="162"/> - <source><small>100% (0dB)</small></source> - <translation><small>100% (0dB)</small></translation> - </message> - <message> - <location filename="../channel.cc" line="165"/> - <source><small><i>Base</i></small></source> - <translation><small><i>Tavavaljus</i></small></translation> - </message> -</context> -<context> - <name>ChannelWidget</name> - <message> - <location filename="../channelwidget.ui" line="14"/> - <source>Form</source> - <translation>Vorm</translation> - </message> - <message> - <location filename="../channelwidget.ui" line="20"/> - <source><b>left-front</b></source> - <translation><b>vasak-esimene</b></translation> - </message> - <message> - <location filename="../channelwidget.ui" line="34"/> - <source><small>50%</small></source> - <translation><small>50%</small></translation> - </message> -</context> -<context> - <name>DeviceWidget</name> - <message> - <location filename="../devicewidget.ui" line="14"/> - <source>Form</source> - <translation>Vorm</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="36"/> - <source>Device Title</source> - <translation>Seadme pealkiri</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="56"/> - <source>Mute audio</source> - <translation>Summuta heli</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="69"/> - <source>Lock channels together</source> - <translation>Liida kanalid kokku</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="85"/> - <source>Set as fallback</source> - <translation>Määra varuvariandiks</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="103"/> - <source><b>Port:</b></source> - <translation><b>Port:</b></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="126"/> - <source>Show advanced options</source> - <translation>Näita lisaseadistusi</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="172"/> - <source>PCM</source> - <translation>PCM</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="182"/> - <source>AC3</source> - <translation>AC3</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="189"/> - <source>EAC3</source> - <translation>EAC3</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="196"/> - <source>DTS</source> - <translation>DTS</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="203"/> - <source>MPEG</source> - <translation>MPEG</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="210"/> - <source>AAC</source> - <translation>AAC</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="238"/> - <source><b>Latency offset:</b></source> - <translation><b>Viivituse nihe:</b></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="245"/> - <source> ms</source> - <translation> ms</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="41"/> - <source>Rename device...</source> - <translation>Anna seadmele uus nimi...</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="155"/> - <source>pa_context_set_port_latency_offset() failed</source> - <translation>pa_context_set_port_latency_offset() ebaõnnestus</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="226"/> - <source>Sorry, but device renaming is not supported.</source> - <translation>Vabandus, aga seadmele uue nime andmine pole hetkel toetatud.</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="227"/> - <source>You need to load module-device-manager in the PulseAudio server in order to rename devices</source> - <translation>Seadmete nimede muutmiseks peab PulseAudio serveris olema laaditud module-device-manager moodul</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="233"/> - <source>Rename device %1 to:</source> - <translation>Muuda %1 seadme uueks nimeks:</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="240"/> - <source>pa_ext_device_manager_set_device_description() failed</source> - <translation>pa_ext_device_manager_set_device_description() ebaõnnestus</translation> - </message> -</context> -<context> - <name>MainWindow</name> - <message> - <location filename="../mainwindow.ui" line="14"/> - <source>Volume Control</source> - <translation>Helivaljuse juhtimine</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="55"/> - <source><i>No application is currently playing audio.</i></source> - <translation><i>Mitte ükski seade hetkel ei esita heli.</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="66"/> - <location filename="../mainwindow.ui" line="131"/> - <location filename="../mainwindow.ui" line="196"/> - <location filename="../mainwindow.ui" line="261"/> - <source>Show:</source> - <translation>Näita:</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="74"/> - <location filename="../mainwindow.ui" line="139"/> - <source>All Streams</source> - <translation>Kõiki helivoogusid</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="79"/> - <location filename="../mainwindow.ui" line="144"/> - <source>Applications</source> - <translation>Rakendusi</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="84"/> - <location filename="../mainwindow.ui" line="149"/> - <source>Virtual Streams</source> - <translation>Virtuaalseid helivoogusid</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="120"/> - <source><i>No application is currently recording audio.</i></source> - <translation><i>Mitte ükski seade hetkel ei salvesta heli.</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="185"/> - <source><i>No output devices available</i></source> - <translation><i>Väljudseadmeid ei leidu</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="204"/> - <source>All Output Devices</source> - <translation>Kõiki väljundseadmeid</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="209"/> - <source>Hardware Output Devices</source> - <translation>Raudvaralisi väljundseadmeid</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="214"/> - <source>Virtual Output Devices</source> - <translation>Virtuaalseid väljundseadmeid</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="28"/> - <source>&Playback</source> - <translation>Heli &esitamine</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="93"/> - <source>&Recording</source> - <translation>Heli &salvestamine</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="158"/> - <source>&Output Devices</source> - <translation>&Väljundseadmed</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="223"/> - <source>&Input Devices</source> - <translation>S&isendseadmed</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="250"/> - <source><i>No input devices available</i></source> - <translation><i>Sisendseadmeid ei leidu</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="269"/> - <source>All Input Devices</source> - <translation>Kõiki sisendseadmeid</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="274"/> - <source>All Except Monitors</source> - <translation>Kõiki peale monitoride</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="279"/> - <source>Hardware Input Devices</source> - <translation>Raudvara-põhiseid sisendseadmeid</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="284"/> - <source>Virtual Input Devices</source> - <translation>Virtuaalseid sisendseadmeid</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="289"/> - <source>Monitors</source> - <translation>Monitore</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="298"/> - <source>&Configuration</source> - <translation>Sea&distused</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="325"/> - <source><i>No cards available for configuration</i></source> - <translation><i>Ei leidu ühtegi seadistatavat helikaarti</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="336"/> - <source>Show volume meters</source> - <translation>Kuva helivaljuse näidikuid</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="347"/> - <source>...</source> - <translation>...</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="159"/> - <source> (plugged in)</source> - <translation> (ühendatud)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="163"/> - <location filename="../mainwindow.cc" line="257"/> - <source> (unavailable)</source> - <translation> (pole saadaval)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="165"/> - <location filename="../mainwindow.cc" line="254"/> - <source> (unplugged)</source> - <translation> (ei ole ühendatud)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="388"/> - <source>Failed to read data from stream</source> - <translation>Helivoost ei õnnestunud teavet lugeda</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="432"/> - <source>Peak detect</source> - <translation>Kasuta tippvaljuse tuvastamist</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="433"/> - <source>Failed to create monitoring stream</source> - <translation>Kontrollvoo loomine ei õnnestunud</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="448"/> - <source>Failed to connect monitoring stream</source> - <translation>Kontrollvooga ühendamine ei õnnestunud</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="587"/> - <source>Ignoring sink-input due to it being designated as an event and thus handled by the Event widget</source> - <translation>Kuna ta on määratud sündmuseks, siis eiran neelusisendit ja käsitlen seda sündmuste vidina vahendusel</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="759"/> - <source>System Sounds</source> - <translation>Süsteemihelid</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="1089"/> - <source>Establishing connection to PulseAudio. Please wait...</source> - <translation>Ühendan PulseAudio taustateenusega. Palun oota...</translation> - </message> -</context> -<context> - <name>QObject</name> - <message> - <location filename="../pavucontrol.cc" line="66"/> - <source>Error</source> - <translation>Viga</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="87"/> - <source>Card callback failure</source> - <translation>Tagasiside kaardiga ei toimi</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="110"/> - <source>Sink callback failure</source> - <translation>Tagasiside neelus ei toimi</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="133"/> - <source>Source callback failure</source> - <translation>Tagasiside helivoo allikaga ei toimi</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="152"/> - <source>Sink input callback failure</source> - <translation>Tagasiside neelu sisendiga ei toimi</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="171"/> - <source>Source output callback failure</source> - <translation>Tagasiside helivoo väljundiga ei toimi</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="211"/> - <source>Client callback failure</source> - <translation>Tagasiside kliendiga ei toimi</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="227"/> - <source>Server info callback failure</source> - <translation>Tagasiside serveri teabega ei toimi</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="245"/> - <location filename="../pavucontrol.cc" line="542"/> - <source>Failed to initialize stream_restore extension: %s</source> - <translation>stream_restore laiendust ei õnnestu käivitada: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="263"/> - <source>pa_ext_stream_restore_read() failed</source> - <translation>pa_ext_stream_restore_read() ebaõnnestus</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="281"/> - <location filename="../pavucontrol.cc" line="556"/> - <source>Failed to initialize device restore extension: %s</source> - <translation>Seadme taastamise laiendust ei õnnestu käivitada: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="302"/> - <source>pa_ext_device_restore_read_sink_formats() failed</source> - <translation>pa_ext_device_restore_read_sink_formats() ebaõnnestus</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="320"/> - <location filename="../pavucontrol.cc" line="569"/> - <source>Failed to initialize device manager extension: %s</source> - <translation>Seadme haldamise laiendust ei õnnestu käivitada: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="339"/> - <source>pa_ext_device_manager_read() failed</source> - <translation>pa_ext_device_manager_read() ebaõnnestus</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="356"/> - <source>pa_context_get_sink_info_by_index() failed</source> - <translation>pa_context_get_sink_info_by_index() ebaõnnestus</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="369"/> - <source>pa_context_get_source_info_by_index() failed</source> - <translation>pa_context_get_source_info_by_index() ebaõnnestus</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="382"/> - <location filename="../pavucontrol.cc" line="395"/> - <source>pa_context_get_sink_input_info() failed</source> - <translation>pa_context_get_sink_input_info() ebaõnnestus</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="408"/> - <source>pa_context_get_client_info() failed</source> - <translation>pa_context_get_client_info() ebaõnnestus</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="418"/> - <location filename="../pavucontrol.cc" line="483"/> - <source>pa_context_get_server_info() failed</source> - <translation>pa_context_get_server_info() ebaõnnestus</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="431"/> - <source>pa_context_get_card_info_by_index() failed</source> - <translation>pa_context_get_card_info_by_index() ebaõnnestus</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="474"/> - <source>pa_context_subscribe() failed</source> - <translation>pa_context_subscribe() ebaõnnestus</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="490"/> - <source>pa_context_client_info_list() failed</source> - <translation>pa_context_client_info_list() ebaõnnestus</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="497"/> - <source>pa_context_get_card_info_list() failed</source> - <translation>pa_context_get_card_info_list() ebaõnnestus</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="504"/> - <source>pa_context_get_sink_info_list() failed</source> - <translation>pa_context_get_sink_info_list() ebaõnnestus</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="511"/> - <source>pa_context_get_source_info_list() failed</source> - <translation>pa_context_get_source_info_list() ebaõnnestus</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="518"/> - <source>pa_context_get_sink_input_info_list() failed</source> - <translation>pa_context_get_sink_input_info_list() ebaõnnestus</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="525"/> - <source>pa_context_get_source_output_info_list() failed</source> - <translation>pa_context_get_source_output_info_list() ebaõnnestus</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="584"/> - <location filename="../pavucontrol.cc" line="635"/> - <source>Connection failed, attempting reconnect</source> - <translation>Ühendamine ei õnnestunud, kohe proovin uuesti</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="607"/> - <location filename="../pavucontrol.cc" line="664"/> - <source>PulseAudio Volume Control</source> - <translation>PulseAudio helivaljuse seadistused</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="622"/> - <source>Connection to PulseAudio failed. Automatic retry in 5s - -In this case this is likely because PULSE_SERVER in the Environment/X11 Root Window Properties -or default-server in client.conf is misconfigured. -This situation can also arrise when PulseAudio crashed and left stale details in the X11 Root Window. -If this is the case, then PulseAudio should autospawn again, or if this is not configured you should -run start-pulseaudio-x11 manually.</source> - <translation>Ühendus PulseAudio taustateenusega katkes. Proovin uuesti 5 sekundi möödumisel. - -Antud juhul on tõenäoline, et PULSE_SERVER on kas Environment/X11 Root Window Properties all -või client.conf failis default-server on valesti seadistatud. -Samuti võib niisugune ühenduse katkemine tekkida, kui PulseAudio on kokku jooksnud ja X11 Root Window sisaldab vigaseid andmeid. -Viimasel juhul peaks PulseAudio protsess ise uuesti käivituma või see pole seadistustes lubatud, -siis palun käivita start-pulseaudio-x11 käsitsi.</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="672"/> - <source>Select a specific tab on load.</source> - <translation>Vali laetav kaart.</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="675"/> - <source>Retry forever if pa quits (every 5 seconds).</source> - <translation>Kui PulseAudio lõpetab töö, siis proovi lõputult uuesti (iga 5 sekundi järel).</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="678"/> - <source>Maximize the window.</source> - <translation>Suurenda aken.</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="703"/> - <source>Fatal Error: Unable to connect to PulseAudio</source> - <translation>Lõplik viga: PulseAudio taustateenusega ei saa ühendust</translation> - </message> -</context> -<context> - <name>RoleWidget</name> - <message> - <location filename="../rolewidget.cc" line="59"/> - <source>pa_ext_stream_restore_write() failed</source> - <translation>pa_ext_stream_restore_write() ebaõnnestus</translation> - </message> -</context> -<context> - <name>SinkInputWidget</name> - <message> - <location filename="../sinkinputwidget.cc" line="36"/> - <source>on</source> - <translation>sisse lülitatud</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="39"/> - <source>Terminate Playback</source> - <translation>Lõpeta heli esitamine</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="53"/> - <source>Unknown output</source> - <translation>Tundmatu väljund</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="64"/> - <source>pa_context_set_sink_input_volume() failed</source> - <translation>pa_context_set_sink_input_volume() ebaõnnestus</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="79"/> - <source>pa_context_set_sink_input_mute() failed</source> - <translation>pa_context_set_sink_input_mute() ebaõnnestus</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="89"/> - <source>pa_context_kill_sink_input() failed</source> - <translation>pa_context_kill_sink_input() ebaõnnestus</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="114"/> - <source>pa_context_move_sink_input_by_index() failed</source> - <translation>pa_context_move_sink_input_by_index() ebaõnnestus</translation> - </message> -</context> -<context> - <name>SinkWidget</name> - <message> - <location filename="../sinkwidget.cc" line="81"/> - <source>pa_context_set_sink_volume_by_index() failed</source> - <translation>pa_context_set_sink_volume_by_index() ebaõnnestus</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="96"/> - <source>pa_context_set_sink_mute_by_index() failed</source> - <translation>pa_context_set_sink_mute_by_index() ebaõnnestus</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="110"/> - <source>pa_context_set_default_sink() failed</source> - <translation>pa_context_set_default_sink() ebaõnnestus</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="126"/> - <source>pa_context_set_sink_port_by_index() failed</source> - <translation>pa_context_set_sink_port_by_index() ebaõnnestus</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="166"/> - <source>pa_ext_device_restore_save_sink_formats() failed</source> - <translation>pa_ext_device_restore_save_sink_formats() ebaõnnestus</translation> - </message> -</context> -<context> - <name>SourceOutputWidget</name> - <message> - <location filename="../sourceoutputwidget.cc" line="35"/> - <source>from</source> - <translation>seadmest</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="39"/> - <source>Terminate Recording</source> - <translation>Lõpeta salvestamine</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="60"/> - <source>Unknown input</source> - <translation>Tundmatu sisend</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="72"/> - <source>pa_context_set_source_output_volume() failed</source> - <translation>pa_context_set_source_output_volume() ebaõnnestus</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="87"/> - <source>pa_context_set_source_output_mute() failed</source> - <translation>pa_context_set_source_output_mute() ebaõnnestus</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="98"/> - <source>pa_context_kill_source_output() failed</source> - <translation>pa_context_kill_source_output() ebaõnnestus</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="125"/> - <source>pa_context_move_source_output_by_index() failed</source> - <translation>pa_context_move_source_output_by_index() ebaõnnestus</translation> - </message> -</context> -<context> - <name>SourceWidget</name> - <message> - <location filename="../sourcewidget.cc" line="35"/> - <source>pa_context_set_source_volume_by_index() failed</source> - <translation>pa_context_set_source_volume_by_index() ebaõnnestus</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="50"/> - <source>pa_context_set_source_mute_by_index() failed</source> - <translation>pa_context_set_source_mute_by_index() ebaõnnestus</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="64"/> - <source>pa_context_set_default_source() failed</source> - <translation>pa_context_set_default_source() ebaõnnestus</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="80"/> - <source>pa_context_set_source_port_by_index() failed</source> - <translation>pa_context_set_source_port_by_index() ebaõnnestus</translation> - </message> -</context> -<context> - <name>StreamWidget</name> - <message> - <location filename="../streamwidget.ui" line="14"/> - <source>Form</source> - <translation>Vorm</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="32"/> - <source>Device Title</source> - <translation>Seadme nimi</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="52"/> - <source>direction</source> - <translation>suund</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="59"/> - <source>device</source> - <translation>seade</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="66"/> - <source>Mute audio</source> - <translation>Summuta heli</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="79"/> - <source>Lock channels together</source> - <translation>Lukusta kanalid kokku</translation> - </message> - <message> - <location filename="../streamwidget.cc" line="34"/> - <source>Terminate</source> - <translation>Lõpeta esitamine</translation> - </message> -</context> -</TS> diff --git a/src/translations/pavucontrol-qt_fi.ts b/src/translations/pavucontrol-qt_fi.ts deleted file mode 100644 index 2b8d6a5..0000000 --- a/src/translations/pavucontrol-qt_fi.ts +++ /dev/null @@ -1,739 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE TS> -<TS version="2.1" language="fi"> -<context> - <name>CardWidget</name> - <message> - <location filename="../cardwidget.ui" line="14"/> - <source>Form</source> - <translation>Lomake</translation> - </message> - <message> - <location filename="../cardwidget.ui" line="29"/> - <source>Card Name</source> - <translation>Kortin nimi</translation> - </message> - <message> - <location filename="../cardwidget.ui" line="47"/> - <source>Profile:</source> - <translation>Profiili:</translation> - </message> - <message> - <location filename="../cardwidget.cc" line="67"/> - <source>pa_context_set_card_profile_by_index() failed</source> - <translation>pa_context_set_card_profile_by_index() epäonnistui</translation> - </message> -</context> -<context> - <name>Channel</name> - <message> - <location filename="../channel.cc" line="89"/> - <source>%1% (%2dB)</source> - <comment>volume slider label [X% (YdB)]</comment> - <translation>%1% (%2dB)</translation> - </message> - <message> - <location filename="../channel.cc" line="93"/> - <source>%1%</source> - <comment>volume slider label [X%]</comment> - <translation>%1%</translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Silence</small></source> - <translation><small>Hiljaisuus</small></translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Min</small></source> - <translation><small>Minimi</small></translation> - </message> - <message> - <location filename="../channel.cc" line="162"/> - <source><small>100% (0dB)</small></source> - <translation><small>100% (0dB)</small></translation> - </message> - <message> - <location filename="../channel.cc" line="165"/> - <source><small><i>Base</i></small></source> - <translation type="unfinished"><small><i>Perus</i></small></translation> - </message> -</context> -<context> - <name>ChannelWidget</name> - <message> - <location filename="../channelwidget.ui" line="14"/> - <source>Form</source> - <translation>Lomake</translation> - </message> - <message> - <location filename="../channelwidget.ui" line="20"/> - <source><b>left-front</b></source> - <translation><b>vasen-etu</b></translation> - </message> - <message> - <location filename="../channelwidget.ui" line="34"/> - <source><small>50%</small></source> - <translation><small>50%</small></translation> - </message> -</context> -<context> - <name>DeviceWidget</name> - <message> - <location filename="../devicewidget.ui" line="14"/> - <source>Form</source> - <translation>Lomake</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="36"/> - <source>Device Title</source> - <translation>Laitteen otsikko</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="56"/> - <source>Mute audio</source> - <translation>Vaimenna äänet</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="69"/> - <source>Lock channels together</source> - <translation>Lukitse kanavat yhteen</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="85"/> - <source>Set as fallback</source> - <translation>Aseta varalle</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="103"/> - <source><b>Port:</b></source> - <translation><b>Portti:</b></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="126"/> - <source>Show advanced options</source> - <translation>Näytä edistyneet asetukset</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="172"/> - <source>PCM</source> - <translation>PCM</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="182"/> - <source>AC3</source> - <translation>AC3</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="189"/> - <source>EAC3</source> - <translation>EAC3</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="196"/> - <source>DTS</source> - <translation>DTS</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="203"/> - <source>MPEG</source> - <translation>MPEG</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="210"/> - <source>AAC</source> - <translation>AAC</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="238"/> - <source><b>Latency offset:</b></source> - <translation><b>Viiveen kompensaatio:</b></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="245"/> - <source> ms</source> - <translation> ms</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="41"/> - <source>Rename device...</source> - <translation>Uudelleennimeä laite...</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="155"/> - <source>pa_context_set_port_latency_offset() failed</source> - <translation>pa_context_set_port_latency_offset() epäonnistui</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="226"/> - <source>Sorry, but device renaming is not supported.</source> - <translation>Laitteen uudelleennimeämistä ei tueta.</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="227"/> - <source>You need to load module-device-manager in the PulseAudio server in order to rename devices</source> - <translation>PulseAudio serverin module-device-manager täytyy olla ladattuna jotta laitteita voidaan uudelleennimetä</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="233"/> - <source>Rename device %1 to:</source> - <translation>Laitteen %1 uusi nimi:</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="240"/> - <source>pa_ext_device_manager_set_device_description() failed</source> - <translation>pa_ext_device_manager_set_device_description() epäonnistui</translation> - </message> -</context> -<context> - <name>MainWindow</name> - <message> - <location filename="../mainwindow.ui" line="14"/> - <source>Volume Control</source> - <translation>Äänenvoimakkuus</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="28"/> - <source>&Playback</source> - <translation>&Toisto</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="55"/> - <source><i>No application is currently playing audio.</i></source> - <translation><i>Yksikään sovellus ei tällä hetkellä toista ääntä.</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="66"/> - <location filename="../mainwindow.ui" line="131"/> - <location filename="../mainwindow.ui" line="196"/> - <location filename="../mainwindow.ui" line="261"/> - <source>Show:</source> - <translation>Näytä:</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="74"/> - <location filename="../mainwindow.ui" line="139"/> - <source>All Streams</source> - <translation>Kaikki äänilähteet</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="79"/> - <location filename="../mainwindow.ui" line="144"/> - <source>Applications</source> - <translation>Sovellukset</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="84"/> - <location filename="../mainwindow.ui" line="149"/> - <source>Virtual Streams</source> - <translation>Virtuaalilähteet</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="93"/> - <source>&Recording</source> - <translation>&Nauhoitus</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="120"/> - <source><i>No application is currently recording audio.</i></source> - <translation><i>Yksikään sovellus ei tällä hetkellä nauhoita ääntä.</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="158"/> - <source>&Output Devices</source> - <translation>Ul&ostulolaitteet</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="185"/> - <source><i>No output devices available</i></source> - <translation><i>Ulostulolaitteita ei saatavilla</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="204"/> - <source>All Output Devices</source> - <translation>Kaikki ulostulo laitteet</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="209"/> - <source>Hardware Output Devices</source> - <translation>Ulostulolaitteet</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="214"/> - <source>Virtual Output Devices</source> - <translation>Virtuaaliulostulolaitteet</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="223"/> - <source>&Input Devices</source> - <translation>S&isääntulolaitteet</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="250"/> - <source><i>No input devices available</i></source> - <translation><i>Sisääntulolaitteita ei saatavilla</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="269"/> - <source>All Input Devices</source> - <translation>Kaikki sisääntulolaitteet</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="274"/> - <source>All Except Monitors</source> - <translation>Kaikki paitsi näytöt</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="279"/> - <source>Hardware Input Devices</source> - <translation>Sisääntulolaitteet</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="284"/> - <source>Virtual Input Devices</source> - <translation>Virtuaalisisääntulolaitteet</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="289"/> - <source>Monitors</source> - <translation>Näytöt</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="298"/> - <source>&Configuration</source> - <translation>&Asetukset</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="325"/> - <source><i>No cards available for configuration</i></source> - <translation><i>Yhtäkään äänikorttia ei ole käytettävissä</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="336"/> - <source>Show volume meters</source> - <translation>Näytä äänenvoimakkuuden mittarit</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="347"/> - <source>...</source> - <translation>...</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="159"/> - <source> (plugged in)</source> - <translation> (liitetty)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="163"/> - <location filename="../mainwindow.cc" line="257"/> - <source> (unavailable)</source> - <translation> (ei saatavilla)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="165"/> - <location filename="../mainwindow.cc" line="254"/> - <source> (unplugged)</source> - <translation> (ei liitetty)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="388"/> - <source>Failed to read data from stream</source> - <translation>Datan lukeminen virrasta epäonnistui</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="432"/> - <source>Peak detect</source> - <translation>Huipun tunnistus</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="433"/> - <source>Failed to create monitoring stream</source> - <translation>Tarkkailuvirran luonti epäonnistui</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="448"/> - <source>Failed to connect monitoring stream</source> - <translation>Tarkkailuvirtaan yhdistäminen epäonnistui</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="587"/> - <source>Ignoring sink-input due to it being designated as an event and thus handled by the Event widget</source> - <translation>Jätetään huomiotta sink-syöte, sillä se on nimetty tapahtumaksi ja sen hoitaa Tapahtuma widgetti</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="759"/> - <source>System Sounds</source> - <translation>Järjestelmän äänet</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="1089"/> - <source>Establishing connection to PulseAudio. Please wait...</source> - <translation>Muodostetaan PulseAudio yhteyttä. Ole hyvä, ja odota...</translation> - </message> -</context> -<context> - <name>QObject</name> - <message> - <location filename="../pavucontrol.cc" line="66"/> - <source>Error</source> - <translation>Virhe</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="87"/> - <source>Card callback failure</source> - <translation>Kortin takaisinkutsu epäonnistui</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="110"/> - <source>Sink callback failure</source> - <translation>Nielun takaisinkutsu epäonnistui</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="133"/> - <source>Source callback failure</source> - <translation>Lähteen takaisinkutsu epäonnistui</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="152"/> - <source>Sink input callback failure</source> - <translation>Nielun sisääntulon takaisinkutsu epäonnistui</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="171"/> - <source>Source output callback failure</source> - <translation>Lähteen ulostulon takaisinkutsu epäonnistui</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="211"/> - <source>Client callback failure</source> - <translation>Asiakkaan takaisinkutsu</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="227"/> - <source>Server info callback failure</source> - <translation>Palvelintietojen takaisinkutsu epäonnistui</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="245"/> - <location filename="../pavucontrol.cc" line="542"/> - <source>Failed to initialize stream_restore extension: %s</source> - <translation>stream_restore-laajennoksen alustus epäonnistui: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="263"/> - <source>pa_ext_stream_restore_read() failed</source> - <translation>pa_ext_stream_restore_read() epäonnistui</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="281"/> - <location filename="../pavucontrol.cc" line="556"/> - <source>Failed to initialize device restore extension: %s</source> - <translation>Epäonnistuttiin alustamaan laitteen palatuslaajennos: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="302"/> - <source>pa_ext_device_restore_read_sink_formats() failed</source> - <translation>pa_ext_device_restore_read_sink_formats() epäonnistui</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="320"/> - <location filename="../pavucontrol.cc" line="569"/> - <source>Failed to initialize device manager extension: %s</source> - <translation>Epäonnistuttiin alustamaan laitehallinnan laajennos: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="339"/> - <source>pa_ext_device_manager_read() failed</source> - <translation>pa_ext_device_manager_read() epäonnistui</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="356"/> - <source>pa_context_get_sink_info_by_index() failed</source> - <translation>pa_context_get_sink_info_by_index() epäonnistui</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="369"/> - <source>pa_context_get_source_info_by_index() failed</source> - <translation>pa_context_get_source_info_by_index() epäonnistui</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="382"/> - <location filename="../pavucontrol.cc" line="395"/> - <source>pa_context_get_sink_input_info() failed</source> - <translation>pa_context_get_sink_input_info() epäonnistui</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="408"/> - <source>pa_context_get_client_info() failed</source> - <translation>pa_context_get_client_info() epäonnistui</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="418"/> - <location filename="../pavucontrol.cc" line="483"/> - <source>pa_context_get_server_info() failed</source> - <translation>pa_context_get_server_info() epäonnistui</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="431"/> - <source>pa_context_get_card_info_by_index() failed</source> - <translation>pa_context_get_card_info_by_index() epäonnistui</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="474"/> - <source>pa_context_subscribe() failed</source> - <translation>pa_context_subscribe() epäonnistui</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="490"/> - <source>pa_context_client_info_list() failed</source> - <translation>pa_context_client_info_list() epäonnistui</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="497"/> - <source>pa_context_get_card_info_list() failed</source> - <translation>pa_context_get_card_info_list() epäonnistui</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="504"/> - <source>pa_context_get_sink_info_list() failed</source> - <translation>pa_context_get_sink_info_list() epäonnistui</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="511"/> - <source>pa_context_get_source_info_list() failed</source> - <translation>pa_context_get_source_info_list() epäonnistui</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="518"/> - <source>pa_context_get_sink_input_info_list() failed</source> - <translation>pa_context_get_sink_input_info_list() epäonnistui</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="525"/> - <source>pa_context_get_source_output_info_list() failed</source> - <translation>pa_context_get_source_output_info_list() epäonnistui</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="584"/> - <location filename="../pavucontrol.cc" line="635"/> - <source>Connection failed, attempting reconnect</source> - <translation>Yhdistäminen epäonnistui, yritetään uudelleen</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="607"/> - <location filename="../pavucontrol.cc" line="664"/> - <source>PulseAudio Volume Control</source> - <translation>PulseAudion äänenvoimakkuuden hallinta</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="622"/> - <source>Connection to PulseAudio failed. Automatic retry in 5s - -In this case this is likely because PULSE_SERVER in the Environment/X11 Root Window Properties -or default-server in client.conf is misconfigured. -This situation can also arrise when PulseAudio crashed and left stale details in the X11 Root Window. -If this is the case, then PulseAudio should autospawn again, or if this is not configured you should -run start-pulseaudio-x11 manually.</source> - <translation>Yhdistäminen PulseAudioon epäonnistui. Yritetään automaattisesti 5s kuluttua - -Todennäköisesti PULSE_SEVER ympäristömuuttujissa tai X11 juuri-ikkunan asetukissa tai -oletuspalvelin client.conf-tiedostossa on väärin asetettu. -Näin voi käydä jos PulseAudio kaatuu ja jättää vanhoja tietoja X11 juuri-ikkunaan. -Tässä tapauksessa PulseAudion tulisi automaattisesti käynnistyä uudelleen, mutta jos näin ei ole -asetettu, käynnistä start-pulseaudio-x11 käsin.</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="672"/> - <source>Select a specific tab on load.</source> - <translation>Valitse välilehti latauksen yhteydessä.</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="675"/> - <source>Retry forever if pa quits (every 5 seconds).</source> - <translation>Yritä uudelleen jos pa lopettaa (joka 5 sekunti).</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="678"/> - <source>Maximize the window.</source> - <translation>Suurenna ikkuna.</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="703"/> - <source>Fatal Error: Unable to connect to PulseAudio</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>RoleWidget</name> - <message> - <location filename="../rolewidget.cc" line="59"/> - <source>pa_ext_stream_restore_write() failed</source> - <translation>pa_ext_stream_restore_write() epäonnistui</translation> - </message> -</context> -<context> - <name>SinkInputWidget</name> - <message> - <location filename="../sinkinputwidget.cc" line="36"/> - <source>on</source> - <translation>päällä</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="39"/> - <source>Terminate Playback</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="53"/> - <source>Unknown output</source> - <translation>Tuntematon ulostulo</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="64"/> - <source>pa_context_set_sink_input_volume() failed</source> - <translation>pa_context_set_sink_input_volume() epäonnistui</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="79"/> - <source>pa_context_set_sink_input_mute() failed</source> - <translation>pa_context_set_sink_input_mute() epäonnistui</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="89"/> - <source>pa_context_kill_sink_input() failed</source> - <translation>pa_context_kill_sink_input() epäonnistui</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="114"/> - <source>pa_context_move_sink_input_by_index() failed</source> - <translation>pa_context_move_sink_input_by_index() epäonnistui</translation> - </message> -</context> -<context> - <name>SinkWidget</name> - <message> - <location filename="../sinkwidget.cc" line="81"/> - <source>pa_context_set_sink_volume_by_index() failed</source> - <translation>pa_context_set_sink_volume_by_index() epäonnistui</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="96"/> - <source>pa_context_set_sink_mute_by_index() failed</source> - <translation>pa_context_set_sink_mute_by_index() epäonnistui</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="110"/> - <source>pa_context_set_default_sink() failed</source> - <translation>pa_context_set_default_sink() epäonnistui</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="126"/> - <source>pa_context_set_sink_port_by_index() failed</source> - <translation>pa_context_set_sink_port_by_index() epäonnistui</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="166"/> - <source>pa_ext_device_restore_save_sink_formats() failed</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>SourceOutputWidget</name> - <message> - <location filename="../sourceoutputwidget.cc" line="35"/> - <source>from</source> - <translation>lähteestä</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="39"/> - <source>Terminate Recording</source> - <translation>Pysäytä tallennus</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="60"/> - <source>Unknown input</source> - <translation>Tuntematon sisääntulo</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="72"/> - <source>pa_context_set_source_output_volume() failed</source> - <translation>pa_context_set_source_output_volume() epäonnistui</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="87"/> - <source>pa_context_set_source_output_mute() failed</source> - <translation>pa_context_set_source_output_mute() epäonnistui</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="98"/> - <source>pa_context_kill_source_output() failed</source> - <translation>pa_context_kill_source_output() epäonnistui</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="125"/> - <source>pa_context_move_source_output_by_index() failed</source> - <translation>pa_context_move_source_output_by_index() epäonnistui</translation> - </message> -</context> -<context> - <name>SourceWidget</name> - <message> - <location filename="../sourcewidget.cc" line="35"/> - <source>pa_context_set_source_volume_by_index() failed</source> - <translation>pa_context_set_source_volume_by_index() epäonnistui</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="50"/> - <source>pa_context_set_source_mute_by_index() failed</source> - <translation>pa_context_set_source_mute_by_index() epäonnistui</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="64"/> - <source>pa_context_set_default_source() failed</source> - <translation>pa_context_set_default_source() epäonnistui</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="80"/> - <source>pa_context_set_source_port_by_index() failed</source> - <translation>pa_context_set_source_port_by_index() epäonnistui</translation> - </message> -</context> -<context> - <name>StreamWidget</name> - <message> - <location filename="../streamwidget.ui" line="14"/> - <source>Form</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.ui" line="32"/> - <source>Device Title</source> - <translation>Laitteen nimi</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="52"/> - <source>direction</source> - <translation>suunta</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="59"/> - <source>device</source> - <translation>laite</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="66"/> - <source>Mute audio</source> - <translation>Mykistä ääni</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="79"/> - <source>Lock channels together</source> - <translation>Lukitse kanavat yhteen</translation> - </message> - <message> - <location filename="../streamwidget.cc" line="34"/> - <source>Terminate</source> - <translation>Lopeta toisto</translation> - </message> -</context> -</TS> diff --git a/src/translations/pavucontrol-qt_fr.desktop.yaml b/src/translations/pavucontrol-qt_fr.desktop.yaml deleted file mode 100644 index 2d068ec..0000000 --- a/src/translations/pavucontrol-qt_fr.desktop.yaml +++ /dev/null @@ -1,3 +0,0 @@ -Desktop Entry/Name: "Contrôle du volume PulseAudio" -Desktop Entry/GenericName: "Contrôle du volume" -Desktop Entry/Comment: "Ajuster le niveau de volume" diff --git a/src/translations/pavucontrol-qt_fr.ts b/src/translations/pavucontrol-qt_fr.ts deleted file mode 100644 index 4f4e696..0000000 --- a/src/translations/pavucontrol-qt_fr.ts +++ /dev/null @@ -1,739 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE TS> -<TS version="2.1" language="fr"> -<context> - <name>CardWidget</name> - <message> - <location filename="../cardwidget.ui" line="14"/> - <source>Form</source> - <translation>Formulaire</translation> - </message> - <message> - <location filename="../cardwidget.ui" line="29"/> - <source>Card Name</source> - <translation>Nom de la carte</translation> - </message> - <message> - <location filename="../cardwidget.ui" line="47"/> - <source>Profile:</source> - <translation>Profil :</translation> - </message> - <message> - <location filename="../cardwidget.cc" line="67"/> - <source>pa_context_set_card_profile_by_index() failed</source> - <translation>pa_context_set_card_profile_by_index() a échoué</translation> - </message> -</context> -<context> - <name>Channel</name> - <message> - <location filename="../channel.cc" line="89"/> - <source>%1% (%2dB)</source> - <comment>volume slider label [X% (YdB)]</comment> - <translation>%1% (%2dB)</translation> - </message> - <message> - <location filename="../channel.cc" line="93"/> - <source>%1%</source> - <comment>volume slider label [X%]</comment> - <translation>%1%</translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Silence</small></source> - <translation><small>Muet</small></translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Min</small></source> - <translation><small>Min</small></translation> - </message> - <message> - <location filename="../channel.cc" line="162"/> - <source><small>100% (0dB)</small></source> - <translation><small>100% (0dB)</small></translation> - </message> - <message> - <location filename="../channel.cc" line="165"/> - <source><small><i>Base</i></small></source> - <translation><small><i>Base </i></small></translation> - </message> -</context> -<context> - <name>ChannelWidget</name> - <message> - <location filename="../channelwidget.ui" line="14"/> - <source>Form</source> - <translation>Formulaire</translation> - </message> - <message> - <location filename="../channelwidget.ui" line="20"/> - <source><b>left-front</b></source> - <translation><b>avant-gauche</b></translation> - </message> - <message> - <location filename="../channelwidget.ui" line="34"/> - <source><small>50%</small></source> - <translation><small>50%</small></translation> - </message> -</context> -<context> - <name>DeviceWidget</name> - <message> - <location filename="../devicewidget.ui" line="14"/> - <source>Form</source> - <translation>Formulaire</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="36"/> - <source>Device Title</source> - <translation>Titre du périphérique</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="56"/> - <source>Mute audio</source> - <translation>Couper l'audio</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="69"/> - <source>Lock channels together</source> - <translation>Verrouiller les canaux ensemble</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="85"/> - <source>Set as fallback</source> - <translation>Définir comme solution de secours</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="103"/> - <source><b>Port:</b></source> - <translation><b>Port :</b></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="126"/> - <source>Show advanced options</source> - <translation>Afficher les options avancées</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="172"/> - <source>PCM</source> - <translation>PCM</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="182"/> - <source>AC3</source> - <translation>AC3</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="189"/> - <source>EAC3</source> - <translation>EAC3</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="196"/> - <source>DTS</source> - <translation>DTS</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="203"/> - <source>MPEG</source> - <translation>MPEG</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="210"/> - <source>AAC</source> - <translation>AAC</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="238"/> - <source><b>Latency offset:</b></source> - <translation><b>Offset de la latence :</b></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="245"/> - <source> ms</source> - <translation> ms</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="41"/> - <source>Rename device...</source> - <translation>Renommer le périphérique...</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="155"/> - <source>pa_context_set_port_latency_offset() failed</source> - <translation>pa_context_set_port_latency_offset() a échoué</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="226"/> - <source>Sorry, but device renaming is not supported.</source> - <translation>Désolé, le changement de nom du périphérique n'est pas pris en charge.</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="227"/> - <source>You need to load module-device-manager in the PulseAudio server in order to rename devices</source> - <translation>Vous devez charger module-device-manager dans le serveur PulseAudio afin de pouvoir renommer les périphériques</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="233"/> - <source>Rename device %1 to:</source> - <translation>Renommer le périphérique %1 en :</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="240"/> - <source>pa_ext_device_manager_set_device_description() failed</source> - <translation>pa_ext_device_manager_set_device_description() a échoué</translation> - </message> -</context> -<context> - <name>MainWindow</name> - <message> - <location filename="../mainwindow.ui" line="14"/> - <source>Volume Control</source> - <translation>Contrôle du volume</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="28"/> - <source>&Playback</source> - <translation>&Lecture</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="55"/> - <source><i>No application is currently playing audio.</i></source> - <translation><i>Aucune application ne joue actuellement du son.</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="66"/> - <location filename="../mainwindow.ui" line="131"/> - <location filename="../mainwindow.ui" line="196"/> - <location filename="../mainwindow.ui" line="261"/> - <source>Show:</source> - <translation>Afficher :</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="74"/> - <location filename="../mainwindow.ui" line="139"/> - <source>All Streams</source> - <translation>Tous les flux</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="79"/> - <location filename="../mainwindow.ui" line="144"/> - <source>Applications</source> - <translation>Applications</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="84"/> - <location filename="../mainwindow.ui" line="149"/> - <source>Virtual Streams</source> - <translation>Flux virtuels</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="93"/> - <source>&Recording</source> - <translation>&Enregistrement</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="120"/> - <source><i>No application is currently recording audio.</i></source> - <translation><i>Aucune application n'enregistre actuellement du son.</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="158"/> - <source>&Output Devices</source> - <translation>Périphériques de s&ortie</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="185"/> - <source><i>No output devices available</i></source> - <translation><i>Aucun périphérique de sortie disponible</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="204"/> - <source>All Output Devices</source> - <translation>Tous les périphériques de sortie</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="209"/> - <source>Hardware Output Devices</source> - <translation>Périphériques de sortie matériels</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="214"/> - <source>Virtual Output Devices</source> - <translation>Périphériques de sortie virtuels</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="223"/> - <source>&Input Devices</source> - <translation>Périphériques d'&entrée</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="250"/> - <source><i>No input devices available</i></source> - <translation><i>Aucun périphérique d'entrée disponible</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="269"/> - <source>All Input Devices</source> - <translation>Tous les périphériques d'entrée</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="274"/> - <source>All Except Monitors</source> - <translation>Tous sauf les écrans</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="279"/> - <source>Hardware Input Devices</source> - <translation>Périphériques d'entrée matériels</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="284"/> - <source>Virtual Input Devices</source> - <translation>Périphériques d'entrée virtuels</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="289"/> - <source>Monitors</source> - <translation>Écrans</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="298"/> - <source>&Configuration</source> - <translation>&Configuration</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="325"/> - <source><i>No cards available for configuration</i></source> - <translation><i>Aucune carte n'est disponible pour la configuration</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="336"/> - <source>Show volume meters</source> - <translation>Afficher les volumètres</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="347"/> - <source>...</source> - <translation>...</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="159"/> - <source> (plugged in)</source> - <translation> (branché)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="163"/> - <location filename="../mainwindow.cc" line="257"/> - <source> (unavailable)</source> - <translation> (non disponible)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="165"/> - <location filename="../mainwindow.cc" line="254"/> - <source> (unplugged)</source> - <translation> (débranché)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="388"/> - <source>Failed to read data from stream</source> - <translation>Échec de la lecture de données du flux</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="432"/> - <source>Peak detect</source> - <translation>Détection de crête</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="433"/> - <source>Failed to create monitoring stream</source> - <translation>Échec de la création du flux de surveillance</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="448"/> - <source>Failed to connect monitoring stream</source> - <translation>Échec de la connexion au flux de surveillance</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="587"/> - <source>Ignoring sink-input due to it being designated as an event and thus handled by the Event widget</source> - <translation>Ignorer l'entrée du récepteur car il est désigné comme événement et donc traité par le widget des événements</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="759"/> - <source>System Sounds</source> - <translation>Sons du système</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="1089"/> - <source>Establishing connection to PulseAudio. Please wait...</source> - <translation>Établissement de la connexion à PulseAudio. Patientez...</translation> - </message> -</context> -<context> - <name>QObject</name> - <message> - <location filename="../pavucontrol.cc" line="66"/> - <source>Error</source> - <translation>Erreur</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="87"/> - <source>Card callback failure</source> - <translation>Échec de la fonction de rappel de la carte</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="110"/> - <source>Sink callback failure</source> - <translation>Échec du rappel de la destination</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="133"/> - <source>Source callback failure</source> - <translation>Échec du rappel de la source</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="152"/> - <source>Sink input callback failure</source> - <translation>Échec du rappel de l'entrée du récepteur</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="171"/> - <source>Source output callback failure</source> - <translation>Échec du rappel de la sortie source</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="211"/> - <source>Client callback failure</source> - <translation>Échec du rappel du client</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="227"/> - <source>Server info callback failure</source> - <translation>Échec du rappel des informations sur le serveur</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="245"/> - <location filename="../pavucontrol.cc" line="542"/> - <source>Failed to initialize stream_restore extension: %s</source> - <translation>Échec d'initialisation de l'extension stream_restore : %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="263"/> - <source>pa_ext_stream_restore_read() failed</source> - <translation>pa_ext_stream_restore_read() a échoué</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="281"/> - <location filename="../pavucontrol.cc" line="556"/> - <source>Failed to initialize device restore extension: %s</source> - <translation>Échec d'initialisation de l'extension de restauration du périphérique : %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="302"/> - <source>pa_ext_device_restore_read_sink_formats() failed</source> - <translation>pa_ext_device_restore_read_sink_formats() a échoué</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="320"/> - <location filename="../pavucontrol.cc" line="569"/> - <source>Failed to initialize device manager extension: %s</source> - <translation>Échec d'initialisation de l'extension du gestionnaire de périphériques : %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="339"/> - <source>pa_ext_device_manager_read() failed</source> - <translation>pa_ext_device_manager_read() a échoué</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="356"/> - <source>pa_context_get_sink_info_by_index() failed</source> - <translation>pa_context_get_sink_info_by_index() a échoué</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="369"/> - <source>pa_context_get_source_info_by_index() failed</source> - <translation>pa_context_get_source_info_by_index() a échoué</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="382"/> - <location filename="../pavucontrol.cc" line="395"/> - <source>pa_context_get_sink_input_info() failed</source> - <translation>pa_context_get_sink_input_info() a échoué</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="408"/> - <source>pa_context_get_client_info() failed</source> - <translation>pa_context_get_client_info() a échoué</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="418"/> - <location filename="../pavucontrol.cc" line="483"/> - <source>pa_context_get_server_info() failed</source> - <translation>pa_context_get_server_info() a échoué</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="431"/> - <source>pa_context_get_card_info_by_index() failed</source> - <translation>pa_context_get_card_info_by_index() a échoué</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="474"/> - <source>pa_context_subscribe() failed</source> - <translation>pa_context_subscribe() a échoué</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="490"/> - <source>pa_context_client_info_list() failed</source> - <translation>pa_context_client_info_list() a échoué</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="497"/> - <source>pa_context_get_card_info_list() failed</source> - <translation>pa_context_get_card_info_list() a échoué</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="504"/> - <source>pa_context_get_sink_info_list() failed</source> - <translation>pa_context_get_sink_info_list() a échoué</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="511"/> - <source>pa_context_get_source_info_list() failed</source> - <translation>pa_context_get_source_info_list() a échoué</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="518"/> - <source>pa_context_get_sink_input_info_list() failed</source> - <translation>pa_context_get_sink_input_info_list() a échoué</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="525"/> - <source>pa_context_get_source_output_info_list() failed</source> - <translation>pa_context_get_source_output_info_list() a échoué</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="584"/> - <location filename="../pavucontrol.cc" line="635"/> - <source>Connection failed, attempting reconnect</source> - <translation>Échec de la connexion, tentative de reconnexion</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="607"/> - <location filename="../pavucontrol.cc" line="664"/> - <source>PulseAudio Volume Control</source> - <translation>Contrôle du volume PulseAudio</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="622"/> - <source>Connection to PulseAudio failed. Automatic retry in 5s - -In this case this is likely because PULSE_SERVER in the Environment/X11 Root Window Properties -or default-server in client.conf is misconfigured. -This situation can also arrise when PulseAudio crashed and left stale details in the X11 Root Window. -If this is the case, then PulseAudio should autospawn again, or if this is not configured you should -run start-pulseaudio-x11 manually.</source> - <translation>La connexion à PulseAudio a échoué. Nouvelle tentative automatique dans 5s - -Dans ce cas, cela est probablement dû au fait que PULSE_SERVER est dans les propriétés de la fenêtre racine Environnement/X11 -ou default-server dans client.conf est mal configuré. -Cette situation peut également se produire lorsque PulseAudio a cessé de fonctionner et laisser des détails obsolètes dans la fenêtre racine X11. -Si tel est le cas, PulseAudio doit à nouveau lancer automatiquement l’auto-génération, ou si cela n’est pas configuré, vous devez -lancer manuellement start-pulseaudio-x11.</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="672"/> - <source>Select a specific tab on load.</source> - <translation>Sélectionner un onglet spécifique lors du chargement.</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="675"/> - <source>Retry forever if pa quits (every 5 seconds).</source> - <translation>Toujours réessayer si pavucontrol quitte (toutes les 5s).</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="678"/> - <source>Maximize the window.</source> - <translation>Maximiser la fenêtre.</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="703"/> - <source>Fatal Error: Unable to connect to PulseAudio</source> - <translation>Erreur fatale : connexion impossible à PulseAudio</translation> - </message> -</context> -<context> - <name>RoleWidget</name> - <message> - <location filename="../rolewidget.cc" line="59"/> - <source>pa_ext_stream_restore_write() failed</source> - <translation>pa_ext_stream_restore_write() a échoué</translation> - </message> -</context> -<context> - <name>SinkInputWidget</name> - <message> - <location filename="../sinkinputwidget.cc" line="36"/> - <source>on</source> - <translation>en fonction</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="39"/> - <source>Terminate Playback</source> - <translation>Terminer la lecture</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="53"/> - <source>Unknown output</source> - <translation>Sortie inconnue</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="64"/> - <source>pa_context_set_sink_input_volume() failed</source> - <translation>pa_context_set_sink_input_volume() a échoué</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="79"/> - <source>pa_context_set_sink_input_mute() failed</source> - <translation>pa_context_set_sink_input_mute() a échoué</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="89"/> - <source>pa_context_kill_sink_input() failed</source> - <translation>pa_context_kill_sink_input() a échoué</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="114"/> - <source>pa_context_move_sink_input_by_index() failed</source> - <translation>pa_context_move_sink_input_by_index() a échoué</translation> - </message> -</context> -<context> - <name>SinkWidget</name> - <message> - <location filename="../sinkwidget.cc" line="81"/> - <source>pa_context_set_sink_volume_by_index() failed</source> - <translation>pa_context_set_sink_volume_by_index() a échoué</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="96"/> - <source>pa_context_set_sink_mute_by_index() failed</source> - <translation>pa_context_set_sink_mute_by_index() a échoué</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="110"/> - <source>pa_context_set_default_sink() failed</source> - <translation>pa_context_set_default_sink() a échoué</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="126"/> - <source>pa_context_set_sink_port_by_index() failed</source> - <translation>pa_context_set_sink_port_by_index() a échoué</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="166"/> - <source>pa_ext_device_restore_save_sink_formats() failed</source> - <translation>pa_ext_device_restore_save_sink_formats() a échoué</translation> - </message> -</context> -<context> - <name>SourceOutputWidget</name> - <message> - <location filename="../sourceoutputwidget.cc" line="35"/> - <source>from</source> - <translation>de</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="39"/> - <source>Terminate Recording</source> - <translation>Mettre fin à l'enregistrement</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="60"/> - <source>Unknown input</source> - <translation>Entrée inconnue</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="72"/> - <source>pa_context_set_source_output_volume() failed</source> - <translation>pa_context_set_source_output_volume() a échoué</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="87"/> - <source>pa_context_set_source_output_mute() failed</source> - <translation>pa_context_set_source_output_mute() a échoué</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="98"/> - <source>pa_context_kill_source_output() failed</source> - <translation>pa_context_kill_source_output() a échoué</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="125"/> - <source>pa_context_move_source_output_by_index() failed</source> - <translation>pa_context_move_source_output_by_index() a échoué</translation> - </message> -</context> -<context> - <name>SourceWidget</name> - <message> - <location filename="../sourcewidget.cc" line="35"/> - <source>pa_context_set_source_volume_by_index() failed</source> - <translation>pa_context_set_source_volume_by_index() a échoué</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="50"/> - <source>pa_context_set_source_mute_by_index() failed</source> - <translation>pa_context_set_source_mute_by_index() a échoué</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="64"/> - <source>pa_context_set_default_source() failed</source> - <translation>pa_context_set_default_source() a échoué</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="80"/> - <source>pa_context_set_source_port_by_index() failed</source> - <translation>pa_context_set_source_port_by_index() a échoué</translation> - </message> -</context> -<context> - <name>StreamWidget</name> - <message> - <location filename="../streamwidget.ui" line="14"/> - <source>Form</source> - <translation>Formulaire</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="32"/> - <source>Device Title</source> - <translation>Titre du périphérique</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="52"/> - <source>direction</source> - <translation>direction</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="59"/> - <source>device</source> - <translation>périphérique</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="66"/> - <source>Mute audio</source> - <translation>Couper l'audio</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="79"/> - <source>Lock channels together</source> - <translation>Verrouiller les canaux ensembles</translation> - </message> - <message> - <location filename="../streamwidget.cc" line="34"/> - <source>Terminate</source> - <translation>Terminer la lecture</translation> - </message> -</context> -</TS> diff --git a/src/translations/pavucontrol-qt_gl.desktop.yaml b/src/translations/pavucontrol-qt_gl.desktop.yaml deleted file mode 100644 index dfea2c2..0000000 --- a/src/translations/pavucontrol-qt_gl.desktop.yaml +++ /dev/null @@ -1,3 +0,0 @@ -Desktop Entry/Name: "Control de volume do PulseAudio" -Desktop Entry/GenericName: "Control de volume" -Desktop Entry/Comment: "Axustar o nivel do volume" diff --git a/src/translations/pavucontrol-qt_gl.ts b/src/translations/pavucontrol-qt_gl.ts deleted file mode 100644 index 7546e3d..0000000 --- a/src/translations/pavucontrol-qt_gl.ts +++ /dev/null @@ -1,739 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE TS> -<TS version="2.1" language="gl"> -<context> - <name>CardWidget</name> - <message> - <location filename="../cardwidget.ui" line="14"/> - <source>Form</source> - <translation>Formulario</translation> - </message> - <message> - <location filename="../cardwidget.ui" line="29"/> - <source>Card Name</source> - <translation>Nome da tarxeta</translation> - </message> - <message> - <location filename="../cardwidget.ui" line="47"/> - <source>Profile:</source> - <translation>Perfil:</translation> - </message> - <message> - <location filename="../cardwidget.cc" line="67"/> - <source>pa_context_set_card_profile_by_index() failed</source> - <translation>Produciuse un fallo de pa_context_set_card_profile_by_index()</translation> - </message> -</context> -<context> - <name>Channel</name> - <message> - <location filename="../channel.cc" line="89"/> - <source>%1% (%2dB)</source> - <comment>volume slider label [X% (YdB)]</comment> - <translation></translation> - </message> - <message> - <location filename="../channel.cc" line="93"/> - <source>%1%</source> - <comment>volume slider label [X%]</comment> - <translation></translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Silence</small></source> - <translation><small>Silencio</small></translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Min</small></source> - <translation><small>Mín</small></translation> - </message> - <message> - <location filename="../channel.cc" line="162"/> - <source><small>100% (0dB)</small></source> - <translation></translation> - </message> - <message> - <location filename="../channel.cc" line="165"/> - <source><small><i>Base</i></small></source> - <translation></translation> - </message> -</context> -<context> - <name>ChannelWidget</name> - <message> - <location filename="../channelwidget.ui" line="14"/> - <source>Form</source> - <translation>Formulario</translation> - </message> - <message> - <location filename="../channelwidget.ui" line="20"/> - <source><b>left-front</b></source> - <translation><b>frontal-esquerdo</b></translation> - </message> - <message> - <location filename="../channelwidget.ui" line="34"/> - <source><small>50%</small></source> - <translation></translation> - </message> -</context> -<context> - <name>DeviceWidget</name> - <message> - <location filename="../devicewidget.ui" line="14"/> - <source>Form</source> - <translation>Formulario</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="36"/> - <source>Device Title</source> - <translation>Título do dispositivo</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="56"/> - <source>Mute audio</source> - <translation>Silenciar o son</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="69"/> - <source>Lock channels together</source> - <translation>Bloquear as canles xuntas</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="85"/> - <source>Set as fallback</source> - <translation>Estabelecer como alternativa</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="103"/> - <source><b>Port:</b></source> - <translation><b>Porto:</b></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="126"/> - <source>Show advanced options</source> - <translation>Amosar as opcións avanzadas</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="172"/> - <source>PCM</source> - <translation></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="182"/> - <source>AC3</source> - <translation></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="189"/> - <source>EAC3</source> - <translation></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="196"/> - <source>DTS</source> - <translation></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="203"/> - <source>MPEG</source> - <translation></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="210"/> - <source>AAC</source> - <translation></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="238"/> - <source><b>Latency offset:</b></source> - <translation><b>Desviación da latencia:</b></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="245"/> - <source> ms</source> - <translation></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="41"/> - <source>Rename device...</source> - <translation>Renomear o dispositivo...</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="155"/> - <source>pa_context_set_port_latency_offset() failed</source> - <translation>Produciuse un fallo de pa_context_set_port_latency_offset()</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="226"/> - <source>Sorry, but device renaming is not supported.</source> - <translation>Sentímolo, non é posíbel renomear o dispositivo.</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="227"/> - <source>You need to load module-device-manager in the PulseAudio server in order to rename devices</source> - <translation>É necesario cargar «module-device-manager» no servidor de PulseAudio para poder renomear dispositivos</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="233"/> - <source>Rename device %1 to:</source> - <translation>Renomear o dispositivo %1 como:</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="240"/> - <source>pa_ext_device_manager_set_device_description() failed</source> - <translation>Produciuse un fallo de pa_ext_device_manager_set_device_description()</translation> - </message> -</context> -<context> - <name>MainWindow</name> - <message> - <location filename="../mainwindow.ui" line="14"/> - <source>Volume Control</source> - <translation>Control do volume</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="55"/> - <source><i>No application is currently playing audio.</i></source> - <translation><i>Non hai ningunha aplicación reproducindo son.</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="66"/> - <location filename="../mainwindow.ui" line="131"/> - <location filename="../mainwindow.ui" line="196"/> - <location filename="../mainwindow.ui" line="261"/> - <source>Show:</source> - <translation>Amosar:</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="74"/> - <location filename="../mainwindow.ui" line="139"/> - <source>All Streams</source> - <translation>Todos os fluxos</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="79"/> - <location filename="../mainwindow.ui" line="144"/> - <source>Applications</source> - <translation>Aplicacións</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="84"/> - <location filename="../mainwindow.ui" line="149"/> - <source>Virtual Streams</source> - <translation>Fluxos virtuais</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="120"/> - <source><i>No application is currently recording audio.</i></source> - <translation><i>Non hai ningunha aplicación gravando son.</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="185"/> - <source><i>No output devices available</i></source> - <translation><i>Non hai dispositivos de saída dispoñíbeis</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="204"/> - <source>All Output Devices</source> - <translation>Todos os dispositivos de saída</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="209"/> - <source>Hardware Output Devices</source> - <translation>Dispositivos de saída por hardware</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="214"/> - <source>Virtual Output Devices</source> - <translation>Dispositivos de saída virtuais</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="28"/> - <source>&Playback</source> - <translation>&Reprodución</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="93"/> - <source>&Recording</source> - <translation>&Gravación</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="158"/> - <source>&Output Devices</source> - <translation>Dispositivos de &saída</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="223"/> - <source>&Input Devices</source> - <translation>Dispositivos de &entrada</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="250"/> - <source><i>No input devices available</i></source> - <translation><i>Non hai dispositivos de entrada dispoñíbeis</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="269"/> - <source>All Input Devices</source> - <translation>Todos os dispositivos de entrada</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="274"/> - <source>All Except Monitors</source> - <translation>Todos, agás os monitores</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="279"/> - <source>Hardware Input Devices</source> - <translation>Dispositivos de entrada por hardware</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="284"/> - <source>Virtual Input Devices</source> - <translation>Dispositivos de entrada virtuais</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="289"/> - <source>Monitors</source> - <translation>Monitores</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="298"/> - <source>&Configuration</source> - <translation>&Configuración</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="325"/> - <source><i>No cards available for configuration</i></source> - <translation><i>Non hai tarxetas dispoñíbeis para configurar</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="336"/> - <source>Show volume meters</source> - <translation>Amosar os medidores de volume</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="347"/> - <source>...</source> - <translation></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="159"/> - <source> (plugged in)</source> - <translation> (conectado)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="163"/> - <location filename="../mainwindow.cc" line="257"/> - <source> (unavailable)</source> - <translation> (non dispoñíbel)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="165"/> - <location filename="../mainwindow.cc" line="254"/> - <source> (unplugged)</source> - <translation> (desconectado)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="388"/> - <source>Failed to read data from stream</source> - <translation>Produciuse un fallo ao ler datos do fluxo</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="432"/> - <source>Peak detect</source> - <translation>Detección de picos</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="433"/> - <source>Failed to create monitoring stream</source> - <translation>Produciuse un fallo ao crear o fluxo de monitorización</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="448"/> - <source>Failed to connect monitoring stream</source> - <translation>Produciuse un fallo ao conectarse co fluxo de monitorización</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="587"/> - <source>Ignoring sink-input due to it being designated as an event and thus handled by the Event widget</source> - <translation>Ignorarase o colector de entrada por ter sido designado como un evento, sendo polo tanto administrado polo trebello de eventos</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="759"/> - <source>System Sounds</source> - <translation>Sons do sistema</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="1089"/> - <source>Establishing connection to PulseAudio. Please wait...</source> - <translation>Estabelecendo a conexión co PulseAudio. Agarde...</translation> - </message> -</context> -<context> - <name>QObject</name> - <message> - <location filename="../pavucontrol.cc" line="66"/> - <source>Error</source> - <translation>Erro</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="87"/> - <source>Card callback failure</source> - <translation>Produciuse un fallo na chamada de resposta da tarxeta</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="110"/> - <source>Sink callback failure</source> - <translation>Produciuse un fallo na chamada de resposta do colector</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="133"/> - <source>Source callback failure</source> - <translation>Produciuse un fallo na chamada de resposta da fonte</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="152"/> - <source>Sink input callback failure</source> - <translation>Produciuse un fallo na chamada de entrada do colector</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="171"/> - <source>Source output callback failure</source> - <translation>Produciuse un fallo na chamada de resposta da saída da fonte</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="211"/> - <source>Client callback failure</source> - <translation>Produciuse un fallo na chamada de resposta do cliente</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="227"/> - <source>Server info callback failure</source> - <translation>Produciuse un fallo na chamada de información do servidor</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="245"/> - <location filename="../pavucontrol.cc" line="542"/> - <source>Failed to initialize stream_restore extension: %s</source> - <translation>Produciuse un fallo ao iniciar a extensión «stream_restore»: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="263"/> - <source>pa_ext_stream_restore_read() failed</source> - <translation>Produciuse un fallo de pa_ext_stream_restore_read()</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="281"/> - <location filename="../pavucontrol.cc" line="556"/> - <source>Failed to initialize device restore extension: %s</source> - <translation>Produciuse un fallo ao iniciar a extensión de restauración do dispositivo: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="302"/> - <source>pa_ext_device_restore_read_sink_formats() failed</source> - <translation>Produciuse un fallo de pa_ext_device_restore_read_sink_formats()</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="320"/> - <location filename="../pavucontrol.cc" line="569"/> - <source>Failed to initialize device manager extension: %s</source> - <translation>Produciuse un fallo ao iniciar a extensión de xestión do dispositivo: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="339"/> - <source>pa_ext_device_manager_read() failed</source> - <translation>Produciuse un fallo de pa_ext_device_manager_read()</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="356"/> - <source>pa_context_get_sink_info_by_index() failed</source> - <translation>Produciuse un fallo de pa_context_get_sink_info_by_index()</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="369"/> - <source>pa_context_get_source_info_by_index() failed</source> - <translation>Produciuse un fallo de pa_context_get_source_info_by_index()</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="382"/> - <location filename="../pavucontrol.cc" line="395"/> - <source>pa_context_get_sink_input_info() failed</source> - <translation>Produciuse un fallo de pa_context_get_sink_input_info()</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="408"/> - <source>pa_context_get_client_info() failed</source> - <translation>Produciuse un fallo de pa_context_get_client_info()</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="418"/> - <location filename="../pavucontrol.cc" line="483"/> - <source>pa_context_get_server_info() failed</source> - <translation>Produciuse un fallo de pa_context_get_server_info()</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="431"/> - <source>pa_context_get_card_info_by_index() failed</source> - <translation>Produciuse un fallo de pa_context_get_card_info_by_index()</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="474"/> - <source>pa_context_subscribe() failed</source> - <translation>Produciuse un fallo de pa_context_subscribe()</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="490"/> - <source>pa_context_client_info_list() failed</source> - <translation>Produciuse un fallo de pa_context_client_info_list()</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="497"/> - <source>pa_context_get_card_info_list() failed</source> - <translation>Produciuse un fallo de pa_context_get_card_info_list()</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="504"/> - <source>pa_context_get_sink_info_list() failed</source> - <translation>Produciuse un fallo de pa_context_get_sink_info_list()</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="511"/> - <source>pa_context_get_source_info_list() failed</source> - <translation>Produciuse un fallo de pa_context_get_source_info_list()</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="518"/> - <source>pa_context_get_sink_input_info_list() failed</source> - <translation>Produciuse un fallo de pa_context_get_sink_input_info_list()</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="525"/> - <source>pa_context_get_source_output_info_list() failed</source> - <translation>Produciuse un fallo de pa_context_get_source_output_info_list()</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="584"/> - <location filename="../pavucontrol.cc" line="635"/> - <source>Connection failed, attempting reconnect</source> - <translation>Produciuse un fallo na conexión, tentando volver conectar</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="607"/> - <location filename="../pavucontrol.cc" line="664"/> - <source>PulseAudio Volume Control</source> - <translation>Control de volume do PulseAudio</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="622"/> - <source>Connection to PulseAudio failed. Automatic retry in 5s - -In this case this is likely because PULSE_SERVER in the Environment/X11 Root Window Properties -or default-server in client.conf is misconfigured. -This situation can also arrise when PulseAudio crashed and left stale details in the X11 Root Window. -If this is the case, then PulseAudio should autospawn again, or if this is not configured you should -run start-pulseaudio-x11 manually.</source> - <translation>Produciuse un fallo na conexión a PulseAudio. Tentarase de novo en 5s - -Neste caso é probábel, por mor de que PULSE_SERVER estea mal configurado nas propiedades do -contorno/xanela raíz de X11 ou en «client.conf» no servidor predeterminado. -Esta situación tamén pode xurdir cando falla PulseAudio e deixa restos na xanela raíz de X11. -Se é este o caso, deberá reiniciarse o PulseAudio, ou, se iso non está configurado, vostede debe -executar «start-pulseaudio-x11» manualmente.</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="672"/> - <source>Select a specific tab on load.</source> - <translation>Seleccionar unha lapela específica ao cargar.</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="675"/> - <source>Retry forever if pa quits (every 5 seconds).</source> - <translation>Reintentar indefinidamente se PA se pecha (cada 5 segundos).</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="678"/> - <source>Maximize the window.</source> - <translation>Maximizar a xanela.</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="703"/> - <source>Fatal Error: Unable to connect to PulseAudio</source> - <translation>Produciuse un erro grave: Non é posíbel volver conectar co PulseAudio</translation> - </message> -</context> -<context> - <name>RoleWidget</name> - <message> - <location filename="../rolewidget.cc" line="59"/> - <source>pa_ext_stream_restore_write() failed</source> - <translation>Produciuse un fallo de pa_ext_stream_restore_write()</translation> - </message> -</context> -<context> - <name>SinkInputWidget</name> - <message> - <location filename="../sinkinputwidget.cc" line="36"/> - <source>on</source> - <translation>acendido</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="39"/> - <source>Terminate Playback</source> - <translation>Rematar a reprodución</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="53"/> - <source>Unknown output</source> - <translation>Saída descoñecida</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="64"/> - <source>pa_context_set_sink_input_volume() failed</source> - <translation>Produciuse un fallo de pa_context_set_sink_input_volume()</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="79"/> - <source>pa_context_set_sink_input_mute() failed</source> - <translation>Produciuse un fallo de pa_context_set_sink_input_mute()</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="89"/> - <source>pa_context_kill_sink_input() failed</source> - <translation>Produciuse un fallo de pa_context_kill_sink_input()</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="114"/> - <source>pa_context_move_sink_input_by_index() failed</source> - <translation>Produciuse un fallo de pa_context_move_sink_input_by_index()</translation> - </message> -</context> -<context> - <name>SinkWidget</name> - <message> - <location filename="../sinkwidget.cc" line="81"/> - <source>pa_context_set_sink_volume_by_index() failed</source> - <translation>Produciuse un fallo de pa_context_set_sink_volume_by_index()</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="96"/> - <source>pa_context_set_sink_mute_by_index() failed</source> - <translation>Produciuse un fallo de pa_context_set_sink_mute_by_index()</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="110"/> - <source>pa_context_set_default_sink() failed</source> - <translation>Produciuse un fallo de pa_context_set_default_sink()</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="126"/> - <source>pa_context_set_sink_port_by_index() failed</source> - <translation>Produciuse un fallo de pa_context_set_sink_port_by_index()</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="166"/> - <source>pa_ext_device_restore_save_sink_formats() failed</source> - <translation>Produciuse un fallo de pa_ext_device_restore_save_sink_formats()</translation> - </message> -</context> -<context> - <name>SourceOutputWidget</name> - <message> - <location filename="../sourceoutputwidget.cc" line="35"/> - <source>from</source> - <translation>dende</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="39"/> - <source>Terminate Recording</source> - <translation>Rematar a gravación</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="60"/> - <source>Unknown input</source> - <translation>Entrada descoñecida</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="72"/> - <source>pa_context_set_source_output_volume() failed</source> - <translation>Produciuse un fallo de pa_context_set_source_output_volume()</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="87"/> - <source>pa_context_set_source_output_mute() failed</source> - <translation>Produciuse un fallo de pa_context_set_source_output_mute()</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="98"/> - <source>pa_context_kill_source_output() failed</source> - <translation>Produciuse un fallo de pa_context_kill_source_output()</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="125"/> - <source>pa_context_move_source_output_by_index() failed</source> - <translation>Produciuse un fallo de pa_context_move_source_output_by_index()</translation> - </message> -</context> -<context> - <name>SourceWidget</name> - <message> - <location filename="../sourcewidget.cc" line="35"/> - <source>pa_context_set_source_volume_by_index() failed</source> - <translation>Produciuse un fallo de pa_context_set_source_volume_by_index()</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="50"/> - <source>pa_context_set_source_mute_by_index() failed</source> - <translation>Produciuse un fallo de pa_context_set_source_mute_by_index()</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="64"/> - <source>pa_context_set_default_source() failed</source> - <translation>Produciuse un fallo de pa_context_set_default_source()</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="80"/> - <source>pa_context_set_source_port_by_index() failed</source> - <translation>Produciuse un fallo de pa_context_set_source_port_by_index()</translation> - </message> -</context> -<context> - <name>StreamWidget</name> - <message> - <location filename="../streamwidget.ui" line="14"/> - <source>Form</source> - <translation>Formulario</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="32"/> - <source>Device Title</source> - <translation>Título do dispositivo</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="52"/> - <source>direction</source> - <translation>dirección</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="59"/> - <source>device</source> - <translation>dispositivo</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="66"/> - <source>Mute audio</source> - <translation>Silenciar o son</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="79"/> - <source>Lock channels together</source> - <translation>Bloquear as canles xuntas</translation> - </message> - <message> - <location filename="../streamwidget.cc" line="34"/> - <source>Terminate</source> - <translation>Rematar</translation> - </message> -</context> -</TS> diff --git a/src/translations/pavucontrol-qt_gu.ts b/src/translations/pavucontrol-qt_gu.ts deleted file mode 100644 index df6430a..0000000 --- a/src/translations/pavucontrol-qt_gu.ts +++ /dev/null @@ -1,733 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE TS> -<TS version="2.1" language="gu"> -<context> - <name>CardWidget</name> - <message> - <location filename="../cardwidget.ui" line="14"/> - <source>Form</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../cardwidget.ui" line="29"/> - <source>Card Name</source> - <translation>કાર્ડ નામ</translation> - </message> - <message> - <location filename="../cardwidget.ui" line="47"/> - <source>Profile:</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../cardwidget.cc" line="67"/> - <source>pa_context_set_card_profile_by_index() failed</source> - <translation>pa_context_set_card_profile_by_index() નિષ્ફળ</translation> - </message> -</context> -<context> - <name>Channel</name> - <message> - <location filename="../channel.cc" line="89"/> - <source>%1% (%2dB)</source> - <comment>volume slider label [X% (YdB)]</comment> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../channel.cc" line="93"/> - <source>%1%</source> - <comment>volume slider label [X%]</comment> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Silence</small></source> - <translation type="unfinished"><small>શાંત</small></translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Min</small></source> - <translation type="unfinished"><small>ન્યૂનત્તમ</small></translation> - </message> - <message> - <location filename="../channel.cc" line="162"/> - <source><small>100% (0dB)</small></source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../channel.cc" line="165"/> - <source><small><i>Base</i></small></source> - <translation type="unfinished"><small><i>આધાર</i></small></translation> - </message> -</context> -<context> - <name>ChannelWidget</name> - <message> - <location filename="../channelwidget.ui" line="14"/> - <source>Form</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../channelwidget.ui" line="20"/> - <source><b>left-front</b></source> - <translation><b>ડાબે-આગળ</b></translation> - </message> - <message> - <location filename="../channelwidget.ui" line="34"/> - <source><small>50%</small></source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>DeviceWidget</name> - <message> - <location filename="../devicewidget.ui" line="14"/> - <source>Form</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="36"/> - <source>Device Title</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="56"/> - <source>Mute audio</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="69"/> - <source>Lock channels together</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="85"/> - <source>Set as fallback</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="103"/> - <source><b>Port:</b></source> - <translation><b>પોર્ટ:</b></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="126"/> - <source>Show advanced options</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="172"/> - <source>PCM</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="182"/> - <source>AC3</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="189"/> - <source>EAC3</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="196"/> - <source>DTS</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="203"/> - <source>MPEG</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="210"/> - <source>AAC</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="238"/> - <source><b>Latency offset:</b></source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="245"/> - <source> ms</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="41"/> - <source>Rename device...</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="155"/> - <source>pa_context_set_port_latency_offset() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="226"/> - <source>Sorry, but device renaming is not supported.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="227"/> - <source>You need to load module-device-manager in the PulseAudio server in order to rename devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="233"/> - <source>Rename device %1 to:</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="240"/> - <source>pa_ext_device_manager_set_device_description() failed</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>MainWindow</name> - <message> - <location filename="../mainwindow.ui" line="14"/> - <source>Volume Control</source> - <translation>વોલ્યમ નિયંત્રણ</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="28"/> - <source>&Playback</source> - <translation>પ્લેબેક (&P)</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="55"/> - <source><i>No application is currently playing audio.</i></source> - <translation><i>કાર્યક્રમ એ હાલમાં ઓડિયોને વગાડતી નથી.</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="66"/> - <location filename="../mainwindow.ui" line="131"/> - <location filename="../mainwindow.ui" line="196"/> - <location filename="../mainwindow.ui" line="261"/> - <source>Show:</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="74"/> - <location filename="../mainwindow.ui" line="139"/> - <source>All Streams</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="79"/> - <location filename="../mainwindow.ui" line="144"/> - <source>Applications</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="84"/> - <location filename="../mainwindow.ui" line="149"/> - <source>Virtual Streams</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="93"/> - <source>&Recording</source> - <translation>રેકોર્ડ કરી રહ્યા છે (&R)</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="120"/> - <source><i>No application is currently recording audio.</i></source> - <translation><i>કાર્યક્રમ એ હાલમાં ઓડિયોને રેકોર્ડ કરતી નથી.</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="158"/> - <source>&Output Devices</source> - <translation>આઉટપુટ ઉપકરણો (&O)</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="185"/> - <source><i>No output devices available</i></source> - <translation><i>આઉટપુટ ઉપકરણો ઉપલ્બધ નથી</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="204"/> - <source>All Output Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="209"/> - <source>Hardware Output Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="214"/> - <source>Virtual Output Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="223"/> - <source>&Input Devices</source> - <translation>ઇનપુટ ઉપકરણો (&I)</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="250"/> - <source><i>No input devices available</i></source> - <translation><i>ઇનપુટ ઉપકરણો ઉપલ્બધ નથી</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="269"/> - <source>All Input Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="274"/> - <source>All Except Monitors</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="279"/> - <source>Hardware Input Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="284"/> - <source>Virtual Input Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="289"/> - <source>Monitors</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="298"/> - <source>&Configuration</source> - <translation>રૂપરેખાંકન (&C)</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="325"/> - <source><i>No cards available for configuration</i></source> - <translation><i>રૂપરેખાંકન માટે કાર્ડો ઉપલ્બધ નથી</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="336"/> - <source>Show volume meters</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="347"/> - <source>...</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="159"/> - <source> (plugged in)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="163"/> - <location filename="../mainwindow.cc" line="257"/> - <source> (unavailable)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="165"/> - <location filename="../mainwindow.cc" line="254"/> - <source> (unplugged)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="388"/> - <source>Failed to read data from stream</source> - <translation>સ્ટ્રીમમાંથી માહિતી વાંચવામાં નિષ્ફળ</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="432"/> - <source>Peak detect</source> - <translation>શોધની ટોચ</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="433"/> - <source>Failed to create monitoring stream</source> - <translation>મોનિટરીંગ સ્ટ્રીમને બનાવવામાં નિષ્ફળ</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="448"/> - <source>Failed to connect monitoring stream</source> - <translation>મોનિટરીંગ સ્ટ્રીમને જોડવામાં નિષ્ફળ</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="587"/> - <source>Ignoring sink-input due to it being designated as an event and thus handled by the Event widget</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="759"/> - <source>System Sounds</source> - <translation>સિસ્ટમ સાઉન્ડો</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="1089"/> - <source>Establishing connection to PulseAudio. Please wait...</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>QObject</name> - <message> - <location filename="../pavucontrol.cc" line="66"/> - <source>Error</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="87"/> - <source>Card callback failure</source> - <translation>કાર્ડ કોલબેક નિષ્ફળ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="110"/> - <source>Sink callback failure</source> - <translation>સિન્ક કોલબેક નિષ્ફળ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="133"/> - <source>Source callback failure</source> - <translation>સ્ત્રોત કોલબેક નિષ્ફળ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="152"/> - <source>Sink input callback failure</source> - <translation>સિન્ક ઇનપુટ કોલબેક નિષ્ફળ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="171"/> - <source>Source output callback failure</source> - <translation>સ્ત્રોત આઉટપુટ કોલબેક નિષ્ફળ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="211"/> - <source>Client callback failure</source> - <translation>ક્લાઇન્ટ કોલબેક નિષ્ફળ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="227"/> - <source>Server info callback failure</source> - <translation>સર્વર જાણકારી કોલબેક નિષ્ફળ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="245"/> - <location filename="../pavucontrol.cc" line="542"/> - <source>Failed to initialize stream_restore extension: %s</source> - <translation>સ્ટ્રીમ પુન:સંગ્રહ એક્સટેન્શનને પ્રારંભ કરવામાં નિષ્ફળ (_r): %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="263"/> - <source>pa_ext_stream_restore_read() failed</source> - <translation>pa_ext_stream_restore_read() નિષ્ફળ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="281"/> - <location filename="../pavucontrol.cc" line="556"/> - <source>Failed to initialize device restore extension: %s</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="302"/> - <source>pa_ext_device_restore_read_sink_formats() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="320"/> - <location filename="../pavucontrol.cc" line="569"/> - <source>Failed to initialize device manager extension: %s</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="339"/> - <source>pa_ext_device_manager_read() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="356"/> - <source>pa_context_get_sink_info_by_index() failed</source> - <translation>pa_context_get_sink_info_by_index() નિષ્ફળ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="369"/> - <source>pa_context_get_source_info_by_index() failed</source> - <translation>pa_context_get_source_info_by_index() નિષ્ફળ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="382"/> - <location filename="../pavucontrol.cc" line="395"/> - <source>pa_context_get_sink_input_info() failed</source> - <translation>pa_context_get_sink_input_info() નિષ્ફળ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="408"/> - <source>pa_context_get_client_info() failed</source> - <translation>pa_context_get_client_info() નિષ્ફળ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="418"/> - <location filename="../pavucontrol.cc" line="483"/> - <source>pa_context_get_server_info() failed</source> - <translation>pa_context_get_server_info() નિષ્ફળ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="431"/> - <source>pa_context_get_card_info_by_index() failed</source> - <translation>pa_context_get_card_info_by_index() નિષ્ફળ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="474"/> - <source>pa_context_subscribe() failed</source> - <translation>pa_context_subscribe() નિષ્ફળ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="490"/> - <source>pa_context_client_info_list() failed</source> - <translation>pa_context_client_info_list() નિષ્ફળ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="497"/> - <source>pa_context_get_card_info_list() failed</source> - <translation>pa_context_get_card_info_list() નિષ્ફળ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="504"/> - <source>pa_context_get_sink_info_list() failed</source> - <translation>pa_context_get_sink_info_list() નિષ્ફળ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="511"/> - <source>pa_context_get_source_info_list() failed</source> - <translation>pa_context_get_source_info_list() નિષ્ફળ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="518"/> - <source>pa_context_get_sink_input_info_list() failed</source> - <translation>pa_context_get_sink_input_info_list() નિષ્ફળ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="525"/> - <source>pa_context_get_source_output_info_list() failed</source> - <translation>pa_context_get_source_output_info_list() નિષ્ફળ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="584"/> - <location filename="../pavucontrol.cc" line="635"/> - <source>Connection failed, attempting reconnect</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="607"/> - <location filename="../pavucontrol.cc" line="664"/> - <source>PulseAudio Volume Control</source> - <translation>PulseAudio વોલ્યુમ નિયંત્રણ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="622"/> - <source>Connection to PulseAudio failed. Automatic retry in 5s - -In this case this is likely because PULSE_SERVER in the Environment/X11 Root Window Properties -or default-server in client.conf is misconfigured. -This situation can also arrise when PulseAudio crashed and left stale details in the X11 Root Window. -If this is the case, then PulseAudio should autospawn again, or if this is not configured you should -run start-pulseaudio-x11 manually.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="672"/> - <source>Select a specific tab on load.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="675"/> - <source>Retry forever if pa quits (every 5 seconds).</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="678"/> - <source>Maximize the window.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="703"/> - <source>Fatal Error: Unable to connect to PulseAudio</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>RoleWidget</name> - <message> - <location filename="../rolewidget.cc" line="59"/> - <source>pa_ext_stream_restore_write() failed</source> - <translation>pa_ext_stream_restore_write() નિષ્ફળ</translation> - </message> -</context> -<context> - <name>SinkInputWidget</name> - <message> - <location filename="../sinkinputwidget.cc" line="36"/> - <source>on</source> - <translation>પર</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="39"/> - <source>Terminate Playback</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="53"/> - <source>Unknown output</source> - <translation>અજ્ઞાત આઉટપુટ</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="64"/> - <source>pa_context_set_sink_input_volume() failed</source> - <translation>pa_context_set_sink_input_volume() નિષ્ફળ</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="79"/> - <source>pa_context_set_sink_input_mute() failed</source> - <translation>pa_context_set_sink_input_mute() નિષ્ફળ</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="89"/> - <source>pa_context_kill_sink_input() failed</source> - <translation>pa_context_kill_sink_input() નિષ્ફળ</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="114"/> - <source>pa_context_move_sink_input_by_index() failed</source> - <translation>pa_context_move_sink_input_by_index() નિષ્ફળ</translation> - </message> -</context> -<context> - <name>SinkWidget</name> - <message> - <location filename="../sinkwidget.cc" line="81"/> - <source>pa_context_set_sink_volume_by_index() failed</source> - <translation>pa_context_set_sink_volume_by_index() નિષ્ફળ</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="96"/> - <source>pa_context_set_sink_mute_by_index() failed</source> - <translation>pa_context_set_sink_mute_by_index() નિષ્ફળ</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="110"/> - <source>pa_context_set_default_sink() failed</source> - <translation>pa_context_set_default_sink() નિષ્ફળ</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="126"/> - <source>pa_context_set_sink_port_by_index() failed</source> - <translation>pa_context_set_sink_port_by_index() નિષ્ફળ</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="166"/> - <source>pa_ext_device_restore_save_sink_formats() failed</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>SourceOutputWidget</name> - <message> - <location filename="../sourceoutputwidget.cc" line="35"/> - <source>from</source> - <translation>માંથી</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="39"/> - <source>Terminate Recording</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="60"/> - <source>Unknown input</source> - <translation>અજ્ઞાત ઇનપુટ</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="72"/> - <source>pa_context_set_source_output_volume() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="87"/> - <source>pa_context_set_source_output_mute() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="98"/> - <source>pa_context_kill_source_output() failed</source> - <translation>pa_context_kill_source_output() નિષ્ફળ</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="125"/> - <source>pa_context_move_source_output_by_index() failed</source> - <translation>pa_context_move_source_output_by_index() નિષ્ફળ</translation> - </message> -</context> -<context> - <name>SourceWidget</name> - <message> - <location filename="../sourcewidget.cc" line="35"/> - <source>pa_context_set_source_volume_by_index() failed</source> - <translation>pa_context_set_source_volume_by_index() નિષ્ફળ</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="50"/> - <source>pa_context_set_source_mute_by_index() failed</source> - <translation>pa_context_set_source_mute_by_index() નિષ્ફળ</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="64"/> - <source>pa_context_set_default_source() failed</source> - <translation>pa_context_set_default_source() નિષ્ફળ</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="80"/> - <source>pa_context_set_source_port_by_index() failed</source> - <translation>pa_context_set_source_port_by_index() નિષ્ફળ</translation> - </message> -</context> -<context> - <name>StreamWidget</name> - <message> - <location filename="../streamwidget.ui" line="14"/> - <source>Form</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.ui" line="32"/> - <source>Device Title</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.ui" line="52"/> - <source>direction</source> - <translation>દિશા</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="59"/> - <source>device</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.ui" line="66"/> - <source>Mute audio</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.ui" line="79"/> - <source>Lock channels together</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.cc" line="34"/> - <source>Terminate</source> - <translation>પ્લેબેકનો અંત લાવો</translation> - </message> -</context> -</TS> diff --git a/src/translations/pavucontrol-qt_he.desktop.yaml b/src/translations/pavucontrol-qt_he.desktop.yaml deleted file mode 100644 index effd084..0000000 --- a/src/translations/pavucontrol-qt_he.desktop.yaml +++ /dev/null @@ -1,3 +0,0 @@ -Desktop Entry/Name: "בקרת עצמת השמע של PulseAudio" -Desktop Entry/GenericName: "בקרת עצמת שמע" -Desktop Entry/Comment: "כוונון עצמת השמע" diff --git a/src/translations/pavucontrol-qt_he.ts b/src/translations/pavucontrol-qt_he.ts deleted file mode 100644 index 4e930fe..0000000 --- a/src/translations/pavucontrol-qt_he.ts +++ /dev/null @@ -1,739 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE TS> -<TS version="2.1" language="he"> -<context> - <name>CardWidget</name> - <message> - <location filename="../cardwidget.ui" line="14"/> - <source>Form</source> - <translation>טופס</translation> - </message> - <message> - <location filename="../cardwidget.ui" line="29"/> - <source>Card Name</source> - <translation>שם כרטיס</translation> - </message> - <message> - <location filename="../cardwidget.ui" line="47"/> - <source>Profile:</source> - <translation>פרופיל:</translation> - </message> - <message> - <location filename="../cardwidget.cc" line="67"/> - <source>pa_context_set_card_profile_by_index() failed</source> - <translation>pa_context_set_card_profile_by_index() נכשל</translation> - </message> -</context> -<context> - <name>Channel</name> - <message> - <location filename="../channel.cc" line="89"/> - <source>%1% (%2dB)</source> - <comment>volume slider label [X% (YdB)]</comment> - <translation></translation> - </message> - <message> - <location filename="../channel.cc" line="93"/> - <source>%1%</source> - <comment>volume slider label [X%]</comment> - <translation></translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Silence</small></source> - <translation><small>שקט</small></translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Min</small></source> - <translation><small>מזערי</small></translation> - </message> - <message> - <location filename="../channel.cc" line="162"/> - <source><small>100% (0dB)</small></source> - <translation></translation> - </message> - <message> - <location filename="../channel.cc" line="165"/> - <source><small><i>Base</i></small></source> - <translation><small>בסיס</small></translation> - </message> -</context> -<context> - <name>ChannelWidget</name> - <message> - <location filename="../channelwidget.ui" line="14"/> - <source>Form</source> - <translation>טופס</translation> - </message> - <message> - <location filename="../channelwidget.ui" line="20"/> - <source><b>left-front</b></source> - <translation><b>שמאל-קדמי</b></translation> - </message> - <message> - <location filename="../channelwidget.ui" line="34"/> - <source><small>50%</small></source> - <translation></translation> - </message> -</context> -<context> - <name>DeviceWidget</name> - <message> - <location filename="../devicewidget.ui" line="14"/> - <source>Form</source> - <translation>טופס</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="36"/> - <source>Device Title</source> - <translation>כותרת התקן</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="56"/> - <source>Mute audio</source> - <translation>השתקת שמע</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="69"/> - <source>Lock channels together</source> - <translation>נעילת הערוצים זה לזה</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="85"/> - <source>Set as fallback</source> - <translation>הגדרה כמוצא אחרון</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="103"/> - <source><b>Port:</b></source> - <translation><b>פתחה:</b></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="126"/> - <source>Show advanced options</source> - <translation>הצגת אפשרויות מתקדמות</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="172"/> - <source>PCM</source> - <translation></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="182"/> - <source>AC3</source> - <translation></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="189"/> - <source>EAC3</source> - <translation></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="196"/> - <source>DTS</source> - <translation></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="203"/> - <source>MPEG</source> - <translation></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="210"/> - <source>AAC</source> - <translation></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="238"/> - <source><b>Latency offset:</b></source> - <translation><b>היסט עיכוב:</b></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="245"/> - <source> ms</source> - <translation> מ״ש</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="41"/> - <source>Rename device...</source> - <translation>שינוי שם התקן…</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="155"/> - <source>pa_context_set_port_latency_offset() failed</source> - <translation>pa_context_set_port_latency_offset() נכשל</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="226"/> - <source>Sorry, but device renaming is not supported.</source> - <translation>אין תמיכה בשינוי שמות של התקנים, עמך הסליחה.</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="227"/> - <source>You need to load module-device-manager in the PulseAudio server in order to rename devices</source> - <translation>עליך לטעון module-device-manager בשרת ה־PulseAudio כדי לשנות שמות של התקנים</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="233"/> - <source>Rename device %1 to:</source> - <translation>שינוי שם ההתקן %1 לשם:</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="240"/> - <source>pa_ext_device_manager_set_device_description() failed</source> - <translation>pa_ext_device_manager_set_device_description() נכשל</translation> - </message> -</context> -<context> - <name>MainWindow</name> - <message> - <location filename="../mainwindow.ui" line="14"/> - <source>Volume Control</source> - <translation>בקרת עצמת שמע</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="55"/> - <source><i>No application is currently playing audio.</i></source> - <translation>אף יישום לא מנגן שמע כרגע.</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="66"/> - <location filename="../mainwindow.ui" line="131"/> - <location filename="../mainwindow.ui" line="196"/> - <location filename="../mainwindow.ui" line="261"/> - <source>Show:</source> - <translation>הצגה:</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="74"/> - <location filename="../mainwindow.ui" line="139"/> - <source>All Streams</source> - <translation>כל התזרימים</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="79"/> - <location filename="../mainwindow.ui" line="144"/> - <source>Applications</source> - <translation>יישומים</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="84"/> - <location filename="../mainwindow.ui" line="149"/> - <source>Virtual Streams</source> - <translation>תזרימים וירטואליים</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="120"/> - <source><i>No application is currently recording audio.</i></source> - <translation>אף יישום לא מקליט שמע כרגע.</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="185"/> - <source><i>No output devices available</i></source> - <translation>אין התקני פלט זמינים</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="204"/> - <source>All Output Devices</source> - <translation>כל התקני הפלט</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="209"/> - <source>Hardware Output Devices</source> - <translation>התקני פלט חומרתיים</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="214"/> - <source>Virtual Output Devices</source> - <translation>התקני פלט וירטואליים</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="28"/> - <source>&Playback</source> - <translation>&נגינה</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="93"/> - <source>&Recording</source> - <translation>ה&קלטה</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="158"/> - <source>&Output Devices</source> - <translation>התקני &פלט</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="223"/> - <source>&Input Devices</source> - <translation>התקני &קלט</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="250"/> - <source><i>No input devices available</i></source> - <translation>אין התקני קלט זמינים</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="269"/> - <source>All Input Devices</source> - <translation>כל התקני הקלט</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="274"/> - <source>All Except Monitors</source> - <translation>הכול למעט צגים</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="279"/> - <source>Hardware Input Devices</source> - <translation>התקני קלט חומרתיים</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="284"/> - <source>Virtual Input Devices</source> - <translation>התקני קלט וירטואליים</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="289"/> - <source>Monitors</source> - <translation>צגים</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="298"/> - <source>&Configuration</source> - <translation>ה&גדרות</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="325"/> - <source><i>No cards available for configuration</i></source> - <translation>אין כרטיסים שאפשר להגדיר</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="336"/> - <source>Show volume meters</source> - <translation>הצגת מחווני עצמת שמע</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="347"/> - <source>...</source> - <translation>…</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="159"/> - <source> (plugged in)</source> - <translation> (מחובר)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="163"/> - <location filename="../mainwindow.cc" line="257"/> - <source> (unavailable)</source> - <translation> (לא זמין)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="165"/> - <location filename="../mainwindow.cc" line="254"/> - <source> (unplugged)</source> - <translation> (לא מחובר)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="388"/> - <source>Failed to read data from stream</source> - <translation>קריאת נתונים מהתזרים נכשלה</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="432"/> - <source>Peak detect</source> - <translation>זיהוי פסגות</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="433"/> - <source>Failed to create monitoring stream</source> - <translation>יצירת תזרים ניטור נכשלה</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="448"/> - <source>Failed to connect monitoring stream</source> - <translation>ההתחברות לתזרים הניטור נכשלה</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="587"/> - <source>Ignoring sink-input due to it being designated as an event and thus handled by the Event widget</source> - <translation>התעלמות מקלט משטף כיוון שהוא מוקצה כאירוע ולכן מטופל על ידי וידג׳ט האירועים</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="759"/> - <source>System Sounds</source> - <translation>צלילי המערכת</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="1089"/> - <source>Establishing connection to PulseAudio. Please wait...</source> - <translation>מתבצע חיבור ל־PulseAudio, נא להמתין…</translation> - </message> -</context> -<context> - <name>QObject</name> - <message> - <location filename="../pavucontrol.cc" line="66"/> - <source>Error</source> - <translation>שגיאה</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="87"/> - <source>Card callback failure</source> - <translation>הקריאה החוזרת מהכרטיס נכשלה</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="110"/> - <source>Sink callback failure</source> - <translation>הקריאה החוזרת מהמשטף נכשלה</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="133"/> - <source>Source callback failure</source> - <translation>הקריאה החוזרת מהמקור נכשלה</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="152"/> - <source>Sink input callback failure</source> - <translation>קריאת קלט חוזרת מהמשטף נכשלה</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="171"/> - <source>Source output callback failure</source> - <translation>קריאת פלט חוזרת מהמקור נכשלה</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="211"/> - <source>Client callback failure</source> - <translation>קריאת לקוח חוזרת נכשלה</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="227"/> - <source>Server info callback failure</source> - <translation>קריאת מידע שרת חוזרת נכשלה</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="245"/> - <location filename="../pavucontrol.cc" line="542"/> - <source>Failed to initialize stream_restore extension: %s</source> - <translation>הפעלת ההרחבה stream_restore נכשלה: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="263"/> - <source>pa_ext_stream_restore_read() failed</source> - <translation>pa_ext_stream_restore_read() נכשל</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="281"/> - <location filename="../pavucontrol.cc" line="556"/> - <source>Failed to initialize device restore extension: %s</source> - <translation>הפעלת הרחבת שחזור התקן נכשלה: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="302"/> - <source>pa_ext_device_restore_read_sink_formats() failed</source> - <translation>pa_ext_device_restore_read_sink_formats() נכשל</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="320"/> - <location filename="../pavucontrol.cc" line="569"/> - <source>Failed to initialize device manager extension: %s</source> - <translation>הפעלת הרחבת מנהל ההתקנים נכשלה: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="339"/> - <source>pa_ext_device_manager_read() failed</source> - <translation>pa_ext_device_manager_read() נכשל</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="356"/> - <source>pa_context_get_sink_info_by_index() failed</source> - <translation>pa_context_get_sink_info_by_index() נכשל</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="369"/> - <source>pa_context_get_source_info_by_index() failed</source> - <translation>pa_context_get_source_info_by_index() נכשל</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="382"/> - <location filename="../pavucontrol.cc" line="395"/> - <source>pa_context_get_sink_input_info() failed</source> - <translation>pa_context_get_sink_input_info() נכשל</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="408"/> - <source>pa_context_get_client_info() failed</source> - <translation>pa_context_get_client_info() נכשל</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="418"/> - <location filename="../pavucontrol.cc" line="483"/> - <source>pa_context_get_server_info() failed</source> - <translation>pa_context_get_server_info() נכשל</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="431"/> - <source>pa_context_get_card_info_by_index() failed</source> - <translation>pa_context_get_card_info_by_index() נכשל</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="474"/> - <source>pa_context_subscribe() failed</source> - <translation>pa_context_subscribe() נכשל</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="490"/> - <source>pa_context_client_info_list() failed</source> - <translation>pa_context_client_info_list() נכשל</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="497"/> - <source>pa_context_get_card_info_list() failed</source> - <translation>pa_context_get_card_info_list() נכשל</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="504"/> - <source>pa_context_get_sink_info_list() failed</source> - <translation>pa_context_get_sink_info_list() נכשל</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="511"/> - <source>pa_context_get_source_info_list() failed</source> - <translation>pa_context_get_source_info_list() נכשל</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="518"/> - <source>pa_context_get_sink_input_info_list() failed</source> - <translation>pa_context_get_sink_input_info_list() נכשל</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="525"/> - <source>pa_context_get_source_output_info_list() failed</source> - <translation>pa_context_get_source_output_info_list() נכשל</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="584"/> - <location filename="../pavucontrol.cc" line="635"/> - <source>Connection failed, attempting reconnect</source> - <translation>החיבור נכשל, מתבצע ניסיון חיבור מחודש</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="607"/> - <location filename="../pavucontrol.cc" line="664"/> - <source>PulseAudio Volume Control</source> - <translation>בקרת עצמת שמע PulseAudio</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="622"/> - <source>Connection to PulseAudio failed. Automatic retry in 5s - -In this case this is likely because PULSE_SERVER in the Environment/X11 Root Window Properties -or default-server in client.conf is misconfigured. -This situation can also arrise when PulseAudio crashed and left stale details in the X11 Root Window. -If this is the case, then PulseAudio should autospawn again, or if this is not configured you should -run start-pulseaudio-x11 manually.</source> - <translation>החיבור ל־PulseAudio נכשל. יתבצע ניסיון נוסף עוד 5 שניות - -במקרה שכזה יתכן שההגדרה של PULSE_SERVER במאפייני הסביבה/חלון הבסיס של X11 -או default-server ב־client.conf אינה נכונה. -מצב זה יכול להיגרם עקב קריסה של PulseAudio שהשאיר נתונים מיושנים בחלון הבסיס של X11. -אם זה המצב אז יש להפעיל את PulseAudio פנימית פעם נוספת, או אם הוא לא מוגדר לפעול פנימית -עליך להפעיל את start-pulseaudio-x11 ידנית.</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="672"/> - <source>Select a specific tab on load.</source> - <translation>בחירת לשונית מסוימת לטעינה.</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="675"/> - <source>Retry forever if pa quits (every 5 seconds).</source> - <translation>לנסות לעד אם הפעילות של pa הסתיימה (כל 5 שניות).</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="678"/> - <source>Maximize the window.</source> - <translation>הגדלת החלון.</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="703"/> - <source>Fatal Error: Unable to connect to PulseAudio</source> - <translation>שגיאה מכרעת: לא ניתן להתחבר ל־PulseAudio</translation> - </message> -</context> -<context> - <name>RoleWidget</name> - <message> - <location filename="../rolewidget.cc" line="59"/> - <source>pa_ext_stream_restore_write() failed</source> - <translation>pa_ext_stream_restore_write() נכשל</translation> - </message> -</context> -<context> - <name>SinkInputWidget</name> - <message> - <location filename="../sinkinputwidget.cc" line="36"/> - <source>on</source> - <translation></translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="39"/> - <source>Terminate Playback</source> - <translation>השמדת ניגון</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="53"/> - <source>Unknown output</source> - <translation>פלט לא ידוע</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="64"/> - <source>pa_context_set_sink_input_volume() failed</source> - <translation>pa_context_set_sink_input_volume() נכשל</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="79"/> - <source>pa_context_set_sink_input_mute() failed</source> - <translation>pa_context_set_sink_input_mute() נכשל</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="89"/> - <source>pa_context_kill_sink_input() failed</source> - <translation>pa_context_kill_sink_input() נכשל</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="114"/> - <source>pa_context_move_sink_input_by_index() failed</source> - <translation>pa_context_move_sink_input_by_index() נכשל</translation> - </message> -</context> -<context> - <name>SinkWidget</name> - <message> - <location filename="../sinkwidget.cc" line="81"/> - <source>pa_context_set_sink_volume_by_index() failed</source> - <translation>pa_context_set_sink_volume_by_index() נכשל</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="96"/> - <source>pa_context_set_sink_mute_by_index() failed</source> - <translation>pa_context_set_sink_mute_by_index() נכשל</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="110"/> - <source>pa_context_set_default_sink() failed</source> - <translation>pa_context_set_default_sink() נכשל</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="126"/> - <source>pa_context_set_sink_port_by_index() failed</source> - <translation>pa_context_set_sink_port_by_index() נכשל</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="166"/> - <source>pa_ext_device_restore_save_sink_formats() failed</source> - <translation>pa_ext_device_restore_save_sink_formats() נכשל</translation> - </message> -</context> -<context> - <name>SourceOutputWidget</name> - <message> - <location filename="../sourceoutputwidget.cc" line="35"/> - <source>from</source> - <translation>מ־</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="39"/> - <source>Terminate Recording</source> - <translation>חיסול הקלטה</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="60"/> - <source>Unknown input</source> - <translation>קלט לא ידוע</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="72"/> - <source>pa_context_set_source_output_volume() failed</source> - <translation>pa_context_set_source_output_volume() נכשל</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="87"/> - <source>pa_context_set_source_output_mute() failed</source> - <translation>pa_context_set_source_output_mute() נכשל</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="98"/> - <source>pa_context_kill_source_output() failed</source> - <translation>pa_context_kill_source_output() נכשל</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="125"/> - <source>pa_context_move_source_output_by_index() failed</source> - <translation>pa_context_move_source_output_by_index() נכשל</translation> - </message> -</context> -<context> - <name>SourceWidget</name> - <message> - <location filename="../sourcewidget.cc" line="35"/> - <source>pa_context_set_source_volume_by_index() failed</source> - <translation>pa_context_set_source_volume_by_index() נכשל</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="50"/> - <source>pa_context_set_source_mute_by_index() failed</source> - <translation>pa_context_set_source_mute_by_index() נכשל</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="64"/> - <source>pa_context_set_default_source() failed</source> - <translation>pa_context_set_default_source() נכשל</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="80"/> - <source>pa_context_set_source_port_by_index() failed</source> - <translation>pa_context_set_source_port_by_index() נכשל</translation> - </message> -</context> -<context> - <name>StreamWidget</name> - <message> - <location filename="../streamwidget.ui" line="14"/> - <source>Form</source> - <translation>טופס</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="32"/> - <source>Device Title</source> - <translation>כותרת התקן</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="52"/> - <source>direction</source> - <translation>כיוון</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="59"/> - <source>device</source> - <translation>התקן</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="66"/> - <source>Mute audio</source> - <translation>השתקת שמע</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="79"/> - <source>Lock channels together</source> - <translation>נעילת הערוצים זה לזה</translation> - </message> - <message> - <location filename="../streamwidget.cc" line="34"/> - <source>Terminate</source> - <translation>חיסול</translation> - </message> -</context> -</TS> diff --git a/src/translations/pavucontrol-qt_hi.ts b/src/translations/pavucontrol-qt_hi.ts deleted file mode 100644 index 85b9e76..0000000 --- a/src/translations/pavucontrol-qt_hi.ts +++ /dev/null @@ -1,737 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE TS> -<TS version="2.1" language="hi"> -<context> - <name>CardWidget</name> - <message> - <location filename="../cardwidget.ui" line="14"/> - <source>Form</source> - <translation>फॉर्म</translation> - </message> - <message> - <location filename="../cardwidget.ui" line="29"/> - <source>Card Name</source> - <translation>कार्ड नाम</translation> - </message> - <message> - <location filename="../cardwidget.ui" line="47"/> - <source>Profile:</source> - <translation>प्रोफ़ाइल:</translation> - </message> - <message> - <location filename="../cardwidget.cc" line="67"/> - <source>pa_context_set_card_profile_by_index() failed</source> - <translation>pa_context_set_card_profile_by_index() विफल</translation> - </message> -</context> -<context> - <name>Channel</name> - <message> - <location filename="../channel.cc" line="89"/> - <source>%1% (%2dB)</source> - <comment>volume slider label [X% (YdB)]</comment> - <translation>%1% (%2 डेसिबल)</translation> - </message> - <message> - <location filename="../channel.cc" line="93"/> - <source>%1%</source> - <comment>volume slider label [X%]</comment> - <translation>%1%</translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Silence</small></source> - <translation><small>शांत</small></translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Min</small></source> - <translation><small>न्यूनतम</small></translation> - </message> - <message> - <location filename="../channel.cc" line="162"/> - <source><small>100% (0dB)</small></source> - <translation><small>100% (0 डेसिबल)</small></translation> - </message> - <message> - <location filename="../channel.cc" line="165"/> - <source><small><i>Base</i></small></source> - <translation><small><i>बेस</i></small></translation> - </message> -</context> -<context> - <name>ChannelWidget</name> - <message> - <location filename="../channelwidget.ui" line="14"/> - <source>Form</source> - <translation>फॉर्म</translation> - </message> - <message> - <location filename="../channelwidget.ui" line="20"/> - <source><b>left-front</b></source> - <translation><b>बायां-सामने</b></translation> - </message> - <message> - <location filename="../channelwidget.ui" line="34"/> - <source><small>50%</small></source> - <translation><small>50%</small></translation> - </message> -</context> -<context> - <name>DeviceWidget</name> - <message> - <location filename="../devicewidget.ui" line="14"/> - <source>Form</source> - <translation>फॉर्म</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="36"/> - <source>Device Title</source> - <translation>उपकरण का शीर्षक</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="56"/> - <source>Mute audio</source> - <translation>ऑडियो को म्यूट करें</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="69"/> - <source>Lock channels together</source> - <translation>चैनलों को साथ लॉक करें</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="85"/> - <source>Set as fallback</source> - <translation>बैकअप विकल्प सेट करें</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="103"/> - <source><b>Port:</b></source> - <translation><b>पोर्ट:</b></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="126"/> - <source>Show advanced options</source> - <translation>एडवांस ऑप्शन देखें</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="172"/> - <source>PCM</source> - <translation>PCM</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="182"/> - <source>AC3</source> - <translation>AC3</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="189"/> - <source>EAC3</source> - <translation>EAC3</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="196"/> - <source>DTS</source> - <translation>DTS</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="203"/> - <source>MPEG</source> - <translation>MPEG</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="210"/> - <source>AAC</source> - <translation>AAC</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="238"/> - <source><b>Latency offset:</b></source> - <translation><b>विलंबता ओफ़्सेट</b></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="245"/> - <source> ms</source> - <translation> ms</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="41"/> - <source>Rename device...</source> - <translation>उपकरण का नाम बदलें...</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="155"/> - <source>pa_context_set_port_latency_offset() failed</source> - <translation>pa_context_set_port_latency_offset() असफल रहा</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="226"/> - <source>Sorry, but device renaming is not supported.</source> - <translation>क्षमा कीजिए, उपकरण का नाम बदलना समर्थित नहीं है.</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="227"/> - <source>You need to load module-device-manager in the PulseAudio server in order to rename devices</source> - <translation>उपकरणों का नाम बदलने के लिए, आपको PulseAudio server में module-device-manager को लोड करने की आवश्यकता है</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="233"/> - <source>Rename device %1 to:</source> - <translation>उपकरण %1 का नाम बदल कर ये करें :</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="240"/> - <source>pa_ext_device_manager_set_device_description() failed</source> - <translation>pa_ext_device_manager_set_device_description() असफल रहा</translation> - </message> -</context> -<context> - <name>MainWindow</name> - <message> - <location filename="../mainwindow.ui" line="14"/> - <source>Volume Control</source> - <translation>आवाज निर्धारक</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="28"/> - <source>&Playback</source> - <translation>प्लेबैक (&P)</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="55"/> - <source><i>No application is currently playing audio.</i></source> - <translation><i>कोई अनुप्रयोग अभी ऑडियो नहीं बजा रहा है.</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="66"/> - <location filename="../mainwindow.ui" line="131"/> - <location filename="../mainwindow.ui" line="196"/> - <location filename="../mainwindow.ui" line="261"/> - <source>Show:</source> - <translation>दिखाएं:</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="74"/> - <location filename="../mainwindow.ui" line="139"/> - <source>All Streams</source> - <translation>सभी स्ट्रीम</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="79"/> - <location filename="../mainwindow.ui" line="144"/> - <source>Applications</source> - <translation>एप्लिकेशन</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="84"/> - <location filename="../mainwindow.ui" line="149"/> - <source>Virtual Streams</source> - <translation>विर्चुअल स्ट्रीम</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="93"/> - <source>&Recording</source> - <translation>रिकॉर्ड कर रहा है (&R)</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="120"/> - <source><i>No application is currently recording audio.</i></source> - <translation><i>कोई अनुप्रयोग अभी ऑडियो नहीं रिकार्ड कर रहा है.</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="158"/> - <source>&Output Devices</source> - <translation>आउटपुट युक्ति (&O)</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="185"/> - <source><i>No output devices available</i></source> - <translation><i>कोई आउटपुट उपकरण उपलब्ध नहीं</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="204"/> - <source>All Output Devices</source> - <translation>सभी उत्पादन उपकरण</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="209"/> - <source>Hardware Output Devices</source> - <translation>हार्डवेयर उत्पादन उपकरण</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="214"/> - <source>Virtual Output Devices</source> - <translation>वर्चुअल उत्पादन उपकरण</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="223"/> - <source>&Input Devices</source> - <translation>इनपुट युक्तियाँ (&I)</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="250"/> - <source><i>No input devices available</i></source> - <translation><i>कोई इनपुट उपकरण उपलब्ध नहीं</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="269"/> - <source>All Input Devices</source> - <translation>सभी उत्पादक उपकरण</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="274"/> - <source>All Except Monitors</source> - <translation>मॉनिटर के सिवाय सभी</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="279"/> - <source>Hardware Input Devices</source> - <translation>हार्डवेयर उत्पादन उपकरण</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="284"/> - <source>Virtual Input Devices</source> - <translation>वर्चुअल उत्पादन उपकरण</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="289"/> - <source>Monitors</source> - <translation>मॉनिटर</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="298"/> - <source>&Configuration</source> - <translation>विन्यासन (&C)</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="325"/> - <source><i>No cards available for configuration</i></source> - <translation><i>विन्यास के लिए कोई कार्ड उपलब्ध नहीं</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="336"/> - <source>Show volume meters</source> - <translation>वॉल्यूम मीटर को देखें</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="347"/> - <source>...</source> - <translation>...</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="159"/> - <source> (plugged in)</source> - <translation> (प्लग इन किया गया)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="163"/> - <location filename="../mainwindow.cc" line="257"/> - <source> (unavailable)</source> - <translation> (उपलब्ध नहीं)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="165"/> - <location filename="../mainwindow.cc" line="254"/> - <source> (unplugged)</source> - <translation> (प्लग निकाल दिया गया)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="388"/> - <source>Failed to read data from stream</source> - <translation>स्ट्रीम से डेटा पढ़ने में विफल</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="432"/> - <source>Peak detect</source> - <translation>शीर्ष जाँच</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="433"/> - <source>Failed to create monitoring stream</source> - <translation>मॉनिटरिंग स्ट्रीम बनाने में विफल</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="448"/> - <source>Failed to connect monitoring stream</source> - <translation>मॉनिटरिंग स्ट्रीम कनेक्ट करने में विफल</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="587"/> - <source>Ignoring sink-input due to it being designated as an event and thus handled by the Event widget</source> - <translation>sink-input को इग्नोर किया जा रहा है क्यूंकि वह Event चिन्हित किया गया है और Event widget के द्वारा संभाला जायेगा</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="759"/> - <source>System Sounds</source> - <translation>सिस्टम ध्वनि</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="1089"/> - <source>Establishing connection to PulseAudio. Please wait...</source> - <translation>PulseAudio से कनेक्शन स्थापित किया जा रहा है, कृपया प्रतीक्षा करें...</translation> - </message> -</context> -<context> - <name>QObject</name> - <message> - <location filename="../pavucontrol.cc" line="66"/> - <source>Error</source> - <translation>त्रुटि</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="87"/> - <source>Card callback failure</source> - <translation>कॉर्ड कॉलबैक विफलता</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="110"/> - <source>Sink callback failure</source> - <translation>सिंक कॉलबैक विफलता</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="133"/> - <source>Source callback failure</source> - <translation>स्रोत कॉलबैक विफलता</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="152"/> - <source>Sink input callback failure</source> - <translation>सिंक इनपुट कॉलबैक विफलता</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="171"/> - <source>Source output callback failure</source> - <translation>स्रोत आउटपुट कॉलबैक विफलता</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="211"/> - <source>Client callback failure</source> - <translation>क्लाइंट कॉलबैक विफलता</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="227"/> - <source>Server info callback failure</source> - <translation>सर्वर सूचना कॉलबैक विफलता</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="245"/> - <location filename="../pavucontrol.cc" line="542"/> - <source>Failed to initialize stream_restore extension: %s</source> - <translation>stream_restore विस्तार आरंभ करने में विफल: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="263"/> - <source>pa_ext_stream_restore_read() failed</source> - <translation>pa_ext_stream_restore_read() विफल</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="281"/> - <location filename="../pavucontrol.cc" line="556"/> - <source>Failed to initialize device restore extension: %s</source> - <translation>उपकरण पुनर्स्थापना एक्सटेंशन प्रारम्भ करने में असफलता: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="302"/> - <source>pa_ext_device_restore_read_sink_formats() failed</source> - <translation>pa_ext_device_restore_read_sink_formats() विफल</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="320"/> - <location filename="../pavucontrol.cc" line="569"/> - <source>Failed to initialize device manager extension: %s</source> - <translation>उपकरण मैनेजर एक्सटेंसन प्रारम्भ करने में असफल: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="339"/> - <source>pa_ext_device_manager_read() failed</source> - <translation>pa_ext_device_manager_read() विफल</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="356"/> - <source>pa_context_get_sink_info_by_index() failed</source> - <translation>pa_context_get_sink_info_by_index() विफल</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="369"/> - <source>pa_context_get_source_info_by_index() failed</source> - <translation>pa_context_get_source_info_by_index() विफल</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="382"/> - <location filename="../pavucontrol.cc" line="395"/> - <source>pa_context_get_sink_input_info() failed</source> - <translation>pa_context_get_sink_input_info() विफल</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="408"/> - <source>pa_context_get_client_info() failed</source> - <translation>pa_context_get_client_info() विफल</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="418"/> - <location filename="../pavucontrol.cc" line="483"/> - <source>pa_context_get_server_info() failed</source> - <translation>pa_context_get_server_info() विफल</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="431"/> - <source>pa_context_get_card_info_by_index() failed</source> - <translation>pa_context_get_card_info_by_index() विफल</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="474"/> - <source>pa_context_subscribe() failed</source> - <translation>pa_context_subscribe() विफल</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="490"/> - <source>pa_context_client_info_list() failed</source> - <translation>pa_context_client_info_list() विफल</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="497"/> - <source>pa_context_get_card_info_list() failed</source> - <translation>pa_context_get_card_info_list() विफल</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="504"/> - <source>pa_context_get_sink_info_list() failed</source> - <translation>pa_context_get_sink_info_list() विफल</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="511"/> - <source>pa_context_get_source_info_list() failed</source> - <translation>pa_context_get_source_info_list() विफल</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="518"/> - <source>pa_context_get_sink_input_info_list() failed</source> - <translation>pa_context_get_sink_input_info_list() विफल</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="525"/> - <source>pa_context_get_source_output_info_list() failed</source> - <translation>pa_context_get_source_output_info_list() विफल</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="584"/> - <location filename="../pavucontrol.cc" line="635"/> - <source>Connection failed, attempting reconnect</source> - <translation>कनेक्शन असफल, दोबारा संपर्क करने का प्रयास कर रहे हैं</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="607"/> - <location filename="../pavucontrol.cc" line="664"/> - <source>PulseAudio Volume Control</source> - <translation>पल्सऑडियो ध्वनि नियंत्रण</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="622"/> - <source>Connection to PulseAudio failed. Automatic retry in 5s - -In this case this is likely because PULSE_SERVER in the Environment/X11 Root Window Properties -or default-server in client.conf is misconfigured. -This situation can also arrise when PulseAudio crashed and left stale details in the X11 Root Window. -If this is the case, then PulseAudio should autospawn again, or if this is not configured you should -run start-pulseaudio-x11 manually.</source> - <translation>PulseAudio से संपर्क करने में असफल. 5 सेकंड में पुनः स्वचालित प्रयास किया जावेगा - -इस स्थिति में, यह Environment/X11 Root Window Properties के भीतर PULSE_SERVER या client.conf के भीतर default-server की सेटिंग में गलती की वजह से हो सकता है। -यह स्तिथि PulseAudio के क्रैश होने और X11 Root Window में पुरानी डिटेल छोड़ने की वजह से हो सकती है। -अगर यह स्थिति है, तो PulseAudio का स्वचालित ढंग से पुनरारंभ होना चाहिए। अगर यह पुनः सेट नहीं है तो आप स्वयं start-pulseaudio-x11 को चालू करें।</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="672"/> - <source>Select a specific tab on load.</source> - <translation>चालू होने पर विशिष्ट टैब का चयन करें।</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="675"/> - <source>Retry forever if pa quits (every 5 seconds).</source> - <translation>pa के ख़त्म होने पर लगातार प्रयास करते रहे (हर 5 सेकंड में).</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="678"/> - <source>Maximize the window.</source> - <translation>खिड़की के आकार को अधिकतम करें।</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="703"/> - <source>Fatal Error: Unable to connect to PulseAudio</source> - <translation>गंभीर त्रुटि : PulseAudio से संपर्क करने में असफल</translation> - </message> -</context> -<context> - <name>RoleWidget</name> - <message> - <location filename="../rolewidget.cc" line="59"/> - <source>pa_ext_stream_restore_write() failed</source> - <translation>pa_ext_stream_restore_write() विफल</translation> - </message> -</context> -<context> - <name>SinkInputWidget</name> - <message> - <location filename="../sinkinputwidget.cc" line="36"/> - <source>on</source> - <translation>चालू</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="39"/> - <source>Terminate Playback</source> - <translation>प्लेबैक समाप्त करें</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="53"/> - <source>Unknown output</source> - <translation>अनजान आउटपुट</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="64"/> - <source>pa_context_set_sink_input_volume() failed</source> - <translation>pa_context_set_sink_input_volume() विफल</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="79"/> - <source>pa_context_set_sink_input_mute() failed</source> - <translation>pa_context_set_sink_input_mute() विफल</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="89"/> - <source>pa_context_kill_sink_input() failed</source> - <translation>pa_context_kill_sink_input() विफल</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="114"/> - <source>pa_context_move_sink_input_by_index() failed</source> - <translation>pa_context_move_sink_input_by_index() विफल</translation> - </message> -</context> -<context> - <name>SinkWidget</name> - <message> - <location filename="../sinkwidget.cc" line="81"/> - <source>pa_context_set_sink_volume_by_index() failed</source> - <translation>pa_context_set_sink_volume_by_index() विफल</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="96"/> - <source>pa_context_set_sink_mute_by_index() failed</source> - <translation>pa_context_set_sink_mute_by_index() विफल</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="110"/> - <source>pa_context_set_default_sink() failed</source> - <translation>pa_context_set_default_sink() विफल</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="126"/> - <source>pa_context_set_sink_port_by_index() failed</source> - <translation>pa_context_set_sink_port_by_index() विफल</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="166"/> - <source>pa_ext_device_restore_save_sink_formats() failed</source> - <translation>pa_ext_device_restore_save_sink_formats() विफल</translation> - </message> -</context> -<context> - <name>SourceOutputWidget</name> - <message> - <location filename="../sourceoutputwidget.cc" line="35"/> - <source>from</source> - <translation>से</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="39"/> - <source>Terminate Recording</source> - <translation>रिकॉर्ड करना सम्पत करें</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="60"/> - <source>Unknown input</source> - <translation>अनजान इनपुट</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="72"/> - <source>pa_context_set_source_output_volume() failed</source> - <translation>pa_context_set_source_output_volume() विफल</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="87"/> - <source>pa_context_set_source_output_mute() failed</source> - <translation>pa_context_set_source_output_mute() विफल</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="98"/> - <source>pa_context_kill_source_output() failed</source> - <translation>pa_context_kill_source_output() विफल</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="125"/> - <source>pa_context_move_source_output_by_index() failed</source> - <translation>pa_context_move_source_output_by_index() विफल</translation> - </message> -</context> -<context> - <name>SourceWidget</name> - <message> - <location filename="../sourcewidget.cc" line="35"/> - <source>pa_context_set_source_volume_by_index() failed</source> - <translation>pa_context_set_source_volume_by_index() विफल</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="50"/> - <source>pa_context_set_source_mute_by_index() failed</source> - <translation>pa_context_set_source_mute_by_index() विफल</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="64"/> - <source>pa_context_set_default_source() failed</source> - <translation>pa_context_set_default_source() विफल</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="80"/> - <source>pa_context_set_source_port_by_index() failed</source> - <translation>pa_context_set_source_port_by_index() विफल</translation> - </message> -</context> -<context> - <name>StreamWidget</name> - <message> - <location filename="../streamwidget.ui" line="14"/> - <source>Form</source> - <translation>फॉर्म</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="32"/> - <source>Device Title</source> - <translation>उपकरण शीर्षक</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="52"/> - <source>direction</source> - <translation>दिशा</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="59"/> - <source>device</source> - <translation>उपकरण</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="66"/> - <source>Mute audio</source> - <translation>आडियो को म्यूट करें</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="79"/> - <source>Lock channels together</source> - <translation>चैनलों को साथ में लॉक करें</translation> - </message> - <message> - <location filename="../streamwidget.cc" line="34"/> - <source>Terminate</source> - <translation>समाप्त करें</translation> - </message> -</context> -</TS> diff --git a/src/translations/pavucontrol-qt_hr.desktop.yaml b/src/translations/pavucontrol-qt_hr.desktop.yaml deleted file mode 100644 index 0ae8dc8..0000000 --- a/src/translations/pavucontrol-qt_hr.desktop.yaml +++ /dev/null @@ -1,3 +0,0 @@ -Desktop Entry/Name: "PulseAudio kontrola glasnoće" -Desktop Entry/GenericName: "Kontrola glasnoće" -Desktop Entry/Comment: "Podesi glasnoću" diff --git a/src/translations/pavucontrol-qt_hr.ts b/src/translations/pavucontrol-qt_hr.ts deleted file mode 100644 index 4b86781..0000000 --- a/src/translations/pavucontrol-qt_hr.ts +++ /dev/null @@ -1,739 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE TS> -<TS version="2.1" language="hr"> -<context> - <name>CardWidget</name> - <message> - <location filename="../cardwidget.ui" line="14"/> - <source>Form</source> - <translation>Obrazac</translation> - </message> - <message> - <location filename="../cardwidget.ui" line="29"/> - <source>Card Name</source> - <translation>Ime kartice</translation> - </message> - <message> - <location filename="../cardwidget.ui" line="47"/> - <source>Profile:</source> - <translation>Profil:</translation> - </message> - <message> - <location filename="../cardwidget.cc" line="67"/> - <source>pa_context_set_card_profile_by_index() failed</source> - <translation>pa_context_set_card_profile_by_index() neuspjelo</translation> - </message> -</context> -<context> - <name>Channel</name> - <message> - <location filename="../channel.cc" line="89"/> - <source>%1% (%2dB)</source> - <comment>volume slider label [X% (YdB)]</comment> - <translation>%1 % (%2 dB)</translation> - </message> - <message> - <location filename="../channel.cc" line="93"/> - <source>%1%</source> - <comment>volume slider label [X%]</comment> - <translation>%1 %</translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Silence</small></source> - <translation><small>Tišina</small></translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Min</small></source> - <translation><small>Min</small></translation> - </message> - <message> - <location filename="../channel.cc" line="162"/> - <source><small>100% (0dB)</small></source> - <translation><small>100 % (0 dB)</small></translation> - </message> - <message> - <location filename="../channel.cc" line="165"/> - <source><small><i>Base</i></small></source> - <translation><small><i>Osnova</i></small></translation> - </message> -</context> -<context> - <name>ChannelWidget</name> - <message> - <location filename="../channelwidget.ui" line="14"/> - <source>Form</source> - <translation>Obrazac</translation> - </message> - <message> - <location filename="../channelwidget.ui" line="20"/> - <source><b>left-front</b></source> - <translation><b>lijevi-prednji</b></translation> - </message> - <message> - <location filename="../channelwidget.ui" line="34"/> - <source><small>50%</small></source> - <translation><small>50 %</small></translation> - </message> -</context> -<context> - <name>DeviceWidget</name> - <message> - <location filename="../devicewidget.ui" line="14"/> - <source>Form</source> - <translation>Obrazac</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="36"/> - <source>Device Title</source> - <translation>Ime uređaja</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="56"/> - <source>Mute audio</source> - <translation>Isključi zvuk</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="69"/> - <source>Lock channels together</source> - <translation>Spoji kanale</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="85"/> - <source>Set as fallback</source> - <translation>Postavi kao rezervu</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="103"/> - <source><b>Port:</b></source> - <translation><b>Priključak:</b></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="126"/> - <source>Show advanced options</source> - <translation>Prikaži napredne opcije</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="172"/> - <source>PCM</source> - <translation>PCM</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="182"/> - <source>AC3</source> - <translation>AC3</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="189"/> - <source>EAC3</source> - <translation>EAC3</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="196"/> - <source>DTS</source> - <translation>DTS</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="203"/> - <source>MPEG</source> - <translation>MPEG</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="210"/> - <source>AAC</source> - <translation>AAC</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="238"/> - <source><b>Latency offset:</b></source> - <translation><b>Odmak kašnjenja:</b></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="245"/> - <source> ms</source> - <translation> ms</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="41"/> - <source>Rename device...</source> - <translation>Preimenuj uređaj …</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="155"/> - <source>pa_context_set_port_latency_offset() failed</source> - <translation>pa_context_set_port_latency_offset() neuspjelo</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="226"/> - <source>Sorry, but device renaming is not supported.</source> - <translation>Nažalost, preimenovanje uređaja nije podržano.</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="227"/> - <source>You need to load module-device-manager in the PulseAudio server in order to rename devices</source> - <translation>Za preimenovanje uređaja mora se učitati upravljač modula uređaja na PulseAudio poslužitelju</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="233"/> - <source>Rename device %1 to:</source> - <translation>Preimenuj uređaj %1 u:</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="240"/> - <source>pa_ext_device_manager_set_device_description() failed</source> - <translation>pa_ext_device_manager_set_device_description() neuspjelo</translation> - </message> -</context> -<context> - <name>MainWindow</name> - <message> - <location filename="../mainwindow.ui" line="14"/> - <source>Volume Control</source> - <translation>Kontrola glasnoće</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="55"/> - <source><i>No application is currently playing audio.</i></source> - <translation><i>Trenutačno ne svira nijedan program.</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="66"/> - <location filename="../mainwindow.ui" line="131"/> - <location filename="../mainwindow.ui" line="196"/> - <location filename="../mainwindow.ui" line="261"/> - <source>Show:</source> - <translation>Prikaži:</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="74"/> - <location filename="../mainwindow.ui" line="139"/> - <source>All Streams</source> - <translation>Sva emitiranja</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="79"/> - <location filename="../mainwindow.ui" line="144"/> - <source>Applications</source> - <translation>Programe</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="84"/> - <location filename="../mainwindow.ui" line="149"/> - <source>Virtual Streams</source> - <translation>Virtualna emitiranja</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="120"/> - <source><i>No application is currently recording audio.</i></source> - <translation><i>Trenutačno ne snima nijedan program.</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="185"/> - <source><i>No output devices available</i></source> - <translation><i>Nema dostupnih izlaznih uređaja</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="204"/> - <source>All Output Devices</source> - <translation>Sve izlazne uređaje</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="209"/> - <source>Hardware Output Devices</source> - <translation>Hardverske izlazne uređaje</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="214"/> - <source>Virtual Output Devices</source> - <translation>Virtualne izlazne uređaje</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="28"/> - <source>&Playback</source> - <translation>&Sviranje</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="93"/> - <source>&Recording</source> - <translation>S&nimanje</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="158"/> - <source>&Output Devices</source> - <translation>&Izlazni uređaji</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="223"/> - <source>&Input Devices</source> - <translation>&Ulazni uređaji</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="250"/> - <source><i>No input devices available</i></source> - <translation><i>Nema dostupnih ulaznih uređaja</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="269"/> - <source>All Input Devices</source> - <translation>Sve ulazne uređaje</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="274"/> - <source>All Except Monitors</source> - <translation>Sve osim monitora</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="279"/> - <source>Hardware Input Devices</source> - <translation>Hardverske ulazne uređaje</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="284"/> - <source>Virtual Input Devices</source> - <translation>Virtualne ulazne uređaje</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="289"/> - <source>Monitors</source> - <translation>Monitore</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="298"/> - <source>&Configuration</source> - <translation>&Konfiguracija</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="325"/> - <source><i>No cards available for configuration</i></source> - <translation><i>Nema dostupnih kartica koje bi se mogle konfigurirati</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="336"/> - <source>Show volume meters</source> - <translation>Prikaži mjerač glasnoće</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="347"/> - <source>...</source> - <translation>…</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="159"/> - <source> (plugged in)</source> - <translation> (priključeno)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="163"/> - <location filename="../mainwindow.cc" line="257"/> - <source> (unavailable)</source> - <translation> (nedostupno)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="165"/> - <location filename="../mainwindow.cc" line="254"/> - <source> (unplugged)</source> - <translation> (nepriključeno)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="388"/> - <source>Failed to read data from stream</source> - <translation>Neuspjelo čitanje podataka iz emitiranja</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="432"/> - <source>Peak detect</source> - <translation>Otkriven maksimum</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="433"/> - <source>Failed to create monitoring stream</source> - <translation>Neuspjelo stvaranje praćenja emitiranja</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="448"/> - <source>Failed to connect monitoring stream</source> - <translation>Neuspjelo povezivanje s praćenjem emitiranja</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="587"/> - <source>Ignoring sink-input due to it being designated as an event and thus handled by the Event widget</source> - <translation>Zanemaruje se ulazno primanja događaja, jer je označeno kao događaj i stoga se njime barata pomoću programčića Događaji</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="759"/> - <source>System Sounds</source> - <translation>Zvukovi sustava</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="1089"/> - <source>Establishing connection to PulseAudio. Please wait...</source> - <translation>Postavlja se veza s PulseAudio. Pričekaj …</translation> - </message> -</context> -<context> - <name>QObject</name> - <message> - <location filename="../pavucontrol.cc" line="66"/> - <source>Error</source> - <translation>Greška</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="87"/> - <source>Card callback failure</source> - <translation>Povratni poziv kartice nije uspio</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="110"/> - <source>Sink callback failure</source> - <translation>Povratni poziv primanja događaja nije uspio</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="133"/> - <source>Source callback failure</source> - <translation>Povratni poziv izvora nije uspio</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="152"/> - <source>Sink input callback failure</source> - <translation>Povratni poziv ulaznog primanja događaja nije uspio</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="171"/> - <source>Source output callback failure</source> - <translation>Povratni poziv izlaza izvora nije uspio</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="211"/> - <source>Client callback failure</source> - <translation>Povratni poziv klijenta nije uspio</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="227"/> - <source>Server info callback failure</source> - <translation>Povratni poziv informacija poslužitelja nije uspio</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="245"/> - <location filename="../pavucontrol.cc" line="542"/> - <source>Failed to initialize stream_restore extension: %s</source> - <translation>Neuspjelo inicijaliziranje proširenja za obnavljanje emitiranja: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="263"/> - <source>pa_ext_stream_restore_read() failed</source> - <translation>pa_ext_stream_restore_read() neuspjelo</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="281"/> - <location filename="../pavucontrol.cc" line="556"/> - <source>Failed to initialize device restore extension: %s</source> - <translation>Neuspjelo inicijaliziranje proširenja za obnavljanje uređaja: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="302"/> - <source>pa_ext_device_restore_read_sink_formats() failed</source> - <translation>pa_ext_device_restore_read_sink_formats() neuspjelo</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="320"/> - <location filename="../pavucontrol.cc" line="569"/> - <source>Failed to initialize device manager extension: %s</source> - <translation>Neuspjelo inicijaliziranje upravljača uređaja: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="339"/> - <source>pa_ext_device_manager_read() failed</source> - <translation>pa_ext_device_manager_read() neuspjelo</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="356"/> - <source>pa_context_get_sink_info_by_index() failed</source> - <translation>pa_context_get_sink_info_by_index() neuspjelo</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="369"/> - <source>pa_context_get_source_info_by_index() failed</source> - <translation>pa_context_get_source_info_by_index() neuspjelo</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="382"/> - <location filename="../pavucontrol.cc" line="395"/> - <source>pa_context_get_sink_input_info() failed</source> - <translation>pa_context_get_sink_input_info() neuspjelo</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="408"/> - <source>pa_context_get_client_info() failed</source> - <translation>pa_context_get_client_info() neuspjelo</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="418"/> - <location filename="../pavucontrol.cc" line="483"/> - <source>pa_context_get_server_info() failed</source> - <translation>pa_context_get_server_info() neuspjelo</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="431"/> - <source>pa_context_get_card_info_by_index() failed</source> - <translation>pa_context_get_card_info_by_index() neuspjelo</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="474"/> - <source>pa_context_subscribe() failed</source> - <translation>pa_context_subscribe() neuspjelo</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="490"/> - <source>pa_context_client_info_list() failed</source> - <translation>pa_context_client_info_list() neuspjelo</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="497"/> - <source>pa_context_get_card_info_list() failed</source> - <translation>pa_context_get_card_info_list() neuspjelo</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="504"/> - <source>pa_context_get_sink_info_list() failed</source> - <translation>pa_context_get_sink_info_list() neuspjelo</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="511"/> - <source>pa_context_get_source_info_list() failed</source> - <translation>pa_context_get_source_info_list() neuspjelo</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="518"/> - <source>pa_context_get_sink_input_info_list() failed</source> - <translation>pa_context_get_sink_input_info_list() neuspjelo</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="525"/> - <source>pa_context_get_source_output_info_list() failed</source> - <translation>pa_context_get_source_output_info_list() neuspjelo</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="584"/> - <location filename="../pavucontrol.cc" line="635"/> - <source>Connection failed, attempting reconnect</source> - <translation>Veza neuspjela, pokušava se ponovno uspostavljanje veze</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="607"/> - <location filename="../pavucontrol.cc" line="664"/> - <source>PulseAudio Volume Control</source> - <translation>Kontrola glasnoće za PulseAudio</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="622"/> - <source>Connection to PulseAudio failed. Automatic retry in 5s - -In this case this is likely because PULSE_SERVER in the Environment/X11 Root Window Properties -or default-server in client.conf is misconfigured. -This situation can also arrise when PulseAudio crashed and left stale details in the X11 Root Window. -If this is the case, then PulseAudio should autospawn again, or if this is not configured you should -run start-pulseaudio-x11 manually.</source> - <translation>Neuspjelo povezivanje s PulseAudio. Automatski pokušaj ponovo za 5 s - -U ovom se slučaju vjerojatno radi o pogrešnoj konfiguraciji za PULSE_SERVER u postavkama -administrativnog prozora okruženja/X11 ili za standardni poslužitelj u client.conf. -Ova se situacija može dogoditi i kad se PulseAudio sruši i ostavi detalje u administrativnom prozoru X11. -Ako se radi o takvom slučaju, PulseAudio bi se trebao ponovo automatski otvoriti ili ako nije -konfigurirano, pokreni start-pulseaudio-x11 ručno.</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="672"/> - <source>Select a specific tab on load.</source> - <translation>Odaberi određenu karticu za učitavanje.</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="675"/> - <source>Retry forever if pa quits (every 5 seconds).</source> - <translation>Pokušaj ponovo unedogled, ako se PA zatvori (svakih 5 s).</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="678"/> - <source>Maximize the window.</source> - <translation>Maksimalno proširi prozor.</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="703"/> - <source>Fatal Error: Unable to connect to PulseAudio</source> - <translation>Fatalna greška: Povezivanje s PulseAudio nije moguće</translation> - </message> -</context> -<context> - <name>RoleWidget</name> - <message> - <location filename="../rolewidget.cc" line="59"/> - <source>pa_ext_stream_restore_write() failed</source> - <translation>pa_ext_stream_restore_write() neuspjelo</translation> - </message> -</context> -<context> - <name>SinkInputWidget</name> - <message> - <location filename="../sinkinputwidget.cc" line="36"/> - <source>on</source> - <translation>na</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="39"/> - <source>Terminate Playback</source> - <translation>Prekini sviranje</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="53"/> - <source>Unknown output</source> - <translation>Nepoznat izlaz</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="64"/> - <source>pa_context_set_sink_input_volume() failed</source> - <translation>pa_context_set_sink_input_volume() neuspjelo</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="79"/> - <source>pa_context_set_sink_input_mute() failed</source> - <translation>pa_context_set_sink_input_mute() neuspjelo</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="89"/> - <source>pa_context_kill_sink_input() failed</source> - <translation>pa_context_kill_sink_input() neuspjelo</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="114"/> - <source>pa_context_move_sink_input_by_index() failed</source> - <translation>pa_context_move_sink_input_by_index() neuspjelo</translation> - </message> -</context> -<context> - <name>SinkWidget</name> - <message> - <location filename="../sinkwidget.cc" line="81"/> - <source>pa_context_set_sink_volume_by_index() failed</source> - <translation>pa_context_set_sink_volume_by_index() neuspjelo</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="96"/> - <source>pa_context_set_sink_mute_by_index() failed</source> - <translation>pa_context_set_sink_mute_by_index() neuspjelo</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="110"/> - <source>pa_context_set_default_sink() failed</source> - <translation>pa_context_set_default_sink() neuspjelo</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="126"/> - <source>pa_context_set_sink_port_by_index() failed</source> - <translation>pa_context_set_sink_port_by_index() neuspjelo</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="166"/> - <source>pa_ext_device_restore_save_sink_formats() failed</source> - <translation>pa_ext_device_restore_save_sink_formats() neuspjelo</translation> - </message> -</context> -<context> - <name>SourceOutputWidget</name> - <message> - <location filename="../sourceoutputwidget.cc" line="35"/> - <source>from</source> - <translation>od</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="39"/> - <source>Terminate Recording</source> - <translation>Prekini snimanje</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="60"/> - <source>Unknown input</source> - <translation>Nepoznat ulaz</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="72"/> - <source>pa_context_set_source_output_volume() failed</source> - <translation>pa_context_set_source_output_volume() neuspjelo</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="87"/> - <source>pa_context_set_source_output_mute() failed</source> - <translation>pa_context_set_source_output_mute() neuspjelo</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="98"/> - <source>pa_context_kill_source_output() failed</source> - <translation>pa_context_kill_source_output() neuspjelo</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="125"/> - <source>pa_context_move_source_output_by_index() failed</source> - <translation>pa_context_move_source_output_by_index() neuspjelo</translation> - </message> -</context> -<context> - <name>SourceWidget</name> - <message> - <location filename="../sourcewidget.cc" line="35"/> - <source>pa_context_set_source_volume_by_index() failed</source> - <translation>pa_context_set_source_volume_by_index() neuspjelo</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="50"/> - <source>pa_context_set_source_mute_by_index() failed</source> - <translation>pa_context_set_source_mute_by_index() neuspjelo</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="64"/> - <source>pa_context_set_default_source() failed</source> - <translation>pa_context_set_default_source() neuspjelo</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="80"/> - <source>pa_context_set_source_port_by_index() failed</source> - <translation>pa_context_set_source_port_by_index() neuspjelo</translation> - </message> -</context> -<context> - <name>StreamWidget</name> - <message> - <location filename="../streamwidget.ui" line="14"/> - <source>Form</source> - <translation>Obrazac</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="32"/> - <source>Device Title</source> - <translation>Ime uređaja</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="52"/> - <source>direction</source> - <translation>smjer</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="59"/> - <source>device</source> - <translation>uređaj</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="66"/> - <source>Mute audio</source> - <translation>Isključi zvuk</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="79"/> - <source>Lock channels together</source> - <translation>Spoji kanale</translation> - </message> - <message> - <location filename="../streamwidget.cc" line="34"/> - <source>Terminate</source> - <translation>Prekini</translation> - </message> -</context> -</TS> diff --git a/src/translations/pavucontrol-qt_hu.desktop.yaml b/src/translations/pavucontrol-qt_hu.desktop.yaml deleted file mode 100644 index 6b0e522..0000000 --- a/src/translations/pavucontrol-qt_hu.desktop.yaml +++ /dev/null @@ -1,3 +0,0 @@ -Desktop Entry/Name: "PulseAudio hangerőszabályzó" -Desktop Entry/GenericName: "Hangerőszabályzó" -Desktop Entry/Comment: "Hangerő beállítása" diff --git a/src/translations/pavucontrol-qt_hu.ts b/src/translations/pavucontrol-qt_hu.ts deleted file mode 100644 index 27f9611..0000000 --- a/src/translations/pavucontrol-qt_hu.ts +++ /dev/null @@ -1,739 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE TS> -<TS version="2.1" language="hu"> -<context> - <name>CardWidget</name> - <message> - <location filename="../cardwidget.ui" line="14"/> - <source>Form</source> - <translation>Űrlap</translation> - </message> - <message> - <location filename="../cardwidget.ui" line="29"/> - <source>Card Name</source> - <translation>Kártya neve</translation> - </message> - <message> - <location filename="../cardwidget.ui" line="47"/> - <source>Profile:</source> - <translation>Profil:</translation> - </message> - <message> - <location filename="../cardwidget.cc" line="67"/> - <source>pa_context_set_card_profile_by_index() failed</source> - <translation>pa_context_set_card_profile_by_index() meghiúsult</translation> - </message> -</context> -<context> - <name>Channel</name> - <message> - <location filename="../channel.cc" line="89"/> - <source>%1% (%2dB)</source> - <comment>volume slider label [X% (YdB)]</comment> - <translation></translation> - </message> - <message> - <location filename="../channel.cc" line="93"/> - <source>%1%</source> - <comment>volume slider label [X%]</comment> - <translation></translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Silence</small></source> - <translation><small>Csendes</small></translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Min</small></source> - <translation></translation> - </message> - <message> - <location filename="../channel.cc" line="162"/> - <source><small>100% (0dB)</small></source> - <translation></translation> - </message> - <message> - <location filename="../channel.cc" line="165"/> - <source><small><i>Base</i></small></source> - <translation><small><i>Alap</i></small></translation> - </message> -</context> -<context> - <name>ChannelWidget</name> - <message> - <location filename="../channelwidget.ui" line="14"/> - <source>Form</source> - <translation>Űrlap</translation> - </message> - <message> - <location filename="../channelwidget.ui" line="20"/> - <source><b>left-front</b></source> - <translation><b>bal-elöl</b></translation> - </message> - <message> - <location filename="../channelwidget.ui" line="34"/> - <source><small>50%</small></source> - <translation><small>50%</small></translation> - </message> -</context> -<context> - <name>DeviceWidget</name> - <message> - <location filename="../devicewidget.ui" line="14"/> - <source>Form</source> - <translation>Űrlap</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="36"/> - <source>Device Title</source> - <translation>Eszközcím</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="56"/> - <source>Mute audio</source> - <translation>Némítás</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="69"/> - <source>Lock channels together</source> - <translation>Csatornák összekapcsolása</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="85"/> - <source>Set as fallback</source> - <translation>Tartaléknak vétel</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="103"/> - <source><b>Port:</b></source> - <translation></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="126"/> - <source>Show advanced options</source> - <translation>Haladó beállítások megjelenítése</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="172"/> - <source>PCM</source> - <translation></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="182"/> - <source>AC3</source> - <translation></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="189"/> - <source>EAC3</source> - <translation></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="196"/> - <source>DTS</source> - <translation></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="203"/> - <source>MPEG</source> - <translation></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="210"/> - <source>AAC</source> - <translation></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="238"/> - <source><b>Latency offset:</b></source> - <translation><b>Késleltetés:</b></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="245"/> - <source> ms</source> - <translation></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="41"/> - <source>Rename device...</source> - <translation>Eszköz átnevezése...</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="155"/> - <source>pa_context_set_port_latency_offset() failed</source> - <translation>pa_context_set_port_latency_offset() meghiúsult</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="226"/> - <source>Sorry, but device renaming is not supported.</source> - <translation>Sajnos az eszköz átnevezése nem támogatott.</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="227"/> - <source>You need to load module-device-manager in the PulseAudio server in order to rename devices</source> - <translation>Az eszközök átnevezéséhez a module-device-managert be kell töltenie a PulseAudio szerverben</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="233"/> - <source>Rename device %1 to:</source> - <translation>A %1 eszköz átnevezése erre:</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="240"/> - <source>pa_ext_device_manager_set_device_description() failed</source> - <translation>pa_ext_device_manager_set_device_description() meghiúsult</translation> - </message> -</context> -<context> - <name>MainWindow</name> - <message> - <location filename="../mainwindow.ui" line="14"/> - <source>Volume Control</source> - <translation>Hangerőszabályzó</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="55"/> - <source><i>No application is currently playing audio.</i></source> - <translation><i>Jelenleg egy alkalmazás sem játszik le hangot.</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="66"/> - <location filename="../mainwindow.ui" line="131"/> - <location filename="../mainwindow.ui" line="196"/> - <location filename="../mainwindow.ui" line="261"/> - <source>Show:</source> - <translation>Megjelenítés:</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="74"/> - <location filename="../mainwindow.ui" line="139"/> - <source>All Streams</source> - <translation>Minden adatfolyam</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="79"/> - <location filename="../mainwindow.ui" line="144"/> - <source>Applications</source> - <translation>Alkalmazások</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="84"/> - <location filename="../mainwindow.ui" line="149"/> - <source>Virtual Streams</source> - <translation>Virtuális adatfolyamok</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="120"/> - <source><i>No application is currently recording audio.</i></source> - <translation><i>Jelenleg egy alkalmazás sem vesz fel hangot.</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="185"/> - <source><i>No output devices available</i></source> - <translation><i>Nem állnak rendelkezésre kimeneti eszközök</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="204"/> - <source>All Output Devices</source> - <translation>Minden kimeneti eszköz</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="209"/> - <source>Hardware Output Devices</source> - <translation>Hardveres kimeneti eszközök</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="214"/> - <source>Virtual Output Devices</source> - <translation>Virtuális kimeneti eszközök</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="28"/> - <source>&Playback</source> - <translation>&Lejátszás</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="93"/> - <source>&Recording</source> - <translation>&Felvétel</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="158"/> - <source>&Output Devices</source> - <translation>&Kimeneti eszközök</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="223"/> - <source>&Input Devices</source> - <translation>Bemenet&i eszközök</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="250"/> - <source><i>No input devices available</i></source> - <translation><i>Nem állnak rendelkezésre bemeneti eszközök</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="269"/> - <source>All Input Devices</source> - <translation>Minden bemeneti eszköz</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="274"/> - <source>All Except Monitors</source> - <translation>Minden a monitorokat kivéve</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="279"/> - <source>Hardware Input Devices</source> - <translation>Hardveres bemeneti eszközök</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="284"/> - <source>Virtual Input Devices</source> - <translation>Virtuális bementi eszközök</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="289"/> - <source>Monitors</source> - <translation>Monitorok</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="298"/> - <source>&Configuration</source> - <translation>&Beállítások</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="325"/> - <source><i>No cards available for configuration</i></source> - <translation><i>Nem érhetők el beállítható kártyák</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="336"/> - <source>Show volume meters</source> - <translation>hangerőmérők megjelenítése</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="347"/> - <source>...</source> - <translation></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="159"/> - <source> (plugged in)</source> - <translation> (csatlakoztatva)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="163"/> - <location filename="../mainwindow.cc" line="257"/> - <source> (unavailable)</source> - <translation> (nem elérhető)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="165"/> - <location filename="../mainwindow.cc" line="254"/> - <source> (unplugged)</source> - <translation> (nincs csatlakoztatva)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="388"/> - <source>Failed to read data from stream</source> - <translation>Az adatok olvasása meghiúsult az adatfolyamból</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="432"/> - <source>Peak detect</source> - <translation>Csúcsérzékelés</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="433"/> - <source>Failed to create monitoring stream</source> - <translation>A megfigyelő adatfolyam létrehozása meghiúsult</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="448"/> - <source>Failed to connect monitoring stream</source> - <translation>Nem sikerült csatlakozni a megfigyelő adatfolyamhoz</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="587"/> - <source>Ignoring sink-input due to it being designated as an event and thus handled by the Event widget</source> - <translation type="unfinished">Nyelő bemenet figyelmen kívül hagyása, mert eseménynek minősül, és így az eseménykezelő kezeli</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="759"/> - <source>System Sounds</source> - <translation>Rendszerhangok</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="1089"/> - <source>Establishing connection to PulseAudio. Please wait...</source> - <translation>Kapcsolat létrehozása a PulseAudio-val. Kérjük várjon...</translation> - </message> -</context> -<context> - <name>QObject</name> - <message> - <location filename="../pavucontrol.cc" line="66"/> - <source>Error</source> - <translation>Hiba</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="87"/> - <source>Card callback failure</source> - <translation>Függvényvisszatérési hiba a kártyán</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="110"/> - <source>Sink callback failure</source> - <translation>Függvényvisszatérési hiba a nyelőn</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="133"/> - <source>Source callback failure</source> - <translation>Függvényvisszatérési hiba a forráson</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="152"/> - <source>Sink input callback failure</source> - <translation>Függvényvisszatérési hiba a nyelőbemeneten</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="171"/> - <source>Source output callback failure</source> - <translation>Függvényvisszatérési hiba a forrás kimenetén</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="211"/> - <source>Client callback failure</source> - <translation>Függvényvisszatérési hiba a kliensnél</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="227"/> - <source>Server info callback failure</source> - <translation>Függvényvisszatérési hiba a kiszolgálónál</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="245"/> - <location filename="../pavucontrol.cc" line="542"/> - <source>Failed to initialize stream_restore extension: %s</source> - <translation>Az adatfolyam visszaállítása (stream_restore) kiterjesztés előkészítése meghiúsult: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="263"/> - <source>pa_ext_stream_restore_read() failed</source> - <translation>pa_ext_stream_restore_read() meghiúsult</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="281"/> - <location filename="../pavucontrol.cc" line="556"/> - <source>Failed to initialize device restore extension: %s</source> - <translation>Nem sikerült inicializálni az eszköz-visszaállítási kiterjesztést: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="302"/> - <source>pa_ext_device_restore_read_sink_formats() failed</source> - <translation>pa_ext_stream_restore_read_sink_formats() meghiúsult</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="320"/> - <location filename="../pavucontrol.cc" line="569"/> - <source>Failed to initialize device manager extension: %s</source> - <translation>Nem sikerült inicializálni az eszközkezelő kiterjesztést: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="339"/> - <source>pa_ext_device_manager_read() failed</source> - <translation>pa_ext_device_manager_read() meghiúsult</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="356"/> - <source>pa_context_get_sink_info_by_index() failed</source> - <translation>pa_context_get_sink_info_by_index() meghiúsult</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="369"/> - <source>pa_context_get_source_info_by_index() failed</source> - <translation>pa_context_get_source_info_by_index() meghiúsult</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="382"/> - <location filename="../pavucontrol.cc" line="395"/> - <source>pa_context_get_sink_input_info() failed</source> - <translation>pa_context_get_sink_input_info() meghiúsult</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="408"/> - <source>pa_context_get_client_info() failed</source> - <translation>pa_context_get_client_info() meghiúsult</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="418"/> - <location filename="../pavucontrol.cc" line="483"/> - <source>pa_context_get_server_info() failed</source> - <translation>pa_context_get_server_info() meghiúsult</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="431"/> - <source>pa_context_get_card_info_by_index() failed</source> - <translation>pa_context_get_card_info_by_index() meghiúsult</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="474"/> - <source>pa_context_subscribe() failed</source> - <translation>pa_context_subscribe() meghiúsult</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="490"/> - <source>pa_context_client_info_list() failed</source> - <translation>pa_context_client_info_list() meghiúsult</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="497"/> - <source>pa_context_get_card_info_list() failed</source> - <translation>pa_context_get_card_info_list() meghiúsult</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="504"/> - <source>pa_context_get_sink_info_list() failed</source> - <translation>pa_context_get_sink_info_list() meghiúsult</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="511"/> - <source>pa_context_get_source_info_list() failed</source> - <translation>pa_context_get_source_info_list() meghiúsult</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="518"/> - <source>pa_context_get_sink_input_info_list() failed</source> - <translation>pa_context_get_sink_input_info_list() meghiúsult</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="525"/> - <source>pa_context_get_source_output_info_list() failed</source> - <translation>pa_context_get_source_output_info_list() meghiúsult</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="584"/> - <location filename="../pavucontrol.cc" line="635"/> - <source>Connection failed, attempting reconnect</source> - <translation>Csatlakozás sikertelen, újrapróbálkozás</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="607"/> - <location filename="../pavucontrol.cc" line="664"/> - <source>PulseAudio Volume Control</source> - <translation>PulseAudio hangerőszabályzó</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="622"/> - <source>Connection to PulseAudio failed. Automatic retry in 5s - -In this case this is likely because PULSE_SERVER in the Environment/X11 Root Window Properties -or default-server in client.conf is misconfigured. -This situation can also arrise when PulseAudio crashed and left stale details in the X11 Root Window. -If this is the case, then PulseAudio should autospawn again, or if this is not configured you should -run start-pulseaudio-x11 manually.</source> - <translation>A PulseAudio-hoz való csatlakozás sikertelen. Automatikus újrapróbálkozás 5 mp múlva - -Ebben az esetben ez valószínűleg azért van, mert a PULSE_SERVER a környezetben/X11 root ablak tulajdonságaiban -vagy a client.conf-ban az alapértelmezett kiszolgáló helytelenül van beállítva. -Ez a helyzet akkor is előfordulhat, ha a PulseAudio összeomlott, és elakadt részleteket hagyott az X11 gyökérablakban. -Ebben az esetben a PulseAudio-nak automatikusan újra kell indulnia, vagy ha ez nincs beállítva, akkor -a start-pulseaudio-x11-et manuálisan kell futtatni.</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="672"/> - <source>Select a specific tab on load.</source> - <translation>Válassza ki megfelelő lapot a betöltéshez.</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="675"/> - <source>Retry forever if pa quits (every 5 seconds).</source> - <translation>Mindig újrapróbálkozik, ha a PA kilép (5 másodpercenként).</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="678"/> - <source>Maximize the window.</source> - <translation>Ablak maximalizálása.</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="703"/> - <source>Fatal Error: Unable to connect to PulseAudio</source> - <translation>Végzetes hiba: A PulseAudio-hoz való csatlakozás sikertelen</translation> - </message> -</context> -<context> - <name>RoleWidget</name> - <message> - <location filename="../rolewidget.cc" line="59"/> - <source>pa_ext_stream_restore_write() failed</source> - <translation>pa_ext_stream_restore_write() meghiúsult</translation> - </message> -</context> -<context> - <name>SinkInputWidget</name> - <message> - <location filename="../sinkinputwidget.cc" line="36"/> - <source>on</source> - <translation>eszköz</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="39"/> - <source>Terminate Playback</source> - <translation>Lejátszás kilövése</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="53"/> - <source>Unknown output</source> - <translation>Ismeretlen kimenet</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="64"/> - <source>pa_context_set_sink_input_volume() failed</source> - <translation>pa_context_set_sink_input_volume() meghiúsult</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="79"/> - <source>pa_context_set_sink_input_mute() failed</source> - <translation>pa_context_set_sink_input_mute() meghiúsult</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="89"/> - <source>pa_context_kill_sink_input() failed</source> - <translation>pa_context_kill_sink_input() meghiúsult</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="114"/> - <source>pa_context_move_sink_input_by_index() failed</source> - <translation>pa_context_move_sink_input_by_index() meghiúsult</translation> - </message> -</context> -<context> - <name>SinkWidget</name> - <message> - <location filename="../sinkwidget.cc" line="81"/> - <source>pa_context_set_sink_volume_by_index() failed</source> - <translation>pa_context_set_sink_volume_by_index() meghiúsult</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="96"/> - <source>pa_context_set_sink_mute_by_index() failed</source> - <translation>pa_context_set_sink_mute_by_index() meghiúsult</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="110"/> - <source>pa_context_set_default_sink() failed</source> - <translation>pa_context_set_default_sink() meghiúsult</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="126"/> - <source>pa_context_set_sink_port_by_index() failed</source> - <translation>pa_context_set_sink_port_by_index() meghiúsult</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="166"/> - <source>pa_ext_device_restore_save_sink_formats() failed</source> - <translation>pa_ext_device_restore_save_sink_formats() meghiúsult</translation> - </message> -</context> -<context> - <name>SourceOutputWidget</name> - <message> - <location filename="../sourceoutputwidget.cc" line="35"/> - <source>from</source> - <translation>bemenet</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="39"/> - <source>Terminate Recording</source> - <translation>Felvétel kilövése</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="60"/> - <source>Unknown input</source> - <translation>Ismeretlen bemenet</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="72"/> - <source>pa_context_set_source_output_volume() failed</source> - <translation>pa_context_set_source_output_volume() meghiúsult</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="87"/> - <source>pa_context_set_source_output_mute() failed</source> - <translation>pa_context_set_source_output_mute() meghiúsult</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="98"/> - <source>pa_context_kill_source_output() failed</source> - <translation>pa_context_kill_source_output() meghiúsult</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="125"/> - <source>pa_context_move_source_output_by_index() failed</source> - <translation>pa_context_move_source_output_by_index() meghiúsult</translation> - </message> -</context> -<context> - <name>SourceWidget</name> - <message> - <location filename="../sourcewidget.cc" line="35"/> - <source>pa_context_set_source_volume_by_index() failed</source> - <translation>pa_context_set_source_volume_by_index() meghiúsult</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="50"/> - <source>pa_context_set_source_mute_by_index() failed</source> - <translation>pa_context_set_source_mute_by_index() meghiúsult</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="64"/> - <source>pa_context_set_default_source() failed</source> - <translation>pa_context_set_default_source() meghiúsult</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="80"/> - <source>pa_context_set_source_port_by_index() failed</source> - <translation>pa_context_set_source_port_by_index() meghiúsult</translation> - </message> -</context> -<context> - <name>StreamWidget</name> - <message> - <location filename="../streamwidget.ui" line="14"/> - <source>Form</source> - <translation>Űrlap</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="32"/> - <source>Device Title</source> - <translation>Eszköz név</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="52"/> - <source>direction</source> - <translation>irány</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="59"/> - <source>device</source> - <translation>eszköz</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="66"/> - <source>Mute audio</source> - <translation>Némítás</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="79"/> - <source>Lock channels together</source> - <translation>Csatornák összekapcsolása</translation> - </message> - <message> - <location filename="../streamwidget.cc" line="34"/> - <source>Terminate</source> - <translation>Kilövés</translation> - </message> -</context> -</TS> diff --git a/src/translations/pavucontrol-qt_id.ts b/src/translations/pavucontrol-qt_id.ts deleted file mode 100644 index d7ed151..0000000 --- a/src/translations/pavucontrol-qt_id.ts +++ /dev/null @@ -1,739 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE TS> -<TS version="2.1" language="id"> -<context> - <name>CardWidget</name> - <message> - <location filename="../cardwidget.ui" line="14"/> - <source>Form</source> - <translation>Formulir</translation> - </message> - <message> - <location filename="../cardwidget.ui" line="29"/> - <source>Card Name</source> - <translation>Nama Kartu</translation> - </message> - <message> - <location filename="../cardwidget.ui" line="47"/> - <source>Profile:</source> - <translation>Profil:</translation> - </message> - <message> - <location filename="../cardwidget.cc" line="67"/> - <source>pa_context_set_card_profile_by_index() failed</source> - <translation>pa_context_set_card_profile_by_index() gagal</translation> - </message> -</context> -<context> - <name>Channel</name> - <message> - <location filename="../channel.cc" line="89"/> - <source>%1% (%2dB)</source> - <comment>volume slider label [X% (YdB)]</comment> - <translation>%1% (%2dB)</translation> - </message> - <message> - <location filename="../channel.cc" line="93"/> - <source>%1%</source> - <comment>volume slider label [X%]</comment> - <translation>%1%</translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Silence</small></source> - <translation><small>Diam</small></translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Min</small></source> - <translation><small>Min</small></translation> - </message> - <message> - <location filename="../channel.cc" line="162"/> - <source><small>100% (0dB)</small></source> - <translation><small>100% (0dB)</small></translation> - </message> - <message> - <location filename="../channel.cc" line="165"/> - <source><small><i>Base</i></small></source> - <translation><small><i>Bas</i></small></translation> - </message> -</context> -<context> - <name>ChannelWidget</name> - <message> - <location filename="../channelwidget.ui" line="14"/> - <source>Form</source> - <translation>Formulir</translation> - </message> - <message> - <location filename="../channelwidget.ui" line="20"/> - <source><b>left-front</b></source> - <translation><b>depan-kiri</b></translation> - </message> - <message> - <location filename="../channelwidget.ui" line="34"/> - <source><small>50%</small></source> - <translation><small>50%</small></translation> - </message> -</context> -<context> - <name>DeviceWidget</name> - <message> - <location filename="../devicewidget.ui" line="14"/> - <source>Form</source> - <translation>Formulir</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="36"/> - <source>Device Title</source> - <translation>Nama Perangkat</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="56"/> - <source>Mute audio</source> - <translation>Audio bisu</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="69"/> - <source>Lock channels together</source> - <translation>Kunci saluran bersama</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="85"/> - <source>Set as fallback</source> - <translation>Tetapkan sebagai fallback</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="103"/> - <source><b>Port:</b></source> - <translation><b>Port:</b></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="126"/> - <source>Show advanced options</source> - <translation>Tampilkan opsi lanjutan</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="172"/> - <source>PCM</source> - <translation>PCM</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="182"/> - <source>AC3</source> - <translation>AC3</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="189"/> - <source>EAC3</source> - <translation>EAC3</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="196"/> - <source>DTS</source> - <translation>DTS</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="203"/> - <source>MPEG</source> - <translation>MPEG</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="210"/> - <source>AAC</source> - <translation>AAC</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="238"/> - <source><b>Latency offset:</b></source> - <translation><b>Offset latensi:</b></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="245"/> - <source> ms</source> - <translation> ms</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="41"/> - <source>Rename device...</source> - <translation>Ubah nama perangkat...</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="155"/> - <source>pa_context_set_port_latency_offset() failed</source> - <translation>pa_context_set_port_latency_offset() gagal</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="226"/> - <source>Sorry, but device renaming is not supported.</source> - <translation>Maaf, tetapi mengubah nama perangkat tidak didukung.</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="227"/> - <source>You need to load module-device-manager in the PulseAudio server in order to rename devices</source> - <translation>Anda perlu memuat modul-device-manager di server PulseAudio untuk mengganti nama perangkat</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="233"/> - <source>Rename device %1 to:</source> - <translation>Ubah nama perangkat %1 ke:</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="240"/> - <source>pa_ext_device_manager_set_device_description() failed</source> - <translation>pa_ext_device_manager_set_device_description() gagal</translation> - </message> -</context> -<context> - <name>MainWindow</name> - <message> - <location filename="../mainwindow.ui" line="14"/> - <source>Volume Control</source> - <translation>Kontrol Volume</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="55"/> - <source><i>No application is currently playing audio.</i></source> - <translation><i>Tak ada aplikasi yang sedang memutar audio.</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="66"/> - <location filename="../mainwindow.ui" line="131"/> - <location filename="../mainwindow.ui" line="196"/> - <location filename="../mainwindow.ui" line="261"/> - <source>Show:</source> - <translation>Tampilkan:</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="74"/> - <location filename="../mainwindow.ui" line="139"/> - <source>All Streams</source> - <translation>Semua Aliran</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="79"/> - <location filename="../mainwindow.ui" line="144"/> - <source>Applications</source> - <translation>Aplikasi</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="84"/> - <location filename="../mainwindow.ui" line="149"/> - <source>Virtual Streams</source> - <translation>Aliran Virtual</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="120"/> - <source><i>No application is currently recording audio.</i></source> - <translation><i>Tak ada aplikasi yang sedang merekam audio.</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="185"/> - <source><i>No output devices available</i></source> - <translation><i>Tak ada perangkat keluaran yang tersedia</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="204"/> - <source>All Output Devices</source> - <translation>Semua Perangkat Keluaran</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="209"/> - <source>Hardware Output Devices</source> - <translation>Perangkat Keras Keluaran</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="214"/> - <source>Virtual Output Devices</source> - <translation>Perangkat Virtual Keluaran</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="28"/> - <source>&Playback</source> - <translation>&Pemutaran</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="93"/> - <source>&Recording</source> - <translation>Pe&rekaman</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="158"/> - <source>&Output Devices</source> - <translation>Perangkat &Keluaran</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="223"/> - <source>&Input Devices</source> - <translation>Perangkat &Masukan</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="250"/> - <source><i>No input devices available</i></source> - <translation><i>Tak ada perangkat masukan yang tersedia</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="269"/> - <source>All Input Devices</source> - <translation>Semua Perangkat Masukan</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="274"/> - <source>All Except Monitors</source> - <translation>Semua Kecuali Monitor</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="279"/> - <source>Hardware Input Devices</source> - <translation>Perangkat Keras Masukan</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="284"/> - <source>Virtual Input Devices</source> - <translation>Perangkat Virtual Masukan</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="289"/> - <source>Monitors</source> - <translation>Monitor</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="298"/> - <source>&Configuration</source> - <translation>&Konfigurasi</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="325"/> - <source><i>No cards available for configuration</i></source> - <translation><i>Tak ada kartu yang tersedia untuk konfigurasi</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="336"/> - <source>Show volume meters</source> - <translation>Tampilkan volume meter</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="347"/> - <source>...</source> - <translation>...</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="159"/> - <source> (plugged in)</source> - <translation> (terpasang)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="163"/> - <location filename="../mainwindow.cc" line="257"/> - <source> (unavailable)</source> - <translation> (tak tersedia)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="165"/> - <location filename="../mainwindow.cc" line="254"/> - <source> (unplugged)</source> - <translation> (tak terpasang)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="388"/> - <source>Failed to read data from stream</source> - <translation>Gagal membaca data dari aliran</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="432"/> - <source>Peak detect</source> - <translation>Deteksi puncak</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="433"/> - <source>Failed to create monitoring stream</source> - <translation>Gagal membuat aliran pemantauan</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="448"/> - <source>Failed to connect monitoring stream</source> - <translation>Gagal menghubungkan aliran pemantauan</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="587"/> - <source>Ignoring sink-input due to it being designated as an event and thus handled by the Event widget</source> - <translation>Mengabaikan masukan-sink karena sedang ditunjuk sebagai sebuah acara dan ditangani oleh widget Acara</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="759"/> - <source>System Sounds</source> - <translation>Sistem Suara</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="1089"/> - <source>Establishing connection to PulseAudio. Please wait...</source> - <translation>Membangun koneksi ke PulseAudio. Mohon tunggu...</translation> - </message> -</context> -<context> - <name>QObject</name> - <message> - <location filename="../pavucontrol.cc" line="66"/> - <source>Error</source> - <translation>Kesalahan</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="87"/> - <source>Card callback failure</source> - <translation>Card callback gagal</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="110"/> - <source>Sink callback failure</source> - <translation>Sink callback gagal</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="133"/> - <source>Source callback failure</source> - <translation>Source callback gagal</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="152"/> - <source>Sink input callback failure</source> - <translation>Sink input callback gagal</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="171"/> - <source>Source output callback failure</source> - <translation>Source output callback gagal</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="211"/> - <source>Client callback failure</source> - <translation>Client callback gagal</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="227"/> - <source>Server info callback failure</source> - <translation>Server info callback gagal</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="245"/> - <location filename="../pavucontrol.cc" line="542"/> - <source>Failed to initialize stream_restore extension: %s</source> - <translation>Gagal menginisialisasi ekstensi stream_restore: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="263"/> - <source>pa_ext_stream_restore_read() failed</source> - <translation>pa_ext_stream_restore_read() gagal</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="281"/> - <location filename="../pavucontrol.cc" line="556"/> - <source>Failed to initialize device restore extension: %s</source> - <translation>Gagal menginisialisasi ekstensi pemulihan perangkat: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="302"/> - <source>pa_ext_device_restore_read_sink_formats() failed</source> - <translation>pa_ext_device_restore_read_sink_formats() gagal</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="320"/> - <location filename="../pavucontrol.cc" line="569"/> - <source>Failed to initialize device manager extension: %s</source> - <translation>Gagal menginisialisasi ekstensi pengelola perangkat: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="339"/> - <source>pa_ext_device_manager_read() failed</source> - <translation>pa_ext_device_manager_read() gagal</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="356"/> - <source>pa_context_get_sink_info_by_index() failed</source> - <translation>pa_context_get_sink_info_by_index() gagal</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="369"/> - <source>pa_context_get_source_info_by_index() failed</source> - <translation>pa_context_get_source_info_by_index() gagal</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="382"/> - <location filename="../pavucontrol.cc" line="395"/> - <source>pa_context_get_sink_input_info() failed</source> - <translation>pa_context_get_sink_input_info() gagal</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="408"/> - <source>pa_context_get_client_info() failed</source> - <translation>pa_context_get_client_info() gagal</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="418"/> - <location filename="../pavucontrol.cc" line="483"/> - <source>pa_context_get_server_info() failed</source> - <translation>pa_context_get_server_info() gagal</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="431"/> - <source>pa_context_get_card_info_by_index() failed</source> - <translation>pa_context_get_card_info_by_index() gagal</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="474"/> - <source>pa_context_subscribe() failed</source> - <translation>pa_context_subscribe() gagal</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="490"/> - <source>pa_context_client_info_list() failed</source> - <translation>pa_context_client_info_list() gagal</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="497"/> - <source>pa_context_get_card_info_list() failed</source> - <translation>pa_context_get_card_info_list() gagal</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="504"/> - <source>pa_context_get_sink_info_list() failed</source> - <translation>pa_context_get_sink_info_list() gagal</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="511"/> - <source>pa_context_get_source_info_list() failed</source> - <translation>pa_context_get_source_info_list() gagal</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="518"/> - <source>pa_context_get_sink_input_info_list() failed</source> - <translation>pa_context_get_sink_input_info_list() gagal</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="525"/> - <source>pa_context_get_source_output_info_list() failed</source> - <translation>pa_context_get_source_output_info_list() gagal</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="584"/> - <location filename="../pavucontrol.cc" line="635"/> - <source>Connection failed, attempting reconnect</source> - <translation>Sambungan gagal, mencoba menyambung kembali</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="607"/> - <location filename="../pavucontrol.cc" line="664"/> - <source>PulseAudio Volume Control</source> - <translation>Kontrol Volume PulseAudio</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="622"/> - <source>Connection to PulseAudio failed. Automatic retry in 5s - -In this case this is likely because PULSE_SERVER in the Environment/X11 Root Window Properties -or default-server in client.conf is misconfigured. -This situation can also arrise when PulseAudio crashed and left stale details in the X11 Root Window. -If this is the case, then PulseAudio should autospawn again, or if this is not configured you should -run start-pulseaudio-x11 manually.</source> - <translation>Sambungan ke PulseAudio gagal. Mengulang secara otomatis dalam 5d - -Hal ini dapat disebabkan karena kesalahan konfigurasi PULSE_SERVER di Environment/X11 Root -Window Properties atau default-server di client.conf. -Keadaan ini juga dapat terjadi saat PulseAudio bentrok dan meningggalkan rincian yang salah di -X11 Root Window. Jika demikian, PulseAudio seharusnya akan autospawn kembali atau jika tidak otomatis, -maka Anda harus menjalankan start-pulseaudio-x11 secara manual.</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="672"/> - <source>Select a specific tab on load.</source> - <translation>Pilih tab tertentu saat dimuat.</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="675"/> - <source>Retry forever if pa quits (every 5 seconds).</source> - <translation>Mencoba lagi selamanya jika pa berhenti (setiap 5 detik).</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="678"/> - <source>Maximize the window.</source> - <translation>Maksimalkan jendela.</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="703"/> - <source>Fatal Error: Unable to connect to PulseAudio</source> - <translation>Kesalahan Fatal: Tidak dapat menyambungkan ke PulseAudio</translation> - </message> -</context> -<context> - <name>RoleWidget</name> - <message> - <location filename="../rolewidget.cc" line="59"/> - <source>pa_ext_stream_restore_write() failed</source> - <translation>pa_ext_stream_restore_write() gagal</translation> - </message> -</context> -<context> - <name>SinkInputWidget</name> - <message> - <location filename="../sinkinputwidget.cc" line="36"/> - <source>on</source> - <translation>nyala</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="39"/> - <source>Terminate Playback</source> - <translation>Hentikan Pemutaran</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="53"/> - <source>Unknown output</source> - <translation>Keluaran Tidak Diketahui</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="64"/> - <source>pa_context_set_sink_input_volume() failed</source> - <translation>pa_context_set_sink_input_volume() gagal</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="79"/> - <source>pa_context_set_sink_input_mute() failed</source> - <translation>pa_context_set_sink_input_mute() gagal</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="89"/> - <source>pa_context_kill_sink_input() failed</source> - <translation>pa_context_kill_sink_input() gagal</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="114"/> - <source>pa_context_move_sink_input_by_index() failed</source> - <translation>pa_context_move_sink_input_by_index() gagal</translation> - </message> -</context> -<context> - <name>SinkWidget</name> - <message> - <location filename="../sinkwidget.cc" line="81"/> - <source>pa_context_set_sink_volume_by_index() failed</source> - <translation>pa_context_set_sink_volume_by_index() gagal</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="96"/> - <source>pa_context_set_sink_mute_by_index() failed</source> - <translation>pa_context_set_sink_mute_by_index() gagal</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="110"/> - <source>pa_context_set_default_sink() failed</source> - <translation>pa_context_set_default_sink() gagal</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="126"/> - <source>pa_context_set_sink_port_by_index() failed</source> - <translation>pa_context_set_sink_port_by_index() gagal</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="166"/> - <source>pa_ext_device_restore_save_sink_formats() failed</source> - <translation>pa_ext_device_restore_save_sink_formats() gagal</translation> - </message> -</context> -<context> - <name>SourceOutputWidget</name> - <message> - <location filename="../sourceoutputwidget.cc" line="35"/> - <source>from</source> - <translation>dari</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="39"/> - <source>Terminate Recording</source> - <translation>Hentikan Perekaman</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="60"/> - <source>Unknown input</source> - <translation>Masukan Tidak Diketahui</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="72"/> - <source>pa_context_set_source_output_volume() failed</source> - <translation>pa_context_set_source_output_volume() gagal</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="87"/> - <source>pa_context_set_source_output_mute() failed</source> - <translation>pa_context_set_source_output_mute() gagal</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="98"/> - <source>pa_context_kill_source_output() failed</source> - <translation>pa_context_kill_source_output() gagal</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="125"/> - <source>pa_context_move_source_output_by_index() failed</source> - <translation>pa_context_move_source_output_by_index() gagal</translation> - </message> -</context> -<context> - <name>SourceWidget</name> - <message> - <location filename="../sourcewidget.cc" line="35"/> - <source>pa_context_set_source_volume_by_index() failed</source> - <translation>pa_context_set_source_volume_by_index() gagal</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="50"/> - <source>pa_context_set_source_mute_by_index() failed</source> - <translation>pa_context_set_source_mute_by_index() gagal</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="64"/> - <source>pa_context_set_default_source() failed</source> - <translation>pa_context_set_default_source() gagal</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="80"/> - <source>pa_context_set_source_port_by_index() failed</source> - <translation>pa_context_set_source_port_by_index() gagal</translation> - </message> -</context> -<context> - <name>StreamWidget</name> - <message> - <location filename="../streamwidget.ui" line="14"/> - <source>Form</source> - <translation>Formulir</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="32"/> - <source>Device Title</source> - <translation>Nama Perangkat</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="52"/> - <source>direction</source> - <translation>arah</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="59"/> - <source>device</source> - <translation>perangkat</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="66"/> - <source>Mute audio</source> - <translation>Audio bisu</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="79"/> - <source>Lock channels together</source> - <translation>Kunci saluran bersama</translation> - </message> - <message> - <location filename="../streamwidget.cc" line="34"/> - <source>Terminate</source> - <translation>Hentikan</translation> - </message> -</context> -</TS> diff --git a/src/translations/pavucontrol-qt_it.desktop.yaml b/src/translations/pavucontrol-qt_it.desktop.yaml deleted file mode 100644 index e525b4b..0000000 --- a/src/translations/pavucontrol-qt_it.desktop.yaml +++ /dev/null @@ -1,3 +0,0 @@ -Desktop Entry/Name: "Controllo Volume" -Desktop Entry/GenericName: "Controllo volume" -Desktop Entry/Comment: "Modifica livello volume" diff --git a/src/translations/pavucontrol-qt_it.ts b/src/translations/pavucontrol-qt_it.ts deleted file mode 100644 index 862ff1a..0000000 --- a/src/translations/pavucontrol-qt_it.ts +++ /dev/null @@ -1,734 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE TS> -<TS version="2.1" language="it"> -<context> - <name>CardWidget</name> - <message> - <location filename="../cardwidget.ui" line="14"/> - <source>Form</source> - <translation></translation> - </message> - <message> - <location filename="../cardwidget.ui" line="29"/> - <source>Card Name</source> - <translation>Nome scheda</translation> - </message> - <message> - <location filename="../cardwidget.ui" line="47"/> - <source>Profile:</source> - <translation>Profilo:</translation> - </message> - <message> - <location filename="../cardwidget.cc" line="67"/> - <source>pa_context_set_card_profile_by_index() failed</source> - <translation>pa_context_set_card_profile_by_index() non riuscita</translation> - </message> -</context> -<context> - <name>Channel</name> - <message> - <location filename="../channel.cc" line="89"/> - <source>%1% (%2dB)</source> - <comment>volume slider label [X% (YdB)]</comment> - <translation>%1% (%2dB)</translation> - </message> - <message> - <location filename="../channel.cc" line="93"/> - <source>%1%</source> - <comment>volume slider label [X%]</comment> - <translation></translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Silence</small></source> - <translation><small>Silenzio</small></translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Min</small></source> - <translation><small>Min</small></translation> - </message> - <message> - <location filename="../channel.cc" line="162"/> - <source><small>100% (0dB)</small></source> - <translation></translation> - </message> - <message> - <location filename="../channel.cc" line="165"/> - <source><small><i>Base</i></small></source> - <translation><small><i>Base</i></small></translation> - </message> -</context> -<context> - <name>ChannelWidget</name> - <message> - <location filename="../channelwidget.ui" line="14"/> - <source>Form</source> - <translation>Forma</translation> - </message> - <message> - <location filename="../channelwidget.ui" line="20"/> - <source><b>left-front</b></source> - <translation><b>Sinistra centrale</b></translation> - </message> - <message> - <location filename="../channelwidget.ui" line="34"/> - <source><small>50%</small></source> - <translation><small>50%</small></translation> - </message> -</context> -<context> - <name>DeviceWidget</name> - <message> - <location filename="../devicewidget.ui" line="14"/> - <source>Form</source> - <translation></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="36"/> - <source>Device Title</source> - <translation>Nome del dispositivo</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="56"/> - <source>Mute audio</source> - <translation>Muta audio</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="69"/> - <source>Lock channels together</source> - <translation>Collega canali</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="85"/> - <source>Set as fallback</source> - <translation>Imposta come riserva</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="103"/> - <source><b>Port:</b></source> - <translation><b>Porta:</b></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="126"/> - <source>Show advanced options</source> - <translation>Mostra opzioni avanzate</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="172"/> - <source>PCM</source> - <translation></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="182"/> - <source>AC3</source> - <translation></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="189"/> - <source>EAC3</source> - <translation></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="196"/> - <source>DTS</source> - <translation></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="203"/> - <source>MPEG</source> - <translation></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="210"/> - <source>AAC</source> - <translation></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="238"/> - <source><b>Latency offset:</b></source> - <translation><b>Compensazione latenza:</b></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="245"/> - <source> ms</source> - <translation></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="41"/> - <source>Rename device...</source> - <translation>Rinomina dispositivo...</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="155"/> - <source>pa_context_set_port_latency_offset() failed</source> - <translation>pa_context_set_port_latency_offset() non riuscito</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="226"/> - <source>Sorry, but device renaming is not supported.</source> - <translation>Spiacenti, la rinomina dei dispositivi non è supportata.</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="227"/> - <source>You need to load module-device-manager in the PulseAudio server in order to rename devices</source> - <translation>Si deve caricare il gestore dei moduli in PulseAudio per poter rinominare i dispositivi</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="233"/> - <source>Rename device %1 to:</source> - <translation>Rinomina dispositivo %1:</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="240"/> - <source>pa_ext_device_manager_set_device_description() failed</source> - <translation>pa_ext_device_manager_set_device_description() non riusciito</translation> - </message> -</context> -<context> - <name>MainWindow</name> - <message> - <location filename="../mainwindow.ui" line="14"/> - <source>Volume Control</source> - <translation>Regolazione del volume</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="28"/> - <source>&Playback</source> - <translation>&Riproduzione</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="55"/> - <source><i>No application is currently playing audio.</i></source> - <translation><i>Nessuna applicazione sta attualmente riproducendo dell'audio.</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="66"/> - <location filename="../mainwindow.ui" line="131"/> - <location filename="../mainwindow.ui" line="196"/> - <location filename="../mainwindow.ui" line="261"/> - <source>Show:</source> - <translation>Mostra:</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="74"/> - <location filename="../mainwindow.ui" line="139"/> - <source>All Streams</source> - <translation>Tutti flussi</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="79"/> - <location filename="../mainwindow.ui" line="144"/> - <source>Applications</source> - <translation>Applicazioni</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="84"/> - <location filename="../mainwindow.ui" line="149"/> - <source>Virtual Streams</source> - <translation>Flussi virtuali</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="93"/> - <source>&Recording</source> - <translation>&Registrazione</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="120"/> - <source><i>No application is currently recording audio.</i></source> - <translation><i>Nessuna applicazione sta attualmente registrando dell'audio.</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="158"/> - <source>&Output Devices</source> - <translation>&Dispositivi in uscita</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="185"/> - <source><i>No output devices available</i></source> - <translation><i>Nessun dispositivo di uscita disponibile</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="204"/> - <source>All Output Devices</source> - <translation>Tutti dispositivi in uscita</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="209"/> - <source>Hardware Output Devices</source> - <translation>Dispositivi in uscita hardware</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="214"/> - <source>Virtual Output Devices</source> - <translation>Dispositivi in uscita virtuali</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="223"/> - <source>&Input Devices</source> - <translation>&Dispositivi in ingresso</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="250"/> - <source><i>No input devices available</i></source> - <translation><i>Nessun dispositivo di ingresso disponibile</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="269"/> - <source>All Input Devices</source> - <translation>Tutti dispositivi in ingresso</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="274"/> - <source>All Except Monitors</source> - <translation>Tutti esclusi monitor</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="279"/> - <source>Hardware Input Devices</source> - <translation>Dispositivi in ingresso hardware</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="284"/> - <source>Virtual Input Devices</source> - <translation>Dispositivi in ingresso virtuali</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="289"/> - <source>Monitors</source> - <translation>Monitor</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="298"/> - <source>&Configuration</source> - <translation>&Configurazione</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="325"/> - <source><i>No cards available for configuration</i></source> - <translation><i>Nessuna scheda disponibile per la configurazione</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="336"/> - <source>Show volume meters</source> - <translation>Mostra livelli audio</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="347"/> - <source>...</source> - <translation></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="159"/> - <source> (plugged in)</source> - <translation> (connesso)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="163"/> - <location filename="../mainwindow.cc" line="257"/> - <source> (unavailable)</source> - <translation> (non disponibile)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="165"/> - <location filename="../mainwindow.cc" line="254"/> - <source> (unplugged)</source> - <translation> (non connesso)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="388"/> - <source>Failed to read data from stream</source> - <translation>Lettura dei dati dal flusso non riuscita</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="432"/> - <source>Peak detect</source> - <translation>Rilevato picco</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="433"/> - <source>Failed to create monitoring stream</source> - <translation>Creazione di un flusso di controllo non riuscita</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="448"/> - <source>Failed to connect monitoring stream</source> - <translation>Connessione del flusso di controllo non riuscita</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="587"/> - <source>Ignoring sink-input due to it being designated as an event and thus handled by the Event widget</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="759"/> - <source>System Sounds</source> - <translation>Suoni di sistema</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="1089"/> - <source>Establishing connection to PulseAudio. Please wait...</source> - <translation>Connessione con PulseAudio in progresso...</translation> - </message> -</context> -<context> - <name>QObject</name> - <message> - <location filename="../pavucontrol.cc" line="66"/> - <source>Error</source> - <translation>Errore</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="87"/> - <source>Card callback failure</source> - <translation>Callback alla scheda non riuscito</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="110"/> - <source>Sink callback failure</source> - <translation>Callback al sink non riuscito</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="133"/> - <source>Source callback failure</source> - <translation>Callback alla sorgente non riuscito</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="152"/> - <source>Sink input callback failure</source> - <translation>Callback al sink di ingresso non riuscito</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="171"/> - <source>Source output callback failure</source> - <translation>Callback alla sorgente di uscita non riuscito</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="211"/> - <source>Client callback failure</source> - <translation>Callback al client non riuscito</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="227"/> - <source>Server info callback failure</source> - <translation>Callback informazioni server non riuscito</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="245"/> - <location filename="../pavucontrol.cc" line="542"/> - <source>Failed to initialize stream_restore extension: %s</source> - <translation>Inizializzazione dell'estensione stream_restore non riuscita: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="263"/> - <source>pa_ext_stream_restore_read() failed</source> - <translation>pa_ext_stream_restore_read() non riuscita</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="281"/> - <location filename="../pavucontrol.cc" line="556"/> - <source>Failed to initialize device restore extension: %s</source> - <translation>Initializzazione della estensione di ripristino dispositivi non riuscita: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="302"/> - <source>pa_ext_device_restore_read_sink_formats() failed</source> - <translation>pa_ext_device_restore_read_sink_formats() non riuscito</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="320"/> - <location filename="../pavucontrol.cc" line="569"/> - <source>Failed to initialize device manager extension: %s</source> - <translation>Initializzazione dell'estensione del gestore dispositivi non riuscita: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="339"/> - <source>pa_ext_device_manager_read() failed</source> - <translation>pa_ext_device_manager_read() non riuscito</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="356"/> - <source>pa_context_get_sink_info_by_index() failed</source> - <translation>pa_context_get_sink_info_by_index() non riuscita</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="369"/> - <source>pa_context_get_source_info_by_index() failed</source> - <translation>pa_context_get_source_info_by_index() non riuscita</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="382"/> - <location filename="../pavucontrol.cc" line="395"/> - <source>pa_context_get_sink_input_info() failed</source> - <translation>pa_context_get_sink_input_info() non riuscita</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="408"/> - <source>pa_context_get_client_info() failed</source> - <translation>pa_context_get_client_info() non riuscita</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="418"/> - <location filename="../pavucontrol.cc" line="483"/> - <source>pa_context_get_server_info() failed</source> - <translation>pa_context_get_server_info() non riuscita</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="431"/> - <source>pa_context_get_card_info_by_index() failed</source> - <translation>pa_context_get_card_info_by_index() non riuscita</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="474"/> - <source>pa_context_subscribe() failed</source> - <translation>pa_context_subscribe() non riuscita</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="490"/> - <source>pa_context_client_info_list() failed</source> - <translation>pa_context_client_info_list() non riuscita</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="497"/> - <source>pa_context_get_card_info_list() failed</source> - <translation>pa_context_get_card_info_list() non riuscita</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="504"/> - <source>pa_context_get_sink_info_list() failed</source> - <translation>pa_context_get_sink_info_list() non riuscita</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="511"/> - <source>pa_context_get_source_info_list() failed</source> - <translation>pa_context_get_source_info_list() non riuscita</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="518"/> - <source>pa_context_get_sink_input_info_list() failed</source> - <translation>pa_context_get_sink_input_info_list() non riuscita</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="525"/> - <source>pa_context_get_source_output_info_list() failed</source> - <translation>pa_context_get_source_output_info_list() non riuscita</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="584"/> - <location filename="../pavucontrol.cc" line="635"/> - <source>Connection failed, attempting reconnect</source> - <translation>Connessione fallita, tentativo di riconessione</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="607"/> - <location filename="../pavucontrol.cc" line="664"/> - <source>PulseAudio Volume Control</source> - <translation>Regolazione del volume PulseAudio</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="622"/> - <source>Connection to PulseAudio failed. Automatic retry in 5s - -In this case this is likely because PULSE_SERVER in the Environment/X11 Root Window Properties -or default-server in client.conf is misconfigured. -This situation can also arrise when PulseAudio crashed and left stale details in the X11 Root Window. -If this is the case, then PulseAudio should autospawn again, or if this is not configured you should -run start-pulseaudio-x11 manually.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="672"/> - <source>Select a specific tab on load.</source> - <translation>Seleziona una scheda specifica al avvio.</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="675"/> - <source>Retry forever if pa quits (every 5 seconds).</source> - <translation>Riprova in continuazione quando PA chiude (ogni 5 secondi).</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="678"/> - <source>Maximize the window.</source> - <translation>Masssimizza la finestra.</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="703"/> - <source>Fatal Error: Unable to connect to PulseAudio</source> - <translation>Errore fatale: Impossibile connettersi a PulsaAudio</translation> - </message> -</context> -<context> - <name>RoleWidget</name> - <message> - <location filename="../rolewidget.cc" line="59"/> - <source>pa_ext_stream_restore_write() failed</source> - <translation>pa_ext_stream_restore_write() non riuscita</translation> - </message> -</context> -<context> - <name>SinkInputWidget</name> - <message> - <location filename="../sinkinputwidget.cc" line="36"/> - <source>on</source> - <translatorcomment>no idea where this is...</translatorcomment> - <translation>attivo</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="39"/> - <source>Terminate Playback</source> - <translation>Termina flusso</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="53"/> - <source>Unknown output</source> - <translation>Uscita sconosciuta</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="64"/> - <source>pa_context_set_sink_input_volume() failed</source> - <translation>pa_context_set_sink_input_volume() non riuscita</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="79"/> - <source>pa_context_set_sink_input_mute() failed</source> - <translation>pa_context_set_sink_input_mute() non riuscita</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="89"/> - <source>pa_context_kill_sink_input() failed</source> - <translation>pa_context_kill_sink_input() non riuscita</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="114"/> - <source>pa_context_move_sink_input_by_index() failed</source> - <translation>pa_context_move_sink_input_by_index() non riuscita</translation> - </message> -</context> -<context> - <name>SinkWidget</name> - <message> - <location filename="../sinkwidget.cc" line="81"/> - <source>pa_context_set_sink_volume_by_index() failed</source> - <translation>pa_context_set_sink_volume_by_index() non riuscita</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="96"/> - <source>pa_context_set_sink_mute_by_index() failed</source> - <translation>pa_context_set_sink_mute_by_index() non riuscita</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="110"/> - <source>pa_context_set_default_sink() failed</source> - <translation>pa_context_set_default_sink() non riuscita</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="126"/> - <source>pa_context_set_sink_port_by_index() failed</source> - <translation>pa_context_set_sink_mute_by_index() non riuscita</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="166"/> - <source>pa_ext_device_restore_save_sink_formats() failed</source> - <translation>pa_ext_device_restore_save_sink_formats() non riuscito</translation> - </message> -</context> -<context> - <name>SourceOutputWidget</name> - <message> - <location filename="../sourceoutputwidget.cc" line="35"/> - <source>from</source> - <translation>da</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="39"/> - <source>Terminate Recording</source> - <translation>Termina registrazione</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="60"/> - <source>Unknown input</source> - <translation>Ingresso sconosciuto</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="72"/> - <source>pa_context_set_source_output_volume() failed</source> - <translation>pa_context_set_source_output_volume() non riuscito</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="87"/> - <source>pa_context_set_source_output_mute() failed</source> - <translation>pa_context_set_source_output_mute() non riuscito</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="98"/> - <source>pa_context_kill_source_output() failed</source> - <translation>pa_context_kill_source_output() non riuscita</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="125"/> - <source>pa_context_move_source_output_by_index() failed</source> - <translation>pa_context_move_source_output_by_index() non riuscita</translation> - </message> -</context> -<context> - <name>SourceWidget</name> - <message> - <location filename="../sourcewidget.cc" line="35"/> - <source>pa_context_set_source_volume_by_index() failed</source> - <translation>pa_context_set_source_volume_by_index() non riuscita</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="50"/> - <source>pa_context_set_source_mute_by_index() failed</source> - <translation>pa_context_set_source_mute_by_index() non riuscita</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="64"/> - <source>pa_context_set_default_source() failed</source> - <translation>pa_context_set_default_source() non riuscita</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="80"/> - <source>pa_context_set_source_port_by_index() failed</source> - <translation>pa_context_set_source_mute_by_index() non riuscita</translation> - </message> -</context> -<context> - <name>StreamWidget</name> - <message> - <location filename="../streamwidget.ui" line="14"/> - <source>Form</source> - <translation></translation> - </message> - <message> - <location filename="../streamwidget.ui" line="32"/> - <source>Device Title</source> - <translation>Nome del dispositivo</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="52"/> - <source>direction</source> - <translation>direzione</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="59"/> - <source>device</source> - <translation>dispositivo</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="66"/> - <source>Mute audio</source> - <translation>Muta audio</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="79"/> - <source>Lock channels together</source> - <translation>Collega canali</translation> - </message> - <message> - <location filename="../streamwidget.cc" line="34"/> - <source>Terminate</source> - <translation>Termina</translation> - </message> -</context> -</TS> diff --git a/src/translations/pavucontrol-qt_ja.desktop.yaml b/src/translations/pavucontrol-qt_ja.desktop.yaml deleted file mode 100644 index 7df69e2..0000000 --- a/src/translations/pavucontrol-qt_ja.desktop.yaml +++ /dev/null @@ -1,3 +0,0 @@ -Desktop Entry/Name: "PulseAudio 音量調節 Qt" -Desktop Entry/GenericName: "音量調節 Qt" -Desktop Entry/Comment: "音量レベルを調節します Qt" diff --git a/src/translations/pavucontrol-qt_ja.ts b/src/translations/pavucontrol-qt_ja.ts deleted file mode 100644 index a51fb9d..0000000 --- a/src/translations/pavucontrol-qt_ja.ts +++ /dev/null @@ -1,738 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE TS> -<TS version="2.1" language="ja"> -<context> - <name>CardWidget</name> - <message> - <location filename="../cardwidget.ui" line="14"/> - <source>Form</source> - <translation>フォーム</translation> - </message> - <message> - <location filename="../cardwidget.ui" line="29"/> - <source>Card Name</source> - <translation>カード名</translation> - </message> - <message> - <location filename="../cardwidget.ui" line="47"/> - <source>Profile:</source> - <translation>プロフィール:</translation> - </message> - <message> - <location filename="../cardwidget.cc" line="67"/> - <source>pa_context_set_card_profile_by_index() failed</source> - <translation>pa_context_set_card_profile_by_index() 失敗</translation> - </message> -</context> -<context> - <name>Channel</name> - <message> - <location filename="../channel.cc" line="89"/> - <source>%1% (%2dB)</source> - <comment>volume slider label [X% (YdB)]</comment> - <translation>%1% (%2dB)</translation> - </message> - <message> - <location filename="../channel.cc" line="93"/> - <source>%1%</source> - <comment>volume slider label [X%]</comment> - <translation>%1%</translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Silence</small></source> - <translation><small>無音</small></translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Min</small></source> - <translation><small>最小</small></translation> - </message> - <message> - <location filename="../channel.cc" line="162"/> - <source><small>100% (0dB)</small></source> - <translation><small>100% (0dB)</small></translation> - </message> - <message> - <location filename="../channel.cc" line="165"/> - <source><small><i>Base</i></small></source> - <translation><small><i>ベース</i></small></translation> - </message> -</context> -<context> - <name>ChannelWidget</name> - <message> - <location filename="../channelwidget.ui" line="14"/> - <source>Form</source> - <translation>フォーム</translation> - </message> - <message> - <location filename="../channelwidget.ui" line="20"/> - <source><b>left-front</b></source> - <translation><b>左前方</b></translation> - </message> - <message> - <location filename="../channelwidget.ui" line="34"/> - <source><small>50%</small></source> - <translation><small>50%</small></translation> - </message> -</context> -<context> - <name>DeviceWidget</name> - <message> - <location filename="../devicewidget.ui" line="14"/> - <source>Form</source> - <translation>フォーム</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="36"/> - <source>Device Title</source> - <translation>デバイスのタイトル</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="56"/> - <source>Mute audio</source> - <translation>音量をミュートします</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="69"/> - <source>Lock channels together</source> - <translation>各チャンネルを同時に</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="85"/> - <source>Set as fallback</source> - <translation>代替として設定します</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="103"/> - <source><b>Port:</b></source> - <translation><b>ポート:</b></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="126"/> - <source>Show advanced options</source> - <translation>詳細オプションを表示する</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="172"/> - <source>PCM</source> - <translation>PCM</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="182"/> - <source>AC3</source> - <translation>AC3</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="189"/> - <source>EAC3</source> - <translation>EAC3</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="196"/> - <source>DTS</source> - <translation>DTS</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="203"/> - <source>MPEG</source> - <translation>MPEG</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="210"/> - <source>AAC</source> - <translation>AAC</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="238"/> - <source><b>Latency offset:</b></source> - <translation><b>遅延:</b></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="245"/> - <source> ms</source> - <translation> ミリ秒</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="41"/> - <source>Rename device...</source> - <translation>デバイス名の変更...</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="155"/> - <source>pa_context_set_port_latency_offset() failed</source> - <translation>pa_context_set_port_latency_offset() 失敗しました</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="226"/> - <source>Sorry, but device renaming is not supported.</source> - <translation>申し訳ありませんが、デバイス名の変更をサポートしていません。</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="227"/> - <source>You need to load module-device-manager in the PulseAudio server in order to rename devices</source> - <translation>デバイス名を変更するには PulseAudio サーバーに module-device-manager をロードする必要があります</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="233"/> - <source>Rename device %1 to:</source> - <translation>デバイス %1 の名前を変更:</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="240"/> - <source>pa_ext_device_manager_set_device_description() failed</source> - <translation>pa_ext_device_manager_set_device_description() 失敗しました</translation> - </message> -</context> -<context> - <name>MainWindow</name> - <message> - <location filename="../mainwindow.ui" line="14"/> - <source>Volume Control</source> - <translation>PulseAudio 音量調節</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="28"/> - <source>&Playback</source> - <translation>再生(&P)</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="55"/> - <source><i>No application is currently playing audio.</i></source> - <translation><i>現在音声を再生しているアプリケーションがありません。</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="66"/> - <location filename="../mainwindow.ui" line="131"/> - <location filename="../mainwindow.ui" line="196"/> - <location filename="../mainwindow.ui" line="261"/> - <source>Show:</source> - <translation>表示:</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="74"/> - <location filename="../mainwindow.ui" line="139"/> - <source>All Streams</source> - <translation>すべてのストリーム</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="79"/> - <location filename="../mainwindow.ui" line="144"/> - <source>Applications</source> - <translation>アプリケーション</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="84"/> - <location filename="../mainwindow.ui" line="149"/> - <source>Virtual Streams</source> - <translation>仮想のストリーム</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="93"/> - <source>&Recording</source> - <translation>録音(&R)</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="120"/> - <source><i>No application is currently recording audio.</i></source> - <translation><i>現在録音しているアプリケーションがありません。</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="158"/> - <source>&Output Devices</source> - <translation>出力デバイス(&O)</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="185"/> - <source><i>No output devices available</i></source> - <translation><i>出力デバイスがありません</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="204"/> - <source>All Output Devices</source> - <translation>すべての出力デバイス</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="209"/> - <source>Hardware Output Devices</source> - <translation>ハードウェアの出力デバイス</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="214"/> - <source>Virtual Output Devices</source> - <translation>仮想の出力デバイス</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="223"/> - <source>&Input Devices</source> - <translation>入力デバイス(&I)</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="250"/> - <source><i>No input devices available</i></source> - <translation><i>入力デバイスがありません</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="269"/> - <source>All Input Devices</source> - <translation>すべての入力デバイス</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="274"/> - <source>All Except Monitors</source> - <translation>モニター以外のすべて</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="279"/> - <source>Hardware Input Devices</source> - <translation>ハードウェアの入力デバイス</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="284"/> - <source>Virtual Input Devices</source> - <translation>仮想の入力デバイス</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="289"/> - <source>Monitors</source> - <translation>モニター</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="298"/> - <source>&Configuration</source> - <translation>設定(&C)</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="325"/> - <source><i>No cards available for configuration</i></source> - <translation><i>設定するカードがありません</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="336"/> - <source>Show volume meters</source> - <translation>音量メーターを表示する</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="347"/> - <source>...</source> - <translation>...</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="159"/> - <source> (plugged in)</source> - <translation> (プラグイン)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="163"/> - <location filename="../mainwindow.cc" line="257"/> - <source> (unavailable)</source> - <translation> (使用不可)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="165"/> - <location filename="../mainwindow.cc" line="254"/> - <source> (unplugged)</source> - <translation> (未接続)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="388"/> - <source>Failed to read data from stream</source> - <translation>ストリームからのデータの読込みに失敗</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="432"/> - <source>Peak detect</source> - <translation>ピーク検出</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="433"/> - <source>Failed to create monitoring stream</source> - <translation>モニタリングストリームの生成に失敗</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="448"/> - <source>Failed to connect monitoring stream</source> - <translation>モニタリングストリームへの接続に失敗</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="587"/> - <source>Ignoring sink-input due to it being designated as an event and thus handled by the Event widget</source> - <translation>これはイベントとして指定されていてイベントウィジェットによって処理されるため、sink-input を無視します</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="759"/> - <source>System Sounds</source> - <translation>システム音</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="1089"/> - <source>Establishing connection to PulseAudio. Please wait...</source> - <translation>PulseAudio との接続を確立中です。少々お待ち下さい...</translation> - </message> -</context> -<context> - <name>QObject</name> - <message> - <location filename="../pavucontrol.cc" line="66"/> - <source>Error</source> - <translation>エラー</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="87"/> - <source>Card callback failure</source> - <translation>カード回収失敗</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="110"/> - <source>Sink callback failure</source> - <translation>受信側回収失敗</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="133"/> - <source>Source callback failure</source> - <translation>音源回収失敗</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="152"/> - <source>Sink input callback failure</source> - <translation>受信側入力回収失敗</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="171"/> - <source>Source output callback failure</source> - <translation>音源出力回収失敗</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="211"/> - <source>Client callback failure</source> - <translation>クライアント回収失敗</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="227"/> - <source>Server info callback failure</source> - <translation>サーバー情報回収失敗</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="245"/> - <location filename="../pavucontrol.cc" line="542"/> - <source>Failed to initialize stream_restore extension: %s</source> - <translation>stream_restore 拡張の初期化に失敗: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="263"/> - <source>pa_ext_stream_restore_read() failed</source> - <translation>pa_ext_stream_restore_read() 失敗</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="281"/> - <location filename="../pavucontrol.cc" line="556"/> - <source>Failed to initialize device restore extension: %s</source> - <translation>デバイスの復元拡張を初期化できません: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="302"/> - <source>pa_ext_device_restore_read_sink_formats() failed</source> - <translation>pa_ext_device_restore_read_sink_formats() 失敗しました</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="320"/> - <location filename="../pavucontrol.cc" line="569"/> - <source>Failed to initialize device manager extension: %s</source> - <translation>デバイスマネージャーの拡張を初期化できません: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="339"/> - <source>pa_ext_device_manager_read() failed</source> - <translation>pa_ext_device_manager_read() 失敗しました</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="356"/> - <source>pa_context_get_sink_info_by_index() failed</source> - <translation>pa_context_get_sink_info_by_index() 失敗</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="369"/> - <source>pa_context_get_source_info_by_index() failed</source> - <translation>pa_context_get_source_info_by_index() 失敗</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="382"/> - <location filename="../pavucontrol.cc" line="395"/> - <source>pa_context_get_sink_input_info() failed</source> - <translation>pa_context_get_sink_input_info() 失敗</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="408"/> - <source>pa_context_get_client_info() failed</source> - <translation>pa_context_get_client_info() 失敗</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="418"/> - <location filename="../pavucontrol.cc" line="483"/> - <source>pa_context_get_server_info() failed</source> - <translation>pa_context_get_server_info() 失敗</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="431"/> - <source>pa_context_get_card_info_by_index() failed</source> - <translation>pa_context_get_card_info_by_index() 失敗</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="474"/> - <source>pa_context_subscribe() failed</source> - <translation>pa_context_subscribe() 失敗</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="490"/> - <source>pa_context_client_info_list() failed</source> - <translation>pa_context_client_info_list() 失敗</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="497"/> - <source>pa_context_get_card_info_list() failed</source> - <translation>pa_context_get_card_info_list() 失敗</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="504"/> - <source>pa_context_get_sink_info_list() failed</source> - <translation>pa_context_get_sink_info_list() 失敗</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="511"/> - <source>pa_context_get_source_info_list() failed</source> - <translation>pa_context_get_source_info_list() 失敗</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="518"/> - <source>pa_context_get_sink_input_info_list() failed</source> - <translation>pa_context_get_sink_input_info_list() 失敗</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="525"/> - <source>pa_context_get_source_output_info_list() failed</source> - <translation>pa_context_get_source_output_info_list() 失敗</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="584"/> - <location filename="../pavucontrol.cc" line="635"/> - <source>Connection failed, attempting reconnect</source> - <translation>接続に失敗しました。再接続しています</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="607"/> - <location filename="../pavucontrol.cc" line="664"/> - <source>PulseAudio Volume Control</source> - <translation>PulseAudio 音量調節</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="622"/> - <source>Connection to PulseAudio failed. Automatic retry in 5s - -In this case this is likely because PULSE_SERVER in the Environment/X11 Root Window Properties -or default-server in client.conf is misconfigured. -This situation can also arrise when PulseAudio crashed and left stale details in the X11 Root Window. -If this is the case, then PulseAudio should autospawn again, or if this is not configured you should -run start-pulseaudio-x11 manually.</source> - <translation>PulseAudio に接続できません。 5秒後に自動的に再接続します。 - -これは、Environment/X11 Root Window Properties の PULSE_SERVER が原因の可能性があります。 -または client.conf の default-server の設定が間違っている可能性があります。 -PulseAudio がクラッシュして X11 Root Window に古い詳細が残っている時にもこの状況が起こります。 -このような場合は、PulseAudio をもう一度自動起動するか、これを設定してない場合は手動で start-pulseaudio-x11 を実行します。</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="672"/> - <source>Select a specific tab on load.</source> - <translation>起動してタブ<tab>を選択する。</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="675"/> - <source>Retry forever if pa quits (every 5 seconds).</source> - <translation>PulseAudio が終了した場合、(5 秒毎に)再試行を繰り返す。</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="678"/> - <source>Maximize the window.</source> - <translation>ウィンドウを最大化する。</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="703"/> - <source>Fatal Error: Unable to connect to PulseAudio</source> - <translation>致命的なエラー: PulseAudio に接続できません</translation> - </message> -</context> -<context> - <name>RoleWidget</name> - <message> - <location filename="../rolewidget.cc" line="59"/> - <source>pa_ext_stream_restore_write() failed</source> - <translation>pa_ext_stream_restore_write() 失敗</translation> - </message> -</context> -<context> - <name>SinkInputWidget</name> - <message> - <location filename="../sinkinputwidget.cc" line="36"/> - <source>on</source> - <translation>オン</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="39"/> - <source>Terminate Playback</source> - <translation>再生を終了</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="53"/> - <source>Unknown output</source> - <translation>不明な出力</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="64"/> - <source>pa_context_set_sink_input_volume() failed</source> - <translation>pa_context_set_sink_input_volume() 失敗</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="79"/> - <source>pa_context_set_sink_input_mute() failed</source> - <translation>pa_context_set_sink_input_mute() 失敗</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="89"/> - <source>pa_context_kill_sink_input() failed</source> - <translation>pa_context_kill_sink_input() 失敗</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="114"/> - <source>pa_context_move_sink_input_by_index() failed</source> - <translation>pa_context_move_sink_input_by_index() 失敗</translation> - </message> -</context> -<context> - <name>SinkWidget</name> - <message> - <location filename="../sinkwidget.cc" line="81"/> - <source>pa_context_set_sink_volume_by_index() failed</source> - <translation>pa_context_set_sink_volume_by_index() 失敗</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="96"/> - <source>pa_context_set_sink_mute_by_index() failed</source> - <translation>pa_context_set_sink_mute_by_index() 失敗</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="110"/> - <source>pa_context_set_default_sink() failed</source> - <translation>pa_context_set_default_sink() 失敗</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="126"/> - <source>pa_context_set_sink_port_by_index() failed</source> - <translation>pa_context_set_sink_port_by_index() 失敗</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="166"/> - <source>pa_ext_device_restore_save_sink_formats() failed</source> - <translation>pa_ext_device_restore_save_sink_formats() 失敗しました</translation> - </message> -</context> -<context> - <name>SourceOutputWidget</name> - <message> - <location filename="../sourceoutputwidget.cc" line="35"/> - <source>from</source> - <translation>から</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="39"/> - <source>Terminate Recording</source> - <translation>録音を終了</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="60"/> - <source>Unknown input</source> - <translation>不明な入力</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="72"/> - <source>pa_context_set_source_output_volume() failed</source> - <translation>pa_context_set_source_output_volume() 失敗しました</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="87"/> - <source>pa_context_set_source_output_mute() failed</source> - <translation>pa_context_set_source_output_mute() 失敗しました</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="98"/> - <source>pa_context_kill_source_output() failed</source> - <translation>pa_context_kill_source_output() 失敗</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="125"/> - <source>pa_context_move_source_output_by_index() failed</source> - <translation>pa_context_move_source_output_by_index() 失敗</translation> - </message> -</context> -<context> - <name>SourceWidget</name> - <message> - <location filename="../sourcewidget.cc" line="35"/> - <source>pa_context_set_source_volume_by_index() failed</source> - <translation>pa_context_set_source_volume_by_index() 失敗</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="50"/> - <source>pa_context_set_source_mute_by_index() failed</source> - <translation>pa_context_set_source_mute_by_index() 失敗</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="64"/> - <source>pa_context_set_default_source() failed</source> - <translation>pa_context_set_default_source() 失敗</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="80"/> - <source>pa_context_set_source_port_by_index() failed</source> - <translation>pa_context_set_source_port_by_index() 失敗</translation> - </message> -</context> -<context> - <name>StreamWidget</name> - <message> - <location filename="../streamwidget.ui" line="14"/> - <source>Form</source> - <translation>フォーム</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="32"/> - <source>Device Title</source> - <translation>デバイスのタイトル</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="52"/> - <source>direction</source> - <translation>方向</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="59"/> - <source>device</source> - <translation>デバイス</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="66"/> - <source>Mute audio</source> - <translation>音量をミュートします</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="79"/> - <source>Lock channels together</source> - <translation>各チャンネルを同時に</translation> - </message> - <message> - <location filename="../streamwidget.cc" line="34"/> - <source>Terminate</source> - <translation>終了</translation> - </message> -</context> -</TS> diff --git a/src/translations/pavucontrol-qt_kn.ts b/src/translations/pavucontrol-qt_kn.ts deleted file mode 100644 index 0791690..0000000 --- a/src/translations/pavucontrol-qt_kn.ts +++ /dev/null @@ -1,733 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE TS> -<TS version="2.1" language="kn"> -<context> - <name>CardWidget</name> - <message> - <location filename="../cardwidget.ui" line="14"/> - <source>Form</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../cardwidget.ui" line="29"/> - <source>Card Name</source> - <translation>ಕಾರ್ಡಿನ ಹೆಸರು</translation> - </message> - <message> - <location filename="../cardwidget.ui" line="47"/> - <source>Profile:</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../cardwidget.cc" line="67"/> - <source>pa_context_set_card_profile_by_index() failed</source> - <translation>pa_context_set_card_profile_by_index() ವಿಫಲಗೊಂಡಿದೆ</translation> - </message> -</context> -<context> - <name>Channel</name> - <message> - <location filename="../channel.cc" line="89"/> - <source>%1% (%2dB)</source> - <comment>volume slider label [X% (YdB)]</comment> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../channel.cc" line="93"/> - <source>%1%</source> - <comment>volume slider label [X%]</comment> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Silence</small></source> - <translation type="unfinished"><small>ನಿಶ್ಯಬ್ಧ</small></translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Min</small></source> - <translation type="unfinished"><small>ಕನಿಷ್ಟ</small></translation> - </message> - <message> - <location filename="../channel.cc" line="162"/> - <source><small>100% (0dB)</small></source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../channel.cc" line="165"/> - <source><small><i>Base</i></small></source> - <translation type="unfinished"><small><i>ಮೂಲ</i></small></translation> - </message> -</context> -<context> - <name>ChannelWidget</name> - <message> - <location filename="../channelwidget.ui" line="14"/> - <source>Form</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../channelwidget.ui" line="20"/> - <source><b>left-front</b></source> - <translation><b>ಎಡ-ಮುಂಭಾಗ</b></translation> - </message> - <message> - <location filename="../channelwidget.ui" line="34"/> - <source><small>50%</small></source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>DeviceWidget</name> - <message> - <location filename="../devicewidget.ui" line="14"/> - <source>Form</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="36"/> - <source>Device Title</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="56"/> - <source>Mute audio</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="69"/> - <source>Lock channels together</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="85"/> - <source>Set as fallback</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="103"/> - <source><b>Port:</b></source> - <translation><b>ಸಂಪರ್ಕಸ್ಥಾನ:</b></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="126"/> - <source>Show advanced options</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="172"/> - <source>PCM</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="182"/> - <source>AC3</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="189"/> - <source>EAC3</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="196"/> - <source>DTS</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="203"/> - <source>MPEG</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="210"/> - <source>AAC</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="238"/> - <source><b>Latency offset:</b></source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="245"/> - <source> ms</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="41"/> - <source>Rename device...</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="155"/> - <source>pa_context_set_port_latency_offset() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="226"/> - <source>Sorry, but device renaming is not supported.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="227"/> - <source>You need to load module-device-manager in the PulseAudio server in order to rename devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="233"/> - <source>Rename device %1 to:</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="240"/> - <source>pa_ext_device_manager_set_device_description() failed</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>MainWindow</name> - <message> - <location filename="../mainwindow.ui" line="14"/> - <source>Volume Control</source> - <translation>ಧ್ವನಿಪ್ರಮಾಣ ನಿಯಂತ್ರಣ</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="28"/> - <source>&Playback</source> - <translation>ಪ್ಲೇಬ್ಯಾಕ್(&P)</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="55"/> - <source><i>No application is currently playing audio.</i></source> - <translation><i>ಯಾವುದೆ ಅನ್ವಯವು ಈಗ ಆಡಿಯೋವನ್ನು ಚಲಾಯಿಸುತ್ತಿಲ್ಲ.</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="66"/> - <location filename="../mainwindow.ui" line="131"/> - <location filename="../mainwindow.ui" line="196"/> - <location filename="../mainwindow.ui" line="261"/> - <source>Show:</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="74"/> - <location filename="../mainwindow.ui" line="139"/> - <source>All Streams</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="79"/> - <location filename="../mainwindow.ui" line="144"/> - <source>Applications</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="84"/> - <location filename="../mainwindow.ui" line="149"/> - <source>Virtual Streams</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="93"/> - <source>&Recording</source> - <translation>ರೆಕಾರ್ಡ್ ಮಾಡುವಿಕೆ(&R)</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="120"/> - <source><i>No application is currently recording audio.</i></source> - <translation><i>ಯಾವುದೆ ಅನ್ವಯವು ಈಗ ಆಡಿಯೋವನ್ನು ರೆಕಾರ್ಡು ಮಾಡುತ್ತಿಲ್ಲ.</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="158"/> - <source>&Output Devices</source> - <translation>ಔಟ್ಪುಟ್ ಸಾಧನಗಳು(&O)</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="185"/> - <source><i>No output devices available</i></source> - <translation><i>ಯಾವುದೆ ಔಟ್ಪುಟ್ ಸಾಧನಗಳು ಲಭ್ಯವಿಲ್ಲ</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="204"/> - <source>All Output Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="209"/> - <source>Hardware Output Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="214"/> - <source>Virtual Output Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="223"/> - <source>&Input Devices</source> - <translation>ಇನ್ಪುಟ್ ಸಾಧನಗಳು(&I)</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="250"/> - <source><i>No input devices available</i></source> - <translation><i>ಯಾವುದೆ ಇನ್ಪುಟ್ ಸಾಧನಗಳು ಲಭ್ಯವಿಲ್ಲ</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="269"/> - <source>All Input Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="274"/> - <source>All Except Monitors</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="279"/> - <source>Hardware Input Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="284"/> - <source>Virtual Input Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="289"/> - <source>Monitors</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="298"/> - <source>&Configuration</source> - <translation>ಸಂರಚನೆ(&C)</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="325"/> - <source><i>No cards available for configuration</i></source> - <translation><i>ಸಂರಚನೆಗಾಗಿ ಯಾವುದೆ ಕಾರ್ಡುಗಳು ಲಭ್ಯವಿಲ್ಲ</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="336"/> - <source>Show volume meters</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="347"/> - <source>...</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="159"/> - <source> (plugged in)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="163"/> - <location filename="../mainwindow.cc" line="257"/> - <source> (unavailable)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="165"/> - <location filename="../mainwindow.cc" line="254"/> - <source> (unplugged)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="388"/> - <source>Failed to read data from stream</source> - <translation>ಸ್ಟ್ರೀಮಿನಿಂದ ದತ್ತಾಂಶವನ್ನು ಓದುವಲ್ಲಿ ವಿಫಲಗೊಂಡಿದೆ</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="432"/> - <source>Peak detect</source> - <translation>ಶೃಂಗದ ಪತ್ತೆ</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="433"/> - <source>Failed to create monitoring stream</source> - <translation>ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡುವ ಸ್ಟ್ರೀಮ್ ಅನ್ನು ರಚಿಸುವಲ್ಲಿ ವಿಫಲಗೊಂಡಿದೆ</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="448"/> - <source>Failed to connect monitoring stream</source> - <translation>ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡುವ ಸ್ಟ್ರೀಮ್ನೊಂದಿಗೆ ಸಂಪರ್ಕಸಾಧಿಸುವಲ್ಲಿ ವಿಫಲಗೊಂಡಿದೆ</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="587"/> - <source>Ignoring sink-input due to it being designated as an event and thus handled by the Event widget</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="759"/> - <source>System Sounds</source> - <translation>ಗಣಕದ ಧ್ವನಿಗಳು</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="1089"/> - <source>Establishing connection to PulseAudio. Please wait...</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>QObject</name> - <message> - <location filename="../pavucontrol.cc" line="66"/> - <source>Error</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="87"/> - <source>Card callback failure</source> - <translation>ಕಾರ್ಡ್ ಕಾಲ್ಬ್ಯಾಕ್ ವಿಫಲತೆ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="110"/> - <source>Sink callback failure</source> - <translation>ಸಿಂಕ್ ಕಾಲ್ಬ್ಯಾಕ್ ವಿಫಲತೆ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="133"/> - <source>Source callback failure</source> - <translation>ಆಕರ ಕಾಲ್ಬ್ಯಾಕ್ ವಿಫಲತೆ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="152"/> - <source>Sink input callback failure</source> - <translation>ಸಿಂಕ್ ಇನ್ಪುಟ್ ಕಾಲ್ಬ್ಯಾಕ್ ವಿಫಲತೆ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="171"/> - <source>Source output callback failure</source> - <translation>ಆಕರ ಔಟ್ಪುಟ್ ಕಾಲ್ಬ್ಯಾಕ್ ವಿಫಲತೆ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="211"/> - <source>Client callback failure</source> - <translation>ಕ್ಲೈಂಟ್ ಕಾಲ್ಬ್ಯಾಕ್ ವಿಫಲತೆ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="227"/> - <source>Server info callback failure</source> - <translation>ಪರಿಚಾರಕ ಮಾಹಿತಿ ಕಾಲ್ಬ್ಯಾಕ್ ವಿಫಲತೆ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="245"/> - <location filename="../pavucontrol.cc" line="542"/> - <source>Failed to initialize stream_restore extension: %s</source> - <translation>stream_restore ವಿಸ್ತರಣೆಯನ್ನು ಆರಂಭಿಸುವಲ್ಲಿ ವಿಫಲಗೊಂಡಿದೆ: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="263"/> - <source>pa_ext_stream_restore_read() failed</source> - <translation>pa_ext_stream_restore_read() ವಿಫಲಗೊಂಡಿದೆ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="281"/> - <location filename="../pavucontrol.cc" line="556"/> - <source>Failed to initialize device restore extension: %s</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="302"/> - <source>pa_ext_device_restore_read_sink_formats() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="320"/> - <location filename="../pavucontrol.cc" line="569"/> - <source>Failed to initialize device manager extension: %s</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="339"/> - <source>pa_ext_device_manager_read() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="356"/> - <source>pa_context_get_sink_info_by_index() failed</source> - <translation>pa_context_get_sink_info_by_index() ವಿಫಲಗೊಂಡಿದೆ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="369"/> - <source>pa_context_get_source_info_by_index() failed</source> - <translation>pa_context_get_source_info_by_index() ವಿಫಲಗೊಂಡಿದೆ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="382"/> - <location filename="../pavucontrol.cc" line="395"/> - <source>pa_context_get_sink_input_info() failed</source> - <translation>pa_context_get_sink_input_info() ವಿಫಲಗೊಂಡಿದೆ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="408"/> - <source>pa_context_get_client_info() failed</source> - <translation>pa_context_get_client_info() ವಿಫಲಗೊಂಡಿದೆ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="418"/> - <location filename="../pavucontrol.cc" line="483"/> - <source>pa_context_get_server_info() failed</source> - <translation>pa_context_get_server_info() ವಿಫಲಗೊಂಡಿದೆ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="431"/> - <source>pa_context_get_card_info_by_index() failed</source> - <translation>pa_context_get_card_info_by_index() ವಿಫಲಗೊಂಡಿದೆ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="474"/> - <source>pa_context_subscribe() failed</source> - <translation>pa_context_subscribe() ವಿಫಲಗೊಂಡಿದೆ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="490"/> - <source>pa_context_client_info_list() failed</source> - <translation>pa_context_client_info_list() ವಿಫಲಗೊಂಡಿದೆ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="497"/> - <source>pa_context_get_card_info_list() failed</source> - <translation>pa_context_get_card_info_list() ವಿಫಲಗೊಂಡಿದೆ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="504"/> - <source>pa_context_get_sink_info_list() failed</source> - <translation>pa_context_get_sink_info_list() ವಿಫಲಗೊಂಡಿದೆ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="511"/> - <source>pa_context_get_source_info_list() failed</source> - <translation>pa_context_get_source_info_list() ವಿಫಲಗೊಂಡಿದೆ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="518"/> - <source>pa_context_get_sink_input_info_list() failed</source> - <translation>pa_context_get_sink_input_info_list() ವಿಫಲಗೊಂಡಿದೆ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="525"/> - <source>pa_context_get_source_output_info_list() failed</source> - <translation>pa_context_get_source_output_info_list() ವಿಫಲಗೊಂಡಿದೆ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="584"/> - <location filename="../pavucontrol.cc" line="635"/> - <source>Connection failed, attempting reconnect</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="607"/> - <location filename="../pavucontrol.cc" line="664"/> - <source>PulseAudio Volume Control</source> - <translation>PulseAudio ಧ್ವನಿ ಪ್ರಮಾಣ ನಿಯಂತ್ರಣ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="622"/> - <source>Connection to PulseAudio failed. Automatic retry in 5s - -In this case this is likely because PULSE_SERVER in the Environment/X11 Root Window Properties -or default-server in client.conf is misconfigured. -This situation can also arrise when PulseAudio crashed and left stale details in the X11 Root Window. -If this is the case, then PulseAudio should autospawn again, or if this is not configured you should -run start-pulseaudio-x11 manually.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="672"/> - <source>Select a specific tab on load.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="675"/> - <source>Retry forever if pa quits (every 5 seconds).</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="678"/> - <source>Maximize the window.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="703"/> - <source>Fatal Error: Unable to connect to PulseAudio</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>RoleWidget</name> - <message> - <location filename="../rolewidget.cc" line="59"/> - <source>pa_ext_stream_restore_write() failed</source> - <translation>pa_ext_stream_restore_write() ವಿಫಲಗೊಂಡಿದೆ</translation> - </message> -</context> -<context> - <name>SinkInputWidget</name> - <message> - <location filename="../sinkinputwidget.cc" line="36"/> - <source>on</source> - <translation>ಆನ್</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="39"/> - <source>Terminate Playback</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="53"/> - <source>Unknown output</source> - <translation>ಗೊತ್ತಿರದ ಔಟ್ಪುಟ್</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="64"/> - <source>pa_context_set_sink_input_volume() failed</source> - <translation>pa_context_set_sink_input_volume() ವಿಫಲಗೊಂಡಿದೆ</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="79"/> - <source>pa_context_set_sink_input_mute() failed</source> - <translation>pa_context_set_sink_input_mute() ವಿಫಲಗೊಂಡಿದೆ</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="89"/> - <source>pa_context_kill_sink_input() failed</source> - <translation>pa_context_kill_sink_input() ವಿಫಲಗೊಂಡಿದೆ</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="114"/> - <source>pa_context_move_sink_input_by_index() failed</source> - <translation>pa_context_move_sink_input_by_index() ವಿಫಲಗೊಂಡಿದೆ</translation> - </message> -</context> -<context> - <name>SinkWidget</name> - <message> - <location filename="../sinkwidget.cc" line="81"/> - <source>pa_context_set_sink_volume_by_index() failed</source> - <translation>pa_context_set_sink_volume_by_index() ವಿಫಲಗೊಂಡಿದೆ</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="96"/> - <source>pa_context_set_sink_mute_by_index() failed</source> - <translation>pa_context_set_sink_mute_by_index() ವಿಫಲಗೊಂಡಿದೆ</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="110"/> - <source>pa_context_set_default_sink() failed</source> - <translation>pa_context_set_default_sink() ವಿಫಲಗೊಂಡಿದೆ</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="126"/> - <source>pa_context_set_sink_port_by_index() failed</source> - <translation>pa_context_set_sink_port_by_index() ವಿಫಲಗೊಂಡಿದೆ</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="166"/> - <source>pa_ext_device_restore_save_sink_formats() failed</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>SourceOutputWidget</name> - <message> - <location filename="../sourceoutputwidget.cc" line="35"/> - <source>from</source> - <translation>ಇಂದ</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="39"/> - <source>Terminate Recording</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="60"/> - <source>Unknown input</source> - <translation>ಗೊತ್ತಿರದ ಇನ್ಪುಟ್</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="72"/> - <source>pa_context_set_source_output_volume() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="87"/> - <source>pa_context_set_source_output_mute() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="98"/> - <source>pa_context_kill_source_output() failed</source> - <translation>pa_context_kill_source_output() ವಿಫಲಗೊಂಡಿದೆ</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="125"/> - <source>pa_context_move_source_output_by_index() failed</source> - <translation>pa_context_move_source_output_by_index() ವಿಫಲಗೊಂಡಿದೆ</translation> - </message> -</context> -<context> - <name>SourceWidget</name> - <message> - <location filename="../sourcewidget.cc" line="35"/> - <source>pa_context_set_source_volume_by_index() failed</source> - <translation>pa_context_set_source_volume_by_index() ವಿಫಲಗೊಂಡಿದೆ</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="50"/> - <source>pa_context_set_source_mute_by_index() failed</source> - <translation>pa_context_set_source_mute_by_index() ವಿಫಲಗೊಂಡಿದೆ</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="64"/> - <source>pa_context_set_default_source() failed</source> - <translation>pa_context_set_default_source() ವಿಫಲಗೊಂಡಿದೆ</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="80"/> - <source>pa_context_set_source_port_by_index() failed</source> - <translation>pa_context_set_source_port_by_index() ವಿಫಲಗೊಂಡಿದೆ</translation> - </message> -</context> -<context> - <name>StreamWidget</name> - <message> - <location filename="../streamwidget.ui" line="14"/> - <source>Form</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.ui" line="32"/> - <source>Device Title</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.ui" line="52"/> - <source>direction</source> - <translation>ದಿಕ್ಕು</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="59"/> - <source>device</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.ui" line="66"/> - <source>Mute audio</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.ui" line="79"/> - <source>Lock channels together</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.cc" line="34"/> - <source>Terminate</source> - <translation>ಪ್ಲೇಬ್ಯಾಕನ್ನು ಅಂತ್ಯಗೊಳಿಸು</translation> - </message> -</context> -</TS> diff --git a/src/translations/pavucontrol-qt_ko.desktop.yaml b/src/translations/pavucontrol-qt_ko.desktop.yaml deleted file mode 100644 index 95bbd87..0000000 --- a/src/translations/pavucontrol-qt_ko.desktop.yaml +++ /dev/null @@ -1,3 +0,0 @@ -Desktop Entry/Name: "PulseAudio 음량 제어" -Desktop Entry/GenericName: "음량 제어" -Desktop Entry/Comment: "음량 수준 조정" diff --git a/src/translations/pavucontrol-qt_ko.ts b/src/translations/pavucontrol-qt_ko.ts deleted file mode 100644 index e626942..0000000 --- a/src/translations/pavucontrol-qt_ko.ts +++ /dev/null @@ -1,739 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE TS> -<TS version="2.1" language="ko"> -<context> - <name>CardWidget</name> - <message> - <location filename="../cardwidget.ui" line="14"/> - <source>Form</source> - <translation>형태</translation> - </message> - <message> - <location filename="../cardwidget.ui" line="29"/> - <source>Card Name</source> - <translation>카드 이름</translation> - </message> - <message> - <location filename="../cardwidget.ui" line="47"/> - <source>Profile:</source> - <translation>프로필:</translation> - </message> - <message> - <location filename="../cardwidget.cc" line="67"/> - <source>pa_context_set_card_profile_by_index() failed</source> - <translation>pa_context_set_card_profile_by_index() 실패함</translation> - </message> -</context> -<context> - <name>Channel</name> - <message> - <location filename="../channel.cc" line="89"/> - <source>%1% (%2dB)</source> - <comment>volume slider label [X% (YdB)]</comment> - <translation>%1% (%2dB)</translation> - </message> - <message> - <location filename="../channel.cc" line="93"/> - <source>%1%</source> - <comment>volume slider label [X%]</comment> - <translation>%1%</translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Silence</small></source> - <translation><small>무음</small></translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Min</small></source> - <translation><small>최소</small></translation> - </message> - <message> - <location filename="../channel.cc" line="162"/> - <source><small>100% (0dB)</small></source> - <translation><small>100% (0dB)</small></translation> - </message> - <message> - <location filename="../channel.cc" line="165"/> - <source><small><i>Base</i></small></source> - <translation><small><i>기본</i></small></translation> - </message> -</context> -<context> - <name>ChannelWidget</name> - <message> - <location filename="../channelwidget.ui" line="14"/> - <source>Form</source> - <translation>형태</translation> - </message> - <message> - <location filename="../channelwidget.ui" line="20"/> - <source><b>left-front</b></source> - <translation><b>왼쪽 앞</b></translation> - </message> - <message> - <location filename="../channelwidget.ui" line="34"/> - <source><small>50%</small></source> - <translation><small>50%</small></translation> - </message> -</context> -<context> - <name>DeviceWidget</name> - <message> - <location filename="../devicewidget.ui" line="14"/> - <source>Form</source> - <translation>형태</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="36"/> - <source>Device Title</source> - <translation>장치 제목</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="56"/> - <source>Mute audio</source> - <translation>오디오 음소거</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="69"/> - <source>Lock channels together</source> - <translation>사운드 채널을 동시에 잠금</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="85"/> - <source>Set as fallback</source> - <translation>대체로 설정</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="103"/> - <source><b>Port:</b></source> - <translation><b>포트:</b></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="126"/> - <source>Show advanced options</source> - <translation>고급 옵션 표시</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="172"/> - <source>PCM</source> - <translation>PCM</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="182"/> - <source>AC3</source> - <translation>AC3</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="189"/> - <source>EAC3</source> - <translation>EAC3</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="196"/> - <source>DTS</source> - <translation>DTS</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="203"/> - <source>MPEG</source> - <translation>MPEG</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="210"/> - <source>AAC</source> - <translation>AAC</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="238"/> - <source><b>Latency offset:</b></source> - <translation><b>대기시간 오프셋:</b></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="245"/> - <source> ms</source> - <translation> ms</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="41"/> - <source>Rename device...</source> - <translation>장치 이름변경...</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="155"/> - <source>pa_context_set_port_latency_offset() failed</source> - <translation>pa_context_set_port_latency_offset() 실패함</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="226"/> - <source>Sorry, but device renaming is not supported.</source> - <translation>죄송합니다. 장치 이름변경은 지원되지 않습니다.</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="227"/> - <source>You need to load module-device-manager in the PulseAudio server in order to rename devices</source> - <translation>장치 이름을 바꾸려면 PulseAudio 서버에서 module-device-manager를 불러와야 합니다</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="233"/> - <source>Rename device %1 to:</source> - <translation>다음으로 %1 장치 이름변경:</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="240"/> - <source>pa_ext_device_manager_set_device_description() failed</source> - <translation>pa_ext_device_manager_set_device_description() 실패함</translation> - </message> -</context> -<context> - <name>MainWindow</name> - <message> - <location filename="../mainwindow.ui" line="14"/> - <source>Volume Control</source> - <translation>음량 조절</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="55"/> - <source><i>No application is currently playing audio.</i></source> - <translation><i>현재 오디오를 재생중인 응용 프로그램이 없습니다.</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="66"/> - <location filename="../mainwindow.ui" line="131"/> - <location filename="../mainwindow.ui" line="196"/> - <location filename="../mainwindow.ui" line="261"/> - <source>Show:</source> - <translation>표시:</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="74"/> - <location filename="../mainwindow.ui" line="139"/> - <source>All Streams</source> - <translation>모든 스트림</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="79"/> - <location filename="../mainwindow.ui" line="144"/> - <source>Applications</source> - <translation>응용프로그램</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="84"/> - <location filename="../mainwindow.ui" line="149"/> - <source>Virtual Streams</source> - <translation>가상 스트림</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="120"/> - <source><i>No application is currently recording audio.</i></source> - <translation><i>현재 오디오를 녹음중인 응용프로그램이 없습니다.</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="185"/> - <source><i>No output devices available</i></source> - <translation><i>사용 가능한 출력 장치 없음</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="204"/> - <source>All Output Devices</source> - <translation>모든 출력 장치</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="209"/> - <source>Hardware Output Devices</source> - <translation>하드웨어 출력 장치</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="214"/> - <source>Virtual Output Devices</source> - <translation>가상 출력 장치</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="28"/> - <source>&Playback</source> - <translation>재생(&P)</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="93"/> - <source>&Recording</source> - <translation>녹음(&R)</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="158"/> - <source>&Output Devices</source> - <translation>출력 장치(&O)</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="223"/> - <source>&Input Devices</source> - <translation>입력 장치(&I)</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="250"/> - <source><i>No input devices available</i></source> - <translation><i>사용 가능한 입력 장치 없음</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="269"/> - <source>All Input Devices</source> - <translation>모든 입력 장치</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="274"/> - <source>All Except Monitors</source> - <translation>모니터를 제외한 모든 항목</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="279"/> - <source>Hardware Input Devices</source> - <translation>하드웨어 입력 장치</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="284"/> - <source>Virtual Input Devices</source> - <translation>가상 입력 장치</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="289"/> - <source>Monitors</source> - <translation>모니터</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="298"/> - <source>&Configuration</source> - <translation>구성(&C)</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="325"/> - <source><i>No cards available for configuration</i></source> - <translation><i>구성에 사용할 수 있는 카드 없음</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="336"/> - <source>Show volume meters</source> - <translation>음량 미터 표시</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="347"/> - <source>...</source> - <translation>...</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="159"/> - <source> (plugged in)</source> - <translation> (연결됨)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="163"/> - <location filename="../mainwindow.cc" line="257"/> - <source> (unavailable)</source> - <translation> (사용할 수 없음)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="165"/> - <location filename="../mainwindow.cc" line="254"/> - <source> (unplugged)</source> - <translation> (분리됨)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="388"/> - <source>Failed to read data from stream</source> - <translation>스트림에서 데이터를 읽지 못했습니다</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="432"/> - <source>Peak detect</source> - <translation>피크 감지</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="433"/> - <source>Failed to create monitoring stream</source> - <translation>모니터링 스트림을 만들지 못했습니다</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="448"/> - <source>Failed to connect monitoring stream</source> - <translation>모니터링 스트림을 연결하지 못했습니다</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="587"/> - <source>Ignoring sink-input due to it being designated as an event and thus handled by the Event widget</source> - <translation>이벤트로 지정되어 이벤트 위젯에서 처리되는 싱크 입력 무시하는 중</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="759"/> - <source>System Sounds</source> - <translation>시스템 사운드</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="1089"/> - <source>Establishing connection to PulseAudio. Please wait...</source> - <translation>PulseAudio에 연결하는 중입니다. 기다려 주세요...</translation> - </message> -</context> -<context> - <name>QObject</name> - <message> - <location filename="../pavucontrol.cc" line="66"/> - <source>Error</source> - <translation>오류</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="87"/> - <source>Card callback failure</source> - <translation>카드 콜백 실패</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="110"/> - <source>Sink callback failure</source> - <translation>싱크 콜백 실패</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="133"/> - <source>Source callback failure</source> - <translation>소스 콜백 실패</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="152"/> - <source>Sink input callback failure</source> - <translation>싱크 입력 콜백 실패</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="171"/> - <source>Source output callback failure</source> - <translation>소스 출력 콜백 실패</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="211"/> - <source>Client callback failure</source> - <translation>클라이언트 콜백 실패</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="227"/> - <source>Server info callback failure</source> - <translation>서버 정보 콜백 실패</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="245"/> - <location filename="../pavucontrol.cc" line="542"/> - <source>Failed to initialize stream_restore extension: %s</source> - <translation>stream_restore 확장을 초기화하지 못했습니다: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="263"/> - <source>pa_ext_stream_restore_read() failed</source> - <translation>pa_ext_stream_restore_read() 실패함</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="281"/> - <location filename="../pavucontrol.cc" line="556"/> - <source>Failed to initialize device restore extension: %s</source> - <translation>장치 복원 확장을 초기화하지 못했습니다: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="302"/> - <source>pa_ext_device_restore_read_sink_formats() failed</source> - <translation>pa_ext_device_restore_read_sink_formats() 실패함</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="320"/> - <location filename="../pavucontrol.cc" line="569"/> - <source>Failed to initialize device manager extension: %s</source> - <translation>장치 관리자 확장을 초기화하지 못했습니다: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="339"/> - <source>pa_ext_device_manager_read() failed</source> - <translation>pa_ext_device_manager_read() 실패함</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="356"/> - <source>pa_context_get_sink_info_by_index() failed</source> - <translation>pa_context_get_sink_info_by_index() 실패함</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="369"/> - <source>pa_context_get_source_info_by_index() failed</source> - <translation>pa_context_get_source_info_by_index() 실패함</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="382"/> - <location filename="../pavucontrol.cc" line="395"/> - <source>pa_context_get_sink_input_info() failed</source> - <translation>pa_context_get_sink_input_info() 실패함</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="408"/> - <source>pa_context_get_client_info() failed</source> - <translation>pa_context_get_client_info() 실패함</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="418"/> - <location filename="../pavucontrol.cc" line="483"/> - <source>pa_context_get_server_info() failed</source> - <translation>pa_context_get_server_info() 실패함</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="431"/> - <source>pa_context_get_card_info_by_index() failed</source> - <translation>pa_context_get_card_info_by_index() 실패함</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="474"/> - <source>pa_context_subscribe() failed</source> - <translation>pa_context_subscribe() 실패함</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="490"/> - <source>pa_context_client_info_list() failed</source> - <translation>pa_context_client_info_list() 실패함</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="497"/> - <source>pa_context_get_card_info_list() failed</source> - <translation>pa_context_get_card_info_list() 실패함</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="504"/> - <source>pa_context_get_sink_info_list() failed</source> - <translation>pa_context_get_sink_info_list() 실패함</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="511"/> - <source>pa_context_get_source_info_list() failed</source> - <translation>pa_context_get_source_info_list() 실패함</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="518"/> - <source>pa_context_get_sink_input_info_list() failed</source> - <translation>pa_context_get_sink_input_info_list() 실패함</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="525"/> - <source>pa_context_get_source_output_info_list() failed</source> - <translation>pa_context_get_source_output_info_list() 실패함</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="584"/> - <location filename="../pavucontrol.cc" line="635"/> - <source>Connection failed, attempting reconnect</source> - <translation>연결 실패, 다시 연결 시도</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="607"/> - <location filename="../pavucontrol.cc" line="664"/> - <source>PulseAudio Volume Control</source> - <translation>PulseAudio 음량 조절</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="622"/> - <source>Connection to PulseAudio failed. Automatic retry in 5s - -In this case this is likely because PULSE_SERVER in the Environment/X11 Root Window Properties -or default-server in client.conf is misconfigured. -This situation can also arrise when PulseAudio crashed and left stale details in the X11 Root Window. -If this is the case, then PulseAudio should autospawn again, or if this is not configured you should -run start-pulseaudio-x11 manually.</source> - <translation>PulseAudio에 연결하지 못했습니다. 5초 후 자동 재시도 - -이 경우 Environment/X11 루트 창 속성의 PULSE_SERVER 또는 client.conf의 default-server가 -잘못 구성되었기 때문일 수 있습니다. -이 상황은 PulseAudio가 충돌하고 X11 루트 창에 오래된 세부 정보를 남길 때도 발생할 수 있습니다. -이 경우 PulseAudio가 다시 자동 생성되거나 구성되지 않은 경우 start-pulseaudio-x11을 수동으로 -실행해야 합니다.</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="672"/> - <source>Select a specific tab on load.</source> - <translation>불러오기 시 특정 탭을 선택합니다.</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="675"/> - <source>Retry forever if pa quits (every 5 seconds).</source> - <translation>pa가 종료되면 영원히 재시도합니다(5초마다).</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="678"/> - <source>Maximize the window.</source> - <translation>창을 최대화합니다.</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="703"/> - <source>Fatal Error: Unable to connect to PulseAudio</source> - <translation>치명적인 오류: PulseAudio에 연결할 수 없습니다</translation> - </message> -</context> -<context> - <name>RoleWidget</name> - <message> - <location filename="../rolewidget.cc" line="59"/> - <source>pa_ext_stream_restore_write() failed</source> - <translation>pa_ext_stream_restore_write() 실패함</translation> - </message> -</context> -<context> - <name>SinkInputWidget</name> - <message> - <location filename="../sinkinputwidget.cc" line="36"/> - <source>on</source> - <translation>켜기</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="39"/> - <source>Terminate Playback</source> - <translation>재생 종료</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="53"/> - <source>Unknown output</source> - <translation>알 수 없는 출력</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="64"/> - <source>pa_context_set_sink_input_volume() failed</source> - <translation>pa_context_set_sink_input_volume() 실패함</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="79"/> - <source>pa_context_set_sink_input_mute() failed</source> - <translation>pa_context_set_sink_input_mute() 실패함</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="89"/> - <source>pa_context_kill_sink_input() failed</source> - <translation>pa_context_kill_sink_input() 실패함</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="114"/> - <source>pa_context_move_sink_input_by_index() failed</source> - <translation>pa_context_move_sink_input_by_index() 실패함</translation> - </message> -</context> -<context> - <name>SinkWidget</name> - <message> - <location filename="../sinkwidget.cc" line="81"/> - <source>pa_context_set_sink_volume_by_index() failed</source> - <translation>pa_context_set_sink_volume_by_index() 실패함</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="96"/> - <source>pa_context_set_sink_mute_by_index() failed</source> - <translation>pa_context_set_sink_mute_by_index() 실패함</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="110"/> - <source>pa_context_set_default_sink() failed</source> - <translation>pa_context_set_default_sink() 실패함</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="126"/> - <source>pa_context_set_sink_port_by_index() failed</source> - <translation>pa_context_set_sink_port_by_index() 실패함</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="166"/> - <source>pa_ext_device_restore_save_sink_formats() failed</source> - <translation>pa_ext_device_restore_save_sink_formats() 실패함</translation> - </message> -</context> -<context> - <name>SourceOutputWidget</name> - <message> - <location filename="../sourceoutputwidget.cc" line="35"/> - <source>from</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="39"/> - <source>Terminate Recording</source> - <translation>녹음 종료</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="60"/> - <source>Unknown input</source> - <translation>알 수 없는 입력</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="72"/> - <source>pa_context_set_source_output_volume() failed</source> - <translation>pa_context_set_source_output_volume() 실패함</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="87"/> - <source>pa_context_set_source_output_mute() failed</source> - <translation>pa_context_set_source_output_mute() 실패함</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="98"/> - <source>pa_context_kill_source_output() failed</source> - <translation>pa_context_kill_source_output() 실패함</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="125"/> - <source>pa_context_move_source_output_by_index() failed</source> - <translation>pa_context_move_source_output_by_index() 실패함</translation> - </message> -</context> -<context> - <name>SourceWidget</name> - <message> - <location filename="../sourcewidget.cc" line="35"/> - <source>pa_context_set_source_volume_by_index() failed</source> - <translation>pa_context_set_source_volume_by_index() 실패함</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="50"/> - <source>pa_context_set_source_mute_by_index() failed</source> - <translation>pa_context_set_source_mute_by_index() 실패함</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="64"/> - <source>pa_context_set_default_source() failed</source> - <translation>pa_context_set_default_source() 실패함</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="80"/> - <source>pa_context_set_source_port_by_index() failed</source> - <translation>pa_context_set_source_port_by_index() 실패함</translation> - </message> -</context> -<context> - <name>StreamWidget</name> - <message> - <location filename="../streamwidget.ui" line="14"/> - <source>Form</source> - <translation>형태</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="32"/> - <source>Device Title</source> - <translation>장치 제목</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="52"/> - <source>direction</source> - <translation>방향</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="59"/> - <source>device</source> - <translation>장치</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="66"/> - <source>Mute audio</source> - <translation>오디오 음소거</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="79"/> - <source>Lock channels together</source> - <translation>사운드 채널을 동시에 잠금</translation> - </message> - <message> - <location filename="../streamwidget.cc" line="34"/> - <source>Terminate</source> - <translation>종료</translation> - </message> -</context> -</TS> diff --git a/src/translations/pavucontrol-qt_lt.desktop.yaml b/src/translations/pavucontrol-qt_lt.desktop.yaml deleted file mode 100644 index 67cd9fc..0000000 --- a/src/translations/pavucontrol-qt_lt.desktop.yaml +++ /dev/null @@ -1,3 +0,0 @@ -Desktop Entry/Name: "PulseAudio garsio reguliavimas" -Desktop Entry/GenericName: "Garsio reguliavimas" -Desktop Entry/Comment: "Reguliuoti garsio lygį" diff --git a/src/translations/pavucontrol-qt_lt.ts b/src/translations/pavucontrol-qt_lt.ts deleted file mode 100644 index 242390a..0000000 --- a/src/translations/pavucontrol-qt_lt.ts +++ /dev/null @@ -1,740 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE TS> -<TS version="2.1" language="lt"> -<context> - <name>CardWidget</name> - <message> - <location filename="../cardwidget.ui" line="14"/> - <source>Form</source> - <translation>Forma</translation> - </message> - <message> - <location filename="../cardwidget.ui" line="29"/> - <source>Card Name</source> - <translation>Plokštės pavadinimas</translation> - </message> - <message> - <location filename="../cardwidget.ui" line="47"/> - <source>Profile:</source> - <translation>Profilis:</translation> - </message> - <message> - <location filename="../cardwidget.cc" line="67"/> - <source>pa_context_set_card_profile_by_index() failed</source> - <translation>pa_context_set_card_profile_by_index() nepavyko</translation> - </message> -</context> -<context> - <name>Channel</name> - <message> - <location filename="../channel.cc" line="89"/> - <source>%1% (%2dB)</source> - <comment>volume slider label [X% (YdB)]</comment> - <translation>%1% (%2dB)</translation> - </message> - <message> - <location filename="../channel.cc" line="93"/> - <source>%1%</source> - <comment>volume slider label [X%]</comment> - <translation>%1%</translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Silence</small></source> - <translation><small>Tyla</small></translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Min</small></source> - <translation><small>Min.</small></translation> - </message> - <message> - <location filename="../channel.cc" line="162"/> - <source><small>100% (0dB)</small></source> - <translation><small>100% (0dB)</small></translation> - </message> - <message> - <location filename="../channel.cc" line="165"/> - <source><small><i>Base</i></small></source> - <translation><small><i>Pagrindas</i></small></translation> - </message> -</context> -<context> - <name>ChannelWidget</name> - <message> - <location filename="../channelwidget.ui" line="14"/> - <source>Form</source> - <translation>Forma</translation> - </message> - <message> - <location filename="../channelwidget.ui" line="20"/> - <source><b>left-front</b></source> - <translation><b>kairioji priekinė</b></translation> - </message> - <message> - <location filename="../channelwidget.ui" line="34"/> - <source><small>50%</small></source> - <translation><small>50%</small></translation> - </message> -</context> -<context> - <name>DeviceWidget</name> - <message> - <location filename="../devicewidget.ui" line="14"/> - <source>Form</source> - <translation>Forma</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="36"/> - <source>Device Title</source> - <translation>Įrenginio pavadinimas</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="56"/> - <source>Mute audio</source> - <translation>Nutildyti garsą</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="69"/> - <source>Lock channels together</source> - <translation>Užrakinti kanalus kartu</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="85"/> - <source>Set as fallback</source> - <translation>Nustatyti kaip atsarginį</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="103"/> - <source><b>Port:</b></source> - <translation><b>Prievadas:</b></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="126"/> - <source>Show advanced options</source> - <translation>Rodyti išplėstinius parametrus</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="172"/> - <source>PCM</source> - <translation>PCM</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="182"/> - <source>AC3</source> - <translation>AC3</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="189"/> - <source>EAC3</source> - <translation>EAC3</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="196"/> - <source>DTS</source> - <translation>DTS</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="203"/> - <source>MPEG</source> - <translation>MPEG</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="210"/> - <source>AAC</source> - <translation>AAC</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="238"/> - <source><b>Latency offset:</b></source> - <translation><b>Delsos poslinkis:</b></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="245"/> - <source> ms</source> - <translation> ms</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="41"/> - <source>Rename device...</source> - <translation>Pervadinti įrenginį...</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="155"/> - <source>pa_context_set_port_latency_offset() failed</source> - <translation>pa_context_set_port_latency_offset() nepavyko</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="226"/> - <source>Sorry, but device renaming is not supported.</source> - <translation>Atleiskite, tačiau įrenginio pervadinimas yra nepalaikomas.</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="227"/> - <source>You need to load module-device-manager in the PulseAudio server in order to rename devices</source> - <translation>Norėdami pervadinti įrenginius, turite į PulseAudio serverį įkelti module-device-manager</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="233"/> - <source>Rename device %1 to:</source> - <translation>Pervadinti įrenginį %1 į:</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="240"/> - <source>pa_ext_device_manager_set_device_description() failed</source> - <translation>pa_ext_device_manager_set_device_description() nepavyko</translation> - </message> -</context> -<context> - <name>MainWindow</name> - <message> - <location filename="../mainwindow.ui" line="14"/> - <source>Volume Control</source> - <translation>Garsio reguliavimas</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="55"/> - <source><i>No application is currently playing audio.</i></source> - <translation><i>Šiuo metu jokios programos neatkuria garso.</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="66"/> - <location filename="../mainwindow.ui" line="131"/> - <location filename="../mainwindow.ui" line="196"/> - <location filename="../mainwindow.ui" line="261"/> - <source>Show:</source> - <translation>Rodyti:</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="74"/> - <location filename="../mainwindow.ui" line="139"/> - <source>All Streams</source> - <translation>Visi srautai</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="79"/> - <location filename="../mainwindow.ui" line="144"/> - <source>Applications</source> - <translation>Programos</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="84"/> - <location filename="../mainwindow.ui" line="149"/> - <source>Virtual Streams</source> - <translation>Virtualūs srautai</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="120"/> - <source><i>No application is currently recording audio.</i></source> - <translation><i>Šiuo metu jokios programos neįrašo garso.</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="185"/> - <source><i>No output devices available</i></source> - <translation><i>Nėra prieinamų išvesties įrenginių</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="204"/> - <source>All Output Devices</source> - <translation>Visi išvesties įrenginiai</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="209"/> - <source>Hardware Output Devices</source> - <translation>Aparatinės įrangos išvesties įrenginiai</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="214"/> - <source>Virtual Output Devices</source> - <translation>Virtualūs išvesties įrenginiai</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="28"/> - <source>&Playback</source> - <translation>&Atkūrimas</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="93"/> - <source>&Recording</source> - <translation>Į&rašymas</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="158"/> - <source>&Output Devices</source> - <translation>Išve&sties įrenginiai</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="223"/> - <source>&Input Devices</source> - <translation>Įvest&ies įrenginiai</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="250"/> - <source><i>No input devices available</i></source> - <translation><i>Nėra prieinamų įvesties įrenginių</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="269"/> - <source>All Input Devices</source> - <translation>Visi įvesties įrenginiai</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="274"/> - <source>All Except Monitors</source> - <translation>Visi, išskyrus monitorius</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="279"/> - <source>Hardware Input Devices</source> - <translation>Aparatinės įrangos įvesties įrenginiai</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="284"/> - <source>Virtual Input Devices</source> - <translation>Virtualūs įvesties įrenginiai</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="289"/> - <source>Monitors</source> - <translation>Monitoriai</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="298"/> - <source>&Configuration</source> - <translation>&Konfigūracija</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="325"/> - <source><i>No cards available for configuration</i></source> - <translation><i>Nėra konfigūracijai prieinamų plokščių</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="336"/> - <source>Show volume meters</source> - <translation>Rodyti garsio matuoklius</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="347"/> - <source>...</source> - <translation>...</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="159"/> - <source> (plugged in)</source> - <translation> (kištukas įjungtas)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="163"/> - <location filename="../mainwindow.cc" line="257"/> - <source> (unavailable)</source> - <translation> (neprieinama)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="165"/> - <location filename="../mainwindow.cc" line="254"/> - <source> (unplugged)</source> - <translation> (kištukas ištrauktas)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="388"/> - <source>Failed to read data from stream</source> - <translation>Nepavyko perskaityti duomenų iš srauto</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="432"/> - <source>Peak detect</source> - <translation>Maksimumų aptikimas</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="433"/> - <source>Failed to create monitoring stream</source> - <translation>Nepavyko sukurti monitorinio srauto</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="448"/> - <source>Failed to connect monitoring stream</source> - <translation>Nepavyko prisijungti prie monitorinio srauto</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="587"/> - <source>Ignoring sink-input due to it being designated as an event and thus handled by the Event widget</source> - <translation>Rinktuvo įvesties nepaisoma dėl to, kad ji yra paskirta kaip įvykis ir todėl, yra apdorojama Įvykių valdiklio</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="759"/> - <source>System Sounds</source> - <translation>Sistemos garsai</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="1089"/> - <source>Establishing connection to PulseAudio. Please wait...</source> - <translation>Užmezgiamas ryšys su PulseAudio. Prašome palaukti...</translation> - </message> -</context> -<context> - <name>QObject</name> - <message> - <location filename="../pavucontrol.cc" line="66"/> - <source>Error</source> - <translation>Klaida</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="87"/> - <source>Card callback failure</source> - <translation>Plokštės atgalinės iškvietos nesėkmė</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="110"/> - <source>Sink callback failure</source> - <translation>Rinktuvo atgalinės iškvietos nesėkmė</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="133"/> - <source>Source callback failure</source> - <translation>Šaltinio atgalinės iškvietos nesėkmė</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="152"/> - <source>Sink input callback failure</source> - <translation>Rinktuvo įvesties atgalinės iškvietos nesėkmė</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="171"/> - <source>Source output callback failure</source> - <translation>Šaltinio išvesties atgalinės iškvietos nesėkmė</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="211"/> - <source>Client callback failure</source> - <translation>Kliento atgalinės iškvietos nesėkmė</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="227"/> - <source>Server info callback failure</source> - <translation>Serverio informacijos atgalinės iškvietos nesėkmė</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="245"/> - <location filename="../pavucontrol.cc" line="542"/> - <source>Failed to initialize stream_restore extension: %s</source> - <translation>Nepavyko inicijuoti stream_restore plėtinio: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="263"/> - <source>pa_ext_stream_restore_read() failed</source> - <translation>pa_ext_stream_restore_read() nepavyko</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="281"/> - <location filename="../pavucontrol.cc" line="556"/> - <source>Failed to initialize device restore extension: %s</source> - <translation>Nepavyko inicijuoti įrenginio atkūrimo plėtinio: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="302"/> - <source>pa_ext_device_restore_read_sink_formats() failed</source> - <translation>pa_ext_device_restore_read_sink_formats() nepavyko</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="320"/> - <location filename="../pavucontrol.cc" line="569"/> - <source>Failed to initialize device manager extension: %s</source> - <translation>Nepavyko inicijuoti įrenginių tvarkytuvės plėtinio: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="339"/> - <source>pa_ext_device_manager_read() failed</source> - <translation>pa_ext_device_manager_read() nepavyko</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="356"/> - <source>pa_context_get_sink_info_by_index() failed</source> - <translation>pa_context_get_sink_info_by_index() nepavyko</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="369"/> - <source>pa_context_get_source_info_by_index() failed</source> - <translation>pa_context_get_source_info_by_index() nepavyko</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="382"/> - <location filename="../pavucontrol.cc" line="395"/> - <source>pa_context_get_sink_input_info() failed</source> - <translation>pa_context_get_sink_input_info() nepavyko</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="408"/> - <source>pa_context_get_client_info() failed</source> - <translation>pa_context_get_client_info() nepavyko</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="418"/> - <location filename="../pavucontrol.cc" line="483"/> - <source>pa_context_get_server_info() failed</source> - <translation>pa_context_get_server_info() nepavyko</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="431"/> - <source>pa_context_get_card_info_by_index() failed</source> - <translation>pa_context_get_card_info_by_index() nepavyko</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="474"/> - <source>pa_context_subscribe() failed</source> - <translation>pa_context_subscribe() nepavyko</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="490"/> - <source>pa_context_client_info_list() failed</source> - <translation>pa_context_client_info_list() nepavyko</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="497"/> - <source>pa_context_get_card_info_list() failed</source> - <translation>pa_context_get_card_info_list() nepavyko</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="504"/> - <source>pa_context_get_sink_info_list() failed</source> - <translation>pa_context_get_sink_info_list() nepavyko</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="511"/> - <source>pa_context_get_source_info_list() failed</source> - <translation>pa_context_get_source_info_list() nepavyko</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="518"/> - <source>pa_context_get_sink_input_info_list() failed</source> - <translation>pa_context_get_sink_input_info_list() nepavyko</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="525"/> - <source>pa_context_get_source_output_info_list() failed</source> - <translation>pa_context_get_source_output_info_list() nepavyko</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="584"/> - <location filename="../pavucontrol.cc" line="635"/> - <source>Connection failed, attempting reconnect</source> - <translation>Prisijungimas nepavyko, bandoma prisijungti iš naujo</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="607"/> - <location filename="../pavucontrol.cc" line="664"/> - <source>PulseAudio Volume Control</source> - <translation>PulseAudio garsio reguliavimas</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="622"/> - <source>Connection to PulseAudio failed. Automatic retry in 5s - -In this case this is likely because PULSE_SERVER in the Environment/X11 Root Window Properties -or default-server in client.conf is misconfigured. -This situation can also arrise when PulseAudio crashed and left stale details in the X11 Root Window. -If this is the case, then PulseAudio should autospawn again, or if this is not configured you should -run start-pulseaudio-x11 manually.</source> - <translation>Prisijungimas prie PulseAudio nepavyko. Automatinis bandymas iš naujo po 5 sek. - -Šiuo atveju, taip, greičiausiai, yra dėl to, kad PULSE_SERVER aplinkoje/X11 šaknies (root) lango savybėse -arba default-server, faile client.conf yra neteisingai sukonfigūruota. -Ši situacija taip pat gali įvykti, kai PulseAudio užstringa ir palieka pasenusią išsamią informaciją -X11 šaknies (root) lange. -Jeigu tai yra tas atvejis, tuomet PulseAudio turėtų vėl automatiškai pasileisti, arba jeigu tai nėra -sukonfigūruota, tuomet jūs turėtumėte paleisti start-pulseaudio-x11 rankiniu būdu.</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="672"/> - <source>Select a specific tab on load.</source> - <translation>Įkėlus, pasirinkti tam tikrą kortelę.</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="675"/> - <source>Retry forever if pa quits (every 5 seconds).</source> - <translation>Amžinai bandyti iš naujo, jei pa baigia darbą (kas 5 sekundes).</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="678"/> - <source>Maximize the window.</source> - <translation>Išskleisti langą.</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="703"/> - <source>Fatal Error: Unable to connect to PulseAudio</source> - <translation>Lemtingoji klaida: Nepavyko prisijungti prie PulseAudio</translation> - </message> -</context> -<context> - <name>RoleWidget</name> - <message> - <location filename="../rolewidget.cc" line="59"/> - <source>pa_ext_stream_restore_write() failed</source> - <translation>pa_ext_stream_restore_write() nepavyko</translation> - </message> -</context> -<context> - <name>SinkInputWidget</name> - <message> - <location filename="../sinkinputwidget.cc" line="36"/> - <source>on</source> - <translation>per</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="39"/> - <source>Terminate Playback</source> - <translation>Nutraukti atkūrimą</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="53"/> - <source>Unknown output</source> - <translation>Nežinoma išvestis</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="64"/> - <source>pa_context_set_sink_input_volume() failed</source> - <translation>pa_context_set_sink_input_volume() nepavyko</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="79"/> - <source>pa_context_set_sink_input_mute() failed</source> - <translation>pa_context_set_sink_input_mute() nepavyko</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="89"/> - <source>pa_context_kill_sink_input() failed</source> - <translation>pa_context_kill_sink_input() nepavyko</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="114"/> - <source>pa_context_move_sink_input_by_index() failed</source> - <translation>pa_context_move_sink_input_by_index() nepavyko</translation> - </message> -</context> -<context> - <name>SinkWidget</name> - <message> - <location filename="../sinkwidget.cc" line="81"/> - <source>pa_context_set_sink_volume_by_index() failed</source> - <translation>pa_context_set_sink_volume_by_index() nepavyko</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="96"/> - <source>pa_context_set_sink_mute_by_index() failed</source> - <translation>pa_context_set_sink_mute_by_index() nepavyko</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="110"/> - <source>pa_context_set_default_sink() failed</source> - <translation>pa_context_set_default_sink() nepavyko</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="126"/> - <source>pa_context_set_sink_port_by_index() failed</source> - <translation>pa_context_set_sink_port_by_index() nepavyko</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="166"/> - <source>pa_ext_device_restore_save_sink_formats() failed</source> - <translation>pa_ext_device_restore_save_sink_formats() nepavyko</translation> - </message> -</context> -<context> - <name>SourceOutputWidget</name> - <message> - <location filename="../sourceoutputwidget.cc" line="35"/> - <source>from</source> - <translation>iš</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="39"/> - <source>Terminate Recording</source> - <translation>Nutraukti įrašymą</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="60"/> - <source>Unknown input</source> - <translation>Nežinoma įvestis</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="72"/> - <source>pa_context_set_source_output_volume() failed</source> - <translation>pa_context_set_source_output_volume() nepavyko</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="87"/> - <source>pa_context_set_source_output_mute() failed</source> - <translation>pa_context_set_source_output_mute() nepavyko</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="98"/> - <source>pa_context_kill_source_output() failed</source> - <translation>pa_context_kill_source_output() nepavyko</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="125"/> - <source>pa_context_move_source_output_by_index() failed</source> - <translation>pa_context_move_source_output_by_index() nepavyko</translation> - </message> -</context> -<context> - <name>SourceWidget</name> - <message> - <location filename="../sourcewidget.cc" line="35"/> - <source>pa_context_set_source_volume_by_index() failed</source> - <translation>pa_context_set_source_volume_by_index() nepavyko</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="50"/> - <source>pa_context_set_source_mute_by_index() failed</source> - <translation>pa_context_set_source_mute_by_index() nepavyko</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="64"/> - <source>pa_context_set_default_source() failed</source> - <translation>pa_context_set_default_source() nepavyko</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="80"/> - <source>pa_context_set_source_port_by_index() failed</source> - <translation>pa_context_set_source_port_by_index() nepavyko</translation> - </message> -</context> -<context> - <name>StreamWidget</name> - <message> - <location filename="../streamwidget.ui" line="14"/> - <source>Form</source> - <translation>Forma</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="32"/> - <source>Device Title</source> - <translation>Įrenginio pavadinimas</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="52"/> - <source>direction</source> - <translation>kryptis</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="59"/> - <source>device</source> - <translation>įrenginys</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="66"/> - <source>Mute audio</source> - <translation>Nutildyti garsą</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="79"/> - <source>Lock channels together</source> - <translation>Užrakinti kanalus kartu</translation> - </message> - <message> - <location filename="../streamwidget.cc" line="34"/> - <source>Terminate</source> - <translation>Nutraukti</translation> - </message> -</context> -</TS> diff --git a/src/translations/pavucontrol-qt_ml.ts b/src/translations/pavucontrol-qt_ml.ts deleted file mode 100644 index 21a0e1d..0000000 --- a/src/translations/pavucontrol-qt_ml.ts +++ /dev/null @@ -1,733 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE TS> -<TS version="2.1" language="ml"> -<context> - <name>CardWidget</name> - <message> - <location filename="../cardwidget.ui" line="14"/> - <source>Form</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../cardwidget.ui" line="29"/> - <source>Card Name</source> - <translation>കാര്ഡിന്റെ പേരു്</translation> - </message> - <message> - <location filename="../cardwidget.ui" line="47"/> - <source>Profile:</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../cardwidget.cc" line="67"/> - <source>pa_context_set_card_profile_by_index() failed</source> - <translation>pa_context_set_card_profile_by_index() പരാജയപ്പെട്ടു</translation> - </message> -</context> -<context> - <name>Channel</name> - <message> - <location filename="../channel.cc" line="89"/> - <source>%1% (%2dB)</source> - <comment>volume slider label [X% (YdB)]</comment> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../channel.cc" line="93"/> - <source>%1%</source> - <comment>volume slider label [X%]</comment> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Silence</small></source> - <translation type="unfinished"><small>നിശബ്ദം</small></translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Min</small></source> - <translation type="unfinished"><small>ഏറ്റവും കൂറഞ്ഞ</small></translation> - </message> - <message> - <location filename="../channel.cc" line="162"/> - <source><small>100% (0dB)</small></source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../channel.cc" line="165"/> - <source><small><i>Base</i></small></source> - <translation type="unfinished"><small><i>അടിസ്ഥാനം</i></small></translation> - </message> -</context> -<context> - <name>ChannelWidget</name> - <message> - <location filename="../channelwidget.ui" line="14"/> - <source>Form</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../channelwidget.ui" line="20"/> - <source><b>left-front</b></source> - <translation><b>ഇടത്-മുന്നില്</b></translation> - </message> - <message> - <location filename="../channelwidget.ui" line="34"/> - <source><small>50%</small></source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>DeviceWidget</name> - <message> - <location filename="../devicewidget.ui" line="14"/> - <source>Form</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="36"/> - <source>Device Title</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="56"/> - <source>Mute audio</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="69"/> - <source>Lock channels together</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="85"/> - <source>Set as fallback</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="103"/> - <source><b>Port:</b></source> - <translation><b>പോര്ട്ട്:</b></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="126"/> - <source>Show advanced options</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="172"/> - <source>PCM</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="182"/> - <source>AC3</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="189"/> - <source>EAC3</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="196"/> - <source>DTS</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="203"/> - <source>MPEG</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="210"/> - <source>AAC</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="238"/> - <source><b>Latency offset:</b></source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="245"/> - <source> ms</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="41"/> - <source>Rename device...</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="155"/> - <source>pa_context_set_port_latency_offset() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="226"/> - <source>Sorry, but device renaming is not supported.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="227"/> - <source>You need to load module-device-manager in the PulseAudio server in order to rename devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="233"/> - <source>Rename device %1 to:</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="240"/> - <source>pa_ext_device_manager_set_device_description() failed</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>MainWindow</name> - <message> - <location filename="../mainwindow.ui" line="14"/> - <source>Volume Control</source> - <translation>ശബ്ദ നിയന്ത്രണം</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="28"/> - <source>&Playback</source> - <translation>&പ്ലേബാക്ക്</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="55"/> - <source><i>No application is currently playing audio.</i></source> - <translation><i>ഒരു പ്രയോഗവും നിലവില് ഓഡിയോ പ്രവര്ത്തിപ്പിക്കുന്നില്ല.</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="66"/> - <location filename="../mainwindow.ui" line="131"/> - <location filename="../mainwindow.ui" line="196"/> - <location filename="../mainwindow.ui" line="261"/> - <source>Show:</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="74"/> - <location filename="../mainwindow.ui" line="139"/> - <source>All Streams</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="79"/> - <location filename="../mainwindow.ui" line="144"/> - <source>Applications</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="84"/> - <location filename="../mainwindow.ui" line="149"/> - <source>Virtual Streams</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="93"/> - <source>&Recording</source> - <translation>&റിക്കോര്ഡ് ചെയ്യുന്നു</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="120"/> - <source><i>No application is currently recording audio.</i></source> - <translation><i>ഒരു പ്രയോഗവും നിലവില് ഓഡിയോ റിക്കോര്ഡ് ചെയ്യുന്നില്ല.</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="158"/> - <source>&Output Devices</source> - <translation>_ഔട്ട്പുട്ട് ഡിവൈസുകള്</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="185"/> - <source><i>No output devices available</i></source> - <translation><i>ഔട്ട്പുട്ട് ഡിവൈസുകള് ലഭ്യമല്ല</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="204"/> - <source>All Output Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="209"/> - <source>Hardware Output Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="214"/> - <source>Virtual Output Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="223"/> - <source>&Input Devices</source> - <translation>_ഇന്പുട്ട് ഡിവൈസുകള്</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="250"/> - <source><i>No input devices available</i></source> - <translation><i>ഇന്പുട്ട് ഡിവൈസുകള് ലഭ്യമല്ല</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="269"/> - <source>All Input Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="274"/> - <source>All Except Monitors</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="279"/> - <source>Hardware Input Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="284"/> - <source>Virtual Input Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="289"/> - <source>Monitors</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="298"/> - <source>&Configuration</source> - <translation>&ക്രമീകരണം</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="325"/> - <source><i>No cards available for configuration</i></source> - <translation><i>ക്രമീകരിക്കുന്നതിലുള്ള കാര്ഡുകള് ലഭ്യമല്ല</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="336"/> - <source>Show volume meters</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="347"/> - <source>...</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="159"/> - <source> (plugged in)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="163"/> - <location filename="../mainwindow.cc" line="257"/> - <source> (unavailable)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="165"/> - <location filename="../mainwindow.cc" line="254"/> - <source> (unplugged)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="388"/> - <source>Failed to read data from stream</source> - <translation>സ്ട്രീമില് നിന്നും ഡേറ്റാ ലഭ്യമാക്കുന്നതില് പരാജയപ്പെട്ടു</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="432"/> - <source>Peak detect</source> - <translation>Peak detect</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="433"/> - <source>Failed to create monitoring stream</source> - <translation>മോണിറ്ററിങ് സ്ട്രീം ഉണ്ടാക്കുന്നതില് പരാജയപ്പെട്ടു</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="448"/> - <source>Failed to connect monitoring stream</source> - <translation>മോണിറ്ററിങ് സ്ട്രീം കണക്ട് ചെയ്യുന്നതില് പരാജയപ്പെട്ടു</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="587"/> - <source>Ignoring sink-input due to it being designated as an event and thus handled by the Event widget</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="759"/> - <source>System Sounds</source> - <translation>സിസ്റ്റം ശബ്ദങ്ങള്</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="1089"/> - <source>Establishing connection to PulseAudio. Please wait...</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>QObject</name> - <message> - <location filename="../pavucontrol.cc" line="66"/> - <source>Error</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="87"/> - <source>Card callback failure</source> - <translation>കാര്ഡ് കോള്ബാക്ക് പരാജയം</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="110"/> - <source>Sink callback failure</source> - <translation>കാര്ഡ് കോള്ബാക്ക് പരാജയം</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="133"/> - <source>Source callback failure</source> - <translation>സോഴ്സ് കോള്ബാക്ക് പരാജയം</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="152"/> - <source>Sink input callback failure</source> - <translation>സിങ്ക് ഇന്പുട്ട് കോള്ബാക്ക് പരാജയം</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="171"/> - <source>Source output callback failure</source> - <translation>സോഴ്സ് ഔട്ട്പുട്ട് കോള്ബാക്ക് പരാജയം</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="211"/> - <source>Client callback failure</source> - <translation>ക്ലൈന്റ് കോള്ബാക്ക് പരാജയം</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="227"/> - <source>Server info callback failure</source> - <translation>സര്വര് ഇന്ഫോ കോള്ബാക്ക് പരാജയം</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="245"/> - <location filename="../pavucontrol.cc" line="542"/> - <source>Failed to initialize stream_restore extension: %s</source> - <translation>stream_restore എക്സ്റ്റെന്ഷന് ആരംഭിക്കുന്നതില് പരാജയപ്പെട്ടു: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="263"/> - <source>pa_ext_stream_restore_read() failed</source> - <translation>pa_ext_stream_restore_read() പരാജയപ്പെട്ടു</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="281"/> - <location filename="../pavucontrol.cc" line="556"/> - <source>Failed to initialize device restore extension: %s</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="302"/> - <source>pa_ext_device_restore_read_sink_formats() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="320"/> - <location filename="../pavucontrol.cc" line="569"/> - <source>Failed to initialize device manager extension: %s</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="339"/> - <source>pa_ext_device_manager_read() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="356"/> - <source>pa_context_get_sink_info_by_index() failed</source> - <translation>pa_context_get_sink_info_by_index() പരാജയപ്പെട്ടു</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="369"/> - <source>pa_context_get_source_info_by_index() failed</source> - <translation>pa_context_get_source_info_by_index() പരാജയപ്പെട്ടു</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="382"/> - <location filename="../pavucontrol.cc" line="395"/> - <source>pa_context_get_sink_input_info() failed</source> - <translation>pa_context_get_sink_input_info() പരാജയപ്പെട്ടു</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="408"/> - <source>pa_context_get_client_info() failed</source> - <translation>pa_context_get_client_info() പരാജയപ്പെട്ടു</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="418"/> - <location filename="../pavucontrol.cc" line="483"/> - <source>pa_context_get_server_info() failed</source> - <translation>pa_context_get_server_info() പരാജയപ്പെട്ടു</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="431"/> - <source>pa_context_get_card_info_by_index() failed</source> - <translation>pa_context_get_card_info_by_index() പരാജയപ്പെട്ടു</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="474"/> - <source>pa_context_subscribe() failed</source> - <translation>pa_context_subscribe() പരാജയപ്പെട്ടു</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="490"/> - <source>pa_context_client_info_list() failed</source> - <translation>pa_context_client_info_list() പരാജയപ്പെട്ടു</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="497"/> - <source>pa_context_get_card_info_list() failed</source> - <translation>pa_context_get_card_info_list() പരാജയപ്പെട്ടു</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="504"/> - <source>pa_context_get_sink_info_list() failed</source> - <translation>pa_context_get_sink_info_list() പരാജയപ്പെട്ടു</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="511"/> - <source>pa_context_get_source_info_list() failed</source> - <translation>pa_context_get_source_info_list() പരാജയപ്പെട്ടു</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="518"/> - <source>pa_context_get_sink_input_info_list() failed</source> - <translation>pa_context_get_sink_input_info_list() പരാജയപ്പെട്ടു</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="525"/> - <source>pa_context_get_source_output_info_list() failed</source> - <translation>pa_context_get_source_output_info_list() പരാജയപ്പെട്ടു</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="584"/> - <location filename="../pavucontrol.cc" line="635"/> - <source>Connection failed, attempting reconnect</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="607"/> - <location filename="../pavucontrol.cc" line="664"/> - <source>PulseAudio Volume Control</source> - <translation>പള്സ്ഓഡിയോ ശബ്ദ നിയന്ത്രണം</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="622"/> - <source>Connection to PulseAudio failed. Automatic retry in 5s - -In this case this is likely because PULSE_SERVER in the Environment/X11 Root Window Properties -or default-server in client.conf is misconfigured. -This situation can also arrise when PulseAudio crashed and left stale details in the X11 Root Window. -If this is the case, then PulseAudio should autospawn again, or if this is not configured you should -run start-pulseaudio-x11 manually.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="672"/> - <source>Select a specific tab on load.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="675"/> - <source>Retry forever if pa quits (every 5 seconds).</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="678"/> - <source>Maximize the window.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="703"/> - <source>Fatal Error: Unable to connect to PulseAudio</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>RoleWidget</name> - <message> - <location filename="../rolewidget.cc" line="59"/> - <source>pa_ext_stream_restore_write() failed</source> - <translation>pa_ext_stream_restore_write() പരാജയപ്പെട്ടു</translation> - </message> -</context> -<context> - <name>SinkInputWidget</name> - <message> - <location filename="../sinkinputwidget.cc" line="36"/> - <source>on</source> - <translation>on</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="39"/> - <source>Terminate Playback</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="53"/> - <source>Unknown output</source> - <translation>അപരിചിതമായ ഔട്ട്പുട്ട്</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="64"/> - <source>pa_context_set_sink_input_volume() failed</source> - <translation>pa_context_set_sink_input_volume() പരാജയപ്പെട്ടു</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="79"/> - <source>pa_context_set_sink_input_mute() failed</source> - <translation>pa_context_set_sink_input_mute() പരാജയപ്പെട്ടു</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="89"/> - <source>pa_context_kill_sink_input() failed</source> - <translation>pa_context_kill_sink_input() പരാജയപ്പെട്ടു</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="114"/> - <source>pa_context_move_sink_input_by_index() failed</source> - <translation>pa_context_move_sink_input_by_index() പരാജയപ്പെട്ടു</translation> - </message> -</context> -<context> - <name>SinkWidget</name> - <message> - <location filename="../sinkwidget.cc" line="81"/> - <source>pa_context_set_sink_volume_by_index() failed</source> - <translation>pa_context_set_sink_volume_by_index() പരാജയപ്പെട്ടു</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="96"/> - <source>pa_context_set_sink_mute_by_index() failed</source> - <translation>pa_context_set_sink_mute_by_index() പരാജയപ്പെട്ടു</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="110"/> - <source>pa_context_set_default_sink() failed</source> - <translation>pa_context_set_default_sink() പരാജയപ്പെട്ടു</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="126"/> - <source>pa_context_set_sink_port_by_index() failed</source> - <translation>pa_context_set_sink_port_by_index() പരാജയപ്പെട്ടു</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="166"/> - <source>pa_ext_device_restore_save_sink_formats() failed</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>SourceOutputWidget</name> - <message> - <location filename="../sourceoutputwidget.cc" line="35"/> - <source>from</source> - <translation>നിന്നും</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="39"/> - <source>Terminate Recording</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="60"/> - <source>Unknown input</source> - <translation>അപരിചിതമായ ഇന്പുട്ട്</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="72"/> - <source>pa_context_set_source_output_volume() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="87"/> - <source>pa_context_set_source_output_mute() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="98"/> - <source>pa_context_kill_source_output() failed</source> - <translation>pa_context_kill_source_output() പരാജയപ്പെട്ടു</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="125"/> - <source>pa_context_move_source_output_by_index() failed</source> - <translation>pa_context_move_source_output_by_index() പരാജയപ്പെട്ടു</translation> - </message> -</context> -<context> - <name>SourceWidget</name> - <message> - <location filename="../sourcewidget.cc" line="35"/> - <source>pa_context_set_source_volume_by_index() failed</source> - <translation>pa_context_set_source_volume_by_index() പരാജയപ്പെട്ടു</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="50"/> - <source>pa_context_set_source_mute_by_index() failed</source> - <translation>pa_context_set_source_mute_by_index() പരാജയപ്പെട്ടു</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="64"/> - <source>pa_context_set_default_source() failed</source> - <translation>pa_context_set_default_source() പരാജയപ്പെട്ടു</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="80"/> - <source>pa_context_set_source_port_by_index() failed</source> - <translation>pa_context_set_source_port_by_index() പരാജയപ്പെട്ടു</translation> - </message> -</context> -<context> - <name>StreamWidget</name> - <message> - <location filename="../streamwidget.ui" line="14"/> - <source>Form</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.ui" line="32"/> - <source>Device Title</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.ui" line="52"/> - <source>direction</source> - <translation>ദിശ</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="59"/> - <source>device</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.ui" line="66"/> - <source>Mute audio</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.ui" line="79"/> - <source>Lock channels together</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.cc" line="34"/> - <source>Terminate</source> - <translation>പ്ലേബാക്ക് നിര്ത്തുക</translation> - </message> -</context> -</TS> diff --git a/src/translations/pavucontrol-qt_mr.ts b/src/translations/pavucontrol-qt_mr.ts deleted file mode 100644 index e81d04e..0000000 --- a/src/translations/pavucontrol-qt_mr.ts +++ /dev/null @@ -1,733 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE TS> -<TS version="2.1" language="mr"> -<context> - <name>CardWidget</name> - <message> - <location filename="../cardwidget.ui" line="14"/> - <source>Form</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../cardwidget.ui" line="29"/> - <source>Card Name</source> - <translation>कार्ड नाव</translation> - </message> - <message> - <location filename="../cardwidget.ui" line="47"/> - <source>Profile:</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../cardwidget.cc" line="67"/> - <source>pa_context_set_card_profile_by_index() failed</source> - <translation>pa_context_set_card_profile_by_index() अपयशी</translation> - </message> -</context> -<context> - <name>Channel</name> - <message> - <location filename="../channel.cc" line="89"/> - <source>%1% (%2dB)</source> - <comment>volume slider label [X% (YdB)]</comment> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../channel.cc" line="93"/> - <source>%1%</source> - <comment>volume slider label [X%]</comment> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Silence</small></source> - <translation type="unfinished"><small>गप्प</small></translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Min</small></source> - <translation type="unfinished"><small>किमान</small></translation> - </message> - <message> - <location filename="../channel.cc" line="162"/> - <source><small>100% (0dB)</small></source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../channel.cc" line="165"/> - <source><small><i>Base</i></small></source> - <translation type="unfinished"><small><i>बेस</i></small></translation> - </message> -</context> -<context> - <name>ChannelWidget</name> - <message> - <location filename="../channelwidget.ui" line="14"/> - <source>Form</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../channelwidget.ui" line="20"/> - <source><b>left-front</b></source> - <translation><b>डावे-समोरचे</b></translation> - </message> - <message> - <location filename="../channelwidget.ui" line="34"/> - <source><small>50%</small></source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>DeviceWidget</name> - <message> - <location filename="../devicewidget.ui" line="14"/> - <source>Form</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="36"/> - <source>Device Title</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="56"/> - <source>Mute audio</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="69"/> - <source>Lock channels together</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="85"/> - <source>Set as fallback</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="103"/> - <source><b>Port:</b></source> - <translation><b>पोर्ट:</b></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="126"/> - <source>Show advanced options</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="172"/> - <source>PCM</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="182"/> - <source>AC3</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="189"/> - <source>EAC3</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="196"/> - <source>DTS</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="203"/> - <source>MPEG</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="210"/> - <source>AAC</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="238"/> - <source><b>Latency offset:</b></source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="245"/> - <source> ms</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="41"/> - <source>Rename device...</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="155"/> - <source>pa_context_set_port_latency_offset() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="226"/> - <source>Sorry, but device renaming is not supported.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="227"/> - <source>You need to load module-device-manager in the PulseAudio server in order to rename devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="233"/> - <source>Rename device %1 to:</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="240"/> - <source>pa_ext_device_manager_set_device_description() failed</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>MainWindow</name> - <message> - <location filename="../mainwindow.ui" line="14"/> - <source>Volume Control</source> - <translation>आवाज नियंत्रण</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="28"/> - <source>&Playback</source> - <translation>प्लेबॅक (&P)</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="55"/> - <source><i>No application is currently playing audio.</i></source> - <translation><i>वर्तमानक्षणी कुठलेही ऍप्लिकेशन ऑडिओ चालवत नाही.</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="66"/> - <location filename="../mainwindow.ui" line="131"/> - <location filename="../mainwindow.ui" line="196"/> - <location filename="../mainwindow.ui" line="261"/> - <source>Show:</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="74"/> - <location filename="../mainwindow.ui" line="139"/> - <source>All Streams</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="79"/> - <location filename="../mainwindow.ui" line="144"/> - <source>Applications</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="84"/> - <location filename="../mainwindow.ui" line="149"/> - <source>Virtual Streams</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="93"/> - <source>&Recording</source> - <translation>रेकॉर्डींग (&R)</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="120"/> - <source><i>No application is currently recording audio.</i></source> - <translation><i>वर्तमानक्षणी कुठलेही ऍप्लिकेशन ऑडिओ रेकॉर्ड करत नाही.</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="158"/> - <source>&Output Devices</source> - <translation>आऊटपुट साधन (&O)</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="185"/> - <source><i>No output devices available</i></source> - <translation><i>आऊटपुट साधन उपलब्ध नाही</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="204"/> - <source>All Output Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="209"/> - <source>Hardware Output Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="214"/> - <source>Virtual Output Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="223"/> - <source>&Input Devices</source> - <translation>इनपुट साधन (&I)</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="250"/> - <source><i>No input devices available</i></source> - <translation><i>इनपुट साधन उपलब्ध नाही</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="269"/> - <source>All Input Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="274"/> - <source>All Except Monitors</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="279"/> - <source>Hardware Input Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="284"/> - <source>Virtual Input Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="289"/> - <source>Monitors</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="298"/> - <source>&Configuration</source> - <translation>संयोजना (&C)</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="325"/> - <source><i>No cards available for configuration</i></source> - <translation><i>संयोजना करीता कार्ड उपलब्ध नाही</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="336"/> - <source>Show volume meters</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="347"/> - <source>...</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="159"/> - <source> (plugged in)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="163"/> - <location filename="../mainwindow.cc" line="257"/> - <source> (unavailable)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="165"/> - <location filename="../mainwindow.cc" line="254"/> - <source> (unplugged)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="388"/> - <source>Failed to read data from stream</source> - <translation>स्ट्रीम पासून डेटा वाचण्यास अपयशी</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="432"/> - <source>Peak detect</source> - <translation>उच्च स्तर आढळले</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="433"/> - <source>Failed to create monitoring stream</source> - <translation>नियंत्रण स्ट्रीम बनवण्यास अपयशी</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="448"/> - <source>Failed to connect monitoring stream</source> - <translation>नियंत्रण स्ट्रीम जुळवण्यास अपयशी</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="587"/> - <source>Ignoring sink-input due to it being designated as an event and thus handled by the Event widget</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="759"/> - <source>System Sounds</source> - <translation>प्रणाली आवाज</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="1089"/> - <source>Establishing connection to PulseAudio. Please wait...</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>QObject</name> - <message> - <location filename="../pavucontrol.cc" line="66"/> - <source>Error</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="87"/> - <source>Card callback failure</source> - <translation>कार्ड कॉलबॅक अपयशी</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="110"/> - <source>Sink callback failure</source> - <translation>सिंक कॉलबॅक अपयशी</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="133"/> - <source>Source callback failure</source> - <translation>स्त्रोत कॉलबॅक अपयशी</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="152"/> - <source>Sink input callback failure</source> - <translation>सिंक इनपुट कॉलबॅक अपयशी</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="171"/> - <source>Source output callback failure</source> - <translation>स्त्रोत आऊटपुट कॉलबॅक अपयशी</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="211"/> - <source>Client callback failure</source> - <translation>क्लाऐंट कॉलबॅक अपयशी</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="227"/> - <source>Server info callback failure</source> - <translation>सर्वर माहिती कॉलबॅक अपयशी</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="245"/> - <location filename="../pavucontrol.cc" line="542"/> - <source>Failed to initialize stream_restore extension: %s</source> - <translation>stream_restore वाढ प्रारंभ करण्यास अपयशी: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="263"/> - <source>pa_ext_stream_restore_read() failed</source> - <translation>pa_ext_stream_restore_read() अपयशी</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="281"/> - <location filename="../pavucontrol.cc" line="556"/> - <source>Failed to initialize device restore extension: %s</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="302"/> - <source>pa_ext_device_restore_read_sink_formats() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="320"/> - <location filename="../pavucontrol.cc" line="569"/> - <source>Failed to initialize device manager extension: %s</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="339"/> - <source>pa_ext_device_manager_read() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="356"/> - <source>pa_context_get_sink_info_by_index() failed</source> - <translation>pa_context_get_sink_info_by_index() अपयशी</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="369"/> - <source>pa_context_get_source_info_by_index() failed</source> - <translation>pa_context_get_source_info_by_index() अपयशी</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="382"/> - <location filename="../pavucontrol.cc" line="395"/> - <source>pa_context_get_sink_input_info() failed</source> - <translation>pa_context_get_sink_input_info() अपयशी</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="408"/> - <source>pa_context_get_client_info() failed</source> - <translation>pa_context_get_client_info() अपयशी</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="418"/> - <location filename="../pavucontrol.cc" line="483"/> - <source>pa_context_get_server_info() failed</source> - <translation>pa_context_get_server_info() अपयशी</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="431"/> - <source>pa_context_get_card_info_by_index() failed</source> - <translation>pa_context_get_card_info_by_index() अपयशी</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="474"/> - <source>pa_context_subscribe() failed</source> - <translation>pa_context_subscribe() अपयशी</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="490"/> - <source>pa_context_client_info_list() failed</source> - <translation>pa_context_client_info_list() अपयशी</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="497"/> - <source>pa_context_get_card_info_list() failed</source> - <translation>pa_context_get_card_info_list() अपयशी</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="504"/> - <source>pa_context_get_sink_info_list() failed</source> - <translation>pa_context_get_sink_info_list() अपयशी</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="511"/> - <source>pa_context_get_source_info_list() failed</source> - <translation>pa_context_get_source_info_list() अपयशी</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="518"/> - <source>pa_context_get_sink_input_info_list() failed</source> - <translation>pa_context_get_sink_input_info_list() अपयशी</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="525"/> - <source>pa_context_get_source_output_info_list() failed</source> - <translation>pa_context_get_source_output_info_list() अपयशी</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="584"/> - <location filename="../pavucontrol.cc" line="635"/> - <source>Connection failed, attempting reconnect</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="607"/> - <location filename="../pavucontrol.cc" line="664"/> - <source>PulseAudio Volume Control</source> - <translation>PulseAudio आवाज नियंत्रण</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="622"/> - <source>Connection to PulseAudio failed. Automatic retry in 5s - -In this case this is likely because PULSE_SERVER in the Environment/X11 Root Window Properties -or default-server in client.conf is misconfigured. -This situation can also arrise when PulseAudio crashed and left stale details in the X11 Root Window. -If this is the case, then PulseAudio should autospawn again, or if this is not configured you should -run start-pulseaudio-x11 manually.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="672"/> - <source>Select a specific tab on load.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="675"/> - <source>Retry forever if pa quits (every 5 seconds).</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="678"/> - <source>Maximize the window.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="703"/> - <source>Fatal Error: Unable to connect to PulseAudio</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>RoleWidget</name> - <message> - <location filename="../rolewidget.cc" line="59"/> - <source>pa_ext_stream_restore_write() failed</source> - <translation>pa_ext_stream_restore_write() अपयशी</translation> - </message> -</context> -<context> - <name>SinkInputWidget</name> - <message> - <location filename="../sinkinputwidget.cc" line="36"/> - <source>on</source> - <translation>चालू करा</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="39"/> - <source>Terminate Playback</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="53"/> - <source>Unknown output</source> - <translation>अपरिचीत आऊटपुट</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="64"/> - <source>pa_context_set_sink_input_volume() failed</source> - <translation>pa_context_set_sink_input_volume() अपयशी</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="79"/> - <source>pa_context_set_sink_input_mute() failed</source> - <translation>pa_context_set_sink_input_mute() अपयशी</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="89"/> - <source>pa_context_kill_sink_input() failed</source> - <translation>pa_context_kill_sink_input() अपयशी</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="114"/> - <source>pa_context_move_sink_input_by_index() failed</source> - <translation>pa_context_move_sink_input_by_index() अपयशी</translation> - </message> -</context> -<context> - <name>SinkWidget</name> - <message> - <location filename="../sinkwidget.cc" line="81"/> - <source>pa_context_set_sink_volume_by_index() failed</source> - <translation>pa_context_set_sink_volume_by_index() अपयशी</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="96"/> - <source>pa_context_set_sink_mute_by_index() failed</source> - <translation>pa_context_set_sink_mute_by_index() अपयशी</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="110"/> - <source>pa_context_set_default_sink() failed</source> - <translation>pa_context_set_default_sink() अपयशी</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="126"/> - <source>pa_context_set_sink_port_by_index() failed</source> - <translation>pa_context_set_sink_port_by_index() अपयशी</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="166"/> - <source>pa_ext_device_restore_save_sink_formats() failed</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>SourceOutputWidget</name> - <message> - <location filename="../sourceoutputwidget.cc" line="35"/> - <source>from</source> - <translation>पासून</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="39"/> - <source>Terminate Recording</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="60"/> - <source>Unknown input</source> - <translation>अपरिचीत इंपुट</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="72"/> - <source>pa_context_set_source_output_volume() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="87"/> - <source>pa_context_set_source_output_mute() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="98"/> - <source>pa_context_kill_source_output() failed</source> - <translation>pa_context_kill_source_output() अपयशी</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="125"/> - <source>pa_context_move_source_output_by_index() failed</source> - <translation>pa_context_move_source_output_by_index() अपयशी</translation> - </message> -</context> -<context> - <name>SourceWidget</name> - <message> - <location filename="../sourcewidget.cc" line="35"/> - <source>pa_context_set_source_volume_by_index() failed</source> - <translation>pa_context_set_source_volume_by_index() अपयशी</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="50"/> - <source>pa_context_set_source_mute_by_index() failed</source> - <translation>pa_context_set_source_mute_by_index() अपयशी</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="64"/> - <source>pa_context_set_default_source() failed</source> - <translation>pa_context_set_default_source() अपयशी</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="80"/> - <source>pa_context_set_source_port_by_index() failed</source> - <translation>pa_context_set_source_port_by_index() अपयशी</translation> - </message> -</context> -<context> - <name>StreamWidget</name> - <message> - <location filename="../streamwidget.ui" line="14"/> - <source>Form</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.ui" line="32"/> - <source>Device Title</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.ui" line="52"/> - <source>direction</source> - <translation>दिशा</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="59"/> - <source>device</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.ui" line="66"/> - <source>Mute audio</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.ui" line="79"/> - <source>Lock channels together</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.cc" line="34"/> - <source>Terminate</source> - <translation>प्लेबॅक बंद करा</translation> - </message> -</context> -</TS> diff --git a/src/translations/pavucontrol-qt_nb_NO.desktop.yaml b/src/translations/pavucontrol-qt_nb_NO.desktop.yaml deleted file mode 100644 index b802e4c..0000000 --- a/src/translations/pavucontrol-qt_nb_NO.desktop.yaml +++ /dev/null @@ -1,3 +0,0 @@ -Desktop Entry/Name: "PulseAudio-lydstyrkekontroll" -Desktop Entry/GenericName: "Lydstyrkekontroll" -Desktop Entry/Comment: "Juster lydstyrkenivået" diff --git a/src/translations/pavucontrol-qt_nb_NO.ts b/src/translations/pavucontrol-qt_nb_NO.ts deleted file mode 100644 index 72ce71b..0000000 --- a/src/translations/pavucontrol-qt_nb_NO.ts +++ /dev/null @@ -1,739 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE TS> -<TS version="2.1" language="nb_NO"> -<context> - <name>CardWidget</name> - <message> - <location filename="../cardwidget.ui" line="14"/> - <source>Form</source> - <translation>Formular</translation> - </message> - <message> - <location filename="../cardwidget.ui" line="29"/> - <source>Card Name</source> - <translation>Kortnavn</translation> - </message> - <message> - <location filename="../cardwidget.ui" line="47"/> - <source>Profile:</source> - <translation>Profil:</translation> - </message> - <message> - <location filename="../cardwidget.cc" line="67"/> - <source>pa_context_set_card_profile_by_index() failed</source> - <translation>pa_context_set_card_profile_by_index() virket ikke</translation> - </message> -</context> -<context> - <name>Channel</name> - <message> - <location filename="../channel.cc" line="89"/> - <source>%1% (%2dB)</source> - <comment>volume slider label [X% (YdB)]</comment> - <translation></translation> - </message> - <message> - <location filename="../channel.cc" line="93"/> - <source>%1%</source> - <comment>volume slider label [X%]</comment> - <translation></translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Silence</small></source> - <translation><small>Stillhet</small></translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Min</small></source> - <translation><small>Min.</small></translation> - </message> - <message> - <location filename="../channel.cc" line="162"/> - <source><small>100% (0dB)</small></source> - <translation></translation> - </message> - <message> - <location filename="../channel.cc" line="165"/> - <source><small><i>Base</i></small></source> - <translation><small><i>Basis</i></small></translation> - </message> -</context> -<context> - <name>ChannelWidget</name> - <message> - <location filename="../channelwidget.ui" line="14"/> - <source>Form</source> - <translation>Formular</translation> - </message> - <message> - <location filename="../channelwidget.ui" line="20"/> - <source><b>left-front</b></source> - <translation><b>Venstre foran</b></translation> - </message> - <message> - <location filename="../channelwidget.ui" line="34"/> - <source><small>50%</small></source> - <translation></translation> - </message> -</context> -<context> - <name>DeviceWidget</name> - <message> - <location filename="../devicewidget.ui" line="14"/> - <source>Form</source> - <translation>Formular</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="36"/> - <source>Device Title</source> - <translation>Enhetsnavn</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="56"/> - <source>Mute audio</source> - <translation>Skru av lyd</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="69"/> - <source>Lock channels together</source> - <translation>Lås kanaler sammen</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="85"/> - <source>Set as fallback</source> - <translation>Sett som reserve</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="103"/> - <source><b>Port:</b></source> - <translation></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="126"/> - <source>Show advanced options</source> - <translation>Vis avanserte innstillinger</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="172"/> - <source>PCM</source> - <translation></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="182"/> - <source>AC3</source> - <translation></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="189"/> - <source>EAC3</source> - <translation></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="196"/> - <source>DTS</source> - <translation></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="203"/> - <source>MPEG</source> - <translation></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="210"/> - <source>AAC</source> - <translation></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="238"/> - <source><b>Latency offset:</b></source> - <translation><b>Forsinkelsesjustering:</b></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="245"/> - <source> ms</source> - <translation></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="41"/> - <source>Rename device...</source> - <translation>Gi enheten nytt navn..</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="155"/> - <source>pa_context_set_port_latency_offset() failed</source> - <translation>pa_context_set_port_latency_offset() mislyktes</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="226"/> - <source>Sorry, but device renaming is not supported.</source> - <translation>Unnskyld, men å gi enheten nytt navn støttes ikke.</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="227"/> - <source>You need to load module-device-manager in the PulseAudio server in order to rename devices</source> - <translation>Du må laste inn module-device-manager i PulseAudio-serveren for å kunne gi nytt navn til enheter</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="233"/> - <source>Rename device %1 to:</source> - <translation>Gi enheten %1 nytt navn:</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="240"/> - <source>pa_ext_device_manager_set_device_description() failed</source> - <translation>pa_ext_device_manager_set_device_description() mislyktes</translation> - </message> -</context> -<context> - <name>MainWindow</name> - <message> - <location filename="../mainwindow.ui" line="14"/> - <source>Volume Control</source> - <translation>Volumkontroll</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="55"/> - <source><i>No application is currently playing audio.</i></source> - <translation><i>Ingen programmer spiller lyd nå.</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="66"/> - <location filename="../mainwindow.ui" line="131"/> - <location filename="../mainwindow.ui" line="196"/> - <location filename="../mainwindow.ui" line="261"/> - <source>Show:</source> - <translation>Vis:</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="74"/> - <location filename="../mainwindow.ui" line="139"/> - <source>All Streams</source> - <translation>Alle strømmer</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="79"/> - <location filename="../mainwindow.ui" line="144"/> - <source>Applications</source> - <translation>Programmer</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="84"/> - <location filename="../mainwindow.ui" line="149"/> - <source>Virtual Streams</source> - <translation>Virtuelle strømmer</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="120"/> - <source><i>No application is currently recording audio.</i></source> - <translation><i>Ingen programmer tar opp lyd nå.</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="185"/> - <source><i>No output devices available</i></source> - <translation><i>Ingen utenheter er tilgjengelige</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="204"/> - <source>All Output Devices</source> - <translation>Alle utenheter</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="209"/> - <source>Hardware Output Devices</source> - <translation>Maskinvareutenheter</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="214"/> - <source>Virtual Output Devices</source> - <translation>Virtuelle utenheter</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="28"/> - <source>&Playback</source> - <translation>&Avspilling</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="93"/> - <source>&Recording</source> - <translation>&Opptak</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="158"/> - <source>&Output Devices</source> - <translation>&Utenheter</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="223"/> - <source>&Input Devices</source> - <translation>&Innenheter</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="250"/> - <source><i>No input devices available</i></source> - <translation><i>Ingen innenheter er tilgjengelige</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="269"/> - <source>All Input Devices</source> - <translation>Alle innenheter</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="274"/> - <source>All Except Monitors</source> - <translation>Alle untatt monitorer</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="279"/> - <source>Hardware Input Devices</source> - <translation>Maskinvare innenheter</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="284"/> - <source>Virtual Input Devices</source> - <translation>Virtuelle innenheter</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="289"/> - <source>Monitors</source> - <translation>Monitorer</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="298"/> - <source>&Configuration</source> - <translation>&Konfigurasjon</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="325"/> - <source><i>No cards available for configuration</i></source> - <translation><i>Ingen kort er tilgjengelige for innstilling</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="336"/> - <source>Show volume meters</source> - <translation>Vis volumindikatorer</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="347"/> - <source>...</source> - <translation></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="159"/> - <source> (plugged in)</source> - <translation> (tilkoblet)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="163"/> - <location filename="../mainwindow.cc" line="257"/> - <source> (unavailable)</source> - <translation> (ikke tilgjengelig)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="165"/> - <location filename="../mainwindow.cc" line="254"/> - <source> (unplugged)</source> - <translation> (frakoblet)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="388"/> - <source>Failed to read data from stream</source> - <translation>Klarte ikke å lese data fra strøm</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="432"/> - <source>Peak detect</source> - <translation>Overstyringsoppdaging</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="433"/> - <source>Failed to create monitoring stream</source> - <translation>Klarte ikke å lage monitorstrøm</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="448"/> - <source>Failed to connect monitoring stream</source> - <translation>Klarte ikke å koble til monitorstrøm</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="587"/> - <source>Ignoring sink-input due to it being designated as an event and thus handled by the Event widget</source> - <translation>Ignorerer sink-input fordi den er satt opp til å håndteres som en hendelse og dermed blir håndtert av Event widgeten</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="759"/> - <source>System Sounds</source> - <translation>Systemlyder</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="1089"/> - <source>Establishing connection to PulseAudio. Please wait...</source> - <translation>Setter opp forbindelse til PulseAudio. Vennligst vent...</translation> - </message> -</context> -<context> - <name>QObject</name> - <message> - <location filename="../pavucontrol.cc" line="66"/> - <source>Error</source> - <translation>Feil</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="87"/> - <source>Card callback failure</source> - <translation>Feil med tilbakemelding til kort</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="110"/> - <source>Sink callback failure</source> - <translation>Feil med tilbakemelding til sink</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="133"/> - <source>Source callback failure</source> - <translation>Feil med tilbakemelding til kilde</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="152"/> - <source>Sink input callback failure</source> - <translation>Feil med tilbakemelding til inngang på sink</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="171"/> - <source>Source output callback failure</source> - <translation>Feil med tilbakemelding til kildens utgang</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="211"/> - <source>Client callback failure</source> - <translation>Feil med tilbakemelding til klient</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="227"/> - <source>Server info callback failure</source> - <translation>Feil med tilbakemelding om server info</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="245"/> - <location filename="../pavucontrol.cc" line="542"/> - <source>Failed to initialize stream_restore extension: %s</source> - <translation>Feil med å sette i verk stream_restore extension: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="263"/> - <source>pa_ext_stream_restore_read() failed</source> - <translation>pa_ext_stream_restore_read() mislyktes</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="281"/> - <location filename="../pavucontrol.cc" line="556"/> - <source>Failed to initialize device restore extension: %s</source> - <translation>Klarte ikke å sette i gang device restore extension: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="302"/> - <source>pa_ext_device_restore_read_sink_formats() failed</source> - <translation>pa_ext_device_restore_read_sink_formats() mislyktes</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="320"/> - <location filename="../pavucontrol.cc" line="569"/> - <source>Failed to initialize device manager extension: %s</source> - <translation>Feil med å sette i gang device manager extension: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="339"/> - <source>pa_ext_device_manager_read() failed</source> - <translation>pa_ext_device_manager_read() mislyktes</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="356"/> - <source>pa_context_get_sink_info_by_index() failed</source> - <translation>pa_context_get_sink_info_by_index() mislyktes</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="369"/> - <source>pa_context_get_source_info_by_index() failed</source> - <translation>pa_context_get_source_info_by_index() mislyktes</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="382"/> - <location filename="../pavucontrol.cc" line="395"/> - <source>pa_context_get_sink_input_info() failed</source> - <translation>pa_context_get_sink_input_info() mislyktes</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="408"/> - <source>pa_context_get_client_info() failed</source> - <translation>pa_context_get_client_info() mislyktes</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="418"/> - <location filename="../pavucontrol.cc" line="483"/> - <source>pa_context_get_server_info() failed</source> - <translation>pa_context_get_server_info() mislyktes</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="431"/> - <source>pa_context_get_card_info_by_index() failed</source> - <translation>pa_context_get_card_info_by_index() mislyktes</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="474"/> - <source>pa_context_subscribe() failed</source> - <translation>pa_context_subscribe() mislyktes</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="490"/> - <source>pa_context_client_info_list() failed</source> - <translation>pa_context_client_info_list() mislyktes</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="497"/> - <source>pa_context_get_card_info_list() failed</source> - <translation>pa_context_get_card_info_list() mislyktes</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="504"/> - <source>pa_context_get_sink_info_list() failed</source> - <translation>pa_context_get_sink_info_list() mislyktes</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="511"/> - <source>pa_context_get_source_info_list() failed</source> - <translation>pa_context_get_source_info_list() mislyktes</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="518"/> - <source>pa_context_get_sink_input_info_list() failed</source> - <translation>pa_context_get_sink_input_info_list() mislyktes</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="525"/> - <source>pa_context_get_source_output_info_list() failed</source> - <translation>pa_context_get_source_output_info_list() mislyktes</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="584"/> - <location filename="../pavucontrol.cc" line="635"/> - <source>Connection failed, attempting reconnect</source> - <translation>Forbindelsen virket ikke, forsøker å sette opp ny forbindelse</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="607"/> - <location filename="../pavucontrol.cc" line="664"/> - <source>PulseAudio Volume Control</source> - <translation>PulseAudio volumkontroll</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="622"/> - <source>Connection to PulseAudio failed. Automatic retry in 5s - -In this case this is likely because PULSE_SERVER in the Environment/X11 Root Window Properties -or default-server in client.conf is misconfigured. -This situation can also arrise when PulseAudio crashed and left stale details in the X11 Root Window. -If this is the case, then PulseAudio should autospawn again, or if this is not configured you should -run start-pulseaudio-x11 manually.</source> - <translation>Forbindelsen til PulseAudio mislyktes. Prøver igjen om 5 sekunder - -Denne gangen er det sannsynligvis fordi PULSE_SERVER i skrivebordsmiljøet eller X11 Root Window Properties -eller i standard-serveren i client.conf er feilinnstilt. -Denne situasjonen kan også oppstå når PulseAudio har kræsjet og har etterlatt detaljer i X11 Root Window. -Hvis så er tilfelle burde PulseAudio autooppstarte igjen. Hvis dette ikke er stilt inn -burde du kjøre start-pulseaudio-x11 manuelt.</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="672"/> - <source>Select a specific tab on load.</source> - <translation>Velg en spesifikk fane ved innlasting.</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="675"/> - <source>Retry forever if pa quits (every 5 seconds).</source> - <translation>Prøv igjen for alltid hvis pa avslutter (hvert femte sekund).</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="678"/> - <source>Maximize the window.</source> - <translation>Maksimer vinduet.</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="703"/> - <source>Fatal Error: Unable to connect to PulseAudio</source> - <translation>Kritisk feil: Kunne ikke koble til PulseAudio</translation> - </message> -</context> -<context> - <name>RoleWidget</name> - <message> - <location filename="../rolewidget.cc" line="59"/> - <source>pa_ext_stream_restore_write() failed</source> - <translation>pa_ext_stream_restore_write() mislyktes</translation> - </message> -</context> -<context> - <name>SinkInputWidget</name> - <message> - <location filename="../sinkinputwidget.cc" line="36"/> - <source>on</source> - <translation>på</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="39"/> - <source>Terminate Playback</source> - <translation>Slå av avspilling</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="53"/> - <source>Unknown output</source> - <translation>Ukjent utgang</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="64"/> - <source>pa_context_set_sink_input_volume() failed</source> - <translation>pa_context_set_sink_input_volume() mislyktes</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="79"/> - <source>pa_context_set_sink_input_mute() failed</source> - <translation>pa_context_set_sink_input_mute() mislyktes</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="89"/> - <source>pa_context_kill_sink_input() failed</source> - <translation>pa_context_kill_sink_input() mislyktes</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="114"/> - <source>pa_context_move_sink_input_by_index() failed</source> - <translation>pa_context_move_sink_input_by_index() mislyktes</translation> - </message> -</context> -<context> - <name>SinkWidget</name> - <message> - <location filename="../sinkwidget.cc" line="81"/> - <source>pa_context_set_sink_volume_by_index() failed</source> - <translation>pa_context_set_sink_volume_by_index() mislyktes</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="96"/> - <source>pa_context_set_sink_mute_by_index() failed</source> - <translation>pa_context_set_sink_mute_by_index() mislyktes</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="110"/> - <source>pa_context_set_default_sink() failed</source> - <translation>pa_context_set_default_sink() mislyktes</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="126"/> - <source>pa_context_set_sink_port_by_index() failed</source> - <translation>pa_context_set_sink_port_by_index() mislyktes</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="166"/> - <source>pa_ext_device_restore_save_sink_formats() failed</source> - <translation>pa_ext_device_restore_save_sink_formats() mislyktes</translation> - </message> -</context> -<context> - <name>SourceOutputWidget</name> - <message> - <location filename="../sourceoutputwidget.cc" line="35"/> - <source>from</source> - <translation>fra</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="39"/> - <source>Terminate Recording</source> - <translation>Avslutt opptak</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="60"/> - <source>Unknown input</source> - <translation>Ukjent inngang</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="72"/> - <source>pa_context_set_source_output_volume() failed</source> - <translation>pa_context_set_source_output_volume() mislyktes</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="87"/> - <source>pa_context_set_source_output_mute() failed</source> - <translation>pa_context_set_source_output_mute() mislyktes</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="98"/> - <source>pa_context_kill_source_output() failed</source> - <translation>pa_context_kill_source_output() mislyktes</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="125"/> - <source>pa_context_move_source_output_by_index() failed</source> - <translation>pa_context_move_source_output_by_index() mislyktes</translation> - </message> -</context> -<context> - <name>SourceWidget</name> - <message> - <location filename="../sourcewidget.cc" line="35"/> - <source>pa_context_set_source_volume_by_index() failed</source> - <translation>pa_context_set_source_volume_by_index() mislyktes</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="50"/> - <source>pa_context_set_source_mute_by_index() failed</source> - <translation>pa_context_set_source_mute_by_index() mislyktes</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="64"/> - <source>pa_context_set_default_source() failed</source> - <translation>pa_context_set_default_source() mislyktes</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="80"/> - <source>pa_context_set_source_port_by_index() failed</source> - <translation>pa_context_set_source_port_by_index() mislyktes</translation> - </message> -</context> -<context> - <name>StreamWidget</name> - <message> - <location filename="../streamwidget.ui" line="14"/> - <source>Form</source> - <translation>Formular</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="32"/> - <source>Device Title</source> - <translation>Enhetsnavn</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="52"/> - <source>direction</source> - <translation>retning</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="59"/> - <source>device</source> - <translation>enhet</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="66"/> - <source>Mute audio</source> - <translation>Skru av lyd</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="79"/> - <source>Lock channels together</source> - <translation>Lås kanaler sammen</translation> - </message> - <message> - <location filename="../streamwidget.cc" line="34"/> - <source>Terminate</source> - <translation>Avslutt</translation> - </message> -</context> -</TS> diff --git a/src/translations/pavucontrol-qt_nl.desktop.yaml b/src/translations/pavucontrol-qt_nl.desktop.yaml deleted file mode 100644 index 56d20d8..0000000 --- a/src/translations/pavucontrol-qt_nl.desktop.yaml +++ /dev/null @@ -1,3 +0,0 @@ -Desktop Entry/Name: "PulseAudio-volumeregeling" -Desktop Entry/GenericName: "Volumeregeling" -Desktop Entry/Comment: "Pas het volumeniveau aan" diff --git a/src/translations/pavucontrol-qt_nl.ts b/src/translations/pavucontrol-qt_nl.ts deleted file mode 100644 index f4a5809..0000000 --- a/src/translations/pavucontrol-qt_nl.ts +++ /dev/null @@ -1,736 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE TS> -<TS version="2.1" language="nl"> -<context> - <name>CardWidget</name> - <message> - <location filename="../cardwidget.ui" line="14"/> - <source>Form</source> - <translation>Dialoogvenster</translation> - </message> - <message> - <location filename="../cardwidget.ui" line="29"/> - <source>Card Name</source> - <translation>Naam van geluidskaart</translation> - </message> - <message> - <location filename="../cardwidget.ui" line="47"/> - <source>Profile:</source> - <translation>Profiel:</translation> - </message> - <message> - <location filename="../cardwidget.cc" line="67"/> - <source>pa_context_set_card_profile_by_index() failed</source> - <translation>pa_context_set_card_profile_by_index() mislukt</translation> - </message> -</context> -<context> - <name>Channel</name> - <message> - <location filename="../channel.cc" line="89"/> - <source>%1% (%2dB)</source> - <comment>volume slider label [X% (YdB)]</comment> - <translation>%1% (%2dB)</translation> - </message> - <message> - <location filename="../channel.cc" line="93"/> - <source>%1%</source> - <comment>volume slider label [X%]</comment> - <translation>%1%</translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Silence</small></source> - <translation><small>Stilte</small></translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Min</small></source> - <translation><small>Min.</small></translation> - </message> - <message> - <location filename="../channel.cc" line="162"/> - <source><small>100% (0dB)</small></source> - <translation><small>100% (0dB)</small></translation> - </message> - <message> - <location filename="../channel.cc" line="165"/> - <source><small><i>Base</i></small></source> - <translation><small><i>Basis</i></small></translation> - </message> -</context> -<context> - <name>ChannelWidget</name> - <message> - <location filename="../channelwidget.ui" line="14"/> - <source>Form</source> - <translation>Dialoogvenster</translation> - </message> - <message> - <location filename="../channelwidget.ui" line="20"/> - <source><b>left-front</b></source> - <translation><b>linksvoor</b></translation> - </message> - <message> - <location filename="../channelwidget.ui" line="34"/> - <source><small>50%</small></source> - <translation><small>50%</small></translation> - </message> -</context> -<context> - <name>DeviceWidget</name> - <message> - <location filename="../devicewidget.ui" line="14"/> - <source>Form</source> - <translation>Dialoogvenster</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="36"/> - <source>Device Title</source> - <translation>Apparaatnaam</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="56"/> - <source>Mute audio</source> - <translation>Geluid dempen</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="69"/> - <source>Lock channels together</source> - <translation>Kanalen tezamen vergrendelen</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="85"/> - <source>Set as fallback</source> - <translation>Instellen als terugvalmogelijkheid</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="103"/> - <source><b>Port:</b></source> - <translation><b>Poort:</b></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="126"/> - <source>Show advanced options</source> - <translation>Geavanceerde opties tonen</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="172"/> - <source>PCM</source> - <translation>PCM</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="182"/> - <source>AC3</source> - <translation>AC3</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="189"/> - <source>EAC3</source> - <translation>EAC3</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="196"/> - <source>DTS</source> - <translation>DTS</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="203"/> - <source>MPEG</source> - <translation>MPEG</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="210"/> - <source>AAC</source> - <translation>AAC</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="238"/> - <source><b>Latency offset:</b></source> - <translation><b>Vertragingsomleiding:</b></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="245"/> - <source> ms</source> - <translation> ms</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="41"/> - <source>Rename device...</source> - <translation>Apparaatnaam wijzigen…</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="155"/> - <source>pa_context_set_port_latency_offset() failed</source> - <translation>pa_context_set_port_latency_offset() mislukt</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="226"/> - <source>Sorry, but device renaming is not supported.</source> - <translation>Het wijzigen van apparaatnamen wordt niet ondersteund.</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="227"/> - <source>You need to load module-device-manager in the PulseAudio server in order to rename devices</source> - <translation>U dient module-device-manager te laden in de PulseAudio-server om apparaatnamen te kunnen wijzigen</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="233"/> - <source>Rename device %1 to:</source> - <translation>Apparaatnaam '%1' wijzigen in:</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="240"/> - <source>pa_ext_device_manager_set_device_description() failed</source> - <translation>pa_ext_device_manager_set_device_description() mislukt</translation> - </message> -</context> -<context> - <name>MainWindow</name> - <message> - <location filename="../mainwindow.ui" line="14"/> - <source>Volume Control</source> - <translation>Volumeregeling</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="28"/> - <source>&Playback</source> - <translation>Afs&pelen</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="55"/> - <source><i>No application is currently playing audio.</i></source> - <translation><i>Er wordt momenteel geen geluid afgespeeld.</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="66"/> - <location filename="../mainwindow.ui" line="131"/> - <location filename="../mainwindow.ui" line="196"/> - <location filename="../mainwindow.ui" line="261"/> - <source>Show:</source> - <translation>Tonen:</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="74"/> - <location filename="../mainwindow.ui" line="139"/> - <source>All Streams</source> - <translation>Alle streams</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="79"/> - <location filename="../mainwindow.ui" line="144"/> - <source>Applications</source> - <translation>Programma's</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="84"/> - <location filename="../mainwindow.ui" line="149"/> - <source>Virtual Streams</source> - <translation>Virtuele streams</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="93"/> - <source>&Recording</source> - <translation>&Opnemen</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="120"/> - <source><i>No application is currently recording audio.</i></source> - <translation><i>Er wordt momenteel geen geluid opgenomen.</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="158"/> - <source>&Output Devices</source> - <translation>Uitv&oerapparaten</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="185"/> - <source><i>No output devices available</i></source> - <translation><i>Er zijn geen uitvoerapparaten beschikbaar.</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="204"/> - <source>All Output Devices</source> - <translation>Alle uitvoerapparaten</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="209"/> - <source>Hardware Output Devices</source> - <translation>Fysieke uitvoerapparaten</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="214"/> - <source>Virtual Output Devices</source> - <translation>Virtuele uitvoerapparaten</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="223"/> - <source>&Input Devices</source> - <translation>&Invoerapparaten</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="250"/> - <source><i>No input devices available</i></source> - <translation><i>Er zijn geen invoerapparaten beschikbaar.</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="269"/> - <source>All Input Devices</source> - <translation>Alle invoerapparaten</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="274"/> - <source>All Except Monitors</source> - <translation>Alle, uitgezonderd beeldschermen</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="279"/> - <source>Hardware Input Devices</source> - <translation>Fysieke invoerapparaten</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="284"/> - <source>Virtual Input Devices</source> - <translation>Virtuele invoerapparaten</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="289"/> - <source>Monitors</source> - <translation>Beeldschermen</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="298"/> - <source>&Configuration</source> - <translation>&Instellingen</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="325"/> - <source><i>No cards available for configuration</i></source> - <translation><i>Er zijn geen in te stellen kaarten beschikbaar.</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="336"/> - <source>Show volume meters</source> - <translation>Volumemeters tonen</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="347"/> - <source>...</source> - <translation>…</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="159"/> - <source> (plugged in)</source> - <translation> (verbonden)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="163"/> - <location filename="../mainwindow.cc" line="257"/> - <source> (unavailable)</source> - <translation> (niet beschikbaar)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="165"/> - <location filename="../mainwindow.cc" line="254"/> - <source> (unplugged)</source> - <translation> (niet verbonden)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="388"/> - <source>Failed to read data from stream</source> - <translation>Er kunnen geen gegevens worden gelezen uit de stream</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="432"/> - <source>Peak detect</source> - <translation>Piekbewaking</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="433"/> - <source>Failed to create monitoring stream</source> - <translation>Er kan geen bewakingsstroom worden aangemaakt</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="448"/> - <source>Failed to connect monitoring stream</source> - <translation>Er kan geen verbinding worden gemaakt met de bewakingsstroom</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="587"/> - <source>Ignoring sink-input due to it being designated as an event and thus handled by the Event widget</source> - <translation>De 'sink-input' wordt genegeerd, aangezien die is aangewezen als gebeurtenis en dus wordt afgehandeld door het Event-bedieningselement</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="759"/> - <source>System Sounds</source> - <translation>Systeemgeluiden</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="1089"/> - <source>Establishing connection to PulseAudio. Please wait...</source> - <translation>Bezig met verbinden met PulseAudio…</translation> - </message> -</context> -<context> - <name>QObject</name> - <message> - <location filename="../pavucontrol.cc" line="66"/> - <source>Error</source> - <translation>Foutmelding</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="87"/> - <source>Card callback failure</source> - <translation>'Callback'-fout van kaart</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="110"/> - <source>Sink callback failure</source> - <translation>'Sink callback'-fout</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="133"/> - <source>Source callback failure</source> - <translation>'Source callback'-fout</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="152"/> - <source>Sink input callback failure</source> - <translation>'Sink input callback'-fout</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="171"/> - <source>Source output callback failure</source> - <translation>'Source output callback'-fout</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="211"/> - <source>Client callback failure</source> - <translation>'Client callback'-fout</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="227"/> - <source>Server info callback failure</source> - <translation>'Server info callback'-fout</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="245"/> - <location filename="../pavucontrol.cc" line="542"/> - <source>Failed to initialize stream_restore extension: %s</source> - <translation>De extensie voor stroomherstel kan niet worden gestart: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="263"/> - <source>pa_ext_stream_restore_read() failed</source> - <translation>pa_ext_stream_restore_read() mislukt</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="281"/> - <location filename="../pavucontrol.cc" line="556"/> - <source>Failed to initialize device restore extension: %s</source> - <translation>De extensie voor apparaatherstel kan niet worden gestart: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="302"/> - <source>pa_ext_device_restore_read_sink_formats() failed</source> - <translation>pa_ext_device_restore_read_sink_formats() mislukt</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="320"/> - <location filename="../pavucontrol.cc" line="569"/> - <source>Failed to initialize device manager extension: %s</source> - <translation>De extensie voor apparaatbeheer kan niet worden gestart: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="339"/> - <source>pa_ext_device_manager_read() failed</source> - <translation>pa_ext_device_manager_read() mislukt</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="356"/> - <source>pa_context_get_sink_info_by_index() failed</source> - <translation>pa_context_get_sink_info_by_index() mislukt</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="369"/> - <source>pa_context_get_source_info_by_index() failed</source> - <translation>pa_context_get_source_info_by_index() mislukt</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="382"/> - <location filename="../pavucontrol.cc" line="395"/> - <source>pa_context_get_sink_input_info() failed</source> - <translation>pa_context_get_sink_input_info() mislukt</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="408"/> - <source>pa_context_get_client_info() failed</source> - <translation>pa_context_get_client_info() mislukt</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="418"/> - <location filename="../pavucontrol.cc" line="483"/> - <source>pa_context_get_server_info() failed</source> - <translation>pa_context_get_server_info() mislukt</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="431"/> - <source>pa_context_get_card_info_by_index() failed</source> - <translation>pa_context_get_card_info_by_index() mislukt</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="474"/> - <source>pa_context_subscribe() failed</source> - <translation>pa_context_subscribe() mislukt</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="490"/> - <source>pa_context_client_info_list() failed</source> - <translation>pa_context_client_info_list() mislukt</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="497"/> - <source>pa_context_get_card_info_list() failed</source> - <translation>pa_context_get_card_info_list() mislukt</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="504"/> - <source>pa_context_get_sink_info_list() failed</source> - <translation>pa_context_get_sink_info_list() mislukt</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="511"/> - <source>pa_context_get_source_info_list() failed</source> - <translation>pa_context_get_source_info_list() mislukt</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="518"/> - <source>pa_context_get_sink_input_info_list() failed</source> - <translation>pa_context_get_sink_input_info_list() mislukt</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="525"/> - <source>pa_context_get_source_output_info_list() failed</source> - <translation>pa_context_get_source_output_info_list() mislukt</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="584"/> - <location filename="../pavucontrol.cc" line="635"/> - <source>Connection failed, attempting reconnect</source> - <translation>Verbinding mislukt - bezig met nieuwe verbindingspoging…</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="607"/> - <location filename="../pavucontrol.cc" line="664"/> - <source>PulseAudio Volume Control</source> - <translation>PulseAudio-volumeregeling</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="622"/> - <source>Connection to PulseAudio failed. Automatic retry in 5s - -In this case this is likely because PULSE_SERVER in the Environment/X11 Root Window Properties -or default-server in client.conf is misconfigured. -This situation can also arrise when PulseAudio crashed and left stale details in the X11 Root Window. -If this is the case, then PulseAudio should autospawn again, or if this is not configured you should -run start-pulseaudio-x11 manually.</source> - <translation>De verbinding met PulseAudio is mislukt. Er wordt over 5 seconden automatische een nieuwe poging gedaan. - -In dit geval is de oorzaak waarschijnlijk dat PULSE_SERVER verkeerd is ingesteld in de omgevingsvariabelen of X11-rootvenstereigenschappen, of dat default-server verkeerd is ingesteld in client.conf -Deze situatie kan ook ontstaan als PulseAudio is vastgelopen en verouderde details heeft achtergelaten in het X11-rootvenster. Als dat het geval is, dan zou PulseAudio automatisch moeten herstarten, of als dat niet zo is ingesteld, moet u handmatig start-pulseaudio-x11 uitvoeren.</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="672"/> - <source>Select a specific tab on load.</source> - <translation>Kies een specifiek tabblad om automatisch te laden.</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="675"/> - <source>Retry forever if pa quits (every 5 seconds).</source> - <translation>Probeer steeds opnieuw indien pulseaudio stopt (elke 5 seconden).</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="678"/> - <source>Maximize the window.</source> - <translation>Maximaliseer het venster.</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="703"/> - <source>Fatal Error: Unable to connect to PulseAudio</source> - <translation>Fatale fout: kan niet verbinden met PulseAudio</translation> - </message> -</context> -<context> - <name>RoleWidget</name> - <message> - <location filename="../rolewidget.cc" line="59"/> - <source>pa_ext_stream_restore_write() failed</source> - <translation>pa_ext_stream_restore_write() mislukt</translation> - </message> -</context> -<context> - <name>SinkInputWidget</name> - <message> - <location filename="../sinkinputwidget.cc" line="36"/> - <source>on</source> - <translation>aan</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="39"/> - <source>Terminate Playback</source> - <translation>Afspelen afbreken</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="53"/> - <source>Unknown output</source> - <translation>Onbekende uitvoer</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="64"/> - <source>pa_context_set_sink_input_volume() failed</source> - <translation>pa_context_set_sink_input_volume() mislukt</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="79"/> - <source>pa_context_set_sink_input_mute() failed</source> - <translation>pa_context_set_sink_input_mute() mislukt</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="89"/> - <source>pa_context_kill_sink_input() failed</source> - <translation>pa_context_kill_sink_input() mislukt</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="114"/> - <source>pa_context_move_sink_input_by_index() failed</source> - <translation>pa_context_move_sink_input_by_index() mislukt</translation> - </message> -</context> -<context> - <name>SinkWidget</name> - <message> - <location filename="../sinkwidget.cc" line="81"/> - <source>pa_context_set_sink_volume_by_index() failed</source> - <translation>pa_context_set_sink_volume_by_index() mislukt</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="96"/> - <source>pa_context_set_sink_mute_by_index() failed</source> - <translation>pa_context_set_sink_mute_by_index() mislukt</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="110"/> - <source>pa_context_set_default_sink() failed</source> - <translation>pa_context_set_default_sink() mislukt</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="126"/> - <source>pa_context_set_sink_port_by_index() failed</source> - <translation>pa_context_set_sink_port_by_index() mislukt</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="166"/> - <source>pa_ext_device_restore_save_sink_formats() failed</source> - <translation>pa_ext_device_restore_save_sink_formats() mislukt</translation> - </message> -</context> -<context> - <name>SourceOutputWidget</name> - <message> - <location filename="../sourceoutputwidget.cc" line="35"/> - <source>from</source> - <translation>van</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="39"/> - <source>Terminate Recording</source> - <translation>Opname afbreken</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="60"/> - <source>Unknown input</source> - <translation>Onbekende invoer</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="72"/> - <source>pa_context_set_source_output_volume() failed</source> - <translation>pa_context_set_source_output_volume() mislukt</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="87"/> - <source>pa_context_set_source_output_mute() failed</source> - <translation>pa_context_set_source_output_mute() mislukt</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="98"/> - <source>pa_context_kill_source_output() failed</source> - <translation>pa_context_kill_source_output() mislukt</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="125"/> - <source>pa_context_move_source_output_by_index() failed</source> - <translation>pa_context_move_source_output_by_index() mislukt</translation> - </message> -</context> -<context> - <name>SourceWidget</name> - <message> - <location filename="../sourcewidget.cc" line="35"/> - <source>pa_context_set_source_volume_by_index() failed</source> - <translation>pa_context_set_source_volume_by_index() mislukt</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="50"/> - <source>pa_context_set_source_mute_by_index() failed</source> - <translation>pa_context_set_source_mute_by_index() mislukt</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="64"/> - <source>pa_context_set_default_source() failed</source> - <translation>pa_context_set_default_source() mislukt</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="80"/> - <source>pa_context_set_source_port_by_index() failed</source> - <translation>pa_context_set_source_port_by_index() mislukt</translation> - </message> -</context> -<context> - <name>StreamWidget</name> - <message> - <location filename="../streamwidget.ui" line="14"/> - <source>Form</source> - <translation>Dialoogvenster</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="32"/> - <source>Device Title</source> - <translation>Apparaatnaam</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="52"/> - <source>direction</source> - <translation>richting</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="59"/> - <source>device</source> - <translation>apparaat</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="66"/> - <source>Mute audio</source> - <translation>Geluid dempen</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="79"/> - <source>Lock channels together</source> - <translation>Kanalen tezamen vergrendelen</translation> - </message> - <message> - <location filename="../streamwidget.cc" line="34"/> - <source>Terminate</source> - <translation>Afbreken</translation> - </message> -</context> -</TS> diff --git a/src/translations/pavucontrol-qt_oc.desktop.yaml b/src/translations/pavucontrol-qt_oc.desktop.yaml deleted file mode 100644 index 0a9672e..0000000 --- a/src/translations/pavucontrol-qt_oc.desktop.yaml +++ /dev/null @@ -1,3 +0,0 @@ -Desktop Entry/Name: "Contraròtle del volum de PulseAudio" -Desktop Entry/GenericName: "Contraròtle del volum" -Desktop Entry/Comment: "Ajustar lo nivèl del volum" diff --git a/src/translations/pavucontrol-qt_or.ts b/src/translations/pavucontrol-qt_or.ts deleted file mode 100644 index 93a89f2..0000000 --- a/src/translations/pavucontrol-qt_or.ts +++ /dev/null @@ -1,733 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE TS> -<TS version="2.1" language="or"> -<context> - <name>CardWidget</name> - <message> - <location filename="../cardwidget.ui" line="14"/> - <source>Form</source> - <translation>ଫର୍ମ</translation> - </message> - <message> - <location filename="../cardwidget.ui" line="29"/> - <source>Card Name</source> - <translation>କାର୍ଡ଼ ନାମ</translation> - </message> - <message> - <location filename="../cardwidget.ui" line="47"/> - <source>Profile:</source> - <translation>ରୂପରେଖ:</translation> - </message> - <message> - <location filename="../cardwidget.cc" line="67"/> - <source>pa_context_set_card_profile_by_index() failed</source> - <translation>pa_context_set_card_profile_by_index() ବିଫଳ ହୋଇଛି</translation> - </message> -</context> -<context> - <name>Channel</name> - <message> - <location filename="../channel.cc" line="89"/> - <source>%1% (%2dB)</source> - <comment>volume slider label [X% (YdB)]</comment> - <translation>%୧%(%୨ଡ଼ି.ବିି.)</translation> - </message> - <message> - <location filename="../channel.cc" line="93"/> - <source>%1%</source> - <comment>volume slider label [X%]</comment> - <translation>%୧%</translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Silence</small></source> - <translation><small>ନିରବତା</small></translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Min</small></source> - <translation><small>ସର୍ବନିମ୍ନ</small></translation> - </message> - <message> - <location filename="../channel.cc" line="162"/> - <source><small>100% (0dB)</small></source> - <translation><small>୧୦୦%(୦ଡ଼ିବି)</small></translation> - </message> - <message> - <location filename="../channel.cc" line="165"/> - <source><small><i>Base</i></small></source> - <translation><small><i>ଆଧାର</i></small></translation> - </message> -</context> -<context> - <name>ChannelWidget</name> - <message> - <location filename="../channelwidget.ui" line="14"/> - <source>Form</source> - <translation>ଫର୍ମ</translation> - </message> - <message> - <location filename="../channelwidget.ui" line="20"/> - <source><b>left-front</b></source> - <translation><b>ବାମ-ସାମ୍ନା</b></translation> - </message> - <message> - <location filename="../channelwidget.ui" line="34"/> - <source><small>50%</small></source> - <translation><small>୫୦%</small></translation> - </message> -</context> -<context> - <name>DeviceWidget</name> - <message> - <location filename="../devicewidget.ui" line="14"/> - <source>Form</source> - <translation>ଫର୍ମ</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="36"/> - <source>Device Title</source> - <translation>ଯନ୍ତ୍ର ଶୀର୍ଷକ</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="56"/> - <source>Mute audio</source> - <translation>ମୌନ ଧ୍ବନି</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="69"/> - <source>Lock channels together</source> - <translation>ଚ୍ୟାନେଲ୍ ମାନଂକୁ ଏକା ସାଂଗରେ ବନ୍ଦ କର</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="85"/> - <source>Set as fallback</source> - <translation>ପଛରେ ପଡିବା ପାଇଁ ସ୍ଥିର କରିବା</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="103"/> - <source><b>Port:</b></source> - <translation><b>ସଂଯୋଗିକୀ:</b></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="126"/> - <source>Show advanced options</source> - <translation>ଅଗ୍ରୀମ ବିକଳ୍ପ ଦେଖାଅ</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="172"/> - <source>PCM</source> - <translation>ପି.ସି.ଏମ.</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="182"/> - <source>AC3</source> - <translation>ଏ.ସି.୩</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="189"/> - <source>EAC3</source> - <translation>ଇଏ.ସି.୩</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="196"/> - <source>DTS</source> - <translation>ଡି.ଟି.ଏସ୍.</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="203"/> - <source>MPEG</source> - <translation>ଏ.ମ.ଇ.ଯୀ.</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="210"/> - <source>AAC</source> - <translation>ଏ.ଏ.ସି.</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="238"/> - <source><b>Latency offset:</b></source> - <translation><b>ସୁପ୍ତ ଅଫସେଟ</b></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="245"/> - <source> ms</source> - <translation> ଏମ.ଏସ.</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="41"/> - <source>Rename device...</source> - <translation>ଯନ୍ତ୍ରର ନାମ ପରିର୍ବତ୍ତନ...</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="155"/> - <source>pa_context_set_port_latency_offset() failed</source> - <translation>pa_context_set_port_latency_offset() ବିଫଳିତ</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="226"/> - <source>Sorry, but device renaming is not supported.</source> - <translation>କ୍ଷମା କରନ୍ତୁ, କିନ୍ତୁ ଯନ୍ତ୍ର ନାମ ପରିର୍ବତ୍ତନ ଉପଲବ୍ଧ ନୁହେଁ |</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="227"/> - <source>You need to load module-device-manager in the PulseAudio server in order to rename devices</source> - <translation>ଆପଣଙ୍କୁ module-device-manager କୁ PulseAudio ସର୍ଭର ରେ ଧାରଣ କରାଇବାକୁ ପଡିବ, ଯନ୍ତ୍ରର ନାମ ପରିବର୍ତନ କରିବା ପାଇଁ</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="233"/> - <source>Rename device %1 to:</source> - <translation>%୧ ଯନ୍ତ୍ରର ନାମ ପରିର୍ବତ୍ତନ କରାଯିବ:</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="240"/> - <source>pa_ext_device_manager_set_device_description() failed</source> - <translation>pa_ext_device_manager_set_device_description() ବିଫଳିତ</translation> - </message> -</context> -<context> - <name>MainWindow</name> - <message> - <location filename="../mainwindow.ui" line="14"/> - <source>Volume Control</source> - <translation>ଧ୍ବନିଶକ୍ତି ନିୟନ୍ତ୍ରଣ</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="28"/> - <source>&Playback</source> - <translation>&ପୁନଃପ୍ରଦର୍ଶନ</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="55"/> - <source><i>No application is currently playing audio.</i></source> - <translation><i>ବର୍ତ୍ତମାନ କୌଣସି ପ୍ରୋଗ୍ରାମ ଧ୍ୱନି ଚଲାଉନାହିଁ।</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="66"/> - <location filename="../mainwindow.ui" line="131"/> - <location filename="../mainwindow.ui" line="196"/> - <location filename="../mainwindow.ui" line="261"/> - <source>Show:</source> - <translation>ଦେଖାଅ:</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="74"/> - <location filename="../mainwindow.ui" line="139"/> - <source>All Streams</source> - <translation>ସମସ୍ତ ଧାରା</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="79"/> - <location filename="../mainwindow.ui" line="144"/> - <source>Applications</source> - <translation>ଉପକରଣ ମାନ</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="84"/> - <location filename="../mainwindow.ui" line="149"/> - <source>Virtual Streams</source> - <translation>କଳ୍ପିତ ଧାରାମାନ</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="93"/> - <source>&Recording</source> - <translation>&ଅଭିଲେଖନୀ</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="120"/> - <source><i>No application is currently recording audio.</i></source> - <translation><i>ବର୍ତ୍ତମାନ କୌଣସି ପ୍ରୋଗ୍ରାମ ଧ୍ୱନି ଅଭିଲେଖନୀ କରୁନାହିଁ |</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="158"/> - <source>&Output Devices</source> - <translation>&ନିର୍ଗମ ଉପକରଣଗୁଡ଼ିକ</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="185"/> - <source><i>No output devices available</i></source> - <translation><i>କୌଣସି ନିର୍ଗମ ଉପକରଣ ଉପଲବ୍ଧ ନାହିଁ</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="204"/> - <source>All Output Devices</source> - <translation>ସମସ୍ତ ନିର୍ଗମ ଧାରା</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="209"/> - <source>Hardware Output Devices</source> - <translation>ହାର୍ଡ଼ୱେର ନିର୍ଗମ ଯନ୍ତ୍ରମାନ</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="214"/> - <source>Virtual Output Devices</source> - <translation>ନିର୍ଗମ ନିର୍ଗମ ଯନ୍ତ୍ରମାନ</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="223"/> - <source>&Input Devices</source> - <translation>&ନିବେଶ ଉପକରଣଗୁଡ଼ିକ</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="250"/> - <source><i>No input devices available</i></source> - <translation><i>କୌଣସି ନିବେଶ ଉପକରଣ ଉପଲବ୍ଧ ନାହିଁ</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="269"/> - <source>All Input Devices</source> - <translation>ସମସ୍ତ ନିବେଶ ଯନ୍ତ୍ରମାନ</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="274"/> - <source>All Except Monitors</source> - <translation>ମୋନୀଟର ମାନଂକ ଛଡ଼ା ସବୁ</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="279"/> - <source>Hardware Input Devices</source> - <translation>ହାର୍ଡ଼ୱେର ନିବେଶ ଯନ୍ତ୍ରମାନ</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="284"/> - <source>Virtual Input Devices</source> - <translation>କଳ୍ପିତ ନିବେଶ ଯନ୍ତ୍ରମାନ</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="289"/> - <source>Monitors</source> - <translation>ମୋନୀଟରମାନ</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="298"/> - <source>&Configuration</source> - <translation>&ସଂରଚନା</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="325"/> - <source><i>No cards available for configuration</i></source> - <translation><i>ସଂରଚନା ପାଇଁ କୌଣସି କାର୍ଡ ଉପଲବ୍ଧ ନାହିଁ</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="336"/> - <source>Show volume meters</source> - <translation>ଧ୍ଵନି ମାପ ଉପକରଣ ଦେଖାଅ</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="347"/> - <source>...</source> - <translation>...</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="159"/> - <source> (plugged in)</source> - <translation> (ଲଗା ହୋଇଛି)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="163"/> - <location filename="../mainwindow.cc" line="257"/> - <source> (unavailable)</source> - <translation> (ଉପଲବ୍ଧ ନୁହେଁ)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="165"/> - <location filename="../mainwindow.cc" line="254"/> - <source> (unplugged)</source> - <translation> (ଖୋଲା ଅଛି)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="388"/> - <source>Failed to read data from stream</source> - <translation>ଧାରାରୁ ତଥ୍ୟ ପଢ଼ିବାରେ ଅସଫଳ</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="432"/> - <source>Peak detect</source> - <translation>ଶିଖର ଚିହ୍ନାପଡ଼ିଛି</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="433"/> - <source>Failed to create monitoring stream</source> - <translation>ପ୍ରଦର୍ଶିକା ଧାରାକୁ ନିର୍ମାଣ କରିବାରେ ଅସଫଳ</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="448"/> - <source>Failed to connect monitoring stream</source> - <translation>ପ୍ରଦର୍ଶିକା ଧାରା ସହିତ ସଂଯୋଗ କରିବାରେ ଅସଫଳ</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="587"/> - <source>Ignoring sink-input due to it being designated as an event and thus handled by the Event widget</source> - <translation>sink-input କୁ ଅଦେଖା କରାଯାଉଛି କାରଣ ଏହା ଏକ ଘଟଣା ଭାବେ ଅଭିହିତ ଅଛି ତେଣୁ ଏହା ଘଟଣା ଉପକରଣ ଦ୍ୱାରା ପରିଚାଳଣ କରାଯାଉଛି</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="759"/> - <source>System Sounds</source> - <translation>ତନ୍ତ୍ର ଧ୍ୱନିି</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="1089"/> - <source>Establishing connection to PulseAudio. Please wait...</source> - <translation>ପଲସଅଡିଓ ସହ ସଂପର୍କ ଆରମ୍ଭ କରାଯାଉଛି| କୃପା କରି ଅପେକ୍ଷା କରନ୍ତୁ...</translation> - </message> -</context> -<context> - <name>QObject</name> - <message> - <location filename="../pavucontrol.cc" line="66"/> - <source>Error</source> - <translation>ତ୍ରୁଟି</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="87"/> - <source>Card callback failure</source> - <translation>କାର୍ଡ଼ କଲବ୍ୟାକ ଅସଫଳ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="110"/> - <source>Sink callback failure</source> - <translation>ସିଙ୍କ କଲବ୍ୟାକ ଅସଫଳ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="133"/> - <source>Source callback failure</source> - <translation>ଉତ୍ସ କଲବ୍ୟାକ ଅସଫଳ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="152"/> - <source>Sink input callback failure</source> - <translation>ସିଙ୍କ ନିବେଶ କଲବ୍ୟାକ ଅସଫଳ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="171"/> - <source>Source output callback failure</source> - <translation>ଉତ୍ସ ନିର୍ଗମ କଲବ୍ୟାକ ଅସଫଳ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="211"/> - <source>Client callback failure</source> - <translation>ଗ୍ରାହକ କଲବ୍ୟାକ ଅସଫଳ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="227"/> - <source>Server info callback failure</source> - <translation>ସର୍ଭର ସୂଚନା କଲବ୍ୟାକ ଅସଫଳ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="245"/> - <location filename="../pavucontrol.cc" line="542"/> - <source>Failed to initialize stream_restore extension: %s</source> - <translation>stream_restore ଅନୁଲଗ୍ନକୁ ଆରମ୍ଭ କରିବାରେ ବିଫଳ: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="263"/> - <source>pa_ext_stream_restore_read() failed</source> - <translation>pa_ext_stream_restore_read() ବିଫଳ ହୋଇଛି</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="281"/> - <location filename="../pavucontrol.cc" line="556"/> - <source>Failed to initialize device restore extension: %s</source> - <translation>ଯନ୍ତ୍ର ପୁନଃସ୍ଥାପନା ଅନୁଲଗ୍ନ ପ୍ରାରମ୍ଭିକରଣରେ ଅସଫଳ: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="302"/> - <source>pa_ext_device_restore_read_sink_formats() failed</source> - <translation>pa_ext_device_restore_read_sink_formats() ବିଫଳିତ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="320"/> - <location filename="../pavucontrol.cc" line="569"/> - <source>Failed to initialize device manager extension: %s</source> - <translation>ଯନ୍ତ୍ର ପରିଚାଳକ ଅନୁଲଗ୍ନ ପ୍ରାରମ୍ଭିକରଣରେ ଅସଫଳ: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="339"/> - <source>pa_ext_device_manager_read() failed</source> - <translation>pa_ext_device_manager_read() ଅସଫଳ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="356"/> - <source>pa_context_get_sink_info_by_index() failed</source> - <translation>pa_context_get_sink_info_by_index() ଅସଫଳ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="369"/> - <source>pa_context_get_source_info_by_index() failed</source> - <translation>pa_context_get_source_info_by_index() ଅସଫଳ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="382"/> - <location filename="../pavucontrol.cc" line="395"/> - <source>pa_context_get_sink_input_info() failed</source> - <translation>pa_context_get_sink_input_info() ଅସଫଳ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="408"/> - <source>pa_context_get_client_info() failed</source> - <translation>pa_context_get_client_info() ଅସଫଳ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="418"/> - <location filename="../pavucontrol.cc" line="483"/> - <source>pa_context_get_server_info() failed</source> - <translation>pa_context_get_server_info() ଅସଫଳ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="431"/> - <source>pa_context_get_card_info_by_index() failed</source> - <translation>pa_context_get_card_info_by_index() ଅସଫଳ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="474"/> - <source>pa_context_subscribe() failed</source> - <translation>pa_context_subscribe() ଅସଫଳ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="490"/> - <source>pa_context_client_info_list() failed</source> - <translation>pa_context_client_info_list() ଅସଫଳ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="497"/> - <source>pa_context_get_card_info_list() failed</source> - <translation>pa_context_get_card_info_list() ଅସଫଳ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="504"/> - <source>pa_context_get_sink_info_list() failed</source> - <translation>pa_context_get_sink_info_list() ଅସଫଳ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="511"/> - <source>pa_context_get_source_info_list() failed</source> - <translation>pa_context_get_source_info_list() ଅସଫଳ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="518"/> - <source>pa_context_get_sink_input_info_list() failed</source> - <translation>pa_context_get_sink_input_info_list() ଅସଫଳ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="525"/> - <source>pa_context_get_source_output_info_list() failed</source> - <translation>pa_context_get_source_output_info_list() ଅସଫଳ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="584"/> - <location filename="../pavucontrol.cc" line="635"/> - <source>Connection failed, attempting reconnect</source> - <translation>ଯୋଗାଯୋଗ ଅସଫଳ, ପୁନଃ ଯୋଗାଯୋଗ ପାଇଁ ଚେଷ୍ଟା କରାଯାଉଛି</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="607"/> - <location filename="../pavucontrol.cc" line="664"/> - <source>PulseAudio Volume Control</source> - <translation>PulseAudio ଧ୍ୱନି ଶକ୍ତି ନିୟନ୍ତ୍ରଣ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="622"/> - <source>Connection to PulseAudio failed. Automatic retry in 5s - -In this case this is likely because PULSE_SERVER in the Environment/X11 Root Window Properties -or default-server in client.conf is misconfigured. -This situation can also arrise when PulseAudio crashed and left stale details in the X11 Root Window. -If this is the case, then PulseAudio should autospawn again, or if this is not configured you should -run start-pulseaudio-x11 manually.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="672"/> - <source>Select a specific tab on load.</source> - <translation>ଏକ ନିର୍ଦ୍ଧିଷ୍ଟ ଟ୍ୟାବ୍ କୁ ଆରମ୍ଭରେ ବାଛନ୍ତୁ |</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="675"/> - <source>Retry forever if pa quits (every 5 seconds).</source> - <translation>ସବୁବେଳେ ଚେଷ୍ଟା କର ଯଦି ପା ବନ୍ଦ ହେଉଛି (ପ୍ରତି ୫ ମୁହୁର୍ତରେ) |</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="678"/> - <source>Maximize the window.</source> - <translation>ଉଇଣ୍ଡୋ କୁ ବୃହତ୍ତମନ କର |</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="703"/> - <source>Fatal Error: Unable to connect to PulseAudio</source> - <translation>ଗୁରୁତର ତ୍ରୁଟି: ପଲସଅଡିଓ ସହ ଯୋଗାଯୋଗ କରିବାରେ ଅସଫଳ</translation> - </message> -</context> -<context> - <name>RoleWidget</name> - <message> - <location filename="../rolewidget.cc" line="59"/> - <source>pa_ext_stream_restore_write() failed</source> - <translation>pa_ext_stream_restore_write() ଅସଫଳ</translation> - </message> -</context> -<context> - <name>SinkInputWidget</name> - <message> - <location filename="../sinkinputwidget.cc" line="36"/> - <source>on</source> - <translation>ଆରମ୍ଭ</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="39"/> - <source>Terminate Playback</source> - <translation>ପୁନଃପ୍ରଦର୍ଶନ କୁ ସମାପ୍ତ କର</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="53"/> - <source>Unknown output</source> - <translation>ଅଜଣା ଫଳାଫଳ</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="64"/> - <source>pa_context_set_sink_input_volume() failed</source> - <translation>pa_context_set_sink_input_volume() ଅସଫଳ</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="79"/> - <source>pa_context_set_sink_input_mute() failed</source> - <translation>pa_context_set_sink_input_mute() ଅସଫଳ</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="89"/> - <source>pa_context_kill_sink_input() failed</source> - <translation>pa_context_kill_sink_input() ଅସଫଳ</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="114"/> - <source>pa_context_move_sink_input_by_index() failed</source> - <translation>pa_context_move_sink_input_by_index() ଅସଫଳ</translation> - </message> -</context> -<context> - <name>SinkWidget</name> - <message> - <location filename="../sinkwidget.cc" line="81"/> - <source>pa_context_set_sink_volume_by_index() failed</source> - <translation>pa_context_set_sink_volume_by_index() ଅସଫଳ</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="96"/> - <source>pa_context_set_sink_mute_by_index() failed</source> - <translation>pa_context_set_sink_mute_by_index() ଅସଫଳ</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="110"/> - <source>pa_context_set_default_sink() failed</source> - <translation>pa_context_set_default_sink() ଅସଫଳ</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="126"/> - <source>pa_context_set_sink_port_by_index() failed</source> - <translation>pa_context_set_sink_port_by_index() ଅସଫଳ</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="166"/> - <source>pa_ext_device_restore_save_sink_formats() failed</source> - <translation>pa_ext_device_restore_save_sink_formats() ଅସଫଳ</translation> - </message> -</context> -<context> - <name>SourceOutputWidget</name> - <message> - <location filename="../sourceoutputwidget.cc" line="35"/> - <source>from</source> - <translation>ଠାରୁ</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="39"/> - <source>Terminate Recording</source> - <translation>ଅଭିଲେଖନୀ ସମାପ୍ତ କର</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="60"/> - <source>Unknown input</source> - <translation>ଅଜଣା ନିବେଶ</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="72"/> - <source>pa_context_set_source_output_volume() failed</source> - <translation>pa_context_set_source_output_volume() ଅସଫଳ</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="87"/> - <source>pa_context_set_source_output_mute() failed</source> - <translation>pa_context_set_source_output_mute() ଅସଫଳ</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="98"/> - <source>pa_context_kill_source_output() failed</source> - <translation>pa_context_kill_source_output() ଅସଫଳ</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="125"/> - <source>pa_context_move_source_output_by_index() failed</source> - <translation>pa_context_move_source_output_by_index() ଅସଫଳ</translation> - </message> -</context> -<context> - <name>SourceWidget</name> - <message> - <location filename="../sourcewidget.cc" line="35"/> - <source>pa_context_set_source_volume_by_index() failed</source> - <translation>pa_context_set_source_volume_by_index() ଅସଫଳ</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="50"/> - <source>pa_context_set_source_mute_by_index() failed</source> - <translation>pa_context_set_source_mute_by_index() ଅସଫଳ</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="64"/> - <source>pa_context_set_default_source() failed</source> - <translation>pa_context_set_default_source() ଅସଫଳ</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="80"/> - <source>pa_context_set_source_port_by_index() failed</source> - <translation>pa_context_set_source_port_by_index() ଅସଫଳ</translation> - </message> -</context> -<context> - <name>StreamWidget</name> - <message> - <location filename="../streamwidget.ui" line="14"/> - <source>Form</source> - <translation>ଫର୍ମ</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="32"/> - <source>Device Title</source> - <translation>ଯନ୍ତ୍ର ନାମ</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="52"/> - <source>direction</source> - <translation>ଦିଗ</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="59"/> - <source>device</source> - <translation>ଯନ୍ତ୍ର</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="66"/> - <source>Mute audio</source> - <translation>ଧ୍ବନିକୁ ମୌନ କର</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="79"/> - <source>Lock channels together</source> - <translation>ଚ୍ୟାନେଲ୍ ମାନଂକୁ ଏକା ସାଂଗରେ ବନ୍ଦ କର</translation> - </message> - <message> - <location filename="../streamwidget.cc" line="34"/> - <source>Terminate</source> - <translation>ସମାପ୍ତ କର</translation> - </message> -</context> -</TS> diff --git a/src/translations/pavucontrol-qt_pa.ts b/src/translations/pavucontrol-qt_pa.ts deleted file mode 100644 index dd288ef..0000000 --- a/src/translations/pavucontrol-qt_pa.ts +++ /dev/null @@ -1,733 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE TS> -<TS version="2.1" language="pa"> -<context> - <name>CardWidget</name> - <message> - <location filename="../cardwidget.ui" line="14"/> - <source>Form</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../cardwidget.ui" line="29"/> - <source>Card Name</source> - <translation>ਕਾਰਡ ਨਾਂ</translation> - </message> - <message> - <location filename="../cardwidget.ui" line="47"/> - <source>Profile:</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../cardwidget.cc" line="67"/> - <source>pa_context_set_card_profile_by_index() failed</source> - <translation>pa_context_set_card_profile_by_index() ਫੇਲ੍ਹ ਹੋਇਆ</translation> - </message> -</context> -<context> - <name>Channel</name> - <message> - <location filename="../channel.cc" line="89"/> - <source>%1% (%2dB)</source> - <comment>volume slider label [X% (YdB)]</comment> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../channel.cc" line="93"/> - <source>%1%</source> - <comment>volume slider label [X%]</comment> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Silence</small></source> - <translation type="unfinished"><small>ਚੁੱਪ</small></translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Min</small></source> - <translation type="unfinished"><small>ਘੱਟ</small></translation> - </message> - <message> - <location filename="../channel.cc" line="162"/> - <source><small>100% (0dB)</small></source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../channel.cc" line="165"/> - <source><small><i>Base</i></small></source> - <translation type="unfinished"><small><i>ਬੇਸ</i></small></translation> - </message> -</context> -<context> - <name>ChannelWidget</name> - <message> - <location filename="../channelwidget.ui" line="14"/> - <source>Form</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../channelwidget.ui" line="20"/> - <source><b>left-front</b></source> - <translation><b>ਖੱਬਾ-ਅੱਗੇ</b></translation> - </message> - <message> - <location filename="../channelwidget.ui" line="34"/> - <source><small>50%</small></source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>DeviceWidget</name> - <message> - <location filename="../devicewidget.ui" line="14"/> - <source>Form</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="36"/> - <source>Device Title</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="56"/> - <source>Mute audio</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="69"/> - <source>Lock channels together</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="85"/> - <source>Set as fallback</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="103"/> - <source><b>Port:</b></source> - <translation><b>ਪੋਰਟ:</b></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="126"/> - <source>Show advanced options</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="172"/> - <source>PCM</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="182"/> - <source>AC3</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="189"/> - <source>EAC3</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="196"/> - <source>DTS</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="203"/> - <source>MPEG</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="210"/> - <source>AAC</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="238"/> - <source><b>Latency offset:</b></source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="245"/> - <source> ms</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="41"/> - <source>Rename device...</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="155"/> - <source>pa_context_set_port_latency_offset() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="226"/> - <source>Sorry, but device renaming is not supported.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="227"/> - <source>You need to load module-device-manager in the PulseAudio server in order to rename devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="233"/> - <source>Rename device %1 to:</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="240"/> - <source>pa_ext_device_manager_set_device_description() failed</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>MainWindow</name> - <message> - <location filename="../mainwindow.ui" line="14"/> - <source>Volume Control</source> - <translation>ਵਾਲੀਅਮ ਕੰਟਰੋਲ</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="28"/> - <source>&Playback</source> - <translation>ਪਲੇਅਬੈਕ(&P)</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="55"/> - <source><i>No application is currently playing audio.</i></source> - <translation><i>ਕੋਈ ਐਪਲੀਕੇਸ਼ਨ ਹੁਣ ਆਡੀਓ ਨਹੀਂ ਚਲਾ ਰਹੀ ਹੈ।</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="66"/> - <location filename="../mainwindow.ui" line="131"/> - <location filename="../mainwindow.ui" line="196"/> - <location filename="../mainwindow.ui" line="261"/> - <source>Show:</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="74"/> - <location filename="../mainwindow.ui" line="139"/> - <source>All Streams</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="79"/> - <location filename="../mainwindow.ui" line="144"/> - <source>Applications</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="84"/> - <location filename="../mainwindow.ui" line="149"/> - <source>Virtual Streams</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="93"/> - <source>&Recording</source> - <translation>ਰਿਕਾਰਡਿੰਗ(&R)</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="120"/> - <source><i>No application is currently recording audio.</i></source> - <translation><i>ਕੋਈ ਐਪਲੀਕੇਸ਼ਨ ਹੁਣ ਆਡੀਓ ਰਿਕਾਰਡ ਨਹੀਂ ਕਰ ਰਹੀ ਹੈ।</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="158"/> - <source>&Output Devices</source> - <translation>ਆਉਟਪੁੱਟ ਜੰਤਰ(&O)</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="185"/> - <source><i>No output devices available</i></source> - <translation><i>ਕੋਈ ਆਉਟਪੁੱਟ ਜੰਤਰ ਉਪਲੱਬਧ ਨਹੀਂ</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="204"/> - <source>All Output Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="209"/> - <source>Hardware Output Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="214"/> - <source>Virtual Output Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="223"/> - <source>&Input Devices</source> - <translation>ਇੰਪੁੱਟ ਜੰਤਰ(&I)</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="250"/> - <source><i>No input devices available</i></source> - <translation><i>ਕੋਈ ਇੰਪੁੱਟ ਜੰਤਰ ਉਪਲੱਬਧ ਨਹੀਂ ਹੈ</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="269"/> - <source>All Input Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="274"/> - <source>All Except Monitors</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="279"/> - <source>Hardware Input Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="284"/> - <source>Virtual Input Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="289"/> - <source>Monitors</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="298"/> - <source>&Configuration</source> - <translation>ਸੰਰਚਨਾ(&C)</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="325"/> - <source><i>No cards available for configuration</i></source> - <translation><i>ਸੰਰਚਨਾ ਲਈ ਕੋਈ ਕਾਰਡ ਉਪਲੱਬਧ ਨਹੀਂ</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="336"/> - <source>Show volume meters</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="347"/> - <source>...</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="159"/> - <source> (plugged in)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="163"/> - <location filename="../mainwindow.cc" line="257"/> - <source> (unavailable)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="165"/> - <location filename="../mainwindow.cc" line="254"/> - <source> (unplugged)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="388"/> - <source>Failed to read data from stream</source> - <translation>ਸਟਰੀਮ ਤੋਂ ਡਾਟਾ ਪੜ੍ਹਨ ਵਿੱਚ ਫੇਲ੍ਹ ਹੈ</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="432"/> - <source>Peak detect</source> - <translation>ਪੀਕ ਮਿਲੀ</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="433"/> - <source>Failed to create monitoring stream</source> - <translation>ਨਿਗਰਾਨੀ ਸਟਰੀਮ ਬਣਾਉਣ ਵਿੱਚ ਫੇਲ੍ਹ ਹੋਇਆ</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="448"/> - <source>Failed to connect monitoring stream</source> - <translation>ਨਿਗਰਾਨੀ ਸਟਰੀਮ ਨਾਲ ਕੁਨੈਕਟ ਕਰਨ ਲਈ ਫੇਲ੍ਹ</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="587"/> - <source>Ignoring sink-input due to it being designated as an event and thus handled by the Event widget</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="759"/> - <source>System Sounds</source> - <translation>ਸਿਸਟਮ ਸਾਊਂਡ</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="1089"/> - <source>Establishing connection to PulseAudio. Please wait...</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>QObject</name> - <message> - <location filename="../pavucontrol.cc" line="66"/> - <source>Error</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="87"/> - <source>Card callback failure</source> - <translation>ਕਾਰਡ ਕਾਲਬੈਕ ਫੇਲ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="110"/> - <source>Sink callback failure</source> - <translation>ਸਿੰਕ ਕਾਲਬੈਕ ਫੋਲ ਹੋਇਆ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="133"/> - <source>Source callback failure</source> - <translation>ਸੋਰਸ ਕਾਲਬੈਕ ਫੇਲ ਹੋਇਆ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="152"/> - <source>Sink input callback failure</source> - <translation>ਸਿੰਕ ਇੰਪੁੱਟ ਕਾਲਬੈਕ ਫੇਲ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="171"/> - <source>Source output callback failure</source> - <translation>ਸਰੋਤ ਆਉਟਪੁੱਟ ਕਾਲਬੈਕ ਫੇਲ੍ਹ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="211"/> - <source>Client callback failure</source> - <translation>ਕਲਾਇਟ ਕਾਲਬੈਕ ਫੇਲ੍ਹ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="227"/> - <source>Server info callback failure</source> - <translation>ਸਰਵਰ ਜਾਣਕਾਰੀ ਕਾਲਬੈਕ ਫੇਲ੍ਹ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="245"/> - <location filename="../pavucontrol.cc" line="542"/> - <source>Failed to initialize stream_restore extension: %s</source> - <translation>stream_restore ਐਕਸਟੈਂਸ਼ਨ ਸ਼ੁਰੂ ਕਰਨ ਵਿੱਚ ਫੇਲ: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="263"/> - <source>pa_ext_stream_restore_read() failed</source> - <translation>pa_ext_stream_restore_read() ਫੇਲ੍ਹ ਹੈ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="281"/> - <location filename="../pavucontrol.cc" line="556"/> - <source>Failed to initialize device restore extension: %s</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="302"/> - <source>pa_ext_device_restore_read_sink_formats() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="320"/> - <location filename="../pavucontrol.cc" line="569"/> - <source>Failed to initialize device manager extension: %s</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="339"/> - <source>pa_ext_device_manager_read() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="356"/> - <source>pa_context_get_sink_info_by_index() failed</source> - <translation>pa_context_get_sink_info_by_index() ਫੇਲ੍ਹ ਹੈ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="369"/> - <source>pa_context_get_source_info_by_index() failed</source> - <translation>pa_context_get_source_info_by_index() ਫੇਲ੍ਹ ਹੈ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="382"/> - <location filename="../pavucontrol.cc" line="395"/> - <source>pa_context_get_sink_input_info() failed</source> - <translation>pa_context_get_sink_input_info() ਫੇਲ੍ਹ ਹੈ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="408"/> - <source>pa_context_get_client_info() failed</source> - <translation>pa_context_get_client_info() ਫੇਲ੍ਹ ਹੈ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="418"/> - <location filename="../pavucontrol.cc" line="483"/> - <source>pa_context_get_server_info() failed</source> - <translation>pa_context_get_server_info() ਫੇਲ੍ਹ ਹੈ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="431"/> - <source>pa_context_get_card_info_by_index() failed</source> - <translation>pa_context_get_card_info_by_index() ਫੇਲ੍ਹ ਹੋਇਆ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="474"/> - <source>pa_context_subscribe() failed</source> - <translation>pa_context_subscribe() ਫੇਲ੍ਹ ਹੈ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="490"/> - <source>pa_context_client_info_list() failed</source> - <translation>pa_context_client_info_list() ਫੇਲ੍ਹ ਹੈ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="497"/> - <source>pa_context_get_card_info_list() failed</source> - <translation>pa_context_get_card_info_list() ਫੇਲ ਹੋਇਆ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="504"/> - <source>pa_context_get_sink_info_list() failed</source> - <translation>pa_context_get_sink_info_list() ਫੇਲ੍ਹ ਹੈ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="511"/> - <source>pa_context_get_source_info_list() failed</source> - <translation>pa_context_get_source_info_list() ਫੇਲ੍ਹ ਹੈ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="518"/> - <source>pa_context_get_sink_input_info_list() failed</source> - <translation>pa_context_get_sink_input_info_list() ਫੇਲ੍ਹ ਹੈ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="525"/> - <source>pa_context_get_source_output_info_list() failed</source> - <translation>pa_context_get_source_output_info_list() ਫੇਲ੍ਹ ਹੈ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="584"/> - <location filename="../pavucontrol.cc" line="635"/> - <source>Connection failed, attempting reconnect</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="607"/> - <location filename="../pavucontrol.cc" line="664"/> - <source>PulseAudio Volume Control</source> - <translation>ਪਲੱਸਆਡੀਓ ਵਾਲੀਅਮ ਕੰਟਰੋਲ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="622"/> - <source>Connection to PulseAudio failed. Automatic retry in 5s - -In this case this is likely because PULSE_SERVER in the Environment/X11 Root Window Properties -or default-server in client.conf is misconfigured. -This situation can also arrise when PulseAudio crashed and left stale details in the X11 Root Window. -If this is the case, then PulseAudio should autospawn again, or if this is not configured you should -run start-pulseaudio-x11 manually.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="672"/> - <source>Select a specific tab on load.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="675"/> - <source>Retry forever if pa quits (every 5 seconds).</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="678"/> - <source>Maximize the window.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="703"/> - <source>Fatal Error: Unable to connect to PulseAudio</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>RoleWidget</name> - <message> - <location filename="../rolewidget.cc" line="59"/> - <source>pa_ext_stream_restore_write() failed</source> - <translation>pa_ext_stream_restore_write() ਫੇਲ੍ਹ ਹੈ</translation> - </message> -</context> -<context> - <name>SinkInputWidget</name> - <message> - <location filename="../sinkinputwidget.cc" line="36"/> - <source>on</source> - <translation>ਉੱਪਰ</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="39"/> - <source>Terminate Playback</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="53"/> - <source>Unknown output</source> - <translation>ਅਣਜਾਣ ਆਊਟਪੁੱਟ</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="64"/> - <source>pa_context_set_sink_input_volume() failed</source> - <translation>pa_context_set_sink_input_volume() ਫੇਲ੍ਹ ਹੈ</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="79"/> - <source>pa_context_set_sink_input_mute() failed</source> - <translation>pa_context_set_sink_input_mute() ਫੇਲ੍ਹ ਹੈ</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="89"/> - <source>pa_context_kill_sink_input() failed</source> - <translation>pa_context_kill_sink_input() ਫੇਲ੍ਹ ਹੈ</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="114"/> - <source>pa_context_move_sink_input_by_index() failed</source> - <translation>pa_context_move_sink_input_by_index() ਫੇਲ੍ਹ ਹੈ</translation> - </message> -</context> -<context> - <name>SinkWidget</name> - <message> - <location filename="../sinkwidget.cc" line="81"/> - <source>pa_context_set_sink_volume_by_index() failed</source> - <translation>pa_context_set_sink_volume_by_index() ਫੇਲ੍ਹ ਹੈ</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="96"/> - <source>pa_context_set_sink_mute_by_index() failed</source> - <translation>pa_context_set_sink_mute_by_index() ਫੇਲ੍ਹ ਹੈ</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="110"/> - <source>pa_context_set_default_sink() failed</source> - <translation>pa_context_set_default_sink() ਫੇਲ੍ਹ ਹੈ</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="126"/> - <source>pa_context_set_sink_port_by_index() failed</source> - <translation>pa_context_set_sink_port_by_index() ਫੇਲ ਹੈ</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="166"/> - <source>pa_ext_device_restore_save_sink_formats() failed</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>SourceOutputWidget</name> - <message> - <location filename="../sourceoutputwidget.cc" line="35"/> - <source>from</source> - <translation>ਤੋਂ</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="39"/> - <source>Terminate Recording</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="60"/> - <source>Unknown input</source> - <translation>ਅਣਜਾਣ ਇੰਪੁੱਟ</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="72"/> - <source>pa_context_set_source_output_volume() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="87"/> - <source>pa_context_set_source_output_mute() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="98"/> - <source>pa_context_kill_source_output() failed</source> - <translation>pa_context_kill_source_output() ਫੇਲ੍ਹ ਹੈ</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="125"/> - <source>pa_context_move_source_output_by_index() failed</source> - <translation>pa_context_move_source_output_by_index() ਫੇਲ੍ਹ ਹੈ</translation> - </message> -</context> -<context> - <name>SourceWidget</name> - <message> - <location filename="../sourcewidget.cc" line="35"/> - <source>pa_context_set_source_volume_by_index() failed</source> - <translation>pa_context_set_source_volume_by_index() ਫੇਲ੍ਹ ਹੈ</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="50"/> - <source>pa_context_set_source_mute_by_index() failed</source> - <translation>pa_context_set_source_mute_by_index() ਫੇਲ੍ਹ ਹੈ</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="64"/> - <source>pa_context_set_default_source() failed</source> - <translation>pa_context_set_default_source() ਫੇਲ੍ਹ ਹੈ</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="80"/> - <source>pa_context_set_source_port_by_index() failed</source> - <translation>pa_context_set_source_port_by_index() ਫੇਲ ਹੈ</translation> - </message> -</context> -<context> - <name>StreamWidget</name> - <message> - <location filename="../streamwidget.ui" line="14"/> - <source>Form</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.ui" line="32"/> - <source>Device Title</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.ui" line="52"/> - <source>direction</source> - <translation>ਦਿਸ਼ਾ</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="59"/> - <source>device</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.ui" line="66"/> - <source>Mute audio</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.ui" line="79"/> - <source>Lock channels together</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.cc" line="34"/> - <source>Terminate</source> - <translation>ਪਲੇਬੈਕ ਖਤਮ ਕਰੋ</translation> - </message> -</context> -</TS> diff --git a/src/translations/pavucontrol-qt_pl.desktop.yaml b/src/translations/pavucontrol-qt_pl.desktop.yaml deleted file mode 100644 index e509b79..0000000 --- a/src/translations/pavucontrol-qt_pl.desktop.yaml +++ /dev/null @@ -1,3 +0,0 @@ -Desktop Entry/Name: "Kontrola PulseAudio" -Desktop Entry/GenericName: "Kontrola głośności" -Desktop Entry/Comment: "Dostosuj głośność i ustawienia dźwięku" diff --git a/src/translations/pavucontrol-qt_pl.ts b/src/translations/pavucontrol-qt_pl.ts deleted file mode 100644 index 6b5161f..0000000 --- a/src/translations/pavucontrol-qt_pl.ts +++ /dev/null @@ -1,739 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE TS> -<TS version="2.1" language="pl"> -<context> - <name>CardWidget</name> - <message> - <location filename="../cardwidget.ui" line="14"/> - <source>Form</source> - <translation>Formularz</translation> - </message> - <message> - <location filename="../cardwidget.ui" line="29"/> - <source>Card Name</source> - <translation>Nazwa karty</translation> - </message> - <message> - <location filename="../cardwidget.ui" line="47"/> - <source>Profile:</source> - <translation>Profil:</translation> - </message> - <message> - <location filename="../cardwidget.cc" line="67"/> - <source>pa_context_set_card_profile_by_index() failed</source> - <translation>pa_context_set_card_profile_by_index() się nie powiodło</translation> - </message> -</context> -<context> - <name>Channel</name> - <message> - <location filename="../channel.cc" line="89"/> - <source>%1% (%2dB)</source> - <comment>volume slider label [X% (YdB)]</comment> - <translation>%1% (%2dB)</translation> - </message> - <message> - <location filename="../channel.cc" line="93"/> - <source>%1%</source> - <comment>volume slider label [X%]</comment> - <translation>%1%</translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Silence</small></source> - <translation><small>Cisza</small></translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Min</small></source> - <translation><small>Minimum</small></translation> - </message> - <message> - <location filename="../channel.cc" line="162"/> - <source><small>100% (0dB)</small></source> - <translation><small>100% (0 dB)</small></translation> - </message> - <message> - <location filename="../channel.cc" line="165"/> - <source><small><i>Base</i></small></source> - <translation><small><i>Podstawa</i></small></translation> - </message> -</context> -<context> - <name>ChannelWidget</name> - <message> - <location filename="../channelwidget.ui" line="14"/> - <source>Form</source> - <translation>Formularz</translation> - </message> - <message> - <location filename="../channelwidget.ui" line="20"/> - <source><b>left-front</b></source> - <translation><b>lewy-przedni</b></translation> - </message> - <message> - <location filename="../channelwidget.ui" line="34"/> - <source><small>50%</small></source> - <translation><small>50%</small></translation> - </message> -</context> -<context> - <name>DeviceWidget</name> - <message> - <location filename="../devicewidget.ui" line="14"/> - <source>Form</source> - <translation>Formularz</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="36"/> - <source>Device Title</source> - <translation>Nazwa urządzenia</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="56"/> - <source>Mute audio</source> - <translation>Wycisz dźwięk</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="69"/> - <source>Lock channels together</source> - <translation>Zablokuj kanały</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="85"/> - <source>Set as fallback</source> - <translation>Ustaw jako zapasowe</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="103"/> - <source><b>Port:</b></source> - <translation><b>Port:</b></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="126"/> - <source>Show advanced options</source> - <translation>Pokaż zaawansowane opcje</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="172"/> - <source>PCM</source> - <translation>PCM</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="182"/> - <source>AC3</source> - <translation>AC3</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="189"/> - <source>EAC3</source> - <translation>EAC3</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="196"/> - <source>DTS</source> - <translation>DTS</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="203"/> - <source>MPEG</source> - <translation>MPEG</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="210"/> - <source>AAC</source> - <translation>AAC</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="238"/> - <source><b>Latency offset:</b></source> - <translation><b>Przesunięcie opóźnienia:</b></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="245"/> - <source> ms</source> - <translation> ms</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="41"/> - <source>Rename device...</source> - <translation>Zmień nazwę…</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="155"/> - <source>pa_context_set_port_latency_offset() failed</source> - <translation>pa_context_set_port_latency_offset() się nie powiodło</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="226"/> - <source>Sorry, but device renaming is not supported.</source> - <translation>Zmiana nazwy urządzenia nie jest obsługiwana.</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="227"/> - <source>You need to load module-device-manager in the PulseAudio server in order to rename devices</source> - <translation>Należy wczytać module-device-manager w serwerze PulseAudio, aby zmienić nazwę urządzenia</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="233"/> - <source>Rename device %1 to:</source> - <translation>Zmień nazwę urządzenia %1 na:</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="240"/> - <source>pa_ext_device_manager_set_device_description() failed</source> - <translation>pa_ext_device_manager_set_device_description() nie powiodło się</translation> - </message> -</context> -<context> - <name>MainWindow</name> - <message> - <location filename="../mainwindow.ui" line="14"/> - <source>Volume Control</source> - <translation>Kontrola głośności</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="28"/> - <source>&Playback</source> - <translation>O&dtwarzanie</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="55"/> - <source><i>No application is currently playing audio.</i></source> - <translation><i>Żaden program obecnie nie odtwarza dźwięku.</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="66"/> - <location filename="../mainwindow.ui" line="131"/> - <location filename="../mainwindow.ui" line="196"/> - <location filename="../mainwindow.ui" line="261"/> - <source>Show:</source> - <translation>Pokaż:</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="74"/> - <location filename="../mainwindow.ui" line="139"/> - <source>All Streams</source> - <translation>Wszystkie strumienie</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="79"/> - <location filename="../mainwindow.ui" line="144"/> - <source>Applications</source> - <translation>Programy</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="84"/> - <location filename="../mainwindow.ui" line="149"/> - <source>Virtual Streams</source> - <translation>Strumienie wirtualne</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="93"/> - <source>&Recording</source> - <translation>&Nagrywanie</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="120"/> - <source><i>No application is currently recording audio.</i></source> - <translation><i>Żaden program obecnie nie nagrywa dźwięku.</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="158"/> - <source>&Output Devices</source> - <translation>Urządzenia wyjści&owe</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="185"/> - <source><i>No output devices available</i></source> - <translation><i>Brak dostępnych urządzeń wyjściowych</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="204"/> - <source>All Output Devices</source> - <translation>Wszystkie urządzenia wyjściowe</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="209"/> - <source>Hardware Output Devices</source> - <translation>Sprzętowe urządzenia wyjściowe</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="214"/> - <source>Virtual Output Devices</source> - <translation>Wirtualne urządzenia wyjściowe</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="223"/> - <source>&Input Devices</source> - <translation>Urządzen&ia wejściowe</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="250"/> - <source><i>No input devices available</i></source> - <translation><i>Brak dostępnych urządzeń wejściowych</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="269"/> - <source>All Input Devices</source> - <translation>Wszystkie urządzenia wejściowe</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="274"/> - <source>All Except Monitors</source> - <translation>Wszystko poza monitorami</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="279"/> - <source>Hardware Input Devices</source> - <translation>Sprzętowe urządzenia wejściowe</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="284"/> - <source>Virtual Input Devices</source> - <translation>Wirtualne urządzenia wejściowe</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="289"/> - <source>Monitors</source> - <translation>Monitory</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="298"/> - <source>&Configuration</source> - <translation>&Konfiguracja</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="325"/> - <source><i>No cards available for configuration</i></source> - <translation><i>Brak kart dostępnych do konfiguracji</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="336"/> - <source>Show volume meters</source> - <translation>Pokaż wskaźniki poziom głośności</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="347"/> - <source>...</source> - <translation>…</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="159"/> - <source> (plugged in)</source> - <translation> (podłączone)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="163"/> - <location filename="../mainwindow.cc" line="257"/> - <source> (unavailable)</source> - <translation> (niedostępne)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="165"/> - <location filename="../mainwindow.cc" line="254"/> - <source> (unplugged)</source> - <translation> (rozłączone)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="388"/> - <source>Failed to read data from stream</source> - <translation>Odczytanie danych ze strumienia się nie powiodło</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="432"/> - <source>Peak detect</source> - <translation>Wykrywanie szczytów</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="433"/> - <source>Failed to create monitoring stream</source> - <translation>Utworzenie strumienia monitorowania się nie powiodło</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="448"/> - <source>Failed to connect monitoring stream</source> - <translation>Połączenie ze strumienia monitorowania się nie powiodło</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="587"/> - <source>Ignoring sink-input due to it being designated as an event and thus handled by the Event widget</source> - <translation>Ignorowanie sink-input, ponieważ jest ono oznaczone jako zdarzenie, więc jest jest obsługiwane przez widżet Zdarzenia</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="759"/> - <source>System Sounds</source> - <translation>Dźwięki systemowe</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="1089"/> - <source>Establishing connection to PulseAudio. Please wait...</source> - <translation>Ustalanie połączenia z usługą PulseAudio. Proszę czekać…</translation> - </message> -</context> -<context> - <name>QObject</name> - <message> - <location filename="../pavucontrol.cc" line="66"/> - <source>Error</source> - <translation>Błąd</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="87"/> - <source>Card callback failure</source> - <translation>Oddzwonienie karty się nie powiodło</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="110"/> - <source>Sink callback failure</source> - <translation>Oddzwonienie odpływu się nie powiodło</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="133"/> - <source>Source callback failure</source> - <translation>Oddzwonienie źródła się nie powiodło</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="152"/> - <source>Sink input callback failure</source> - <translation>Oddzwonienie odpływu wejścia się nie powiodło</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="171"/> - <source>Source output callback failure</source> - <translation>Oddzwonienie odpływu wyjścia się nie powiodło</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="211"/> - <source>Client callback failure</source> - <translation>Oddzwonienie klienta się nie powiodło</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="227"/> - <source>Server info callback failure</source> - <translation>Oddzwonienie informacji serwera się nie powiodło</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="245"/> - <location filename="../pavucontrol.cc" line="542"/> - <source>Failed to initialize stream_restore extension: %s</source> - <translation>Zainicjowanie rozszerzenia stream_restore się nie powiodło: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="263"/> - <source>pa_ext_stream_restore_read() failed</source> - <translation>pa_ext_stream_restore_read() się nie powiodło</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="281"/> - <location filename="../pavucontrol.cc" line="556"/> - <source>Failed to initialize device restore extension: %s</source> - <translation>Zainicjowanie rozszerzenia przywracania urządzenia się nie powiodło: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="302"/> - <source>pa_ext_device_restore_read_sink_formats() failed</source> - <translation>pa_ext_device_restore_read_sink_formats() się nie powiodło</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="320"/> - <location filename="../pavucontrol.cc" line="569"/> - <source>Failed to initialize device manager extension: %s</source> - <translation>Zainicjowanie rozszerzenia menedżera urządzeń się nie powiodło: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="339"/> - <source>pa_ext_device_manager_read() failed</source> - <translation>pa_ext_device_manager_read() się nie powiodło</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="356"/> - <source>pa_context_get_sink_info_by_index() failed</source> - <translation>pa_context_get_sink_info_by_index() się nie powiodło</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="369"/> - <source>pa_context_get_source_info_by_index() failed</source> - <translation>pa_context_get_source_info_by_index() się nie powiodło</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="382"/> - <location filename="../pavucontrol.cc" line="395"/> - <source>pa_context_get_sink_input_info() failed</source> - <translation>pa_context_get_sink_input_info() się nie powiodło</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="408"/> - <source>pa_context_get_client_info() failed</source> - <translation>pa_context_get_client_info() się nie powiodło</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="418"/> - <location filename="../pavucontrol.cc" line="483"/> - <source>pa_context_get_server_info() failed</source> - <translation>pa_context_get_server_info() się nie powiodło</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="431"/> - <source>pa_context_get_card_info_by_index() failed</source> - <translation>pa_context_get_card_info_by_index() się nie powiodło</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="474"/> - <source>pa_context_subscribe() failed</source> - <translation>pa_context_subscribe() się nie powiodło</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="490"/> - <source>pa_context_client_info_list() failed</source> - <translation>pa_context_client_info_list() się nie powiodło</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="497"/> - <source>pa_context_get_card_info_list() failed</source> - <translation>pa_context_get_card_info_list() się nie powiodło</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="504"/> - <source>pa_context_get_sink_info_list() failed</source> - <translation>pa_context_get_sink_info_list() się nie powiodło</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="511"/> - <source>pa_context_get_source_info_list() failed</source> - <translation>pa_context_get_source_info_list() się nie powiodło</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="518"/> - <source>pa_context_get_sink_input_info_list() failed</source> - <translation>pa_context_get_sink_input_info_list() się nie powiodło</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="525"/> - <source>pa_context_get_source_output_info_list() failed</source> - <translation>pa_context_get_source_output_info_list() się nie powiodło</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="584"/> - <location filename="../pavucontrol.cc" line="635"/> - <source>Connection failed, attempting reconnect</source> - <translation>Połączenie się nie powiodło, próba ponownego połączenia</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="607"/> - <location filename="../pavucontrol.cc" line="664"/> - <source>PulseAudio Volume Control</source> - <translation>Kontrola głośności PulseAudio</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="622"/> - <source>Connection to PulseAudio failed. Automatic retry in 5s - -In this case this is likely because PULSE_SERVER in the Environment/X11 Root Window Properties -or default-server in client.conf is misconfigured. -This situation can also arrise when PulseAudio crashed and left stale details in the X11 Root Window. -If this is the case, then PulseAudio should autospawn again, or if this is not configured you should -run start-pulseaudio-x11 manually.</source> - <translation>Połączenie z PulseAudio nie powiodło się. Zostanie ponowione w ciągu 5 sekund - -Prawdopodobnie jest to spowodowane nieprawidłową konfiguracją PULSE_SERVER w ustawieniach środowiska/ -X11 lub domyślnego serwera w client.conf. -Może to się również wydarzyć, jeżeli PulseAudio został zatrzymany i pozostawił nieaktualne informacje. W tym -przypadku PulseAudio powinien uruchomić się automaycznie, lub (jeżeli ta opcja nie jest skonfigurowana) powinieneś -uruchomić pulseaudio-x11 ręcznie.</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="672"/> - <source>Select a specific tab on load.</source> - <translation>Wczytuje podaną kartę.</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="675"/> - <source>Retry forever if pa quits (every 5 seconds).</source> - <translation>Ponawia w nieskończoność, jeśli PA zakończy działanie (co 5 sekund).</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="678"/> - <source>Maximize the window.</source> - <translation>Maksymalizuje okno.</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="703"/> - <source>Fatal Error: Unable to connect to PulseAudio</source> - <translation>Błąd krytyczny: nie można połączyć z usługą PulseAudio</translation> - </message> -</context> -<context> - <name>RoleWidget</name> - <message> - <location filename="../rolewidget.cc" line="59"/> - <source>pa_ext_stream_restore_write() failed</source> - <translation>pa_ext_stream_restore_write() się nie powiodło</translation> - </message> -</context> -<context> - <name>SinkInputWidget</name> - <message> - <location filename="../sinkinputwidget.cc" line="36"/> - <source>on</source> - <translation>na</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="39"/> - <source>Terminate Playback</source> - <translation>Wymuś zatrzymanie odtwarzania</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="53"/> - <source>Unknown output</source> - <translation>Nieznane wyjście</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="64"/> - <source>pa_context_set_sink_input_volume() failed</source> - <translation>pa_context_set_sink_input_volume() się nie powiodło</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="79"/> - <source>pa_context_set_sink_input_mute() failed</source> - <translation>pa_context_set_sink_input_mute() się nie powiodło</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="89"/> - <source>pa_context_kill_sink_input() failed</source> - <translation>pa_context_kill_sink_input() się nie powiodło</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="114"/> - <source>pa_context_move_sink_input_by_index() failed</source> - <translation>pa_context_move_sink_input_by_index() się nie powiodło</translation> - </message> -</context> -<context> - <name>SinkWidget</name> - <message> - <location filename="../sinkwidget.cc" line="81"/> - <source>pa_context_set_sink_volume_by_index() failed</source> - <translation>pa_context_set_sink_volume_by_index() się nie powiodło</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="96"/> - <source>pa_context_set_sink_mute_by_index() failed</source> - <translation>pa_context_set_sink_mute_by_index() się nie powiodło</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="110"/> - <source>pa_context_set_default_sink() failed</source> - <translation>pa_context_set_default_sink() się nie powiodło</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="126"/> - <source>pa_context_set_sink_port_by_index() failed</source> - <translation>pa_context_set_sink_port_by_index() się nie powiodło</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="166"/> - <source>pa_ext_device_restore_save_sink_formats() failed</source> - <translation>pa_ext_device_restore_save_sink_formats() się nie powiodło</translation> - </message> -</context> -<context> - <name>SourceOutputWidget</name> - <message> - <location filename="../sourceoutputwidget.cc" line="35"/> - <source>from</source> - <translation>z</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="39"/> - <source>Terminate Recording</source> - <translation>Wymuś zatrzymanie nagrywania</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="60"/> - <source>Unknown input</source> - <translation>Nieznane wejście</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="72"/> - <source>pa_context_set_source_output_volume() failed</source> - <translation>pa_context_set_source_output_volume() się nie powiodło</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="87"/> - <source>pa_context_set_source_output_mute() failed</source> - <translation>pa_context_set_source_output_mute() się nie powiodło</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="98"/> - <source>pa_context_kill_source_output() failed</source> - <translation>pa_context_kill_source_output() się nie powiodło</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="125"/> - <source>pa_context_move_source_output_by_index() failed</source> - <translation>pa_context_move_source_output_by_index() się nie powiodło</translation> - </message> -</context> -<context> - <name>SourceWidget</name> - <message> - <location filename="../sourcewidget.cc" line="35"/> - <source>pa_context_set_source_volume_by_index() failed</source> - <translation>pa_context_set_source_volume_by_index() się nie powiodło</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="50"/> - <source>pa_context_set_source_mute_by_index() failed</source> - <translation>pa_context_set_source_mute_by_index() się nie powiodło</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="64"/> - <source>pa_context_set_default_source() failed</source> - <translation>pa_context_set_default_source() się nie powiodło</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="80"/> - <source>pa_context_set_source_port_by_index() failed</source> - <translation>pa_context_set_source_port_by_index() się nie powiodło</translation> - </message> -</context> -<context> - <name>StreamWidget</name> - <message> - <location filename="../streamwidget.ui" line="14"/> - <source>Form</source> - <translation>Formularz</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="32"/> - <source>Device Title</source> - <translation>Nazwa urządzenia</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="52"/> - <source>direction</source> - <translation>kierunek</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="59"/> - <source>device</source> - <translation>urządzenie</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="66"/> - <source>Mute audio</source> - <translation>Wycisz dźwięk</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="79"/> - <source>Lock channels together</source> - <translation>Zablokuj kanały</translation> - </message> - <message> - <location filename="../streamwidget.cc" line="34"/> - <source>Terminate</source> - <translation>Zakończ</translation> - </message> -</context> -</TS> diff --git a/src/translations/pavucontrol-qt_pt.desktop.yaml b/src/translations/pavucontrol-qt_pt.desktop.yaml deleted file mode 100644 index be03a44..0000000 --- a/src/translations/pavucontrol-qt_pt.desktop.yaml +++ /dev/null @@ -1,3 +0,0 @@ -Desktop Entry/Name: "Controlo de volume PulseAudio" -Desktop Entry/GenericName: "Controlo de volume" -Desktop Entry/Comment: "Ajustar o nível do volume" diff --git a/src/translations/pavucontrol-qt_pt.ts b/src/translations/pavucontrol-qt_pt.ts deleted file mode 100644 index 877b3b9..0000000 --- a/src/translations/pavucontrol-qt_pt.ts +++ /dev/null @@ -1,739 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE TS> -<TS version="2.1" language="pt"> -<context> - <name>CardWidget</name> - <message> - <location filename="../cardwidget.ui" line="14"/> - <source>Form</source> - <translation>Formulário</translation> - </message> - <message> - <location filename="../cardwidget.ui" line="29"/> - <source>Card Name</source> - <translation>Nome da placa</translation> - </message> - <message> - <location filename="../cardwidget.ui" line="47"/> - <source>Profile:</source> - <translation>Perfil:</translation> - </message> - <message> - <location filename="../cardwidget.cc" line="67"/> - <source>pa_context_set_card_profile_by_index() failed</source> - <translation>pa_context_set_card_profile_by_index() falhou</translation> - </message> -</context> -<context> - <name>Channel</name> - <message> - <location filename="../channel.cc" line="89"/> - <source>%1% (%2dB)</source> - <comment>volume slider label [X% (YdB)]</comment> - <translation>%1% (%2dB)</translation> - </message> - <message> - <location filename="../channel.cc" line="93"/> - <source>%1%</source> - <comment>volume slider label [X%]</comment> - <translation>%1%</translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Silence</small></source> - <translation><small>Silêncio</small></translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Min</small></source> - <translation><small>Mín.</small></translation> - </message> - <message> - <location filename="../channel.cc" line="162"/> - <source><small>100% (0dB)</small></source> - <translation><small>100% (0dB)</small></translation> - </message> - <message> - <location filename="../channel.cc" line="165"/> - <source><small><i>Base</i></small></source> - <translation><small><i>Base</i></small></translation> - </message> -</context> -<context> - <name>ChannelWidget</name> - <message> - <location filename="../channelwidget.ui" line="14"/> - <source>Form</source> - <translation>Formulário</translation> - </message> - <message> - <location filename="../channelwidget.ui" line="20"/> - <source><b>left-front</b></source> - <translation><b>frontal esquerda</b></translation> - </message> - <message> - <location filename="../channelwidget.ui" line="34"/> - <source><small>50%</small></source> - <translation><small>50%</small></translation> - </message> -</context> -<context> - <name>DeviceWidget</name> - <message> - <location filename="../devicewidget.ui" line="14"/> - <source>Form</source> - <translation>Formulário</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="36"/> - <source>Device Title</source> - <translation>Título do dispositivo</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="56"/> - <source>Mute audio</source> - <translation>Sem som</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="69"/> - <source>Lock channels together</source> - <translation>Bloquer canais em conjunto</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="85"/> - <source>Set as fallback</source> - <translation>Utilizar como recurso</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="103"/> - <source><b>Port:</b></source> - <translation><b>Porta:</b></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="126"/> - <source>Show advanced options</source> - <translation>Mostrar opções avançadas</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="172"/> - <source>PCM</source> - <translation>PCM</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="182"/> - <source>AC3</source> - <translation>AC3</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="189"/> - <source>EAC3</source> - <translation>EAC3</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="196"/> - <source>DTS</source> - <translation>DTS</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="203"/> - <source>MPEG</source> - <translation>MPEG</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="210"/> - <source>AAC</source> - <translation>AAC</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="238"/> - <source><b>Latency offset:</b></source> - <translation><b>Desvio de latência:</b></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="245"/> - <source> ms</source> - <translation> ms</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="41"/> - <source>Rename device...</source> - <translation>Renomear dispositivo...</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="155"/> - <source>pa_context_set_port_latency_offset() failed</source> - <translation>pa_context_set_port_latency_offset() falhou</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="226"/> - <source>Sorry, but device renaming is not supported.</source> - <translation>Desculpe mas não é possível renomear dispositivos.</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="227"/> - <source>You need to load module-device-manager in the PulseAudio server in order to rename devices</source> - <translation>Tem que ativar module-device-manager no servidor PulseAudio para poder renomear dispositivos</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="233"/> - <source>Rename device %1 to:</source> - <translation>Renomear dispositivo %1 para:</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="240"/> - <source>pa_ext_device_manager_set_device_description() failed</source> - <translation>pa_ext_device_manager_set_device_description() falhou</translation> - </message> -</context> -<context> - <name>MainWindow</name> - <message> - <location filename="../mainwindow.ui" line="14"/> - <source>Volume Control</source> - <translation>Controlo de volume</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="28"/> - <source>&Playback</source> - <translation>Re&produção</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="55"/> - <source><i>No application is currently playing audio.</i></source> - <translation><i>Não existem aplicações a reproduzir áudio.</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="66"/> - <location filename="../mainwindow.ui" line="131"/> - <location filename="../mainwindow.ui" line="196"/> - <location filename="../mainwindow.ui" line="261"/> - <source>Show:</source> - <translation>Mostrar:</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="74"/> - <location filename="../mainwindow.ui" line="139"/> - <source>All Streams</source> - <translation>Todos os fluxos</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="79"/> - <location filename="../mainwindow.ui" line="144"/> - <source>Applications</source> - <translation>Aplicações</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="84"/> - <location filename="../mainwindow.ui" line="149"/> - <source>Virtual Streams</source> - <translation>Fluxos virtuais</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="93"/> - <source>&Recording</source> - <translation>G&ravação</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="120"/> - <source><i>No application is currently recording audio.</i></source> - <translation><i>Não existem aplicações a gravar áudio.</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="158"/> - <source>&Output Devices</source> - <translation>Disp&ositivos de saída</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="185"/> - <source><i>No output devices available</i></source> - <translation><i>Não existem dispositivos de saída</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="204"/> - <source>All Output Devices</source> - <translation>Todos os dispositivos de saída</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="209"/> - <source>Hardware Output Devices</source> - <translation>Dispositivos de hardware</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="214"/> - <source>Virtual Output Devices</source> - <translation>Dispositivos virtuais</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="223"/> - <source>&Input Devices</source> - <translation>Dispos&itivos de entrada</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="250"/> - <source><i>No input devices available</i></source> - <translation><i>Não existem dispositivos de entrada</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="269"/> - <source>All Input Devices</source> - <translation>Todos os dispositivos de entrada</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="274"/> - <source>All Except Monitors</source> - <translation>Todos exceto os monitores</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="279"/> - <source>Hardware Input Devices</source> - <translation>Dispositivos de hardware</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="284"/> - <source>Virtual Input Devices</source> - <translation>Dispositivos virtuais</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="289"/> - <source>Monitors</source> - <translation>Monitores</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="298"/> - <source>&Configuration</source> - <translation>&Configuração</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="325"/> - <source><i>No cards available for configuration</i></source> - <translation><i>Não existem placas para configuração</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="336"/> - <source>Show volume meters</source> - <translation>Mostrar medidores de volume</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="347"/> - <source>...</source> - <translation>...</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="159"/> - <source> (plugged in)</source> - <translation> (conectado)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="163"/> - <location filename="../mainwindow.cc" line="257"/> - <source> (unavailable)</source> - <translation> (disponível)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="165"/> - <location filename="../mainwindow.cc" line="254"/> - <source> (unplugged)</source> - <translation> (não conectado)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="388"/> - <source>Failed to read data from stream</source> - <translation>Falha ao ler os dados do fluxo</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="432"/> - <source>Peak detect</source> - <translation>Detetado pico</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="433"/> - <source>Failed to create monitoring stream</source> - <translation>Falha ao criar o fluxo de monitorização</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="448"/> - <source>Failed to connect monitoring stream</source> - <translation>Falha ao conectar o fluxo de monitorização</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="587"/> - <source>Ignoring sink-input due to it being designated as an event and thus handled by the Event widget</source> - <translation>Por ter sido designado como um evento, 'sink-output' será ignorado e gerido pelo widget de eventos</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="759"/> - <source>System Sounds</source> - <translation>Sons do sistema</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="1089"/> - <source>Establishing connection to PulseAudio. Please wait...</source> - <translation>A estabelecer ligação ao servidor PulseAudio. Aguarde...</translation> - </message> -</context> -<context> - <name>QObject</name> - <message> - <location filename="../pavucontrol.cc" line="66"/> - <source>Error</source> - <translation>Erro</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="87"/> - <source>Card callback failure</source> - <translation>Falha no 'callback' da placa</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="110"/> - <source>Sink callback failure</source> - <translation>Falha no 'callback' do 'sink'</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="133"/> - <source>Source callback failure</source> - <translation>Falha no 'callback' da fonte</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="152"/> - <source>Sink input callback failure</source> - <translation>Falha no 'callback' de entrada do 'sink'</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="171"/> - <source>Source output callback failure</source> - <translation>Falha no 'callback' do destino</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="211"/> - <source>Client callback failure</source> - <translation>Falha no 'callback' do cliente</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="227"/> - <source>Server info callback failure</source> - <translation>Falha no 'callback' da info do servidor</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="245"/> - <location filename="../pavucontrol.cc" line="542"/> - <source>Failed to initialize stream_restore extension: %s</source> - <translation>Falha ao iniciar a extensão 'stream_restore': %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="263"/> - <source>pa_ext_stream_restore_read() failed</source> - <translation>pa_ext_stream_restore_read() falhou</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="281"/> - <location filename="../pavucontrol.cc" line="556"/> - <source>Failed to initialize device restore extension: %s</source> - <translation>Falha ao iniciar a extensão de restauro de dispositivos: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="302"/> - <source>pa_ext_device_restore_read_sink_formats() failed</source> - <translation>pa_ext_device_restore_read_sink_formats() falhou</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="320"/> - <location filename="../pavucontrol.cc" line="569"/> - <source>Failed to initialize device manager extension: %s</source> - <translation>Falha ao iniciar a extensão de gestão de dispositivos: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="339"/> - <source>pa_ext_device_manager_read() failed</source> - <translation>pa_ext_device_manager_read() falhou</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="356"/> - <source>pa_context_get_sink_info_by_index() failed</source> - <translation>pa_context_get_sink_info_by_index() falhou</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="369"/> - <source>pa_context_get_source_info_by_index() failed</source> - <translation>pa_context_get_source_info_by_index() falhou</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="382"/> - <location filename="../pavucontrol.cc" line="395"/> - <source>pa_context_get_sink_input_info() failed</source> - <translation>pa_context_get_sink_input_info() falhou</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="408"/> - <source>pa_context_get_client_info() failed</source> - <translation>pa_context_get_client_info() falhou</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="418"/> - <location filename="../pavucontrol.cc" line="483"/> - <source>pa_context_get_server_info() failed</source> - <translation>pa_context_get_server_info() falhou</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="431"/> - <source>pa_context_get_card_info_by_index() failed</source> - <translation>pa_context_get_card_info_by_index() falhou</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="474"/> - <source>pa_context_subscribe() failed</source> - <translation>pa_context_subscribe() falhou</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="490"/> - <source>pa_context_client_info_list() failed</source> - <translation>pa_context_client_info_list() falhou</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="497"/> - <source>pa_context_get_card_info_list() failed</source> - <translation>pa_context_get_card_info_list() falhou</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="504"/> - <source>pa_context_get_sink_info_list() failed</source> - <translation>pa_context_get_sink_info_list() falhou</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="511"/> - <source>pa_context_get_source_info_list() failed</source> - <translation>pa_context_get_source_info_list() falhou</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="518"/> - <source>pa_context_get_sink_input_info_list() failed</source> - <translation>pa_context_get_sink_input_info_list() falhou</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="525"/> - <source>pa_context_get_source_output_info_list() failed</source> - <translation>pa_context_get_source_output_info_list() falhou</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="584"/> - <location filename="../pavucontrol.cc" line="635"/> - <source>Connection failed, attempting reconnect</source> - <translation>Falha de ligação, a tentar novamente</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="607"/> - <location filename="../pavucontrol.cc" line="664"/> - <source>PulseAudio Volume Control</source> - <translation>Controlo de volume PulseAudio</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="622"/> - <source>Connection to PulseAudio failed. Automatic retry in 5s - -In this case this is likely because PULSE_SERVER in the Environment/X11 Root Window Properties -or default-server in client.conf is misconfigured. -This situation can also arrise when PulseAudio crashed and left stale details in the X11 Root Window. -If this is the case, then PulseAudio should autospawn again, or if this is not configured you should -run start-pulseaudio-x11 manually.</source> - <translation>Falha ao estabelecer ligação ao PulseAudio. Nova tentativa dentro de 5 segundos. - -É possível que a variável PULSE_SERVER do ambiente//X11 Root Window Properties ou -que o servidor padrão definido em client.conf não estejam configurados corretamente. -Esta situação pode ter tido origem num encerramento abrupto do servidor PulseAudio no sistema root do X11. -Se for este o caso, o PulseAudio deverá ser reiniciado automaticamente. No entanto, se o PulseAudio não -for reiniciado automaticamente, deve executar o comando start-pulseaudio-x11.</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="672"/> - <source>Select a specific tab on load.</source> - <translation>Selecione o separador a carregar automaticamente.</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="675"/> - <source>Retry forever if pa quits (every 5 seconds).</source> - <translation>Tentar novamente se o PulseAudio encerrar (a cada 5 segundos).</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="678"/> - <source>Maximize the window.</source> - <translation>Maximizar a janela.</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="703"/> - <source>Fatal Error: Unable to connect to PulseAudio</source> - <translation>Erro fatal: incapaz de estabelecer a ligação ao PulseAudio</translation> - </message> -</context> -<context> - <name>RoleWidget</name> - <message> - <location filename="../rolewidget.cc" line="59"/> - <source>pa_ext_stream_restore_write() failed</source> - <translation>pa_ext_stream_restore_write() falhou</translation> - </message> -</context> -<context> - <name>SinkInputWidget</name> - <message> - <location filename="../sinkinputwidget.cc" line="36"/> - <source>on</source> - <translation>ligado</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="39"/> - <source>Terminate Playback</source> - <translation>Terminar reprodução</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="53"/> - <source>Unknown output</source> - <translation>Saída desconhecida</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="64"/> - <source>pa_context_set_sink_input_volume() failed</source> - <translation>pa_context_set_sink_input_volume() falhou</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="79"/> - <source>pa_context_set_sink_input_mute() failed</source> - <translation>pa_context_set_sink_input_mute() falhou</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="89"/> - <source>pa_context_kill_sink_input() failed</source> - <translation>pa_context_kill_sink_input() falhou</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="114"/> - <source>pa_context_move_sink_input_by_index() failed</source> - <translation>pa_context_move_sink_input_by_index() falhou</translation> - </message> -</context> -<context> - <name>SinkWidget</name> - <message> - <location filename="../sinkwidget.cc" line="81"/> - <source>pa_context_set_sink_volume_by_index() failed</source> - <translation>pa_context_set_sink_volume_by_index() falhou</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="96"/> - <source>pa_context_set_sink_mute_by_index() failed</source> - <translation>pa_context_set_sink_mute_by_index() falhou</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="110"/> - <source>pa_context_set_default_sink() failed</source> - <translation>pa_context_set_default_sink() falhou</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="126"/> - <source>pa_context_set_sink_port_by_index() failed</source> - <translation>pa_context_set_sink_port_by_index() falhou</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="166"/> - <source>pa_ext_device_restore_save_sink_formats() failed</source> - <translation>pa_ext_device_restore_save_sink_formats() falhou</translation> - </message> -</context> -<context> - <name>SourceOutputWidget</name> - <message> - <location filename="../sourceoutputwidget.cc" line="35"/> - <source>from</source> - <translation>de</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="39"/> - <source>Terminate Recording</source> - <translation>Terminar gravação</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="60"/> - <source>Unknown input</source> - <translation>Entrada desconhecida</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="72"/> - <source>pa_context_set_source_output_volume() failed</source> - <translation>pa_context_set_source_output_volume() falhou</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="87"/> - <source>pa_context_set_source_output_mute() failed</source> - <translation>pa_context_set_source_output_mute() falhou</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="98"/> - <source>pa_context_kill_source_output() failed</source> - <translation>pa_context_kill_source_output() falhou</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="125"/> - <source>pa_context_move_source_output_by_index() failed</source> - <translation>pa_context_move_source_output_by_index() falhou</translation> - </message> -</context> -<context> - <name>SourceWidget</name> - <message> - <location filename="../sourcewidget.cc" line="35"/> - <source>pa_context_set_source_volume_by_index() failed</source> - <translation>pa_context_set_source_volume_by_index() falhou</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="50"/> - <source>pa_context_set_source_mute_by_index() failed</source> - <translation>pa_context_set_source_mute_by_index() falhou</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="64"/> - <source>pa_context_set_default_source() failed</source> - <translation>pa_context_set_default_source() falhou</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="80"/> - <source>pa_context_set_source_port_by_index() failed</source> - <translation>pa_context_set_source_port_by_index() falhou</translation> - </message> -</context> -<context> - <name>StreamWidget</name> - <message> - <location filename="../streamwidget.ui" line="14"/> - <source>Form</source> - <translation>Formulário</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="32"/> - <source>Device Title</source> - <translation>Título do dispositivo</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="52"/> - <source>direction</source> - <translation>direção</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="59"/> - <source>device</source> - <translation>dispositivo</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="66"/> - <source>Mute audio</source> - <translation>Sem som</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="79"/> - <source>Lock channels together</source> - <translation>Bloquer canais em conjunto</translation> - </message> - <message> - <location filename="../streamwidget.cc" line="34"/> - <source>Terminate</source> - <translation>Terminar</translation> - </message> -</context> -</TS> diff --git a/src/translations/pavucontrol-qt_pt_BR.ts b/src/translations/pavucontrol-qt_pt_BR.ts deleted file mode 100644 index fd9919d..0000000 --- a/src/translations/pavucontrol-qt_pt_BR.ts +++ /dev/null @@ -1,739 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE TS> -<TS version="2.1" language="pt_BR"> -<context> - <name>CardWidget</name> - <message> - <location filename="../cardwidget.ui" line="14"/> - <source>Form</source> - <translation>Formulário</translation> - </message> - <message> - <location filename="../cardwidget.ui" line="29"/> - <source>Card Name</source> - <translation>Nome da Placa</translation> - </message> - <message> - <location filename="../cardwidget.ui" line="47"/> - <source>Profile:</source> - <translation>Perfil:</translation> - </message> - <message> - <location filename="../cardwidget.cc" line="67"/> - <source>pa_context_set_card_profile_by_index() failed</source> - <translation>pa_context_set_card_profile_by_index() falhou</translation> - </message> -</context> -<context> - <name>Channel</name> - <message> - <location filename="../channel.cc" line="89"/> - <source>%1% (%2dB)</source> - <comment>volume slider label [X% (YdB)]</comment> - <translation>%1% (%2dB)</translation> - </message> - <message> - <location filename="../channel.cc" line="93"/> - <source>%1%</source> - <comment>volume slider label [X%]</comment> - <translation>%1%</translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Silence</small></source> - <translation><small>Silêncio</small></translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Min</small></source> - <translation><small>Mín</small></translation> - </message> - <message> - <location filename="../channel.cc" line="162"/> - <source><small>100% (0dB)</small></source> - <translation><small>100% (0dB)</small>2</translation> - </message> - <message> - <location filename="../channel.cc" line="165"/> - <source><small><i>Base</i></small></source> - <translation><small><i>Volume</i></small></translation> - </message> -</context> -<context> - <name>ChannelWidget</name> - <message> - <location filename="../channelwidget.ui" line="14"/> - <source>Form</source> - <translation>Formulário</translation> - </message> - <message> - <location filename="../channelwidget.ui" line="20"/> - <source><b>left-front</b></source> - <translation><b>frontal-esquerdo</b></translation> - </message> - <message> - <location filename="../channelwidget.ui" line="34"/> - <source><small>50%</small></source> - <translation><small>50%</small></translation> - </message> -</context> -<context> - <name>DeviceWidget</name> - <message> - <location filename="../devicewidget.ui" line="14"/> - <source>Form</source> - <translation>Formulário</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="36"/> - <source>Device Title</source> - <translation>Título do Dispositivo</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="56"/> - <source>Mute audio</source> - <translation>Sem áudio</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="69"/> - <source>Lock channels together</source> - <translation>Travar canais juntos</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="85"/> - <source>Set as fallback</source> - <translation>Definir como reserva</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="103"/> - <source><b>Port:</b></source> - <translation><b>Porta:</b></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="126"/> - <source>Show advanced options</source> - <translation>Mostrar opções avançadas</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="172"/> - <source>PCM</source> - <translation>PCM</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="182"/> - <source>AC3</source> - <translation>AC3</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="189"/> - <source>EAC3</source> - <translation>EAC3</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="196"/> - <source>DTS</source> - <translation>DTS</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="203"/> - <source>MPEG</source> - <translation>MPEG</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="210"/> - <source>AAC</source> - <translation>AAC</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="238"/> - <source><b>Latency offset:</b></source> - <translation><b>Compensação de Latência</b></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="245"/> - <source> ms</source> - <translation> ms</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="41"/> - <source>Rename device...</source> - <translation>Renomear dispositivo...</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="155"/> - <source>pa_context_set_port_latency_offset() failed</source> - <translation>pa_context_set_port_latency_offset() falhou</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="226"/> - <source>Sorry, but device renaming is not supported.</source> - <translation>Desculpe, mas a renomeação do dispositivo não é suportada.</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="227"/> - <source>You need to load module-device-manager in the PulseAudio server in order to rename devices</source> - <translation>Você precisa recarregar o módulo de gerenciamento de dispositivos no servidor PulseAudio para conseguir renomear dispositivos</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="233"/> - <source>Rename device %1 to:</source> - <translation>Renomear dispositivo %1 para:</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="240"/> - <source>pa_ext_device_manager_set_device_description() failed</source> - <translation>pa_ext_device_manager_set_device_description() falhou</translation> - </message> -</context> -<context> - <name>MainWindow</name> - <message> - <location filename="../mainwindow.ui" line="14"/> - <source>Volume Control</source> - <translation>Controle de volume</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="28"/> - <source>&Playback</source> - <translation>&Reprodução</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="55"/> - <source><i>No application is currently playing audio.</i></source> - <translation><i>Nenhum aplicativo está reproduzindo áudio no momento.</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="66"/> - <location filename="../mainwindow.ui" line="131"/> - <location filename="../mainwindow.ui" line="196"/> - <location filename="../mainwindow.ui" line="261"/> - <source>Show:</source> - <translation>Exibir:</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="74"/> - <location filename="../mainwindow.ui" line="139"/> - <source>All Streams</source> - <translation>Todos os fluxos</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="79"/> - <location filename="../mainwindow.ui" line="144"/> - <source>Applications</source> - <translation>Aplicações</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="84"/> - <location filename="../mainwindow.ui" line="149"/> - <source>Virtual Streams</source> - <translation>Fluxos virtuais</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="93"/> - <source>&Recording</source> - <translation>&Gravando</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="120"/> - <source><i>No application is currently recording audio.</i></source> - <translation><i>Nenhum aplicativo está gravando áudio no momento.</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="158"/> - <source>&Output Devices</source> - <translation>Dispositivos de &saída</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="185"/> - <source><i>No output devices available</i></source> - <translation><i>Nenhum dispositivo de saída disponível</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="204"/> - <source>All Output Devices</source> - <translation>Todos os dispositivos de saída</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="209"/> - <source>Hardware Output Devices</source> - <translation>Dispositivos de Saída de Hardware</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="214"/> - <source>Virtual Output Devices</source> - <translation>Dispositivos de Saída Virtual</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="223"/> - <source>&Input Devices</source> - <translation>Dispositivos de &entrada</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="250"/> - <source><i>No input devices available</i></source> - <translation><i>Nenhum dispositivo de entrada disponível</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="269"/> - <source>All Input Devices</source> - <translation>Todos Dispositivos de Entradas</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="274"/> - <source>All Except Monitors</source> - <translation>Todos exceto monitores</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="279"/> - <source>Hardware Input Devices</source> - <translation>Dispositivos de entrada de hardware</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="284"/> - <source>Virtual Input Devices</source> - <translation>Dispositivos de entrada virtual</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="289"/> - <source>Monitors</source> - <translation>Monitores</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="298"/> - <source>&Configuration</source> - <translation>&Configuração</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="325"/> - <source><i>No cards available for configuration</i></source> - <translation><i>Nenhuma placa disponível para configuração</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="336"/> - <source>Show volume meters</source> - <translation>Exibir medidor de volume</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="347"/> - <source>...</source> - <translation>...</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="159"/> - <source> (plugged in)</source> - <translation> (plugado)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="163"/> - <location filename="../mainwindow.cc" line="257"/> - <source> (unavailable)</source> - <translation> (indisponível)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="165"/> - <location filename="../mainwindow.cc" line="254"/> - <source> (unplugged)</source> - <translation> (desplugado)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="388"/> - <source>Failed to read data from stream</source> - <translation>Falha ao ler dados procedentes do fluxo</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="432"/> - <source>Peak detect</source> - <translation>Detectar pico</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="433"/> - <source>Failed to create monitoring stream</source> - <translation>Falha ao criar o fluxo de monitoramento</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="448"/> - <source>Failed to connect monitoring stream</source> - <translation>Falha ao conectar o fluxo de monitoramento</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="587"/> - <source>Ignoring sink-input due to it being designated as an event and thus handled by the Event widget</source> - <translation>Ignorando a entrada do coletor devido a ele ser designado como um evento e, portanto, manipulado pelo Evento widget</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="759"/> - <source>System Sounds</source> - <translation>Sons do sistema</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="1089"/> - <source>Establishing connection to PulseAudio. Please wait...</source> - <translation>Estabelecendo conexão ao PulseAudio. Por favor, aguarde...</translation> - </message> -</context> -<context> - <name>QObject</name> - <message> - <location filename="../pavucontrol.cc" line="66"/> - <source>Error</source> - <translation>Erro</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="87"/> - <source>Card callback failure</source> - <translation>Falha na chamada de retorno da placa</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="110"/> - <source>Sink callback failure</source> - <translation>Falha no destino da chamada de retorno</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="133"/> - <source>Source callback failure</source> - <translation>Chamada de retorno da fonte falhou</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="152"/> - <source>Sink input callback failure</source> - <translation>Falha no destino da entrada das chamadas de retorno</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="171"/> - <source>Source output callback failure</source> - <translation>Falha na chamada de retorno da saída da fonte</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="211"/> - <source>Client callback failure</source> - <translation>Falha na chamada de retorno do cliente</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="227"/> - <source>Server info callback failure</source> - <translation>Falha na chamada de retorno das informações do servidor</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="245"/> - <location filename="../pavucontrol.cc" line="542"/> - <source>Failed to initialize stream_restore extension: %s</source> - <translation>Falha ao inicializar a extensão stream_restore: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="263"/> - <source>pa_ext_stream_restore_read() failed</source> - <translation>pa_ext_stream_restore_read() falhou</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="281"/> - <location filename="../pavucontrol.cc" line="556"/> - <source>Failed to initialize device restore extension: %s</source> - <translation>Falha ao inicializar a extensão de restauração do dispositivo: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="302"/> - <source>pa_ext_device_restore_read_sink_formats() failed</source> - <translation>pa_ext_device_restore_read_sink_formats() falhou</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="320"/> - <location filename="../pavucontrol.cc" line="569"/> - <source>Failed to initialize device manager extension: %s</source> - <translation>Falha ao inicializar a extensão do gerenciador de dispositivos: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="339"/> - <source>pa_ext_device_manager_read() failed</source> - <translation>pa_ext_device_manager_read() falhou</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="356"/> - <source>pa_context_get_sink_info_by_index() failed</source> - <translation>pa_context_get_sink_info_by_index() falhou</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="369"/> - <source>pa_context_get_source_info_by_index() failed</source> - <translation>pa_context_get_source_info_by_index() falhou</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="382"/> - <location filename="../pavucontrol.cc" line="395"/> - <source>pa_context_get_sink_input_info() failed</source> - <translation>pa_context_get_sink_input_info() falhou</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="408"/> - <source>pa_context_get_client_info() failed</source> - <translation>pa_context_get_client_info() falhou</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="418"/> - <location filename="../pavucontrol.cc" line="483"/> - <source>pa_context_get_server_info() failed</source> - <translation>pa_context_get_server_info() falhou</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="431"/> - <source>pa_context_get_card_info_by_index() failed</source> - <translation>pa_context_get_card_info_by_index() falhou</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="474"/> - <source>pa_context_subscribe() failed</source> - <translation>pa_context_subscribe() falhou</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="490"/> - <source>pa_context_client_info_list() failed</source> - <translation>pa_context_client_info_list() falhou</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="497"/> - <source>pa_context_get_card_info_list() failed</source> - <translation>pa_context_get_card_info_list() falhou</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="504"/> - <source>pa_context_get_sink_info_list() failed</source> - <translation>pa_context_get_sink_info_list() falhou</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="511"/> - <source>pa_context_get_source_info_list() failed</source> - <translation>pa_context_get_source_info_list() falhou</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="518"/> - <source>pa_context_get_sink_input_info_list() failed</source> - <translation>pa_context_get_sink_input_info_list() falhou</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="525"/> - <source>pa_context_get_source_output_info_list() failed</source> - <translation>pa_context_get_source_output_info_list() falhou</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="584"/> - <location filename="../pavucontrol.cc" line="635"/> - <source>Connection failed, attempting reconnect</source> - <translation>Falha na conexão, tentando reconectar</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="607"/> - <location filename="../pavucontrol.cc" line="664"/> - <source>PulseAudio Volume Control</source> - <translation>Controle de volume do PulseAudio</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="622"/> - <source>Connection to PulseAudio failed. Automatic retry in 5s - -In this case this is likely because PULSE_SERVER in the Environment/X11 Root Window Properties -or default-server in client.conf is misconfigured. -This situation can also arrise when PulseAudio crashed and left stale details in the X11 Root Window. -If this is the case, then PulseAudio should autospawn again, or if this is not configured you should -run start-pulseaudio-x11 manually.</source> - <translation>A conexão com o PulseAudio falhou. Tentando novamente em 5s - -Nesse caso é provável que PULSE_SERVER nas propriedades da janela Environment/X11 Root -ou defaul.server em client.conf está configurado incorretamente. -Esta situação também pode surgir quando o PulseAudio falhou e deixou detalhes obsoletos na janela X11 Root. -Se esse for o caso, o PulseAudio deverá ser novamente exibido automaticamente ou, se isso não -executar, iniciar start-pulseaudio-x11 manualmente.</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="672"/> - <source>Select a specific tab on load.</source> - <translation>Selecionar uma aba especifica ao carregar.</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="675"/> - <source>Retry forever if pa quits (every 5 seconds).</source> - <translation>Tentar para sempre se o pa fechar (a cada 5 segundos).</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="678"/> - <source>Maximize the window.</source> - <translation>Maximizar a janela.</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="703"/> - <source>Fatal Error: Unable to connect to PulseAudio</source> - <translation>Erro Fatal: Não foi possível conectar ao PulseAudio</translation> - </message> -</context> -<context> - <name>RoleWidget</name> - <message> - <location filename="../rolewidget.cc" line="59"/> - <source>pa_ext_stream_restore_write() failed</source> - <translation>pa_ext_stream_restore_write() falhou</translation> - </message> -</context> -<context> - <name>SinkInputWidget</name> - <message> - <location filename="../sinkinputwidget.cc" line="36"/> - <source>on</source> - <translation>ligado</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="39"/> - <source>Terminate Playback</source> - <translation>Finalizar Reprodução</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="53"/> - <source>Unknown output</source> - <translation>Saída desconhecida</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="64"/> - <source>pa_context_set_sink_input_volume() failed</source> - <translation>pa_context_set_sink_input_volume() falhou</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="79"/> - <source>pa_context_set_sink_input_mute() failed</source> - <translation>pa_context_set_sink_input_mute() falhou</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="89"/> - <source>pa_context_kill_sink_input() failed</source> - <translation>pa_context_kill_sink_input() falhou</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="114"/> - <source>pa_context_move_sink_input_by_index() failed</source> - <translation>pa_context_move_sink_input_by_index() falhou</translation> - </message> -</context> -<context> - <name>SinkWidget</name> - <message> - <location filename="../sinkwidget.cc" line="81"/> - <source>pa_context_set_sink_volume_by_index() failed</source> - <translation>pa_context_set_sink_volume_by_index() falhou</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="96"/> - <source>pa_context_set_sink_mute_by_index() failed</source> - <translation>pa_context_set_sink_mute_by_index() falhou</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="110"/> - <source>pa_context_set_default_sink() failed</source> - <translation>pa_context_set_default_sink() falhou</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="126"/> - <source>pa_context_set_sink_port_by_index() failed</source> - <translation>pa_context_set_sink_port_by_index() falhou</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="166"/> - <source>pa_ext_device_restore_save_sink_formats() failed</source> - <translation>pa_ext_device_restore_save_sink_formats() falhou</translation> - </message> -</context> -<context> - <name>SourceOutputWidget</name> - <message> - <location filename="../sourceoutputwidget.cc" line="35"/> - <source>from</source> - <translation>de</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="39"/> - <source>Terminate Recording</source> - <translation>Finalizar Gravação</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="60"/> - <source>Unknown input</source> - <translation>Entrada desconhecida</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="72"/> - <source>pa_context_set_source_output_volume() failed</source> - <translation>pa_context_set_source_output_volume() falhou</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="87"/> - <source>pa_context_set_source_output_mute() failed</source> - <translation>pa_context_set_source_output_mute() falhou</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="98"/> - <source>pa_context_kill_source_output() failed</source> - <translation>pa_context_kill_source_output() falhou</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="125"/> - <source>pa_context_move_source_output_by_index() failed</source> - <translation>pa_context_move_source_output_by_index() falhou</translation> - </message> -</context> -<context> - <name>SourceWidget</name> - <message> - <location filename="../sourcewidget.cc" line="35"/> - <source>pa_context_set_source_volume_by_index() failed</source> - <translation>pa_context_set_source_volume_by_index() falhou</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="50"/> - <source>pa_context_set_source_mute_by_index() failed</source> - <translation>pa_context_set_source_mute_by_index() falhou</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="64"/> - <source>pa_context_set_default_source() failed</source> - <translation>pa_context_set_default_source() falhou</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="80"/> - <source>pa_context_set_source_port_by_index() failed</source> - <translation>pa_context_set_source_port_by_index() falhou</translation> - </message> -</context> -<context> - <name>StreamWidget</name> - <message> - <location filename="../streamwidget.ui" line="14"/> - <source>Form</source> - <translation>Formato</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="32"/> - <source>Device Title</source> - <translation>Nome do Dispositivo</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="52"/> - <source>direction</source> - <translation>direção</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="59"/> - <source>device</source> - <translation>dispositivo</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="66"/> - <source>Mute audio</source> - <translation>Mudo</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="79"/> - <source>Lock channels together</source> - <translation>Sincronizar canais</translation> - </message> - <message> - <location filename="../streamwidget.cc" line="34"/> - <source>Terminate</source> - <translation>Terminar</translation> - </message> -</context> -</TS> diff --git a/src/translations/pavucontrol-qt_ro.desktop.yaml b/src/translations/pavucontrol-qt_ro.desktop.yaml deleted file mode 100644 index abc38b5..0000000 --- a/src/translations/pavucontrol-qt_ro.desktop.yaml +++ /dev/null @@ -1,3 +0,0 @@ -Desktop Entry/Name: "Control volum PulseAudio" -Desktop Entry/GenericName: "Control volum" -Desktop Entry/Comment: "Ajustează nivelul volumului" diff --git a/src/translations/pavucontrol-qt_ro.ts b/src/translations/pavucontrol-qt_ro.ts deleted file mode 100644 index 0022216..0000000 --- a/src/translations/pavucontrol-qt_ro.ts +++ /dev/null @@ -1,740 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE TS> -<TS version="2.1" language="ro"> -<context> - <name>CardWidget</name> - <message> - <location filename="../cardwidget.ui" line="14"/> - <source>Form</source> - <translation>Formular</translation> - </message> - <message> - <location filename="../cardwidget.ui" line="29"/> - <source>Card Name</source> - <translation>Denumire cartelă</translation> - </message> - <message> - <location filename="../cardwidget.ui" line="47"/> - <source>Profile:</source> - <translation>Profil:</translation> - </message> - <message> - <location filename="../cardwidget.cc" line="67"/> - <source>pa_context_set_card_profile_by_index() failed</source> - <translation>pa_context_set_card_profile_by_index() a eșuat</translation> - </message> -</context> -<context> - <name>Channel</name> - <message> - <location filename="../channel.cc" line="89"/> - <source>%1% (%2dB)</source> - <comment>volume slider label [X% (YdB)]</comment> - <translation>%1% (%2dB)</translation> - </message> - <message> - <location filename="../channel.cc" line="93"/> - <source>%1%</source> - <comment>volume slider label [X%]</comment> - <translation>%1%</translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Silence</small></source> - <translation><small>Tăcere</small></translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Min</small></source> - <translation><small>Min</small></translation> - </message> - <message> - <location filename="../channel.cc" line="162"/> - <source><small>100% (0dB)</small></source> - <translation><small>100% (0dB)</small></translation> - </message> - <message> - <location filename="../channel.cc" line="165"/> - <source><small><i>Base</i></small></source> - <translation><small><i>De bază</i></small></translation> - </message> -</context> -<context> - <name>ChannelWidget</name> - <message> - <location filename="../channelwidget.ui" line="14"/> - <source>Form</source> - <translation>Formular</translation> - </message> - <message> - <location filename="../channelwidget.ui" line="20"/> - <source><b>left-front</b></source> - <translation><b>stânga-față</b></translation> - </message> - <message> - <location filename="../channelwidget.ui" line="34"/> - <source><small>50%</small></source> - <translation><small>50%</small></translation> - </message> -</context> -<context> - <name>DeviceWidget</name> - <message> - <location filename="../devicewidget.ui" line="14"/> - <source>Form</source> - <translation>Formular</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="36"/> - <source>Device Title</source> - <translation>Titlu dispozitiv</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="56"/> - <source>Mute audio</source> - <translation>Muțește sunetul</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="69"/> - <source>Lock channels together</source> - <translation>Blochează canalele împreună</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="85"/> - <source>Set as fallback</source> - <translation>Stabilește ca rezervă</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="103"/> - <source><b>Port:</b></source> - <translation><b>Port:</b></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="126"/> - <source>Show advanced options</source> - <translation>Arată opțiuni avansate</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="172"/> - <source>PCM</source> - <translation>PCM</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="182"/> - <source>AC3</source> - <translation>AC3</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="189"/> - <source>EAC3</source> - <translation>EAC3</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="196"/> - <source>DTS</source> - <translation>DTS</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="203"/> - <source>MPEG</source> - <translation>MPEG</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="210"/> - <source>AAC</source> - <translation>AAC</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="238"/> - <source><b>Latency offset:</b></source> - <translation><b>Decalaj de latență:</b></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="245"/> - <source> ms</source> - <translation> ms</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="41"/> - <source>Rename device...</source> - <translation>Redenumește dispozitivul…</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="155"/> - <source>pa_context_set_port_latency_offset() failed</source> - <translation>pa_context_set_port_latency_offset() a eșuat</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="226"/> - <source>Sorry, but device renaming is not supported.</source> - <translation>Scuze, redenumirea dispozitivului nu e susținută.</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="227"/> - <source>You need to load module-device-manager in the PulseAudio server in order to rename devices</source> - <translation>Trebuie să încărcați module-device-manager în serverul PulseAudio pentru a redenumi dispozitive</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="233"/> - <source>Rename device %1 to:</source> - <translation>Redenumește dispozitivul %1 în:</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="240"/> - <source>pa_ext_device_manager_set_device_description() failed</source> - <translation>pa_ext_device_manager_set_device_description() a eșuat</translation> - </message> -</context> -<context> - <name>MainWindow</name> - <message> - <location filename="../mainwindow.ui" line="14"/> - <source>Volume Control</source> - <translation>Control volum</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="55"/> - <source><i>No application is currently playing audio.</i></source> - <translation><i>Nicio aplicație nu redă sunet acum.</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="66"/> - <location filename="../mainwindow.ui" line="131"/> - <location filename="../mainwindow.ui" line="196"/> - <location filename="../mainwindow.ui" line="261"/> - <source>Show:</source> - <translation>Arată:</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="74"/> - <location filename="../mainwindow.ui" line="139"/> - <source>All Streams</source> - <translation>Toate fluxurile</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="79"/> - <location filename="../mainwindow.ui" line="144"/> - <source>Applications</source> - <translation>Aplicații</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="84"/> - <location filename="../mainwindow.ui" line="149"/> - <source>Virtual Streams</source> - <translation>Fluxuri virtuale</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="120"/> - <source><i>No application is currently recording audio.</i></source> - <translation><i>Nicio aplicație nu înregistrează sunet acum.</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="185"/> - <source><i>No output devices available</i></source> - <translation><i>Niciun dispozitiv de ieșire disponibil</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="204"/> - <source>All Output Devices</source> - <translation>Toate dispozitivele de ieșire</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="209"/> - <source>Hardware Output Devices</source> - <translation>Dispozitive de ieșire fizice</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="214"/> - <source>Virtual Output Devices</source> - <translation>Dispozitive de ieșire virtuale</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="28"/> - <source>&Playback</source> - <translation>&Redare</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="93"/> - <source>&Recording</source> - <translation>În&registrare</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="158"/> - <source>&Output Devices</source> - <translation>Disp&ozitive de ieșire</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="223"/> - <source>&Input Devices</source> - <translation>Dispozitive de &intrare</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="250"/> - <source><i>No input devices available</i></source> - <translation><i>Niciun dispozitiv de intrare disponibil</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="269"/> - <source>All Input Devices</source> - <translation>Toate dispozitivele de intrare</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="274"/> - <source>All Except Monitors</source> - <translation>Toate cu excepția monitoarelor</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="279"/> - <source>Hardware Input Devices</source> - <translation>Dispozitive de intrare fizice</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="284"/> - <source>Virtual Input Devices</source> - <translation>Dispozitive de intrare virtuale</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="289"/> - <source>Monitors</source> - <translation>Monitoare</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="298"/> - <source>&Configuration</source> - <translation>&Configurare</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="325"/> - <source><i>No cards available for configuration</i></source> - <translation><i>Nicio cartelă disponibilă pentru configurare</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="336"/> - <source>Show volume meters</source> - <translation>Arată contoare de volum</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="347"/> - <source>...</source> - <translation>…</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="159"/> - <source> (plugged in)</source> - <translation> (atașat)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="163"/> - <location filename="../mainwindow.cc" line="257"/> - <source> (unavailable)</source> - <translation> (indisponibil)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="165"/> - <location filename="../mainwindow.cc" line="254"/> - <source> (unplugged)</source> - <translation> (detașat)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="388"/> - <source>Failed to read data from stream</source> - <translation>Citirea datelor din flux a eșuat</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="432"/> - <source>Peak detect</source> - <translation>Detectare vârfuri</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="433"/> - <source>Failed to create monitoring stream</source> - <translation>Crearea fluxului de monitorizare a eșuat</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="448"/> - <source>Failed to connect monitoring stream</source> - <translation>Conectarea fluxului de monitorizare a eșuat</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="587"/> - <source>Ignoring sink-input due to it being designated as an event and thus handled by the Event widget</source> - <translation>Se ignoră intrarea receptorului din cauză că e desemnată ca eveniment, astfel fiind manipulată de controlul „Eveniment”</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="759"/> - <source>System Sounds</source> - <translation>Sunete de sistem</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="1089"/> - <source>Establishing connection to PulseAudio. Please wait...</source> - <translation>Se stabilește conexiunea la PulseAudio. Așteptați…</translation> - </message> -</context> -<context> - <name>QObject</name> - <message> - <location filename="../pavucontrol.cc" line="66"/> - <source>Error</source> - <translation>Eroare</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="87"/> - <source>Card callback failure</source> - <translation>Eșec retroapel cartelă</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="110"/> - <source>Sink callback failure</source> - <translation>Eșec retroapel receptor</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="133"/> - <source>Source callback failure</source> - <translation>Eșec retroapel sursă</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="152"/> - <source>Sink input callback failure</source> - <translation>Eșec retroapel intrare receptor</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="171"/> - <source>Source output callback failure</source> - <translation>Eșec retroapel ieșire sursă</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="211"/> - <source>Client callback failure</source> - <translation>Eșec retroapel client</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="227"/> - <source>Server info callback failure</source> - <translation>Eșec retroapel informații server</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="245"/> - <location filename="../pavucontrol.cc" line="542"/> - <source>Failed to initialize stream_restore extension: %s</source> - <translation>Inițializarea extensiei stream_restore a eșuat: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="263"/> - <source>pa_ext_stream_restore_read() failed</source> - <translation>pa_ext_stream_restore_read() a eșuat</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="281"/> - <location filename="../pavucontrol.cc" line="556"/> - <source>Failed to initialize device restore extension: %s</source> - <translation>Inițializarea extensiei de restabilire a dispozitivelor a eșuat: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="302"/> - <source>pa_ext_device_restore_read_sink_formats() failed</source> - <translation>pa_ext_device_restore_read_sink_formats() a eșuat</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="320"/> - <location filename="../pavucontrol.cc" line="569"/> - <source>Failed to initialize device manager extension: %s</source> - <translation>Inițializarea extensiei de gestiune a dispozitivelor a eșuat: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="339"/> - <source>pa_ext_device_manager_read() failed</source> - <translation>pa_ext_device_manager_read() a eșuat</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="356"/> - <source>pa_context_get_sink_info_by_index() failed</source> - <translation>pa_context_get_sink_info_by_index() a eșuat</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="369"/> - <source>pa_context_get_source_info_by_index() failed</source> - <translation>pa_context_get_source_info_by_index() a eșuat</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="382"/> - <location filename="../pavucontrol.cc" line="395"/> - <source>pa_context_get_sink_input_info() failed</source> - <translation>pa_context_get_sink_input_info() a eșuat</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="408"/> - <source>pa_context_get_client_info() failed</source> - <translation>pa_context_get_client_info() a eșuat</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="418"/> - <location filename="../pavucontrol.cc" line="483"/> - <source>pa_context_get_server_info() failed</source> - <translation>pa_context_get_server_info() a eșuat</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="431"/> - <source>pa_context_get_card_info_by_index() failed</source> - <translation>pa_context_get_card_info_by_index() a eșuat</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="474"/> - <source>pa_context_subscribe() failed</source> - <translation>pa_context_subscribe() a eșuat</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="490"/> - <source>pa_context_client_info_list() failed</source> - <translation>pa_context_client_info_list() a eșuat</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="497"/> - <source>pa_context_get_card_info_list() failed</source> - <translation>pa_context_get_card_info_list() a eșuat</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="504"/> - <source>pa_context_get_sink_info_list() failed</source> - <translation>pa_context_get_sink_info_list() a eșuat</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="511"/> - <source>pa_context_get_source_info_list() failed</source> - <translation>pa_context_get_source_info_list() a eșuat</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="518"/> - <source>pa_context_get_sink_input_info_list() failed</source> - <translation>pa_context_get_sink_input_info_list() a eșuat</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="525"/> - <source>pa_context_get_source_output_info_list() failed</source> - <translation>pa_context_get_source_output_info_list() a eșuat</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="584"/> - <location filename="../pavucontrol.cc" line="635"/> - <source>Connection failed, attempting reconnect</source> - <translation>Conexiune eșuată, se încearcă reconectarea</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="607"/> - <location filename="../pavucontrol.cc" line="664"/> - <source>PulseAudio Volume Control</source> - <translation>Control volum PulseAudio</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="622"/> - <source>Connection to PulseAudio failed. Automatic retry in 5s - -In this case this is likely because PULSE_SERVER in the Environment/X11 Root Window Properties -or default-server in client.conf is misconfigured. -This situation can also arrise when PulseAudio crashed and left stale details in the X11 Root Window. -If this is the case, then PulseAudio should autospawn again, or if this is not configured you should -run start-pulseaudio-x11 manually.</source> - <translation>Conectarea la PulseAudio a eșuat. Reîncercare automată în 5s - -În acest caz, aceasta se poate datora faptului că PULSE_SERVER (în mediu sau în proprietățile -ferestrei-rădăcină X11) sau default-server (în client.conf) sunt configurate greșit. -Această situație poate apărea și atunci când PulseAudio s-a prăbușit și a lăsat în urmă -detalii învechite în fereastra-rădăcină X11. -Dacă acesta e cazul, atunci PulseAudio ar trebui să se pornească automat din nou. -Dacă acest lucru nu e configurat, rulați „start-pulseaudio-x11” manual.</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="672"/> - <source>Select a specific tab on load.</source> - <translation>Alege o filă anumită la încărcare.</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="675"/> - <source>Retry forever if pa quits (every 5 seconds).</source> - <translation>Încearcă în continuu dacă PA se termină (la fiecare 5 secunde).</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="678"/> - <source>Maximize the window.</source> - <translation>Maximizează fereastra.</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="703"/> - <source>Fatal Error: Unable to connect to PulseAudio</source> - <translation>Eroare fatală: Nu s-a putut conecta la PulseAudio</translation> - </message> -</context> -<context> - <name>RoleWidget</name> - <message> - <location filename="../rolewidget.cc" line="59"/> - <source>pa_ext_stream_restore_write() failed</source> - <translation>pa_ext_stream_restore_write() a eșuat</translation> - </message> -</context> -<context> - <name>SinkInputWidget</name> - <message> - <location filename="../sinkinputwidget.cc" line="36"/> - <source>on</source> - <translation>pe</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="39"/> - <source>Terminate Playback</source> - <translation>Termină redarea</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="53"/> - <source>Unknown output</source> - <translation>Ieșire necunoscută</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="64"/> - <source>pa_context_set_sink_input_volume() failed</source> - <translation>pa_context_set_sink_input_volume() a eșuat</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="79"/> - <source>pa_context_set_sink_input_mute() failed</source> - <translation>pa_context_set_sink_input_mute() a eșuat</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="89"/> - <source>pa_context_kill_sink_input() failed</source> - <translation>pa_context_kill_sink_input() a eșuat</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="114"/> - <source>pa_context_move_sink_input_by_index() failed</source> - <translation>pa_context_move_sink_input_by_index() a eșuat</translation> - </message> -</context> -<context> - <name>SinkWidget</name> - <message> - <location filename="../sinkwidget.cc" line="81"/> - <source>pa_context_set_sink_volume_by_index() failed</source> - <translation>pa_context_set_sink_volume_by_index() a eșuat</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="96"/> - <source>pa_context_set_sink_mute_by_index() failed</source> - <translation>pa_context_set_sink_mute_by_index() a eșuat</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="110"/> - <source>pa_context_set_default_sink() failed</source> - <translation>pa_context_set_default_sink() a eșuat</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="126"/> - <source>pa_context_set_sink_port_by_index() failed</source> - <translation>pa_context_set_sink_port_by_index() a eșuat</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="166"/> - <source>pa_ext_device_restore_save_sink_formats() failed</source> - <translation>pa_ext_device_restore_save_sink_formats() a eșuat</translation> - </message> -</context> -<context> - <name>SourceOutputWidget</name> - <message> - <location filename="../sourceoutputwidget.cc" line="35"/> - <source>from</source> - <translation>din</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="39"/> - <source>Terminate Recording</source> - <translation>Termină înregistrarea</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="60"/> - <source>Unknown input</source> - <translation>Intrare necunoscută</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="72"/> - <source>pa_context_set_source_output_volume() failed</source> - <translation>pa_context_set_source_output_volume() a eșuat</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="87"/> - <source>pa_context_set_source_output_mute() failed</source> - <translation>pa_context_set_source_output_mute() a eșuat</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="98"/> - <source>pa_context_kill_source_output() failed</source> - <translation>pa_context_kill_source_output() a eșuat</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="125"/> - <source>pa_context_move_source_output_by_index() failed</source> - <translation>pa_context_move_source_output_by_index() a eșuat</translation> - </message> -</context> -<context> - <name>SourceWidget</name> - <message> - <location filename="../sourcewidget.cc" line="35"/> - <source>pa_context_set_source_volume_by_index() failed</source> - <translation>pa_context_set_source_volume_by_index() a eșuat</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="50"/> - <source>pa_context_set_source_mute_by_index() failed</source> - <translation>pa_context_set_source_mute_by_index() a eșuat</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="64"/> - <source>pa_context_set_default_source() failed</source> - <translation>pa_context_set_default_source() a eșuat</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="80"/> - <source>pa_context_set_source_port_by_index() failed</source> - <translation>pa_context_set_source_port_by_index() a eșuat</translation> - </message> -</context> -<context> - <name>StreamWidget</name> - <message> - <location filename="../streamwidget.ui" line="14"/> - <source>Form</source> - <translation>Formular</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="32"/> - <source>Device Title</source> - <translation>Titlu dispozitiv</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="52"/> - <source>direction</source> - <translation>direcție</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="59"/> - <source>device</source> - <translation>dispozitiv</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="66"/> - <source>Mute audio</source> - <translation>Muțește sunetul</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="79"/> - <source>Lock channels together</source> - <translation>Blochează canalele împreună</translation> - </message> - <message> - <location filename="../streamwidget.cc" line="34"/> - <source>Terminate</source> - <translation>Termină</translation> - </message> -</context> -</TS> diff --git a/src/translations/pavucontrol-qt_ru.desktop.yaml b/src/translations/pavucontrol-qt_ru.desktop.yaml deleted file mode 100644 index a05bd57..0000000 --- a/src/translations/pavucontrol-qt_ru.desktop.yaml +++ /dev/null @@ -1,3 +0,0 @@ -Desktop Entry/Name: "Регулятор громкости PulseAudio" -Desktop Entry/GenericName: "Громкость" -Desktop Entry/Comment: "Изменение уровня громкости" diff --git a/src/translations/pavucontrol-qt_ru.ts b/src/translations/pavucontrol-qt_ru.ts deleted file mode 100644 index fe15ee3..0000000 --- a/src/translations/pavucontrol-qt_ru.ts +++ /dev/null @@ -1,740 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE TS> -<TS version="2.1" language="ru"> -<context> - <name>CardWidget</name> - <message> - <location filename="../cardwidget.ui" line="14"/> - <source>Form</source> - <translation>Форма</translation> - </message> - <message> - <location filename="../cardwidget.ui" line="29"/> - <source>Card Name</source> - <translation>Имя карты</translation> - </message> - <message> - <location filename="../cardwidget.ui" line="47"/> - <source>Profile:</source> - <translation>Профиль:</translation> - </message> - <message> - <location filename="../cardwidget.cc" line="67"/> - <source>pa_context_set_card_profile_by_index() failed</source> - <translation>Сбой pa_context_set_card_profile_by_index()</translation> - </message> -</context> -<context> - <name>Channel</name> - <message> - <location filename="../channel.cc" line="89"/> - <source>%1% (%2dB)</source> - <comment>volume slider label [X% (YdB)]</comment> - <translation>%1% (%2дБ)</translation> - </message> - <message> - <location filename="../channel.cc" line="93"/> - <source>%1%</source> - <comment>volume slider label [X%]</comment> - <translation>%1%</translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Silence</small></source> - <translation><small>Тишина</small></translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Min</small></source> - <translation><small>Минимум</small></translation> - </message> - <message> - <location filename="../channel.cc" line="162"/> - <source><small>100% (0dB)</small></source> - <translation><small>100% (0дБ)</small></translation> - </message> - <message> - <location filename="../channel.cc" line="165"/> - <source><small><i>Base</i></small></source> - <translation><small><i>База</i></small></translation> - </message> -</context> -<context> - <name>ChannelWidget</name> - <message> - <location filename="../channelwidget.ui" line="14"/> - <source>Form</source> - <translation>Форма</translation> - </message> - <message> - <location filename="../channelwidget.ui" line="20"/> - <source><b>left-front</b></source> - <translation><b>левый-передний</b></translation> - </message> - <message> - <location filename="../channelwidget.ui" line="34"/> - <source><small>50%</small></source> - <translation><small>50%</small></translation> - </message> -</context> -<context> - <name>DeviceWidget</name> - <message> - <location filename="../devicewidget.ui" line="14"/> - <source>Form</source> - <translation>Форма</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="36"/> - <source>Device Title</source> - <translation>Имя устройства</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="56"/> - <source>Mute audio</source> - <translation>Выключить звук</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="69"/> - <source>Lock channels together</source> - <translation>Связать каналы вместе</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="85"/> - <source>Set as fallback</source> - <translation>Установить как резервное</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="103"/> - <source><b>Port:</b></source> - <translation><b>Профиль:</b></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="126"/> - <source>Show advanced options</source> - <translation>Показать расширенные настройки</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="172"/> - <source>PCM</source> - <translation>PCM</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="182"/> - <source>AC3</source> - <translation>AC3</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="189"/> - <source>EAC3</source> - <translation>EAC3</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="196"/> - <source>DTS</source> - <translation>DTS</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="203"/> - <source>MPEG</source> - <translation>MPEG</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="210"/> - <source>AAC</source> - <translation>AAC</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="238"/> - <source><b>Latency offset:</b></source> - <translation><b>Время задержки:</b></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="245"/> - <source> ms</source> - <translation> мс</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="41"/> - <source>Rename device...</source> - <translation>Переименовать устройство...</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="155"/> - <source>pa_context_set_port_latency_offset() failed</source> - <translation>Сбой pa_context_set_port_latency_offset()</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="226"/> - <source>Sorry, but device renaming is not supported.</source> - <translation>Простите, но переименование устройств не поддерживается.</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="227"/> - <source>You need to load module-device-manager in the PulseAudio server in order to rename devices</source> - <translation>Чтобы переименовывать устройства, вам необходимо загрузить module-device-manager в сервер PulseAudio</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="233"/> - <source>Rename device %1 to:</source> - <translation>Переименовать устройство %1 в:</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="240"/> - <source>pa_ext_device_manager_set_device_description() failed</source> - <translation>Сбой pa_ext_device_manager_set_device_description()</translation> - </message> -</context> -<context> - <name>MainWindow</name> - <message> - <location filename="../mainwindow.ui" line="14"/> - <source>Volume Control</source> - <translation>Громкость</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="28"/> - <source>&Playback</source> - <translation>&Проигрывание</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="55"/> - <source><i>No application is currently playing audio.</i></source> - <translation><i>Ни одно приложение сейчас не воспроизводит звук.</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="66"/> - <location filename="../mainwindow.ui" line="131"/> - <location filename="../mainwindow.ui" line="196"/> - <location filename="../mainwindow.ui" line="261"/> - <source>Show:</source> - <translation>Показать:</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="74"/> - <location filename="../mainwindow.ui" line="139"/> - <source>All Streams</source> - <translation>Все потоки</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="79"/> - <location filename="../mainwindow.ui" line="144"/> - <source>Applications</source> - <translation>Приложения</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="84"/> - <location filename="../mainwindow.ui" line="149"/> - <source>Virtual Streams</source> - <translation>Виртуальные потоки</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="93"/> - <source>&Recording</source> - <translation>&Запись</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="120"/> - <source><i>No application is currently recording audio.</i></source> - <translation><i>Ни одно приложение сейчас не записывает звук.</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="158"/> - <source>&Output Devices</source> - <translation>Устройства В&ывода</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="185"/> - <source><i>No output devices available</i></source> - <translation><i>Нет доступных устройств вывода.</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="204"/> - <source>All Output Devices</source> - <translation>Все устройства вывода</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="209"/> - <source>Hardware Output Devices</source> - <translation>Аппаратные устройства вывода</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="214"/> - <source>Virtual Output Devices</source> - <translation>Виртуальные устройства вывода</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="223"/> - <source>&Input Devices</source> - <translation>Устройства &Ввода</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="250"/> - <source><i>No input devices available</i></source> - <translation><i>Нет доступных устройств ввода.</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="269"/> - <source>All Input Devices</source> - <translation>Все устройства ввода</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="274"/> - <source>All Except Monitors</source> - <translation>Все кроме мониторов</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="279"/> - <source>Hardware Input Devices</source> - <translation>Аппаратные устройства ввода</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="284"/> - <source>Virtual Input Devices</source> - <translation>Виртуальные устройства ввода</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="289"/> - <source>Monitors</source> - <translation>Мониторы</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="298"/> - <source>&Configuration</source> - <translation>&Конфигурация</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="325"/> - <source><i>No cards available for configuration</i></source> - <translation><i>Нет доступных для конфигурации карт.</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="336"/> - <source>Show volume meters</source> - <translation>Показывать измерители громкости</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="347"/> - <source>...</source> - <translation>...</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="159"/> - <source> (plugged in)</source> - <translation> (подключено)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="163"/> - <location filename="../mainwindow.cc" line="257"/> - <source> (unavailable)</source> - <translation> (недоступно)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="165"/> - <location filename="../mainwindow.cc" line="254"/> - <source> (unplugged)</source> - <translation> (отключено)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="388"/> - <source>Failed to read data from stream</source> - <translation>Не удается прочесть данные из потока</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="432"/> - <source>Peak detect</source> - <translation>Детектирование пиков</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="433"/> - <source>Failed to create monitoring stream</source> - <translation>Не удается создать поток мониторинга</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="448"/> - <source>Failed to connect monitoring stream</source> - <translation>Не удается присоединить поток мониторинга</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="587"/> - <source>Ignoring sink-input due to it being designated as an event and thus handled by the Event widget</source> - <translation>Входные данные приёмника игнорируются, так как они рассматриваются как событие и будут обработаны виджетом событий</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="759"/> - <source>System Sounds</source> - <translation>Системные звуки</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="1089"/> - <source>Establishing connection to PulseAudio. Please wait...</source> - <translation>Установление соединения с PulseAudio. Подождите...</translation> - </message> -</context> -<context> - <name>QObject</name> - <message> - <location filename="../pavucontrol.cc" line="66"/> - <source>Error</source> - <translation>Ошибка</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="87"/> - <source>Card callback failure</source> - <translation>Сбой обратного вызова карты</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="110"/> - <source>Sink callback failure</source> - <translation>Сбой обратного вызова слива</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="133"/> - <source>Source callback failure</source> - <translation>Сбой обратного вызова источника</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="152"/> - <source>Sink input callback failure</source> - <translation>Сбой обратного вызова входа слива</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="171"/> - <source>Source output callback failure</source> - <translation>Сбой обратного вызова выхода источника</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="211"/> - <source>Client callback failure</source> - <translation>Сбой обратного вызова клиента</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="227"/> - <source>Server info callback failure</source> - <translation>Сбой обратного вызова информации о сервере</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="245"/> - <location filename="../pavucontrol.cc" line="542"/> - <source>Failed to initialize stream_restore extension: %s</source> - <translation>Сбой инициализации расширения stream_restore: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="263"/> - <source>pa_ext_stream_restore_read() failed</source> - <translation>Сбой pa_ext_stream_restore_read()</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="281"/> - <location filename="../pavucontrol.cc" line="556"/> - <source>Failed to initialize device restore extension: %s</source> - <translation>Сбой инициализации расширения восстановления устройства: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="302"/> - <source>pa_ext_device_restore_read_sink_formats() failed</source> - <translation>Сбой pa_ext_device_restore_read_sink_formats()</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="320"/> - <location filename="../pavucontrol.cc" line="569"/> - <source>Failed to initialize device manager extension: %s</source> - <translation>Сбой инициализации расширения диспетчера устройств: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="339"/> - <source>pa_ext_device_manager_read() failed</source> - <translation>Сбой pa_ext_device_manager_read()</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="356"/> - <source>pa_context_get_sink_info_by_index() failed</source> - <translation>Сбой pa_context_get_sink_info_by_index()</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="369"/> - <source>pa_context_get_source_info_by_index() failed</source> - <translation>Сбой pa_context_get_source_info_by_index()</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="382"/> - <location filename="../pavucontrol.cc" line="395"/> - <source>pa_context_get_sink_input_info() failed</source> - <translation>Сбой pa_context_get_sink_input_info()</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="408"/> - <source>pa_context_get_client_info() failed</source> - <translation>Сбой pa_context_get_client_info()</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="418"/> - <location filename="../pavucontrol.cc" line="483"/> - <source>pa_context_get_server_info() failed</source> - <translation>Сбой pa_context_get_server_info()</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="431"/> - <source>pa_context_get_card_info_by_index() failed</source> - <translation>Сбой pa_context_get_card_info_by_index()</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="474"/> - <source>pa_context_subscribe() failed</source> - <translation>Сбой pa_context_subscribe()</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="490"/> - <source>pa_context_client_info_list() failed</source> - <translation>Сбой pa_context_client_info_list()</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="497"/> - <source>pa_context_get_card_info_list() failed</source> - <translation>Сбой pa_context_get_card_info_list()</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="504"/> - <source>pa_context_get_sink_info_list() failed</source> - <translation>Сбой pa_context_get_sink_info_list()</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="511"/> - <source>pa_context_get_source_info_list() failed</source> - <translation>Сбой pa_context_get_source_info_list()</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="518"/> - <source>pa_context_get_sink_input_info_list() failed</source> - <translation>Сбой pa_context_get_sink_input_info_list()</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="525"/> - <source>pa_context_get_source_output_info_list() failed</source> - <translation>Сбой pa_context_get_source_output_info_list()</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="584"/> - <location filename="../pavucontrol.cc" line="635"/> - <source>Connection failed, attempting reconnect</source> - <translation>Ошибка подключения, пытаюсь переподключит</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="607"/> - <location filename="../pavucontrol.cc" line="664"/> - <source>PulseAudio Volume Control</source> - <translation>Регулятор громкости PulseAudio</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="622"/> - <source>Connection to PulseAudio failed. Automatic retry in 5s - -In this case this is likely because PULSE_SERVER in the Environment/X11 Root Window Properties -or default-server in client.conf is misconfigured. -This situation can also arrise when PulseAudio crashed and left stale details in the X11 Root Window. -If this is the case, then PulseAudio should autospawn again, or if this is not configured you should -run start-pulseaudio-x11 manually.</source> - <translation>Не удалось подключиться к PulseAudio. Повторная попытка через 5 с - -В данном случае это вероятно вызвано неверным значением PULSE_SERVER в свойствах -корневого окна, в переменных окружения или в ключе default-server в client.conf. -Эта ситуация также может возникнуть, если PulseAudio аварийно завершилась и свойства -корневого окна X11 содержат устаревшую информацию. -В этом случае PulseAudio должна запуститься снова; если же система так не настроена, -вы должны запустить start-pulseaudio-x11 вручную.</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="672"/> - <source>Select a specific tab on load.</source> - <translation>Выбрать вкладку на загрузку.</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="675"/> - <source>Retry forever if pa quits (every 5 seconds).</source> - <translation>Повторять вечно, если pa завершит работу (каждые 5 секунд).</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="678"/> - <source>Maximize the window.</source> - <translation>Распахнуть окно.</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="703"/> - <source>Fatal Error: Unable to connect to PulseAudio</source> - <translation>Критическая ошибка: Невозможно подключиться к PulseAudio</translation> - </message> -</context> -<context> - <name>RoleWidget</name> - <message> - <location filename="../rolewidget.cc" line="59"/> - <source>pa_ext_stream_restore_write() failed</source> - <translation>Сбой pa_ext_stream_restore_write()</translation> - </message> -</context> -<context> - <name>SinkInputWidget</name> - <message> - <location filename="../sinkinputwidget.cc" line="36"/> - <source>on</source> - <translation>вкл.</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="39"/> - <source>Terminate Playback</source> - <translation>Прервать воспроизведение</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="53"/> - <source>Unknown output</source> - <translation>Неизвестный вывод</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="64"/> - <source>pa_context_set_sink_input_volume() failed</source> - <translation>Сбой pa_context_set_sink_input_volume()</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="79"/> - <source>pa_context_set_sink_input_mute() failed</source> - <translation>Сбой pa_context_set_sink_input_mute()</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="89"/> - <source>pa_context_kill_sink_input() failed</source> - <translation>Сбой pa_context_kill_sink_input()</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="114"/> - <source>pa_context_move_sink_input_by_index() failed</source> - <translation>Сбой pa_context_move_sink_input_by_index()</translation> - </message> -</context> -<context> - <name>SinkWidget</name> - <message> - <location filename="../sinkwidget.cc" line="81"/> - <source>pa_context_set_sink_volume_by_index() failed</source> - <translation>Сбой pa_context_set_sink_volume_by_index()</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="96"/> - <source>pa_context_set_sink_mute_by_index() failed</source> - <translation>Сбой pa_context_set_sink_mute_by_index()</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="110"/> - <source>pa_context_set_default_sink() failed</source> - <translation>Сбой pa_context_set_default_sink()</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="126"/> - <source>pa_context_set_sink_port_by_index() failed</source> - <translation>Сбой pa_context_set_sink_mute_by_index()</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="166"/> - <source>pa_ext_device_restore_save_sink_formats() failed</source> - <translation>Сбой pa_ext_device_restore_save_sink_formats()</translation> - </message> -</context> -<context> - <name>SourceOutputWidget</name> - <message> - <location filename="../sourceoutputwidget.cc" line="35"/> - <source>from</source> - <translation>из</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="39"/> - <source>Terminate Recording</source> - <translation>Прервать запись</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="60"/> - <source>Unknown input</source> - <translation>Неизвестный вывод</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="72"/> - <source>pa_context_set_source_output_volume() failed</source> - <translation>Сбой pa_context_set_source_output_volume()</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="87"/> - <source>pa_context_set_source_output_mute() failed</source> - <translation>Сбой pa_context_set_source_output_mute()</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="98"/> - <source>pa_context_kill_source_output() failed</source> - <translation>Сбой pa_context_kill_source_output()</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="125"/> - <source>pa_context_move_source_output_by_index() failed</source> - <translation>Сбой pa_context_move_source_output_by_index()</translation> - </message> -</context> -<context> - <name>SourceWidget</name> - <message> - <location filename="../sourcewidget.cc" line="35"/> - <source>pa_context_set_source_volume_by_index() failed</source> - <translation>Сбой pa_context_set_source_volume_by_index()</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="50"/> - <source>pa_context_set_source_mute_by_index() failed</source> - <translation>Сбой pa_context_set_source_mute_by_index()</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="64"/> - <source>pa_context_set_default_source() failed</source> - <translation>Сбой pa_context_set_default_source()</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="80"/> - <source>pa_context_set_source_port_by_index() failed</source> - <translation>Сбой pa_context_set_source_mute_by_index()</translation> - </message> -</context> -<context> - <name>StreamWidget</name> - <message> - <location filename="../streamwidget.ui" line="14"/> - <source>Form</source> - <translation>Форма</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="32"/> - <source>Device Title</source> - <translation>Название устройства</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="52"/> - <source>direction</source> - <translation>направление</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="59"/> - <source>device</source> - <translation>устройство</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="66"/> - <source>Mute audio</source> - <translation>Выключить звук</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="79"/> - <source>Lock channels together</source> - <translation>Связать каналы вместе</translation> - </message> - <message> - <location filename="../streamwidget.cc" line="34"/> - <source>Terminate</source> - <translation>Прервать поток</translation> - </message> -</context> -</TS> diff --git a/src/translations/pavucontrol-qt_si.desktop.yaml b/src/translations/pavucontrol-qt_si.desktop.yaml deleted file mode 100644 index 775df48..0000000 --- a/src/translations/pavucontrol-qt_si.desktop.yaml +++ /dev/null @@ -1,3 +0,0 @@ -Desktop Entry/Name: "" -Desktop Entry/GenericName: "" -Desktop Entry/Comment: "" diff --git a/src/translations/pavucontrol-qt_si.ts b/src/translations/pavucontrol-qt_si.ts deleted file mode 100644 index 6410729..0000000 --- a/src/translations/pavucontrol-qt_si.ts +++ /dev/null @@ -1,733 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE TS> -<TS version="2.1" language="si"> -<context> - <name>CardWidget</name> - <message> - <location filename="../cardwidget.ui" line="14"/> - <source>Form</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../cardwidget.ui" line="29"/> - <source>Card Name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../cardwidget.ui" line="47"/> - <source>Profile:</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../cardwidget.cc" line="67"/> - <source>pa_context_set_card_profile_by_index() failed</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>Channel</name> - <message> - <location filename="../channel.cc" line="89"/> - <source>%1% (%2dB)</source> - <comment>volume slider label [X% (YdB)]</comment> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../channel.cc" line="93"/> - <source>%1%</source> - <comment>volume slider label [X%]</comment> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Silence</small></source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Min</small></source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../channel.cc" line="162"/> - <source><small>100% (0dB)</small></source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../channel.cc" line="165"/> - <source><small><i>Base</i></small></source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>ChannelWidget</name> - <message> - <location filename="../channelwidget.ui" line="14"/> - <source>Form</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../channelwidget.ui" line="20"/> - <source><b>left-front</b></source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../channelwidget.ui" line="34"/> - <source><small>50%</small></source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>DeviceWidget</name> - <message> - <location filename="../devicewidget.ui" line="14"/> - <source>Form</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="36"/> - <source>Device Title</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="56"/> - <source>Mute audio</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="69"/> - <source>Lock channels together</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="85"/> - <source>Set as fallback</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="103"/> - <source><b>Port:</b></source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="126"/> - <source>Show advanced options</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="172"/> - <source>PCM</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="182"/> - <source>AC3</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="189"/> - <source>EAC3</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="196"/> - <source>DTS</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="203"/> - <source>MPEG</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="210"/> - <source>AAC</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="238"/> - <source><b>Latency offset:</b></source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="245"/> - <source> ms</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="41"/> - <source>Rename device...</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="155"/> - <source>pa_context_set_port_latency_offset() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="226"/> - <source>Sorry, but device renaming is not supported.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="227"/> - <source>You need to load module-device-manager in the PulseAudio server in order to rename devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="233"/> - <source>Rename device %1 to:</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="240"/> - <source>pa_ext_device_manager_set_device_description() failed</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>MainWindow</name> - <message> - <location filename="../mainwindow.ui" line="14"/> - <source>Volume Control</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="55"/> - <source><i>No application is currently playing audio.</i></source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="66"/> - <location filename="../mainwindow.ui" line="131"/> - <location filename="../mainwindow.ui" line="196"/> - <location filename="../mainwindow.ui" line="261"/> - <source>Show:</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="74"/> - <location filename="../mainwindow.ui" line="139"/> - <source>All Streams</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="79"/> - <location filename="../mainwindow.ui" line="144"/> - <source>Applications</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="84"/> - <location filename="../mainwindow.ui" line="149"/> - <source>Virtual Streams</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="120"/> - <source><i>No application is currently recording audio.</i></source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="185"/> - <source><i>No output devices available</i></source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="204"/> - <source>All Output Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="209"/> - <source>Hardware Output Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="214"/> - <source>Virtual Output Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="28"/> - <source>&Playback</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="93"/> - <source>&Recording</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="158"/> - <source>&Output Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="223"/> - <source>&Input Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="250"/> - <source><i>No input devices available</i></source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="269"/> - <source>All Input Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="274"/> - <source>All Except Monitors</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="279"/> - <source>Hardware Input Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="284"/> - <source>Virtual Input Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="289"/> - <source>Monitors</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="298"/> - <source>&Configuration</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="325"/> - <source><i>No cards available for configuration</i></source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="336"/> - <source>Show volume meters</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="347"/> - <source>...</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="159"/> - <source> (plugged in)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="163"/> - <location filename="../mainwindow.cc" line="257"/> - <source> (unavailable)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="165"/> - <location filename="../mainwindow.cc" line="254"/> - <source> (unplugged)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="388"/> - <source>Failed to read data from stream</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="432"/> - <source>Peak detect</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="433"/> - <source>Failed to create monitoring stream</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="448"/> - <source>Failed to connect monitoring stream</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="587"/> - <source>Ignoring sink-input due to it being designated as an event and thus handled by the Event widget</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="759"/> - <source>System Sounds</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="1089"/> - <source>Establishing connection to PulseAudio. Please wait...</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>QObject</name> - <message> - <location filename="../pavucontrol.cc" line="66"/> - <source>Error</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="87"/> - <source>Card callback failure</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="110"/> - <source>Sink callback failure</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="133"/> - <source>Source callback failure</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="152"/> - <source>Sink input callback failure</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="171"/> - <source>Source output callback failure</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="211"/> - <source>Client callback failure</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="227"/> - <source>Server info callback failure</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="245"/> - <location filename="../pavucontrol.cc" line="542"/> - <source>Failed to initialize stream_restore extension: %s</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="263"/> - <source>pa_ext_stream_restore_read() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="281"/> - <location filename="../pavucontrol.cc" line="556"/> - <source>Failed to initialize device restore extension: %s</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="302"/> - <source>pa_ext_device_restore_read_sink_formats() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="320"/> - <location filename="../pavucontrol.cc" line="569"/> - <source>Failed to initialize device manager extension: %s</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="339"/> - <source>pa_ext_device_manager_read() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="356"/> - <source>pa_context_get_sink_info_by_index() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="369"/> - <source>pa_context_get_source_info_by_index() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="382"/> - <location filename="../pavucontrol.cc" line="395"/> - <source>pa_context_get_sink_input_info() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="408"/> - <source>pa_context_get_client_info() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="418"/> - <location filename="../pavucontrol.cc" line="483"/> - <source>pa_context_get_server_info() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="431"/> - <source>pa_context_get_card_info_by_index() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="474"/> - <source>pa_context_subscribe() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="490"/> - <source>pa_context_client_info_list() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="497"/> - <source>pa_context_get_card_info_list() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="504"/> - <source>pa_context_get_sink_info_list() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="511"/> - <source>pa_context_get_source_info_list() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="518"/> - <source>pa_context_get_sink_input_info_list() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="525"/> - <source>pa_context_get_source_output_info_list() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="584"/> - <location filename="../pavucontrol.cc" line="635"/> - <source>Connection failed, attempting reconnect</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="607"/> - <location filename="../pavucontrol.cc" line="664"/> - <source>PulseAudio Volume Control</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="622"/> - <source>Connection to PulseAudio failed. Automatic retry in 5s - -In this case this is likely because PULSE_SERVER in the Environment/X11 Root Window Properties -or default-server in client.conf is misconfigured. -This situation can also arrise when PulseAudio crashed and left stale details in the X11 Root Window. -If this is the case, then PulseAudio should autospawn again, or if this is not configured you should -run start-pulseaudio-x11 manually.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="672"/> - <source>Select a specific tab on load.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="675"/> - <source>Retry forever if pa quits (every 5 seconds).</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="678"/> - <source>Maximize the window.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="703"/> - <source>Fatal Error: Unable to connect to PulseAudio</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>RoleWidget</name> - <message> - <location filename="../rolewidget.cc" line="59"/> - <source>pa_ext_stream_restore_write() failed</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>SinkInputWidget</name> - <message> - <location filename="../sinkinputwidget.cc" line="36"/> - <source>on</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="39"/> - <source>Terminate Playback</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="53"/> - <source>Unknown output</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="64"/> - <source>pa_context_set_sink_input_volume() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="79"/> - <source>pa_context_set_sink_input_mute() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="89"/> - <source>pa_context_kill_sink_input() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="114"/> - <source>pa_context_move_sink_input_by_index() failed</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>SinkWidget</name> - <message> - <location filename="../sinkwidget.cc" line="81"/> - <source>pa_context_set_sink_volume_by_index() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="96"/> - <source>pa_context_set_sink_mute_by_index() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="110"/> - <source>pa_context_set_default_sink() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="126"/> - <source>pa_context_set_sink_port_by_index() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="166"/> - <source>pa_ext_device_restore_save_sink_formats() failed</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>SourceOutputWidget</name> - <message> - <location filename="../sourceoutputwidget.cc" line="35"/> - <source>from</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="39"/> - <source>Terminate Recording</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="60"/> - <source>Unknown input</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="72"/> - <source>pa_context_set_source_output_volume() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="87"/> - <source>pa_context_set_source_output_mute() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="98"/> - <source>pa_context_kill_source_output() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="125"/> - <source>pa_context_move_source_output_by_index() failed</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>SourceWidget</name> - <message> - <location filename="../sourcewidget.cc" line="35"/> - <source>pa_context_set_source_volume_by_index() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="50"/> - <source>pa_context_set_source_mute_by_index() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="64"/> - <source>pa_context_set_default_source() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="80"/> - <source>pa_context_set_source_port_by_index() failed</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>StreamWidget</name> - <message> - <location filename="../streamwidget.ui" line="14"/> - <source>Form</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.ui" line="32"/> - <source>Device Title</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.ui" line="52"/> - <source>direction</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.ui" line="59"/> - <source>device</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.ui" line="66"/> - <source>Mute audio</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.ui" line="79"/> - <source>Lock channels together</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.cc" line="34"/> - <source>Terminate</source> - <translation type="unfinished"></translation> - </message> -</context> -</TS> diff --git a/src/translations/pavucontrol-qt_sk.desktop.yaml b/src/translations/pavucontrol-qt_sk.desktop.yaml deleted file mode 100644 index 1a6ed87..0000000 --- a/src/translations/pavucontrol-qt_sk.desktop.yaml +++ /dev/null @@ -1,3 +0,0 @@ -Desktop Entry/Name: "PulseAudio na ovládanie hlasitosti" -Desktop Entry/GenericName: "Ovládanie hlasitosti" -Desktop Entry/Comment: "Upraviť hlasitosť" diff --git a/src/translations/pavucontrol-qt_sk.ts b/src/translations/pavucontrol-qt_sk.ts deleted file mode 100644 index 6a3ce5a..0000000 --- a/src/translations/pavucontrol-qt_sk.ts +++ /dev/null @@ -1,736 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE TS> -<TS version="2.1" language="sk"> -<context> - <name>CardWidget</name> - <message> - <location filename="../cardwidget.ui" line="14"/> - <source>Form</source> - <translation>Formulár</translation> - </message> - <message> - <location filename="../cardwidget.ui" line="29"/> - <source>Card Name</source> - <translation>Názov karty</translation> - </message> - <message> - <location filename="../cardwidget.ui" line="47"/> - <source>Profile:</source> - <translation>Profil:</translation> - </message> - <message> - <location filename="../cardwidget.cc" line="67"/> - <source>pa_context_set_card_profile_by_index() failed</source> - <translation>pa_context_set_card_profile_by_index() zlyhal</translation> - </message> -</context> -<context> - <name>Channel</name> - <message> - <location filename="../channel.cc" line="89"/> - <source>%1% (%2dB)</source> - <comment>volume slider label [X% (YdB)]</comment> - <translation>%1% (%2dB)</translation> - </message> - <message> - <location filename="../channel.cc" line="93"/> - <source>%1%</source> - <comment>volume slider label [X%]</comment> - <translation>%1%</translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Silence</small></source> - <translation><small>Ticho</small></translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Min</small></source> - <translation><small>Min.</small></translation> - </message> - <message> - <location filename="../channel.cc" line="162"/> - <source><small>100% (0dB)</small></source> - <translation><small>100% (0 dB)</small></translation> - </message> - <message> - <location filename="../channel.cc" line="165"/> - <source><small><i>Base</i></small></source> - <translation><small><i>Základ</i></small></translation> - </message> -</context> -<context> - <name>ChannelWidget</name> - <message> - <location filename="../channelwidget.ui" line="14"/> - <source>Form</source> - <translation>Formulár</translation> - </message> - <message> - <location filename="../channelwidget.ui" line="20"/> - <source><b>left-front</b></source> - <translation><b>ľavý-predný</b></translation> - </message> - <message> - <location filename="../channelwidget.ui" line="34"/> - <source><small>50%</small></source> - <translation><small>50%</small></translation> - </message> -</context> -<context> - <name>DeviceWidget</name> - <message> - <location filename="../devicewidget.ui" line="14"/> - <source>Form</source> - <translation>Formulár</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="36"/> - <source>Device Title</source> - <translation>Názov zariadenia</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="56"/> - <source>Mute audio</source> - <translation>Stlmiť zvuk</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="69"/> - <source>Lock channels together</source> - <translation>Ovládať kanály spoločne</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="85"/> - <source>Set as fallback</source> - <translation>Nastaviť ako zálohu</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="103"/> - <source><b>Port:</b></source> - <translation><b>Port:</b></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="126"/> - <source>Show advanced options</source> - <translation>Zobraziť pokročilé možnosti</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="172"/> - <source>PCM</source> - <translation>PCM</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="182"/> - <source>AC3</source> - <translation>AC3</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="189"/> - <source>EAC3</source> - <translation>EAC3</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="196"/> - <source>DTS</source> - <translation>DTS</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="203"/> - <source>MPEG</source> - <translation>MPEG</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="210"/> - <source>AAC</source> - <translation>AAC</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="238"/> - <source><b>Latency offset:</b></source> - <translation><b>Posun latencie:</b></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="245"/> - <source> ms</source> - <translation> ms</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="41"/> - <source>Rename device...</source> - <translation>Premenovať zariadenie...</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="155"/> - <source>pa_context_set_port_latency_offset() failed</source> - <translation>pa_context_set_port_latency_offset() zlyhalo</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="226"/> - <source>Sorry, but device renaming is not supported.</source> - <translation>Ľutujeme, ale premenovanie zariadenia nie je podporované.</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="227"/> - <source>You need to load module-device-manager in the PulseAudio server in order to rename devices</source> - <translation>K premenovaniu zariadenia je potrebné načítať modul PulseAudio</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="233"/> - <source>Rename device %1 to:</source> - <translation>Premenovať zariadenie:</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="240"/> - <source>pa_ext_device_manager_set_device_description() failed</source> - <translation>pa_ext_device_manager_set_device_description() zlyhalo</translation> - </message> -</context> -<context> - <name>MainWindow</name> - <message> - <location filename="../mainwindow.ui" line="14"/> - <source>Volume Control</source> - <translation>Ovládanie hlasitosti</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="28"/> - <source>&Playback</source> - <translation>&Prehrávanie</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="55"/> - <source><i>No application is currently playing audio.</i></source> - <translation><i>Žiadna aplikácia momentálne neprehráva zvuk.</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="66"/> - <location filename="../mainwindow.ui" line="131"/> - <location filename="../mainwindow.ui" line="196"/> - <location filename="../mainwindow.ui" line="261"/> - <source>Show:</source> - <translation>Zobraziť:</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="74"/> - <location filename="../mainwindow.ui" line="139"/> - <source>All Streams</source> - <translation>Všetky toky</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="79"/> - <location filename="../mainwindow.ui" line="144"/> - <source>Applications</source> - <translation>Aplikácie</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="84"/> - <location filename="../mainwindow.ui" line="149"/> - <source>Virtual Streams</source> - <translation>Virtuálne toky</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="93"/> - <source>&Recording</source> - <translation>&Nahrávanie</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="120"/> - <source><i>No application is currently recording audio.</i></source> - <translation><i>Žiadna aplikácia momentálne nenahráva zvuk.</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="158"/> - <source>&Output Devices</source> - <translation>&Výstupné zariadenia</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="185"/> - <source><i>No output devices available</i></source> - <translation><i>Nie sú dostupné žiadne výstupné zariadenia</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="204"/> - <source>All Output Devices</source> - <translation>Všetky výstupné zariadenia</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="209"/> - <source>Hardware Output Devices</source> - <translation>Hardvérové výstupné zariadenia</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="214"/> - <source>Virtual Output Devices</source> - <translation>Virtuálne výstupné zariadenia</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="223"/> - <source>&Input Devices</source> - <translation>Vstupné zar&iadenia</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="250"/> - <source><i>No input devices available</i></source> - <translation><i>Nie sú dostupné žiadne vstupné zariadenia</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="269"/> - <source>All Input Devices</source> - <translation>Všetky vstupné zariadenia</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="274"/> - <source>All Except Monitors</source> - <translation>Všetky okrem monitora</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="279"/> - <source>Hardware Input Devices</source> - <translation>Hardvérové vstupné zariadenia</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="284"/> - <source>Virtual Input Devices</source> - <translation>Virtuálne vstupné zariadenia</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="289"/> - <source>Monitors</source> - <translation>Monitory</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="298"/> - <source>&Configuration</source> - <translation>&Nastavenie</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="325"/> - <source><i>No cards available for configuration</i></source> - <translation><i>Žiadne karty nie sú dostupné na konfiguráciu</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="336"/> - <source>Show volume meters</source> - <translation>Zobraziť úroveň zvuku</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="347"/> - <source>...</source> - <translation>...</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="159"/> - <source> (plugged in)</source> - <translation> .(pripojené)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="163"/> - <location filename="../mainwindow.cc" line="257"/> - <source> (unavailable)</source> - <translation> .(nedostupný)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="165"/> - <location filename="../mainwindow.cc" line="254"/> - <source> (unplugged)</source> - <translation> .(nepripojený)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="388"/> - <source>Failed to read data from stream</source> - <translation>Nepodarilo sa prečítať dáta z prúdu</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="432"/> - <source>Peak detect</source> - <translation>Detekcia vrcholov</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="433"/> - <source>Failed to create monitoring stream</source> - <translation>Nepodarilo sa vytvoriť monitorovací prúd</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="448"/> - <source>Failed to connect monitoring stream</source> - <translation>Nepodarilo sa pripojiť monitorovací prúd</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="587"/> - <source>Ignoring sink-input due to it being designated as an event and thus handled by the Event widget</source> - <translation>Ignorovanie zníženia vstupu, pretože je ovládaný widgetom</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="759"/> - <source>System Sounds</source> - <translation>Systémové zvuky</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="1089"/> - <source>Establishing connection to PulseAudio. Please wait...</source> - <translation>Vytváram pripojenie k PulseAudio. Prosím čakajte...</translation> - </message> -</context> -<context> - <name>QObject</name> - <message> - <location filename="../pavucontrol.cc" line="66"/> - <source>Error</source> - <translation>Chyba</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="87"/> - <source>Card callback failure</source> - <translation>Spätné volanie karty zlyhalo</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="110"/> - <source>Sink callback failure</source> - <translation>Cieľové spätné volanie zlyhalo</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="133"/> - <source>Source callback failure</source> - <translation>Zdrojové spätné volanie zlyhalo</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="152"/> - <source>Sink input callback failure</source> - <translation>Cieľové vstupné spätné volanie zlyhalo</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="171"/> - <source>Source output callback failure</source> - <translation>Zdrojové výstupné spätné volanie zlyhalo</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="211"/> - <source>Client callback failure</source> - <translation>Klientské spätné volanie zlyhalo</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="227"/> - <source>Server info callback failure</source> - <translation>Server info spätné volanie zlyhalo</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="245"/> - <location filename="../pavucontrol.cc" line="542"/> - <source>Failed to initialize stream_restore extension: %s</source> - <translation>Nepodarilo sa inicializovať stream_restore rozšírenie: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="263"/> - <source>pa_ext_stream_restore_read() failed</source> - <translation>pa_ext_stream_restore_read() zlyhal</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="281"/> - <location filename="../pavucontrol.cc" line="556"/> - <source>Failed to initialize device restore extension: %s</source> - <translation>Nepodarilo sa inicializovať rozšírenie pre obnovu zariadenia</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="302"/> - <source>pa_ext_device_restore_read_sink_formats() failed</source> - <translation>pa_ext_device_restore_read_sink_formats() zlyhalo</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="320"/> - <location filename="../pavucontrol.cc" line="569"/> - <source>Failed to initialize device manager extension: %s</source> - <translation>Nepodarilo sa inicializovať rozšírenie správcu zariadenia:% s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="339"/> - <source>pa_ext_device_manager_read() failed</source> - <translation>pa_ext_device_manager_read() zlyhalo</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="356"/> - <source>pa_context_get_sink_info_by_index() failed</source> - <translation>pa_context_get_sink_info_by_index() zlyhal</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="369"/> - <source>pa_context_get_source_info_by_index() failed</source> - <translation>pa_context_get_source_info_by_index() zlyhal</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="382"/> - <location filename="../pavucontrol.cc" line="395"/> - <source>pa_context_get_sink_input_info() failed</source> - <translation>pa_context_get_sink_input_info() zlyhal</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="408"/> - <source>pa_context_get_client_info() failed</source> - <translation>pa_context_get_client_info() zlyhal</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="418"/> - <location filename="../pavucontrol.cc" line="483"/> - <source>pa_context_get_server_info() failed</source> - <translation>pa_context_get_server_info() zlyhal</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="431"/> - <source>pa_context_get_card_info_by_index() failed</source> - <translation>pa_context_get_card_info_by_index() zlyhal</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="474"/> - <source>pa_context_subscribe() failed</source> - <translation>pa_context_subscribe() zlyhal</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="490"/> - <source>pa_context_client_info_list() failed</source> - <translation>pa_context_client_info_list() zlyhal</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="497"/> - <source>pa_context_get_card_info_list() failed</source> - <translation>pa_context_get_card_info_list() zlyhal</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="504"/> - <source>pa_context_get_sink_info_list() failed</source> - <translation>pa_context_get_sink_info_list() zlyhal</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="511"/> - <source>pa_context_get_source_info_list() failed</source> - <translation>pa_context_get_source_info_list() zlyhal</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="518"/> - <source>pa_context_get_sink_input_info_list() failed</source> - <translation>pa_context_get_sink_input_info_list() zlyhal</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="525"/> - <source>pa_context_get_source_output_info_list() failed</source> - <translation>pa_context_get_source_output_info_list() zlyhal</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="584"/> - <location filename="../pavucontrol.cc" line="635"/> - <source>Connection failed, attempting reconnect</source> - <translation>Pripojenie zlyhalo, pokus o znovupripojenie</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="607"/> - <location filename="../pavucontrol.cc" line="664"/> - <source>PulseAudio Volume Control</source> - <translation>Ovládanie hlasitosti PulseAudio</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="622"/> - <source>Connection to PulseAudio failed. Automatic retry in 5s - -In this case this is likely because PULSE_SERVER in the Environment/X11 Root Window Properties -or default-server in client.conf is misconfigured. -This situation can also arrise when PulseAudio crashed and left stale details in the X11 Root Window. -If this is the case, then PulseAudio should autospawn again, or if this is not configured you should -run start-pulseaudio-x11 manually.</source> - <translation>Pripojenie k PulseAudio zlyhalo. Pokus o znovupripojenie o 5 s - -Dôvodom môže byť, že premenná prostredia (alebo vlastnosť koreňového okna X11) PULSE_SERVER je nesprávne nastavená. -Táto situácia môže nastať, ak proces PulseAudio havaroval a nechal neplatné údaje vo vlastnostiach koreňového okna X11. V takom prípade by malo PulseAudio opäť automaticky naštartovať. Ak sa nespúšťa automaticky, je možné spustiť start-pulseaudio-x11 ručne.</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="672"/> - <source>Select a specific tab on load.</source> - <translation>Vyberte kartu, ktorú chcete načítať.</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="675"/> - <source>Retry forever if pa quits (every 5 seconds).</source> - <translation>Opakovať vždy keď pa ukončí (každých 5 sekúnd).</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="678"/> - <source>Maximize the window.</source> - <translation>Maximalizovať okno.</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="703"/> - <source>Fatal Error: Unable to connect to PulseAudio</source> - <translation>Chyba: Nepodarilo sa pripojiť k PulseAudio</translation> - </message> -</context> -<context> - <name>RoleWidget</name> - <message> - <location filename="../rolewidget.cc" line="59"/> - <source>pa_ext_stream_restore_write() failed</source> - <translation>pa_ext_stream_restore_write() zlyhal</translation> - </message> -</context> -<context> - <name>SinkInputWidget</name> - <message> - <location filename="../sinkinputwidget.cc" line="36"/> - <source>on</source> - <translation>na</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="39"/> - <source>Terminate Playback</source> - <translation>Ukončiť prehrávanie</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="53"/> - <source>Unknown output</source> - <translation>Neznámy výstup</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="64"/> - <source>pa_context_set_sink_input_volume() failed</source> - <translation>pa_context_set_sink_input_volume() zlyhal</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="79"/> - <source>pa_context_set_sink_input_mute() failed</source> - <translation>pa_context_set_sink_input_mute() zlyhal</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="89"/> - <source>pa_context_kill_sink_input() failed</source> - <translation>pa_context_kill_sink_input() zlyhal</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="114"/> - <source>pa_context_move_sink_input_by_index() failed</source> - <translation>pa_context_move_sink_input_by_index() zlyhal</translation> - </message> -</context> -<context> - <name>SinkWidget</name> - <message> - <location filename="../sinkwidget.cc" line="81"/> - <source>pa_context_set_sink_volume_by_index() failed</source> - <translation>pa_context_set_sink_volume_by_index() zlyhal</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="96"/> - <source>pa_context_set_sink_mute_by_index() failed</source> - <translation>pa_context_set_sink_mute_by_index() zlyhal</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="110"/> - <source>pa_context_set_default_sink() failed</source> - <translation>pa_context_set_default_sink() zlyhal</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="126"/> - <source>pa_context_set_sink_port_by_index() failed</source> - <translation>pa_context_set_sink_port_by_index() zlyhal</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="166"/> - <source>pa_ext_device_restore_save_sink_formats() failed</source> - <translation>pa_ext_device_restore_save_sink_formats() zlyhal</translation> - </message> -</context> -<context> - <name>SourceOutputWidget</name> - <message> - <location filename="../sourceoutputwidget.cc" line="35"/> - <source>from</source> - <translation>z</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="39"/> - <source>Terminate Recording</source> - <translation>Ukončiť nahrávanie</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="60"/> - <source>Unknown input</source> - <translation>Neznámy vstup</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="72"/> - <source>pa_context_set_source_output_volume() failed</source> - <translation>pa_context_set_source_output_volume() zlyhalo</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="87"/> - <source>pa_context_set_source_output_mute() failed</source> - <translation>pa_context_set_source_output_mute() zlyhalo</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="98"/> - <source>pa_context_kill_source_output() failed</source> - <translation>pa_context_kill_source_output() zlyhal</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="125"/> - <source>pa_context_move_source_output_by_index() failed</source> - <translation>pa_context_move_source_output_by_index() zlyhal</translation> - </message> -</context> -<context> - <name>SourceWidget</name> - <message> - <location filename="../sourcewidget.cc" line="35"/> - <source>pa_context_set_source_volume_by_index() failed</source> - <translation>pa_context_set_source_volume_by_index() zlyhal</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="50"/> - <source>pa_context_set_source_mute_by_index() failed</source> - <translation>pa_context_set_source_mute_by_index() zlyhal</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="64"/> - <source>pa_context_set_default_source() failed</source> - <translation>pa_context_set_default_source() zlyhal</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="80"/> - <source>pa_context_set_source_port_by_index() failed</source> - <translation>pa_context_set_source_port_by_index() zlyhal</translation> - </message> -</context> -<context> - <name>StreamWidget</name> - <message> - <location filename="../streamwidget.ui" line="14"/> - <source>Form</source> - <translation>Formulár</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="32"/> - <source>Device Title</source> - <translation>Názov zariadenia</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="52"/> - <source>direction</source> - <translation>smer</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="59"/> - <source>device</source> - <translation>zariadenie</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="66"/> - <source>Mute audio</source> - <translation>Vypnúť zvuk</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="79"/> - <source>Lock channels together</source> - <translation>Ovládať kanály spoločne</translation> - </message> - <message> - <location filename="../streamwidget.cc" line="34"/> - <source>Terminate</source> - <translation>Ukončiť prehrávanie</translation> - </message> -</context> -</TS> diff --git a/src/translations/pavucontrol-qt_sr.ts b/src/translations/pavucontrol-qt_sr.ts deleted file mode 100644 index 1c5c10f..0000000 --- a/src/translations/pavucontrol-qt_sr.ts +++ /dev/null @@ -1,733 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE TS> -<TS version="2.1" language="sr"> -<context> - <name>CardWidget</name> - <message> - <location filename="../cardwidget.ui" line="14"/> - <source>Form</source> - <translation>Образац</translation> - </message> - <message> - <location filename="../cardwidget.ui" line="29"/> - <source>Card Name</source> - <translation>Назив картице</translation> - </message> - <message> - <location filename="../cardwidget.ui" line="47"/> - <source>Profile:</source> - <translation>Профил:</translation> - </message> - <message> - <location filename="../cardwidget.cc" line="67"/> - <source>pa_context_set_card_profile_by_index() failed</source> - <translation>Неуспела функција pa_context_set_card_profile_by_index()</translation> - </message> -</context> -<context> - <name>Channel</name> - <message> - <location filename="../channel.cc" line="89"/> - <source>%1% (%2dB)</source> - <comment>volume slider label [X% (YdB)]</comment> - <translation>%1% (%2dB)</translation> - </message> - <message> - <location filename="../channel.cc" line="93"/> - <source>%1%</source> - <comment>volume slider label [X%]</comment> - <translation>%1%</translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Silence</small></source> - <translation type="unfinished"><small>Тишина</small></translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Min</small></source> - <translation type="unfinished"><small>Мин</small></translation> - </message> - <message> - <location filename="../channel.cc" line="162"/> - <source><small>100% (0dB)</small></source> - <translation><small>100% (0dB)</small></translation> - </message> - <message> - <location filename="../channel.cc" line="165"/> - <source><small><i>Base</i></small></source> - <translation type="unfinished"><small><i>Основа</i></small></translation> - </message> -</context> -<context> - <name>ChannelWidget</name> - <message> - <location filename="../channelwidget.ui" line="14"/> - <source>Form</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../channelwidget.ui" line="20"/> - <source><b>left-front</b></source> - <translation><b>леви-предњи</b></translation> - </message> - <message> - <location filename="../channelwidget.ui" line="34"/> - <source><small>50%</small></source> - <translation><small>50%</small></translation> - </message> -</context> -<context> - <name>DeviceWidget</name> - <message> - <location filename="../devicewidget.ui" line="14"/> - <source>Form</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="36"/> - <source>Device Title</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="56"/> - <source>Mute audio</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="69"/> - <source>Lock channels together</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="85"/> - <source>Set as fallback</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="103"/> - <source><b>Port:</b></source> - <translation><b>Порт:</b></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="126"/> - <source>Show advanced options</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="172"/> - <source>PCM</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="182"/> - <source>AC3</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="189"/> - <source>EAC3</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="196"/> - <source>DTS</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="203"/> - <source>MPEG</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="210"/> - <source>AAC</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="238"/> - <source><b>Latency offset:</b></source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="245"/> - <source> ms</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="41"/> - <source>Rename device...</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="155"/> - <source>pa_context_set_port_latency_offset() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="226"/> - <source>Sorry, but device renaming is not supported.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="227"/> - <source>You need to load module-device-manager in the PulseAudio server in order to rename devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="233"/> - <source>Rename device %1 to:</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="240"/> - <source>pa_ext_device_manager_set_device_description() failed</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>MainWindow</name> - <message> - <location filename="../mainwindow.ui" line="14"/> - <source>Volume Control</source> - <translation>Контрола јачине звука</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="28"/> - <source>&Playback</source> - <translation>&Репродукција</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="55"/> - <source><i>No application is currently playing audio.</i></source> - <translation><i>Нема програма који тренутно репродукује звук.</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="66"/> - <location filename="../mainwindow.ui" line="131"/> - <location filename="../mainwindow.ui" line="196"/> - <location filename="../mainwindow.ui" line="261"/> - <source>Show:</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="74"/> - <location filename="../mainwindow.ui" line="139"/> - <source>All Streams</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="79"/> - <location filename="../mainwindow.ui" line="144"/> - <source>Applications</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="84"/> - <location filename="../mainwindow.ui" line="149"/> - <source>Virtual Streams</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="93"/> - <source>&Recording</source> - <translation>&Снимање</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="120"/> - <source><i>No application is currently recording audio.</i></source> - <translation><i>Нема програма који тренутно снима звук.</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="158"/> - <source>&Output Devices</source> - <translation>&Излазни уређаји</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="185"/> - <source><i>No output devices available</i></source> - <translation><i>Нема доступних излазних уређаја</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="204"/> - <source>All Output Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="209"/> - <source>Hardware Output Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="214"/> - <source>Virtual Output Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="223"/> - <source>&Input Devices</source> - <translation>&Улазни уређаји</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="250"/> - <source><i>No input devices available</i></source> - <translation><i>Нема доступних улазних уређаја</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="269"/> - <source>All Input Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="274"/> - <source>All Except Monitors</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="279"/> - <source>Hardware Input Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="284"/> - <source>Virtual Input Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="289"/> - <source>Monitors</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="298"/> - <source>&Configuration</source> - <translation>&Подешавања</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="325"/> - <source><i>No cards available for configuration</i></source> - <translation><i>Нема доступних картица за подешавање</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="336"/> - <source>Show volume meters</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="347"/> - <source>...</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="159"/> - <source> (plugged in)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="163"/> - <location filename="../mainwindow.cc" line="257"/> - <source> (unavailable)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="165"/> - <location filename="../mainwindow.cc" line="254"/> - <source> (unplugged)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="388"/> - <source>Failed to read data from stream</source> - <translation>Неуспело очитавање података са тока</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="432"/> - <source>Peak detect</source> - <translation>Откривање максималног нивоа</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="433"/> - <source>Failed to create monitoring stream</source> - <translation>Неуспело прављење надзорног тока</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="448"/> - <source>Failed to connect monitoring stream</source> - <translation>Неуспело повезивање са надзорним током</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="587"/> - <source>Ignoring sink-input due to it being designated as an event and thus handled by the Event widget</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="759"/> - <source>System Sounds</source> - <translation>Системски звуци</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="1089"/> - <source>Establishing connection to PulseAudio. Please wait...</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>QObject</name> - <message> - <location filename="../pavucontrol.cc" line="66"/> - <source>Error</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="87"/> - <source>Card callback failure</source> - <translation>Неуспешан опозив картице</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="110"/> - <source>Sink callback failure</source> - <translation>Неуспешан опозив сливника</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="133"/> - <source>Source callback failure</source> - <translation>Неуспешан опозив извора</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="152"/> - <source>Sink input callback failure</source> - <translation>Неуспешан опозив сливника улаза</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="171"/> - <source>Source output callback failure</source> - <translation>Неуспешан опозив извора излаза</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="211"/> - <source>Client callback failure</source> - <translation>Неуспешан опозив клијента</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="227"/> - <source>Server info callback failure</source> - <translation>Неуспешан опозив информација о серверу</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="245"/> - <location filename="../pavucontrol.cc" line="542"/> - <source>Failed to initialize stream_restore extension: %s</source> - <translation>Неуспешна иницијализација проширења stream_restore: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="263"/> - <source>pa_ext_stream_restore_read() failed</source> - <translation>Неуспела функција pa_ext_stream_restore_read()</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="281"/> - <location filename="../pavucontrol.cc" line="556"/> - <source>Failed to initialize device restore extension: %s</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="302"/> - <source>pa_ext_device_restore_read_sink_formats() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="320"/> - <location filename="../pavucontrol.cc" line="569"/> - <source>Failed to initialize device manager extension: %s</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="339"/> - <source>pa_ext_device_manager_read() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="356"/> - <source>pa_context_get_sink_info_by_index() failed</source> - <translation>Неуспела функција pa_context_get_sink_info_by_index()</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="369"/> - <source>pa_context_get_source_info_by_index() failed</source> - <translation>Неуспела функција pa_context_get_source_info_by_index()</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="382"/> - <location filename="../pavucontrol.cc" line="395"/> - <source>pa_context_get_sink_input_info() failed</source> - <translation>Неуспела функција pa_context_get_sink_input_info()</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="408"/> - <source>pa_context_get_client_info() failed</source> - <translation>Неуспела функција pa_context_get_client_info()</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="418"/> - <location filename="../pavucontrol.cc" line="483"/> - <source>pa_context_get_server_info() failed</source> - <translation>Неуспела функција pa_context_get_server_info()</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="431"/> - <source>pa_context_get_card_info_by_index() failed</source> - <translation>Неуспела функција pa_context_get_card_info_by_index()</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="474"/> - <source>pa_context_subscribe() failed</source> - <translation>Неуспела функција pa_context_subscribe()</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="490"/> - <source>pa_context_client_info_list() failed</source> - <translation>Неуспела функција pa_context_client_info_list()</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="497"/> - <source>pa_context_get_card_info_list() failed</source> - <translation>Није успело извршавање функције pa_context_get_card_info_list()</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="504"/> - <source>pa_context_get_sink_info_list() failed</source> - <translation>Неуспела функција pa_context_get_sink_info_list()</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="511"/> - <source>pa_context_get_source_info_list() failed</source> - <translation>Неуспела функција pa_context_get_source_info_list()</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="518"/> - <source>pa_context_get_sink_input_info_list() failed</source> - <translation>Неуспела функција pa_context_get_sink_input_info_list()</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="525"/> - <source>pa_context_get_source_output_info_list() failed</source> - <translation>Неуспела функција pa_context_get_source_output_info_list()</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="584"/> - <location filename="../pavucontrol.cc" line="635"/> - <source>Connection failed, attempting reconnect</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="607"/> - <location filename="../pavucontrol.cc" line="664"/> - <source>PulseAudio Volume Control</source> - <translation>PulseAudio контрола јачине звука</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="622"/> - <source>Connection to PulseAudio failed. Automatic retry in 5s - -In this case this is likely because PULSE_SERVER in the Environment/X11 Root Window Properties -or default-server in client.conf is misconfigured. -This situation can also arrise when PulseAudio crashed and left stale details in the X11 Root Window. -If this is the case, then PulseAudio should autospawn again, or if this is not configured you should -run start-pulseaudio-x11 manually.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="672"/> - <source>Select a specific tab on load.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="675"/> - <source>Retry forever if pa quits (every 5 seconds).</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="678"/> - <source>Maximize the window.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="703"/> - <source>Fatal Error: Unable to connect to PulseAudio</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>RoleWidget</name> - <message> - <location filename="../rolewidget.cc" line="59"/> - <source>pa_ext_stream_restore_write() failed</source> - <translation>Неуспела функција pa_ext_stream_restore_write()</translation> - </message> -</context> -<context> - <name>SinkInputWidget</name> - <message> - <location filename="../sinkinputwidget.cc" line="36"/> - <source>on</source> - <translation>на</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="39"/> - <source>Terminate Playback</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="53"/> - <source>Unknown output</source> - <translation>Непознат излаз</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="64"/> - <source>pa_context_set_sink_input_volume() failed</source> - <translation>Неуспела функција pa_context_set_sink_input_volume()</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="79"/> - <source>pa_context_set_sink_input_mute() failed</source> - <translation>Неуспела функција pa_context_set_sink_input_mute()</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="89"/> - <source>pa_context_kill_sink_input() failed</source> - <translation>Неуспела функција pa_context_kill_sink_input()</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="114"/> - <source>pa_context_move_sink_input_by_index() failed</source> - <translation>Неуспела функција pa_context_move_sink_input_by_index()</translation> - </message> -</context> -<context> - <name>SinkWidget</name> - <message> - <location filename="../sinkwidget.cc" line="81"/> - <source>pa_context_set_sink_volume_by_index() failed</source> - <translation>Неуспела функција pa_context_set_sink_volume_by_index()</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="96"/> - <source>pa_context_set_sink_mute_by_index() failed</source> - <translation>Неуспела функција pa_context_set_sink_mute_by_index()</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="110"/> - <source>pa_context_set_default_sink() failed</source> - <translation>Неуспела функција pa_context_set_default_sink()</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="126"/> - <source>pa_context_set_sink_port_by_index() failed</source> - <translation>Неуспела функција pa_context_set_sink_port_by_index()</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="166"/> - <source>pa_ext_device_restore_save_sink_formats() failed</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>SourceOutputWidget</name> - <message> - <location filename="../sourceoutputwidget.cc" line="35"/> - <source>from</source> - <translation>са</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="39"/> - <source>Terminate Recording</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="60"/> - <source>Unknown input</source> - <translation>Непознат улаз</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="72"/> - <source>pa_context_set_source_output_volume() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="87"/> - <source>pa_context_set_source_output_mute() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="98"/> - <source>pa_context_kill_source_output() failed</source> - <translation>Неуспела функција pa_context_kill_source_output()</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="125"/> - <source>pa_context_move_source_output_by_index() failed</source> - <translation>Неуспела функција pa_context_move_source_output_by_index()</translation> - </message> -</context> -<context> - <name>SourceWidget</name> - <message> - <location filename="../sourcewidget.cc" line="35"/> - <source>pa_context_set_source_volume_by_index() failed</source> - <translation>Неуспела функција pa_context_set_source_volume_by_index()</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="50"/> - <source>pa_context_set_source_mute_by_index() failed</source> - <translation>Неуспела функција pa_context_set_source_mute_by_index()</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="64"/> - <source>pa_context_set_default_source() failed</source> - <translation>Неуспела функција pa_context_set_default_source()</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="80"/> - <source>pa_context_set_source_port_by_index() failed</source> - <translation>Неуспела функција pa_context_set_source_port_by_index()</translation> - </message> -</context> -<context> - <name>StreamWidget</name> - <message> - <location filename="../streamwidget.ui" line="14"/> - <source>Form</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.ui" line="32"/> - <source>Device Title</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.ui" line="52"/> - <source>direction</source> - <translation>смер</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="59"/> - <source>device</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.ui" line="66"/> - <source>Mute audio</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.ui" line="79"/> - <source>Lock channels together</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.cc" line="34"/> - <source>Terminate</source> - <translation>Прекини репродукцију</translation> - </message> -</context> -</TS> diff --git a/src/translations/pavucontrol-qt_sr@latin.ts b/src/translations/pavucontrol-qt_sr@latin.ts deleted file mode 100644 index bac5e17..0000000 --- a/src/translations/pavucontrol-qt_sr@latin.ts +++ /dev/null @@ -1,733 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE TS> -<TS version="2.1" language="sr@latin"> -<context> - <name>CardWidget</name> - <message> - <location filename="../cardwidget.ui" line="14"/> - <source>Form</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../cardwidget.ui" line="29"/> - <source>Card Name</source> - <translation>Ime kartice</translation> - </message> - <message> - <location filename="../cardwidget.ui" line="47"/> - <source>Profile:</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../cardwidget.cc" line="67"/> - <source>pa_context_set_card_profile_by_index() failed</source> - <translation>Neuspela funkcija pa_context_set_card_profile_by_index()</translation> - </message> -</context> -<context> - <name>Channel</name> - <message> - <location filename="../channel.cc" line="89"/> - <source>%1% (%2dB)</source> - <comment>volume slider label [X% (YdB)]</comment> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../channel.cc" line="93"/> - <source>%1%</source> - <comment>volume slider label [X%]</comment> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Silence</small></source> - <translation type="unfinished"><small>Tišina</small></translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Min</small></source> - <translation type="unfinished"><small>Min</small></translation> - </message> - <message> - <location filename="../channel.cc" line="162"/> - <source><small>100% (0dB)</small></source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../channel.cc" line="165"/> - <source><small><i>Base</i></small></source> - <translation type="unfinished"><small><i>Osnova</i></small></translation> - </message> -</context> -<context> - <name>ChannelWidget</name> - <message> - <location filename="../channelwidget.ui" line="14"/> - <source>Form</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../channelwidget.ui" line="20"/> - <source><b>left-front</b></source> - <translation><b>levi-prednji</b></translation> - </message> - <message> - <location filename="../channelwidget.ui" line="34"/> - <source><small>50%</small></source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>DeviceWidget</name> - <message> - <location filename="../devicewidget.ui" line="14"/> - <source>Form</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="36"/> - <source>Device Title</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="56"/> - <source>Mute audio</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="69"/> - <source>Lock channels together</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="85"/> - <source>Set as fallback</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="103"/> - <source><b>Port:</b></source> - <translation><b>Port:</b></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="126"/> - <source>Show advanced options</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="172"/> - <source>PCM</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="182"/> - <source>AC3</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="189"/> - <source>EAC3</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="196"/> - <source>DTS</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="203"/> - <source>MPEG</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="210"/> - <source>AAC</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="238"/> - <source><b>Latency offset:</b></source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="245"/> - <source> ms</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="41"/> - <source>Rename device...</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="155"/> - <source>pa_context_set_port_latency_offset() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="226"/> - <source>Sorry, but device renaming is not supported.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="227"/> - <source>You need to load module-device-manager in the PulseAudio server in order to rename devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="233"/> - <source>Rename device %1 to:</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="240"/> - <source>pa_ext_device_manager_set_device_description() failed</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>MainWindow</name> - <message> - <location filename="../mainwindow.ui" line="14"/> - <source>Volume Control</source> - <translation>Kontrola jačine zvuka</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="28"/> - <source>&Playback</source> - <translation>&Reprodukcija</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="55"/> - <source><i>No application is currently playing audio.</i></source> - <translation><i>Nema programa koji trenutno reprodukuje zvuk.</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="66"/> - <location filename="../mainwindow.ui" line="131"/> - <location filename="../mainwindow.ui" line="196"/> - <location filename="../mainwindow.ui" line="261"/> - <source>Show:</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="74"/> - <location filename="../mainwindow.ui" line="139"/> - <source>All Streams</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="79"/> - <location filename="../mainwindow.ui" line="144"/> - <source>Applications</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="84"/> - <location filename="../mainwindow.ui" line="149"/> - <source>Virtual Streams</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="93"/> - <source>&Recording</source> - <translation>&Snimanje</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="120"/> - <source><i>No application is currently recording audio.</i></source> - <translation><i>Nema programa koji trenutno snima zvuk.</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="158"/> - <source>&Output Devices</source> - <translation>&Izlazni uređaji</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="185"/> - <source><i>No output devices available</i></source> - <translation><i>Nema dostupnih izlaznih uređaja</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="204"/> - <source>All Output Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="209"/> - <source>Hardware Output Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="214"/> - <source>Virtual Output Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="223"/> - <source>&Input Devices</source> - <translation>&Ulazni uređaji</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="250"/> - <source><i>No input devices available</i></source> - <translation><i>Nema dostupnih ulaznih uređaja</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="269"/> - <source>All Input Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="274"/> - <source>All Except Monitors</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="279"/> - <source>Hardware Input Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="284"/> - <source>Virtual Input Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="289"/> - <source>Monitors</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="298"/> - <source>&Configuration</source> - <translation>&Podešavanja</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="325"/> - <source><i>No cards available for configuration</i></source> - <translation><i>Nema dostupnih kartica za podešavanje</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="336"/> - <source>Show volume meters</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="347"/> - <source>...</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="159"/> - <source> (plugged in)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="163"/> - <location filename="../mainwindow.cc" line="257"/> - <source> (unavailable)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="165"/> - <location filename="../mainwindow.cc" line="254"/> - <source> (unplugged)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="388"/> - <source>Failed to read data from stream</source> - <translation>Neuspelo očitavanje podataka sa toka</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="432"/> - <source>Peak detect</source> - <translation>Otkrivanje maksimalnog nivoa</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="433"/> - <source>Failed to create monitoring stream</source> - <translation>Neuspelo pravljenje nadzornog toka</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="448"/> - <source>Failed to connect monitoring stream</source> - <translation>Neuspelo povezivanje sa nadzornim tokom</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="587"/> - <source>Ignoring sink-input due to it being designated as an event and thus handled by the Event widget</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="759"/> - <source>System Sounds</source> - <translation>Sistemski zvuci</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="1089"/> - <source>Establishing connection to PulseAudio. Please wait...</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>QObject</name> - <message> - <location filename="../pavucontrol.cc" line="66"/> - <source>Error</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="87"/> - <source>Card callback failure</source> - <translation>Neuspešan opoziv kartice</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="110"/> - <source>Sink callback failure</source> - <translation>Neuspešan opoziv slivnika</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="133"/> - <source>Source callback failure</source> - <translation>Neuspešan opoziv izvora</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="152"/> - <source>Sink input callback failure</source> - <translation>Neuspešan opoziv slivnika ulaza</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="171"/> - <source>Source output callback failure</source> - <translation>Neuspešan opoziv izvora izlaza</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="211"/> - <source>Client callback failure</source> - <translation>Neuspešan opoziv klijenta</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="227"/> - <source>Server info callback failure</source> - <translation>Neuspešan opoziv informacija o serveru</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="245"/> - <location filename="../pavucontrol.cc" line="542"/> - <source>Failed to initialize stream_restore extension: %s</source> - <translation>Neuspešna inicijalizacija proširenja stream_restore: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="263"/> - <source>pa_ext_stream_restore_read() failed</source> - <translation>Neuspela funkcija pa_ext_stream_restore_read()</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="281"/> - <location filename="../pavucontrol.cc" line="556"/> - <source>Failed to initialize device restore extension: %s</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="302"/> - <source>pa_ext_device_restore_read_sink_formats() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="320"/> - <location filename="../pavucontrol.cc" line="569"/> - <source>Failed to initialize device manager extension: %s</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="339"/> - <source>pa_ext_device_manager_read() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="356"/> - <source>pa_context_get_sink_info_by_index() failed</source> - <translation>Neuspela funkcija pa_context_get_sink_info_by_index()</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="369"/> - <source>pa_context_get_source_info_by_index() failed</source> - <translation>Neuspela funkcija pa_context_get_source_info_by_index()</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="382"/> - <location filename="../pavucontrol.cc" line="395"/> - <source>pa_context_get_sink_input_info() failed</source> - <translation>Neuspela funkcija pa_context_get_sink_input_info()</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="408"/> - <source>pa_context_get_client_info() failed</source> - <translation>Neuspela funkcija pa_context_get_client_info()</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="418"/> - <location filename="../pavucontrol.cc" line="483"/> - <source>pa_context_get_server_info() failed</source> - <translation>Neuspela funkcija pa_context_get_server_info()</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="431"/> - <source>pa_context_get_card_info_by_index() failed</source> - <translation>Neuspela funkcija pa_context_get_card_info_by_index()</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="474"/> - <source>pa_context_subscribe() failed</source> - <translation>Neuspela funkcija pa_context_subscribe()</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="490"/> - <source>pa_context_client_info_list() failed</source> - <translation>Neuspela funkcija pa_context_client_info_list()</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="497"/> - <source>pa_context_get_card_info_list() failed</source> - <translation>Nije uspelo izvršavanje funkcije pa_context_get_card_info_list()</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="504"/> - <source>pa_context_get_sink_info_list() failed</source> - <translation>Neuspela funkcija pa_context_get_sink_info_list()</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="511"/> - <source>pa_context_get_source_info_list() failed</source> - <translation>Neuspela funkcija pa_context_get_source_info_list()</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="518"/> - <source>pa_context_get_sink_input_info_list() failed</source> - <translation>Neuspela funkcija pa_context_get_sink_input_info_list()</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="525"/> - <source>pa_context_get_source_output_info_list() failed</source> - <translation>Neuspela funkcija pa_context_get_source_output_info_list()</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="584"/> - <location filename="../pavucontrol.cc" line="635"/> - <source>Connection failed, attempting reconnect</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="607"/> - <location filename="../pavucontrol.cc" line="664"/> - <source>PulseAudio Volume Control</source> - <translation>PulseAudio kontrola jačine zvuka</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="622"/> - <source>Connection to PulseAudio failed. Automatic retry in 5s - -In this case this is likely because PULSE_SERVER in the Environment/X11 Root Window Properties -or default-server in client.conf is misconfigured. -This situation can also arrise when PulseAudio crashed and left stale details in the X11 Root Window. -If this is the case, then PulseAudio should autospawn again, or if this is not configured you should -run start-pulseaudio-x11 manually.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="672"/> - <source>Select a specific tab on load.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="675"/> - <source>Retry forever if pa quits (every 5 seconds).</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="678"/> - <source>Maximize the window.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="703"/> - <source>Fatal Error: Unable to connect to PulseAudio</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>RoleWidget</name> - <message> - <location filename="../rolewidget.cc" line="59"/> - <source>pa_ext_stream_restore_write() failed</source> - <translation>Neuspela funkcija pa_ext_stream_restore_write()</translation> - </message> -</context> -<context> - <name>SinkInputWidget</name> - <message> - <location filename="../sinkinputwidget.cc" line="36"/> - <source>on</source> - <translation>na</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="39"/> - <source>Terminate Playback</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="53"/> - <source>Unknown output</source> - <translation>Nepoznat izlaz</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="64"/> - <source>pa_context_set_sink_input_volume() failed</source> - <translation>Neuspela funkcija pa_context_set_sink_input_volume()</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="79"/> - <source>pa_context_set_sink_input_mute() failed</source> - <translation>Neuspela funkcija pa_context_set_sink_input_mute()</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="89"/> - <source>pa_context_kill_sink_input() failed</source> - <translation>Neuspela funkcija pa_context_kill_sink_input()</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="114"/> - <source>pa_context_move_sink_input_by_index() failed</source> - <translation>Neuspela funkcija pa_context_move_sink_input_by_index()</translation> - </message> -</context> -<context> - <name>SinkWidget</name> - <message> - <location filename="../sinkwidget.cc" line="81"/> - <source>pa_context_set_sink_volume_by_index() failed</source> - <translation>Neuspela funkcija pa_context_set_sink_volume_by_index()</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="96"/> - <source>pa_context_set_sink_mute_by_index() failed</source> - <translation>Neuspela funkcija pa_context_set_sink_mute_by_index()</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="110"/> - <source>pa_context_set_default_sink() failed</source> - <translation>Neuspela funkcija pa_context_set_default_sink()</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="126"/> - <source>pa_context_set_sink_port_by_index() failed</source> - <translation>Neuspela funkcija pa_context_set_sink_port_by_index()</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="166"/> - <source>pa_ext_device_restore_save_sink_formats() failed</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>SourceOutputWidget</name> - <message> - <location filename="../sourceoutputwidget.cc" line="35"/> - <source>from</source> - <translation>sa</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="39"/> - <source>Terminate Recording</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="60"/> - <source>Unknown input</source> - <translation>Nepoznat ulaz</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="72"/> - <source>pa_context_set_source_output_volume() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="87"/> - <source>pa_context_set_source_output_mute() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="98"/> - <source>pa_context_kill_source_output() failed</source> - <translation>Neuspela funkcija pa_context_kill_source_output()</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="125"/> - <source>pa_context_move_source_output_by_index() failed</source> - <translation>Neuspela funkcija pa_context_move_source_output_by_index()</translation> - </message> -</context> -<context> - <name>SourceWidget</name> - <message> - <location filename="../sourcewidget.cc" line="35"/> - <source>pa_context_set_source_volume_by_index() failed</source> - <translation>Neuspela funkcija pa_context_set_source_volume_by_index()</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="50"/> - <source>pa_context_set_source_mute_by_index() failed</source> - <translation>Neuspela funkcija pa_context_set_source_mute_by_index()</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="64"/> - <source>pa_context_set_default_source() failed</source> - <translation>Neuspela funkcija pa_context_set_default_source()</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="80"/> - <source>pa_context_set_source_port_by_index() failed</source> - <translation>Neuspela funkcija pa_context_set_source_port_by_index()</translation> - </message> -</context> -<context> - <name>StreamWidget</name> - <message> - <location filename="../streamwidget.ui" line="14"/> - <source>Form</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.ui" line="32"/> - <source>Device Title</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.ui" line="52"/> - <source>direction</source> - <translation>smer</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="59"/> - <source>device</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.ui" line="66"/> - <source>Mute audio</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.ui" line="79"/> - <source>Lock channels together</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.cc" line="34"/> - <source>Terminate</source> - <translation>Prekini reprodukciju</translation> - </message> -</context> -</TS> diff --git a/src/translations/pavucontrol-qt_sv.ts b/src/translations/pavucontrol-qt_sv.ts deleted file mode 100644 index 1d07f76..0000000 --- a/src/translations/pavucontrol-qt_sv.ts +++ /dev/null @@ -1,733 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE TS> -<TS version="2.1" language="sv"> -<context> - <name>CardWidget</name> - <message> - <location filename="../cardwidget.ui" line="14"/> - <source>Form</source> - <translation>Form</translation> - </message> - <message> - <location filename="../cardwidget.ui" line="29"/> - <source>Card Name</source> - <translation>Kortnamn</translation> - </message> - <message> - <location filename="../cardwidget.ui" line="47"/> - <source>Profile:</source> - <translation>Profil:</translation> - </message> - <message> - <location filename="../cardwidget.cc" line="67"/> - <source>pa_context_set_card_profile_by_index() failed</source> - <translation>pa_context_set_card_profile_by_index() misslyckades</translation> - </message> -</context> -<context> - <name>Channel</name> - <message> - <location filename="../channel.cc" line="89"/> - <source>%1% (%2dB)</source> - <comment>volume slider label [X% (YdB)]</comment> - <translation>%1% (%2dB)</translation> - </message> - <message> - <location filename="../channel.cc" line="93"/> - <source>%1%</source> - <comment>volume slider label [X%]</comment> - <translation>%1%</translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Silence</small></source> - <translation><small>Tysta</small></translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Min</small></source> - <translation><small>Min</small></translation> - </message> - <message> - <location filename="../channel.cc" line="162"/> - <source><small>100% (0dB)</small></source> - <translation><small>100% (0dB)</small></translation> - </message> - <message> - <location filename="../channel.cc" line="165"/> - <source><small><i>Base</i></small></source> - <translation><small><i>Bas</i></small></translation> - </message> -</context> -<context> - <name>ChannelWidget</name> - <message> - <location filename="../channelwidget.ui" line="14"/> - <source>Form</source> - <translation>Formulär</translation> - </message> - <message> - <location filename="../channelwidget.ui" line="20"/> - <source><b>left-front</b></source> - <translation><b>vänster fram</b></translation> - </message> - <message> - <location filename="../channelwidget.ui" line="34"/> - <source><small>50%</small></source> - <translation><small>50%</small></translation> - </message> -</context> -<context> - <name>DeviceWidget</name> - <message> - <location filename="../devicewidget.ui" line="14"/> - <source>Form</source> - <translation>Formulär</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="36"/> - <source>Device Title</source> - <translation>Enhetens titel</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="56"/> - <source>Mute audio</source> - <translation>Stäng av ljudet</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="69"/> - <source>Lock channels together</source> - <translation>Lås kanaler tillsammans</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="85"/> - <source>Set as fallback</source> - <translation>Ange som reserv</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="103"/> - <source><b>Port:</b></source> - <translation><b>Port:</b></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="126"/> - <source>Show advanced options</source> - <translation>Visa avancerade alternativ</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="172"/> - <source>PCM</source> - <translation>PCM</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="182"/> - <source>AC3</source> - <translation>AC3</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="189"/> - <source>EAC3</source> - <translation>EAC3</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="196"/> - <source>DTS</source> - <translation>DTS</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="203"/> - <source>MPEG</source> - <translation>MPEG</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="210"/> - <source>AAC</source> - <translation>AAC</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="238"/> - <source><b>Latency offset:</b></source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="245"/> - <source> ms</source> - <translation> ms</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="41"/> - <source>Rename device...</source> - <translation>Byt namn på enhet...</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="155"/> - <source>pa_context_set_port_latency_offset() failed</source> - <translation>pa_context_set_port_latency_offset() misslyckades</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="226"/> - <source>Sorry, but device renaming is not supported.</source> - <translation>Tyvärr, men enhetsnamnbyte stöds inte.</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="227"/> - <source>You need to load module-device-manager in the PulseAudio server in order to rename devices</source> - <translation>Du måste ladda modul-enhetshanteraren i PulseAudio-servern för att byta namn på enheter</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="233"/> - <source>Rename device %1 to:</source> - <translation>Byt namn på enhet %1 till:</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="240"/> - <source>pa_ext_device_manager_set_device_description() failed</source> - <translation>pa_ext_device_manager_set_device_description() misslyckades</translation> - </message> -</context> -<context> - <name>MainWindow</name> - <message> - <location filename="../mainwindow.ui" line="14"/> - <source>Volume Control</source> - <translation>Volymkontroll</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="28"/> - <source>&Playback</source> - <translation>U&ppspelning</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="55"/> - <source><i>No application is currently playing audio.</i></source> - <translation><i>Inget program spelar för närvarande upp något ljud.</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="66"/> - <location filename="../mainwindow.ui" line="131"/> - <location filename="../mainwindow.ui" line="196"/> - <location filename="../mainwindow.ui" line="261"/> - <source>Show:</source> - <translation>Visa:</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="74"/> - <location filename="../mainwindow.ui" line="139"/> - <source>All Streams</source> - <translation>Alla strömmar</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="79"/> - <location filename="../mainwindow.ui" line="144"/> - <source>Applications</source> - <translation>Program</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="84"/> - <location filename="../mainwindow.ui" line="149"/> - <source>Virtual Streams</source> - <translation>Virtuella strömmar</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="93"/> - <source>&Recording</source> - <translation>I&nspelning</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="120"/> - <source><i>No application is currently recording audio.</i></source> - <translation><i>Inget program spelar för närvarande in något ljud.</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="158"/> - <source>&Output Devices</source> - <translation>&Uppspelningsenheter</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="185"/> - <source><i>No output devices available</i></source> - <translation><i>Inga uppspelningsenheter tillgängliga</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="204"/> - <source>All Output Devices</source> - <translation>Alla utgångsenheter</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="209"/> - <source>Hardware Output Devices</source> - <translation>Hårdvaruutmatningsenheter</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="214"/> - <source>Virtual Output Devices</source> - <translation>Virtuella utgångsenheter</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="223"/> - <source>&Input Devices</source> - <translation>&Inenheter</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="250"/> - <source><i>No input devices available</i></source> - <translation><i>Inga inenheter tillgängliga</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="269"/> - <source>All Input Devices</source> - <translation>Alla ingångsenheter</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="274"/> - <source>All Except Monitors</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="279"/> - <source>Hardware Input Devices</source> - <translation>Inmatningsenheter för maskinvara</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="284"/> - <source>Virtual Input Devices</source> - <translation>Virtuella inmatningsenheter</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="289"/> - <source>Monitors</source> - <translation>Skärmar</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="298"/> - <source>&Configuration</source> - <translation>&Konfiguration</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="325"/> - <source><i>No cards available for configuration</i></source> - <translation><i>Inga kort tillgängliga för konfiguration</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="336"/> - <source>Show volume meters</source> - <translation>Visa volymmätare</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="347"/> - <source>...</source> - <translation>...</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="159"/> - <source> (plugged in)</source> - <translation> (inkopplad)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="163"/> - <location filename="../mainwindow.cc" line="257"/> - <source> (unavailable)</source> - <translation> (inte tillgänglig)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="165"/> - <location filename="../mainwindow.cc" line="254"/> - <source> (unplugged)</source> - <translation> (urkopplad)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="388"/> - <source>Failed to read data from stream</source> - <translation>Misslyckades med att läsa data från ström</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="432"/> - <source>Peak detect</source> - <translation>Topp upptäcktes</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="433"/> - <source>Failed to create monitoring stream</source> - <translation>Misslyckades med att skapa övervakningsström</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="448"/> - <source>Failed to connect monitoring stream</source> - <translation>Misslyckades med att ansluta övervakningsström</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="587"/> - <source>Ignoring sink-input due to it being designated as an event and thus handled by the Event widget</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="759"/> - <source>System Sounds</source> - <translation>Systemljud</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="1089"/> - <source>Establishing connection to PulseAudio. Please wait...</source> - <translation>Upprättar anslutning till PulseAudio. Vänta...</translation> - </message> -</context> -<context> - <name>QObject</name> - <message> - <location filename="../pavucontrol.cc" line="66"/> - <source>Error</source> - <translation>Fel</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="87"/> - <source>Card callback failure</source> - <translation>Kortåterkoppling misslyckades</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="110"/> - <source>Sink callback failure</source> - <translation>Fel vid sink-återkoppling</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="133"/> - <source>Source callback failure</source> - <translation>Fel vid källåterkoppling</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="152"/> - <source>Sink input callback failure</source> - <translation>Fel vid sinkingångsåterkoppling</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="171"/> - <source>Source output callback failure</source> - <translation>Fel vid källutgångsåterkoppling</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="211"/> - <source>Client callback failure</source> - <translation>Fel vid klientåterkoppling</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="227"/> - <source>Server info callback failure</source> - <translation>Fel vid serverinformationsåterkoppling</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="245"/> - <location filename="../pavucontrol.cc" line="542"/> - <source>Failed to initialize stream_restore extension: %s</source> - <translation>Misslyckades med att initiera tillägget stream_restore: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="263"/> - <source>pa_ext_stream_restore_read() failed</source> - <translation>pa_ext_stream_restore_read() misslyckades</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="281"/> - <location filename="../pavucontrol.cc" line="556"/> - <source>Failed to initialize device restore extension: %s</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="302"/> - <source>pa_ext_device_restore_read_sink_formats() failed</source> - <translation>pa_ext_device_restore_read_sink_formats() misslyckades</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="320"/> - <location filename="../pavucontrol.cc" line="569"/> - <source>Failed to initialize device manager extension: %s</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="339"/> - <source>pa_ext_device_manager_read() failed</source> - <translation>pa_ext_device_manager_read() misslyckades</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="356"/> - <source>pa_context_get_sink_info_by_index() failed</source> - <translation>pa_context_get_sink_info_by_index() misslyckades</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="369"/> - <source>pa_context_get_source_info_by_index() failed</source> - <translation>pa_context_get_source_info_by_index() misslyckades</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="382"/> - <location filename="../pavucontrol.cc" line="395"/> - <source>pa_context_get_sink_input_info() failed</source> - <translation>pa_context_get_sink_input_info() misslyckades</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="408"/> - <source>pa_context_get_client_info() failed</source> - <translation>pa_context_get_client_info() misslyckades</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="418"/> - <location filename="../pavucontrol.cc" line="483"/> - <source>pa_context_get_server_info() failed</source> - <translation>pa_context_get_server_info() misslyckades</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="431"/> - <source>pa_context_get_card_info_by_index() failed</source> - <translation>pa_context_get_card_info_by_index() misslyckades</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="474"/> - <source>pa_context_subscribe() failed</source> - <translation>pa_context_subscribe() misslyckades</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="490"/> - <source>pa_context_client_info_list() failed</source> - <translation>pa_context_client_info_list() misslyckades</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="497"/> - <source>pa_context_get_card_info_list() failed</source> - <translation>pa_context_get_card_info_list() misslyckades</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="504"/> - <source>pa_context_get_sink_info_list() failed</source> - <translation>pa_context_get_sink_info_list() misslyckades</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="511"/> - <source>pa_context_get_source_info_list() failed</source> - <translation>pa_context_get_source_info_list() misslyckades</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="518"/> - <source>pa_context_get_sink_input_info_list() failed</source> - <translation>pa_context_get_sink_input_info_list() misslyckades</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="525"/> - <source>pa_context_get_source_output_info_list() failed</source> - <translation>pa_context_get_source_output_info_list() misslyckades</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="584"/> - <location filename="../pavucontrol.cc" line="635"/> - <source>Connection failed, attempting reconnect</source> - <translation>Anslutningen misslyckades, försökte återansluta</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="607"/> - <location filename="../pavucontrol.cc" line="664"/> - <source>PulseAudio Volume Control</source> - <translation>Volymkontroll för PulseAudio</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="622"/> - <source>Connection to PulseAudio failed. Automatic retry in 5s - -In this case this is likely because PULSE_SERVER in the Environment/X11 Root Window Properties -or default-server in client.conf is misconfigured. -This situation can also arrise when PulseAudio crashed and left stale details in the X11 Root Window. -If this is the case, then PulseAudio should autospawn again, or if this is not configured you should -run start-pulseaudio-x11 manually.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="672"/> - <source>Select a specific tab on load.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="675"/> - <source>Retry forever if pa quits (every 5 seconds).</source> - <translation>Försök igen för evigt om pa slutar (var 5:e sekund).</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="678"/> - <source>Maximize the window.</source> - <translation>Maximera fönstret.</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="703"/> - <source>Fatal Error: Unable to connect to PulseAudio</source> - <translation>Allvarligt fel: Det går inte att ansluta till PulseAudio</translation> - </message> -</context> -<context> - <name>RoleWidget</name> - <message> - <location filename="../rolewidget.cc" line="59"/> - <source>pa_ext_stream_restore_write() failed</source> - <translation>pa_ext_stream_restore_write() misslyckades</translation> - </message> -</context> -<context> - <name>SinkInputWidget</name> - <message> - <location filename="../sinkinputwidget.cc" line="36"/> - <source>on</source> - <translation>på</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="39"/> - <source>Terminate Playback</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="53"/> - <source>Unknown output</source> - <translation>Okänd utgång</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="64"/> - <source>pa_context_set_sink_input_volume() failed</source> - <translation>pa_context_set_sink_input_volume() misslyckades</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="79"/> - <source>pa_context_set_sink_input_mute() failed</source> - <translation>pa_context_set_sink_input_mute() misslyckades</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="89"/> - <source>pa_context_kill_sink_input() failed</source> - <translation>pa_context_kill_sink_input() misslyckades</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="114"/> - <source>pa_context_move_sink_input_by_index() failed</source> - <translation>pa_context_move_sink_input_by_index() misslyckades</translation> - </message> -</context> -<context> - <name>SinkWidget</name> - <message> - <location filename="../sinkwidget.cc" line="81"/> - <source>pa_context_set_sink_volume_by_index() failed</source> - <translation>pa_context_set_sink_volume_by_index() misslyckades</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="96"/> - <source>pa_context_set_sink_mute_by_index() failed</source> - <translation>pa_context_set_sink_mute_by_index() misslyckades</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="110"/> - <source>pa_context_set_default_sink() failed</source> - <translation>pa_context_set_default_sink() misslyckades</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="126"/> - <source>pa_context_set_sink_port_by_index() failed</source> - <translation>pa_context_set_sink_mute_by_index() misslyckades</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="166"/> - <source>pa_ext_device_restore_save_sink_formats() failed</source> - <translation>pa_ext_device_restore_save_sink_formats() misslyckades</translation> - </message> -</context> -<context> - <name>SourceOutputWidget</name> - <message> - <location filename="../sourceoutputwidget.cc" line="35"/> - <source>from</source> - <translation>från</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="39"/> - <source>Terminate Recording</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="60"/> - <source>Unknown input</source> - <translation>Okänd ingång</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="72"/> - <source>pa_context_set_source_output_volume() failed</source> - <translation>pa_context_set_source_output_volume() misslyckades</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="87"/> - <source>pa_context_set_source_output_mute() failed</source> - <translation>pa_context_set_source_output_mute() misslyckades</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="98"/> - <source>pa_context_kill_source_output() failed</source> - <translation>pa_context_kill_source_output() misslyckades</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="125"/> - <source>pa_context_move_source_output_by_index() failed</source> - <translation>pa_context_move_source_output_by_index() misslyckades</translation> - </message> -</context> -<context> - <name>SourceWidget</name> - <message> - <location filename="../sourcewidget.cc" line="35"/> - <source>pa_context_set_source_volume_by_index() failed</source> - <translation>pa_context_set_source_volume_by_index() misslyckades</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="50"/> - <source>pa_context_set_source_mute_by_index() failed</source> - <translation>pa_context_set_source_mute_by_index() misslyckades</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="64"/> - <source>pa_context_set_default_source() failed</source> - <translation>pa_context_set_default_source() misslyckades</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="80"/> - <source>pa_context_set_source_port_by_index() failed</source> - <translation>pa_context_set_source_mute_by_index() misslyckades</translation> - </message> -</context> -<context> - <name>StreamWidget</name> - <message> - <location filename="../streamwidget.ui" line="14"/> - <source>Form</source> - <translation>Formulär</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="32"/> - <source>Device Title</source> - <translation>Enhetens titel</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="52"/> - <source>direction</source> - <translation>riktning</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="59"/> - <source>device</source> - <translation>enhet</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="66"/> - <source>Mute audio</source> - <translation>Stäng av ljudet</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="79"/> - <source>Lock channels together</source> - <translation>Lås kanaler tillsammans</translation> - </message> - <message> - <location filename="../streamwidget.cc" line="34"/> - <source>Terminate</source> - <translation>Terminera ström</translation> - </message> -</context> -</TS> diff --git a/src/translations/pavucontrol-qt_ta.ts b/src/translations/pavucontrol-qt_ta.ts deleted file mode 100644 index 3dee6aa..0000000 --- a/src/translations/pavucontrol-qt_ta.ts +++ /dev/null @@ -1,733 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE TS> -<TS version="2.1" language="ta"> -<context> - <name>CardWidget</name> - <message> - <location filename="../cardwidget.ui" line="14"/> - <source>Form</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../cardwidget.ui" line="29"/> - <source>Card Name</source> - <translation>அட்டையின் பெயர்</translation> - </message> - <message> - <location filename="../cardwidget.ui" line="47"/> - <source>Profile:</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../cardwidget.cc" line="67"/> - <source>pa_context_set_card_profile_by_index() failed</source> - <translation>pa_context_set_card_profile_by_index() தோல்வியடைந்தது</translation> - </message> -</context> -<context> - <name>Channel</name> - <message> - <location filename="../channel.cc" line="89"/> - <source>%1% (%2dB)</source> - <comment>volume slider label [X% (YdB)]</comment> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../channel.cc" line="93"/> - <source>%1%</source> - <comment>volume slider label [X%]</comment> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Silence</small></source> - <translation type="unfinished"><small>அமைதி</small></translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Min</small></source> - <translation type="unfinished"><small>குறைந்த</small></translation> - </message> - <message> - <location filename="../channel.cc" line="162"/> - <source><small>100% (0dB)</small></source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../channel.cc" line="165"/> - <source><small><i>Base</i></small></source> - <translation type="unfinished"><small><i>அடிப்படை</i></small></translation> - </message> -</context> -<context> - <name>ChannelWidget</name> - <message> - <location filename="../channelwidget.ui" line="14"/> - <source>Form</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../channelwidget.ui" line="20"/> - <source><b>left-front</b></source> - <translation><b>இடது-முன்னால்</b></translation> - </message> - <message> - <location filename="../channelwidget.ui" line="34"/> - <source><small>50%</small></source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>DeviceWidget</name> - <message> - <location filename="../devicewidget.ui" line="14"/> - <source>Form</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="36"/> - <source>Device Title</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="56"/> - <source>Mute audio</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="69"/> - <source>Lock channels together</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="85"/> - <source>Set as fallback</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="103"/> - <source><b>Port:</b></source> - <translation><b>துறை:</b></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="126"/> - <source>Show advanced options</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="172"/> - <source>PCM</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="182"/> - <source>AC3</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="189"/> - <source>EAC3</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="196"/> - <source>DTS</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="203"/> - <source>MPEG</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="210"/> - <source>AAC</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="238"/> - <source><b>Latency offset:</b></source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="245"/> - <source> ms</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="41"/> - <source>Rename device...</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="155"/> - <source>pa_context_set_port_latency_offset() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="226"/> - <source>Sorry, but device renaming is not supported.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="227"/> - <source>You need to load module-device-manager in the PulseAudio server in order to rename devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="233"/> - <source>Rename device %1 to:</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="240"/> - <source>pa_ext_device_manager_set_device_description() failed</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>MainWindow</name> - <message> - <location filename="../mainwindow.ui" line="14"/> - <source>Volume Control</source> - <translation>ஒலியளவு கட்டுப்பாடு</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="28"/> - <source>&Playback</source> - <translation>இயக்கு (&P)</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="55"/> - <source><i>No application is currently playing audio.</i></source> - <translation><i>எந்த பயன்பாடும் தற்போது ஆடியோ இசைக்கவில்லை.</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="66"/> - <location filename="../mainwindow.ui" line="131"/> - <location filename="../mainwindow.ui" line="196"/> - <location filename="../mainwindow.ui" line="261"/> - <source>Show:</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="74"/> - <location filename="../mainwindow.ui" line="139"/> - <source>All Streams</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="79"/> - <location filename="../mainwindow.ui" line="144"/> - <source>Applications</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="84"/> - <location filename="../mainwindow.ui" line="149"/> - <source>Virtual Streams</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="93"/> - <source>&Recording</source> - <translation>ஒலிப்பதிவு (&R)</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="120"/> - <source><i>No application is currently recording audio.</i></source> - <translation><i>எந்த பயன்பாடும் தற்போது ஆடியோ பதிவு செய்யவில்லை.</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="158"/> - <source>&Output Devices</source> - <translation>வெளிப்பாடு சாதனங்கள் (&O)</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="185"/> - <source><i>No output devices available</i></source> - <translation><i>வெளிப்பாடு சாதனங்கள் கிடைக்கப் பெறவில்லை</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="204"/> - <source>All Output Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="209"/> - <source>Hardware Output Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="214"/> - <source>Virtual Output Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="223"/> - <source>&Input Devices</source> - <translation>உள்வரும் சாதனங்கள் (&I)</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="250"/> - <source><i>No input devices available</i></source> - <translation><i>உள்வரும் சாதனங்கள் கிடைக்கப் பெறவில்லை</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="269"/> - <source>All Input Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="274"/> - <source>All Except Monitors</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="279"/> - <source>Hardware Input Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="284"/> - <source>Virtual Input Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="289"/> - <source>Monitors</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="298"/> - <source>&Configuration</source> - <translation>கட்டமைப்பு (&C)</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="325"/> - <source><i>No cards available for configuration</i></source> - <translation><i>கட்டமைப்பதற்கு அட்டைகள் கிடைக்கப் பெறவில்லை</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="336"/> - <source>Show volume meters</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="347"/> - <source>...</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="159"/> - <source> (plugged in)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="163"/> - <location filename="../mainwindow.cc" line="257"/> - <source> (unavailable)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="165"/> - <location filename="../mainwindow.cc" line="254"/> - <source> (unplugged)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="388"/> - <source>Failed to read data from stream</source> - <translation>ஸ்ட்ரீமிலிருந்து தரவை வாசிக்க முடியவில்லை</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="432"/> - <source>Peak detect</source> - <translation>பீக் கண்டறியப்பட்டது</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="433"/> - <source>Failed to create monitoring stream</source> - <translation>கண்காணிக்கும் ஸ்ட்ரீமை உருவாக்க முடியவில்லை</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="448"/> - <source>Failed to connect monitoring stream</source> - <translation>கண்காணிக்கும் ஸ்ட்ரீமை இணைக்க முடியவில்லை</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="587"/> - <source>Ignoring sink-input due to it being designated as an event and thus handled by the Event widget</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="759"/> - <source>System Sounds</source> - <translation>கணினியின் ஒலிகள்</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="1089"/> - <source>Establishing connection to PulseAudio. Please wait...</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>QObject</name> - <message> - <location filename="../pavucontrol.cc" line="66"/> - <source>Error</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="87"/> - <source>Card callback failure</source> - <translation>அட்டை மறுஅழைப்பில் தோல்வி</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="110"/> - <source>Sink callback failure</source> - <translation>சுருங்கி மறுஅழைப்பில் தோல்வி</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="133"/> - <source>Source callback failure</source> - <translation>மூல மறுஅழைப்பில் தோல்வி</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="152"/> - <source>Sink input callback failure</source> - <translation>மூழ்கும் உள்ளீடு கால்பேக் தோல்வி</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="171"/> - <source>Source output callback failure</source> - <translation>மூல வெளியேறும் மறுஅழைப்பில் தோல்வி</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="211"/> - <source>Client callback failure</source> - <translation>கிளையன்ட்டை மறுஅழைப்பதில் தோல்வி</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="227"/> - <source>Server info callback failure</source> - <translation>சேவையக தகவலை மறுஅழைப்பதில் தோல்வி</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="245"/> - <location filename="../pavucontrol.cc" line="542"/> - <source>Failed to initialize stream_restore extension: %s</source> - <translation>stream_restore விரிவாக்கத்தை துவக்க முடியவில்லை: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="263"/> - <source>pa_ext_stream_restore_read() failed</source> - <translation>pa_ext_stream_restore_read() தோல்வியடைந்தது</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="281"/> - <location filename="../pavucontrol.cc" line="556"/> - <source>Failed to initialize device restore extension: %s</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="302"/> - <source>pa_ext_device_restore_read_sink_formats() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="320"/> - <location filename="../pavucontrol.cc" line="569"/> - <source>Failed to initialize device manager extension: %s</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="339"/> - <source>pa_ext_device_manager_read() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="356"/> - <source>pa_context_get_sink_info_by_index() failed</source> - <translation>pa_context_get_sink_info_by_index() தோல்வியடைந்தது</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="369"/> - <source>pa_context_get_source_info_by_index() failed</source> - <translation>pa_context_get_source_info_by_index() தோல்வியடைந்தது</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="382"/> - <location filename="../pavucontrol.cc" line="395"/> - <source>pa_context_get_sink_input_info() failed</source> - <translation>pa_context_get_sink_input_info() தோல்வியடைந்தது</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="408"/> - <source>pa_context_get_client_info() failed</source> - <translation>pa_context_get_client_info() தோல்வியடைந்தது</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="418"/> - <location filename="../pavucontrol.cc" line="483"/> - <source>pa_context_get_server_info() failed</source> - <translation>pa_context_get_server_info() தோல்வியடைந்தது</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="431"/> - <source>pa_context_get_card_info_by_index() failed</source> - <translation>pa_context_get_card_info_by_index() தோல்வியடைந்தது</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="474"/> - <source>pa_context_subscribe() failed</source> - <translation>pa_context_subscribe() தோல்வியடைந்தது</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="490"/> - <source>pa_context_client_info_list() failed</source> - <translation>pa_context_client_info_list() தோல்வியடைந்தது</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="497"/> - <source>pa_context_get_card_info_list() failed</source> - <translation>pa_context_get_card_info_list() தோல்வியடைந்தது</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="504"/> - <source>pa_context_get_sink_info_list() failed</source> - <translation>pa_context_get_sink_info_list() தோல்வியடைந்தது</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="511"/> - <source>pa_context_get_source_info_list() failed</source> - <translation>pa_context_get_source_info_list() தோல்வியடைந்தது</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="518"/> - <source>pa_context_get_sink_input_info_list() failed</source> - <translation>pa_context_get_sink_input_info_list() தோல்வியடைந்தது</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="525"/> - <source>pa_context_get_source_output_info_list() failed</source> - <translation>pa_context_get_source_output_info_list() தோல்வியடைந்தது</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="584"/> - <location filename="../pavucontrol.cc" line="635"/> - <source>Connection failed, attempting reconnect</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="607"/> - <location filename="../pavucontrol.cc" line="664"/> - <source>PulseAudio Volume Control</source> - <translation>PulseAudio ஒலியளவு கட்டுப்பாடு</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="622"/> - <source>Connection to PulseAudio failed. Automatic retry in 5s - -In this case this is likely because PULSE_SERVER in the Environment/X11 Root Window Properties -or default-server in client.conf is misconfigured. -This situation can also arrise when PulseAudio crashed and left stale details in the X11 Root Window. -If this is the case, then PulseAudio should autospawn again, or if this is not configured you should -run start-pulseaudio-x11 manually.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="672"/> - <source>Select a specific tab on load.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="675"/> - <source>Retry forever if pa quits (every 5 seconds).</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="678"/> - <source>Maximize the window.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="703"/> - <source>Fatal Error: Unable to connect to PulseAudio</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>RoleWidget</name> - <message> - <location filename="../rolewidget.cc" line="59"/> - <source>pa_ext_stream_restore_write() failed</source> - <translation>pa_ext_stream_restore_write() தோல்வியடைந்தது</translation> - </message> -</context> -<context> - <name>SinkInputWidget</name> - <message> - <location filename="../sinkinputwidget.cc" line="36"/> - <source>on</source> - <translation>இல்</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="39"/> - <source>Terminate Playback</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="53"/> - <source>Unknown output</source> - <translation>தெரியாத வெளிப்பாடு</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="64"/> - <source>pa_context_set_sink_input_volume() failed</source> - <translation>pa_context_set_sink_input_volume() தோல்வியடைந்தது</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="79"/> - <source>pa_context_set_sink_input_mute() failed</source> - <translation>pa_context_set_sink_input_mute() தோல்வியடைந்தது</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="89"/> - <source>pa_context_kill_sink_input() failed</source> - <translation>pa_context_kill_sink_input() தோல்வியடைந்தது</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="114"/> - <source>pa_context_move_sink_input_by_index() failed</source> - <translation>pa_context_move_sink_input_by_index() தோல்வியடைந்தது</translation> - </message> -</context> -<context> - <name>SinkWidget</name> - <message> - <location filename="../sinkwidget.cc" line="81"/> - <source>pa_context_set_sink_volume_by_index() failed</source> - <translation>pa_context_set_sink_volume_by_index() தோல்வியடைந்தது</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="96"/> - <source>pa_context_set_sink_mute_by_index() failed</source> - <translation>pa_context_set_sink_mute_by_index() தோல்வியடைந்தது</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="110"/> - <source>pa_context_set_default_sink() failed</source> - <translation>pa_context_set_default_sink() தோல்வியடைந்தது</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="126"/> - <source>pa_context_set_sink_port_by_index() failed</source> - <translation>pa_context_set_sink_port_by_index() தோல்வி</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="166"/> - <source>pa_ext_device_restore_save_sink_formats() failed</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>SourceOutputWidget</name> - <message> - <location filename="../sourceoutputwidget.cc" line="35"/> - <source>from</source> - <translation>இலிருந்து</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="39"/> - <source>Terminate Recording</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="60"/> - <source>Unknown input</source> - <translation>தெரியாத உள்ளீடு</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="72"/> - <source>pa_context_set_source_output_volume() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="87"/> - <source>pa_context_set_source_output_mute() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="98"/> - <source>pa_context_kill_source_output() failed</source> - <translation>pa_context_kill_source_output() தோல்வியடைந்தது</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="125"/> - <source>pa_context_move_source_output_by_index() failed</source> - <translation>pa_context_move_source_output_by_index() தோல்வியடைந்தது</translation> - </message> -</context> -<context> - <name>SourceWidget</name> - <message> - <location filename="../sourcewidget.cc" line="35"/> - <source>pa_context_set_source_volume_by_index() failed</source> - <translation>pa_context_set_source_volume_by_index() தோல்வியடைந்தது</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="50"/> - <source>pa_context_set_source_mute_by_index() failed</source> - <translation>pa_context_set_source_mute_by_index() தோல்வியடைந்தது</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="64"/> - <source>pa_context_set_default_source() failed</source> - <translation>pa_context_set_default_source() தோல்வியடைந்தது</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="80"/> - <source>pa_context_set_source_port_by_index() failed</source> - <translation>pa_context_set_source_port_by_index() தோல்வி</translation> - </message> -</context> -<context> - <name>StreamWidget</name> - <message> - <location filename="../streamwidget.ui" line="14"/> - <source>Form</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.ui" line="32"/> - <source>Device Title</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.ui" line="52"/> - <source>direction</source> - <translation>திசை</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="59"/> - <source>device</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.ui" line="66"/> - <source>Mute audio</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.ui" line="79"/> - <source>Lock channels together</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.cc" line="34"/> - <source>Terminate</source> - <translation>Playbackஐ நிறுத்து</translation> - </message> -</context> -</TS> diff --git a/src/translations/pavucontrol-qt_te.ts b/src/translations/pavucontrol-qt_te.ts deleted file mode 100644 index f145cf5..0000000 --- a/src/translations/pavucontrol-qt_te.ts +++ /dev/null @@ -1,733 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE TS> -<TS version="2.1" language="te"> -<context> - <name>CardWidget</name> - <message> - <location filename="../cardwidget.ui" line="14"/> - <source>Form</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../cardwidget.ui" line="29"/> - <source>Card Name</source> - <translation>కార్డు నామము</translation> - </message> - <message> - <location filename="../cardwidget.ui" line="47"/> - <source>Profile:</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../cardwidget.cc" line="67"/> - <source>pa_context_set_card_profile_by_index() failed</source> - <translation>pa_context_set_card_profile_by_index() విఫలమైంది</translation> - </message> -</context> -<context> - <name>Channel</name> - <message> - <location filename="../channel.cc" line="89"/> - <source>%1% (%2dB)</source> - <comment>volume slider label [X% (YdB)]</comment> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../channel.cc" line="93"/> - <source>%1%</source> - <comment>volume slider label [X%]</comment> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Silence</small></source> - <translation type="unfinished"><small>నిశ్శబ్దము</small></translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Min</small></source> - <translation type="unfinished"><small>కనిష్టము</small></translation> - </message> - <message> - <location filename="../channel.cc" line="162"/> - <source><small>100% (0dB)</small></source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../channel.cc" line="165"/> - <source><small><i>Base</i></small></source> - <translation type="unfinished"><small><i>బేస్</i></small></translation> - </message> -</context> -<context> - <name>ChannelWidget</name> - <message> - <location filename="../channelwidget.ui" line="14"/> - <source>Form</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../channelwidget.ui" line="20"/> - <source><b>left-front</b></source> - <translation><b>ఎడమవైపు-ముందు</b></translation> - </message> - <message> - <location filename="../channelwidget.ui" line="34"/> - <source><small>50%</small></source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>DeviceWidget</name> - <message> - <location filename="../devicewidget.ui" line="14"/> - <source>Form</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="36"/> - <source>Device Title</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="56"/> - <source>Mute audio</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="69"/> - <source>Lock channels together</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="85"/> - <source>Set as fallback</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="103"/> - <source><b>Port:</b></source> - <translation><b>పోర్టు:</b></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="126"/> - <source>Show advanced options</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="172"/> - <source>PCM</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="182"/> - <source>AC3</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="189"/> - <source>EAC3</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="196"/> - <source>DTS</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="203"/> - <source>MPEG</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="210"/> - <source>AAC</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="238"/> - <source><b>Latency offset:</b></source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="245"/> - <source> ms</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="41"/> - <source>Rename device...</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="155"/> - <source>pa_context_set_port_latency_offset() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="226"/> - <source>Sorry, but device renaming is not supported.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="227"/> - <source>You need to load module-device-manager in the PulseAudio server in order to rename devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="233"/> - <source>Rename device %1 to:</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="240"/> - <source>pa_ext_device_manager_set_device_description() failed</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>MainWindow</name> - <message> - <location filename="../mainwindow.ui" line="14"/> - <source>Volume Control</source> - <translation>ధ్వని నియంత్రణ</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="28"/> - <source>&Playback</source> - <translation>ప్లేబ్యాక్ (&P)</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="55"/> - <source><i>No application is currently playing audio.</i></source> - <translation><i>ఏ అనువర్తనము యిప్పుడు ఆడియోను ప్లే చేయుటలేదు.</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="66"/> - <location filename="../mainwindow.ui" line="131"/> - <location filename="../mainwindow.ui" line="196"/> - <location filename="../mainwindow.ui" line="261"/> - <source>Show:</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="74"/> - <location filename="../mainwindow.ui" line="139"/> - <source>All Streams</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="79"/> - <location filename="../mainwindow.ui" line="144"/> - <source>Applications</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="84"/> - <location filename="../mainwindow.ui" line="149"/> - <source>Virtual Streams</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="93"/> - <source>&Recording</source> - <translation>రికార్డింగ్ (&R)</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="120"/> - <source><i>No application is currently recording audio.</i></source> - <translation><i>ఏ అనువర్తనము యిప్పుడు ఆడియోను రికార్డు చేయుటలేదు.</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="158"/> - <source>&Output Devices</source> - <translation>అవుట్పుట్ పరికరములు (&O)</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="185"/> - <source><i>No output devices available</i></source> - <translation><i>ఏ అవుట్పుట్ పరికరములు అందుబాటులోలేవు</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="204"/> - <source>All Output Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="209"/> - <source>Hardware Output Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="214"/> - <source>Virtual Output Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="223"/> - <source>&Input Devices</source> - <translation>ఇన్పుట్ పరికరములు (&I)</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="250"/> - <source><i>No input devices available</i></source> - <translation><i>ఏ యిన్పుట్ పరికరములు అందుబాటులో లేవు</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="269"/> - <source>All Input Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="274"/> - <source>All Except Monitors</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="279"/> - <source>Hardware Input Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="284"/> - <source>Virtual Input Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="289"/> - <source>Monitors</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="298"/> - <source>&Configuration</source> - <translation>ఆకృతీకరణ (&C)</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="325"/> - <source><i>No cards available for configuration</i></source> - <translation><i>ఆకృతీకరణకు ఏ కార్డులు అందుబాటులో లేవు</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="336"/> - <source>Show volume meters</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="347"/> - <source>...</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="159"/> - <source> (plugged in)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="163"/> - <location filename="../mainwindow.cc" line="257"/> - <source> (unavailable)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="165"/> - <location filename="../mainwindow.cc" line="254"/> - <source> (unplugged)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="388"/> - <source>Failed to read data from stream</source> - <translation>స్ట్రీమ్ నుండి డాటాను చదువుటకు విఫలమైంది</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="432"/> - <source>Peak detect</source> - <translation>అంత్యస్థాయి గుర్తింపు</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="433"/> - <source>Failed to create monitoring stream</source> - <translation>పర్యవేక్షక స్ట్రీమ్ సృష్టించుటకు విఫలమైంది</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="448"/> - <source>Failed to connect monitoring stream</source> - <translation>పర్యవేక్షక స్ట్రీమ్ అనుసంధానములో విఫలమైంది</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="587"/> - <source>Ignoring sink-input due to it being designated as an event and thus handled by the Event widget</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="759"/> - <source>System Sounds</source> - <translation>సిస్టమ్ శబ్దములు</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="1089"/> - <source>Establishing connection to PulseAudio. Please wait...</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>QObject</name> - <message> - <location filename="../pavucontrol.cc" line="66"/> - <source>Error</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="87"/> - <source>Card callback failure</source> - <translation>కార్డ్ కాల్బ్యాక్ విఫలమైంది</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="110"/> - <source>Sink callback failure</source> - <translation>సింక్ కాల్బ్యాక్ విఫలమైంది</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="133"/> - <source>Source callback failure</source> - <translation>ములం కాల్బ్యాక్ విఫలమైంది</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="152"/> - <source>Sink input callback failure</source> - <translation>సింక్ ఇన్పుట్ కాల్బ్యాక్ విఫలమైంది</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="171"/> - <source>Source output callback failure</source> - <translation>మూలం అవుట్పుట్ కాల్బ్యాక్ విఫలమైంది</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="211"/> - <source>Client callback failure</source> - <translation>కక్షిదారి కాల్బ్యాక్ విఫలమైంది</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="227"/> - <source>Server info callback failure</source> - <translation>సేవిక సమాచారము కాల్బ్యాక్ విఫలమైంది</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="245"/> - <location filename="../pavucontrol.cc" line="542"/> - <source>Failed to initialize stream_restore extension: %s</source> - <translation>stream_restore పొడిగింపును సిద్దముచేయుటకు విఫలమైంది: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="263"/> - <source>pa_ext_stream_restore_read() failed</source> - <translation>pa_ext_stream_restore_read() విఫలమైంది</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="281"/> - <location filename="../pavucontrol.cc" line="556"/> - <source>Failed to initialize device restore extension: %s</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="302"/> - <source>pa_ext_device_restore_read_sink_formats() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="320"/> - <location filename="../pavucontrol.cc" line="569"/> - <source>Failed to initialize device manager extension: %s</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="339"/> - <source>pa_ext_device_manager_read() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="356"/> - <source>pa_context_get_sink_info_by_index() failed</source> - <translation>pa_context_get_sink_info_by_index() విఫలమైంది</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="369"/> - <source>pa_context_get_source_info_by_index() failed</source> - <translation>pa_context_get_source_info_by_index() విఫలమైంది</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="382"/> - <location filename="../pavucontrol.cc" line="395"/> - <source>pa_context_get_sink_input_info() failed</source> - <translation>pa_context_get_sink_input_info() విఫలమైంది</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="408"/> - <source>pa_context_get_client_info() failed</source> - <translation>pa_context_get_client_info() విఫలమైంది</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="418"/> - <location filename="../pavucontrol.cc" line="483"/> - <source>pa_context_get_server_info() failed</source> - <translation>pa_context_get_server_info() విఫలమైంది</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="431"/> - <source>pa_context_get_card_info_by_index() failed</source> - <translation>pa_context_get_card_info_by_index() విఫలమైంది</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="474"/> - <source>pa_context_subscribe() failed</source> - <translation>pa_context_subscribe() విఫలమైంది</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="490"/> - <source>pa_context_client_info_list() failed</source> - <translation>pa_context_client_info_list() విఫలమైంది</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="497"/> - <source>pa_context_get_card_info_list() failed</source> - <translation>pa_context_get_card_info_list() విఫలమైంది</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="504"/> - <source>pa_context_get_sink_info_list() failed</source> - <translation>pa_context_get_sink_info_list() విఫలమైంది</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="511"/> - <source>pa_context_get_source_info_list() failed</source> - <translation>pa_context_get_source_info_list() విఫలమైంది</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="518"/> - <source>pa_context_get_sink_input_info_list() failed</source> - <translation>pa_context_get_sink_input_info_list() విఫలమైంది</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="525"/> - <source>pa_context_get_source_output_info_list() failed</source> - <translation>pa_context_get_source_output_info_list() విఫలమైంది</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="584"/> - <location filename="../pavucontrol.cc" line="635"/> - <source>Connection failed, attempting reconnect</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="607"/> - <location filename="../pavucontrol.cc" line="664"/> - <source>PulseAudio Volume Control</source> - <translation>PulseAudio ధ్వని నియంత్రణ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="622"/> - <source>Connection to PulseAudio failed. Automatic retry in 5s - -In this case this is likely because PULSE_SERVER in the Environment/X11 Root Window Properties -or default-server in client.conf is misconfigured. -This situation can also arrise when PulseAudio crashed and left stale details in the X11 Root Window. -If this is the case, then PulseAudio should autospawn again, or if this is not configured you should -run start-pulseaudio-x11 manually.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="672"/> - <source>Select a specific tab on load.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="675"/> - <source>Retry forever if pa quits (every 5 seconds).</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="678"/> - <source>Maximize the window.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="703"/> - <source>Fatal Error: Unable to connect to PulseAudio</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>RoleWidget</name> - <message> - <location filename="../rolewidget.cc" line="59"/> - <source>pa_ext_stream_restore_write() failed</source> - <translation>pa_ext_stream_restore_write() విఫలమైంది</translation> - </message> -</context> -<context> - <name>SinkInputWidget</name> - <message> - <location filename="../sinkinputwidget.cc" line="36"/> - <source>on</source> - <translation>ఆన్</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="39"/> - <source>Terminate Playback</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="53"/> - <source>Unknown output</source> - <translation>తెలియని అవుట్పుట్</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="64"/> - <source>pa_context_set_sink_input_volume() failed</source> - <translation>pa_context_set_sink_input_volume() విఫలమైంది</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="79"/> - <source>pa_context_set_sink_input_mute() failed</source> - <translation>pa_context_set_sink_input_mute() విఫలమైంది</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="89"/> - <source>pa_context_kill_sink_input() failed</source> - <translation>pa_context_kill_sink_input() విఫలమైంది</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="114"/> - <source>pa_context_move_sink_input_by_index() failed</source> - <translation>pa_context_move_sink_input_by_index() విఫలమైంది</translation> - </message> -</context> -<context> - <name>SinkWidget</name> - <message> - <location filename="../sinkwidget.cc" line="81"/> - <source>pa_context_set_sink_volume_by_index() failed</source> - <translation>pa_context_set_sink_volume_by_index() విఫలమైంది</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="96"/> - <source>pa_context_set_sink_mute_by_index() failed</source> - <translation>pa_context_set_sink_mute_by_index() విఫలమైంది</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="110"/> - <source>pa_context_set_default_sink() failed</source> - <translation>pa_context_set_default_sink() విఫలమైంది</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="126"/> - <source>pa_context_set_sink_port_by_index() failed</source> - <translation>pa_context_set_sink_port_by_index() విఫలమైంది</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="166"/> - <source>pa_ext_device_restore_save_sink_formats() failed</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>SourceOutputWidget</name> - <message> - <location filename="../sourceoutputwidget.cc" line="35"/> - <source>from</source> - <translation>నుండి</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="39"/> - <source>Terminate Recording</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="60"/> - <source>Unknown input</source> - <translation>తెలియని యిన్పుట్</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="72"/> - <source>pa_context_set_source_output_volume() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="87"/> - <source>pa_context_set_source_output_mute() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="98"/> - <source>pa_context_kill_source_output() failed</source> - <translation>pa_context_kill_source_output() విఫలమైంది</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="125"/> - <source>pa_context_move_source_output_by_index() failed</source> - <translation>pa_context_move_source_output_by_index() విఫలమైంది</translation> - </message> -</context> -<context> - <name>SourceWidget</name> - <message> - <location filename="../sourcewidget.cc" line="35"/> - <source>pa_context_set_source_volume_by_index() failed</source> - <translation>pa_context_set_source_volume_by_index() విఫలమైంది</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="50"/> - <source>pa_context_set_source_mute_by_index() failed</source> - <translation>pa_context_set_source_mute_by_index() విఫలమైంది</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="64"/> - <source>pa_context_set_default_source() failed</source> - <translation>pa_context_set_default_source() విఫలమైంది</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="80"/> - <source>pa_context_set_source_port_by_index() failed</source> - <translation>pa_context_set_source_port_by_index() విఫలమైంది</translation> - </message> -</context> -<context> - <name>StreamWidget</name> - <message> - <location filename="../streamwidget.ui" line="14"/> - <source>Form</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.ui" line="32"/> - <source>Device Title</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.ui" line="52"/> - <source>direction</source> - <translation>దిశ</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="59"/> - <source>device</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.ui" line="66"/> - <source>Mute audio</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.ui" line="79"/> - <source>Lock channels together</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.cc" line="34"/> - <source>Terminate</source> - <translation>ప్లేబ్యాక్ అంతంచేయి</translation> - </message> -</context> -</TS> diff --git a/src/translations/pavucontrol-qt_th.ts b/src/translations/pavucontrol-qt_th.ts deleted file mode 100644 index fa7ace5..0000000 --- a/src/translations/pavucontrol-qt_th.ts +++ /dev/null @@ -1,733 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE TS> -<TS version="2.1" language="th"> -<context> - <name>CardWidget</name> - <message> - <location filename="../cardwidget.ui" line="14"/> - <source>Form</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../cardwidget.ui" line="29"/> - <source>Card Name</source> - <translation>ชื่อการ์ด</translation> - </message> - <message> - <location filename="../cardwidget.ui" line="47"/> - <source>Profile:</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../cardwidget.cc" line="67"/> - <source>pa_context_set_card_profile_by_index() failed</source> - <translation>pa_context_set_card_profile_by_index() ไม่สำเร็จ</translation> - </message> -</context> -<context> - <name>Channel</name> - <message> - <location filename="../channel.cc" line="89"/> - <source>%1% (%2dB)</source> - <comment>volume slider label [X% (YdB)]</comment> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../channel.cc" line="93"/> - <source>%1%</source> - <comment>volume slider label [X%]</comment> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Silence</small></source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Min</small></source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../channel.cc" line="162"/> - <source><small>100% (0dB)</small></source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../channel.cc" line="165"/> - <source><small><i>Base</i></small></source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>ChannelWidget</name> - <message> - <location filename="../channelwidget.ui" line="14"/> - <source>Form</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../channelwidget.ui" line="20"/> - <source><b>left-front</b></source> - <translation><b>ซ้าย-หน้า</b></translation> - </message> - <message> - <location filename="../channelwidget.ui" line="34"/> - <source><small>50%</small></source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>DeviceWidget</name> - <message> - <location filename="../devicewidget.ui" line="14"/> - <source>Form</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="36"/> - <source>Device Title</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="56"/> - <source>Mute audio</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="69"/> - <source>Lock channels together</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="85"/> - <source>Set as fallback</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="103"/> - <source><b>Port:</b></source> - <translation><b>โพรไฟล์:</b></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="126"/> - <source>Show advanced options</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="172"/> - <source>PCM</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="182"/> - <source>AC3</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="189"/> - <source>EAC3</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="196"/> - <source>DTS</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="203"/> - <source>MPEG</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="210"/> - <source>AAC</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="238"/> - <source><b>Latency offset:</b></source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="245"/> - <source> ms</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="41"/> - <source>Rename device...</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="155"/> - <source>pa_context_set_port_latency_offset() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="226"/> - <source>Sorry, but device renaming is not supported.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="227"/> - <source>You need to load module-device-manager in the PulseAudio server in order to rename devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="233"/> - <source>Rename device %1 to:</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="240"/> - <source>pa_ext_device_manager_set_device_description() failed</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>MainWindow</name> - <message> - <location filename="../mainwindow.ui" line="14"/> - <source>Volume Control</source> - <translation>ตัวควบคุมเสียง</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="28"/> - <source>&Playback</source> - <translation>@เล่น</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="55"/> - <source><i>No application is currently playing audio.</i></source> - <translation><i>ไม่มีโปรแกรมใดกำลังเล่นเสียงอยู่</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="66"/> - <location filename="../mainwindow.ui" line="131"/> - <location filename="../mainwindow.ui" line="196"/> - <location filename="../mainwindow.ui" line="261"/> - <source>Show:</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="74"/> - <location filename="../mainwindow.ui" line="139"/> - <source>All Streams</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="79"/> - <location filename="../mainwindow.ui" line="144"/> - <source>Applications</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="84"/> - <location filename="../mainwindow.ui" line="149"/> - <source>Virtual Streams</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="93"/> - <source>&Recording</source> - <translation>&บันทึกเสียง</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="120"/> - <source><i>No application is currently recording audio.</i></source> - <translation><i>ไม่มีโปรแกรมใดกำลังอัดเสียงอยู่</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="158"/> - <source>&Output Devices</source> - <translation>อุปกรณ์เ&อาท์พุต</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="185"/> - <source><i>No output devices available</i></source> - <translation><i>ไม่มีอุปกรณ์เอาท์พุต</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="204"/> - <source>All Output Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="209"/> - <source>Hardware Output Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="214"/> - <source>Virtual Output Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="223"/> - <source>&Input Devices</source> - <translation>&อุปกรณ์รับเข้า</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="250"/> - <source><i>No input devices available</i></source> - <translation><i>ไม่มีอุปกรณ์รับเข้า</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="269"/> - <source>All Input Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="274"/> - <source>All Except Monitors</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="279"/> - <source>Hardware Input Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="284"/> - <source>Virtual Input Devices</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="289"/> - <source>Monitors</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="298"/> - <source>&Configuration</source> - <translation>&การตั้งค่า</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="325"/> - <source><i>No cards available for configuration</i></source> - <translation><i>ไม่มีการ์ดให้ปรับแต่ง</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="336"/> - <source>Show volume meters</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="347"/> - <source>...</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="159"/> - <source> (plugged in)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="163"/> - <location filename="../mainwindow.cc" line="257"/> - <source> (unavailable)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="165"/> - <location filename="../mainwindow.cc" line="254"/> - <source> (unplugged)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="388"/> - <source>Failed to read data from stream</source> - <translation>ไม่สามารถอ่านจากสตรีมได้</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="432"/> - <source>Peak detect</source> - <translation>ตรวจพบพีค</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="433"/> - <source>Failed to create monitoring stream</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="448"/> - <source>Failed to connect monitoring stream</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="587"/> - <source>Ignoring sink-input due to it being designated as an event and thus handled by the Event widget</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="759"/> - <source>System Sounds</source> - <translation>เสียงของระบบ</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="1089"/> - <source>Establishing connection to PulseAudio. Please wait...</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>QObject</name> - <message> - <location filename="../pavucontrol.cc" line="66"/> - <source>Error</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="87"/> - <source>Card callback failure</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="110"/> - <source>Sink callback failure</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="133"/> - <source>Source callback failure</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="152"/> - <source>Sink input callback failure</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="171"/> - <source>Source output callback failure</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="211"/> - <source>Client callback failure</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="227"/> - <source>Server info callback failure</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="245"/> - <location filename="../pavucontrol.cc" line="542"/> - <source>Failed to initialize stream_restore extension: %s</source> - <translation>ไม่สามารถเรียกส่วนขยายของ stream_restore: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="263"/> - <source>pa_ext_stream_restore_read() failed</source> - <translation>pa_ext_stream_restore_read() ไม่สำเร็จ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="281"/> - <location filename="../pavucontrol.cc" line="556"/> - <source>Failed to initialize device restore extension: %s</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="302"/> - <source>pa_ext_device_restore_read_sink_formats() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="320"/> - <location filename="../pavucontrol.cc" line="569"/> - <source>Failed to initialize device manager extension: %s</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="339"/> - <source>pa_ext_device_manager_read() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="356"/> - <source>pa_context_get_sink_info_by_index() failed</source> - <translation>pa_context_get_sink_info_by_index() ไม่สำเร็จ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="369"/> - <source>pa_context_get_source_info_by_index() failed</source> - <translation>pa_context_get_source_info_by_index() ไม่สำเร็จ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="382"/> - <location filename="../pavucontrol.cc" line="395"/> - <source>pa_context_get_sink_input_info() failed</source> - <translation>pa_context_get_sink_input_info() ไม่สำเร็จ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="408"/> - <source>pa_context_get_client_info() failed</source> - <translation>pa_context_get_client_info() ไม่สำเร็จ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="418"/> - <location filename="../pavucontrol.cc" line="483"/> - <source>pa_context_get_server_info() failed</source> - <translation>pa_context_get_server_info() ไม่สำเร็จ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="431"/> - <source>pa_context_get_card_info_by_index() failed</source> - <translation>pa_context_get_card_info_by_index() ไม่สำเร็จ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="474"/> - <source>pa_context_subscribe() failed</source> - <translation>pa_context_subscribe() ไม่สำเร็จ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="490"/> - <source>pa_context_client_info_list() failed</source> - <translation>pa_context_client_info_list() ไม่สำเร็จ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="497"/> - <source>pa_context_get_card_info_list() failed</source> - <translation>pa_context_get_card_info_list() ไม่สำเร็จ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="504"/> - <source>pa_context_get_sink_info_list() failed</source> - <translation>pa_context_get_sink_info_list() ไม่สำเร็จ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="511"/> - <source>pa_context_get_source_info_list() failed</source> - <translation>pa_context_get_source_info_list() ไม่สำเร็จ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="518"/> - <source>pa_context_get_sink_input_info_list() failed</source> - <translation>pa_context_get_sink_input_info_list() ไม่สำเร็จ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="525"/> - <source>pa_context_get_source_output_info_list() failed</source> - <translation>pa_context_get_source_output_info_list() ไม่สำเร็จ</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="584"/> - <location filename="../pavucontrol.cc" line="635"/> - <source>Connection failed, attempting reconnect</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="607"/> - <location filename="../pavucontrol.cc" line="664"/> - <source>PulseAudio Volume Control</source> - <translation>ตัวควบคุมเสียง PulseAudio</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="622"/> - <source>Connection to PulseAudio failed. Automatic retry in 5s - -In this case this is likely because PULSE_SERVER in the Environment/X11 Root Window Properties -or default-server in client.conf is misconfigured. -This situation can also arrise when PulseAudio crashed and left stale details in the X11 Root Window. -If this is the case, then PulseAudio should autospawn again, or if this is not configured you should -run start-pulseaudio-x11 manually.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="672"/> - <source>Select a specific tab on load.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="675"/> - <source>Retry forever if pa quits (every 5 seconds).</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="678"/> - <source>Maximize the window.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="703"/> - <source>Fatal Error: Unable to connect to PulseAudio</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>RoleWidget</name> - <message> - <location filename="../rolewidget.cc" line="59"/> - <source>pa_ext_stream_restore_write() failed</source> - <translation>pa_ext_stream_restore_write() ไม่สำเร็จ</translation> - </message> -</context> -<context> - <name>SinkInputWidget</name> - <message> - <location filename="../sinkinputwidget.cc" line="36"/> - <source>on</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="39"/> - <source>Terminate Playback</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="53"/> - <source>Unknown output</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="64"/> - <source>pa_context_set_sink_input_volume() failed</source> - <translation>pa_context_set_sink_input_volume() ไม่สำเร็จ</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="79"/> - <source>pa_context_set_sink_input_mute() failed</source> - <translation>pa_context_set_sink_input_mute() ไม่สำเร็จ</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="89"/> - <source>pa_context_kill_sink_input() failed</source> - <translation>pa_context_kill_sink_input() ไม่สำเร็จ</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="114"/> - <source>pa_context_move_sink_input_by_index() failed</source> - <translation>pa_context_move_sink_input_by_index() ไม่สำเร็จ</translation> - </message> -</context> -<context> - <name>SinkWidget</name> - <message> - <location filename="../sinkwidget.cc" line="81"/> - <source>pa_context_set_sink_volume_by_index() failed</source> - <translation>pa_context_set_sink_volume_by_index() ไม่สำเร็จ</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="96"/> - <source>pa_context_set_sink_mute_by_index() failed</source> - <translation>pa_context_set_sink_mute_by_index() ไม่สำเร็จ</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="110"/> - <source>pa_context_set_default_sink() failed</source> - <translation>pa_context_set_default_sink() ไม่สำเร็จ</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="126"/> - <source>pa_context_set_sink_port_by_index() failed</source> - <translation>pa_context_set_sink_mute_by_index() ไม่สำเร็จ</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="166"/> - <source>pa_ext_device_restore_save_sink_formats() failed</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>SourceOutputWidget</name> - <message> - <location filename="../sourceoutputwidget.cc" line="35"/> - <source>from</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="39"/> - <source>Terminate Recording</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="60"/> - <source>Unknown input</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="72"/> - <source>pa_context_set_source_output_volume() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="87"/> - <source>pa_context_set_source_output_mute() failed</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="98"/> - <source>pa_context_kill_source_output() failed</source> - <translation>pa_context_kill_source_output() ไม่สำเร็จ</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="125"/> - <source>pa_context_move_source_output_by_index() failed</source> - <translation>pa_context_move_source_output_by_index() ไม่สำเร็จ</translation> - </message> -</context> -<context> - <name>SourceWidget</name> - <message> - <location filename="../sourcewidget.cc" line="35"/> - <source>pa_context_set_source_volume_by_index() failed</source> - <translation>pa_context_set_source_volume_by_index() ไม่สำเร็จ</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="50"/> - <source>pa_context_set_source_mute_by_index() failed</source> - <translation>pa_context_set_source_mute_by_index() ไม่สำเร็จ</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="64"/> - <source>pa_context_set_default_source() failed</source> - <translation>pa_context_set_default_source() ไม่สำเร็จ</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="80"/> - <source>pa_context_set_source_port_by_index() failed</source> - <translation>pa_context_set_source_mute_by_index() ไม่สำเร็จ</translation> - </message> -</context> -<context> - <name>StreamWidget</name> - <message> - <location filename="../streamwidget.ui" line="14"/> - <source>Form</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.ui" line="32"/> - <source>Device Title</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.ui" line="52"/> - <source>direction</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.ui" line="59"/> - <source>device</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.ui" line="66"/> - <source>Mute audio</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.ui" line="79"/> - <source>Lock channels together</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../streamwidget.cc" line="34"/> - <source>Terminate</source> - <translation>_จบสตรีม</translation> - </message> -</context> -</TS> diff --git a/src/translations/pavucontrol-qt_tr.desktop.yaml b/src/translations/pavucontrol-qt_tr.desktop.yaml deleted file mode 100644 index 85357bd..0000000 --- a/src/translations/pavucontrol-qt_tr.desktop.yaml +++ /dev/null @@ -1,3 +0,0 @@ -Desktop Entry/Name: "PulseAudio Ses Denetimi" -Desktop Entry/GenericName: "Ses Denetimi" -Desktop Entry/Comment: "Ses seviyesini ayarlayın" diff --git a/src/translations/pavucontrol-qt_tr.ts b/src/translations/pavucontrol-qt_tr.ts deleted file mode 100644 index 310a7ba..0000000 --- a/src/translations/pavucontrol-qt_tr.ts +++ /dev/null @@ -1,740 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE TS> -<TS version="2.1" language="tr"> -<context> - <name>CardWidget</name> - <message> - <location filename="../cardwidget.ui" line="14"/> - <source>Form</source> - <translation>Form</translation> - </message> - <message> - <location filename="../cardwidget.ui" line="29"/> - <source>Card Name</source> - <translation>Kart Adı</translation> - </message> - <message> - <location filename="../cardwidget.ui" line="47"/> - <source>Profile:</source> - <translation>Profil:</translation> - </message> - <message> - <location filename="../cardwidget.cc" line="67"/> - <source>pa_context_set_card_profile_by_index() failed</source> - <translation>pa_context_set_card_profile_by_index() başarısız oldu</translation> - </message> -</context> -<context> - <name>Channel</name> - <message> - <location filename="../channel.cc" line="89"/> - <source>%1% (%2dB)</source> - <comment>volume slider label [X% (YdB)]</comment> - <translation>%1% (%2dB)</translation> - </message> - <message> - <location filename="../channel.cc" line="93"/> - <source>%1%</source> - <comment>volume slider label [X%]</comment> - <translation>%1%</translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Silence</small></source> - <translation><small>Sessiz</small></translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Min</small></source> - <translation><small>En az</small></translation> - </message> - <message> - <location filename="../channel.cc" line="162"/> - <source><small>100% (0dB)</small></source> - <translation><small>100% (0dB)</small></translation> - </message> - <message> - <location filename="../channel.cc" line="165"/> - <source><small><i>Base</i></small></source> - <translation><small><i>Temel</i></small></translation> - </message> -</context> -<context> - <name>ChannelWidget</name> - <message> - <location filename="../channelwidget.ui" line="14"/> - <source>Form</source> - <translation>Form</translation> - </message> - <message> - <location filename="../channelwidget.ui" line="20"/> - <source><b>left-front</b></source> - <translation><b>sol-ön</b></translation> - </message> - <message> - <location filename="../channelwidget.ui" line="34"/> - <source><small>50%</small></source> - <translation><small>50%</small></translation> - </message> -</context> -<context> - <name>DeviceWidget</name> - <message> - <location filename="../devicewidget.ui" line="14"/> - <source>Form</source> - <translation>Form</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="36"/> - <source>Device Title</source> - <translation>Aygıt Başlığı</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="56"/> - <source>Mute audio</source> - <translation>Sesi kapat</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="69"/> - <source>Lock channels together</source> - <translation>Kanalları birlikte kilitle</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="85"/> - <source>Set as fallback</source> - <translation>Geri dönüş olarak ayarla</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="103"/> - <source><b>Port:</b></source> - <translation><b>Bağlantı Noktası:</b></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="126"/> - <source>Show advanced options</source> - <translation>Gelişmiş seçenekleri göster</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="172"/> - <source>PCM</source> - <translation>PCM</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="182"/> - <source>AC3</source> - <translation>AC3</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="189"/> - <source>EAC3</source> - <translation>EAC3</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="196"/> - <source>DTS</source> - <translation>DTS</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="203"/> - <source>MPEG</source> - <translation>MPEG</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="210"/> - <source>AAC</source> - <translation>AAC</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="238"/> - <source><b>Latency offset:</b></source> - <translation><b>Gecikme süresi:</b></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="245"/> - <source> ms</source> - <translation> ms</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="41"/> - <source>Rename device...</source> - <translation>Aygıtı yeniden adlandır...</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="155"/> - <source>pa_context_set_port_latency_offset() failed</source> - <translation>pa_context_set_port_latency_offset() başarısız oldu</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="226"/> - <source>Sorry, but device renaming is not supported.</source> - <translation>Üzgünüm, aygıtı yeniden adlandırma desteklenmiyor.</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="227"/> - <source>You need to load module-device-manager in the PulseAudio server in order to rename devices</source> - <translation>Aygıtları yeniden adlandırmak için PulseAudio sunucusuna modül-aygıt-yöneticisi yüklemeniz gerekir</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="233"/> - <source>Rename device %1 to:</source> - <translation>%1 aygıtını yeniden adlandır:</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="240"/> - <source>pa_ext_device_manager_set_device_description() failed</source> - <translation>pa_ext_device_manager_set_device_description() başarısız oldu</translation> - </message> -</context> -<context> - <name>MainWindow</name> - <message> - <location filename="../mainwindow.ui" line="14"/> - <source>Volume Control</source> - <translation>Ses Denetimi</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="28"/> - <source>&Playback</source> - <translation>Ça&lma</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="55"/> - <source><i>No application is currently playing audio.</i></source> - <translation><i>Şu anda hiçbir uygulama ses çalmıyor.</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="66"/> - <location filename="../mainwindow.ui" line="131"/> - <location filename="../mainwindow.ui" line="196"/> - <location filename="../mainwindow.ui" line="261"/> - <source>Show:</source> - <translation>Göster:</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="74"/> - <location filename="../mainwindow.ui" line="139"/> - <source>All Streams</source> - <translation>Tüm Akışlar</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="79"/> - <location filename="../mainwindow.ui" line="144"/> - <source>Applications</source> - <translation>Uygulamalar</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="84"/> - <location filename="../mainwindow.ui" line="149"/> - <source>Virtual Streams</source> - <translation>Sanal Akışlar</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="93"/> - <source>&Recording</source> - <translation>&Kayıt</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="120"/> - <source><i>No application is currently recording audio.</i></source> - <translation><i>Şu anda hiçbir uygulama ses kaydetmiyor.</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="158"/> - <source>&Output Devices</source> - <translation>Çı&kış Aygıtları</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="185"/> - <source><i>No output devices available</i></source> - <translation><i>Çıkış aygıtı bulunamadı</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="204"/> - <source>All Output Devices</source> - <translation>Tüm Çıkış Aygıtları</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="209"/> - <source>Hardware Output Devices</source> - <translation>Donanım Çıkış Aygıtları</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="214"/> - <source>Virtual Output Devices</source> - <translation>Sanal Çıkış Aygıtları</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="223"/> - <source>&Input Devices</source> - <translation>&Giriş Aygıtları</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="250"/> - <source><i>No input devices available</i></source> - <translation><i>Giriş aygıtı bulunamadı</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="269"/> - <source>All Input Devices</source> - <translation>Tüm Giriş Aygıtları</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="274"/> - <source>All Except Monitors</source> - <translation>Monitörler Hariç</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="279"/> - <source>Hardware Input Devices</source> - <translation>Donanım Giriş Aygıtları</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="284"/> - <source>Virtual Input Devices</source> - <translation>Sanal Giriş Aygıtları</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="289"/> - <source>Monitors</source> - <translation>Monitörler</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="298"/> - <source>&Configuration</source> - <translation>&Yapılandırma</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="325"/> - <source><i>No cards available for configuration</i></source> - <translation><i>Yapılandırma için kart yok</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="336"/> - <source>Show volume meters</source> - <translation>Ses ölçeri göster</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="347"/> - <source>...</source> - <translation>...</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="159"/> - <source> (plugged in)</source> - <translation> (takıldı)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="163"/> - <location filename="../mainwindow.cc" line="257"/> - <source> (unavailable)</source> - <translation> (kullanım dışı)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="165"/> - <location filename="../mainwindow.cc" line="254"/> - <source> (unplugged)</source> - <translation> (çıkartıldı)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="388"/> - <source>Failed to read data from stream</source> - <translation>Ses akışından veri okunamıyor</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="432"/> - <source>Peak detect</source> - <translation>Tepe noktası tespiti</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="433"/> - <source>Failed to create monitoring stream</source> - <translation>Monitör akışı oluşturulamadı</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="448"/> - <source>Failed to connect monitoring stream</source> - <translation>Monitör akışına bağlanılamadı</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="587"/> - <source>Ignoring sink-input due to it being designated as an event and thus handled by the Event widget</source> - <translation>Olay olarak tanımlanması ve dolayısıyla Etkinlik widget'ı tarafından işlenmesi nedeniyle sink-girişi yok sayılyor</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="759"/> - <source>System Sounds</source> - <translation>Sistem Sesleri</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="1089"/> - <source>Establishing connection to PulseAudio. Please wait...</source> - <translation>PulseAudio ile bağlantı kuruluyor. Lütfen bekleyin...</translation> - </message> -</context> -<context> - <name>QObject</name> - <message> - <location filename="../pavucontrol.cc" line="66"/> - <source>Error</source> - <translation>Hata</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="87"/> - <source>Card callback failure</source> - <translation>Kart geri çağırma hatası</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="110"/> - <source>Sink callback failure</source> - <translation>Sink geri çağırma hatası</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="133"/> - <source>Source callback failure</source> - <translation>Kaynak geri çağırma hatası</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="152"/> - <source>Sink input callback failure</source> - <translation>Sink girdisi geri çağırma hatası</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="171"/> - <source>Source output callback failure</source> - <translation>Kaynak çıktısı geri çağırma hatası</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="211"/> - <source>Client callback failure</source> - <translation>İstemci geri çağırma hatası</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="227"/> - <source>Server info callback failure</source> - <translation>Sunucu bilgisi geri çağırma hatası</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="245"/> - <location filename="../pavucontrol.cc" line="542"/> - <source>Failed to initialize stream_restore extension: %s</source> - <translation>stream_restore eklentisi başlatılamadı: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="263"/> - <source>pa_ext_stream_restore_read() failed</source> - <translation>pa_ext_stream_restore_read() başarısız oldu</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="281"/> - <location filename="../pavucontrol.cc" line="556"/> - <source>Failed to initialize device restore extension: %s</source> - <translation>Aygıt geri yükleme eklentisi başlatılamadı: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="302"/> - <source>pa_ext_device_restore_read_sink_formats() failed</source> - <translation>pa_ext_device_restore_read_sink_formats() başarısız oldu</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="320"/> - <location filename="../pavucontrol.cc" line="569"/> - <source>Failed to initialize device manager extension: %s</source> - <translation>Aygıt yönetici eklentisi başlatılamadı: %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="339"/> - <source>pa_ext_device_manager_read() failed</source> - <translation>pa_ext_device_manager_read() başarısız oldu</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="356"/> - <source>pa_context_get_sink_info_by_index() failed</source> - <translation>pa_context_get_sink_info_by_index() başarısız oldu</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="369"/> - <source>pa_context_get_source_info_by_index() failed</source> - <translation>pa_context_get_source_info_by_index() başarısız oldu</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="382"/> - <location filename="../pavucontrol.cc" line="395"/> - <source>pa_context_get_sink_input_info() failed</source> - <translation>pa_context_get_sink_input_info() başarısız oldu</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="408"/> - <source>pa_context_get_client_info() failed</source> - <translation>pa_context_get_client_info() başarısız oldu</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="418"/> - <location filename="../pavucontrol.cc" line="483"/> - <source>pa_context_get_server_info() failed</source> - <translation>pa_context_get_server_info() başarısız oldu</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="431"/> - <source>pa_context_get_card_info_by_index() failed</source> - <translation>pa_context_get_card_info_by_index() başarısız oldu</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="474"/> - <source>pa_context_subscribe() failed</source> - <translation>pa_context_subscribe() başarısız oldu</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="490"/> - <source>pa_context_client_info_list() failed</source> - <translation>pa_context_client_info_list() başarısız oldu</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="497"/> - <source>pa_context_get_card_info_list() failed</source> - <translation>pa_context_get_card_info_list() başarısız oldu</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="504"/> - <source>pa_context_get_sink_info_list() failed</source> - <translation>pa_context_get_sink_info_list() başarısız oldu</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="511"/> - <source>pa_context_get_source_info_list() failed</source> - <translation>pa_context_get_source_info_list() başarısız oldu</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="518"/> - <source>pa_context_get_sink_input_info_list() failed</source> - <translation>pa_context_get_sink_input_info_list() başarısız oldu</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="525"/> - <source>pa_context_get_source_output_info_list() failed</source> - <translation>pa_context_get_source_output_info_list() başarısız oldu</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="584"/> - <location filename="../pavucontrol.cc" line="635"/> - <source>Connection failed, attempting reconnect</source> - <translation>Bağlantı başarısız oldu, yeniden bağlanılıyor</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="607"/> - <location filename="../pavucontrol.cc" line="664"/> - <source>PulseAudio Volume Control</source> - <translation>PulseAudio Ses Denetimi</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="622"/> - <source>Connection to PulseAudio failed. Automatic retry in 5s - -In this case this is likely because PULSE_SERVER in the Environment/X11 Root Window Properties -or default-server in client.conf is misconfigured. -This situation can also arrise when PulseAudio crashed and left stale details in the X11 Root Window. -If this is the case, then PulseAudio should autospawn again, or if this is not configured you should -run start-pulseaudio-x11 manually.</source> - <translation>PulseAudio'ya bağlanılamadı. 5 sn.'de bir otomatik denenecek - -Bunun nedeni Ortam/X11 Kök Pencere Özelliklerinde PULSE_SERVER'ın seçilmiş olması veya -client.conf içindeki varsayılan sunucunun yanlış yapılandırılmasıdır. -Bu durum, PulseAudio çöktüğünde ve X11 Kök Penceresinde bozuk detaylarını bıraktığı zaman -da ortaya çıkabilir. -Bu durumda, PulseAudio tekrar durdurulmalı veya yapılandırılmamışsa, start-pulseaudio-x11'i -kendiniz çalıştırmalısınız.</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="672"/> - <source>Select a specific tab on load.</source> - <translation>Yüklemede belirli bir sekme seçin.</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="675"/> - <source>Retry forever if pa quits (every 5 seconds).</source> - <translation>Eğer durursa sonsuza kadar tekrarla (her 5 sn.'de bir).</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="678"/> - <source>Maximize the window.</source> - <translation>Pencereyi büyüt.</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="703"/> - <source>Fatal Error: Unable to connect to PulseAudio</source> - <translation>Ölümcül Hata: PulseAudio'ya bağlanılamadı</translation> - </message> -</context> -<context> - <name>RoleWidget</name> - <message> - <location filename="../rolewidget.cc" line="59"/> - <source>pa_ext_stream_restore_write() failed</source> - <translation>pa_ext_stream_restore_write() başarısız oldu</translation> - </message> -</context> -<context> - <name>SinkInputWidget</name> - <message> - <location filename="../sinkinputwidget.cc" line="36"/> - <source>on</source> - <translation>açık</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="39"/> - <source>Terminate Playback</source> - <translation>Oynatmayı Sonlandır</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="53"/> - <source>Unknown output</source> - <translation>Bilinmeyen çıktı</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="64"/> - <source>pa_context_set_sink_input_volume() failed</source> - <translation>pa_context_set_sink_input_volume() başarısız oldu</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="79"/> - <source>pa_context_set_sink_input_mute() failed</source> - <translation>pa_context_set_sink_input_mute() başarısız oldu</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="89"/> - <source>pa_context_kill_sink_input() failed</source> - <translation>pa_context_kill_sink_input() başarısız oldu</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="114"/> - <source>pa_context_move_sink_input_by_index() failed</source> - <translation>pa_context_move_sink_input_by_index() başarısız oldu</translation> - </message> -</context> -<context> - <name>SinkWidget</name> - <message> - <location filename="../sinkwidget.cc" line="81"/> - <source>pa_context_set_sink_volume_by_index() failed</source> - <translation>pa_context_set_sink_volume_by_index() başarısız oldu</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="96"/> - <source>pa_context_set_sink_mute_by_index() failed</source> - <translation>pa_context_set_sink_mute_by_index() başarısız oldu</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="110"/> - <source>pa_context_set_default_sink() failed</source> - <translation>pa_context_set_default_sink() başarısız oldu</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="126"/> - <source>pa_context_set_sink_port_by_index() failed</source> - <translation>pa_context_set_sink_port_by_index() başarısız oldu</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="166"/> - <source>pa_ext_device_restore_save_sink_formats() failed</source> - <translation>pa_ext_device_restore_save_sink_formats() başarısız oldu</translation> - </message> -</context> -<context> - <name>SourceOutputWidget</name> - <message> - <location filename="../sourceoutputwidget.cc" line="35"/> - <source>from</source> - <translation>şuradan</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="39"/> - <source>Terminate Recording</source> - <translation>Kaydı Sonlandır</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="60"/> - <source>Unknown input</source> - <translation>Bilinmeyen girdi</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="72"/> - <source>pa_context_set_source_output_volume() failed</source> - <translation>pa_context_set_source_output_volume() başarısız oldu</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="87"/> - <source>pa_context_set_source_output_mute() failed</source> - <translation>pa_context_set_source_output_mute() başarısız oldu</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="98"/> - <source>pa_context_kill_source_output() failed</source> - <translation>pa_context_kill_source_output() başarısız oldu</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="125"/> - <source>pa_context_move_source_output_by_index() failed</source> - <translation>pa_context_move_source_output_by_index() başarısız oldu</translation> - </message> -</context> -<context> - <name>SourceWidget</name> - <message> - <location filename="../sourcewidget.cc" line="35"/> - <source>pa_context_set_source_volume_by_index() failed</source> - <translation>pa_context_set_source_volume_by_index() başarısız oldu</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="50"/> - <source>pa_context_set_source_mute_by_index() failed</source> - <translation>pa_context_set_source_mute_by_index() başarısız oldu</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="64"/> - <source>pa_context_set_default_source() failed</source> - <translation>pa_context_set_default_source() başarısız oldu</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="80"/> - <source>pa_context_set_source_port_by_index() failed</source> - <translation>pa_context_set_source_port_by_index() başarısız oldu</translation> - </message> -</context> -<context> - <name>StreamWidget</name> - <message> - <location filename="../streamwidget.ui" line="14"/> - <source>Form</source> - <translation>Form</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="32"/> - <source>Device Title</source> - <translation>Aygıt Başlığı</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="52"/> - <source>direction</source> - <translation>yön</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="59"/> - <source>device</source> - <translation>aygıt</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="66"/> - <source>Mute audio</source> - <translation>Sessiz</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="79"/> - <source>Lock channels together</source> - <translation>Kanalları birlikte kilitle</translation> - </message> - <message> - <location filename="../streamwidget.cc" line="34"/> - <source>Terminate</source> - <translation>Sonlandır</translation> - </message> -</context> -</TS> diff --git a/src/translations/pavucontrol-qt_uk.desktop.yaml b/src/translations/pavucontrol-qt_uk.desktop.yaml deleted file mode 100644 index 6cc112a..0000000 --- a/src/translations/pavucontrol-qt_uk.desktop.yaml +++ /dev/null @@ -1,3 +0,0 @@ -Desktop Entry/Name: "Керування гучністю PulseAudio" -Desktop Entry/GenericName: "Керування гучністю" -Desktop Entry/Comment: "Налаштувати рівень гучності" diff --git a/src/translations/pavucontrol-qt_uk.ts b/src/translations/pavucontrol-qt_uk.ts deleted file mode 100644 index 5f95755..0000000 --- a/src/translations/pavucontrol-qt_uk.ts +++ /dev/null @@ -1,739 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE TS> -<TS version="2.1" language="uk"> -<context> - <name>CardWidget</name> - <message> - <location filename="../cardwidget.ui" line="14"/> - <source>Form</source> - <translation>Форма</translation> - </message> - <message> - <location filename="../cardwidget.ui" line="29"/> - <source>Card Name</source> - <translation>Назва карти</translation> - </message> - <message> - <location filename="../cardwidget.ui" line="47"/> - <source>Profile:</source> - <translation>Профіль:</translation> - </message> - <message> - <location filename="../cardwidget.cc" line="67"/> - <source>pa_context_set_card_profile_by_index() failed</source> - <translation>Спроба виконання pa_context_set_card_profile_by_index() була невдалою</translation> - </message> -</context> -<context> - <name>Channel</name> - <message> - <location filename="../channel.cc" line="89"/> - <source>%1% (%2dB)</source> - <comment>volume slider label [X% (YdB)]</comment> - <translation>%1% (%2дБ)</translation> - </message> - <message> - <location filename="../channel.cc" line="93"/> - <source>%1%</source> - <comment>volume slider label [X%]</comment> - <translation>%1%</translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Silence</small></source> - <translation><small>Тиша</small></translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Min</small></source> - <translation><small>Мін.</small></translation> - </message> - <message> - <location filename="../channel.cc" line="162"/> - <source><small>100% (0dB)</small></source> - <translation><small>100% (0дБ)</small></translation> - </message> - <message> - <location filename="../channel.cc" line="165"/> - <source><small><i>Base</i></small></source> - <translation><small><i>Основний</i></small></translation> - </message> -</context> -<context> - <name>ChannelWidget</name> - <message> - <location filename="../channelwidget.ui" line="14"/> - <source>Form</source> - <translation>Форма</translation> - </message> - <message> - <location filename="../channelwidget.ui" line="20"/> - <source><b>left-front</b></source> - <translation><b>лівий передній</b></translation> - </message> - <message> - <location filename="../channelwidget.ui" line="34"/> - <source><small>50%</small></source> - <translation><small>50%</small></translation> - </message> -</context> -<context> - <name>DeviceWidget</name> - <message> - <location filename="../devicewidget.ui" line="14"/> - <source>Form</source> - <translation>Форма</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="36"/> - <source>Device Title</source> - <translation>Назва пристрою</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="56"/> - <source>Mute audio</source> - <translation>Заглушити звук</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="69"/> - <source>Lock channels together</source> - <translation>Пов'язати канали разом</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="85"/> - <source>Set as fallback</source> - <translation>Встановити запасним</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="103"/> - <source><b>Port:</b></source> - <translation><b>Порт:</b></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="126"/> - <source>Show advanced options</source> - <translation>Показати розширені параметри</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="172"/> - <source>PCM</source> - <translation>PCM</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="182"/> - <source>AC3</source> - <translation>AC3</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="189"/> - <source>EAC3</source> - <translation>EAC3</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="196"/> - <source>DTS</source> - <translation>DTS</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="203"/> - <source>MPEG</source> - <translation>MPEG</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="210"/> - <source>AAC</source> - <translation>AAC</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="238"/> - <source><b>Latency offset:</b></source> - <translation><b>Затримка зсуву:</b></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="245"/> - <source> ms</source> - <translation> мс</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="41"/> - <source>Rename device...</source> - <translation>Перейменувати пристрій...</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="155"/> - <source>pa_context_set_port_latency_offset() failed</source> - <translation>Спроба виконання pa_context_set_port_latency_offset() була невдалою</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="226"/> - <source>Sorry, but device renaming is not supported.</source> - <translation>Вибачте, але перейменування пристрою не підтримується.</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="227"/> - <source>You need to load module-device-manager in the PulseAudio server in order to rename devices</source> - <translation>Вам потрібно завантажити module-device-manager на сервері PulseAudio, щоб мати змогу перейменовувати пристрої</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="233"/> - <source>Rename device %1 to:</source> - <translation>Перейменувати пристрій %1 на:</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="240"/> - <source>pa_ext_device_manager_set_device_description() failed</source> - <translation>Збій pa_ext_device_manager_set_device_description()</translation> - </message> -</context> -<context> - <name>MainWindow</name> - <message> - <location filename="../mainwindow.ui" line="14"/> - <source>Volume Control</source> - <translation>Керування гучністю</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="28"/> - <source>&Playback</source> - <translation>В&ідтворення</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="55"/> - <source><i>No application is currently playing audio.</i></source> - <translation><i>Жодна з програм не відтворює звукових даних.</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="66"/> - <location filename="../mainwindow.ui" line="131"/> - <location filename="../mainwindow.ui" line="196"/> - <location filename="../mainwindow.ui" line="261"/> - <source>Show:</source> - <translation>Показ:</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="74"/> - <location filename="../mainwindow.ui" line="139"/> - <source>All Streams</source> - <translation>Всі потоки</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="79"/> - <location filename="../mainwindow.ui" line="144"/> - <source>Applications</source> - <translation>Програми</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="84"/> - <location filename="../mainwindow.ui" line="149"/> - <source>Virtual Streams</source> - <translation>Віртуальні потоки</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="93"/> - <source>&Recording</source> - <translation>&Запис</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="120"/> - <source><i>No application is currently recording audio.</i></source> - <translation><i>Жодна з програм не виконує запису звукових даних.</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="158"/> - <source>&Output Devices</source> - <translation>Пристрої &відтворення</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="185"/> - <source><i>No output devices available</i></source> - <translation><i>Пристроїв відтворення звукових даних не знайдено</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="204"/> - <source>All Output Devices</source> - <translation>Всі пристрої виводу</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="209"/> - <source>Hardware Output Devices</source> - <translation>Фізичні пристрої виводу</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="214"/> - <source>Virtual Output Devices</source> - <translation>Віртуальні пристрої виводу</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="223"/> - <source>&Input Devices</source> - <translation>Пристрої &вводу</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="250"/> - <source><i>No input devices available</i></source> - <translation><i>Пристроїв вводу не знайдено</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="269"/> - <source>All Input Devices</source> - <translation>Всі пристрої вводу</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="274"/> - <source>All Except Monitors</source> - <translation>Всі крім моніторів</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="279"/> - <source>Hardware Input Devices</source> - <translation>Фізичні пристрої вводу</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="284"/> - <source>Virtual Input Devices</source> - <translation>Віртуальні пристрої вводу</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="289"/> - <source>Monitors</source> - <translation>Монітори</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="298"/> - <source>&Configuration</source> - <translation>&Налаштування</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="325"/> - <source><i>No cards available for configuration</i></source> - <translation><i>Карток для налаштування не знайдено</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="336"/> - <source>Show volume meters</source> - <translation>Показати вимірювання гучності</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="347"/> - <source>...</source> - <translation>...</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="159"/> - <source> (plugged in)</source> - <translation> (під'єднано)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="163"/> - <location filename="../mainwindow.cc" line="257"/> - <source> (unavailable)</source> - <translation> (недоступно)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="165"/> - <location filename="../mainwindow.cc" line="254"/> - <source> (unplugged)</source> - <translation> (від'єднано)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="388"/> - <source>Failed to read data from stream</source> - <translation>Спроба читання даних з потоку була невдалою</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="432"/> - <source>Peak detect</source> - <translation>Визначення максимумів</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="433"/> - <source>Failed to create monitoring stream</source> - <translation>Не вдалося створити потік для спостереження</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="448"/> - <source>Failed to connect monitoring stream</source> - <translation>Не вдалося з’єднатися з потоком для спостереження</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="587"/> - <source>Ignoring sink-input due to it being designated as an event and thus handled by the Event widget</source> - <translation>Нехтування вхідним сигналом, оскільки його визначено подією та оброблено віджетом події</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="759"/> - <source>System Sounds</source> - <translation>Системні звуки</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="1089"/> - <source>Establishing connection to PulseAudio. Please wait...</source> - <translation>Встановлено з'єднання з PulseAudio. Зачекайте, будь ласка...</translation> - </message> -</context> -<context> - <name>QObject</name> - <message> - <location filename="../pavucontrol.cc" line="66"/> - <source>Error</source> - <translation>Помилка</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="87"/> - <source>Card callback failure</source> - <translation>Спроба зворотного виклику карти зазнала невдачі</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="110"/> - <source>Sink callback failure</source> - <translation>Спроба зворотного виклику приймача зазнала невдачі</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="133"/> - <source>Source callback failure</source> - <translation>Спроба зворотного виклику джерела зазнала невдачі</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="152"/> - <source>Sink input callback failure</source> - <translation>Спроба зворотного виклику потоку отримання приймача зазнала невдачі</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="171"/> - <source>Source output callback failure</source> - <translation>Спроба зворотного виклику потоку відтворення джерела зазнала невдачі</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="211"/> - <source>Client callback failure</source> - <translation>Спроба зворотного виклику клієнта зазнала невдачі</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="227"/> - <source>Server info callback failure</source> - <translation>Спроба зворотного виклику даних сервера зазнала невдачі</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="245"/> - <location filename="../pavucontrol.cc" line="542"/> - <source>Failed to initialize stream_restore extension: %s</source> - <translation>Не вдалося ініціалізувати розширення stream_restore : %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="263"/> - <source>pa_ext_stream_restore_read() failed</source> - <translation>Спроба виконати pa_ext_stream_restore_read() зазнала невдачі</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="281"/> - <location filename="../pavucontrol.cc" line="556"/> - <source>Failed to initialize device restore extension: %s</source> - <translation>Не вдалося ініціалізувати розширення відновлення пристрою : %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="302"/> - <source>pa_ext_device_restore_read_sink_formats() failed</source> - <translation>Спроба виконати pa_ext_device_restore_read_sink_formats() зазнала невдачі</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="320"/> - <location filename="../pavucontrol.cc" line="569"/> - <source>Failed to initialize device manager extension: %s</source> - <translation>Не вдалося ініціалізувати розширення керуванням пристрою : %s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="339"/> - <source>pa_ext_device_manager_read() failed</source> - <translation>Спроба виконання pa_ext_device_manager_read() була невдалою</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="356"/> - <source>pa_context_get_sink_info_by_index() failed</source> - <translation>Спроба виконати pa_context_get_sink_info_by_index() зазнала невдачі</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="369"/> - <source>pa_context_get_source_info_by_index() failed</source> - <translation>Спроба виконати pa_context_get_source_info_by_index() зазнала невдачі</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="382"/> - <location filename="../pavucontrol.cc" line="395"/> - <source>pa_context_get_sink_input_info() failed</source> - <translation>Спроба виконати pa_context_get_sink_input_info() зазнала невдачі</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="408"/> - <source>pa_context_get_client_info() failed</source> - <translation>Спроба виконати pa_context_get_client_info() зазнала невдачі</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="418"/> - <location filename="../pavucontrol.cc" line="483"/> - <source>pa_context_get_server_info() failed</source> - <translation>Спроба виконати pa_context_get_server_info() зазнала невдачі</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="431"/> - <source>pa_context_get_card_info_by_index() failed</source> - <translation>Спроба виконати pa_context_get_card_info_by_index() зазнала невдачі</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="474"/> - <source>pa_context_subscribe() failed</source> - <translation>Спроба виконати pa_context_subscribe() зазнала невдачі</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="490"/> - <source>pa_context_client_info_list() failed</source> - <translation>Спроба виконати pa_context_client_info_list() зазнала невдачі</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="497"/> - <source>pa_context_get_card_info_list() failed</source> - <translation>Спроба виконати pa_context_get_card_info_list() зазнала невдачі</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="504"/> - <source>pa_context_get_sink_info_list() failed</source> - <translation>Спроба виконати pa_context_get_sink_info_list() зазнала невдачі</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="511"/> - <source>pa_context_get_source_info_list() failed</source> - <translation>Спроба виконати pa_context_get_source_info_list() зазнала невдачі</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="518"/> - <source>pa_context_get_sink_input_info_list() failed</source> - <translation>Спроба виконати pa_context_get_sink_input_info_list() зазнала невдачі</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="525"/> - <source>pa_context_get_source_output_info_list() failed</source> - <translation>Спроба виконати pa_context_get_source_output_info_list() зазнала невдачі</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="584"/> - <location filename="../pavucontrol.cc" line="635"/> - <source>Connection failed, attempting reconnect</source> - <translation>Зв'язок втрачено, спроба зв'язатися знову</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="607"/> - <location filename="../pavucontrol.cc" line="664"/> - <source>PulseAudio Volume Control</source> - <translation>Керування гучністю PulseAudio</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="622"/> - <source>Connection to PulseAudio failed. Automatic retry in 5s - -In this case this is likely because PULSE_SERVER in the Environment/X11 Root Window Properties -or default-server in client.conf is misconfigured. -This situation can also arrise when PulseAudio crashed and left stale details in the X11 Root Window. -If this is the case, then PulseAudio should autospawn again, or if this is not configured you should -run start-pulseaudio-x11 manually.</source> - <translation>З'єднання з PulseAudio втрачено. Автоматична спроба зв'язку через 5с - -Схоже це спричинено неправильними властивостями PULSE_SERVER у кореневому вікні Environment/X11 -або default-server у client.conf неправильно налаштовано. -Ця ситуація також може виникнути, коли стається збій PulseAudio і залишаються застарілі деталі в корінному вікні X11. -Якщо це так, то PulseAudio повинен знову автоматично запуститися, або якщо це не налаштовано, вам слід -запустити start-pulseaudio-x11 власноруч.</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="672"/> - <source>Select a specific tab on load.</source> - <translation>Вибрати специфічну вкладку при завантаженні.</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="675"/> - <source>Retry forever if pa quits (every 5 seconds).</source> - <translation>Пробувати знову, якщо PulseAudio завершиться (кожні 5 секунд).</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="678"/> - <source>Maximize the window.</source> - <translation>Максималізувати вікно.</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="703"/> - <source>Fatal Error: Unable to connect to PulseAudio</source> - <translation>Фатальна помилка: Неможливо зв'язатися з PulseAudio</translation> - </message> -</context> -<context> - <name>RoleWidget</name> - <message> - <location filename="../rolewidget.cc" line="59"/> - <source>pa_ext_stream_restore_write() failed</source> - <translation>Спроба виконання pa_ext_stream_restore_write() була невдалою</translation> - </message> -</context> -<context> - <name>SinkInputWidget</name> - <message> - <location filename="../sinkinputwidget.cc" line="36"/> - <source>on</source> - <translation>на</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="39"/> - <source>Terminate Playback</source> - <translation>Завершити відтворення</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="53"/> - <source>Unknown output</source> - <translation>Невідомий пристрій відтворення</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="64"/> - <source>pa_context_set_sink_input_volume() failed</source> - <translation>Спроба виконання pa_context_set_sink_input_volume() була невдалою</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="79"/> - <source>pa_context_set_sink_input_mute() failed</source> - <translation>Спроба виконання pa_context_set_sink_input_mute() була невдалою</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="89"/> - <source>pa_context_kill_sink_input() failed</source> - <translation>Спроба виконання pa_context_kill_sink_input() була невдалою</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="114"/> - <source>pa_context_move_sink_input_by_index() failed</source> - <translation>Спроба виконання pa_context_move_sink_input_by_index() була невдалою</translation> - </message> -</context> -<context> - <name>SinkWidget</name> - <message> - <location filename="../sinkwidget.cc" line="81"/> - <source>pa_context_set_sink_volume_by_index() failed</source> - <translation>Спроба виконання pa_context_set_sink_volume_by_index() була невдалою</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="96"/> - <source>pa_context_set_sink_mute_by_index() failed</source> - <translation>Спроба виконання pa_context_set_sink_mute_by_index() була невдалою</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="110"/> - <source>pa_context_set_default_sink() failed</source> - <translation>Спроба виконання pa_context_set_default_sink() була невдалою</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="126"/> - <source>pa_context_set_sink_port_by_index() failed</source> - <translation>Спроба виконання pa_context_set_sink_port_by_index() була невдалою</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="166"/> - <source>pa_ext_device_restore_save_sink_formats() failed</source> - <translation>Спроба виконати pa_ext_device_restore_save_sink_formats() зазнала невдачі</translation> - </message> -</context> -<context> - <name>SourceOutputWidget</name> - <message> - <location filename="../sourceoutputwidget.cc" line="35"/> - <source>from</source> - <translation>з</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="39"/> - <source>Terminate Recording</source> - <translation>Завершити запис</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="60"/> - <source>Unknown input</source> - <translation>Невідоме джерело даних</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="72"/> - <source>pa_context_set_source_output_volume() failed</source> - <translation>Спроба виконання pa_context_set_source_output_volume() була невдалою</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="87"/> - <source>pa_context_set_source_output_mute() failed</source> - <translation>Спроба виконання pa_context_set_source_output_mute() була невдалою</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="98"/> - <source>pa_context_kill_source_output() failed</source> - <translation>Спроба виконання pa_context_kill_source_output() була невдалою</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="125"/> - <source>pa_context_move_source_output_by_index() failed</source> - <translation>Спроба виконання pa_context_move_source_output_by_index() була невдалою</translation> - </message> -</context> -<context> - <name>SourceWidget</name> - <message> - <location filename="../sourcewidget.cc" line="35"/> - <source>pa_context_set_source_volume_by_index() failed</source> - <translation>Спроба виконання pa_context_set_source_volume_by_index() була невдалою</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="50"/> - <source>pa_context_set_source_mute_by_index() failed</source> - <translation>Спроба виконання pa_context_set_source_mute_by_index() була невдалою</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="64"/> - <source>pa_context_set_default_source() failed</source> - <translation>Спроба виконання pa_context_set_default_source() була невдалою</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="80"/> - <source>pa_context_set_source_port_by_index() failed</source> - <translation>Спроба виконання pa_context_set_source_port_by_index() була невдалою</translation> - </message> -</context> -<context> - <name>StreamWidget</name> - <message> - <location filename="../streamwidget.ui" line="14"/> - <source>Form</source> - <translation>Форма</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="32"/> - <source>Device Title</source> - <translation>Назва пристрою</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="52"/> - <source>direction</source> - <translation>напрямок</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="59"/> - <source>device</source> - <translation>пристрій</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="66"/> - <source>Mute audio</source> - <translation>Заглушити звук</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="79"/> - <source>Lock channels together</source> - <translation>Пов'язати канали разом</translation> - </message> - <message> - <location filename="../streamwidget.cc" line="34"/> - <source>Terminate</source> - <translation>Перервати відтворення</translation> - </message> -</context> -</TS> diff --git a/src/translations/pavucontrol-qt_vi.desktop.yaml b/src/translations/pavucontrol-qt_vi.desktop.yaml deleted file mode 100644 index 54f71d7..0000000 --- a/src/translations/pavucontrol-qt_vi.desktop.yaml +++ /dev/null @@ -1,3 +0,0 @@ -Desktop Entry/Name: "Điều khiển Âm lượng PulseAudio" -Desktop Entry/GenericName: "Điều khiển Âm lượng" -Desktop Entry/Comment: "Chỉnh mức âm lượng" diff --git a/src/translations/pavucontrol-qt_zh_CN.desktop.yaml b/src/translations/pavucontrol-qt_zh_CN.desktop.yaml deleted file mode 100644 index cb86c35..0000000 --- a/src/translations/pavucontrol-qt_zh_CN.desktop.yaml +++ /dev/null @@ -1,3 +0,0 @@ -Desktop Entry/Name: "PulseAudio 音量控制" -Desktop Entry/GenericName: "音量控制" -Desktop Entry/Comment: "调整音量" diff --git a/src/translations/pavucontrol-qt_zh_CN.ts b/src/translations/pavucontrol-qt_zh_CN.ts deleted file mode 100644 index bd00fc4..0000000 --- a/src/translations/pavucontrol-qt_zh_CN.ts +++ /dev/null @@ -1,737 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE TS> -<TS version="2.1" language="zh_CN"> -<context> - <name>CardWidget</name> - <message> - <location filename="../cardwidget.ui" line="14"/> - <source>Form</source> - <translation>形式</translation> - </message> - <message> - <location filename="../cardwidget.ui" line="29"/> - <source>Card Name</source> - <translation>声卡名称</translation> - </message> - <message> - <location filename="../cardwidget.ui" line="47"/> - <source>Profile:</source> - <translation>配置方案:</translation> - </message> - <message> - <location filename="../cardwidget.cc" line="67"/> - <source>pa_context_set_card_profile_by_index() failed</source> - <translation>pa_context_set_card_profile_by_index() 失败</translation> - </message> -</context> -<context> - <name>Channel</name> - <message> - <location filename="../channel.cc" line="89"/> - <source>%1% (%2dB)</source> - <comment>volume slider label [X% (YdB)]</comment> - <translation></translation> - </message> - <message> - <location filename="../channel.cc" line="93"/> - <source>%1%</source> - <comment>volume slider label [X%]</comment> - <translation></translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Silence</small></source> - <translation><small>安静</small></translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Min</small></source> - <translation><small>最小</small></translation> - </message> - <message> - <location filename="../channel.cc" line="162"/> - <source><small>100% (0dB)</small></source> - <translation><small>100% (0dB)</small></translation> - </message> - <message> - <location filename="../channel.cc" line="165"/> - <source><small><i>Base</i></small></source> - <translation><small><i>基本</i></small></translation> - </message> -</context> -<context> - <name>ChannelWidget</name> - <message> - <location filename="../channelwidget.ui" line="14"/> - <source>Form</source> - <translation>表单</translation> - </message> - <message> - <location filename="../channelwidget.ui" line="20"/> - <source><b>left-front</b></source> - <translation><b>左前</b></translation> - </message> - <message> - <location filename="../channelwidget.ui" line="34"/> - <source><small>50%</small></source> - <translation><small>50%</small></translation> - </message> -</context> -<context> - <name>DeviceWidget</name> - <message> - <location filename="../devicewidget.ui" line="14"/> - <source>Form</source> - <translation>表单形式</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="36"/> - <source>Device Title</source> - <translation>设备标题</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="56"/> - <source>Mute audio</source> - <translation>静音</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="69"/> - <source>Lock channels together</source> - <translation>同时锁定全部声道</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="85"/> - <source>Set as fallback</source> - <translation>设置为回退</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="103"/> - <source><b>Port:</b></source> - <translation><b>端口:</b></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="126"/> - <source>Show advanced options</source> - <translation>显示高级选项</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="172"/> - <source>PCM</source> - <translation></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="182"/> - <source>AC3</source> - <translation></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="189"/> - <source>EAC3</source> - <translation></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="196"/> - <source>DTS</source> - <translation></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="203"/> - <source>MPEG</source> - <translation></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="210"/> - <source>AAC</source> - <translation></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="238"/> - <source><b>Latency offset:</b></source> - <translation><b>延迟偏移:</b></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="245"/> - <source> ms</source> - <translation></translation> - </message> - <message> - <location filename="../devicewidget.cc" line="41"/> - <source>Rename device...</source> - <translation>重命名设备...</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="155"/> - <source>pa_context_set_port_latency_offset() failed</source> - <translation>pa_context_set_port_latency_offset() 失败</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="226"/> - <source>Sorry, but device renaming is not supported.</source> - <translation>抱歉,不支持设备重命名。</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="227"/> - <source>You need to load module-device-manager in the PulseAudio server in order to rename devices</source> - <translation>要重命名设备,您需要在 PulseAudio 服务中加载模块设备管理器</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="233"/> - <source>Rename device %1 to:</source> - <translation>重命名设备 %1 为:</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="240"/> - <source>pa_ext_device_manager_set_device_description() failed</source> - <translation>pa_ext_device_manager_set_device_description() 失败</translation> - </message> -</context> -<context> - <name>MainWindow</name> - <message> - <location filename="../mainwindow.ui" line="14"/> - <source>Volume Control</source> - <translation>音量控制</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="28"/> - <source>&Playback</source> - <translation>回放(&P)</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="55"/> - <source><i>No application is currently playing audio.</i></source> - <translation><i>没有程序正在播放音频。</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="66"/> - <location filename="../mainwindow.ui" line="131"/> - <location filename="../mainwindow.ui" line="196"/> - <location filename="../mainwindow.ui" line="261"/> - <source>Show:</source> - <translation>显示:</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="74"/> - <location filename="../mainwindow.ui" line="139"/> - <source>All Streams</source> - <translation>所有流</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="79"/> - <location filename="../mainwindow.ui" line="144"/> - <source>Applications</source> - <translation>应用程序</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="84"/> - <location filename="../mainwindow.ui" line="149"/> - <source>Virtual Streams</source> - <translation>虚拟流</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="93"/> - <source>&Recording</source> - <translation>录音(&R)</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="120"/> - <source><i>No application is currently recording audio.</i></source> - <translation><i>没有程序正在录音。</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="158"/> - <source>&Output Devices</source> - <translation>输出设备(&O)</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="185"/> - <source><i>No output devices available</i></source> - <translation><i>无可用的输出设备</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="204"/> - <source>All Output Devices</source> - <translation>所有输出设备</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="209"/> - <source>Hardware Output Devices</source> - <translation>硬件输出设备</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="214"/> - <source>Virtual Output Devices</source> - <translation>虚拟输出设备</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="223"/> - <source>&Input Devices</source> - <translation>输入设备(&I)</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="250"/> - <source><i>No input devices available</i></source> - <translation><i>无可用的输入设备</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="269"/> - <source>All Input Devices</source> - <translation>所有输入设备</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="274"/> - <source>All Except Monitors</source> - <translation>除监听外的全部</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="279"/> - <source>Hardware Input Devices</source> - <translation>硬件输入设备</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="284"/> - <source>Virtual Input Devices</source> - <translation>虚拟输入设备</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="289"/> - <source>Monitors</source> - <translation>监听</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="298"/> - <source>&Configuration</source> - <translation>配置(&C)</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="325"/> - <source><i>No cards available for configuration</i></source> - <translation><i>无声卡可配置</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="336"/> - <source>Show volume meters</source> - <translation>显示音量表</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="347"/> - <source>...</source> - <translation></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="159"/> - <source> (plugged in)</source> - <translation> (已插入)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="163"/> - <location filename="../mainwindow.cc" line="257"/> - <source> (unavailable)</source> - <translation> (不可用)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="165"/> - <location filename="../mainwindow.cc" line="254"/> - <source> (unplugged)</source> - <translation> (已拔出)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="388"/> - <source>Failed to read data from stream</source> - <translation>无法从流媒体中读取数据</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="432"/> - <source>Peak detect</source> - <translation>尖峰探测</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="433"/> - <source>Failed to create monitoring stream</source> - <translation>无法创建监听流</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="448"/> - <source>Failed to connect monitoring stream</source> - <translation>无法连接到监听流</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="587"/> - <source>Ignoring sink-input due to it being designated as an event and thus handled by the Event widget</source> - <translation>忽略漏级输入,因为它被设计为事件,且由事件小部件掌管</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="759"/> - <source>System Sounds</source> - <translation>系统声音</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="1089"/> - <source>Establishing connection to PulseAudio. Please wait...</source> - <translation>正在与 PulseAudio 建立连接,请稍候……</translation> - </message> -</context> -<context> - <name>QObject</name> - <message> - <location filename="../pavucontrol.cc" line="66"/> - <source>Error</source> - <translation>错误</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="87"/> - <source>Card callback failure</source> - <translation>声卡回调失败</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="110"/> - <source>Sink callback failure</source> - <translation>Sink 回调失败</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="133"/> - <source>Source callback failure</source> - <translation>源回调失败</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="152"/> - <source>Sink input callback failure</source> - <translation>Sink 输入回调失败</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="171"/> - <source>Source output callback failure</source> - <translation>源输出回调失败</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="211"/> - <source>Client callback failure</source> - <translation>客户端回调失败</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="227"/> - <source>Server info callback failure</source> - <translation>服务器信息回调失败</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="245"/> - <location filename="../pavucontrol.cc" line="542"/> - <source>Failed to initialize stream_restore extension: %s</source> - <translation>无法初始化 stream_restore 扩展:%s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="263"/> - <source>pa_ext_stream_restore_read() failed</source> - <translation>pa_ext_stream_restore_read() 失败</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="281"/> - <location filename="../pavucontrol.cc" line="556"/> - <source>Failed to initialize device restore extension: %s</source> - <translation>初始化设备恢复扩展失败:%s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="302"/> - <source>pa_ext_device_restore_read_sink_formats() failed</source> - <translation>pa_ext_device_restore_read_sink_formats() 失败</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="320"/> - <location filename="../pavucontrol.cc" line="569"/> - <source>Failed to initialize device manager extension: %s</source> - <translation>初始化设备管理器扩展失败:%s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="339"/> - <source>pa_ext_device_manager_read() failed</source> - <translation>pa_ext_device_manager_read() 失败</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="356"/> - <source>pa_context_get_sink_info_by_index() failed</source> - <translation>pa_context_get_sink_info_by_index() 失败</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="369"/> - <source>pa_context_get_source_info_by_index() failed</source> - <translation>pa_context_get_source_info_by_index() 失败</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="382"/> - <location filename="../pavucontrol.cc" line="395"/> - <source>pa_context_get_sink_input_info() failed</source> - <translation>pa_context_get_sink_input_info() 失败</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="408"/> - <source>pa_context_get_client_info() failed</source> - <translation>pa_context_get_client_info() 失败</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="418"/> - <location filename="../pavucontrol.cc" line="483"/> - <source>pa_context_get_server_info() failed</source> - <translation>pa_context_get_server_info() 失败</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="431"/> - <source>pa_context_get_card_info_by_index() failed</source> - <translation>pa_context_get_card_info_by_index() 失败</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="474"/> - <source>pa_context_subscribe() failed</source> - <translation>pa_context_subscribe() 失败</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="490"/> - <source>pa_context_client_info_list() failed</source> - <translation>pa_context_client_info_list() 失败</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="497"/> - <source>pa_context_get_card_info_list() failed</source> - <translation>pa_context_get_card_info_list() 失败</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="504"/> - <source>pa_context_get_sink_info_list() failed</source> - <translation>pa_context_get_sink_info_list() 失败</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="511"/> - <source>pa_context_get_source_info_list() failed</source> - <translation>pa_context_get_source_info_list() 失败</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="518"/> - <source>pa_context_get_sink_input_info_list() failed</source> - <translation>pa_context_get_sink_input_info_list() 失败</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="525"/> - <source>pa_context_get_source_output_info_list() failed</source> - <translation>pa_context_get_source_output_info_list() 失败</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="584"/> - <location filename="../pavucontrol.cc" line="635"/> - <source>Connection failed, attempting reconnect</source> - <translation>连接失败,尝试重新连接</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="607"/> - <location filename="../pavucontrol.cc" line="664"/> - <source>PulseAudio Volume Control</source> - <translation>PulseAudio 音量控制</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="622"/> - <source>Connection to PulseAudio failed. Automatic retry in 5s - -In this case this is likely because PULSE_SERVER in the Environment/X11 Root Window Properties -or default-server in client.conf is misconfigured. -This situation can also arrise when PulseAudio crashed and left stale details in the X11 Root Window. -If this is the case, then PulseAudio should autospawn again, or if this is not configured you should -run start-pulseaudio-x11 manually.</source> - <translation>连接 PulseAudio 失败。5秒内自动重试 - -出现这种情况可能是因为 X11 根窗口属性中的 PULSE_SERVER 或者 client.conf 中的默认服务器配置不当。 -这种情况也有可能在 PulseAudio 崩溃并在 X11 根窗口中留下陈旧明细时出现。 -若如此,则 PulseAudio 应自动重启,否则您应手动运行 start-pulseaudio-x11 manually。</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="672"/> - <source>Select a specific tab on load.</source> - <translation>选择加载特定标签。</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="675"/> - <source>Retry forever if pa quits (every 5 seconds).</source> - <translation>如果 pa 退出,永远尝试(每 5 秒)。</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="678"/> - <source>Maximize the window.</source> - <translation>最大化窗口。</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="703"/> - <source>Fatal Error: Unable to connect to PulseAudio</source> - <translation>严重错误:无法连接到 PulseAudio</translation> - </message> -</context> -<context> - <name>RoleWidget</name> - <message> - <location filename="../rolewidget.cc" line="59"/> - <source>pa_ext_stream_restore_write() failed</source> - <translation>pa_ext_stream_restore_write() 失败</translation> - </message> -</context> -<context> - <name>SinkInputWidget</name> - <message> - <location filename="../sinkinputwidget.cc" line="36"/> - <source>on</source> - <translation>输出到</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="39"/> - <source>Terminate Playback</source> - <translation>结束回放</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="53"/> - <source>Unknown output</source> - <translation>未知输出</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="64"/> - <source>pa_context_set_sink_input_volume() failed</source> - <translation>pa_context_set_sink_input_volume() 失败</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="79"/> - <source>pa_context_set_sink_input_mute() failed</source> - <translation>pa_context_set_sink_input_mute() 失败</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="89"/> - <source>pa_context_kill_sink_input() failed</source> - <translation>pa_context_kill_sink_input() 失败</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="114"/> - <source>pa_context_move_sink_input_by_index() failed</source> - <translation>pa_context_move_sink_input_by_index() 失败</translation> - </message> -</context> -<context> - <name>SinkWidget</name> - <message> - <location filename="../sinkwidget.cc" line="81"/> - <source>pa_context_set_sink_volume_by_index() failed</source> - <translation>pa_context_set_sink_volume_by_index() 失败</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="96"/> - <source>pa_context_set_sink_mute_by_index() failed</source> - <translation>pa_context_set_sink_mute_by_index() 失败</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="110"/> - <source>pa_context_set_default_sink() failed</source> - <translation>pa_context_set_default_sink() 失败</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="126"/> - <source>pa_context_set_sink_port_by_index() failed</source> - <translation>pa_context_set_sink_mute_by_index() 失败</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="166"/> - <source>pa_ext_device_restore_save_sink_formats() failed</source> - <translation>pa_ext_device_restore_save_sink_formats() 失败</translation> - </message> -</context> -<context> - <name>SourceOutputWidget</name> - <message> - <location filename="../sourceoutputwidget.cc" line="35"/> - <source>from</source> - <translation>源自</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="39"/> - <source>Terminate Recording</source> - <translation>结束录音</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="60"/> - <source>Unknown input</source> - <translation>未知输出</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="72"/> - <source>pa_context_set_source_output_volume() failed</source> - <translation>pa_context_set_source_output_volume() 失败</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="87"/> - <source>pa_context_set_source_output_mute() failed</source> - <translation>pa_context_set_source_output_mute() 失败</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="98"/> - <source>pa_context_kill_source_output() failed</source> - <translation>pa_context_kill_source_output() 失败</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="125"/> - <source>pa_context_move_source_output_by_index() failed</source> - <translation>pa_context_move_source_output_by_index() 失败</translation> - </message> -</context> -<context> - <name>SourceWidget</name> - <message> - <location filename="../sourcewidget.cc" line="35"/> - <source>pa_context_set_source_volume_by_index() failed</source> - <translation>pa_context_set_source_volume_by_index() 失败</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="50"/> - <source>pa_context_set_source_mute_by_index() failed</source> - <translation>pa_context_set_source_mute_by_index() 失败</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="64"/> - <source>pa_context_set_default_source() failed</source> - <translation>pa_context_set_default_source() 失败</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="80"/> - <source>pa_context_set_source_port_by_index() failed</source> - <translation>pa_context_set_source_mute_by_index() 失败</translation> - </message> -</context> -<context> - <name>StreamWidget</name> - <message> - <location filename="../streamwidget.ui" line="14"/> - <source>Form</source> - <translation>形式</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="32"/> - <source>Device Title</source> - <translation>设备标题</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="52"/> - <source>direction</source> - <translation>方向</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="59"/> - <source>device</source> - <translation>设备</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="66"/> - <source>Mute audio</source> - <translation>静音</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="79"/> - <source>Lock channels together</source> - <translation>同时设置声道</translation> - </message> - <message> - <location filename="../streamwidget.cc" line="34"/> - <source>Terminate</source> - <translation>结束</translation> - </message> -</context> -</TS> diff --git a/src/translations/pavucontrol-qt_zh_TW.ts b/src/translations/pavucontrol-qt_zh_TW.ts deleted file mode 100644 index 50072d2..0000000 --- a/src/translations/pavucontrol-qt_zh_TW.ts +++ /dev/null @@ -1,739 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE TS> -<TS version="2.1" language="zh_TW"> -<context> - <name>CardWidget</name> - <message> - <location filename="../cardwidget.ui" line="14"/> - <source>Form</source> - <translation>表單</translation> - </message> - <message> - <location filename="../cardwidget.ui" line="29"/> - <source>Card Name</source> - <translation>音效卡名稱</translation> - </message> - <message> - <location filename="../cardwidget.ui" line="47"/> - <source>Profile:</source> - <translation>組態:</translation> - </message> - <message> - <location filename="../cardwidget.cc" line="67"/> - <source>pa_context_set_card_profile_by_index() failed</source> - <translation>pa_context_set_card_profile_by_index() 失敗</translation> - </message> -</context> -<context> - <name>Channel</name> - <message> - <location filename="../channel.cc" line="89"/> - <source>%1% (%2dB)</source> - <comment>volume slider label [X% (YdB)]</comment> - <translation></translation> - </message> - <message> - <location filename="../channel.cc" line="93"/> - <source>%1%</source> - <comment>volume slider label [X%]</comment> - <translation></translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Silence</small></source> - <translation><small>無聲</small></translation> - </message> - <message> - <location filename="../channel.cc" line="160"/> - <source><small>Min</small></source> - <translation><small>最小</small></translation> - </message> - <message> - <location filename="../channel.cc" line="162"/> - <source><small>100% (0dB)</small></source> - <translation></translation> - </message> - <message> - <location filename="../channel.cc" line="165"/> - <source><small><i>Base</i></small></source> - <translation><small><i>基準</i></small></translation> - </message> -</context> -<context> - <name>ChannelWidget</name> - <message> - <location filename="../channelwidget.ui" line="14"/> - <source>Form</source> - <translation>表單</translation> - </message> - <message> - <location filename="../channelwidget.ui" line="20"/> - <source><b>left-front</b></source> - <translation><b>左前</b></translation> - </message> - <message> - <location filename="../channelwidget.ui" line="34"/> - <source><small>50%</small></source> - <translation></translation> - </message> -</context> -<context> - <name>DeviceWidget</name> - <message> - <location filename="../devicewidget.ui" line="14"/> - <source>Form</source> - <translation>表單</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="36"/> - <source>Device Title</source> - <translation>裝置標題</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="56"/> - <source>Mute audio</source> - <translation>靜音</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="69"/> - <source>Lock channels together</source> - <translation>同時鎖定兩聲道</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="85"/> - <source>Set as fallback</source> - <translation>設為預設</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="103"/> - <source><b>Port:</b></source> - <translation><b>埠:</b></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="126"/> - <source>Show advanced options</source> - <translation>顯示進階選項</translation> - </message> - <message> - <location filename="../devicewidget.ui" line="172"/> - <source>PCM</source> - <translation></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="182"/> - <source>AC3</source> - <translation></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="189"/> - <source>EAC3</source> - <translation></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="196"/> - <source>DTS</source> - <translation></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="203"/> - <source>MPEG</source> - <translation></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="210"/> - <source>AAC</source> - <translation></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="238"/> - <source><b>Latency offset:</b></source> - <translation><b>延遲偏移:</b></translation> - </message> - <message> - <location filename="../devicewidget.ui" line="245"/> - <source> ms</source> - <translation> 毫秒</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="41"/> - <source>Rename device...</source> - <translation>重新命名裝置...</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="155"/> - <source>pa_context_set_port_latency_offset() failed</source> - <translation>pa_context_set_port_latency_offset() 失敗</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="226"/> - <source>Sorry, but device renaming is not supported.</source> - <translation>抱歉,不支援裝置重新命名。</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="227"/> - <source>You need to load module-device-manager in the PulseAudio server in order to rename devices</source> - <translation>為了重新命名裝置,你需要在 PulseAudio 伺服器運行模組裝置管理員</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="233"/> - <source>Rename device %1 to:</source> - <translation>重新命名裝置 %1 為:</translation> - </message> - <message> - <location filename="../devicewidget.cc" line="240"/> - <source>pa_ext_device_manager_set_device_description() failed</source> - <translation>pa_ext_device_manager_set_device_description() 失敗</translation> - </message> -</context> -<context> - <name>MainWindow</name> - <message> - <location filename="../mainwindow.ui" line="14"/> - <source>Volume Control</source> - <translation>音量控制</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="55"/> - <source><i>No application is currently playing audio.</i></source> - <translation><i>現在沒有應用程式在播放音訊。</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="66"/> - <location filename="../mainwindow.ui" line="131"/> - <location filename="../mainwindow.ui" line="196"/> - <location filename="../mainwindow.ui" line="261"/> - <source>Show:</source> - <translation>顯示:</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="74"/> - <location filename="../mainwindow.ui" line="139"/> - <source>All Streams</source> - <translation>所有串流</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="79"/> - <location filename="../mainwindow.ui" line="144"/> - <source>Applications</source> - <translation>應用程式</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="84"/> - <location filename="../mainwindow.ui" line="149"/> - <source>Virtual Streams</source> - <translation>虛擬串流</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="120"/> - <source><i>No application is currently recording audio.</i></source> - <translation><i>現在沒有應用程式在錄音。</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="185"/> - <source><i>No output devices available</i></source> - <translation><i>沒有可用的輸出裝置</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="204"/> - <source>All Output Devices</source> - <translation>全部輸出裝置</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="209"/> - <source>Hardware Output Devices</source> - <translation>硬體輸出裝置</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="214"/> - <source>Virtual Output Devices</source> - <translation>虛擬輸出裝置</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="28"/> - <source>&Playback</source> - <translation>播放 (&P)</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="93"/> - <source>&Recording</source> - <translation>錄音 (&R)</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="158"/> - <source>&Output Devices</source> - <translation>輸出裝置 (&O)</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="223"/> - <source>&Input Devices</source> - <translation>輸入裝置 (&I)</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="250"/> - <source><i>No input devices available</i></source> - <translation><i>沒有可用的輸入裝置</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="269"/> - <source>All Input Devices</source> - <translation>全部輸入裝置</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="274"/> - <source>All Except Monitors</source> - <translation>除顯示器外全部</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="279"/> - <source>Hardware Input Devices</source> - <translation>硬體輸入裝置</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="284"/> - <source>Virtual Input Devices</source> - <translation>虛擬輸入裝置</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="289"/> - <source>Monitors</source> - <translation>顯示器</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="298"/> - <source>&Configuration</source> - <translation>配置 (&C)</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="325"/> - <source><i>No cards available for configuration</i></source> - <translation><i>沒有可配置的音效卡</i></translation> - </message> - <message> - <location filename="../mainwindow.ui" line="336"/> - <source>Show volume meters</source> - <translation>顯示音量表</translation> - </message> - <message> - <location filename="../mainwindow.ui" line="347"/> - <source>...</source> - <translation></translation> - </message> - <message> - <location filename="../mainwindow.cc" line="159"/> - <source> (plugged in)</source> - <translation> (插入)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="163"/> - <location filename="../mainwindow.cc" line="257"/> - <source> (unavailable)</source> - <translation> (不可用)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="165"/> - <location filename="../mainwindow.cc" line="254"/> - <source> (unplugged)</source> - <translation> (移除)</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="388"/> - <source>Failed to read data from stream</source> - <translation>無法從串流讀取資料</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="432"/> - <source>Peak detect</source> - <translation>峰值偵測</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="433"/> - <source>Failed to create monitoring stream</source> - <translation>無法新增監控串流</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="448"/> - <source>Failed to connect monitoring stream</source> - <translation>無法連結監控串流</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="587"/> - <source>Ignoring sink-input due to it being designated as an event and thus handled by the Event widget</source> - <translation>忽略sink-input,由於它被設計為事件,因此歸「事件小工具」處理</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="759"/> - <source>System Sounds</source> - <translation>系統音效</translation> - </message> - <message> - <location filename="../mainwindow.cc" line="1089"/> - <source>Establishing connection to PulseAudio. Please wait...</source> - <translation>與PulseAudio建立連線中。請稍後...</translation> - </message> -</context> -<context> - <name>QObject</name> - <message> - <location filename="../pavucontrol.cc" line="66"/> - <source>Error</source> - <translation>錯誤</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="87"/> - <source>Card callback failure</source> - <translation>音效卡回調失敗</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="110"/> - <source>Sink callback failure</source> - <translation>Sink回調失敗</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="133"/> - <source>Source callback failure</source> - <translation>Source回調失敗</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="152"/> - <source>Sink input callback failure</source> - <translation>Sink輸入回調失敗</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="171"/> - <source>Source output callback failure</source> - <translation>Source輸出回調失敗</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="211"/> - <source>Client callback failure</source> - <translation>客戶端回調失敗</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="227"/> - <source>Server info callback failure</source> - <translation>伺服器資訊回調失敗</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="245"/> - <location filename="../pavucontrol.cc" line="542"/> - <source>Failed to initialize stream_restore extension: %s</source> - <translation>無法初始化「串流復原」擴充套件:%s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="263"/> - <source>pa_ext_stream_restore_read() failed</source> - <translation>pa_ext_stream_restore_read() 失敗</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="281"/> - <location filename="../pavucontrol.cc" line="556"/> - <source>Failed to initialize device restore extension: %s</source> - <translation>無法初始化「裝置復原」擴充套件:%s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="302"/> - <source>pa_ext_device_restore_read_sink_formats() failed</source> - <translation>pa_ext_device_restore_read_sink_formats() 失敗</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="320"/> - <location filename="../pavucontrol.cc" line="569"/> - <source>Failed to initialize device manager extension: %s</source> - <translation>無法初始化「裝置管理員」擴充套件:%s</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="339"/> - <source>pa_ext_device_manager_read() failed</source> - <translation>pa_ext_device_manager_read() 失敗</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="356"/> - <source>pa_context_get_sink_info_by_index() failed</source> - <translation>pa_context_get_sink_info_by_index() 失敗</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="369"/> - <source>pa_context_get_source_info_by_index() failed</source> - <translation>pa_context_get_source_info_by_index() 失敗</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="382"/> - <location filename="../pavucontrol.cc" line="395"/> - <source>pa_context_get_sink_input_info() failed</source> - <translation>pa_context_get_sink_input_info() 失敗</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="408"/> - <source>pa_context_get_client_info() failed</source> - <translation>pa_context_get_client_info() 失敗</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="418"/> - <location filename="../pavucontrol.cc" line="483"/> - <source>pa_context_get_server_info() failed</source> - <translation>pa_context_get_server_info() 失敗</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="431"/> - <source>pa_context_get_card_info_by_index() failed</source> - <translation>pa_context_get_card_info_by_index() 失敗</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="474"/> - <source>pa_context_subscribe() failed</source> - <translation>pa_context_subscribe() 失敗</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="490"/> - <source>pa_context_client_info_list() failed</source> - <translation>pa_context_client_info_list() 失敗</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="497"/> - <source>pa_context_get_card_info_list() failed</source> - <translation>pa_context_get_card_info_list() 失敗</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="504"/> - <source>pa_context_get_sink_info_list() failed</source> - <translation>pa_context_get_sink_info_list() 失敗</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="511"/> - <source>pa_context_get_source_info_list() failed</source> - <translation>pa_context_get_source_info_list() 失敗</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="518"/> - <source>pa_context_get_sink_input_info_list() failed</source> - <translation>pa_context_get_sink_input_info_list() 失敗</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="525"/> - <source>pa_context_get_source_output_info_list() failed</source> - <translation>pa_context_get_source_output_info_list() 失敗</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="584"/> - <location filename="../pavucontrol.cc" line="635"/> - <source>Connection failed, attempting reconnect</source> - <translation>連接失敗,嘗試重新連接</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="607"/> - <location filename="../pavucontrol.cc" line="664"/> - <source>PulseAudio Volume Control</source> - <translation>PulseAudio音量控制</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="622"/> - <source>Connection to PulseAudio failed. Automatic retry in 5s - -In this case this is likely because PULSE_SERVER in the Environment/X11 Root Window Properties -or default-server in client.conf is misconfigured. -This situation can also arrise when PulseAudio crashed and left stale details in the X11 Root Window. -If this is the case, then PulseAudio should autospawn again, or if this is not configured you should -run start-pulseaudio-x11 manually.</source> - <translation>連接PulseAudio失敗,在5秒內自動重試 - -這個情況像是因為環境/X11主視窗內容的PULSE_SERVER -或是client.conf的default-server被配置錯誤。 -這個情況也可能發生在PulseAudio意外中止時,在X11主視窗遺留舊的詳細資訊。 -若是上述的情況,PulseAudio必須要再次autospawn,又或是這沒有被配置,你應該 -手動啟動start-pulseaudio-x11。</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="672"/> - <source>Select a specific tab on load.</source> - <translation>在負載上選擇一個指定的分頁。</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="675"/> - <source>Retry forever if pa quits (every 5 seconds).</source> - <translation>如果pa離開時永遠嘗試重啟 (每5秒)。</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="678"/> - <source>Maximize the window.</source> - <translation>最大化視窗。</translation> - </message> - <message> - <location filename="../pavucontrol.cc" line="703"/> - <source>Fatal Error: Unable to connect to PulseAudio</source> - <translation>致命錯誤:無法連接到PulseAudio</translation> - </message> -</context> -<context> - <name>RoleWidget</name> - <message> - <location filename="../rolewidget.cc" line="59"/> - <source>pa_ext_stream_restore_write() failed</source> - <translation>pa_ext_stream_restore_write() 失敗</translation> - </message> -</context> -<context> - <name>SinkInputWidget</name> - <message> - <location filename="../sinkinputwidget.cc" line="36"/> - <source>on</source> - <translation>開啟</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="39"/> - <source>Terminate Playback</source> - <translation>中止播放</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="53"/> - <source>Unknown output</source> - <translation>未知輸出</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="64"/> - <source>pa_context_set_sink_input_volume() failed</source> - <translation>pa_context_set_sink_input_volume() 失敗</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="79"/> - <source>pa_context_set_sink_input_mute() failed</source> - <translation>pa_context_set_sink_input_mute() 失敗</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="89"/> - <source>pa_context_kill_sink_input() failed</source> - <translation>pa_context_kill_sink_input() 失敗</translation> - </message> - <message> - <location filename="../sinkinputwidget.cc" line="114"/> - <source>pa_context_move_sink_input_by_index() failed</source> - <translation>pa_context_move_sink_input_by_index() 失敗</translation> - </message> -</context> -<context> - <name>SinkWidget</name> - <message> - <location filename="../sinkwidget.cc" line="81"/> - <source>pa_context_set_sink_volume_by_index() failed</source> - <translation>pa_context_set_sink_volume_by_index() 失敗</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="96"/> - <source>pa_context_set_sink_mute_by_index() failed</source> - <translation>pa_context_set_sink_mute_by_index() 失敗</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="110"/> - <source>pa_context_set_default_sink() failed</source> - <translation>pa_context_set_default_sink() 失敗</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="126"/> - <source>pa_context_set_sink_port_by_index() failed</source> - <translation>pa_context_set_sink_port_by_index() 失敗</translation> - </message> - <message> - <location filename="../sinkwidget.cc" line="166"/> - <source>pa_ext_device_restore_save_sink_formats() failed</source> - <translation>pa_ext_device_restore_save_sink_formats() 失敗</translation> - </message> -</context> -<context> - <name>SourceOutputWidget</name> - <message> - <location filename="../sourceoutputwidget.cc" line="35"/> - <source>from</source> - <translation>來自</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="39"/> - <source>Terminate Recording</source> - <translation>中止錄製</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="60"/> - <source>Unknown input</source> - <translation>未知輸入</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="72"/> - <source>pa_context_set_source_output_volume() failed</source> - <translation>pa_context_set_source_output_volume() 失敗</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="87"/> - <source>pa_context_set_source_output_mute() failed</source> - <translation>pa_context_set_source_output_mute() 失敗</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="98"/> - <source>pa_context_kill_source_output() failed</source> - <translation>pa_context_kill_source_output() 失敗</translation> - </message> - <message> - <location filename="../sourceoutputwidget.cc" line="125"/> - <source>pa_context_move_source_output_by_index() failed</source> - <translation>pa_context_move_source_output_by_index() 失敗</translation> - </message> -</context> -<context> - <name>SourceWidget</name> - <message> - <location filename="../sourcewidget.cc" line="35"/> - <source>pa_context_set_source_volume_by_index() failed</source> - <translation>pa_context_set_source_volume_by_index() 失敗</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="50"/> - <source>pa_context_set_source_mute_by_index() failed</source> - <translation>pa_context_set_source_mute_by_index() 失敗</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="64"/> - <source>pa_context_set_default_source() failed</source> - <translation>pa_context_set_default_source() 失敗</translation> - </message> - <message> - <location filename="../sourcewidget.cc" line="80"/> - <source>pa_context_set_source_port_by_index() failed</source> - <translation>pa_context_set_source_port_by_index() 失敗</translation> - </message> -</context> -<context> - <name>StreamWidget</name> - <message> - <location filename="../streamwidget.ui" line="14"/> - <source>Form</source> - <translation>表單</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="32"/> - <source>Device Title</source> - <translation>裝置標題</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="52"/> - <source>direction</source> - <translation>方向</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="59"/> - <source>device</source> - <translation>裝置</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="66"/> - <source>Mute audio</source> - <translation>靜音</translation> - </message> - <message> - <location filename="../streamwidget.ui" line="79"/> - <source>Lock channels together</source> - <translation>同時鎖定兩聲道</translation> - </message> - <message> - <location filename="../streamwidget.cc" line="34"/> - <source>Terminate</source> - <translation>中止</translation> - </message> -</context> -</TS> |