07070100000000000081A400000000000000000000000166968E4E00000401000000000000000000000000000000000000001C00000000gnome-music-46.1/.gitignore*~ builddir/ /*.bak /*.lo /*.o /*.orig /*.rej /*.tab.c /*~ /.*.sw[nop] /.deps /.dirstamp /.gitignore /.libs /.mypy_cache /AUTHORS /ABOUT-NLS /GPATH /GRTAGS /GSYMS /GTAGS /ID /INSTALL /Makefile /Makefile.in /TAGS /_build /_libs /aclocal.m4 /autom4te.cache /autoscan.log /compile /config.cache /config.guess /config.h /config.h.in /config.log /config.lt /config.rpath /config.status /config.status.lineno /config.sub /configure /configure.lineno /configure.scan /depcomp /install-sh /libtool /ltmain.sh /m4 /missing /mkinstalldirs /po/*.gmo /po/*.mo /po/Makefile /po/Makefile.in /po/Makefile.in.in /po/POTFILES /po/gnome-music.pot /po/stamp-it /so_locations /stamp-h1 /tags /gnome-music/*.pyc /gnome-music/Makefile /gnome-music/Makefile.in /py-compile *.tar.xz *.desktop *.gresource *.compiled data/Makefile data/Makefile.in *.patch *.pyc Makefile gnome-music *.valid /gnomemusic/Makefile.in /data/AboutDialog.ui /data/gnome-music.appdata.xml /help/Makefile.in /help/**/*.page /help/**/*.mo /help/**/*.stamp /help/**/legal.xml 07070100000001000041ED00000000000000000000000266968E4E00000000000000000000000000000000000000000000001900000000gnome-music-46.1/.gitlab07070100000002000081A400000000000000000000000166968E4E000003B0000000000000000000000000000000000000002000000000gnome-music-46.1/.gitlab-ci.ymlinclude: 'https://gitlab.gnome.org/GNOME/citemplates/raw/master/flatpak/flatpak_ci_initiative.yml' stages: - check - build-flatpak - deploy variables: BUNDLE: "gnome-music-dev.flatpak" GIT_SUBMODULE_STRATEGY: normal flatpak: extends: .flatpak stage: build-flatpak variables: APP_ID: "org.gnome.Music.Devel" FLATPAK_MODULE: "gnome-music" MANIFEST_PATH: "org.gnome.Music.json" RUNTIME_REPO: "https://nightly.gnome.org/gnome-nightly.flatpakrepo" nightly: extends: .publish_nightly dependencies: - flatpak flake8: stage: check image: registry.fedoraproject.org/fedora:latest script: - dnf install -y python3-flake8 - flake8 --ignore E402,W503 --show-source gnomemusic/ mypy: stage: check image: registry.fedoraproject.org/fedora:latest script: - dnf install -y python3-mypy - mypy --ignore-missing-imports --disallow-incomplete-defs gnomemusic 07070100000003000041ED00000000000000000000000266968E4E00000000000000000000000000000000000000000000002900000000gnome-music-46.1/.gitlab/issue_templates07070100000004000081A400000000000000000000000166968E4E00000178000000000000000000000000000000000000003400000000gnome-music-46.1/.gitlab/issue_templates/default.md## Description [Description of the bug or feature] ## Steps To Reproduce - Step 1 - Step 2 - Step 3 ## Expected Behaviour [What you expected to happen] ## Actual Behaviour [What actually happened] ## Specifications Gnome Music Version: Desktop Environment: Wayland or Xorg: Flatpak or Native: Tracker Version: Grilo Version: ## Additional Information 07070100000005000081A400000000000000000000000166968E4E00000081000000000000000000000000000000000000001D00000000gnome-music-46.1/.gitmodules[submodule "subprojects/shared-modules"] path = subprojects/shared-modules url = https://github.com/flathub/shared-modules.git 07070100000006000081A400000000000000000000000166968E4E000048E2000000000000000000000000000000000000001900000000gnome-music-46.1/LICENSE# This GPL license have a exception clause added, see at the bottom of file # for details. GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. The GNOME Music authors hereby grant permission for non-GPL compatible GStreamer plugins to be used and distributed together with GStreamer and GNOME Music. This permission is above and beyond the permissions granted by the GPL license by which GNOME Music is covered. If you modify this code, you may extend this exception to your version of the code, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version. 07070100000007000081A400000000000000000000000166968E4E0000E57E000000000000000000000000000000000000001600000000gnome-music-46.1/NEWSOverview of changes in 46.1 =========================== • Fix search dropping the first character Bugs fixed: Handle bad image formats graciously (#605) Fix first char dropping on search (#553) Fix PyGObject change fallout Incorrect/missing URLs in app metadata (#599) Thanks to our contributors this release: Andre Klapper Debanga Sarma Marinus Schraal Michael Catanzaro Vaishnavi Nawghare Overview of changes in 46.0 =========================== • Translation updates Overview of changes in 46.beta ============================== • Ported to Adwaita 1.4 and 1.6 widgets • Songs view removed • Preferences dialog added • Dropped old-style selection mode Bugs Fixed: Port to new libadwaita widgets (#579) Remove GOA use and LastFM support (#584) Fix Tracker 3 queries (#578) Fix jumping scrolling (#580) Replace StarImage with StarToggle (#497) Improve texture scaling (#513) Add preferences dialog (#471) Improve player duration query handling (#449) Remove Songs view (#570) Improve 'Recently Played' query (!1047) Improve appdata (!1026) Thanks to our contributors this release: Carlos Garnacho Jean Felder Feliks Weber Marinus Schraal Mpho Jele Radek Crlík Sabri Ünal Shema Angelo Verlain Tobias Bernard Vincent Cottineau Overview of changes in 45.0 =========================== • Minor quality of life improvements Thanks to our contributors this release: Carlos Garnacho Jean Felder Harold Knowlden Marinus Schraal Updated or added translations: Abkhazian Romanian Italian Turkish British English French Hungarian German Hebrew Ukrainian Greek Slovenian Belarusian Russian Portuguese Chinese (China) Polish Finnish Spanish Indonesian Galician Basque Occitan Georgian Kazakh Swedish Czech Punjabi Korean Dutch Lithuanian Danish Catalan Latvian Overview of changes in 44.0 =========================== • Update appdata for the 44.0 release Overview of changes in 44.rc ============================ • Shortcuts menu cleanups • Misc focus fixes in album widgets • Decrease memory usage in SongsView Bugs Fixed: SongView popup is a memory hog (#495) Shuffle on/off mixup (#543) Default template for issues (#525) Thanks to our contributors this release: Andre Klapper Automeris Naranja Ezike Ebuka Jean Felder Marinus Schraal Sabri Ünal Overview of changes in 44.beta ============================== • Make shuffle shuffle again • Fix time display in RTL languages • Port to soup 3 • Port about to AdwAboutWindow • No longer mismatch art on scrolling • Fix async queue block on fresh art retrieval • Use new GNOME Settings app id in flatpak • Fix welcome image rendering Bugs fixed: Rework ArtStack to handle cycling widgets better (#500) Shuffle broken in Music 42 (#515) Time is reversed in RTL (#509) Thanks to our contributors this release: Carlos Garnacho Christopher Davis Georges Basile Stavracas Neto Jean Felder Marinus Schraal Yosef Or Boczko Updated or added translations: Abkhazian Basque Belarusian Brazilian Portuguese Bulgarian Catalan Chinese (China) Chinese (Taiwan) Croatian Czech Danish Dutch Finnish French Friulian Galician Georgian German Greek Hebrew Hungarian Icelandic Indonesian Kazakh Korean Latvian Lithuanian Nepali Occitan Persian Polish Portuguese Russian Serbian Slovak Slovenian Spanish Swedish Turkish Ukrainian Overview of changes in 42.0 =========================== • GTK-4 regression fixes Bugs fixed: App title untranslated (#510) Thanks to our contributors this release: Fabian Bornschein Georges Basile Stavracas Neto Jean Felder Marinus Schraal Sophie Herold Updated translations: Ukrainian Portuguese Brazilian Portuguese Indonesian Catalan Russian Chinese (China) Lithuanian Hebrew Czech Persian French Turkish Finnish Spanish Galician Slovak Slovenian Polish Basque Swedish Korean Croatian Danish Bulgarian Hungarian Kazakh Japanese Serbian German Occitan Norwegian Bokmål Italian Overview of changes in 42.beta ============================== • Port to GTK-4 • Dark mode switching Bugs fixed: Fix slow startup (!923) Thanks to our contributors this release: Christopher Davis Jakub Steiner Jean Felder Koushik Sahu Marinus Schraal Michael Catanzaro Sam Hewitt Sophie Herold Updated translations: Danish Icelandic Swedish Russian Indonesian Catalan Friulian Latvian Frisian Bulgarian Serbian Vietnamese Overview of changes in 41.0 =========================== Updated translations: Basque Spanish Croatian German Occitan Danish Polish Hungarian Hebrew Dutch Belarusian Turkish Overview of changes in 41.rc ============================ • Touch-ups for the new design • Async improvements Bugs fixed: Fix duplicated playlist song removal (#469) Fix flowbox selection state (#460) Thanks to our contributors this release: Marinus Schraal Mpho Jele Updated translations: Indonesian Ukrainian Swedish Czech Spanish Basque Catalan Brazilian Portuguese Galician Finnish British English Kazakh Slovenian Slovak Frisian French Korean Persian Greek Lithuanian Romanian Chinese (China) Overview of changes in 41.beta ============================== • Implemented much of the new design mockups • Update initial state art Thanks to our contributors this release: Christopher Davis Georges Basile Stavracas Neto Jakub Steiner Jean Felder Lucy Coleclough Marinus Schraal Rafael Coelho Sabri Ünal Vineet Reddy Updated translations: Vietnamese Hebrew Dutch Ukrainian Swedish Occitan Spanish Indonesian Russian Slovenian Romanian Brazilian Portuguese German Turkish Catalan Friulian Chinese (China) Portuguese Added translation: Frisian Overview of changes in 40.0 =========================== • Update appdata for the 40.0 release Overview of changes in 40.rc ============================ • Improve startup loading • Misc playlist handling fixes • Use publication date instead of creation date for songs Bugs fixed: Scrobbling crash (#412, !769) Fix artist queries to retrieve art (!773) Ignore redundant Tracker delete events (!781) Fix album selection checkboxes style (#414) Fix playlist deletion (!793, !813) adding songs to favorite crashes the app (#441) GNOME Music crashes during startup: discbox is None (#430) Crash when creating a playlist containing a quotation mark (#447) Thanks to our contributors this release: James A. Baker Jean Felder Marinus Schraal Yann Delaby Updated translation: British English Catalan Chinese (Taiwan) Danish Friulian Galician Hebrew Norwegian Bokmål Punjabi Romanian Slovak Overview of changes in 3.38.0 ============================= Updated translations: Danish Greek Hungarian Italian Latvian Portuguese Overview of changes in 3.37.92 ============================== * Port to Tracker 3 * Art retrieval complete rework * Flatpak cleanups and updates Bugs fixed: gnome-music gets stuck when next button is pressed when current song is about to finish (#375) Selection mode search doesn't work (#405) Selecting an album in albums view in selection mode randomly deselects other albums (#406) Selection mode only works for artists during search (#407) Music crashed if gnome-online-accounts is unavailable (#410) MPRIS playlist fixes (!741) Gracefully handle locale.{bind,}textdomain not being available (!735) Thanks to our contributors this release: Adam Blanchet Carlos Garnacho Chinmay Gurjar Jean Felder Marinus Schraal Piotr Drąg Rasmus Thomsen Sam Thursfield Simon McVittie Updated translation: Basque Brazilian Portuguese Catalan Chinese (China) Croatian Czech Dutch Finnish French Friulian Galician German Indonesian Japanese Kazakh Korean Lithuanian Persian Polish Serbian Slovak Slovenian Spanish Swedish Turkish Ukrainian Overview of changes in 3.37.3 ============================= Bugs fixed: pauseonsuspend: Fix calls to MusicLogger.warning() (!724) Duplication of menu bar (#387) High CPU usage (#360) Bind more SongWidget properties (!663) Thanks to our contributors this release: Evan Nehring Jean Felder Marinus Schraal Nils Reuße Updated translation: Kazakh Overview of changes in 3.37.2 ============================= * Use Gtk.Template for all the Views and remove BaseView * Prefer Albumartist field for artist search * Change Artist view selection from artist to song * Extend Gtk.Template usage for Window * Deinitialize Grilo on shutdown * Music now explicitly depends on Pango 1.44 or above * Flatpak cleanups and updates * Various widgets style and code cleanups Bugs fixed: Artist view should support music selection (#26) In-app notifications need to be dismissable (#259) Stop using show_all (#320) Crash while searching due to bugs in searchview.py (#372) Crash on start: object 'AttrFontFeatures' has no attribute 'new' (#374) Wrong song count in favourite playlist (#376) Please stop changing the module search path (#377) Use libsoup for art retrieval (#378) Music crashes on 'check_smart_playlist_change' call (#382) Thanks to our contributors this release: Ashwani Singh Tanwar Atharva Veer Chinmay Gurjar Erik Inkinen Evan Nehring Jean Felder Marinus Schraal Weifang Lai Added translations: Ukrainian Updated translations: Catalan Chinese (China) Chinese (Taiwan) Hebrew Norwegian Bokmål Romanian Russian Slovak Slovenian Ukrainian Overview of changes in 3.36.0 ============================= Updated translations: Italian German Dutch Overview of changes in 3.35.92 ============================== • Restore smart playlists update • Improve Tracker content tracking • Flatpak cleanups and updates Bugs fixed: Properly load Grilo Tracker plugin (!650) Stop a deleted playlist if it is playing (!661) Misc playlists fixes (!654) Flatpak: remove unused dleyna support (!644) flatpak assorted fixes (!645) Thanks to our contributors this release: Georges Basile Stavracas Neto Jackson Campolattaro Marinus Schraal Jean Felder Updated translations: Brazilian Portuguese British English Catalan Chinese (Taiwan) Croatian Czech Danish Finnish French Galician Hungarian Korean Indonesian Lithuanian Persian Polish Serbian Spanish Swedish Turkish Overview of changes in 3.35.91.1 ================================ Bug fixed: Possible crash on warning (!643) Overview of changes in 3.35.91 ============================== • Use natural order for sorting • Expose Last.fm scrobbler in the UI • Add local runtime cache for scrobbling • Add GLib style logging and remove old logging and debug switch Bugs fixed: Sort albums title containing digits numerically (#22) PlaylistsView: select the next playlist on deletion (#359) Expose scrobbling support (#218) Switching to playlist gives an empty view (#348) Use tabular numbers for song duration (!623) Crash after select all items (#364) Deleting an empty playlist crashes (#365) Disable selection button in Playlist View while searching (#366) Help overlay remove Ctrl+F1 shortcut (!643) Thanks to our contributors this release: Use Alexander Mikhaylenko Chinmay Gurjar Jean Felder Marinus Schraal Sabri Ünal Translation added: Malay Updated translations: Greek Indonesian Spanish Slovak Chinese (Taiwan) Finnish Friulian Brazilian Portuguese Italian Swedish Croatian Persian Lithuanian Japanese Basque French Turkish Czech British English Serbian Galician Overview of changes in 3.35.3 ============================= * Improve Tracker content tracking * Update appdate screenshots Bugs fixed: F1 key is not opening help page (#353) Play on empty playlist crashes Music (#354,#355) Crash when pressing Alt+Left in SearchView (#357) Update the appdata screenshots (#327) Thanks to our contributors this release: Ishaan Shah Jean Felder Marinus Schraal Added translations: Basque Indonesian Updated translations: Chinese (Taiwan) Ukranian Brazilian Portuguese Galician Overview of changes in 3.35.2 ============================= * Album Covers are now loaded on demand * Use MusicBrainz identifiers to download album covers * Restore support for "Album Artist" tag * Disable online search by default * Restore MPRIS playlist support and misc MPRIS cleanups * Playlist fixes * Bring back loading notifications * Nightly application icon Bugs fixed: Fix a crash in Last.fm support (#328) GNOME shell MPRIS controls are not visible (#332) PlayerToolbar can become invisible (#335) Issues when resizing window below apparent minimum width (#337) GNOME music crashes after creating a huge amount of threads (#312) GNOME Music crashes if xdg_music_dir is not set (#338) group artists with a feat or an original artist under the same artist (#331) Songs Not in ~/Music Show Up In Search (#317) Fix visual glitches (#300) Use pkglibdir for gfmlibdir (!509) Limit smartplaylist content to XDG Music dir (#311) Crash when removing GOA account (#145) Model fixes (!557, !552, !533, !499) Fix icon rendering issues (!543) Selection fixes (!528) Restore the development style (!563) Thanks to our contributors this release: Jean Felder Sam Hewitt Marinus Schraal Jan Alexander Steffens Jakub Steiner Sumaid Syed Sam Thursfield Added translations: Tamil Translations updated: Catalan Danish Dutch Friulian Persian Spanish Overview of changes in 3.34.0 ============================= This release marks the first stable release after a invasive rewrite of Music internals and may still be rough around the edges. Regressions and known issues are kept track of in #299, further issue reports are welcome. * A flatpak issue with cover art retrieval was fixed Thanks to our contributors this release: Jean Felder Tranlations updated: Japanese Italian Overview of changes in 3.33.92 ============================== This release contains even more bug fixes and cleanups following the core rewrite. Regressions and known issues are kept track of in #299, further testing and issue reports are welcome. Thanks to our contributors this release: Hugo Posnic Piotr Drąg Jean Felder Marinus Schraal Translations updated: Indonesian Karb Basque Swedish Finnish Romanian Lithuanian Spanish Catalan Polish Serbian German Latvian Slovenian Hungarian Galician Korean British English Turkish French Greek Catalan Brazilian Portuguese Czech Croatian Overview of changes in 3.33.90 ============================== This release contains a lot of bug fixes following the rewrite of the core of Music. This work is not yet complete, but the overall state should be improved. Regressions and known issues are kept track of in #299. Further reports are welcome. Some other things were worked on as well: * Search view rewrite and style update * Display an empty view if Tracker version is outdated Thanks to our contributors this release: Piotr Drąg Jean Felder Marinus Schraal Added translations: Karbi Translations updated: Portuguese Basque Spanish Romanian Swedish Overview of changes in 3.33.4 ============================= This release contains a rewrite of the core of Music. This work is not yet complete, but should be in a usable state. Regressions and known issues are kept track of in #299. Further reports are welcome. Some other things were worked on as well: * Support gapless playback * MPRIS support rewrite * Playlists rewrite Thanks to our contributors this release: Georgers Basile Stavracas Neto Jean Felder Jesus Bermudez Velazquez Marinus Schraal Translations updated: Hungarian Greek Dutch Croatian Swedish Slovenian Icelandic Overview of changes in 3.33.2 ============================= * Improve Smooth progressbar support * Improve display of information for songs with no tags * Select a random song at launch when playing a playlist in shuffle mode * AppData tags update (initiative #8) * MPRIS misc cleanups * Lots of general cleanups Bugs fixed: gnome-music crashes on startup (#105) Stop using GtkBox:padding, GtkBox:fill and GtkBox:expand (#215) Do not rely on Tracker generated metadata (#223) MPRIS2 reports wrong .desktop file name (#263) Crash with mouse 'back' button (#265) Repeat song not working on Gnome Music 3.32.0 (#266) Order of search and select buttons incorrect (#270) flatpak nightly: Clicking on MPRIS player launches wrong version (#273) Incorrect timeline (progress bar) position for m4a file (#274) HeaderBar in selection mode has the search/cancel button order wrong (#275) Repeat All Does Not Repeat Single Songs From Search (#278) Resuming Playback Actually Restarts Song (#280) Thanks to our contributors this release: Christopher Davis Reuben Dsouza Bilal Elmoussaoui Jean Felder Andre Klapper Kalev Lember Marinus Schraal Veerasamy Sevagen Georges Basile Stavracas Neto Sumaid Syed Translation updated: Chinese (China) Chinese (Taiwan) Croatian Esperanto Friulian Hungarian Indonesian Italian Polish Portuguese (Brazil) Romanian Spanish Swedish Overview of changes in 3.32.0 ============================= Translations updated: Finnish Catalan French Overview of changes in 3.31.92 ============================== Bugs fixed: Fix initial state graphics in dark mode (#258) Thanks to our contributors this release: Tjipke van der Heide Veerasamy Sevagen Translations updated: Turkish Finnish Icelandic Dutch Lithuanian Basque Brazilian Portuguese Korean Italian Russian Serbian Friulian German Vietnamese Latvian Overview of changes in 3.31.91 ============================== * Show an empty view when Tracker is unavailable Bugs fixed: Play correct song while paused (#256) Show a warning when Tracker is not available (#165) Cannot cancel 'All' sources in search via button (#92) Crashes when trying to play any song (#244) Crash while tracks are being loaded (#252) Thanks to our contributors this release: Jean Felder Marinus Schraal Sagar Lakhani Translations updated: Czech Polish Spanish Romanian Hungarian Swedish Indonesian Slovenian Galician Kazakh Danish Chinese (Taiwan) Overview of changes in 3.31.90 ============================== * Add pause on suspend * Rework and cleanup MPRIS a lot * Use new Adwaita devel styling * Partial port to Gtk.EventController * Set error style on searchbar entry if applicable Bugs fixed: Limit composer length (#222) Fix keyboard shortcuts (#238) Correct MPRIS positioning (#227) Fix playlist renaming (#248) Fix Tracker criticals (#251) Fix popover positioning (#214) Pause when suspending (#68) Add error state for searchbar entry (#228) Thanks to our contributors this release: Christophe van den Abbeele Christopher Davis Harry Xie Jean Felder Jordan Petridis Marinus Schraal Mohanna Datta Yelugoti Nikolay Yanchuk Translations updated: Czech Slovenian Esperanto Spanish French Greek Friulian Swedish Hungarian Galician Romanian Indonesian Italian Finnish Turkish Polish Catalan Hungarian Overview of changes in 3.31.1 ============================= * Replace app menu with Primary menu (initiative #4) * Add TheAudioDB for coverart lookup * Dark mode fixes * Fix crash on opening help * New app icon (initiative #2) * Flatpak fixes Bugs fixed: Fix checkbox selection (!245) Set application id correctly (!241) Add The AudioDB support (!247) Fix search dissapearing on return from child (!253) Clean up data dir (#193) mpris: Prevent crash from play call with no playlist (!255) application: Fix crash on opening help (#22) Darkmode fixes (!269,!271) repeat-mode fixes (!274) Restart remote cover lookup on source availability (!284) ui: Change arrow menu button icons (#233) Thanks to our contributors this release: Christopher Davis Islam Bahnasy Jakub Steiner Jean Felder Marinus Schraal Shivansh Handa Tapasweni Pathak Translations updated: Serbian Overview of changes in 3.30.0 ============================= Translations updated: Galician Hungarian Vietnamese Latvian Croatian Danish Overview of changes in 3.29.92 ============================== * Make static playlists more reliable * Populate views on demand (improves startup) * Fix player toolbar song/artist order * Switch view navigation from to * Add tooltips in more places * Style treeview stars * Lots of cleanups and reliability fixes Bugs fixed: Fix Flatpak delayed loading (!239) Style treeview stars with CSS (!238) Use alt instead of ctrl for navigating tabs (#198) Do not allow view switching in all modes (!237) Introduce loading state (!233) grilo: Fix crash when Tracker is not (yet) loaded (!230) Populate views when opened (!232) views: Fix now-playing icon display (#203) On last play done, first song gets notified (#60) Shuffle shouldn't replay songs (#154) playlistview: improvements and bugfixes (!227,!229) meson: Do not add version suffix on default build (!228) Thanks to our contributors this release: Jean Felder Marinus Schraal Translations updated: Swedish Friulian Brazilian Portuguese Finnish Icelandic Romanian Kazakh Korean Indonesian Italian Overview of changes in 3.29.91 ============================== * Finished moving the existing ui to use Gtk.Template * Added some minor transitions going to selection-mode * Add OARS tag * Reword application description Bugs fixed: Wait for last album to load (#174) appdata: Add OARS tag & reword description (!177) disable sidebar stack transition (!206) playlistview: Add translator context to Play menu (!211) add GOA dependency (#212) use Gtk.Template for AlbumCover (#183) tarball fails to build (#211) use Gtk.Template for About dialog (#183) App-bundles selection-mode headerbar color incorrect (#208) Use Gdk.Event accessors (#213) Add SidebarRow widget (!221) use Gtk.Template for Searchbar and move to widgets (!226) Thanks to our contributors this release: Alexander Mikhaylenko Jean Felder Jordan Petridis Marinus Schraal Nick Richards Piotr Drąg Tyler Garcia Translations updated: Spanish Slovenian German Polish Turkish Czech Lithuanian Chinese (Taiwan) Greek Overview of changes in 3.29.90 ============================== * Lots of widgets ported to use Gtk.Template * Added development app bundles to CI * Codebase wide cleanups and refactoring * Port sidebars away from libgd views Bugs fixed: Using keyboard reveals the playerbar in in selection mode (#197) High contrast theme not folled for sidebars (#37) Right click to select Albums is inconsistent (#89) Flatpak + CI devops (#185) Music goes into an endless loop (#200) artistalbumswidget: missing attribute artist (#199) searchmode: Leaving selection mode with Escape dismisses search results (#195) Hard transition when entering selection mode (#27) Thanks to our contributors this release: Apostol Bakalov Jean Felder Jordan Petridis Marinus Schraal Piotr Drąg Translations updated: Czech Chinese (China) Spanish Chinese (Taiwan) Romanian Friulian Catalan Slovenian German French Greek Overview of changes in 3.29.2.1 =============================== * Add release commit to dist tarball Overview of changes in 3.29.2 ============================= * Update appdata * Fix issue with untranslated UI elements * CI use flake8 instead of pep8 & pyflakes * CI generate flatpak bundles for every commit and MR * Use libsoup for http requests * Use CSS styling instead of widget attributes * Merge emptystate views * Add optional suspend inhibition gsetting * Cleanup and split of Player and Toolbar classes * Numerous miscellaneous cleanups Bugs fixed: Partly untranslated user interface (#169) albumartcache: Do not close non-existing stream on error (!95) albumartcache: Fix possible lookup loop (!95) albumartcache: Do not send two signals on error (!95) Minor optimizations (!138) flatpak: Enable MPRIS and GNOME media keys (!129) notificationspopup: Fix source not found warning (!131) Ellipsized songs in Artists View are improperly aligned (#173) Fix notification calls on startup (!147) grilo: Fix audio check (!159) AlbumsView: Fix runtime updates still triggering [playlist dialog] implement empty state dialog (#74) Default search does not search in composer field (#140) SearchView does not use the same model as other views (#160) Use CSS style instead of html markup to color text (#163) Fix Running Length label translation in AlbumViewWidget (#177) local searchtag not removed when doing non-local searches (#130) Replace requests usage with libsoup (#144) Use DzlBoldingLabel for TrackWidget (#178) player: Add optional inhibition of system suspend (#182) Pressing escape when renaming a playlist does not cancel rename (#188) Thanks to our contributors this release: Ashwin Mohan Apostol Bakalov Jean Felder Marinus Schraal Adrian Solom Juan José González Bruce Cowan Alexander Mikhaylenko Subhadip Jana Georges Basile Stavracas Piotr Drąg Translations updated: Danish Croatian Greek British English Turkish Russian Slovenian Romanian Friulian Czech Indonesian Spanish Overview of changes in 3.27.92 ============================== * Port to Meson * Lots of fixes to the flatpak json * Fixes to playlists behaviour * Fix some shortcut logic * Fix issue with bluetooth headset input * Delayed loading of covers in albumsview to decrease startup time * Lots of general cleanups * Update to latest libgd Bugs fixed: Music won't build from flatpak (#138) Disable last.fm scrobbling if Music is disabled in GOA (#139) playlistview: Remove obsolete column renderer (!61) albumsview: Use correct checkbox style (!68) playlistview: Only show icons for playing playlists (#149) query: Filter out on-disk playlist formats (#72, #151) Replace logger.warn with logger.warning (#153) Switch to meson build system (#1) window: Handle Gdk Audio keys (#93) window: Restore selection popup functionality (#152) meson: Add fallback in case XDG_DATA_DIRS is not set (!85) Deleting a playlist does not stop the player (#156) Follow up searches do not trigger an actual search (#148) Changing playlist resets player model (#136) Thanks to our contributors this release: Benoît Legat Bilal Elmoussaoui Georges Basile Stavracas Neto Janne Körkkö Jean Felder Marinus Schraal Translations updated: Swedish Spanish Friulian Polish Indonesian Catalan Chinese (Taiwan) Brazilian Portuguese Galician Croatian Finnish Dutch German Hungarian Slovak Serbian Korean Croatian Italian Czech French Vietnamese Scottish Gaelic Lithuanian Kazakh Latvian Overview of changes in 3.27.90 ============================== * Lots of cleanup/refactoring * Moved to Gitlab * Add album scrobbling * Dropped some more libgd use * Add context menu to interact with playlist items * Drag and drop reorder in playlists * Add album scrobbling * Rework notifications * Rework art cache * CI fixes * Last bits of HiDPI support Bugs fixed: Clicking on cancel button from selection bar crashses music (#142) Crashed when trying to play music over UPnP (#46) Playlists are not displayed (#127) Fix deprecated accelerator call (#2) Crash during startup in albumart lookup (#121) Use stack for covers in player (#55) Finish HiDPI support (#65) Scale art more efficiently (#81) Playlist not deleted after close (#106) Allow undo on playlist track removal (#50) Fix artist/album search return all songs (#4) Replace deprecated override_color call (#3) Allow access to host cache from flatpak (!15) Reset song to clean on new playlist (#135) Use context menu on playlist tracks (#48) Replace deprecated add_accelerator call (#2) Console spam on startup related to Spotify (#132) Thanks to our contributors this release: Alberto Fanjul Felipe Borges Gyanesh Malhotra Jean Felder Marinus Schraal Subhadip Jana Translations updated: German Polish Friulian Indonesian Finnish Swedish Catalan Hungarian Esperanto Overview of changes in 3.27.4 ============================= Bugs fixed: Migrate from intltool to gettext (#787272) Add appstream metadata to non-deprecated location (#790869) Playlist ordering in views (#772090) Fix style of GdTaggedEntry (#791077) PEP-8 fixes & cleanups (#791481,!7,!9,!10,!17,!18) Update libgd (!8) Fixes to navigating back (#777238) Enable mouse button for navigating back (#771934) Fix constructor deprecation warning (#790127) Fix PyGObject deprecation warning (#788701) Fix order in method call (!21) Fix log decorator order (!22) Use python3 style super() calls (!16) DiscListBoxWidget update favourites (!23) Add the ability to rename playlists (!11) Update README.md (!12) Thanks to our contributors this release: Abhinav Singh Florian Darfeuille Jean Felder Jeremy Bicha Kainaat Singh Marinus Schraal Niels De Graef Phil Dawson Piotr Drąg Sambhav Kothari Translations updated: Dutch Romanian Icelandic Persian Catalan (Valencian) German Czech Friulian Norwegian bokmål Croatian Indonesian Serbian Swedish Overview of changes in 3.26.0 ============================= Translations updated: Catalan French Romanian Danish Overview of changes in 3.25.92 ============================== Bugs fixed: 786454 Wrong player.set_playlist call in albumwidget.py 780548 Problem scrolling albums on wayland 709073 Different icon in System Settings Sound pane Thanks to our contributors this release: Jan-Michael Brummer Jean Felder Marinus Schraal Robert Greener Translations updated: Croatian Italian Danish Vietnamese Overview of changes in 3.25.91 ============================== Bugs fixed: 786541 Add missing logger imports 786315 Make the playlist button a circle Thanks to our contributors this release: Jean Felder Jordan Petridis Translations updated: Polish French Overview of changes in 3.25.90 ============================== * Limit concurrent loading of coverart * Fixes to appdata * Use tracker:title-order for sorting Bugs fixed: 783466 query: Use tracker:title-order() SPARQL function for title sorting 785697 Remove comments from org.gnome.Music.json Thanks to our contributors this release: Carlos Garnacho Felipe Borges Georges Basile Stavracas Neto Kalev Lember Marinus Schraal Piotr Drąg Translations updated: Turkish Croatian Czech Malayalam Overview of changes in 3.25.4 ============================= * Build: depend on libtracker-sparql-2.0 * Add Flatpak manifest * Mark forgotten string for translation Bugs fixed: 776668 fix minor seek stutter 774500 refactor gnome-music.in to be more readable 781684 playlistview artist field incorrect 777346 allow seek using arrow keys 781754 fix media-player-keys bus name Thanks to our contributors this release: Abhinav Singh Carlos Garnacho Carlos Soriano Felipe Borges Marinus Schraal Pablo Palácios Piotr Drąg Translations updated: Belarusian Slovenian Polish Indonesian Overview of changes in 3.24.1.1 =============================== * Revert desktop file rename * In turn revert Flatpak manifest addition Overview of changes in 3.24.1 ============================= * Add Flatpak manifest * Fix crashers * Up Grilo requirements Bugs fixed: 780523 playlist dialog shows the playlist that is going to be deleted 779905 build: Add a first version of Flatpak manifest Thanks to our contributors this release: Abhinav Singh Carlos Soriano Marinus Schraal Translations updated: Portuguese Norwegian bokmål Greek Croatian Overview of changes in 3.24.0 ============================= Translations updated: Russian Latvian Brazilian Portuguese Overview of changes in 3.23.92 ============================== * Code cleanups * Local art retrieval added * AppData screenshots updated Bugs fixed: 779013 only one (older) screenshot in appdata file 779585 Window is wider than 1024px 777041 Unexpected behaviour of playlist notification actions, sometimes deletes, sometimes not 776668 double click on seek bar pauses the songs 779052 MPRIS TrackList GoTo Method Crashes gnome-music 779584 Handle coverart extraction in gnome-music Thanks to our contributors this release: Abhinav Singh Andreas Nilsson Carlos Garnacho Marinus Schraal Translations updated: Hungarian Slovak Serbian Galician Lithuanian Italian Czech Polish Danish Scottish Gaelic Occitan French Korean Indonesian Basque Icelandic Swedish Chinese (Taiwan) Finnish Overview of changes in 3.23.91 ============================== * Code cleanups Bugs fixed: 774470 Use song instead of track in the source codebase 774449 Cleanup baseview.py Thanks to our contributors this release: Marinus Schraal Rashi Sah Suyash Garg Translations updated: Finnish Kazakh Danish Norwegian bokmål Slovak Polish Basque Indonesian Italian Hungarian Catalan Friulian Ukrainian German Brazilian Portuguese Serbian Spanish Overview of changes in 3.23.90 ============================== * Empty-state added for playlist dialog * Cleanups Bugs fixed: 772089 [playlist dialog] implement empty state dialog 776680 'Select All' doesn't have an action in Artists tab 777541 Crashes as soon as trying to play a song 777219 PEP 8 fix : application.py Thanks to our contributors this release: Abhinav Singh Alberto Fanjul Marinus Schraal Yash Singh Translations updated: Czech Indonesian German Turkish Catalan Polish Slovak Friulian Overview of changes in 3.23.4 ============================= * Revamp notifications and drop GdNotification * More cleanups Bugs fixed: 776157 Improve notifications' interaction 776849 Gnome-music crashes on clicking "select all" in album 777127 Pressing back after no search results from single album view leads to force close 777235 Pressing back button when searching through a subview, should turn search off and go back 777216 PEP 8 fix : __init__.py 776673 Recompile resources when builddir is not same as srcdir 772975 In a playlist repeatSong/shuffle/repeatSong take effect from the next song Thanks to our contributors this release: Abhinav Singh Alberto Fanjul Georges Basile Stavracas Neto Marinus Schraal Sambhav Kothari Translations updated: Finnish Kazakh Spanish Overview of changes in 3.23.3 ============================= * Start to use Grilo for storing metadata * Rework starring widget * DistListBox improvements * Stop walking directories for no reason * Finish move to tracker async calls Bugs fixed: 774754 Use correct Grilo property for favourite tracking 772689 Use tracker async queries 775759 create_playlists cursor_callback method has a TypeError 775930 Correct error variable names Thanks to our contributors: Carlos Garnacho Georges Basile Stavracas Neto Marinus Schraal Sambhav Kothari Yash Singh Translations updated: German Hungarian Russian Overview of changes in 3.23.2 ============================= * Rely on Cairo for cover scaling * Smooth progressbar * Make more tracker calls async * General cleanups * Tackle long-standing issues with album separation Bugs fixed: 773478 artistviews: pep cleanup 772263 Use unicode in translatable strings 772698 async work 774260 handle optional album-artist in queries 774481 Add missing license header to gnome-music.in 773769 songsview: pep cleanup 772628 player: make progress scale move smoothly Thanks to our contributors: Carlos Garnacho Clayton G. Hobbs Marinus Schraal Pablo Palácios Piotr Drąg Suyash Garg Yash Singh Translation updated: Czech Friulian Hungarian Norwegian bokmål Slovenian Overview of changes in 3.23.1 ============================= * Rework art lookup * Add HiDPI support (90% done) * Add mnemonics * Rework about dialog * Split up views & widgets * Rework the album widgets * Show multi-disc albums as such * Make playlist retrieval non-blocking * Add composer label & search Bugs fixed: 761185 Help should use tag when referring to application names 771348 Use | as I18N separator 772403 Album art: also consider height when scaling 765476 Crashes upon opening with a GLib error 719452 Provide proper output if gobject-introspection-devel is missing 773192 Fix playlists loading time 705094 Display more details on Album view 750827 Album views - if an album has multiple disks, group tracks by disk 761891 Weird interaction selection mode + favourites Thanks to our contributors: Carlos Garnacho Georges Basile Stavracas Neto Konstantin PospelovSebastian Rasmussen Marinus Schraal Sebastian Rasmussen Translation updated: Basque Chinese (simplified) Chinese (Taiwan) Czech Danish Friulian German Italian Swedish Overview of changes in 3.22.0 ============================= * Update mainters in doap Translations updated: Ukrainian Catalan Scottish Gaelic Persian Overview of changes in 3.21.92 ============================== * Fix keyboard play/pause handling * Remove top separator in song lists * Do not remove static playlists on Delete keypress Bugs fixes: 771249 Static playlists should not be removed using the Delete key 770178 Remove the first Songs row separator 754096 Space doesn't always toggle pause/play Thanks to our contributors: Konstantin Pospelov Marinus Schraal Yash Singh Translations updated: Danish Greek Latvian Galician Swedish Hebrew Vietnamese British English Lithuanian Kazakh Korean Friulian Serbian Overview of changes in 3.21.90 ============================== * New keyboard shortcuts and a shortcuts window to go with it * Move to cleanup the codebase style (PEP-8) & use docstrings, see README * Better sorting in albums and artists view * Playlist dialog enhanced with a 'new playlist' entry * Move to GtkFlowBox for albums view, a significant performance improvement Bugs fixed: 761502 Include playlists from Music dir only & order static playlists on top 766115 Return songs only once 746447 Require tracker 1.8 for titled playlists 765609 Fix mpris repeatmode 761625 Cleanup artist/author ambiguity 747953 Don't leak information over http through Grilo & unregister sources 754700 Require Grilo 0.3.1 and use the album-artist key if available 742531 Ignore punctuation when sorting albums and artists, requires tracker 1.9 758637 Implement new keyboard shortcuts 757833 Add GtkShortcut window 769774 Fix sidelist shadow 769772 Use GtkSearchBar for the searchbar + misc fixes 744834 Add new playlist entry to playlist dialog + misc fixes 760164 Use GtkFlowBox for albums view Thanks to our contributors: Billy Barrow Carlos Garnacho Divyanshu Vishwakarma Elias Entrup Evandro Giovanini Felipe Borges Gaurav Narula Georges Basile Stavracas Neto Kevin Haller Marinus Schraal Translations updated: Occitan Catalan Spanish French Friulian Slovak Czech Indonesian Brazilian Portuguese German Hungarian Finnish Polish Portuguese Overview of changes in 3.20.2 ============================= Bugs fixed: 705069 Port to Gio GDBUS API 763618 Clarify jhbuild instructions in README 755089 Emit playback-status-changed after playlist ends 744820 Accept response on row-activated in Playlist Dialog 765598 Bump Gtk+ minimum version to 3.19.3 761961 Stop the player when destroying window Translations updated: Swedish Friulian Esperanto Brazilian Portuguese Occitan Overview of changes in 3.20.0 ============================= Translations updated: Danish Hungarian Overview of changes in 3.19.92 ============================== Bugs fixed: 762821 Update Grilo plugin ranks to 0.3 format 761941 Fix Pango critical warnings on searchbar 761890 Check if visible child is ArtistsAlbumsWidget on search toggle 763304 Don't assume that nmm:MusicPieces will have a nie:url in playlists 744821 Properly de/activate select button on PlaylistDialog when navigating w/ arrow keys 744831 Fix crash while deleting multiple playlists a173f2 Update libgd Translations updated: Occitan Korean Slovenian French Special thanks to the new contributors: Gaurav Narula Marinus Schraal Prashant Tyagi Saiful B. Khan Overview of changes in 3.19.91 ============================== Bugs fixed: 744829 No more duplicate playlists on the sidebar 762406 More Grilo 0.3 transition fixes 762265 No more notifications on track changes Translations updated: Slovak Occitan Ukrainian Overview of changes in 3.19.90 ============================== Bugs fixed: 761173 Update tracker queries to sparql 1.1 syntax 760170 Fix check button appearance on AlbumWidget 760170 Fix check buttons appearance in Songs and Playlist view 736463 Reposition the scrollbar in the search window 760171 Resized songs list for better viewing in large window Translations updated: Latvian Bulgarian Overview of changes in 3.19.4 ============================= Bugs fixed: Let GtkApplication automatically load the app-menu Refactor the way we connect menu actions 758942 Use grilo 0.3 for GNOME 3.20 758942 Fix deprecation warnings in GTK+ Update libgd from master Scale the playlist name to match the mockups 759024 Use the path of the filter model in search results 739924 Make search find strings with accents 759882 Fix warnings when switching between stack pages Add symbolic icon 760033 Make albumart fetching truly asynchronous 760033 Defer serialization of default icon 760033 Set model on the view after all insertions happened 760033 Remove check for dup jobs 760033 Don't add items on idle 760033 Depend on Tracker >= 1.7.1 759587 Rework songs, artists, playlists, and albums queries Pass width/height during pixbuf loading 751163 Restrict music catalog to the Music folder 760381 Use GIO async APIs to download cover art 734958 Increase the maximum width of the artist and track name Translations updated: Spanish Slovenian Overview of changes in 3.18.2 ============================= Bugs fixed: 755601 Fix styling for entry tags (libgd) 756256 Fix XML tag in help 746446 Reset app title to Music after leaving album view 756330 Fix crashes when coming back from search view 757227 Fix missing toolbar when coming back from search result g Translations updated: Serbian German Greek Czech Basque Lithuanian Hungarian Overview of changes in 3.18.0 ============================= Translations updated: Danish Swedish Overview of changes in 3.17.92 ============================= Bugs fixed: 744827 Empty stars in 'Search' view 754654 Fixes for staticmethod definitions 754702 Search drop-down doesn't show the right default source 754836 Toggling search of when on a albumWidget doesn't make search view disappear 754977 gnomemusic/widgets.py using depreciated PARAM_READWRITE Translations updated: Added Icelandic Finnish update Fix FSF address in Polish French Kazakh Korean Lithuanian Turkish Persian Overview of changes in 3.17.91 ============================= Bugs fixed: 738516 Tags in search textbox are broken Translations updated: Chinese (Taiwan) French Galician s German Greek Indonesian Italian Polish Update Catalan transation Overview of changes in 3.17.90 ============================= Bugs fixed: 744658 Playlists sidebar - border is cut off 753488 Clicking on artist on search results does nothing Translations updated: Brazilian Portuguese Czech Fix Portuguese desktop keywords Friulian Norwegian bokmål Turkish Overview of changes in 3.17.4 ============================= Bugs fixed: 705070 Last.fm/libre.fm integration 747233 Remove "All Artists" 752591 Convert margin_right to margin_end 752592 Trivial code formatting cleanups Several deprecations were removed More performance improvements Translations updated Overview of changes in 3.17.3 ============================= Bugs fixed: 743362 Give a nicer welcome 744464 No results screen for Search 747749 Cant't play favourite song in Album view 748375 #!/bin/bash in autogen.sh 749981 Tracks outside Music and Downloads are displayed in playlists Translations updated: Added Occitan Dutch 316 Esperanto Fix to Catalan Greek Norwegian bokmål Slovak Spanish Tajik Turkish l10n: Update Japanese update zh_CN Overview of changes in 3.16.0 ============================= Translations updated: Basque language Finnish update Fix a syntax error in desktop file keywords Bosnian Indonesian Tajik Update Aragonese Update Catalan Overview of changes in 3.15.92 ============================= * Bug fix release Bugs fixed: 744657 Loading in-app notification gets stuck 745646 Improve sorting of "songs" view 745647 shuffleHistory fixes 745648 Song view elements jump around 745650 Not Enough Space Given For Track Titles in Album View Translations updated: Added Bosnian Danish German Korean Polish Serbian Slovenian Swedish Turkish l10n: Update Japanese Overview of changes in 3.15.91 ============================= * Bug fix release Bugs fixed: 705852 Now playing indicator is lost on switching views / artists / artist albums 729377 Convert menu of gear button in the Playlists view into a popover 729525 Show a loading animation when Add to Playlist is clicked in Albums and Artists view 743310 Updates to Smart Playlist functionality in 3.15.4 743883 Refresh Playlists/Songs view when star toggled 743884 Protect smart playlists 743901 Favorite Playlist and Starring implementation 744005 stars in Album/Artist/Search views 744655 Loading in-app notification is malformed 744807 Last song on album view keeps repeating in "mix/no repeat" mode 744832 Undo playlist delete --> reinsert at previous position Translations updated: Basque language Brazilian Portuguese Chinese (Taiwan) Czech Fix German desktop file keyword French Galician s Greek Hebrew Hungarian Italian Kazakh Lithuanian Norwegian bokmål from Åka Sikrom Russian Slovak Spanish Swedish Ukrainian Update Aragonese Overview of changes in 3.15.90 ============================= * New smart playlist - Favourite tracks, all views updated to allow making a track favourite * All Artists is not selected by default - improves performance * All smart playlists now retyurn max 50 items * Playlists menu now uses popover * Notification appears on loading operations * Favourite songs are now displayed on search view * GStreamer discoverer performance fixes from garnacho * Minor UI fixes * Bugs fixed: 744005 stars in Album/Artist/Search views 729525 Show a loading animation when Add to Playlist is clicked in Albums and Artists view 729377 Convert menu of gear button in the Playlists view into a popover 743310 Updates to Smart Playlist functionality in 3.15.4 * Updated translations and help files Overview of changes in 3.15.4 ============================= * Smart playlists - Most Played, Never Played, Recently Played The list is not yet final, stay tuned. Note that we use Last.fm's way to count song as 'played' - more than 40% of song content should be played. * Chunked loading was removed - scrolling should be faster * Content is now hidden before fully loaded - notification on the progress will land in master in next version. * Playlists are remvoed after time out, removal can be undone * Dependency cnahge: libmediaart-2.0.pc is now required * Replaygain tags are now supported * Overall performance fixes * Bugs fixed: 729376 New Playlist in application menu doesn't do anything 704257 Visible content loading 742603 Regression: empty covers are oversized in playbar, still 'in-progress' on artists view 742451 Support Undo when removing playlists 733686 Gnome music will not launch 726459 Crash on playlist tabs when new media has been scanned 702519 Smart playlists 742800 Playlist broken due to typo 742123 Hitting 'cancel' while creating new playlist crashes program 731613 gnome-music-3.12.2 fails to start if xdg default directories are not created 742011 Query: add a/an to articles 730269 ReplayGain support? * Updated translations and help files Overview of changes in 3.15.2 ============================= * Better thread handling while fetching album art * Some UI/UX goodies * Notification can now be disabled * 'The' (and translation) is not disregarded during sorting * MPRIS improvements * Bugs fixed: 736925 Remove deprecation warnings from AlbumWidget.ui 737142 Remove remaining gtk deprecation warnings 737571 No covers loaded on libmediaart 0.6.0 736241 Prefer embedded album art over downloaded 732151 High CPU and sluggish performance 733473 Use "Alt + left arrow" to navigate back 738465 Have a dconf switch to disable notifications 731392 Nicer empty state 729378 Disregard "The" in titles 734513 play/pause is activated twice when pressing spacebar and play/pause button is active/selected 729309 Add support for MPRIS Playlists 740211 Add support for MPRIS TrackList 740212 Bump MPRIS support to 2.2 740330 Album view - music icons are badly rendered 740524 Missing license headers in playlists.py and searchbar.py 731639 The pictures have different proportions, influencing the effect of alignment 729459 under Artists, tracks in the same album are very far apart from each other 740490 Music "forgets" search string, but search results remain * Updated translations and help files Overview of changes in 3.14.0 ============================= * Updated translations and help files Overview of changes in 3.13.92 ============================= * Bugs fixed: 735890 Fix the icons in RTL with new GTK+ * Updated translations and help files Overview of changes in 3.13.90 ============================= * Ported to GtkActionbBar - now requires GTK+ 3.12 * Correct icoin is displayed for playlist menu (https://wiki.gnome.org/Initiatives/GnomeGoals/GearIcons) * Better search UI * HighContrast icons * Improved Back navigation * Notifications now behave correctly when paused and less flicker * Bugs fixed: 734786 center the search results 734404 Missing high contrast icon 734122 unable to switch to all albums view after return from search view 734117 Pause button does not change to play button in the notification 732150 Remove custom player bar styling 732951 Don't use emblem-system-symbolic * Updated translations and help files Overview of changes in 3.13.4 ============================= * Bump python3 requirement to 3.3 (due to str.casefold) * Bugs fixed: 733095 Seeking in track above 36 minutes leads to crash * Updated translations and help files Overview of changes in 3.13.3 ============================= * Playlists are now stored in Tracker * Back button now returns back to Search if available * Bugs fixed: 707461 add man page 729311 Use Tracker to save Playlists 728254 Incorrect item is removed in playlists if it has duplicates 728255 Don't show playlists in Songs 728330 Crash when the name of the new playlist contains special characters * Updated translations and help files Overview of changes in 3.13.2 ============================= * Improved search with source and match type selection * Remote sources support: Jamendo, Magnatune, UPnP/DLNA * Player bar now looks better when window is small * Bugs fixed: 729100 Media art in notifications is blank instead of symbolic when media art is not found 729102 Notification doesn't show up when media art doesn't exist 728255 Don't show playlists in Songs 725949 gnome-music buttons have no tooltips 728407 Enabling selection mode via right-click doesn't work inside albums in Albums view 729521 Albums list in Artists view shouldn't be sensitive when in selection mode 706948 Only show music from my ~/Music folder 699807 PlayerToolbar - artist and track name can shrink to nothing 730205 AttributeError: 'Stack' object has no attribute 'get_child_by_name' 726713 Update of songs interferes with selection mode * Updated translations and help files Overview of changes in 3.13.1 ============================= * Thumbnail fetching was reworked. now should be much faster * New dependency: libmediaart * Updated playlist UI * Now requires GTK 3.10 * Shuffle menu is now a popover * Load More button was removed * Bugs fixed: 724627 Playlists UX review 726721 Some tracks are identified as 'MediaVideo' and crash in various places 727444 gnome-music crashed with OSError in_on_source_added(): [Errno 5] I/O error 727522 Accelerator for Select All doesn't work 728323 Set the icon name of the window as "gnome-music" 724112 Crashes when cannot connect to tracker 702565 Load cover art on scroll in Albums and Artists view 699832 Replace Load More with autoloading on pressure 729096 Media art is not shown in MPRIS clients * Updated translations and help files Overview of changes in 3.11.92 ============================= * Improved and tranlated help * Space now plays/pauses the current song * Minor UI updates to playlists * Bugs fixed: 707454 Space switches to next item 724627 Make select button insensitive while creating New Playlist 725904 Tracks don't appear in artists view for albums that have many tracks * Updated translations Overview of changes in 3.11.91 ============================= * Initial help infrastructure * More info is printed if the track cannot be played * Last 10 played tracks are stored in shuffle history * Other minor improvements and bug fixes * Bugs fixed: 707744 Song is being replayed when paused 724228 Remove 'now playing' from the app menu 707457 Restart current track when Previous button was clicked and position is more than 3 seconds 725355 Do not crash if we happen to come across a filename we can't decode 723942 Search on keypress function opens search bar even when pressing any key 724954 Selecting all albums is not visible at first 707376 Set the position of the view scrollbar to current song when a song is changed * Updated translations: Spanish Norwegian bokmål Tajik Czech Brazilian Portuguese Hebrew Chinese Lithuanian Italian Hungarian Finnish Overview of changes in 3.11.90 ============================= * Initial playlists support * Filter-as-you-type * Misc fixes and improvements * Bugs fixed: 700022 app no longer fits half maximized 721297 Shuffle is not random enough 723765 Static spinner superimposed over album artwork 708154 Crash when Search button is toggled on No Music view 724027 theme: actionbar has a doubleborder 724025 searchbar isn't styled properly 724016 don't segment artist list sidebar 721595 Typing should trigger a search 723750 The stack switcher is gone when run gnome-music with GTK+ 3.11 709234 Music cannot be run via ssh forwarding * Added translations: Aragonese Esperanto * Updated translations: Hebrew Lithuanian Traditional Chinese Norwegian bokmål Turkish Finnish Czech Greek Brazilian Portuguese Galician Chinese simplified Slovenian German Italian Spanish Tajik Overview of changes in 3.11.2 ============================= * Exit selection mode on pressing Esc * Pep8 compatibility * Broken AppData file was removed from sources * Bugs fixed: 707590 Fix app menu accelerator conflict 708279 Make the cancel button as center vertically 709033 Album Cover art not displayed in the notifications 707399 Add translator comment to not translate GSettings values 705853 Enter selection mode on right-click 707633 Save window position, size and maximization state 709465 Update position while switching songs * Added translations: Afrikaans Catalan (Valencian) Malayalam Telugu * Updated translations: Norwegian bokmål Turkish Persian Simplified Chinese Slovenian Tajik Spanish Galician Greek Dutch Overview of changes in 3.10.0 ============================= * Added translations: Estonian Belarusian * Updated translations: Assamese Portuguese Latvian Slovak Ukrainian Traditional Chinese Catalan Kannada Indonesian Hebrew Overview of changes in 3.9.92 ============================= * Added AppData description * Icons are now RTL-compatible * Notifications appear during the playback * All views can be filtered via search button or Ctrl+F shortcut * URLs with no FileDataObject (*.cue) are now filtered * Fixed MPRIS commands: close, play, thumbnail display * Songs view now displays 'Unknown Album' for tracks with no album set * Gnome Music notifies about startup * Bugs fixed: 702377 Add support for notifications 703303 Music doesn't properly tell MPRIS clients that the song is replayed when in repeat song mode 706576 Repeat/Shuffle icons should have RTL variants 707388 Add AppData description 707632 MPRIS Close command is broken 707824 No notification when Music starts 707937 freeze-break branch | Crash when try to start song 707938 gnome-music crashes with TypeError: Argument 0 does not allow None as a value 708102 Thumbnail no longer shows up in MPRIS clients 708103 Playing default playlist is broken 708116 Crash in notification when the current track gets hidden while searching 708117 Use RTL variants of buttons in notifications on RTL languages 708159 Empty album column when an album title is unknown * Added translations: Basque British English Catalan Danish Dutch French Indonesian Korean Latvian Traditional Chinese * Updated translations: Brazilian Portuguese Czech Finnish Galician German Hungarian Italian Lithuanian Norwegian bokmål Polish Russian Serbian Slovak Slovenian Spanish Tajik Overview of changes in 3.9.91 ============================= * All songs will now be loaded in Songs view after switching to it for the first time * First song in Songs view will play if Play is executed in MPRIS and there is no current playlist * The URIs are now discovered asynchronously, to make loading songs faster * An error icon will now show up when the file is deleted * The message when no music files are found is now more verbose * Bugs fixed: 700776 Licensing problems 705855 Crash when attempting to get properties over DBus 706019 Don't use the discoverer if we don't care of the results 706294 Duration in Albums view increases every time an album is se... 706353 About box changes size when license button is toggled on, l... 706457 Invalid copyright headers 706533 More explanation when Music says "No Music Found" 706800 Cancel button in toolbar shouldn't be emphasized 706947 Can't shuffle my entire library without clicking "load more... * Added translations: Irish Tajik * Updated translations: Brazilian Portuguese Czech Galician Italian Lithuanian Norwegian bokmål Polish Slovak Slovenian Spanish Overview of changes in 3.9.90 ============================= * Initial release 07070100000008000081A400000000000000000000000166968E4E00001A96000000000000000000000000000000000000001B00000000gnome-music-46.1/README.mdMusic is the GNOME music playing application. # Where can I find more? Music has a wiki page at https://wiki.gnome.org/Apps/Music. You can join the developers on IRC: [#gnome-music](irc://irc.libera.chat/gnome-music) on [Libera Chat](https://wiki.gnome.org/GettingInTouch/IRC). # Join the development Follow the [GNOME Newcomers guide](https://wiki.gnome.org/Newcomers/) and choose Music as your project. There are bugs labeled for newcomers, which should provide an easy entry point. Of course, feel free to pick something more challenging. Pick bugs if you can, not feature requests. The goal is to make the current Music experience sound & stable and only then extend it's functionality. ## Build Music Music uses the [meson](http://mesonbuild.com/) build system. Use the following commands to build Music from the source directory: ```sh $ meson _build $ cd _build $ ninja ``` Then you can either run in the build dir by running: ```sh $ ./local-music ``` You can also install Music system-wide by running: ```sh $ ninja install ``` ## Debugging GNOME Music uses [GLib logging facilities](https://developer.gnome.org/glib/stable/glib-running.html) to print debug messages. It can be activated by setting the `G_MESSAGES_DEBUG` environment variable: ```sh G_MESSAGES_DEBUG=org.gnome.Music gnome-music ``` ## Coding style GNOME Music is written in Python and adheres to the coding style described in the python style guide [PEP-8](https://www.python.org/dev/peps/pep-0008/). Docstrings adhere to [PEP-257](https://www.python.org/dev/peps/pep-0257/). The content of docstrings uses the [Sphinx markup style](http://www.sphinx-doc.org/). Docstrings should be added to all (new) public functions. Take note of the following rules as a basic style guide, but when in doubt consult PEP-8. ### Line length >>> Limit all lines to a maximum of 79 characters. For flowing long blocks of text with fewer structural restrictions (docstrings or comments), the line length should be limited to 72 characters. >>> ### Indentation Music uses hanging indents when the lines get too long. >>> When using a hanging indent the following should be considered; there should be no arguments on the first line and further indentation should be used to clearly distinguish itself as a continuation line. >>> ```python # More indentation included to distinguish this from the rest. def long_function_name( var_one, var_two, var_three, var_four): print(var_one) # Hanging indents should add a level. foo = long_function_name( var_one, var_two, var_three, var_four) ``` ### Line break before a binary operator ```python # Yes: easy to match operators with operands income = (gross_wages + taxable_interest + (dividends - qualified_dividends) - ira_deduction - student_loan_interest) # Add some extra indentation on the conditional continuation line. if (this_is_one_thing and that_is_another_thing): do_something() ``` ### Class internals All non-public classwide variables or methods should be prepended with an underscore. >>> _single_leading_underscore: weak "internal use" indicator. E.g. from M import * does not import objects whose name starts with an underscore. >>> ### Type checking Post 3.38 Music is starting to use type checking for all new code. This means that all arguments, returns values and variables have defined types and these types are checked for errors during the CI phase. Music uses [mypy](http://www.mypy-lang.org/) for the type checking pass. The specific syntax is best learned from the code already adapted ([coresong.py](gnomemusic/coresong.py), [grltrackerwrapper.py](gnomemusic/grilowrappers/grltrackerwrapper.py)) or online sources, note that Music uses the annotation style. A simple example follows. ###### Old ```python x = [] x.append(1) ``` ###### New ```python from typing import List x: List[int] = [] x.append(1) ``` #### Properties Mypy does not currently support PyGObject properties. This means property setters need to be forceibly ignored. ```python @GObject.Property(type=bool, default=False) def selected(self) -> bool: return self._selected @selected.setter # type: ignore def selected(self, value: bool) -> None: self._selected = value ``` ### PyGObject specifics #### Properties Most objects in Music are derived from GObject and have properties. Use [PyGObject properties](https://pygobject.readthedocs.io/en/latest/guide/api/properties.html) through decorator usage if you add properties to your code. Short form for simple properties: ```python selected = GObject.Property(type=bool, default=False) ``` With method definition if more control is needed: ```python @GObject.Property(type=bool, default=False) def selection_mode(self): return self._selection_mode @selection_mode.setter def selection_mode(self, value): self._selection_mode = value ``` Manipulate and refer to GObject properties with the *props* attribute to set them apart from regular python attributes: ```python is_selected = object.props.selected object.props.selection_mode = True ``` ##### Multi-word properties Note that GObject multi-word properties are separated by `-` as in `'selection-mode'`, however Python does not allow `-` in variable or method names. So these are translated to `_` instead. You might find both `'selection-mode'` and `selection_mode` in the code (depending on how they are used), but they refer to the same property. #### Templates Music uses ui templates extensively for building the user interface. The basic usage in Python is as follows, with the `widget.ui` file being a regular GTK template: ```python @Gtk.Template(resource_path="/org/gnome/Music/widget.ui") class Widget(Gtk.Widget): __gtype_name__ = "Widget" _button = Gtk.Template.Child() @Gtk.Template.Callback() def _on_button_clicked(self, klass): pass ``` ## Commit messages Music is fairly strict on the format and contents of commit messages. New contributors often struggle with this. The GNOME wiki has a good [intro](https://wiki.gnome.org/Git/CommitMessages) on what a proper commit message is and this is a **must read** for first-time contributors. It is always recommended to look at other Music commit messages as well to get an idea of what a good commit message is specific to Music. It should look somewhat like: >>> tag: Short explanation Problem in some detail. Implemented fix. Closes: #issuenr >>> ## Merge requests When opening a Merge Request, please enable the [_'Allow commits from members who can merge to the target branch'_](https://docs.gitlab.com/ee/user/project/merge_requests/allow_collaboration.html) checkbox. This allows the Music maintainers to help out on the Merge Request as needed. 07070100000009000041ED00000000000000000000000266968E4E00000000000000000000000000000000000000000000001600000000gnome-music-46.1/data0707010000000A000041ED00000000000000000000000266968E4E00000000000000000000000000000000000000000000001C00000000gnome-music-46.1/data/icons0707010000000B000081A400000000000000000000000166968E4E00000C0F000000000000000000000000000000000000002E00000000gnome-music-46.1/data/icons/deaf-symbolic.svg 0707010000000C000041ED00000000000000000000000266968E4E00000000000000000000000000000000000000000000002400000000gnome-music-46.1/data/icons/hicolor0707010000000D000041ED00000000000000000000000266968E4E00000000000000000000000000000000000000000000002D00000000gnome-music-46.1/data/icons/hicolor/scalable0707010000000E000041ED00000000000000000000000266968E4E00000000000000000000000000000000000000000000003200000000gnome-music-46.1/data/icons/hicolor/scalable/apps0707010000000F000081A400000000000000000000000166968E4E00001D9E000000000000000000000000000000000000004C00000000gnome-music-46.1/data/icons/hicolor/scalable/apps/org.gnome.Music.Devel.svg 07070100000010000081A400000000000000000000000166968E4E00000B85000000000000000000000000000000000000004600000000gnome-music-46.1/data/icons/hicolor/scalable/apps/org.gnome.Music.svg 07070100000011000041ED00000000000000000000000266968E4E00000000000000000000000000000000000000000000002D00000000gnome-music-46.1/data/icons/hicolor/symbolic07070100000012000041ED00000000000000000000000266968E4E00000000000000000000000000000000000000000000003200000000gnome-music-46.1/data/icons/hicolor/symbolic/apps07070100000013000081A400000000000000000000000166968E4E000015C7000000000000000000000000000000000000004F00000000gnome-music-46.1/data/icons/hicolor/symbolic/apps/org.gnome.Music-symbolic.svg image/svg+xml Gnome Symbolic Icon Theme Gnome Symbolic Icon Theme 07070100000014000081A400000000000000000000000166968E4E00000155000000000000000000000000000000000000003600000000gnome-music-46.1/data/icons/music-artist-symbolic.svg07070100000015000081A400000000000000000000000166968E4E000000E6000000000000000000000000000000000000003800000000gnome-music-46.1/data/icons/music-playlist-symbolic.svg07070100000016000081A400000000000000000000000166968E4E00000A7D000000000000000000000000000000000000003800000000gnome-music-46.1/data/icons/question-round-symbolic.svg 07070100000017000081A400000000000000000000000166968E4E00007263000000000000000000000000000000000000002E00000000gnome-music-46.1/data/icons/welcome-music.svg 07070100000018000081A400000000000000000000000166968E4E00000AFC000000000000000000000000000000000000002200000000gnome-music-46.1/data/meson.build# Compiling the resources # about_dialog is defined in data/ui/meson.build to generate the output file in that directory gnome.compile_resources( PROJECT_RDNN_NAME, PROJECT_RDNN_NAME + '.gresource.xml', gresource_bundle: true, source_dir: meson.current_build_dir(), install_dir: PKGDATA_DIR, install: true ) schema_src = PROJECT_RDNN_NAME + '.gschema.xml' gnome.compile_schemas(build_by_default: true, depend_files: files(schema_src)) # Installing the schema file install_data( schema_src, install_dir: join_paths(get_option('datadir'), 'glib-2.0/schemas') ) # Merging the translations with the desktop file desktop_conf = configuration_data() desktop_conf.set('icon', APPLICATION_ID) i18n.merge_file( type: 'desktop', input: configure_file( output: PROJECT_RDNN_NAME + '.desktop.in', input: PROJECT_RDNN_NAME + '.desktop.in.in', configuration: desktop_conf), output: APPLICATION_ID + '.desktop', po_dir: join_paths(meson.project_source_root(), 'po'), install: true, install_dir: join_paths(get_option('prefix'), get_option('datadir'), 'applications') ) # Validating the desktop file desktop_file_validate = find_program('desktop-file-validate', required:false) if desktop_file_validate.found() test ( 'Validate desktop file', desktop_file_validate, args: join_paths(meson.current_build_dir (), APPLICATION_ID + '.desktop') ) endif # Merging the translations with the appdata file appdata_conf = configuration_data() appdata_conf.set('appid', APPLICATION_ID) appdata_conf.set('package_url', PACKAGE_URL) appdata_conf.set('package_url_bug', PACKAGE_URL_BUG) appdata_file = i18n.merge_file( input: configure_file( output: PROJECT_RDNN_NAME + '.appdata.xml.in', input: PROJECT_RDNN_NAME + '.appdata.xml.in.in', configuration: appdata_conf ), output: APPLICATION_ID + '.appdata.xml', po_dir: join_paths(meson.project_source_root(), 'po'), install: true, install_dir: join_paths(get_option('prefix'), get_option('datadir'), 'metainfo') ) # Validating the appdata file appstreamcli = find_program('appstreamcli', required: false) if (appstreamcli.found()) test('Validate appdata file', appstreamcli, args: ['validate', '--no-net', '--explain', appdata_file], workdir: meson.current_build_dir() ) endif # Installing the default icon install_data( join_paths('icons/hicolor/scalable/apps', APPLICATION_ID + '.svg'), install_dir: join_paths(get_option('prefix'), get_option('datadir'), 'icons/hicolor/scalable/apps') ) # Installing the symbolic icon install_data( join_paths('icons/hicolor/symbolic/apps', PROJECT_RDNN_NAME + '-symbolic.svg'), install_dir: join_paths(get_option('prefix'), get_option('datadir'), 'icons/hicolor/symbolic/apps'), rename: '@0@-symbolic.svg'.format(APPLICATION_ID) ) 07070100000019000081A400000000000000000000000166968E4E000022FD000000000000000000000000000000000000003800000000gnome-music-46.1/data/org.gnome.Music.appdata.xml.in.in @appid@.desktop CC0-1.0 GPL-2.0+ and LGPL-2.0+ and CC-BY-SA-4.0 Music Play and organize your music collection

An easy and pleasant way to play your music.

Find tracks in your local collection, use automatically generated playlists or curate a fresh one.

https://gitlab.gnome.org/GNOME/gnome-music/raw/HEAD/data/screenshots/gnome-music-1.png https://gitlab.gnome.org/GNOME/gnome-music/raw/HEAD/data/screenshots/gnome-music-2.png https://gitlab.gnome.org/GNOME/gnome-music/raw/HEAD/data/screenshots/gnome-music-3.png https://gitlab.gnome.org/GNOME/gnome-music/raw/HEAD/data/screenshots/gnome-music-4.png

Fix search dropping the first character and other minor improvements.

This release introduces a preferences dialog exposing options previously hidden, like suspend inhibition and ReplayGain settings. It also updates to the freshest styling for navigation and dialogs.

Other notable changes include:

  • Fix jumpiness in scrolling larger collections
  • Add an automated item in playlists view for song files that do not contain the necessary tags to be shown in the albums and artists views.
  • Drop LastFM support due to removal of the provider from GNOME Online Accounts
  • Removal of the songs view
  • Drop global selection mode

Minor quality of life improvements

First stable release for GNOME 44. This version mostly consists of stability improvements. There are also some notable improvements:

  • Port to soup 3
  • Fix shuffle
  • Decrease memory usage in SongsView

This release also updates translations.

  • Make shuffle shuffle again
  • Fix time display in RTL languages
  • No longer mismatch art on scrolling
  • Fix async queue block on fresh art retrieval

Music has been ported to GTK-4. This brings some performance improvements for larger collections.

This version brings an updated design with even more focus on the content. Under the hood there have been improvements to the responsiveness, especially during application start.

First stable release for GNOME 40. This version mostly consists of stability improvements. There are also some notable improvements:

  • Improve startup loading
  • Use publication date instead of creation date for songs

This release also updates translations.

First stable release for GNOME 3.38. This version does not rely on Tracker running on the host. There are also some notable improvements:

  • Port to Tracker version 3
  • Prefer Albumartist field for artist search
  • Change Artist view selection from artist to song
  • Lots of general cleanups and bugfixes

This release also updates translations.

First stable release for GNOME 3.36. Besides a general focus on stability there are some notable improvements:

  • Restore smart playlists update
  • Expose Last.fm scrobbler in the UI

This release also updates translations.

This is an unstable release in the 3.35 development series, with the following improvements:

  • Restore smart playlists update
  • Improve Tracker content tracking
  • Flatpak cleanups and updates
  • Lots of general cleanups and bugfixes

This release also updates translations.

This is an unstable release in the 3.33 development series, with the following improvements:

  • Use natural order for sorting
  • Expose Last.fm scrobbler in the UI
  • Add a local runtime cache for scrobbling
  • Lots of general cleanups and bugfixes

This release also updates and adds translations.

This is an unstable release in the 3.33 development series, with the following improvements:

  • Improve Tracker content tracking
  • Update screenshots
  • Fix a few crashers
  • Lots of general cleanups

This release also updates translations.

This is an unstable release in the 3.33 development series, with the following improvements:

  • Improve Smooth progressbar support
  • Improve display of information for songs with no tags
  • Select a random song at launch when playing a playlist in shuffle mode
  • AppData tags update
  • Fix crash with mouse 'back' button
  • MPRIS misc cleanups
  • Lots of general cleanups

This release also updates translations.

GNOME The GNOME Music developers The GNOME Music developers @appid@.desktop @package_url@ @package_url_bug@ https://www.gnome.org/donate/ https://help.gnome.org/users/gnome-music/stable/ https://l10n.gnome.org/module/gnome-music/ https://gitlab.gnome.org/GNOME/gnome-music https://welcome.gnome.org/app/Music/ HiDpiIcon ModernToolkit UserDocs mschraal@gnome.org @appid@
0707010000001A000081A400000000000000000000000166968E4E000001DD000000000000000000000000000000000000003400000000gnome-music-46.1/data/org.gnome.Music.desktop.in.in[Desktop Entry] Name=Music GenericName=Music Player Comment=Play and organize your music collection # Translators: Do NOT translate or transliterate this text (this is an icon file name)! Icon=@icon@ Exec=gnome-music Terminal=false Type=Application Categories=GNOME;GTK;AudioVideo;Player;Audio; # Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! Keywords=Music;Player; StartupNotify=true 0707010000001B000081A400000000000000000000000166968E4E00000A85000000000000000000000000000000000000003400000000gnome-music-46.1/data/org.gnome.Music.gresource.xml ui/help-overlay.ui style.css icons/welcome-music.svg ui/AlbumCover.ui ui/AlbumCoverListItem.ui ui/AlbumNavigationPage.ui ui/AlbumWidget.ui ui/AlbumsSearchNavigationPage.ui ui/AlbumsView.ui ui/ArtistAlbumsWidget.ui ui/ArtistNavigationPage.ui ui/ArtistSearchTile.ui ui/ArtistsSearchNavigationPage.ui ui/ArtistsView.ui ui/ArtistTile.ui ui/DiscBox.ui ui/HeaderBar.ui ui/PlayerToolbar.ui ui/PlaylistControls.ui ui/PlaylistDialog.ui ui/PlaylistDialogRow.ui ui/PlaylistsView.ui ui/PlaylistsWidget.ui ui/PlaylistTile.ui ui/PreferencesDialog.ui ui/SearchHeaderBar.ui ui/SearchView.ui ui/SongWidget.ui ui/SongWidgetMenu.ui ui/StatusNavigationPage.ui ui/TwoLineTip.ui ui/Window.ui icons/deaf-symbolic.svg icons/music-playlist-symbolic.svg icons/music-artist-symbolic.svg icons/question-round-symbolic.svg 0707010000001C000081A400000000000000000000000166968E4E0000074D000000000000000000000000000000000000003200000000gnome-music-46.1/data/org.gnome.Music.gschema.xml [768, 600] Window size Window size (width and height). true Window maximized Window maximized state. 'none' Playback repeat mode Value identifies whether to repeat or randomize playback through the collection. Allowed values are: “none” (repeat and shuffle are off), “song” (repeat current song), “all” (repeat playlist, no shuffle), “shuffle” (shuffle playlist, presumes repeat all). false Enable ReplayGain Enables or disables ReplayGain for albums false Inhibit system suspend Enables or disables inhibiting system suspend while playing music 0707010000001D000041ED00000000000000000000000266968E4E00000000000000000000000000000000000000000000002200000000gnome-music-46.1/data/screenshots0707010000001E000081A400000000000000000000000166968E4E000C61DE000000000000000000000000000000000000003400000000gnome-music-46.1/data/screenshots/gnome-music-1.pngPNG  IHDR>sBIT|dtEXtSoftwaregnome-screenshot> IDATxyս?9U=3 hq"$J\K@HxM$[hfyUU0*hXmafTMOӳ_<<3]]]]5]9 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""y딈^|°erâf0h냈(0{?QwmtKDDDDDDD6PwD{$""""""aP>#ވ}eo!I"""""""0!""""""]͹5i5 kgr=jU[1M&w4"X!N33I=⧵!PgtAHS}dޗÐ'3$JrOz_=,% c2Mw4ۡ!P.wݚ~2\d kFDDDDDDD#3i, Ođ=u 99C^cKKwOXPS%""""""ܓ4+&H{NsMM M!r(ӱ$@.>(w)9P'@}N ̊jPk[5tz s:ob1ZR5""""""'PBj>\r6mRuRl e<5jtQ2: 4j^}U@N0矟<LaаXz4 Z!tOs#}e 2]v=8$rn""""""": RJA_~  ~@A:Fӵ Cߦ=k***bCDDDDDDRpgREE]kZ*KRK7l1=ϟ?rQQt?DDDDDDDM)ϟ 3TfkI0\:jA h~pM;vTUU-Zf?DuuuH&q$ tQ}mݻ`>v4 hSlUL3jMϙ-_s??{>Z8p> Ɓ  @ 9A<^hrc&5e+犝}ٗ3!8t<:ًADDDDDk>r@ͿBMuCmPS+3ӻωbcBQQWW'A^ """" 6H(['٪9)Y9-p:ZRVQk%^j'ܶDDDD݃ZRܠ:=r;{[Pzɖ΅V/n["""R<σ s]X xkL Jo9Y)"gnNPkm0l松QAZRF}x",&Ƃ ϣPGZԖ6u4Ɍ:u"""""""NL&QSSӪR)R)#Hgk1WmMPNȷjlmߛKֶ:IWSSڣYl9Ac#ήj?36\>{gjSOŌ30fLn a,X.*++1vX\r%:thg/bNH&G0!h*f^:񦪆X&3ki nbgiUUrjGDt{vkUWWcx}vApg`ʔ)(--e.zً@D]w]|GSN9w_'/Q > iOktT =.\53g&NK[ |6l*]83;i =y?OxW E]+X k.@~:yIDž^آ-ZKBm?N5]s}{r_\?D]v.wŋ1o<̟?pwR)̞=.8M .Æ lܸ?j*СC~u_ݗ3Ա6ϒE{m sڭJQ+Wbܹ^9L{rKBox'ggo|(((#<.--o6j{ O?4vO஻>=/L}BJS[[[o}[(,,lGuuuڽϟou] ,[ w^&u% .hr?=X4}GY`R6mZ+Bg?C;h)syM>~qaڵ;7nĐ!CQ@QtJP*z/C -kp饗Yzu˗0Wb |G VgS[[sFW.\tE+ȑ#9yq뭷37 L4 x+WR SLĉ#O>A޽__8䓣3`۶m(,,Đ!CpM7m.㢋.}v^{믿{ƍ6m9 0 .Āзo_,Yi8^zhx<7|O<lق" :~;~4:ƞӣG6Ov >EOAAA4R O?4-ZݻwW\Ѡ)ipy硠o<ԩSqWDⷿ-VX\px3gн 7p~/.S\\.>(***x|x'[oa(//ɓo} x]w>cW?~eNЧO&۷o;ʻ _SO=)%fϞO<#/?7ow!6mڄG?Q͛匝;w6}oM7 } ;vh˖-CQQƌ{bŊXrePuu5v؁cbo={b„ -~_-B1h |x'ObԨQ(//ǖ-[pƾ}pw_|1RM :~W -^}UNCUU^u  q#F`ر ݤIwy'JJJ0uT$Iٳ=z瞛uM=nԨQH$qW _. x1|pqX|9fϞ ƚ5kO`ԨQ8묳?ϱ|r1}şݶqz5kۣ d0H7ѣGc͚5xgpWs^z5zwuLݻ1hРF )5<~ ;|q]wj}{8q"f͚q2Z'Mݻ7̙@ NvJ ZZDD:5ʴm6lڴ &M8?~#GlB><m֪UZZ}i3Xx֭[qA1%%%XbfΜk_ZtU-%Iy7*)ٮ2WZZ3f@YY-[n ׿Z]Q2M7݄'|;vh0غu+}V3}_ o`ڶ^ٳ'?_:ꫯb֬YMmyN>y' /QB`„ ӟ@5LBѠL{ygQQQnâEhѢ(?N?t\xᅘ9s&~+_Jv܉n~)n#&QJa͚5XjJKKq7 ש333f̈+x l߾T ۶m?n T 8p`.ԇ,{p '`ػw/N;4p QmX$;hŸ9s`Μ92dn݊9y.YzrzQ5eGS{챨9?`bL2yVTTcƌ> Y2zͰjL84֭[°:h 3gC=|+PJEWSO=kf},;?G'ټy36oތN;-vѢExGJlʯC59]؉?K/Jzjh1|/Z*χ~xtiŅ^ / hKq[1s̬Ր>dguƍ2 ;E|xTӳgO̙3'pBJ;n t&`DDy_= H)q7ۙfXY)tqǡĦM0l0kP>} 7O '>|86l؀(--=WlESXXT- fsW`ذak[|`68qb`ǎX~}M1FEᡇĉq1MӟƍCQQQTe }&?x[=f̘{m7歷ߎ޽{cȐ!*. 6 &Lի1k,xX|9x}jd1bƌ?\s N8jso>_b;M2ʰsNĘ1cN=ϋ%x l…6Jץ^uSgs_=.`?!<;&:QUj6>ٳE#,fБcQ:3q-4T\\[n͍ ?3x쳟,*@yy9^z%lڴ 98p ~mzkwqI'E}̚55QVVKbR⪫]v5E]_WسgOG}  s櫀O /;w… Dŋ3@Jk6 ͣ<qm IDATMUe#e>6kn$!Ck_zO?;vQpK_oǴipaZ Go~Fiw܁>{ݻM6I),|;A^ /_~9\?xQO0ѣGΤ~NOٳ1o<,\m݆ѣGGU7Æ CEEfϞa5k,7{u]|k׮E*B*ڵkqÞ={0~x\}|qv jx<ڳ䩩yg{LYnO#Ӟ'8iK gjYsW׉2ݻ^ .[o4gqLatAa;F=3kgf(yu1jժhaÆa̙ N{<׼ p7:{q:܍7 >n8̝;iVٳq[n!:ۇٳgCT*wxRK.W_ݕG:jAD +eee ݻ$iUOs`vieqtSIKG Z# x5g/ !nᆜ(A nիDQ/_|?O0iҤ^yf xw}v$ cǎԩSY{K%IyG}STw ګnיQ{0a#u_|/"ƌM6'&L <K.E<4СCqvbD"TDaaaß.]g'DDDDb /^zaƌꪫ:{V^CaĉzDD]Haa!mjKOw^:͗MaMUE*jxGsh֒[@DDDDDDD)AII @*y}4"qAx ADDDԹAaa! ;{Ql~""6yۖ]>@yUAA+E8((( """ܔ7YC>@DD!P ۜ;DD 㠬 uuuH&rD?DDDDm0""jDDDDDe QcDDDDDDDD9@DDDDDDDDyQ떣m߾ubQb[@rJg/Qa0"""""""<(1""""""""s  """""""<(ua(޽{A>}зo^N """""""K{i;cDDDDDDDD9@DDDDDDDDyQcDDDDDDDD9@DDDDDDDDyQcDDDDDDDD9@DDDDDDDDyQcDDDDDDDD9@DDDDDDDDyQcDDDDDDDD9@DDDDDDDDyQs;{Zw"!qwӸSWiܿ+uqپTEC]IŒ嗍:ߍM]qwbEZljrU"~~ oܿMwvܿ)po ƾX J#prMe"8p]t/ߔ/7 GMwcԅa_"!JAJD"BHɾPJ}$I(Ţ/|K&X D( )%otb|=>+|~|3<<><^[f{<<)NF=Ow~˴Z^rB^9PJP\\/ J) 4Od2 qN^2c/3?Ë4 4 Ǒ6()D!'ZPHa ZO+4³y|k׮~=ztb*B~GmݗyȯՆ7昗 2ҿ\«uuu(((`Ud2}ljh%Xy]I.O`sq\O AJ ? >E+(8ҁR Jn̅ Ld{|Ҝۀ ]2!J 1ܧ#(mA V80)PpH@)HDž߇R&eBC JB8PMX%P~q2RB>@J"Ѐk@(: H|!(e[V"rS 0A`*uJh@ & @hSc6h(HG#sTǍQ0aFtHE &g ]WB 8 (I[5%ihDžtzZhOq?äv9zl2W ;qɈO"(,,lp!MX,#;SO' ĒHR(.@x3 %R (M\h0ቂm%T(2CX"@)7%Chh6vla[$4T1(i&  P @z6[<>;@]DD"/{x<:*((-o6FJS%C 8NRrE¶  s 86}A >heNM'* G:LH ^ieBDB[ibypLOSJB"}@ W (-[1\) qi#$|qcߣTMiIg*`8 .t >vǒ Ԅҁye T(Q*#H18 äۄ. $R>tmx20 T4:zҰUW*IQs4@@ja:څ#RH%}$\(*p!hTUZ8JġE Æ88 ſo.@<>;+@9,jnm}hg#wHR}ߔd*CmJQ8|O6?寧2 nb#'<9WHَxMWa#TPO0}@* m@ R†Fp BhHmb` i_A ,6MmЦls0il)C(gThC+Hy1GBie6fZCPpFhc#@0!xpMp"켔9ƑTIm6([dވ0 RP&\ڄX cېFK@2l6s LWBI+8J erDh eR~k@=s>!ɟ酓N?8!2h8o+RA֢&[31!׽/>?oSw."PVVًBԡqh(|"#! {'Kl0")J%<ӄGÃ>\)@a$mB+h 8KGCƒD-AnlXcp4u@r0)۱r6!ͧh\;Uabח[A׏ek8:̆ﰡTqZm5L*l+5GX kvW8ظ}+v/(P -97ϩ;[+G_]s턟*.!]XXKE9\Emmm^nZ $\Ʋ%Ы"S2@<>{Zx9 R A;@2O1ɴQ4TH L%vblW{Tژp\;IMùkHB±3k iÑ08Փ6 L "=Gj@ȰI6Mck3{`C!z}@ v%L1h$')Qa:6! ׄK}Ysm(3*Y jg^J6VWݕI׮ p [Ua#]Y H<$R;AׯbeҴ QSP|߃L%|9uGx|]0RRwUPP 9ܿ~+)%|{]0ኀH>z3Ǐ! -ĖJex &x2R$ *|JPTL/5R֣3ZU!E} 6Q_6 ;6pl&11(H8JVav4+Hf1-mDAJH@óü*ʫ=>lHa RamVI2Rp8ھ |g To¶eG۴l[Hm浥Bys}M"j' fr+md7I doBp R:QcT'iG&O >z e3/,x @AarW .r6^m,bHU`82a*Feue<>*^ `sQwpСDWuga?@CJPvho$j{O>مW_ۆ/<EP]Y[^(QQ1|x!\Ԛ&bZA 7Dh -MP_# MzGAiet bN,lVO"3̈`  ) He:08ڎ%rIO> [THۼL q]|hYچ=3kߎfZC(a::L+ vM0}iUHQ'SÑL5!$p[c;6aS<:=ru.Kxѣ_? JW^Z=2.<"lV ?'nA͈a2NߍUېڽm\U{QZ\{wϞطwJ{cKEJ 4;wD^{>Jeqe<8|0JJJ`5zD(//G}(-+Ç`oƧ~aÆa޽()dEEP~ mGA"UsBԠW^Fyy9݋~`Ƕmׯoߎŧaظq#8*+ѧO>|Du]ʳGEzx̾>}DUU{ @UUZ -Mۮ]Я_?3ڤ0KpaRb޽۷/vލƶm0Q}>{wWGY9nϾC=x>w rP% `u[HAUb+~4Þ M 3jj#pDZGڳ%pk O_(χtL"f9l'#Rcovsuk^#Kcl7}mMrImT|Bg7@v:wmc};_#q ._yUt+x A2d2ɱC^D6pxA{@>d,ؓm^ttgh]GZg8zsfokevd>״1vZ4tŰt:v*X%|f0x-8} oCWz6H6`_XB1>7izUBqhC#Jڑ¾vKSDHy{ @ &SI*r0V7%4U0x t ;E}_Dahc0Fx4 XTi9pQB(0ͻVpMŔ6')vl~ht26ZK^QeWEM^m>a=L6' md_azf4ۤO%yfs#l:lwP&.z>7\%_/K_ʝE8/`׾<وC΀ Ls|߿3M@} +"^RCQVZaa)ZC9u (_fyH$%80UmQXhL\&~l'vü0q=ނ WaJ|̍ŢA*飰(G RbRhj5XY8 >GJ)J#H4eR|jD=nאR4en4}'IvHGAJ&lA >bxj[XgCT^ҷG洰d A6I.D0#Q:D8(()A};r*@'M $6@&0t|ؑȢU KhQ-5¾u`&LW z"Ͷl8{kGy>}/T/}pGcg!`Ɩ0ٓp{)@h3v3mQfkw)?)!!l?La2 GZ A-{xuZK/=p{~!NߍqG`OQأ >\M癀D)w )m":NPmO(A)Lae?kB9 3l5~FnK=Iy,r9H֢1ؿ(E$&^Vl̴˧}"h3LK`%TTWl:.i&R>v~-*_2=RZ SJ{'8X# #2-a7&<ֶ:;_y`7I"5%ʔh[l FlN ĉA@'2b# ;$KIH86)M6{޻9{ZcUSA~j>sUZ[ͼ 0rQ;sa{g6s"b k>v7>@qa #31qE׳1]a3%X0\,vwwC$e{$*L^9T#M#yhFVр)sra4{Ec4Y,0[A S%H=0a>x7sٻuPAV+83XِMskh:HTxr"M L*n 5G#6}0"Rl{ֹNX.g˹"8_Ogbuq!RA)OGG/|g^^jv=> uLJX@P3`  3kRzz< FTpөGUމ19}?e\'EzT@`*MXg=WM1C| pGA'QQ zz<2LPJQuxHC.,&GMI.\6`EGLUi.Fcpٕj>P5j"cB`r2 *7Qw'|;'΀//ѓ7F2m*.9&|r 0 04עA fH),ρEYװV\tt%'@.a#$#,#,҇Q9rRr P(,Kg`T@B~NotC#.:(|_#_=޻n[ ?3<~QҸ'7_*ozd1IaTf}x|}.3RfRKLF2ygx˃GKμ0rv,/dVKէCLuP/-S&\SF cTGMMp Z: z4:0U,KQŲ-sHttphiU9<<… s "`T3`sXvwwXǑa~8""t]IՄ9Q9#%^Nlq"8' (qe}DJ#H1(Fe [P*'=iO0xZM4o_uZFS (kΜ9gϞ&z qn!Ns w}^,ھ۫+}O|C|3͋/gaW4@ Bgaʠp8 ! .H0Z 9gf't!)q%KJ( gY3NKqFAX23]0'ơ\"( 'xT c@A@R\a5b,R"V9 (j6"Y-o@.dWh[I) o.2/s=y쫟]~| < w>F1\)(M557xgvq~tH+$Mt$"y9~[Q8cv29XGWy$<hZ9Dyd1S:E\ee#H+hl*ebj:D!lsqo̧x.[ >^.c?bII+)9P1[ef,]P ia=i cJ8_/UKM+E^|G,9W͚'g-{9qE$bxs!۱!'wgwuM=?Gg?p6rJ=B>6k lQl)wE/bb !rftՙjiK r4)i$9Mq@"j52R!Z1ir:RNHiԦV&,]c_G/=n6p /K3!6e,30 PQaؤ-U.t֕T9(Tߥhq& )M{*{AetB753)YzxMO;y W?sw_1*ya,6O9f/}~@^mvUھGy?_C(Q 8/snrZ@c&qq,ru3p$j+\7ŠZV F]Zx||<&50# l6CqWVF<wfU{_g# -0/x >8M:E963f48!ƨfZԟVX\QdJZ0EpɜPX/̄\ q ,jh&&Bq$BY U]D]$ OVhɎ im >1ňˮ H&2r"8!a8 g8M8q 1˰DT({7wxt"Drk4%n8ޯ.t4&>e|4JU4uH$Fښr>t<ⳐI/(Ll%s1 c56 X2e2_T)&isLF\G gLP藖W'|9MdT1GND+"eS'ZA봙ѧ8qYs{N҉Ι $p ?q\$n="+w~/EBF+dx\I=nϱd&g\8i\=EGRϞ߁R&H ^wVqʹSPQ[WLޘT3@f_(t|\V+M eD!KkT<#'c@m=Džt3[W=] no|ӄJeJ̊ @p.Y2Y:^ =k VXM(FOQe%2/0QŚ5gsd ੕ NF˘Z61jrK u9~˳0v."zVV֛g>{-ms@vє ٩>4ÆRۆ,+cM`&VcYV8:"I@"Sxɜv"bC*Hb3K7ɩ3麀UOʙ-_YE{}U>MMY -v7T/i+uʴ)٤lYV.˫-{F7VLSVXSϊStؒcv9k 5S=SsA0&k /,HED}U^^a+_z' Ԉ6ShS*uؔ meo8f!@Ce0̋`L[ޱhvMw4G;} 6ԹhA N^Y,{_JQ+Y,%';wVlFZ4yS~sv|ZE)zh$!I N1Ox.X1aMZX,z\.>8$VF&(O"S$M#dZ(Y p<{2G"*L։! N.rs>&jfI 1Y DSӛu.,@*8s䬳I܉$$`:K Rx|NP]mqug'x鳗Co{~MλG-x_x|:VX?g_ _=Fw{/>xrs|slm3#|s3|qe?nx[Ywtaї|~[=1Y;ʧ'گ>|@5t:v[_&119?MW!nOqɑ9~7 G4մ.0 ӆ͎g΅a"D痈;dWW@&b^p93Y, f8B EX ,j!j6& $0XT!+t ]&LHЗқX.8kksR߳ztbq#&B@r٤%utp,e;i ,KGR3˳g|[3 /[p_ُ21n9/pc>˗/pC?qT$+nJ;t9 ӄDkONWOj5W"٘`ھP*[!qhZXn+A:33OQ%H*xM6I}֜sPdf{ FbkgT[*3xwvva^3_ĊA~-p T嬤bzO,ϪzR|v7cL-gkV{|͟=>> EkCZ֟Mm~Oh})Bb0rI,s~43L`m:J3|@/幖˥eUs&:|4fٓW+}ʯOjN>HWOeŴ}i[D*tm9Ljm?FFpelh?mZWݺTO ]kcclقchSھV=(MW8/roXdJAaBۻ'OGGTX#'-f4>iOa ge.܁()Kt?Á׭.rHy:C ݕpy'!z(È<ܶ ۤa={䀛V I Dqd&hG b`IquEad2BRrBtBuđ>{˧9;x+.WtB?f{q='p?g?TJRHekkkf4#ڎ%(7~oi9VewR qQn(UkfE93rriN7/C7Ɯ!!(\~}fY142Sm4oV뢫R+Ĭ9T¶@% \*mP}W&DŽ/ ay+sowLW}@"Vl^0p|| fE0̕S;zolֿZ]b^m* j>˘6p2ME+#-U̟mcZ0z ͥu[=NhYBm*[V|OީTTHwjGl, H$d}dJ:\5}ObqL,D}wVB:YY]GV ۄ]L^GNw8s<WhQ6zZ Ic;=X(q9Owq+鈯<_8LxNZy(^2}p,\$d TU ygʼn Vȹ3 w /f>WV3Y_6t8pWqEL2=^jiDs/*hԦ"*߬~cyo[X,L_N_r15,u6cw@|\́-C.^2&guRUm^L)%g;k+uN O3a H'6 iW5b. :MW[n"-jTݝl6j}iY5nZ ^]ۂ N=뙕E!2A<8|N d@rQ&OubGq=żf9#Cnnҙ%% jK1і0J: ׸h@:DO<3L2.X:.=}MI%s`v4T~As;G|K|ܳ<{N9'id15.z])z/Otı76ԉѯIȬsl3bI,XExžfg֩)`"DNE}+ CS#pF_mvQQvE+H:wZͤEw[5O;zˈ%[g4{]ƶX, nNGOJmn v,EjvSOu+t;(Q]qcVU# $QՄ!:18vkY1.2C9+7p݊+svGHힻzxv:~ÿ%zݽ; HO8ڵ,^`zk2PřME2Մr>H^iP^."9ɬo9)I]gM᫭]ڟFR}&j~5[0N?m?`h{ j^kjkVWvi݂'8l׸,<] ԾieŜ0n|}: ԏO3k^AvOGé@`6xXsJ{gE|aGXV O{Vݬ-o@΍ IDATȔik|,;OR2,Se:E%7 gVjÉ#FKs>@\9KLNa J'S_/<4bdsۄm,;JLOo[7?oadF \ wk|7nmνaK?WSR3E4\)=R6NtXgIubLDe`t2/}!^S-ݤ??3Nc u,)>bUuaֈkXR&ax?em(ae)M T@%W; pAM'5f TM0XuV6k1TfBR.sTh4dQK'KpR>Tm5fV8|s& S|=O)BwsǮT ))`J4oK^mvQI'=h#piࢍpUe&PiBu{riK0 'hZH̦ڷ<~oՂ੭uN;F ufQ((#Iఛ8.rG.|F/xMK/{ "﹉swȹnd |\8wK"-7NdKY׳N|P^ Y9K G#vmzk-P0tւmE|T@}9k_kF/(\Iյz]WZbmZ_Y{k,i@vO|M_7 I`m21%d c0clA, K|}ZӠւo'*N~Ҿf.~iQ&yMj>#}"+.2K"'PmCTx n^c =R?ԜδfRಐi[7T`Z=*qͭo|~ ,^otDt.c{~dwtfAӌϷϾ)bSgLYҝto=f$tM8pB姄>y)X"3pv2BCF&s1Zft6$4P}R:b:$UXm#.5?RMX)M!P%/{ BO^tÒHznd'9f"e_ qwl4o4o"]KǼ}OG13)DMduq]puBF·H1 )g}8| s1/l; ryu8#]`-Uwt'$̌u/펖=<o]y88c&*q(ƙydD"C6R(.AW^'3"nMvVjbxZ-qURR "cH$sD޳3 ,|G2 8؜hBX0ng@,9blzo{]aM*T]~deڤm1gv1BE{]49׮P-z`ǜi]dIsdZssNU7)+}fk˨q"UlnZ98IRS|zD |&:n>y( +z"cVmڮ:qS|C`fV]9S][G̑+k+;:)1r N>8[pw'>̷Ex͗HG=BAi zoZY[^*8YvpAJK#M/ݡq_#A-2iwZwt!yZ*ubWhmG[_ohBW"5ٻ W ]r>u9R_vn|޳wǐ;ZTmZU GeP)`L9WuhaZCN(H@B#ޛ6$ %Pwx03\xĤ>찕ȌQ%)W ﵐ  D$Nv R A9K)JI_hu, U㯲j[LPL{D-v{;пUEV?~0`hm[Q=ڽ!Pv2}!kD}Zdm6lҴFoa|,Qm*r\ϧ^sKfZt&3>+!|:ח*ZKf5Qf`F5k99HE1#9,K{o)Fsh1Ntu"'-THۉaRw ͆/QISo~O}7y&1n?&oѸ֭]fstMךl`1Fa`ܩ󠶏ު"H}}[Jqױe q-3!'oA TeȮ!T÷̥y/Tm6@M9k5=nZYFE#sxg]U4L;#>FM1O(~+R灲g܏Us|Cܖ5Ϋ݅{nu!E%|~QKlٟ*B(4J (DRg,!GbfӢ5 0ʠ-|O0?&"x]crBVTɊiۧ|p1{de^_qNF\@EQ9vs^v~ꅇ .Ή8%NW:"ђ$o1O( gKWP"wd Li5D%Y37/r}H]"f:,.Wp50"t&kN!IИ3q=s67dc+^&㒐|<֕Df7Opt.XR1 FZ0$K/ē@Gm̼<.lG-YM];!Dp۩u (Sv?~o;D\ԧC]`GՅ{xz.~Y$攖1p)ܦvj>Nxșeֲ[ZUH wzmk}m yP+qٯM}+]=Z&b=^lGD R'^Q}꼭!{z}tת+&9^~JeN.!mx5? 9g[*h"f\j5ޓԲsm-5ڠ #StE!bSeW^vF/Ƣ,l 4IʴJ^{ـHa*1;o-\0權1J&rZЩSGXGR14%`xgɦ7&V3GW9D/αNrxe;YpB1D@;A$j.q]V D~D-#oU^ #%41pL:,0\avOWn^&r!dӌV؊>stuE @ʊq6BL;\y!e, _kU #0tyrV>xLERޛI"msa[(c\`aBJT `ؓ31 oǫծ iRD3Ӹgj{>U\¶SA1c0q/-9GwIQ}Ƌ;ŕE0T&.16gJO-a}r]{ݿg4eN%!T%˨~{5A/hzKML%Sʤd E"]&r͡.(kjX=?dT_W0&H5#{:B1 2UOg:=֓B3swLyfy%DL ^V8X g3I0Yw8ErLyYXDz[!ڂ衴tH"YA!t,hpjhHC^{g(g?o7j>A>OC`ƀNYsJ[pM諤&}5}\l۝/M xJ=n+Kz7l0-,pqW۱.a_>׿ȫ~A^{_փo!66 Up=n uXסvj%k}ckn_)cgA^{})Q{9aIg~B^c^xvGymY #kޝawpޗ.IZ@GX x %A/s TVzbToHW,;Fϔ{y"3>*:bT",s=* :' CBË{ٰ. $-D%oSMj4,ˣy82+5 .(m]"\ nam]v.,cf$)̛3<[׌~ }7:CG3!5w*0BeΦӗ. HOr4~Yo?|Y|y 9͈3k!ir΃ ޷ 2ZvZiHܯKՃ8Z_Lmۖ5QGieOswѳhS՞qm~.Ժcƻ sfΙPLsyPCxnFJUp$x_M0HքbgsL, τБR&iQQH/m. q[2=y{ͺUZSSQT՜) aIU&9*ΡE43҇SE@'KfٳKTIb[RcD"sB:.z J\i=.b՟mwjgВKQt2sl {&+ pr zBuGgeB3:P2}t#ۓȰȥ":2G =M,Ƅv)L'I`3mgR/;dX 9 g'gha2hbR.UɀH`u<[4-f`{hŭ;`r/\GXH 1m0c$+$GZ{8_`ϫ TqAks- oyYtŝwuwć9F}.GSemy w3xKg7.vxBY};M]erS$5bvٱ;?Ou}!}zv&ǿ9Ȣ913ta8ivg|Jg0$DLEQ/$G5&AHd׌N#Tٔ3f89)I!w~ȫ/?G_}۬Vw?sOlwNYYgLaNt̒EV `a}T˰he"KZJn!-9[3T쳹v`VZ44ģe V19w9Fc94`K1|BsfނϸtNt#%3c) x`mi"13g(]lD CP$9G9H^6#CʈfKgF@ʑM@$$%#\ZuuZx?cUHٌ3)z|qޡ"31͸# Q$ 5k;9N֩ c&a};cޯu>{\ cmuEC42!G؁EV# zbD cyfI$d:Lfu5B.TA kO Lg8&zjG1s?#/є켜؜j",ĭ҅/@px{EL"M3 IDATQym&pK3ӎ{/ 9=9<=AikRl951#S99^N3"3V(+8kERd"`E-y|T#NRs$爣'VYa`"i~cfJ!x⺬1qduNqBWjsL&)bsFD’zH6d=UkYoϩm)oވI R4m9YR=ȣ>PGGG׸VDWM$RvԘk2C\=)xp^*޻D7T?#i,` 80g&@UX:Y[=bwΕ[b9^Wf>8x\oe:砲+ke>E[u?gL1Y" )"HaUYxzv@"fK;BO.õ+uCAK9noǡ ^(h,Vcʂ[8-WWnjyb&2 2v# ֹð$tE ^$CD:65]3fO4N$1~ð zC3 AK(Oapval”ʎ-fg)!I2"%9T_ d!%3̚cLlTf5F< OCOo|//&[7/\9y}ͱe(4ZLw }@;xGʑ,ؼyN׊*4wʕQэ =3|nziN/Ēĥɼ5:'C`)S&)`Rr(HBVu Mf-q[GBhGj; "q.0Z)+:+*=w\EO.ѯ:L&VEG=x]_!$¢k ƪb7פ H *Wg,PR͜VD BEv>RQ5}?~9e[xL5[Ds03xaZvR5'`6 KF"́o_&{넬Sps B9Dcqಒbځ 8ZP%M(:*xa V4#4 $KJ_dMqE"Bw 9;NI:.l+1Z,;|0]H JDԅ@OGIcbXCrx!'+LcyHe)!^H5/) )'d5jbu@q1Ax/q4tj5nGk 29b2UPhs3RLR%%4Y5p1lY-CϪL0= )TF9cn:2mG&;1vN,¶zC ,s91g":ZFUaS۔dЬ-h 8rҀuVg5yIDvRLC qV K*3sp1sFZ4;HblLNf? t> iaZaFu\5lsڵ޵_9ERRRB(l@8p=JSB%Y˜"J-<73ZTۏb&ANyOٻ!):_XRHvB=))1ҡEDL'Js;e[6x(>8Ê!ʵt"јVP|7楢xO<~f\r~_t{V7V,t  qe8|΋_y3L“nq8В<)nYkU#j0{rC)05ُ%PiI GP'L<[}GN>ȅ.TJ,14G>ހq`c7.]83-Lr>8RJ *E¨^6?noo}mS^'ܨcIg\eE*Mba\#9gS;F 5A[KG*E;_7H˿J0ʮtx? Z僾FhE=+]|1~k.ػHh}5'm]$`h=YZzhʽW{ՊB+9i6jOy&%/yVN9zxMd ىuȐW >ÐDC@rw֚g8bVh. z]_%5g-V[*r˭\v,'i)H)1?78=?+_3>Ot ޛw tټ΂ϔ/h?ᲧsUu<U]ݡU:ouyGxtL$)#X9Gd ?| O0< .&9^+.g{Y7GeJ Ê9 [4yN8Z:2[=owo삲ƿX-q4{+&b#U].Q䶍_, cd5ƫwqFZyY 䴋V]djeuXUr( 0Z CU&߳M|{2t( gNyۻ 1e:IdL"14MQ4׵zmӲ^ղ5k+-ê~*@7MۮY5tΙL'H?,8y??+|O'_?bȊjG\o[efԒ)3ū>̍8 פvT Z&m[}}c]s]wXUf-x!] KƂT$^xo̕kǜҢG׈ <#y甮CܽXo<ŽyÝ'µ23M],buE 9;8sKC Coswrclfvް:"̑!l !84xnϸ<411g`,y2]`1 rXYIsBĀK@`o5J &V`nq Pk[;ͅTnSs{ +\ 22D]:u@D12[jJ ( Ye$u \{`1 ,gG"sN:y˞K:;+K]g>ω|"\SF"o[>$X+gW>{/K *~ >l"lar`2.Șy'ogGopvqi8鹴~θcO#[9]yv˰v - |wLJZi5HϻOo6pjI%IJ|-,yZB î3Ֆ %΍1^Habhlyo5I}lٰ\.,({Sl63/&ݕ9S󡜭럪$)~s||\>b$3UjWׯ_͍+}gyr8f.~A^c<iDkĀ- ðgtX+{ym_۾\y/p,@J[ݣVFi_6l;5 ym`\.wɦƴ[Hiѡgp}Xp׹Ï>+ȔFpB$!>Q@Ĝœ''\T*RI"iɾB4 ]val>Vw ~UU|XH}#<;ٟt~sۿ"zgwqjnC#[F8oQ̳cq[g&k9=Lg|wקh"-3qmYr(|7$]59L}]ufge@qbJW_9xۯqS~뜞:_.W?ͧ}W7nSO< |co<ϴ˯~~ f>|_)׎oz/o?oy5G]^O%}Q>?Gx|_~3 o}~_/3<y#=wH1>ǝ{w/|O?A nGSêۯ2ϧG"X)O|kx_xΦ[ 7@ZvEO<o*G~>S{}(s-?{e^'|p=͇{<|y߇x~[9n^&,!^'/}c̉Xrt|7]~ӿΏ_{fǦ-Ukѵ|O?/|=~~LÒ{ۙ7)6ggt1gsmq J״io\65k*YFqah}Tocr4F. ėpj1w)O9Bm b>8_+ƶ}kN[u//o` TԭZLwfm8 8>Ͱf{`g[0j%*%Q$E1gX^kSJyEX ZT>N jq| xoσ mO5.>:/>s9zV۟エ5^nsGW8vЙͿq+zꈪg?1xy^׸||B:JY/XFsUC+fs+ [6#f=rq2-x lcL"vN]bƍcQEjc}ñx?zOh^ٍLZᄝ0iڪ=^( Z=w=|ϝ/>)kLkpܭاnL @nWwJMN]L2Jǔd8iΊȾl&ƾ`/v?LM:xEwdU0O-q,ЯblIz%'CӦj}upRB3?WEDz6p@1uC/~ Gc @lXR|N7}iځⅼtLe1%uS*9GK0(  pqgE_ce[ xzc2ur0(`ɋCad +yAV-e_ـ}g!v8QL>|^~{|_?̛o>;B螅))=-6'1'8"^ A" w@fd ,!&}ep;s?|~q>jG"b0 /x3~\n!yG>Cp yF6\a9 i5Np^%̂o xzeDzU{U?X{6~Ük,qTǹsqq'qat \~u*0aج$Pϫoڱ,\K={m=Ǚu@i˛_Ĺ]}.8u)^}%NdZx\Xp~sgo`l#qSoƫ^;~'?1<^~.^s/MOG\z/v;8ump(G 38{z}U.no#JeUr7cF:xgOpE1M66N`{_y'N4 э.X8Nhf50ye&}C1g2xtEbb$ J/sPML DQ&I"_V铙k}>~F1=W+RED/X9[ ].(N g 9!z1ڡc~ l>=ԧh->ԛt{-ez9rcf~y&' AoxOqUAXDq7yuP#T2VOYΑY[_W+Xpөs=P#*rdً}7x~BLb#߲_ux?7X:t9n߂maM^ ~jƉŔS:Ak Pm!^l|8H!0L>M=6K`K_$IR>KaxiR2@!z|7Im_b ;ILJKǻW4 HVJޟքAa׍bH8J%+KYAܙmr[sK9F~%U c>1LWU{oZ' Vж]Uqޡwt\OJ/1s3>BEj̠ܯ9lcC .Iz0_xz!H0faF@QK!'UU-Y*uC!{%~>ghxHaf". aud |cɕd^yEOR[" BGwUcT$'ݦ v>9d3POT 3>e0E:|hхa9~;>O~w}0P)k3FOH]cBJ:Rkr 9<>6ԋ,%aw&v=9]%UU4KZqY̻=Ξ=ijg/p7OkЎ1GP`\G8jF1]fc C;'? ,.|}QNcJA¼-EN W9^R[PCb3U4݂ј|sluGY^㑇uvw1p;L=OLjֳ6E+3Z)tM0&EoP%kXskO BW%L*`+A' W%6ɺVI(D('}72iRWHpx H=o$Mă W))]NL`;kqPz7CUZV)o4x^d2a4(Ow]vP2|~4^GNweEnHL%VmxG?@=CjfX"︑}/ٓx&wKȨ"=Rs#!:VQ舏Q}9.·"ɔY˱|o8\cNց^feIsJ" DhewnME/eJeW)qkfDHZHz^JGHs H初CDeh(TQ*(jL.n!Q!!&qqiRpm`/!hRp10[찶v68:x=·Xau79O8#c._xuyq_3_=P.vDѣ.Z(xRV _=єE|PUՁ,JFD41"d1t[#UhX 6 Xccv|"] DLI]KJR'ud4$R%mb 7S1X"u(OjMm!SίC 9!l8t]G4K}mI `Zڰ-GWp\{*_WИmQ:1\[# #>4/xrH55=0;cˍc29 !ADl| ̧?v[oRXe6֜0+2Jf*˶i1ZOny`W!a>C-y޼lOU PfDJ{ BJƺC;jfPiô*p1 piU{6udQRƂgx+?gUSkzNBиpgؚ_F 78{: '?śѹӬc'OηrdZ]`o)Jro0F~WUDQi.|-  jt~h4ckĸk"jvoܳx/;:42v]\qchf{\ ?a2pEq9ӟ=VW׹Sl])m7cpZ2pzrqY3C֠|yT}g UQؐ(b/#OާdS"$K;$orecQx\2F)saLV%y(RYUQ:`4ekm1Mz>.Dc(e])Cm vD}hvw;pA62ɗ*Ok$BzV(6J{|h>[wL27OgGB(IExCŘ.J̘61]ģ̴Kb@Gc0JLͺi&JAibt$ >(#WWֿ}Xn !9LcDi1}dFbLN9@6JbchH(ˆ tHj-K@EΚt( \$SrYy}m^U]RzY*c (+RI^&:Q.ǻ~l2h5b-41t4}̖Ӑ }30?#J ClDk?၇~CdooNU^k2“O~?w>ʄ&-0W]2/P%eY$N/V"IcDd9E_3>K箮ky{(Ѻ5 L$[14*Y@H9K*z ~/= QBs) 4-W]пW=Fcvlo9kMԹm%%/N1ubX&êscbu̥'ϞEυ{|Ops<}c_52ѴKIcDyMڹj^CUU-|s6d$sMˋP 742e21BL(c<Ţo]Σl5\.-Pvރ9hGs1>Pdрƹ (AiCσ&|ǘ4g_ ֗ BY-!p tԆHe:z 'o<1. Р4-u٠]JS}:bG-q yA$Uh'D(pΓ1";B3c޵Hw3l7e58c)6J AڨU1h&`bPJv2`S3 hnnN;o 6wq6t# xú^Q2]M놝],;Ba 9ƤukT~~^CP(CaNkjDהF|Gf(*K6TI0'M:$ ZWu :*=BRbK{HB8u KR:IN#:bpβh>\`\/yo;OGFZqLjstQ`ۊn9‰ ,JMlmߨiiuFtUUBTUF+zek+Nlx"R{h\;ùx<4قkWw+2Un$:(W.suX7Gu647 =6¨0lӎq)g<9wS(,)FbZMX!{RPQi?OLpD 1Z@zHش vc`&!x^{*1 (2}w/HIJL ST זwP朮kbm3԰ v8^CXJBj IGDIF|; ._;-t e$w!:LvA H4|?cB<?$7*<|?/bl ݂*ZG0FҰh *~ߟTߊ>\#>XWe ;`sx,)9A'Lٴ" Z4{ *'0-&R牣g *4!:OR.GB*E 1Re%(}ƿ=m4q8 -2 Cp(/tC'0Aȭ5 i٧Hk| N1GmZNۛ[TJĠEw@"?pInLJO6e>,i3`'?/C`wNq~`Ъ8|@F/{x5+"nWߤ659%VCui9C*U_GmcM JM `>k)e{]%,n8f8;{ rsj!{/ʯ?l@>|HH Rs05 (ե(o 6nM5$1% #b |,fe-Jk0k#EG\2&ݵS'G^%HK ys-J\l.!D0Jt#0RQ  l`RujՇJҷXP-Hۀ Emo[.6X?Gnj 4m"ڏѪbM]4vDX9>ע:ˠ7K,dG|>g}}}Skqz0}X=^`( -޷8o^KY r- i T>GT[P©t& UΝf:iѦ"bO~8B]DSSv[g61*.bT_t9ap1_]D g5J`0"_9yGzvkY-C*:ߡzmb (]P5FWU!N TQvTF[25odnGf 6{#CappUv@d?o제`:gQJS5)x۲;mY9x{ʣ|_x7/ɕ7bC+`P- eJBBO C0hPǞ>eY%6BX2YšY?!9(Ձɼ'Q&VňvO z3ӲmZTMD_98Y7m3A!Q%@CAg1l(K^p^rlŲ,#QC2'?u]\RCϩ>3˔xϟz\1eNKn8}g Z{wajFlIA ,X\d41TDס0_cBtZn؜_!Mh!0*R -bHR2*D/Ͼp@iiU& E6q="FmH9<) ɧ>K& N>&?,14~#(ssDWtmw \L"a1A`6v@O{vAAxg!(\;0ٳgH挢zvf|K_q%5sc;0ElyOgtOtz ?9s؟Iz߃;~>圣tZѝMGtK.ipMYhi0E%F}B#P3IBw g{7F#CiS,VŐeC`gۣABٛe|"eS|Պvw~1>r#S)8s'xpUS.i">DL]`o>Qh2JhB "ttЂDƃ&ClxRXa91f$ J SG<ɜr4g0m4-[t}Ea`F[W*^zyvwēx-L)Uh447T'Y80ʘLt(c#xKԎdtD1 B:6QHʑ B("mʨ彘..V&WS2nO ĸ`R7߼rJJ80θMPQ"RPX!CZPBߥDcP*N (QQ(tAZFfJ<6&0X:]P;F iK;[$-!:B:}sGI8u632ȓ s="K \Rch13Z EYxFIޘJHcDT"$|yLl{7e Cx =@/ `2u%:M>' xPCeE1Np*w@#bH-NFϺѪ&C,)Acm >$PA]آ(S~t?"p.C}娊dZW*+ akoo^ xg/{WȊ< O7P؈X0AKAQ}˵U F΃ Shr!kh}>4!$'!B#*Vm@1Uh,A$’C K{Iݕ-Fa~/7Z8dh:f&}^[Zܣ˲ Su2ω3!&˶æ,`Y Fe1"O,,r7-Yf?hz#u"}עm9vy;nj Q wD]w»]Dw.9f2E ,Z37/gY?s|3!4[x'8zyWdm`ue32 !6 Zk&++lnn.hNKF/PYKRw޾bw@vϟPՁ_YuQUrM~_UJ}RBTE(Ъ"ZMPj\'QT~8:r?慗$d0)q6bZ_-K0-6կ}w JRV^ebg/߃7-aD eR]!%`BjKעO$u!{0xӳt>/aqgɜ.}ZC>k1&K~aL{hA߉4wͅ Z.;8Oi|Yw]fa))Ǿyy+Һ-e8zlR4tҰu[ՋY"*ַ'?io||O QRFKAb\%zf?ĶˆEC3$}I_~,M p) ~<=7ϝBߑh<&8S3-g YZo6C#W[/hX?[.ÀX&RjR`S b ڲ8zܴz=w˗_K[y~O8D-bU&UMv&Qêr>3'9AdN RLL&'Mf(1V&eLJYÉ5Jm,p 73||QNF0[@D}dl8璁vPc,PTi ާziQzYXC͐Nes9 :,iwr0W؆!_Zw,Z(Һ0psƳ~Uo| D*\6PHZ\,В$ ǢT,`ODQ"1:(7-mPT2&5z8r@+EWE& &DDלff՝׉TI X[@ jDƣ $FkP:CJJtE-sLSames`πM6o}p_yK%?@c e0F82e麖4=1IuO{:Z(wfBU'IgC{VwVx}`ϠsBHb{bb&J|4][S{Ȁ2VWk.mSl$GJӯU*:.Yfs KEQ-$\ro:G- z ]TQSP1f6eDql]qGLb.e:atYNMzqXrNj6l4p 0g%ix\cY:I#GkGF}3?nꂱ- ^v D,ƌ0F%OO#cg@UI=0}Ww;KcHd}oiɘ((,`aOvk$BpIV oEe`?@K2f=Lk1JJl݌&3e[ϟ~bonDZ<3w< {]<3ϽHcԵƅ /]_^m>ѽwhg9Ʌ>&gSnB2 %="(R#mG~]R,vZ18LQ:GÁoE Fz8kH7UYb?(;g%ޗHݲ;X4<29c(T2{%'yC!`IyX V0GfT4bҸ{ cyf@0#0eȦ8ڬʊ*VRlG>ʼn};?t5~/P֌fk WbK9ϰ,%ITLafK_+ɞ@]-)C0#f0gZGN{-al:rXso/w@cww_^bn$J> b4nmX=vfXס UJE ټzmvR)ĘF]MIQ(](QRu$kD\L[@76ܺ|:ڮs,pf.̘u;\ݽȥ7Q!m "QBZ%_Ij蚆=]kJ10_l{y-KڒYq8,(h9ާyy^ Jye0HtpJAQ22cCЃ0./Y.JXYTURBUW&'d0I&¯JeYzQ(:5=&_Y̿Kx$HH~:EK!dyR]2mfsJk+SYgSx5ݡSSMq"%J O-y?6t "Ue|σ֙mfA-b^&]P*`.]t'戊8C"J Y>&'Jg6%>SGSh$zDo1qQ M. t;1Hhqv(^680d(&glp|n{?;{}Z-Z[N@UJBüYP&G%mx \\0>:9ƊAC4Ms|i(snvlbt]$t\`2^%E]M1i4`%VFAp0kP>M`,tK(<1mE_H!t]1%GBADS5mCCXzb ĚDbנbTmZwIiS@*nL&[/9cFNeR8q ,;1eb~!x) `/mRbOS-4ꀙ>:ޫ31.|gӯ?tOY+,ٳ-}YSww< 1$8S5,%[I*z{<)TTb$9(Y2)  $1xkwCXԹܽgm2m>$ܙ\MQ") S4)ѨiZҁ d"&Tjk7(r_vG|3o~\r__y;75A%G2yH– :Iv2ABD&SGz9_uZ۟_G?r emxf䂼?v, V#?M6Q|_~%f픭mE&V+HMsg¹+?paNh܌y ?6"(%jD̐E`VUE &**4w`KH$6PHHiO5!Zl+o=8qc9;#Hb3~:LY]rLR6UjWwKS_(ӿT? IDATзZw 阪c hd}X@6,S& 5لb}oe6 XJzz7` 2S !I^x]zPx6% (K.tQb"/]ԛC1U!c:=@|/yҴAos-JI.;¹vɔ( &Vi]\2 P/O cE5MˉC3cZNR"4!J1R*.0J$HZR т l 4"%5ڤu] C-]G)3үt}'SsĘedBʊ4Đ@TxiHtbO?) "`oH}tn/=\Y:g!Dvb\2C`8B ˒8ɠTJ- [OR4Ig>1$S X 8{jo81``4-vvnri_ChYx1R$ZK:igf:={ʥK}s=|`O.(˒'O{GϽ]w(?zCȏ^:#*__=Osԋ !FKt۶ C,+?C `3peKi(Jo:bLjX6BL5^]Kvd:&c%9X&$Rʎk\|Hmk.6wai23((: )ْG pjw>|/}om|#7 ~ӟ|:yd`FY[_ڥkTJRRU6uBNWb%Z ں7S{ј}g4!xBԋO ؐQ)wnV1br"K_hyyܛ|#=˗׿½Ç?ahwHzBE)QkLo$KA"cH("҈#cG#e,N2j̩~y+jeHw ee)N8;F]bhDBS.^=7βs|qkY̦ G!Xh 6EWZJ+)V-RfMe{Q4uMpF+҈;HEVEĨ'dB&+i72k&)  YPDYfXd*q'P(H%N,޷HY 5XWPذo:p*ҊQz 8IqxZ̠@t&L bsJ $ZcAm)!A`cMg<ڠ菣[ybXJ bFCIrg-cTke l3Eu>x2HQ#V{@ 8pBh&<_$V͢!MAp>}=oQEx (1(!>FZ{モ7 %R:,kŷ]: nJil?S-BHfmWFE6IbJ)8;J446$[[#B LR}kUa$ R%T2ߵvAY $)Mħ X((q2( &ɵd=K>)'ID%',S!Xi͞HiZXvLFhCp &F m-u?DXH^Hd$[$6JqլGָ&k,FC~@}~!Jh1$fl#Gd ݟL!rL}mP˯$L )Lv`*> )y;O}+W}sJctɅ y}|l6K!u%R, Z wi듔_>~E{1xt:k&N~_ ܝ~.S|+(p8X^$1)137di֚pi'aR&FfXjrng03πz5o.6a>wJ'+9z@. J0`DNi)FL`>>}'[S5;*o^{O>ׯKaxu  2+_zQAFB5;ݡ4mg CT#p#䎍x?/шױNC9?)Ffmhh3 =S[ u2StL ѥDh9xVֹUlJr$,'DJyx0җ-\DH!;LJ|?'ήs0sl<'Nᅣ(Ɣ,lM5F04uG@W fjS<>HPb)F``*Sp\Ja{zqiPb4]D x^}TLO)Z(Z%I~("u Gש'sF5nOY dJ`i)_a8hh]҂.p"mk_L8ޢ(*&G j.qhhxY- Raf>m[x1&DK뒇x{RB@j""džF#u',\ &8*Lb9Wo "7J"]~qUG yWt2Qଇ0F<,E 1BPX[V!We:V"y|0J˥nJR+mqRDBk,U !ɵ7ט[*")Lp͜!2,.z*0ԋ􀶩I 2!eYL6*HۦĒFMi71`f6;U jw~JLu8TW vRS|" eeOY(# j1D/z#ΝO|bxW|c?|?ߧWƉ[]|! u h:֖wm7[tqfcslnМ>:O[(v 56SKAJll&t.mv~&P*ՙy#EvWxz\8gh6oH|8/˒mBstw!N~?i.Rc.Vgj~'o\> ƗǴrPψ*"QCh&0oJTx'X7°&1B&iQSMb N'kR{K4HINBbpA5Zh*3UL1}VEEU qR|y~,w0"0]ouYhGR4^=2%k4Dx-:( -zh:)JڦElM))v@N+o@}r9/t)))]΋wIq$IsArARC1kQO Jl"*B3pcTJ*;WbК:oUZ=TӶ )-0T̪T$R[@a[tR* gks9D@7bp(΢u-9"%Q$ưX&0?y9w>9A x/:tMCHͲiU;/B}4l+%QRŹDdxkwFJ2&$:xg؝J%wj !%;Ͷ-B,W?~Es?~7or|;>ع?;vkk&N^7yG@o}.Y_[=܇67ξO> sn^>΍qn\|͍~>C䵣Md6Füw$ֺ[=$ $PJ\p4!-Z);-1OvXn2={a}s0nJ{'ǘn-UH;^]m4̠-`)RJʲ̾V+g(;MZvX+/8$T'Um/LھS[}G>/Svwv(]ۙO= 6ZK!ouN9 /> M[scrB[h#)p2e˪4qΉc<|SH[^@&;Wn7~:?WZ?x`[DhpMG+R!DxhvfO%g >mN1|le}`_6g ϯgGWSRTW7O$XϼaLE8^e.!Lj0o-ӺM2GShEdb 50 c"ZGJںank|![@)D6ٌ5*.X@jAcB, ]0b1_($i<ѷNB%acKQ.2 Q+dQ}$B `7E)I>/D+mCQIG,ha % B; yR,t ;sh5det~x4BH=A9.ޡN| p?yO9՗.;:*KNy?9(VRJ|LLD)3\4JI}%pc }/$`eYv䳆q RoǥbP'cI$8K?G!b C d>_VDX(B.8w*>LiZB2Xw.RII)@U瑎"J+ ԈC`P}i ێ!㰮,FDn1H &YK`Wv^ !&m|B#%EbbHб{Rwqtu\ɴȠ@o.Y>d YHd^.EnrddRb$tĘ憔^R}6h$a}61(3RbI.=*,9{dd寥Hw&]M01FK6Y}3N;*]m42Ͳ_Hg&Q'v.CU~}5b\bm[1QYm]Q8Wbcpix'Kg}/HZbmڍ7pدկ} Uv=M =i~:C!5mc1EAӴǼ:?>$MP,M'] XcKJQh{ch]#AA[EFF݁twFU$D$tL_u3sT>Rs@94EbфU#:dHZ)({@P<:u#1,=NL,Bbd PK!a"EWd1T($cꌠ Jp<qfg="15*IrE )Mp67fpQ-ѥ`4.SR`[LC*"yi(%c fhQh" mbisM5@6.ܣBg@@tqBn|袝SsiheNKlt 6eo/1l ]W*ƨy923#8h5>zbhml+fH)w 4 hChhkҦØcwĭ59pcmݝásбFll41RtRJDYהZ?%74DX"!l"/0&JIBE@1F]/@Z =ޏP\xyN&{3x2?ĥ:* ѷv/_%4 EQ+rrv~F3O56s1ݸ%HKrVgQ_uI"RRGޢb#E+03PZڬCf噓G!V^[޼;]m4>3߭7wF~A>gvE.O}9Uep k|yP_|3﹟}}\>s|@Ɛ Ċo- ݥu* )ʂɍ]J`(׮_ascWv ֐JlK,9HXS7 z03[7B";KIAh@p9S&ZzDD$;)t$G(6IkJ*!0E2% D7i3v!E䉽 IDAT£1ޜ./ (d0Q)Et&*"R|+>i<@c{GM<Ώw4G=nѿ&})WF[݇Go%;ʏΡש?*mX{pcopabO2*+^ϑ>0T4Rs>8Cd{c!4Mcw{C܅hƣ.d{T#Eik(+nܸx8۹;Rkpw2ok\~ׯ0LQr#Q gPU@D gVhkF 5kՐɩ ;Q1 `prA 乙 Gݏ 38y4cj'i0(Hamy!D钵B6RJٲ֢ƹObd洮E2%HQt!b!DG dBsAH)'v҄ERΘ# ~c/PBFZ[ShMmRǏ1"]({,SKkBFݾ1cҳyRi94m6DHpMn_sbqE"% tA|f&o=U@BJq)Ui8.=N*5dDud c]‚D@&&HQj6X+/TuMH"=ZIb(՝bJ%K[C@614"ScEJ B><9p:Рu5}o{2O*u54%R2^8ts-$0غ9gc11"Qj6k |>g8 =F['wsh]w_}^Db98u_Ln|R pe~"ZnKx}vw.1o,oMF*K-%Bvװ3fJ OQg2!LTW^"01"FFdlU@ 1 |HlGZjP H4BbD$7B GƘ:?l"c!)G<mD)*}مx[{+wwߊ-+ ivs}AlGA~vJP #:tv!e34>c`{{7.ɥEf7.LJm[HtR 1PUk)#Y<uZ]Ln?vmk!Pۆ]n;qc |Wnͩpi[1O+}`m+cϘN{/ ^LA% %2 àQ.uF&aS׶-RaдugA؉$|tѮ! e\J2 Vs&ρ>KުJ֮;)D"^#G ~RW]m_o/_̤T/aG_ڦM@X4CR>wJx2gۆʔ]Ww+MTn[,pӵh”_Q3N4֘Okd:e0,6߂􂃽T@ %: QaTsW5刦mBKN'!4vikh b\>q[Q h\|WhgSN:Υ+lmc1o6r0}8wu 8YRhˢ3q`jc`X l{>aA=J& _9w?t?wu7nR J~|0]48M]:[ ǎm6Z(iкm<ł+׮0ghա.8>{(hB%'f} ˽LS}kD?*:pR{@hlK ԗJ" ".YֲH22%CyA,%]DlH'BՇ$ R.'K0ƈ DDzA{w,5BDJB+DRJԚ|k6FiPV%)Rhlnn0V".Ҳpغ\%jTD)0Am!4Z(I'y%6czN>"P52JIi9I x" IľJX.!=!8 I, T_Eɒγkօ`1)8/aA5X̂K*QO}2KJdq""[Bp`LI"XȔf]^ :K?@t@"1Ux񵗹ާԯ*{՗E)Rh9Ǡ*O_[HiBqԈ+̷ʯnB 5QCv|kOu?')ݖ^#<67ԍcz0Ŷs>'PzBc/˱ dڅBHPEд%yug'`6 >:bPMEZKi(P((i$ˈ(u,!@΃L'TO _Ol$d%*!Ghe~ F_"?)}oU"﨩l-N+*fHl`{ v:N`@iZ*'h߰s= ~੏}?gk*r`ukk^ұaocz^j{{13$ !B%#n.jZ㚖T,Qfc$@H\PUh q CMF Ie2MpȐ~A4!FμWlH Dt}fI_fԶВQfYqbI)IL,wȟUs6>8)A,Uxrlu#= 6F`#S,mTd2slNY)fę۸=6 g_7o>M=1:ƙfv2c&ā'%BJ|k(G GZ2Y(^4L\ϧx9bgw?u8']|\q=C) ̚)g/gw6a{czR3]Ln+r%fqJI 朿~{W9u ޸+Z9hRaR.;cw%YMQI)Fo; 00mg8v K`z@cr~գs?>xwN-]`]`킪ԩ";L̜K]6HV$.&:Jd )oi+HY.1s*|=cJ]8 }WRe}m;ѹ)5wIKAh"QTQh(Ad}}1Z+b.>14޻d+-ާL2PY^$RU8"-$`mM]3D1s*@%׎Ę D*{d4[%"CޡK:]#"(UB,_Xy/ L&9`\lSA_!v("?=+Eڦ!"7s rnaM@kֶl՘mg-'iWyR _$p8<ȯ=!}_N^-^? .z BFu~d-B?)JuUH$W^OO>҂X_(4Ϝ_coǎs5rU@p1fkUYmĵצ<xgΟ.^yCʫ?7~3D49>8JhV]req$7$VLYB7}bc[BHI @(Y%;Бw{h^o ¼sʟ&#o.6UU_MvEa?sf_HQmvzp1"D15,ycdos?GhH q12YH`"yT2L~R6`)]CFSƖB9f67S|!%f$7f3K毟*/1بW6a5]nhS#e˱!#cm-vmdH@.HϨw;τ̶mkZ*DZ4if5Dc4޹.V-Q~g/* hRi͡>Ȑ sQ|o4g_v{MX%^F_Jɾ,1} _%3P;>:dXdOGDVaZJІI3V̙-j QF[kܜ_!kǙ3kk'4|p4bQqh~ ʌ D`維;_v]Z>\yq{(C+Ppmr$cֈ7s\y昍:!:Ǽʊ|!jI[5 cdc4FDo!Dш6`$\?)}A* ebq#L˳1< FL@[>Ϗ1#b<,p~>D!:J%@CA EaY)VM"yVDԂ-"]B!U@(rܔ(Kp _1cf%;ۢd,d$O)Nʻ@`:JJRGkk(QcJJ uҴĊ ѡ$K;B]f$  o(1jA(h:)F<>&FXԖp>랮*ijB\fU,$o!%VUWZ~Ͼז1* ˺{'i.1=N qp֢*|qe"Z+z{!`ޗe0t~R9"-+tL~C(}W^ԇ 039D@k"/>YJW&Zwѫ @IBQ7~{?_~%j{Cy=zAB,pq?㩏{s_ڳɟ/1{+y_0=C{QgO Ge1`owaYCu Ht^4yM)҇9MtZSUU+,F| xXxvرD̬ad?% )!` ^f@oS8 9a,Q-4F#ir X.ԦiNcDOg2"8nNoRR48jk0f>lz5lh+\xK Whј3ct,x6 .XDB m`{;7AAH#JSbIdi#!aZ A]!6RFf9! ;L:/l:N{ J0t$6v}V.+o 2Z"#`(ٿ{)쨾d Xzk Q /ֳDIÞ 4eқ`wP7-;~k{sjcnHj"ƴȑP AC  c&Y"ӶDڒ()8t7sߩ {5ԮR1da{Saoˍ1w^橏=f;n?U g:ckw{o3'|$ 1sHSkqώw_ajM\Z\I̴y5Gd&Н{_zryCjkG+t1tb]9t D)Êx#'x gѝ=NOL',+8c6;k<8e6wX]³<.gNNf:%*0I*}B׳Cmk̗ )a5}saO pْz \Y.cIYƻI/-c0w P7-bbĊ{66ĝ4mpl#)gFLsn~XV t~٨)Q\Or7߻sH3@ٜ6}L 6A֤jh!xH%RPdIay&wyG$H*3X&dh>$}f23XIe^F ͓< kc,)B aȋK93GcYyfS qxk!Z茳ayd !f֤ im)mۋDgQ¹+0s xѨt9ż6mߗ\W1(e/aEu}Ϭ8[){2(eKRq1AxXhۖmYۙ ۷̟CX=cV%u]Ӷ-B5e9Un\7zskɌ>oZb,f_Nr]FSasZkɩQU)am|g?]KWX,ƯBKʑ?+_=8BQ\N;T8 TvW!T"*ĩ?ӎo>?;N܇׿Iz*'E4JKkţ@Dg~~&F$,7 wƄ拇/Q=}5FlJomCO:[Y w\Jh1D61ɒrJJ9U ^]52Aڒ1t֘QUU G1bN[)6(<7 jh`=:k1̚@EfX\r1ȷ>D9 @QN.ƝC]kt>֑e1UUr\wƲB/`m9~cUY[?teHBRBe%Wv-wxט8C:op$ G ?ek+Lƭxp |_}PK H+Wxx|̕)u&;bIx+LclN -2LqG_n䄜#?yⱧplrz S"F|`4gg _LbZlbgwED=W6CHl4&;R sr^օ" +Sw(k+2gLJ)y,Iٔ='>UUcPzUߑh&FL_Ky;|`{wpvvƍyxRt]RsNO .)[]4|#5Ȑd`kTĄgf{3\ښQ׎TU IDAT Zy'lY*}uÚ]UT-IZ&և%Di~ ʳoiEU(E Hxc% A߮ 4WBdU1/!1yNУ",,Ul@1S)$k @"(r$-iu>aɑ"YpRz8gDCh6j۽i[/0Z?{0Zʋ5@8s/CJE|yG,r\TW)FlS$zIG'ڷ<?3.㭇 /'`5f6e5ԧLls)o!vsU|YPg: b¬;Ne19J ?>~y0@ EabNhc0"@Zӷ-k 9%Cg^xq=u=X,{67v?rp }CfGb,XڔT "JebLWvUFuG& fԪƬfQ}I٣Pԍ>sdsSg IHqA=jRVnjʾ4!I=Jϝ1>`]%gAJhڰ( !yv}/|!=uek5Aw:>JCLm*Qβ~P" }!atXY>3HO.ߘA84{̰֧ 1NQ;MU50l΃!94|B΁5.o,eb~R*w~oW WҷO2NR"~ tC|JRwš\6i%_-y[U$phh, Z"f"5U{Fa3VUE=HRZ(7qa ")0.݃2iBM2v*1gw*Gg'x/_緾;ՌoIXd|dbX7Im4{j`"j)UUP+@" s+GL'f['bh5!P75n%\Nϯ,T-F;b髖U\aI`PҪFц%Ԧ&NrZ"9/L`Kkr VvBH0KtyxwAe;D99;c2loUuln딝}n? ZV%ZPRx6]bhMVPeC{(I݀dNLj%:t4\;;Lfp1ejK-h) S !şlr^ošQ"* KW%7$!)C[mQyƋ#,CL#9k|Ihvnmoò dV['ݻ10888Cqf;rj)Gd$~dsA0 Ѧq΢YRNvV)UdcI۶\z@S7"EKucc1I/spxv9:<>};dI[o|NH97q$bt"׿mxGAw.`̔+ ]@Uӓ{݂7srv?1:rlJv \_\/@'xZe3M]SB(2 F#xy|]f\f¹*xA6nrj䀿[O~o|䇞z+f3JvR &LH"vbb}ciPS`kBhCP s ) X]@-lLeKHKbCDgVL.SZo4V+RQ9bbUTFXM ѮkDKױ IKTDP Ikbhir\5L .>=c :c jEo@-#Mu8gKD5x. Sit_ p^H9>.e;.Jأ$2:xOU5(-SϠi7LO0dNWji]$d#~?jSKGErsKzfƟYA2AfE6+[L8R,Ζ̦}?{+o0?}':d:_+|5Lg Gko"7x3Ѷ p<@ !$Gk*(NZ ,}H8KVzBU'jH zU5r 3B^(@PN$hX,ˎUnpvsRjhA6c9m2Hİcx4t!bUIX<8AS/b?6Yo$5c{)ߣ1 C`~qJgt]O;L2`L>qap3jҰ[ߋ7'1vUŪ]\ֆIbXg& U0G>&=U%?11]zb(G@LJQI". "s @[ךOf HFȱF)Mȩ rNy-/qb|,a"MB?#*ý{G)&t]W??ӟ@ :Xׯ3֏1$||.OrrKxpscpI)AGʼnBzaQ %pc w|C\ ?/2ް[Qan!soQ 3.05S6icphmj cHh78"ߍX uG!{`su|lYSGq)ƍ۶cx(|(cޥ&uMzNzO=VCc 3kQmO^8~.T mڊGwxlLߘ3ٞmoPifMŕ=M {*u3ȳLfqIc NAlΦ0 s[n15C6rkqUpp4 fsBVbsT*Q<6G\)r@CqtrE[TZ)iۖ-9ơE9je^p^~?v<×A1XsыqE>,l{KN%t肱 d"]JLL>cyCW8k8dZp`(jXRZu ep)p䬰ZSD6<>''wy$0A, =Je\eΣ]L&LFEʭTb0H"`} 0tGHJ#FE1j`j7$xIcKjѬ>gquE4CKq=DJ>!} ܜ1T"UjU&PZRXⵄ~ D)He4R s-ϥ7.$;y/4#!kZM3mnrܡ[+byczƑ|_S63uph=^|67'|cg;oXfm|H -RBkݗd289@8њE, l3ix7C+|BI%m* lY(pPY! qʁd׻=D }eJ挫9G| I¾OOTQld!EI-׍ָ!pb\vsW`Qde桮H $JJhD1߿>H) .뗣u/ici埍%$+ĴHsuӓ6ս9g>'̗:@~cN"$PA:Mjt ͨ@+t1KOZ\X*]笇w44Fa]Y֚W7]"Ǜ Teuc6eCgUYDt>c&!y+'R3y}_-uCB$Up3ZU 9gc;!)%~K*o,c|@cbVZ˛5nP=%l$u+mS;tU;{zdl5iʉZaBfoVdwJ[:HJG8[O{.G'f{ڵk<TZZ< 첽1?`Z{jI- -JCU'd9d>,, TDJbnI'厬cėj`sPyle0h04dVOp"sG'XE -46X fMVge!`cRDTΚhtd o_SxK>579XeJiYYEqDby_cV9X،$hkՌd( 14nr1 & 9rsƛ1vT^9*Ǭțʸ̄y?`8Ock̮? _w*C)V~,fsUd6źe*hf;u gRRtsXcd:qztBX'C-t o*zS̳L̘]ƣ}VJQon2!:cqimhpZѯVmobO3Z`zV1xbŪ]">~ 9ؓriiU''@ԁ<)yy^|L,NR#2mbou+fos IDAT ih&Ւj$BEUf2/cֲ]k/㹵pv.moV9.'Rv` 9f&UÝ{Gt}Diǃ Ѻfss/|KD_Smr|9ɓHLg Q3{O]{:e5sz2{jj(jamNh+ 溹޵b8ϰ_3~TU%P$cH8+3R#b}+_:ԧ_| ȏ07)?3?7U~o?y>?ħKJsE)[oSO=fR\>1J:YmNhmαO1K` qt!zOF(j %a1- b轮Ŭi¨!ƜV֑S|8 JFsmVmۮ8D*Թ+i*{k|۽F3&6|EU6!O>B|WJ@@- Ogi_Y\B*PdbQtًP(_b@q.%$)bICۯP1 2%,cu.CaczGyͻܸdk{7y=NN~~7y?O'Ooo}? ^yM664??–ƨLߵ4AzUOTZ9*א)}Lk$*! YT!*X 4)'%$(i\30YT$|% 1EιHMz"!$DViηQYVlx9 FKXш_6ƹ8k@lLah@k (nC:LK9w:! Z8Im"oI d($T)a}Zf:@AHyɐ2i0V{2 sZarN 6*PQ6ֵ\'z!aCrneZyT5}߯CY$`0*NNNh67cs>eHR἖:V)VH/$H׎, ^a"Que.Fkvv薞~w\ {#y<@3%LNhhꆤ:b ^@m}7 .P{1V+]E]UܿwFtl{>i 2 5޵9\.QJIΙj%)ZCnX,;[7Vuږ`]E^vUf, \ρ)!{d2kƟֲt[ky 9{Wb;.K1=.//Pf<D 9cӨ ޣjKjZz=j$*u"*vy!2 L$Dm4]gklY zm11ZkxМ/10S@1э/psySU1H_˞Ɣ vna-~!'LM`K{secP)2Ǒ!yq6vƠaƟs|,뺾p.{׸@;~سi w mǬ0G4[ʃv9jͰ3>sf '˄3jt,Xg0FsGkrճ䘦[󏳷aw-dG&| 5_?s{xɬTmh&jڮ s|p5z灘,O{6ܻ}t 6J#Wη-ӊ oIdڮe2<yOId"oUȆ$$6]B[x (JkB{Ҍuv8ZbpaSW}7e EI֯Au")rE.9d52T"O*G̒S RӥrdcTJd`ֈvL:B0f`!)EVF6rCt3aC H Y7iD8;\у:C] e0!1u@Qֵ,}fbzk߿SO= \ kz$"*D|Hʞ`҅$a8I,4YuRJ(Hوi.EVHaPOfPӌe^)ԭwHJڅK \a5έY >'s7. =i`ġ ek8(xRDg33Cn?{_˜~0}n`2q\qx1PiTif N 셡XUl{ϔGm9;;vh 1L˯ŭ7٘lcb׷VMCq(}j:.,YPPҵd?9NVO€)4jLj*ԥ3La][kуߗSz>!K6¨("3fdhht*& Z"#Ԭ"Ml-i&(_̹5hzc|}G2J>U\rtD*°z7MkqxC|EtʱJ15T;u Pyݪ֯]wƏUnXV (tli V^ ¢J1 Ѹj5fgьOHWK4'Z}3]׭YI:~t}ݍϋ,Нc E"<2n|^.?v,9BZ$QFKRף+Q`kn=<;vu:Wۯ~lruo5u3!yg,6_󝗿gL <Ӽ=ܐL&ܼ~ۻ,VU3CLeYDvm*oq~ٲ8;0f V,tٴb1h2g*/~/٦oOw.h7q^gnaMDHL )@ Pʈ<a > |O8#A!F\ؘ18:z|~, [HH#sy<KUB9r7 {}>ǖs硕Hw5q dI@"m/תZ:VEe~k?tm3֊nj[;/ Tp{!VtpLǤܸٳ?÷Yۯ<6[I9{mGh=^59GrϘ0m#+&h=o9||q ?0vFk Q|k$b="AX?֖5$F=g28(~]"7Jr.rb2&{"Erf- f0*VQPm 1 &atb{{ψ)uFE͞1oY7JN)MK97N9.YM  Xr# Z:"x5ME{)evR Q<K3Y%Vt~Ukvs AR4ۀ(kzW n>-L2'cY^4.c5b  P#gys^'x?J|u"3>e~/+?"7.'B?{ ۲GuL,9Q۶,o_8|c?^E#oӥ/ɛ̪fmc u]3 zye`S#‹V4-dpc;!Ge%Bfˊt^U܍\(r1':N- =J_ ?3iѫ\"1]ߠKr$A' L`wdPCgiK@yU71G*leIYNJsҗ?''~_LxH~RZ%'}6O[~~YJBLIJ=w@!y)q`JCMi $SllΥgx'8\8^ڝ]1ۄi"A -;?x8l>$ dct FJ$ex␤UeYp \z%m2$q-mѰDpmh`x,ɻb1;q;QɉqqBԒ=)RP%ND*dĬ@/^N8A>$!y{h!8Uh.pttR X\ckkoyKY(DA b3䝏[>8|Ha)㑪{Q m{l{\}yW_ƣ>xX!W^teUti B%x30:еwqRne+ d@>I_>~Rjbxg ;Gjy$Ss/HnӋg;6R S'AdpMWE|,ppn Iv J?އNgdoʔsN& !|m[6OC? >5 u sbl] uF">u#2( r$JCuWNwBA{[X[_ow?_7= G!HՙK uWOJAdc@6GaJ- %BxA)>J+FK(Y-%Fkʢ0Bi})KQݾy6\߀$t`ЫoFƒ'}! Fe 'YJ+=gQS#uP\ 2)kSZYWrB.Uj.DdȌhw#G1FigfǒїIe##L_攟=o웯7'>9Q_OB䝠Bile}@d8IhcnjA|}ɠRmU خ Egme@F#~}돾no`%yBer,FdJ œ eYI>PԼYǴַY/>sצ`<aMl8TՀh-V; 9{ N Mjf,kВ͵UflﰰӧvkAUwpv *Kp {GqA  tD"HTO^21ymt*}ڎi=PX-G)Q i!Tj, Uhl@B ޜ#@e PD-dw3TqZXz3wbļgkusNIgc3#LO?;e}sHۤJ)iBr{a{mpEԶ% o}?27^z+WnQ#;L{hY{S^ux}x MՖрḠ#Ah4χ>6^y;Lc>}spm qwR\1CT)J1Aᅢ|3W٩Jɘ $;%:e[J@8wFkXt "|A2\WڠB2PA4k<}FV-`e$E!8}z 39\m^ۥηo"C"LE*yz"dQ2L;-vxq*VrrVM>ƭ>-GUFΜzGNEYe7uBDT 3NۣAq d@cU$1 :9yF*i{cy[PTC @bLyg&Im!Zops-S 8W>u .&3n]PYvp3ib\H+&eeQDQ GUUĨ@2e8*s Fsd EE,-~ow/n]ggs5bm-iPjO;s @jp A)$TZQSVw7F(QQ7 u=?@*{oUP8'| IDAT$2ZL'm@kIl:(iQϑ*rׅ 5 DM.)LEZ,!GI"ByERd=JKڶ&5W@QRP*Mg@ӱrxbABc \i3Nm5A11FFUhTrxpҁG|/[.obE2fZF#GЊ#G3mK={ʏ;lj񝰟a(8dxp3Z2*b"Tzb-:&^H8Q8]ƨY-q=9.~g~foz1FuZ@kĩ?ɬʅt)`1 !0;&@:Ol{̘^,kc9..ׄ 35R*ue#u'S*1tNVgQEAX,r+ok?z >>>p dO_ed-]EchuK;Yr+J8f+OYML94[ gK~3eO_7]A(}&R=j)m w!W+Uw2\`CR$fZ.U:ϱA?kf)奔&# <JWϢt?(쯯_I=p)!BZ^EH %RFBcۚ ak["u6R ] D Lnmrᎋ( !Gr4.D>Rj/t߶drICH gR͍ul34mݽ R.ɡH)QZa"uF:;bp2&hmD AE0|8|J1(BGO,>}#)i[;|6!SX~1q"ї{109}Ob̢ $y&ّ\`kg}o`:OFm 4Ξ٦(kۯ "wM8ż>OitS64z(!@];(DP>x1ۛ%ws{=pxyǛgx\m[3 ,AInr .O= i}M D ٳ N@):LBǎ¤F$sd4Oؗ_m I~!H]G&XJc!{%#6lmx76A%H")n\|=wN(W?HRr̀|ڧSFS'5j`8H3h6gܸu@֜ŭhͭ8ؽ/=Ea!H_=Y0RBHEi!T]|#IҧOH`)EB ^x.1~'~63,ȼ{Zk7KmbY,X e2αj\ ٙBuq\A.k?c4.O-~7o%U#wkZB$'υ bIӹSV|z#|?89p| LW9%ƣ-&{_w-9wn/Ev=9ufǬK^tqoݚȱ2haYxڤy!kS! W_tF͡<>\EAԨzR kS* kqz̘Ƞjק>(}|8N3 Y9c{OPc1%J%L {*l]o{Z@k (SP! 2(7m?Sߏ"Ԣ1e ʛtfa4R;'C}iS_"8O2\LTtUg$ Lຑ碟G*9RS%V/5y_{slQvxf?UC^φ8{%5y"𜈷=}jޯ` !{Btf}-5HY"w1Z +ןc1Rږt 7_KOQJ1 ͵k/svg,*\2NmMkѦ@@ N~)7oߦ\ۦ༣>3*=$ [\dN=D7{K.c6x"/\ƽwF*C(O 4- #`6U 9u%p~=5)|Iѵ-nBbNc ޜ*UUMG_IJ;Ʀjckku]ٓcXBr:,1Rז4S7LҎhqmh4K[4,Q: I3-Ww3ۀV-% >G=ęG+ /3/CP 1M=cgs-m[';.]sEV8حzG^6}D{s O>ϏQ*Px %&VBK $$bBZӟShxk/v"D\vJ;uw߹âQ w_ 76,Z/؝`} ĞR@16/PDjy+ٮ@=M Aŭľ7qgOA:kzݭ&yq\']lߏ3;'[􁢦iDދȢ{1Eα'b2]1uK , [p5'|Ͻ?/үr+|-o{JH1䝙.J(!Mw>|:k_~!?0E_SO?_jĭ?|Ouōϲ1D18aBg)e9f[>s#ZM\/&!0lcLs8k^kjXHɴh)uX5TjcLځ¹?&Я*} >pb#@PN0F_IvBĖ f-v'2%z\$}lzx$ȯuXe"=z2XІlmmk-$FH,ӘW=|z)>D!5Mb k}\Nn?y* -l, zY)Bl2ٙ:pӂDZ,gwϣ^$%ȾuJH.<Lfԍg8RZķ8#ta4uNPs=ڬؽYc,+ S1Z/W9(py ;;.>`}98 œӧS ˊ @a}cR!# %c]ǀ%ųW^MFk>KJԁ7TZwJIᘡB:/SKLZԴVP;H>]w?bzKjdR34()JIat@*8wAq BWq X0:˃$Rb(($3ZT(lׁ_/^K Gڦ,Y/['N&ȇв( TAFֳl8/@/:sM]kiNl%W!!;%%$V@jϠhÙDƸ\$UCuhT-->ڶemb*9ΣXƃ9l{Q]rҪ"Ξ }/3;~2g,>ݏviSm6# (*%;R& IʠG>l>`hi-Q>S*&hMsOf5D(_[Ow*tP]׉UmֻᡵId"I>KsnZg{&{nf4)-,'ubO}-Xk"b ŘdyL}i_O~Bt]}~~|4NdA<E| -WDB۰>(|募҅s# h( q61锲(u:Ud>2!UgB1_ԉ-/6R$sAq5z-޶llqNE2vgyeJ-K'޽d_ ;kܺt9iCj/F`tqbOH{(DDI#ӹsg)hM;LaΦD%Z2EUԋEwFXlh[) A5@<,80?>8c08YYJRN|h-imed;,X[+-* Z^QˢHY2BSC R;.n~c VHߞ pug><_~|_:/lc b4$o~N.]ئ,4w6ED0Mp~*h=}S(S.P[ǟ}/?y݉泟ɴa]|1i4uw)4ʌ\HJxuZ+AŢe6ygyT\~"ޑ=% IcOB!sΎ{\0\׏'RT9xc6 .\< qMN㬥m,>D;\*B]J)$i!\wGuSMd[iM|T2FQZDw d4p6T%JEB2cXҿ1u%1s :2 _A|Wr/e)Yb%odW#IT$ݽNs@$XuU@#x'^LgS]D\ʿ;`z@\J]H$H\[BNWr`hE9}f5iGH0FO!?#?}|9l@F%8kZJ9sbp0H?ݽcL9{*%H䏭5D:qc^ݵkdяSxLX0T,Ʒ*9xeFORr~]`o'Ъ pH@D_ !%BI;q|~32!puIЪi^ޠrғ~zU_7'y2k7o}G՗hZtJyʢD 3%kzneN&( noy2[vVi_e8Ůjе{S_G.HT t(4DU7 JLm)!zAHUjJhlvւb Erp `x jG :NЋNq7Sg ml9wl %d2a41;:bXρͦ "[9sVIra}t` -`"'}f[z1ʪv]VҔXhT7"9H! ǘb͛3G5"q]n<nx_g}}b20J&SW97M9FK_hr7ou$[uðl+ U9d Cb|dd2pۻsJEk玶f u8gq ú| tv#q"FxƘswl$Ĉ"ADP 5M"6J :ûy35/D( voG>ٝx,ܼu1l< E'rI@ I96BcT,mM83l@yף6|nﲱ5Gmo%,G|<} "EbJ#UD٦ !J(Ѥ^1yļF=JzEuISk-5M:WXug<%NOޗCP1v{EeDvo3p.${ʢ}>CUul_jkGL5H !KYj{pf_WE!DK1pxgY?}yTҶm: IDAT8 ]be2f;$6Cj]CN1sI3}y{Le=1u].W ^H);d:S -GV:>s߯/V~bH0ē9.Bi]E"6k;%h/\,JLUM!{&9T%hZ/jZ>u"1`lKkkvAx5S"#(t=4ئa3(pXaD+()kU1Fr)6hX< xT@i32UߥNDx+gbtHá‡BIbHѠdP޼Ai4ZFՀׯt:acs:BD B,_iOm'Mf__hʈ!DiwGzbbrD+MKTNf, bP](9w}SoyÏo~7[zH\[~쌘MbJ5.Jhj|$[[XQ$;trBANh[NZe.AA8}}3ή1;zoOY~w_ƗJlN@݁EuVl:ϢL*Gd_V *CGDSׁ/}y|bço}?w^:Oqo?lȢ-'ZGs.yO*Ih %}1 AH ܮ)5J$L&1:10 ΘJcc&y\hҧ2$VO(&57X2kB*ht?FWˢR2F* |ቡ!$rhۿO'nw<ʟ}T[Ϲ|?/_f8%D$5Fi~BǼ$;(pvC ؽ5u}|_|Λ0?kquK!  ])""D>5yJ}ZP8d (փ(5$i'pm0RD|"|z==6QI}!|cЫhĻmU6@=.B99WB #¥!Fb@ 5e',ADRcr߫ϊZe e%'KmK*>}Wʠr~Ͳd&Y]1$5eY<;"w6ϣ>Yo 7CRa#Ș\D7賛rY'Vic|X0*k[McO>{%%0+ZI K 8ZS7dxNcBl`yê`m<ЦK6>.\jh:yH`@-18h֒ѠikviD`PҶ FOZ\8-=fCnS*6A>ԉI'sj}3(mZ6e)휷!YvQ#I?g73=<$8ƈMR39g>2rt4! 2tcENG{3pbM2'Fά>P3:|LlF!5!BQ#"uKj#fs|֢eAsjg)7oǶ[ٻ}3>O?sϣ1Y%Ed:khZ1yEAzmY(9wvNiќ5RԵCb0LO4EHM<;kFyǿnvJvks_x_'xh*D:zR"B"I1BꎁB{~E3(u Ξ:Ep37U&dIIɱL78}zS(Ci?-L犽_廙NѶ9Cд-uҁZ$ceGO]g5:b>_C~?/3<{qc⋻oK|ዎ헞`1B t'R:ɻb21KvvĘH Bl!GJ^wY )PJ&&uxz&IpvgEU}!6u}e1BZR[wRomIO5$Sc]%G  Q (}!"&t D>ZGF85ԙSxoZ#F($2θӼUST%!:6530| D!1 i"Woqڄ}ǘ7 S>Σ< 5!{AA& Ř3#BDwm5"Ju$ K*R+}TŽGɴXMʓrC vl4A"1>j"D8@euP2Q^xz|cN p_Wao}V #"YEgdd41 N0Vͬ2Uo<WW}yT2kUP(B٣@:f]KL|HU:!,iȫ ,kFvBb֢I>q]j85}րz4Ye +鶯O;-ˤ+UnUW%3ᤤ1TU !`]CEǮQAb'mugogd4]*r8CtbB,`rĽ=**%h>FGZ]CK,M[3_L)M|dg(-m[ƤF%;mwϛhãCBa۬oqpp|2MW="Y$Cܮ: Dk"uKgX3=<()S{67( Μ9R|F,v%+\ GvXvj|%8+JQﯣg-?ʹ G)dpH>usQrswC9HMDkי-\J(EĹp=w eE^o# C,QŹ0y[ic$ϝN̦ \c # EupJkSb6 Q4-MkiϾp̹pbfݿ[ܼ9źHQ Ę*[@H]end22 y9{"{{*M$' (=kB!e$E%:=!1?}Jv2N}sPV=}KB< m续m`د֪ARnFiGVjZ#xa= !lMӰ^.H1ֿ-GwZ٧ߏ-Jf{{4MG"+[? q[[;~*Qv7ʚ I2LD>@FODEH#Ѕ"HYw(B8Z.j@<8XIFBI%-FIbp%/AŘm>|>FF<=BzdT45]PH͸Cr1vUM+w_}W|nr@9Y\ϛZ_up!e ŅAp"Ġq+7O(KPe)hv^vZ$&p ɔEQ ,x"uz$IAj]˽o6{?͛7'm:NNؚhBexa$@QhL'cP!ѦZRT8/8wET% H>QS(`9=U|/~ժƦH68>ܹ e.28)}L8Ԝ;ǟ|?>=^{}u )K0z ޙg!IVo|ǃtRF*۷O#dV||opv =OH H)2O8 vm /tLH1fU.QrK/.ys>/ɽ!@;7qL =BS /T/X""A-w>Arq0sdRj{O}`HİVEspaJi[HPJm "[X!jfHbcv ?-)e\7vPdH)_{[ug ?{PHqm{QZE\fYQDh Dҁfs}S| @PcL;M˕p2KgE; ҅.nυ)q]Dz2J=;w$1(Ĩ^ exT% r'p()-$hBb)/!nή0F)ٿ_O/&jd * )*)0}L4z7!@*C ӛ|$%RF0tl6w Rx\Ltg{wf x; nY_|M[۵<.ծzjY̬JJBP9<$!e@ D!vFiEDT;gsGWaۆ5hCd RfaiHB#""i:k-q%UH#I\16h%٬ihv+xWs1$2J2" YǬ$򕯂P,O]BU8?;'c=4-,1 M20ML`;$y. =dQIE TdA&6LGc>*u09:|fE{|kNvUYN1 ,) Q*_&sbm2w,aPQUgdVc=hs OF\N$EpF4k Ja'xl"ZT9c8':'ɣT|x4hxRqBu`Y !j6mGYt kY(k(Y}\HAXZ6׮?Ʒ_町(ޑ0sqUQr6Y6vhmЀ&ix%oF\~opN[p[/_gigweV)p_7 $>zdRTG/p||^ɯ#W=͓{~?rsyCZRh,=RVmI+'Iy/y$~!<ƲY7ʒsY~oQͥ+YK\H8 1GO8>=AMŅ f6IdY coѣ/@z EaQ9ζTiἥ:NL(EUUf,˭bA}TW5()Ȣ):sH?ޓ| XGyXX,b/;5:I uiˑ x7~ nX:[}C!h۩.[~0I42#QxT!I|~ YD~<1CfvD2G%'L +cٛ899m[!Zp_;D!xG~پctEN-e0$>Jb!FbٱXxB!ըU!zh]ŗY*\4e:#RTR,ݴ( IDAT$pN)ش!4RI0Ե`Th! \!!E"ɬưFo;2>u1' {dػoq$ܡh/3Luɪl ͡h=Hlxm9R<-v,{ v,8<|w޹ͦB5aFV"z)NB -dt(Ys||ookD<$)!c_gӬ"/~`.v~l(~ݷ' ]ְ^ ~`0ԶTghPReuʾ^&xLoz[$?C2vZ`pI`R2R}Z:KO(+;@l ?#Gs~@ Sh)EK])I_:bihd/,>}C#>FO6ЬPx"Vwe7lҚVXҊPD XmCFJK$:Ef"0 ZKG(4Sx?y5lheK'bj2C=I sxg"%QV )=15ZB%j-B: ->lHtHr*BRSGl7(pʼn =QYB6;v "@>"%2$Av蔐1I,u+win<9f\JTdH7\n2v 9Jw ?v7d* 57C+θ2ô1KppxDBд.6ɄKLфQYQW#gtBIe) h* %)Ji&U~m8w)y] 8;;G4)f@"B`CPy.$)AV(V(ɡ瑣~Yd ܾjEv$y&Q \X#FkJw@|cs+p?]3].9_pwȽ3CblڀuдMhmV*SMI"egcێMN͘Fsŷ] !$ͦtmD #uaLMYPh-| e5#sը=&p)#k%í;h:@)2[o3'x 1Y7:x_4"%^ǷB" wO_WX5(dQ")V^*{;syK1|'.Y/tT BcX!z0ۿ<] O\<ˬ)sQ&j:Vo>!xeUpt,W8HGT\GAL JftmZoЅㆄtɟ_ !8d` B\!khLg.[ܰ u:Xv} mVJ޲echSΈZg~`ύoj2?jЏx?, ~ 1nDT =Az$Ja&tRʶ΅ |BH1x&M2ЮDʢ PI Av8Ȭv !)2ܾKp%IANyoLp! IQQ?y!2u%J>@UIajTap8-2R"Ѣ4H*UDH U,a>]"4dM -"XAF!"bH#"{KY^ !~w [ !VElX!z9O1Rx"H L) bhaE "6(<.Pv{ e+i9YG:|a߿( YZa|Tw <B ,mG(4.6ytN)25KfU14-se'MiBd齆fXO1`k;|^}|saO)!sYLlOADBjc íK\mWy/*x1%^-Ͼz o~_wx3kKQ]c`hQԓ*ݚ=u2) b().c!#f\vOi EnHBedo$VǤ9̦5>D:{0O+2 1%ՔeJж{{r|ϳѫ8?[u-Ɉ[Ӵkb (Kۜ炟(˂+ 'X'sANT돽'b),2'xjrd9)Gq4ؠ-t,1dh}k* UP!`W*I tQ\RRm(Ov-[^k*}4)RY<:Bτy[ `8Ŏl4y6c0'x<_1=l]3as>?GIMYnaO3Y@RqvOEhPj+-3t"^F5o Zж ,rןr,<vRJ*ib~By1yG7Rbh]mCN?^ǩt 3VusYézwhw@?Bc׏9TpAWe߇BiT̝}66I0Tʀ=))x$pD!(ƭ7:#8 )b*Q$A\_ƹa)'50$q|{G=D % RZv`#MX cX-66' sT+! LL v-T1$B(ƶ]jrltB#JJ:b@q͆Jhb+jʴ3fNR5":1SrS4(%!YB"u`UOx7y3D9]~7_W_t-ʟ~m_fQxkp& "*QhV&_c~]XLhǸB Jf f|?Mh&%GXb2Ժ @en>90Zj %Zɞgh;%ɏM셒:FH!ϘR<6YVr)#EI uޣeDv/{"ҥ <;F^PDDo1_8<5{KKYQѢL Ư+%]nwǻ|!ϐb+ч s54r4$ZjR/-n|$ KVa9nԧ^BcN{H6"*M*t<"d^S"]Ǟ٣&D a&5+tR@58gmx`P3 K 2"} ,ʋo |YD1Cݔ(8<<,kڕC CJJQR <Д㒮(J]EGDVX,鈷ob.H*6@ D Q  ̸f-X&A#%*9O@i\P6(@N".XNOI)!F"0#MG)aLHcѕD*:8E ͦkʂ$!b2х5[\"M-TJ"!TIE ~9Jdu_uY3Mɉ[1Bdo;"f[ȴw:wDsx%躀( b $Fh\uK._bnIRj4% P#G:?K{gg> :gQIIltTۂ0Vl "hJns,O^^5$s(2btYJevtTӟIq|NY*b `nՊ6, ӱH\ G #e.K [bs8aD})D&1l6-8IUU`4b4DAS (MNt6PH"L/cߦƬW} `{ ts9d>Ӷs_SChx9mdU.m6-a^H#D|qc P$IŨ$ !V`vxw5'+N]ZѺ;r}iG#l|cDʪRG%DF<0͜;B+JM{ $1 {R|`57n-#DyW_ܽ]=2Q'G]x |[/tYs筷;!Hi1&_)/q~!R E'JYnV혐m\%9~}:oPr7Z iH]ѹ”T,! &WJr:@t9#9O4Ȗ iҡhHRU =ի{^Q3[oЅˏ3R =d1BxG )P̐Uxl[,?ӺBCb2e>ox'8.?n>Le2ag4qVK&\,KtT v94F(GjusWi+*$BJBɂNX*Vrs=ndp'猵bRW)m&HfYhcPxYaNb v )v@G˴V"bQjD )P]r.Ai Ϳz[QV)c#!p)3] %RE.$0J]d~1}ds?ՃP0ؘH R`?ڸDDQI( iXbe T2cbNGfWۿw"D,y񕯲N )%9te7P%) c'>I~sI9,&% P Y_Ħ5* xAbBo^pl6-)Ju8- ,]%6wxykБpC2RjZ>էkA}.6|i-/g?>SPcJЁ Ky|ZRk s׌Oq A1r$E*sV,w) S"ӟ"X海_ d)b@VJV1o%ͽ#NF%=jx|-_?h}8ԨtdCg[V 6-8u.?TPZu B@}b Lg3ξ2O}hS|0w-,֏(S\N1sd>heXZJsT..tA $71|8xMTܽ}%3*j$\?א/5JeLY lدkOϑf\="ZbA ^&BLI"4ŊGX$nPU5BeQPUV%Z. >l!S]3\̒r)s  >xzZJMV"/Ak7 K/!TbTOh.G(#p!w`4{uc̗-')x_-^|No\jC  =oߤ4+q}c D-}+>ƽ{'1&Ѯ?k6|b4u%io.{o0W;LXŸcyq &X4-$HSf{o=kZnC#>ƭ.2V=˓W.JbT0E*h`5JV$g??')RA)Ė3_3{<ȇpu&K/j^>`ƴ2M4: 4:qws] fb<)˂z#M ҈5/ž>r<; t0"%EqkĿO"wL}&`J+6~>Gf8_sk,N蚻zĕk?Aw#E͹:s\565X!VGX/yd:.NuMdĐnGh סkޯ.$!BϬƦI o'/ PL#qAa$H@ t"BK- Bh*jc[1v5V$B]"4h$6.݅ b$=#MHhw/,,vCrPd0 O,ֲִ>jX,")Hj%Ye)RGeFH#c$o c#itN;-ݶeɦdQYġHY5ݺӹg{1bIK^ҐjbV> I W()4ꘚldS t4E6yr@؄XQUl 1yVs9^6 L[S9J+J؃UThyظdSae\sVRb$%:܈!듫%B7Eb/ݨ#O+Gidj!A4 K PJ\Vc\FL.ٞ0݃=΃zNR)5rmM`]dwaB֌Ft2r̬,$p.RA2: a{˩';K{ l_'4QRgf+2x-ԂN)ܸa=r"*!D$2:6AՈ(*[tSO34@WX07!XBl|IOt}<(L_bƀ%)GRLI# _@gСvMJ6|(L$%FJ|4p$R"RBVUyIwKH n%(h{Ü2 oH$@ { DBb8N\Xe=sT}rz~'3%LL:u bL*ַ3$^sYU,LJ*2dI#[oCUzbh1&I,NNƱ3-67'H(KMb֞<1L|;я(PRcyWxMLɳfdct^p Zm :?zwIG2U?Os>)\eiJi^~m%v3(vZMKԥcBHE6JDž%50Γ'N ifShgB,U$ƈN֮QMĴzR znGcm0 , :346Jμr׆eeI#D$Iϓ=ͫՋȤ`6ȳpAIt :YSXԀrQGd1tN82&@:Dk ۨWdRbiDNrWb9፳qÊr\QJp%4+j ;uh?SG3.mGN`SPȤU{< 嫗'?J?Pg~r]ƛb\MY"}>L,RZ 8[-޼xsקHRblso^ӟ[.Ϡ%~riwub7$s]ޛ9 }^ <(O,\]~?^i\43T)raf#>x#/j9C$1a,2\p79^7}[_̫{Oh +~ByHR+wΝk_|-NXaɀS B %"it[R9rɭFZISJ" q1C8'$jCDQ2MI:22c޽6od)Nk6w7iwHa&I,/}1)wY HU QZ4z`H*r&o]:2 27dQBxVh4mE $yEP(@ɜbPŒd+Z6 #Շ2z?{=ςz^Jg{=5EZVhmmCӢ(rʪd6Q VVWIHO$`aJ"^i fy~ku插L5;C ੣gjR51z2YW;U{=}3Ȗ2QBB+& y97 .&7)$$FO $Sfت$&%"o%˻؝TKXO7.콭QM[xg11#!l>, 2@~zow}Xz~J!Hxܻh>JDƻ#ο.]i">&BH-8p8g(;`,8RuN&  z9pJwrnALR̦9Y&FA8q^=[-">xBh`KbL(0DP }++39vIQLz2Qk7_O BikF:Vb5"IĤ I,@R`az2'F_BC]\ŋ~>^A]l{w;̽BCԴYɷ_{=(os3&EnB ᵋ7uǹ7%îS,ͭ1 +k\<Ϟ}<\B(If~yw?!n\V /08|IB&X xWsR$9Ә{.{'."Er+ef*86O7ٵO~K\Ԫpsw]Hlfh0J7_Ӓb#L6 4=R+BsO4TQ3j?AHܕ08w{`-F@at4@a: ;NmW]V 0OЉT@k9g=W,CP e:P(]UtZ;'⚇PHyM]~/"laM#RR`,J7#sDQ[ !`2H$oTb2~җr ')T-3|p()ITbn+6xK#)Tjn#k J^} q:KLʊ+ ,!\:υsTj$|K*ɳrR|%$rF>Fh6Wx'=5Sֆ`Ak OM Ng_.S9thA'(e>'Egy/+BiӇ`jC۞vM+eo[F'qC͝}B*H"Yf)Z B𴋌Hz.Zz.pM6QEKHM*1Ӧ"0|h7P4ai4)6ƒ()"&$O Pg[-lDDl22ΙWƬ"hGL֘xwG>0/v(%eiyvu+;Od8dkkU9e>#e&B]@*&x%upg8.dy &z|@"RXki z]F2%<ȓ o>Q4I$&R.=Ivp⶚{R|ޣnR\H +V3+_{Dd iBnru6猇m]̋Pb`Vv%õBn3{0>zs|hXZMI""xV̰^d)P/z2$ZF#b+oMH-[Ejdlei6L# VABN$UU%Nt}$%w[?#zIڙ\]!AKoO=p䨫@7_'7K: W?%RV"6ǧ뛁IjZ-(-7捽I):EOnr*gEHYUS䎥% "$(KZ)Z*}hT%,m"7[|\pt\Y~n\hK+|9RV9+\I浛ym_k/ԁn9lAiD[>Ji!F87:pWOޒ;5pXєeEir| s5zZR X´Lgo]k4ﯯsUvFcfSK #iJWքik̀wr̳~$*(0$$+t }_;R&1ҕ LfԶFyX]$/sLWhO2Xįs[6 %!ziiBP M8ګQk mZ"] T^&7|%Wސ-lr(ĂOH7HK$ƴJVnn2T> "EH.2K4Ys}rsWC7"`QwFJpHe# }5@|l >R~zv6HMQ.P4?YzI&SyKg^jKׯ^aw&HPΧ  U|`6HcC`g2ak8d4x&"FIP-*L2HV5-If'>Gغ[55UIR46)R4S$ʚqa C`'sBJD)if[IަHV!Z ZLg-&\#[OIQkc$.xHV{@9*Z!^F94bv#&-~YvCjsd=ʠ;Ff|2EpxwLPz p>KVP"6,p}Gs}AiѱBD't_A9>Ҡ:^r^ G_!䤺ӧx@M-LI4_j~hE8gm-?IV;.d0K>Me?qr©/|1@M|;E'N`'kR0~&c$˲[?/ &zGzn,0`VYL'%M݇ TjEBF$Ts%[Pd}~w>dݏԧ4'HBiaα]AԊP&H1P0&"%$ WIc]͋>ϸc">y-ʹƅw14 1n3(HIxOLҍ^"Tc} ,h;*q»f IDATw dm..8_aj 7DTk?8~2I.^ķ>kXMb犪*]g5Z=EOwm#ȓ钋) /|sCSS _KW ~ʏxWȌBʌգ*o' hj_>E"m2hDҨM$wx[>6<$ )H$G?C &W0"'& dFJ ‡h=$%(R<И,kXQUS5+`)[x,j[P+"4YviH 7ڲy eRL&=Gd-m䝂٘nߣʵyEHThx6lCT7cMHJbciiV2m [9ƅf`+L΍u9{oԳLk)=2cK|jZ5}f[.7{ロlhUD&y&vX;&!*lBoybc:Gk;zv$q00&c>/ɵ(TucP,mБ;ySd`ptJxQR6"HZ qB]V"&[AErGe$-ι[iM`roEmj \@&pxX宻3dAQ͠6H!݀ҢUhUs 2͌ʾ˂9q}.gLm uD.EB)Ap؜2mh )4P)1Y iw%;MtV0j\u>!t$TրHґbo>090-#aM^tɀi e8Ga9bB(!3C!E4I"i*@0TUže:" HH T5x"RW&Y4E({z<<'O,SwQ)׮YoV|ձqERj]k)LB';Ɠ[jMF Ye%#M%&w\l.4""-*t/rQbBi˅1i)n5GuZcƠ1]'; :paYد#z>&Xr[؟Qns_` %GZ9GJN9©[d1XgBH8Sky/<|LΊ0ܹA dpl)a@N.w?>=]}3;@D]Yb}w rO8EwsDΑ:%sׁ;\«|3_-?c<K&Vl tQ FȩN1U]hĀ67AxZ#FSms@0`5fH1nELGDژ.IV֥h+[[P25vfT1,AT#+t4nc2+dRRiƓ)V&t"wړ'Gn4V$1T?\/@?GK,v]m)D$ Чk X;=6iV(#Q!#dR\D>"Ej^RFDwa̓dIhIUd *P7 YH\GHABF-PSFO/qri!ç-os<&-UI|9־ 0q91EB &E kImAXڱE/]:ZKE' 19DhnH#zxa)$gؘ~'ɢu?$"(S͍x'C)η)5xYP gtiݯf#œw}gAh7[=?N $%6F Aiъ6"c0~jJH­t<KK.aV;6wvٹ~5d\9t%[*x۬\E fv+\2N$0"F㼣QoXڭ6;Cv;=u7:/UMaw<'å7q"$)ք CgmR|Z6C*68}JW?:}7o#/T =hӒ [WdyHPhCa6tXbs8$v9`v 6Uh/H$j)} 8@cy`Vy\,n?nYl80 `wD ISds8~b!wƛ.bD)M\m0FS @m$^daH5l;>6w8zmɨ+O(dLZHs50Df2|$դCCTUs^E[ǻ.+vvf.`]ÌYB$ZO~t ER@GT9N?>!6w Ry9*5$R$Ԥ4g|_TkP44FԒ" qcJV1 It>&$M<#fhuFDR{O9?z o.0gHO޸̥+S8߇2FwǦJD$#EKmnĘFyj@.iH)Lj$.4fؤb%}HMzC o" Ju ݢ`<Y5xbĐ-/Ym!ddY2Td$--h#;tРhdnJ;S]چْ9K1T%R2ӈOdfd񌼕a[[D;$9,p`U0ܸqKk_nsytw& ոjOhD%?ϾwO9ryQb<.O=q?-՜+z4%|a dqt 7Ȏb-sp薢 Odd6{O3"EA5#eĀQ5C>ZSVsbq֒H&I4 *MŽnrMY-7b\2g3dێY RS%" <,Q 56`:eIa믳Wc|ǬieEL&ܴ"Ϻ5 YIf/@?ei :giuzԺdbf:pT)F B$WkY#f*))\Jt ͸aԑ12VUDKT HHPYH{ GyBJI@,Ҁd#I4*=u:%!d&re$y^0*\ٵʲ*@ E&,gui-b\qDVTDg*eMI6Y1ڠ5q#)"Saf( C˜q/ٝ [c PQ9+kjQ= 0M:$EѼsC,Wi%TMڣ|9uxѧ1Q-ls" [I5ɁQE޺S=A,HB4L75}r]PkBI[TuUi35y>@]?Vy¦׼2E nn1(% NMP{.0ئU.{hޏULGvl w "Q%2F:S;GMPEBA}\vVL:jy zpsk|NX!kw5|*zV$vgtN)%k+ CBhMVCݿ}SCe;Y\*C)V>Ĵi#uYZ^!‹hyc~@928ȥ08dcw̥78-Bi[^Jv(Y7t^&㛚XZpA{f [ۇ={?Z(@"@]P!} υvym\Z!*-i> (-$b*V" ,C\ӂ$HQ=")GxJ׸asao2J%Dj)&dDHf$&YEi1X-P8.b}b:⃤BHB`dc9K9C (\̐4d J,o%vwK rn+ $! |x !3\hch ć53!%|𷆵R7X:0I!;EE-;М_!KD!R/λs8J>,6.Xw WEb?8 EʊD5%J(JUft8'׹K/QDd<}ia)X-gMC8r*99VW` Cv@!tijFil!yZRBK l* 61:*QChRN1!X iw~FkRTpaQ&\(DN+˒`BsQBDBgSxd$"~#>GudzX?N2<+E3hc6FP7-rIllN(ʕ7>OeBVKf{6qv,7nwYy4x̽11k30Ģ&,31ŻG/1OYYLGjH2ns|<'O=˽l,!*bͻM7%CO(jE zM6"uEJH|ѱkPq(\zl2 !%"b#jDe2‹/rZx"O>64QкPrNy]esJ)E{.JdɏޜdÓR\~yQyy~,#%J6qZ$)jPjwbf`P]Q/e`2F`<٭G9Y\HT2x%ͳ4VqF ].eQaPEUglY6 m Ѕ-JIAF0`1os@Bih!Kks=Z*T!X(1F`S$LDt+- V+|C ] )uxp16pMCm*Ƒ_LszO"'RNEBiEH%/Hq|bskCIKR8JMUf{j*w*B G{ZLh,$P.(Adp\S hmL @ȂbIYHpN hdXb[uhV9]U"ʠ #x2%UY 635En|4`B15Z!x~gK]x]%1fXE\).kkpkmA ))\ƆLKy:U‰N4 Ѓ}!b8*'??OWƍw9stDb6.i~n'Tj(s4Sg9}9X.N6~=^k|+_Bѳgp[lN7CJ ^jM !]COy=X˥.*υS6dtu^:Q{f< >]jvқmosp)^G4}̯$1=2#y(?P (i}D)aBfg>ӏ=(iC61?.3ܡ1ҸhE5!99ں՚C։11%(Rs@*T"ޤ 8ՠP$,Ilmortw[_!ČP2kt}l(J!H84;H107gz|Xo)"'ySKѪqI!x9Iy3$81ztiJ}#RiHBbDI*cD%r:O?Iei%BJL+g'{G3( EImW91e_фժ6Zz ֜FD`6;""!;Ma:0,+xy엉c* ECJeEza5vpf>UL!n1V V:-9^=TXjaf3-4X;( 8C C%.h63$qXqMO>s7(jFi O>Rkp)m) b`_j>Ȝ(X31;g:Ki9QOe)5*BgK U Eenyb$+ĨDt"Q%eO WpAKoϏp&Uu@ʂDoHF+\Qɒb uT VM@P )޷z@ʄu$$BD!}rm9C BdXY#/P0& t|mI]B1Up8| dP$%C2M7%Ckv9=Dg\߮ <m2 }fr+ˊvRT_g?oyI~ IDAT$ "2XS5/8؟qfs4+PUGm/;\}-R.?79'?!J泈e JuF]>֮Vȵo޽pXՁ0.o`lWŔeReBF`=lyX 5zp 7>>@CE1XHI`CKe( #IA%6-&|J_h*"Zn@$Jy!cBFHpEܥib$D JIb8.dI1E%2AA 38m J^z%jLRxQi[r6\<:--Aĸ ̀jP9G䍢To=SvZsجXVn(2u򶐋h)u9[k#DqFF1i)Dfa申uے"xF%)&̲/R" {C6fxdfY̕P2{}T5q[$t+H~ɵ/ sk3eR?2b$@{Hٻ^,qtoA5Qh(cɔtPpt0[|s/S{4 @#*jsJ@,q0wë M =J cc1Zu!pL92)(XZB GcFEI L}ۻ,nbŹMFrg˟`2,YsGTQϑ`Y‡gMtgBkp¢Y0S%RJ޹r Iϱ}YmN)LF:K9Ѯ3@Gᮕ"tHT/D,茮< cDW!6͎XVsX5<ªZ7hb`LjŻ:TZ4&)D06ŔJԭ(JH{Z,ܔ=Ұ\Xf&K$!d)KxH$"&*'1&D")JOJ2"B j\!ri@rL DXhu%J8+w퀈)KZ⣅ qֲ\Z( UB]Ɠ).n3n\<$(md9?dP 6H] .h~;87A/K"'|GwHrR 월">J%%A)Ei0eK%!!eBЅ2N@v!ʲwuֶX~HW}d~Ie޶ms[s{ HHIYMknݭc&1B, u;zd'3ԃ?` {fPW#0:0㤿=Tc ,1 ;bNc72IbxEjĹ \x%]h!фx鎥Or!cBKk)f?2%HJ0TR2EEG:!3`B; hи6()H.G!̀Sܱ2%&h3`GF!Q .OZ4|-!G#7EM4eR)pW%8XBhO$yn8)D4R bA>2 dRD"vE/8&KA);PF)eu  56zk(BY&?RUĔ=&R\3Rb?,nNƷ9 uRvHJĄBwRM^3 E1r4zr 1E8'!1(L'[;S,pkP=u9[[y[R̸v*(`( Ɠ J޹q_{ 4@骣Q AE p=lN6>𳟾9q)ݽNi]9 #l˟yG/=i676rd֌5@%y 珇.fi1{6|IGadRLZE$)h ir<ϻha(`e#Bd9oVh9ZT%:V+"F:~S`2(ֳיj1&LdrQm#>HZ 8o1@DBWURRt9)Ib Q8 V+R|PHm8:23C`w-ܾN w, AoV !x!'7Ml!h2Xll60hc*rǽŷ~#kަi ]jrs5"ib[J'X/o'e4O>X=LW | |G2i4Q q2!Vsq6.Xx W~6)Eg* Gc)x`{'?aM6y-_& *fئ0޾M5ĭ(fW?{.k7gsP1֚[lo1?8`wkxi'q1xƠE6%Rljvw/3OGٚ"d>{t6H\^TO$4ٌcQ$o_}7y+'/ f4˖Q97?s>[> .?ܯV mhl$䥵Rd DRtYddɄ-QHŀ*ADwO,ul$a2#ֺޢ .fj(,r>5f\Ż&_,j-|ǩʈol&_iTjFD\R Ïs/wӝpa! Rmk0!"JW>)>NPf?$#!t谮!( K()5*K%a:{h,cz5Yf]n&-I$|pЛ@˜ڃ-뺡B :fzɒV%mM{m-9V(ڠ   ,: RĘCZblIIeMXWJb'S 4% p1ܸ!{6 RYC~W6/|-J_"EO ~xIA;3z0g^{yg{5lox }Ӥk(zWqrnl,^Ps2u̲o|4 u< N1dŽ9.gxdr g]Dl2yXHB(`c^}^}֦[[H%* ҄p() >sg4;e`H)D@I Zˁ KBY)YÖJ/=McYPH4B%;ur"wuM1oF,i MI] yd)DM0@. Z6'[)ItDUMkD"ƚ6-hgL4{lm0,G Jjl7TNJJg-Z19IP"JS!s@%Dg JYu$()&։"VLH[7]ȣu`ݒ#tlndb)rӇ}n{{FɎNJi?'Mz' FEf`IY/ #kf wswoKϰ{7XH;?{n.vN_*V^_x?+ÒMX.I xxP2Њ Nؙ3,;C-H'+,s*[v77y駙[o()0"D3(F)Ae4ۛ8"4ܺsc9R֊mSTΜ)TEKXbQ{ZF#\`sk[{q&Q&P{LJܻVX[1l4EmA< |_g{4>f(U0nskuoC/Zwcʲlr.!./hzdqyrGb@(^;JF8"Ŋ;rtp8"R sp%&*)LAѱL$a 12$%rHqUC b<3ܜPJђqKrd,4ee0FSaU%)'VFl$c H\1D!4҃hx姹.S/ekC'%|58 %\N!Bw)kd>Y^@:sǶnAQhʪdxC|/=! *"͚#FuS3 +_~GmPTsgv K *֦㒿[/=™9.[5Z# %18 Sad_y~ *Q3V3(+ k 6}P23\t=3RbYu%$%PRY!;~~;ٛ.h6:I=\2%nr1}gZF@@}@ A9$:-RID"[RD=B$r0qfThaH11>ZO=<|TGX2 dTȨQ(Yc YV٘ 6~_E*)`8`R֞e%dfId-  B&~>X0(-*!c jd6$Rw̬ )HG) d] %$2)+DDPBc{O\D>@(P 5$A Rerj`L" C4MkQQ2c>xOP %y[7_-Ҕ,-?yU6__/'UX{MXpG>ƀ!=l| ȓ&{Ҝ8?v ɟڽd#1xQQpn1eYbK-͋3{ߢ{|ӧxm}m|돹sB]sZQE8W ٬7=.}|3g/g  lmخXQR!3mL9?w8x6 ŵ\xqrN!Ҵ)IVMøB-AV5`.>KڿAPǟx/9R  q8_0-TeŏR\5BpγXH°'^x_|`sw \~Upfs:F ƀ"wt{3~.NTtqxkWʾ`152/z1uR~U+(uHQkYR)9RFƓ#U)gLŘ锲lkBuk38ZHVˆBðTF(E"h"D-A3dbjѦ¹54v5Q0pβ΁P95H%R>g brk7> */>ɪ S`?a]Dkg9}ۜ>]e`}q7np8K$U q<~i͑gX*N!R6{1жvXq19<8" \$9^JP"VRgfAH 4E7  Gm<0'H i*KzBB $W?OQzтj:'w~m^{Ug4Ϝy# ^ l=(0= bsoh'?ϟ'X2<1}//'7*!u }::>UO񀜇@_ϠQI z/ vȦ13.lOw0;\ܝՊh`/n{u33y_z~$p1 iZGmE\0ZO `!NՒ>B\fqǪor>g=%e-,!XٓsimR܏QǘA;]j_baܛq%P?b 2JUq .<2EPst׏Ƞ*֬ܢ,ZlZU\fQZt\5EP$" h9)*Ma #), %Z.5e%(T ]׈~̽ uòkd`ʵD2~BGLUK+%{Catdx~m)L$1ouY.B6I){,+bhm~=ckTJp߿'u( A ڦ~-zVԧEc'oۆ!;f[5h&x|hZ>ꯗL 1Dt(1뒵|$Ub4\͈#E* sLINJ:iD)5唜=B ;E^,V@9CGд5.DemD:tVH/hY"/f`؟^CB@kV#/ĻI ydxwx4;gW~? =昘aTJ%&q̰dF|яf9T^đÇu:SVk\jZȳt0/\VX',Y]Z vi]pix2MEs%10 H!Ѩ6eS(`uy"ϙͦ4ܼ5*V8uǏd0Za}(l2ﳾ#|{i-"}s4 0/Χ߁`aa^:37g8mtaGW,  r|հ;,M8u~ ŀJko"I;p6@ ܸ$h6D]2Ѷ"OLc2$x1>E1no'lQO8sb}C4v_|-,H[8LNQU?hᐝ R\Ÿ:kY[?ʡwѐpc%|{o"e&ud}#%}]f{o~g>_IwG$ӞS4d tI9W^_w||_Jb45;(hDzH4ubZ$(lQ3OIi>D|磔jnH9Edjt=6]W?XH휛υyNj{fq>s/i_ h&b l#I4f*81Hj]~ʏٶTqD+6EFn Z2iƈ\kQ8+jym^ovygi5qܠ1䬗j%R Qu1e)lu}˻q޷ t".2Qԡ%FoV7X% N:eR,t]BYJ]R0`DaK<>so<)%Bg-38w-xix~KEhcx'޹%0! BKvןquO2ㅋ/Ƚ |EGf !!%K%.jS_BJIZj|'¨s'^Q#A2}o[5$DMIj4 AyHJ+ tI.KjB4O?)o@(C,0 %eQGSU?xg/n~]ы;Y RZJ],2PW;8!ٟKť1YG?"ۮ(a\YDp7G+,wϟ!?1^5ʲ!Ì=O<Ҁ9t(͵5\ٖigg{u{5T9~[γq0uf,b봶f`!Cb)T͔Ɩ_ܸZ^µ -)&$kMHEdo=&/ ˆ D*fwgƬoMpcG܅ v+fUc޹x7hDcpA'Z[ w |%T(D)"%S,p=cldR }暡lnryv&cM {t #xqFgu?6yŐح 2%imSTC7_ڡ4%mm#F9DWO.sϽ'Ȉ< !& M>4x䑇(U}޻(p.G76 ^Zr:`yGp5ySUBt4@m4967v- xߐXZZg4}-V Ns/_b Z] #MJ >9uy\Cg d5p~>[:r^=ϧ9rOpIξ/t{Yce&=?vQ%ХO]Wv.-ϵcn^ [QjXg R6 ;b`q.ڜIL)!Gt(qlHs  X ž72p(:PZz΀̋5ޖ4yyebs~-bi[k-M]3]xK 0]l@eې<#yl6C,@OT&d7՘,$)>K [l8 CwY^%K&ٖs#5SGy/?θ{-ܼqbdohU4F%y7Y_-.Yh="ͱޠY)%l]MԴho3ӵK$Sh1y5b"J)i:o獒d?rw>D鹕Lb],yBW?zC^6ZkHI^xqڲCh Y.2N>. _Μܚ_9/=ɷ~]fJ&T Գ}\ߒuC[Do >?5vnɏ}[)hlbFkbgFo+=FˣnG[7ɔغͬQ0*lr8Dg9AN٣K,ûDok=dgwބ!&<_&Ed-{W$DA9Xq di>ɩچ 'EvI!7==#MQ2 (?@m,PH>B4p2M+~k̹w.r#$JywjR؁nRv,E)Y֕|`hĜZHM"*Z7/~‡;ÉcPqyN8o/}Yeijm-~±O>#qkJlEd4"HO=ի׸~-i R M[Hf2ۣam`3(AI8yRyAALkfshdEVP5[7p+[Y!(j؟VDc댝Q3Y:bC x d:#g~\٧ded]Qlj_6W8yN!ӁTBr.kxSH7yC(de}6 K(-SXiTɟʶ.EtZ*e3wޣBz"!L&e9@=_wxKܿg.Mr$cҽc$81OYQ%r!,&}b Bv;%kp ;Sk0s8hhvX!"K8~1#䮣@f`!4XcK4 lB lƌg4{D5*Xo2<[sM6+j_o Ak[hQH"&r1hA  \ZM!UM)AZ~g^S h%= 6=p黋(]w( ,?= 47 5Baa}ˁ %xkp>` 5U1YcQT-X.KvwhSE0l혛{\ul.r橧(kǭKk8}y7~g2u32- ֡n[n޼AQ۶3=M+ʜb8WG|)ױ1c{oB>EJmh !`<纏hm8y ,rȍ=ZGOͫ Z0ٯRKeDR%ZʢDhw*/reS~e9$ڀT "{7P&qӶb-R'gQ`N-?Áq>AZ`-ι~YB窸|q/ڽ_G֒`g}ǻo7e1c{y2 qJ~4Es%"'fRghqtSPìo,u %6(#:Om| SN 8.| ys =Cb.KRN`IJ.BI kjCi\*` KgB8BI" c tGí)T\ IDAT @?u ˲I<Bby?Co",/.֎'X??}DE S3Ir͓zyS_=;`b=HpFyĈ-%[ynlyy |;Ҷ-mرg<m'$3IkaM[x o9wCC7m6%lǒƥ03W>%VPĬ 'b$pЭwё68'Ā)> h2RK捙&vCFxB $6{wmƒh%e(1?BEk)҂2;T0a1[QT)i%U<Г $D@H*{9N|N J $QQ|c_/'dK9ULT(RI\m!]iMVaSbH@PbN5q/rfٯk`0HFLr5Q 48"ı?uVZɐ> l9Ap`0H4)̒e<|C<81YwDok* xcM,2T ENB\M(q ׷.sjE3>CGp[ oaŧ>$ǢF;ZJE-Ėi[s}gӇqf0<p}:nYXa{:k.\2z:,(#uU{aFZ{!eokOajUEsc d0*A@Qwwh'[^aYn;ǣO<Q㴢\]dyβdIc~UՐ6>K ʴ?eF eN`]D봍i- DadB"U]3( R{ 3K[ogfPne;\ڠLpXp:K` j##lY|#:~f6a8\Z2W^;x(?~9myjIO_ %$;wfݔގw*{ H)0wIǸA+'8&=Ο>7YVF%?~U+i":!ɞ#in7OX["yV#E*E5Mh^硇Op !Zvwl,iJ V#O=u3opksM<`{ePJ> @\ XZn:(c0XP |lL1:DfЦ>yGRy3G7NQVxWu[RHg3Q9btYP(qw0%yO ZktꍾV] ek?ccJā ]kTшZ._?o{;Jp>0ۿE^+9gϾĥ+{g?&3ח.5A̦%)l@'{X@k}z~Gvb~7~Kk1l Z2]5^7~;Eۓ LgȮ ">&nUUf損_g~6g(Vd.a]R7I_8P`E)A9TNrbRCtx-*$ gݛ[ )hV(!J [C* ?mA1PͦI$!'JXN#DW/ VݐTFaLQCf6B_{̰hh۴h "rؑ3M=k>cI/X*\} ZXo(ɎC Ef2pqF-Z`<|k4` b){Q?({&ܝcx_Nrl@ظb1|>.]iȊ!nPRz]"7Kn"=Ny(RB4(ּٟ9Kȑh\3#\4|_~%Z$tJh2JvY_XgYn;L }#O>`Ħg3xjLF a(௿}Jq~~ߺG"8pMB0LqupD,QթXZ~umk[(Z+uk1yZ]dZQlg!bJmˊ6ȶfX *Ng͏9't,n_2/ s.yU"Lgu&%7naD$^k%mp.tFTɍĶ t*wT\3 ༥ &7<р&2(4s 67K>q޽p{ݽ 5`0>zŵS^xn bc675e!Eo=;;h?:A =1y`YYߠmrbIJ?$9Xޥk|oÏ<$ovγlp'6&?z2Ra<'%y1y|es$ mht 7-C^yyb1"Lu7"Ό#cə{7) -H-#|L)\εf3ZǺ)$9!t)}"B=]ǧee :mzsc VQ|H湉 ]| e&P bOYD(:ɒF6q5%5Xmk[rmMt*k%N(F'\РBdhKH!Hed,f4ZQK $iۚ=BTdMmw(&ށ9& ZoqdEWx7F-]5 h!21*CEƀkLvEAD`R4-64-1>rM~ӟ'~ A̶jν}݊_cgg-!4`P$iyN.BW>)0h˔%hM4ΓM$j#]jәFvgL N!D@kE,PeTTE򠐤{m["\*i[pK> Bpse9d:L$HӴB6<AȆ9kSubsg9 苑m>qNIA6 4霺^? Ր`&8ңunjD@<`0N.[ȢLѵCtW D,2J o+ BDR8!yy L O~o)1QJ 1mT]bx^N=i~e{d,.U#ɕ@oB4gɤ`:e8*(7-ley8#~PSmbe ?Zey4Ǽ{*wYhi@5+Wo\1 sϢlyn"mgg[%q.];Y1\)e6W%FX_h[I4)L68tb a9ZmK&RRMm-"$jȋȔsh}}G#%^fNd<|~rC._w̪rf7K-լ>EQrUVWyh]`ssb+˙f[?xwU@ĵ5R s[vhɳ}c$U t0gw_bmؽT/Hh4d<%kgk'N>4)# ]=x퍷WSk笢ȀHZ,OI^Q2"0&#WNQ:aCJK^|;V$Lge$Ά.}UI4*4ŋ|3NK1v~V\Ek-fAN'Z`=1˫k̦u MLjGJ ε 4J#,x;~+᜝k%:O&K? MM~]#>Fbn:EG?wBǦrꆞe)@*"HԜ |g郲/17u[Haqiß22HƷ|O6zҜ62ÅKYZ[F8i[#"TIJw! NrNTk4%_`wKeISDQ&hdS?CtQcA,hm}*Je&q!aCK|,ZtxӞ-ae5;W?i"׊5 ۶4\1•5w=W˚iR#dg&'hgFDh {L]f_8M@ "YV>M^h\ (" (%8rΘo_1mwc9*QQ@=jsQ%e9d{{7("1kdDo4;1ǔÂ7%\tu<,GgڤnlV C"Li2z. ]d8"xٟ55x[%;;k+-y|3B,(E Fwilt'8- i[KQÅHENP8 H&gGҳ,,}i[, 4PjOɤd*EbsX"dYN]Y\ IV04AiCf vnθzy>$>ûܤ|C<+q$won\ZБemM '/^dyuf;w(U-xm- (CitQE{Y >*++w F*e>d}unX]]F 'OfK/ QL3| O0=Z kMkkNq6ZN+Rh 77 92LkK If+VWYR0{B ݩY*%0sh2 Ah߻ʓ0UpVKY (>"Dm̪ucT-8՛۹d$QB'Hf*c@'fdoMT./3%>Ψy܄=׷=7x@&@]{E"ޥx{f/Sϑt_ -P 65e|ɳp9>tMF's!9EIvZ0›'_6E'~Ǣ[dZcjHLK$3 ɠ3W"RhJQ%21ɍh FBD逛^ )hl:Jz[\fqm2 ;=Kh\1:XѢ_ UBsmp>fE}5+Wc9L&iٙL@bg}ߝ$]7ms}iɊf,/+|Ɗ[:; o=Vu5uCRG6&,\ |tLgd4$uBQL ~6P|0 Cұd׆t:u8 KE];2qQ3ܾǢYs%UyR_Eg}Ճ2yXpqoc EF'XOV#]ʱPfiӂ6ym۠IvpvT%AhiϦ\|e͞,r[-7 H"š$j#1-=&b'43lX% vZgy+<̀aU]uޛ'Ь6{)o ڈK['BR{t]&1ew-H/Itf0J M E3 TK[7srrYRT BirBHZ@?e6L :uH!mrTԴ] ZGL|~" R;Kp- %"cI]#t]KUO 1CY!D!\!]D F@'A'hp 3te:=`sdooNӴaqƄ{wGx;m3SUi*x9L! b{gf?g ҂h]v6]>>=gRڱY#R|6%HPGȴ(V<{E(Ϙ/&oimd$-JŀV:'V7~#< X05mج4"nۃ+76IL 1tkF$ CJ(p!deU|OMa,H=l sf Bt]RJ&kbh.d, i RbL'f+׉I[/՗dO H"Q1_,,oks(J 4R:& ShKպ% .*ٻDhApi\*Cſch`j J|SB`6\UG SMtl>ٳEjσqwy~sn<ūgc"2#U?";XPg`Řk. 躎{szK04S[[Ⱦ*€Yd=#1Hd~a/N)tݻ'15̰/<4{BevoJa7w} }>Ǘh\RK7<L!ݧ˄=B $!̒LGL!3%1H TJdLD !% טh&/1o.(c|Z10 +JcrʄC)E:]Bz#>\<2m~4=.ߔbo'vL?IĐ}mH| 9y .q3"8̂N8Q"B#cJ\jP)_C)`D;?""i)t%$' 4֕y^4XQZdI R<2rB(]N2P SYE` c\L 'HYszccá7ި5C䎏JDkIŵ! ,гޜƭH)gggk)0fyY2%mC}z9Z= ,n, !Z֧LFVSMr>pp΍ZNkVb^ùralHY0ΙOM;rzzD4YSVS&JӶ EZ#&OQ,q-H>'ᄪcw'L[خcZp"Q%(6 *ZmȔcw 2 rZmie,C \AeF>6{J=im B)~W(J4n @Cw,4~2yV&#Y#Q(/B O5=s4mD`P*\ iIg=u]|MYU ٬k\N){ϠpL";"ʄM9IT(4lk֛z2C#?>|/07gC~<>zRpr){wƯ=@i?Z{Oam2hsiږE:@,$7Nlx"w݃kq&ٮ8ܟ hٟϹv2fB\q)%ʹSm˴Hmh]G=DA}sR JQqt|mbRωөd=3wX/>u #3|ZeˤJ>@ v) \ӟ@ٖW_EYI|T T,Jh#8R7[?ǐr|5,ХEIBKѸಌ>WWB%@) ` n$ͦaH!3\ $Ҷ.i\'IUI0H2ۓ$TB_k5+`Ȣд]K5Y1;8~uͮ.iE;?&uZFQl.`d BiS;Rؿ9u.!dB+_%}jֺ7x"U!6Lc`ZK]sLk0&!XN1Hf ?lFكbιT9/HI@NYU %%eQ}0x:dQU `X 5^֔VBckSg&1csf[ȄT_)PʂF^0vJ.{~9>?Ks4.zdy!@|b/Ut@dY3v~RBY]PSBFDB5j|RJ=yhw&a8 8K8<p!Sɞ-! 8"bNj[F 899ڵ$($"' qћ4Y}k#i_)Fn='blZcP>i㇏T̥(HΣ|4U IUѵ-Ugn6%ɔW?|~9`ܼ{Pl vazPSDGf` $ >*p>ӄxЁ)uHrl!Wl7kod=W!"Ux "N("kGc4[ڜLEkpVp5֯MoæK,$1JBLhe@|*p3XC,NIRW$wkׯѹ)~5^E|+*|p8k!5E!ۋ|;w8_Xsjӝۇ)ߑ$-$O]+ol>QL`I-):6fQ4 WCq~|A39AU5!Fк خHu;?` Ȕ.9SIs_MK՟r2$SZkLQƨQ=o"<9ƵPɾɕBDL<=x ~oKs4vK.cA2:@}{ɉ))o7| ) 1\"Ef)ʐ@Z98 =/m;lrF ݡw0|rd ċHaQ4Z{3>(躎(vKњ u͐b$.H) mTDYT$tɴ g8}i[, z ELQ"Db1-Մ[Լ{\/a}`|d6ald37i5W\cAm,+Գ'H)rbl%5 EzLg5im=5R6t)1ϩg5jV5Ւ|u ͙zj*R5m0Eb6cVqms*:K}gBώ|pq2 "dͮR 쥵v`cHzcAJUhk?i'Z WpL'ҝ V(#I}X4ZPbY-J4#@B/; tɏs|$ f@%I"9B$)P O6NO̶AS;[qhYPs,00 hoYQF(Mرax]c*^-1) s~~jBUR`2-r 3epi\o ץC `V9) E彲Kt]~q vJu,hzg#|) [v}XJt:>(t"F#Oݿ%9EtXv 좟@b0})]f(HwK ))C:*%I$ȼRߧBj zRw%_wח_H wDF]Cj|τ c|MjN-~)Dr:l :w1~lv|_2#w@0\+үD"40wC1f p"}4e5~Ơ~W jq?;Oא `)'~&r|$mRi:k)l#uY|H mJ"E#ӽ)iM^#-Tir mʕ߽rwmc~?(MMR ,7+v-*Z+&{sfN5Ԇn\OX7H)MT ce"RRTeE=EkC,;O=Q^9,{hc)yUbc)1Fڮ#!ڰm[Պ_g-2x%UgP*ӽY³@*E:.eJ"DxqiNw</#ê:KHSDNgg+fKUZ^ټo#ZilӠU\62Zu mgsnv@B׶4]GY(ZM͖+Wy7?|ۜq+Œք f@W_OG#f7xӷ;7tvEZ"] ^ Av7QJe2e**|Hd(8=>Ț7CX|1_{9{HPJ|Dr~D>{s3H3)5W}?%O/ӟ=[<||0Bɚ+J"д-y1fů+&j6k˻l_ !ޯEvl-RHȀCHqfpzbn0:10F$i#hU5>e}.7a|* iM@p{Q0ȱҽ  #R]pB,2cȾ))e@y'`2#F( D%TÇQ()ړ0!E2g^GnY'v E!Ȭ$B2;9oQY{3;ƈ1s2H&.`imW2-(b*%ʶoͦU&CSD/ 31-Ab裪k6 MjDK>WBZL4޳_ Li 4j` ?_UՎ94t-B\`X8 Ɯ]tEJI""FTU  Iȋ Z? us# .b6tIuHw^;æ0f< oi/Q^=X]l@$bHD"bN*7 ep>Ҝ&Jv[n޸Tvn1FK/lĺ?hחvJh#͆XG#ԓ EY1JS%M۰=zR!햶zA90E5)Fm. iO"G2gOt#b`q ؃?OEQJ ?OZ6vw\_@~ƔSUsAAYds:WvK/rbo|ă9uT dvK'.x <7IRE8_n9=]s+/w/a>P*$\2GK!Xs(M_wNOac 綴ٌ*{&EjcML>]#'-oMǕ+|\oJXd (InB s`W_4<>/Wg~lZpvrp>m3:<:`qO>9a^O?k_ 1tLg36[G<|QONWL+A) mko,jʵOuIU ȇ.Ԭ pv/_c>Qlv-k;*?e}ღ>P:@B IB ,&I&u&Z%qUe$ 6,F׈$"׭rmiɤx D!"Ѕ8<aZ C5 &FJ)QC1"[RHKP;o5cjkl1HiHlc*Ra2g PԜoNƗh(YeS ARmZ"3'i;9XF毄H/z^S3رڶ 1DmCPm X}q`f3a5dnJ .Ζ\L 08z_FJ9 .1#FehHTK$4!JT ..,zeRF\% DsYJ6]\8Lj&PBR R•=BbI(Xi,Ps=u4tGkGK)JDv({DTx% 2pljn_ElC3R w%2ÔAfZt>1cEHa| 0.k/x.k/}1Fc/Kd IB C,Ys\9ܣ[R ,kPI1 bׅ,&#& =%@ᬤY/ik$^i͚=ua,[-xg?c. w1Nt}NT魚JJII:B nC׵5;G eN]Je %Ng`GBMKYO))+[l03_s Z`eb q74}$ĝYܲ%!^tzϴl' 0)*1~E "bo4%Jv<~ly$ۍCINYh1Ҕb:ZkutĤr#G$T!\@ /׬V?჏'<),r?L3S5)Ex ^r|)ue{vs 7' VBc_>m@H…\BE!س;bLf~10p2GA+yi;j4CKkc.jA=2ңLR(i  Ҽ2r.7.?m{ !!P(YXr5^}I؋Ȭ)z2*Ͷy ])YB4!5R*bޠb!Ddׂ^6Ů `(zǎ0{ϳܜZ`?_l IyQw (vM,;P.!\! tY9ڳڧN/Ǘh ]e5xbwZPc)ؓ^ Ʉvc @-> A>ƹlH ;D(e圣K&㤘(x̐B`0!@~ь%5B DJ龓;,UeI(MBcDl(|" RdmFtx`),ںk4c2\)07nYȚc肪uX1G;:b 4NdWA)~0cz__srLPI隆r+Dh֗Sۆ y^;Y۶H >dl(,Knc+ilI1:( k̦9Zi "5qޢM(}#R,tOgzO0bbfJ% 6]Dd6p ĺ*jSc;늶;dM<{&!U1{W”<|x̤+L~g6yÙ/?_kYA+lG9eȵuA=~ppxn^Æ[P5.-֕ɦ@)k1D H(+RX EluG06 q:ýN y y}5u5go?;^*>nI eӓ8c+6f@1Q e2;pK 5y"pstkpw̢~H).=)%jS~LrC=Ż~WVsY׻)6nNO/r.@mi{o׏5pv@84ʲݮ/ٷ=>^vC_@!Dfxkx ]R ʲ)RY% !z8v|BhLi;:?z.c_.BPʂ}-.zR(1{ o'b6u .IRcDσ-E!07WJC]tEa|tS drkX\zk-Ͷ!F!BSͺ{$Q.dQ"CkQI)??A{R7q$dQOjDFAf0}WÆ?PrBꦔ.uk9>>Jtdbg ǀϴB0l-V̅bAJZn\Ѭ{.8ݻ=$L(1fbojCYO7dRU%zäʒmӰ]7ZBh)x}$0J%eY4)`J^+d1(qQVjJU*Ԃ&%&z644#$#`ЕA#9_Qu!o^O# Rkboxq}9L\(t`aiY~=g ^Tais,%9`'Aa&wx7gmy uiψږBK*鶚sJ;VN /]-g)3cD审]Z|0gicWps)UIhsY2L(i=K9Ĕ$ѿa0l;fer,> T${/#﨧5uBi|9{`XNe u| }F!BfuY8ߑzy,K@vءcv@3* 1} B\9) $g&b;#U6#01ƇawIS\>>>RHcS"mQZlKQ|tGRִ.U蹔89\GL/f۵^JY^'3Ζg))0(ۼQЄ"etϙĐZSD ʛ JD#R厾)H' Cs)5GkmpjlNju%*LLN`b4]a^ Йxҟi zUc+7%6|';U* n^JfR.flr, #hv قGDŽ$1%!jMQlB iL&-h >]oP $&IIQOy_qwxQ)6}ⶥ r6%"IR,im#"uMK0$GTՔz>^!R"H=[ fązjM,;ebuM$i6o%hm.} u@u7Vxki]-R(4,].$N ?J+B Qa|ܧV'4@y/+''2jb:Z0ܺ/yLMd$6YDN4F玾jB<˭C=H]^gS"@Y !I*QNgtS)y,}&/grMQhV+ܸs-RDR:޽<:fKY:6w_ ;FCt))Fh" ɣVԳ+#bJ:ȶu.cTC.qpB{c hL/E%ߠE,eU_bՖ;wo/_߼Nq_7E1^Oe}gNpܙ!$[$*Rg[`?e%H $ N7ᄽ~X{s)Inw'o}@mX.n9y,ID*G86_&u }aQ/,! )IJjNw;̒Ã]wdZ_ۻ%1) z)%s캎jlDN94`6KJ-^)3R/h2{hjQ/軎0@su= \K/_ ²J,7o~%|51??|Ǯ v,}?tb0υj-;PH--CL M@+C%bv;?u;z?*1Eڑ)iv=Bʜ#exm#P"Ki*6r:Kq1%1e/}QX"II7wz=aS@>J[Jf3*ӎ򯜼I=&bl$JbV-Fuʇ@U)|hR dp 2QWI&),yCSRq'?} ;4$/ЕErl֌Iж5Gm(Uq!g|k=fΓ'=ۮ+~E\N>1k4O7Yo,MOS ^ ||=x|n8XgYosd/~~|u =q w q1yv:g|_;`gk8?prr7wv=k$OH'xO?;䥗_֭#los՛|IǮokHӣ'FIe?~T8a"`I$ٚ׏-$΃=l{ yY7BFiLx&) ~e-s}紐w[@LY @RTuƜԚ`Q190^nlu| }Ffo&R H ){̅?e?\fLiM 5d*T)FOig-0ANRSS2RJc:aLM1"P$qODdv H0" B 4sz08n<:\/ٜq1 {K-4ݖJ)v-mӐ|\ "`c%6MV5D$!2BNJvݖ\G1dBBu& T$))"'Y^r314Yl}cbM$ƀ&Z6-%(ϳ>ӯiP1g@W@Mvpu}Y1sNӤ-I"&H!(b^lG9`98:yOrlDfՒ,ơ%)ZKD*l {Y0ēT!2k  FWߒg9_#w>b7C>=}rns$C1@h!!f #U[qTi̊jT랃nGgĠpXi+߭kf<GׯS45B O$7Bb9CH"|H_̻RJ\ XR2!|@za)s@4Qq`+KrY~F%R6hC@*MJv$! FyDl!28(aAf sXXT5cb,x!Ұ"Uy 2,gnm5 9a,BJfCi"'կ醗^~A;k=.|&i`w$y| ոڦ+_y'O25|կ9uJٙd-iM=dǣoʫ7nɒ?{%WpH5ۭ%h-fpx4cZ C%޽Kmj6 ?&HA}Tu=kTS!;^~qF  mf,fsR hyfKz\qp2Hlw%I6|?돨ۖznZ|HV$xkǼYu7!h]E\NJGV2QY Z5U4y_W[JRȱs8&i XR},-hUl#G8>fzNL/Ƴϰ(`/ _m>,|9>/c IDATИen21e S&e1IH\Q愪PRb{lF4b#zS\d *m7zHy)4%CB E!>6͆i뚳sںf>ݼV(C@H1Sb{z)Q EǦ۱\60$=wBNð΢Mnc4[)w#9iMJ!yTh#Jv#4 6E󄅦Re d"Ƌqv:H4`4!y3p12(6wϩƹh"M [ojr]_/+_@a:Yli!xuN)|TK &R0Rs.XbwMȀ!yf0pt"&z 8|}BKKJFɇ&Đ<~F V$Z6AS1D!Rh׿I?%G7n9=Gm>fHY@b1N)ʩ\!TU #RlGR$@ˊ%2Uh~h%Af2#TFcX$h|Q(ve@Jf@{<R KW;$˵RK/>H %%[c*ԅ$ӌy(~4*#)Q(BēͦGkA7SѶ3b )1jJ3?d9a f>9{y08(!2REns nXG"|1o{jm N0J&(-X5sL4͌5:)3vs=˯ĤD\?ӿ_1R>ƨ=~ 6JE {sIj96IA`jEo{.G iM)Q$6<іЌr !#F'5m}Gu]3-klx|Rt}` j|t-mS3k j#vCUiv_#S-x{xZ/Ѫ,MS^λwvoFw\`Ҭ)\6jܢ|+h-HfJFt2BB2zUS4!{6$ޓgi$ȡ"E2C,Y֫!󬏙M`=cw'J$rN4vH G2"bYkiW+n /bPpH-ZSp Fo-5qY7gD!p) hER$Ƿ(R4*)-2H%QMJfD)YZYmmr!J]: ( |J #cR~M5'*'gńRw9!aʞ)"F$Q !eEStSϝ}"Q0)kFe$[7M!ss80 Ad?RҸLh1Rm4 S%EJSSu]SLR).ɬ ;eY]|aIWwR&Gcmjy*O:)b=٨Q'$%(mռb> dt;Kc*fI62nAq@Ja n^AIRRA| <~!%-Bb6LJRBL>Yz$2oxEdAPAtd 0E )y抶nQE6. PH {+5קA~cwROSP\gS(Rz8c,-NÔ4b!b4w6Ǭmfv%)UN `ٍ05 =:FDis7$)Q6a4MEJZ~V(1"9:[w>d_oJ/yDP(!?!, R!8u)1ؾǏZ]OSϑbٯDxbA!"Jf b E* "v);($ fk4J@$o}LrP)۬*sG7P .wH1e~^;&q n?vy)JI<9Ř1T]Y m %D*F f9(Reӳu .!fRO7<=o|^xA"jEfDHI1-H8=M|ÏZ-!?y4#o?[~udjX.zaPJ69BImj1'Ȉ+vǺ2(#QTJp` f()@%FɐѡGs&@"uUqtp{OH*6Ex92nkvqrmRtUMQ5nXΖM|2i"$JIKbv,̊s ;΂G)f BzZ.`G]r" >1l{n2C)bY;'EmD $ >Y! Bc@%:{=&[,O)92 )F#˱G*7y^sx:Rj c*hP_ƔQ1N)fsbP?5l+0 .{NbU )I:N㽯AMߥQ-!`/m轥ؓ-ڂ Ec}2!RzB5Ɯf_@\tgMG|OV+9]#%PbcFʱͳ h1 mr1#$[.؇knsધ: !,\A+ T=q¾ү2W@l\0}U2-B2`P#0TI}DͶ w' {I.'gv A4)0K;tk-:ރ "h $.8dGDFw=݀vqzPՌ{O뎯2_{l7[6 JhKRV(DA`== 0(UɬAqCheL͖XS.}28*5i0!D`:IL5.hnDC`cC?F*Ԧ !*l (_ P _@,>R4"A% 3R`lYk@@m6ߏIB3aG"{Wt@7<_׊ԕҒyKH}K J)-1} 8!=ر>Ưθ0)JKNNN1A27ia@ـtٖ';zZ!+gX|" O[V ^|h5IRnwNw@$-H$"yȴ3!Ix#c@#!VekX*q44FhIHڒ–awF"~؜t݆sOJAe@ 0֯>{~𳟝wlaL Z\8||wu3!fə:}'O:G?&88'sT xܺd8C^AA#_IX$ اL``ؙΧƘ}:@er*# nE.RBhAiXA0G/Im1=f%yV\峔t4F~mHٲ ą4~(3u#XoGJb!q9xGMeУ*15BȽs=\/ӾPiSnN%W-@Z> !2{XC~1c`W1J %34%(OwJ1^U%s)E2yNpyP!m #C?kM2 .=(gmyQb\$*C,.EV\y-ie"B6l:BFhm,H/:1d_̐Z!A|n(_{+IO'~09^UU sv'G2Ibhw!+^"QB% mVׯ#=:CsiBLv5U*f Muz*`h9Vzp_5==x7y|@ =JiZf'Fp\O'^xTY,rnTְ;1S)>6 y멌bu4#ã%PW5Ç~〺DHMOHcu+6w_sΚaCy,m!\Ca ze{|wofasя??b)ne7%pp8\ͩ"& mc#gg^ !,[:{:U&7B fuLI2| O YŦ~sxFwyun^ OxHM)oL2o+u 1{rq/\c')bJcHcj!ڶ.MҀF b|}Xl(tq!>HH dv dCҷѴ>xak rcYȧN7QU]eKQ(%B}YP:ajE=J9.,~$!rFM/~򙮞:yVwdR/uE`LQUJS1Ĕڒg]r..߈D!Q^=Pl|G88iAiBx^eA@lvU O~ki zj-1 c1F0LI <Ҭ-ޡܻwm˫/B~Ư6q1.ðfmY-ٜs %D>1J(ILc*;'k{0DjLSHllgqmQu ̚Ue MUQH$͚U!d^GJBdn3@uTV讲<񐯧 #SE٦!QIuz5##R(-,\Dfq/n99UX!Vd=`RJ%I$2S%Vsv].gK_G>" )2|9>2du$C[Phc_x6!w+/Hoy#!A*)h-Q2HΝ7/67|rg0̨؅+<8?O=Am@뼆͚)4AHO~mE;_0oJ ut(2+*8[D/X˛0-h. ܽ{?N@]x-y79Xh캁1&щ|yo.J05T|7nܸګ7hkI "1uhh:KZb:3GnTdUɶ @JLӇ-z$|ޮ눓ρ(icgi<9A@5ִz6 H!:"rlVھ#դYY%"Efrǐk1] a~?&!"J=nbhv:ZOblrC) !Klۦ% x(њ"_ kTEF1fϢxy,1ra@$>K m n&i􇳃E &a9&bߐQJ Shvu~ZWUvnUs$GCY.vca!}9>{K34q. hj6ݐ 0Vf2e`?-ӹ1e{)HZMϸ2e\<)SI5 %/@{u1Jz4 Ni 0#ț]eY|]醽JU䫔iqPRD)I>xH52` Q:۱D`H*@6 H-b$SM$lS0h Ld弖q L_e/J ش+x<)(V.igDf f-%w1r|{nEIJ`IS52(4D1R-#/!F"U)\+hHa3R4SH#vh"T2F  X%UI!2k??Kׯqw!CwM;ϭ! /]i+L $Hx(w] QҠel%")VzNnx2 BHU N-7V|)T4cO>d@߁1GLJԦuD]l=<dz<')ǭ[/p@U%,RsxYqx\cg*xVE<6ٛHnwJ]kSR,Ȋf1S}IrmfnZ"Aj/ER (M=~_]s"ˉ??cSgNHq Pр̭Wq.УqtfkB qO2gLs:M. +aOWjr0fB$)>S IDATJE!]Hx<3>1.Ss5UĞydc%q /(] KU:{:Tni|w)Ky2b]!bBo}D!Q!F Je_ )!]S`/ lq-aN)*Ak9=,.HDEBeĨ, /H nVBZ !F훜;Ղ_<"5FDYDŰs|;2j*j <> 4@piak<=GjI[L3eI3#C!'w0uvkvHܐ0=Y"׿MݻGR<}C!9 %LٞoyWXB4[O'2`Il|k" jc!i<]?!5jY co^gլpP5:JLJ49]ôۿ/1{qJaRKArw2ӂ:$BJg[Lelܴ OOvX7ᕗwιguh%{G0u1Lj,'jl6;B26!De}>fypvn釀r8w= ZRGyA۶ 6BDW<YmhoPj*H*<<#%p܀։Wz㛯W.]yś06d鑢AIu]}ț(r5R%ID$5% l:G.9==g1i-iۣTP. R v6;/I1d+=}lmJ|E+zq\,ږn`3+0k5ggNPU5yЁ ^QNCnaR ^b@Ăy|\􃿦TQH}U+0-M$aoq|}O1g?!A-m=KziaW_"X0F!.lop5'?ܔoBlHtК ?9:٤4 UkH3~Oip~z­$<|k# 0d6n0Ox>G*S7}Z9#:v[Q_wW_#Ivg?˱2|LU~Seu]_b Ƙ ܫ gב6 9zX)RQJE' eZt[w>5x}?`c>["Ɓ8? NhgՌ8 I$mwS1kkL^-O_ubOprGP!1dq{7u&;bD#F|c,ܽ7wśDٮi J ۞1ELQ`BH0}#!v<`6ozsLJ<9}iXD7<~'OΨtn708ϯ|n3 RE[k IH)4C6CI7u㷸q[RH??OM6~̀=n_njޛ=YW~?_bf*ހn4+BPԈPzH2>C4VW^]bM~32ы4֋]ȸ|紎ZdY ]F% ^ 6Bglmh8jc]GȒ! , ҳe%X{_Qm9tY,W:Ve7 *1g_k%{> L;=Szx4Şq)TzC/cydfb~ŝ>()Y KI~Cy*Z + |_lbEri Xc1x׭n⫺^2.+)gWJ<- "xSW|q@CY݊ϿeHe ƛccv!1)N&&Ojr!%e/>(3 e X[ M##9 ,g?w,XԽ؛"t %Ou@epR(`I|tf2RfLJ'{S_$@Ij\TzJizwShM&`"χLt $&5XKlo.x gc _2($4by 0֚[x۠C7tKT&,b:Pi/pbiT1˓_pe`rX"N"H6&CNNEt?;_t֋)޷ֱĭ隨U̚9so|RRׇ^F6.yO\-(0]G^,~O=YΏ46`RjF]7ȺK_ \"x^y>mS3)w^r0cltpS 4R9b|:sT߾^[D 룊::k^S l2%ۛ,3d(8س,o~HȩR1ADA؍!:TY0_Hh]D0Jxc Dz4o[y.oqGs.\r9NvBo>3<ݼxN爵BeJz5JipllJO~>x 2h-[G{r+?8vbmJm0U ]b0lS3X# U|^ze ;%w靌5MQӲ1]_)XvLi:rT \OmBܰ{y8h\1k1ś >Xl8mbLD+Q}C(K>i * 2!cY*uhPRPd`;DpdJԑ,U^gDښIQQfw,9yH)z^5SU1n,k *S-g\v5yGRXߑUYt L N d #+9ZJeurOjr9(OQ ꬤ `۶gӆ\28 7@}ՕRFa:%@2хQFGTރoSG)*^cA)Zoin4r$vd*ÉP_h6t~L%4c T~wf3>9 -*ᭃ"GhEXDh,~1>e<Ú d%"'g%o&ɩkγ>hc9ԤtgqVlV`dS"ȕ"6~QzF\V< 8[5+]@B౱DIwYa/-?r4?B*Fw_RsGX+FYWSiX_S4cr-~u5ոx>& ->BAdRXxuÛxsd}3ۿ|K3FyEk;޽:{Gqq1_~LMH\栾j2ÊOk>Md !.?.ǭo2[A 22S|+O`5>Xawoiqa{5_zy~HUJ1, 0 fA$$?D`/#Æ ]7gcw]=Ke Jx69tAG (VH)ˀu * #̒U -sabsƏ;Gؽ{pLgeNL{a)5`2ݝu T]|<;[k\R=BQ,)yoޣ}#QAy>)nܸ%5I`Y#}S% ƓӍuKKU,3>쓼w6$[ZӢ$%,)̗<{D'E!&#MUd7٢9MeWv}{;7ɋ1:(NJ? ]^[lO<:ϩ2%WT֘stmxc@j =^}%T%EW?-F#E9_}GGwp,uZT Y,fܹ cܼq,.6^2-p ŧ Z, ŗo޽ _#uN&]!AEAu"g?s _%*R n?W^2wdt5yh|Aa:UV =lp5;!W_ao>ƶU:8ڠq8&WM,3{ߛtDx8zJ)}'Ї Y( 4V۰&< ?Hwi8->ZkZ oVAg(U"g5a3E jEܴXc)Jڣy#$ϖdRvTȝYS_$p1tfϗylQR=5={uzL~NٛRq+RbS:RJ"[Jj[cFcC&f9d{Oهt I בZiw$yG Ԇc{CuOpz%ޞ>t;YsT;; ڶѣG=cXj3U0]׿]\>᧿eZߡ$ ޯ[@1t;se)o=/Ǽ&1d,],%kՔJjC(AkF@2/QV9eU1_"`!!йE1;}KX(D|3wn&h"0Fe=x8TeJŭzyӗy KYtlnUzI]dZl u&z"{ܻwȥQST Ji Lb,Y`2-mk8:C Yl(G&N9ѺL֢[|ٰ9#"(>t:E b4?:˚!$D؎L2@aMRaA6ߧV=}qN=ͳTyt.j,Rѯr>+`(];vέR2jbdYnu9eKˉ>OmۮS i Y>eb.~_ Ԃ _ڶ]'ERj\ )&v{QŒ^EkX?֒}H$ϝ[RyIOڇ}}QlN`L+ 0nܵ4MAjoYHdu;Wt΢Ed(dѩKjGle?ЗOYUoo͗ !J' XeҤN7CCz'`dT( 3Íְ_S5Z)xɥ>ďH5~ih\TBcDYqaCF!g>SZRK}11 ` KRp$b2>mu(ŌT bY+5.9F_@Ę W\A悦i)UeUq-y45 O!'O%BZi FHG IZD! J2)K=iF Jv :2!W uO=c;qa;D}c>?!HRжKƺd2Z' ȲͲ] J83F拗A 9ZyLqtQxa#fa1yqu (9RuY֡ENXD&$t`Q qyE*c;`y9GYxc躎dr6&TJW40U59HʉsV_Tjg8un}"GEO&SdUUuP$G8$[ ikJ_V1W'cf4X,3ilF,{"TU!j=0V5mۮBM\Nϰ:a%U]0*L1_:9 [aTϑq9!}u]4pS=P׃yCMOڇ}}ZOOk3 SP6Ƙ80O/MCfPz@Odd;dI,ɛFtx}Zm(8-@WwF3Q 6 `Y!E|y ttCOWs™j$(Q%IStYGJAVEoc x\0dS*X.; tMLmmȰ>)[9 zD%VY ٹJ7 ^qF.Xڶe}}J4?$nDjM4[[/gG EQfCùcҘ&߸+_y'_eɳM)'#-h;[8blC6׸! xW˗6!(tƢ@`Y4m^8ܯu) Ӎ cZbKyQ5W.ү[s6Eii2k9;*EESD}ȳW_EsIkk &g/VTLY6{|dJvppP%JT#Åmnwc:ypɞCmx,R A'."9"CkB''sC^vDIälnT(Jh&1y_v$\Wv!}uU|8:hd :i U!_%du3L9< ʘpj*qJ)xO۶yr= " s (Α9w*ƉR |J)TXLob9tʺ U(A!Z\/ Z4|~ޣ°ٯYX,(2ۯEQ`ڋ(%kÊ%ɶ%Ozo%<',/8[m)j 3|6)}'ЇR/ELO`éʰ<(^yao3Dtc:%X X:cdd yf'2&$y'4#J.Ӡdܹ{EͱjA5X,jt)"Su}V"id^}'EErnIu\2s,, m8 h]XӐ&89E^q|/W78JM.nm._ ,o6kܿȲ Vd*!Zkpʂк ך #O?ޣ%MiڗGbpcm2J.^{_/~4JAڮ APcnZr|w_O?d{o1|)Kk 5񳟾NV9^t팭 QElF1*!-k[%Ryj?AHӴ-' Ȓ^2^߾_4zAĹ. Ý{z15wcLۏXȱU8/ރ#.],m/~E]\y>C>_ \!0NU`' ;t]91d4K-UYgB@B>m<#(Ŗ@0vg6է1SyadZC k2dYD}6Dz#*Ӵ{ƘT4>9iw!kzjIӸҘسRJ/:/M1s Xo룴HF*:߰ah!JT؎n2§!jöC!%?߃J BF`l$}@'C>yj@akקЍifc Nǝ"L~ \i$QH /:t0@u$Bx&ԱDEHDW%|V NAtCpziͮJkrt=6 `?u]!gx<^=aa8,9GC&M3)+N"gssXc^P,ٽ( kAXzxpr1p-hi:e?{_ )ɴ3 yQ>F<1p<ܑ(sqO,|[*zna?H"2an80~9s,1=Y]eKOUUꚝљJ*T-( i A T7h~!2]w*29طH)0mŊ!^:׳쓻%!$`ͣTQYb%RMZDo+%QZhM:BM,p-x :o/>V2 @b~}p]Nc@!ڦVڼX3iLM# al@ٴa7y&`>  HX=D]@8˪ fY0@BTV!DqtҋŒ 1Id$zPbGKҿS\g]%Y TK54+u;Rl>M]U T9ϔF7"j! kc»Xf׊Ƙj?B/m9aLm)]֚{-$ݒ,Q^3QJ6M[ fCtY8y! N!|Z5a+{gW$mciRQ5 QDG>kkX,[&:?y,| {~CN!Q5uɡ"Xut2+^Cm"ָu#CҌ:ϨLnz|4+&P:ǰ6'q&>,U1dEl |hx_z'S>'/޾@u&;*Twıy"GW93(UPcZ[(ܘP7 lq.Cg3Nu2MI ]Ӂ̐4t9^3[_+ hLWH%G@t:fY/ٲƝ{3~˷yɋh-8:ia{;$+99>`k}rWDV8R2 NE$głΟ,!rdpƢ;Gr #=~1G' I dQ/2m<֡t76:ke!%IxZhdRd-eSf%x`ڦO<#tG!9Chnʃl聡Z|lѾBy7NEEԅc;L2/uG o<8:<>dY+BHs}2wUf Eí1Tez}Y6 Ɓ8pOQ2weGCbC2DGπB>DW.ylkm ~Hj"#Otjx1f0J1iӐΕXJC'm0@OV:~ȺIԷi3n?DlaDҵ 5 J*:,56:D,KT ]Q%SN:2FJγz{fk NuOҰm5]Ah 'W!W%WSFJ)Q+AQpޒg9@Z,0R7-'{fs%RLOp&`}}??G(McqdE<zApkO?)푇1ϣܹw:-cdՑ.<W7-w.clK.1;< /3R^oqf IDAT~qõ+"/+:w8Ob/"-ԍ'>ի`LXg*su(gV4,7n㗯y%*|_{d.Pe 8ajM` UllnmCX8X,*:Mk(Z,E`RQXg| x}{'K>2iJ ZA^/9YJC.c풪`!4b._-ˆGH3ΖB)h̄O 4s@ -:T)fkumPBm\+oP$v*TG[lzM8G,b;LiL`m&wngH]1[0]_m$J.曷ɐWzQE pnܻ3._K#6yuʢ#%rŜQ5f23O[qAc`}mx%~2l*aM-93_y^Ji,lݍ70? 0|cm̌-ٰ%Q").Eުrm>D9y/)t.\<o<>*+6>yRXMʸ*Ƅtx"We4c~vĬ͆1TN'pЍi_>CmcPdkm{ hBfJPhmPJ8b36] U $J(TT"R F[yB)m'qHJr Эl|O m ` o:ƥ҇mx3$vg;5kx@ѯM{[ qg5N) "m_F$"D)^ :C֑Th\D3MMo?c`c=9}"c쉝'&;yMgj;$g#췓Y4 s8q|rLӶWxI -VB(iMjXys&RX ;G(GXTzVXrJ /Z/RB%L%4Jj[Z"5$WW?!dZ~73E) Eai5W {JcRMPbBL麎s~_,qszMR̛f!S{֤ZC M/EJ%RHk!dB.1n)4Md2.nx=1dY^ nja^4;ϿC9TvbTn4<*yR lŷ#_{P{k_кw?ǧ\-#̯_JW(K]&@eE'=⪣5~߹^ϳGd*0`{S'/[E[1!p\]t,֞g+tGD\^qތ_ݒ/cJيVKjGzA $R+l!iGO6I6C$E@?o*wuMSآߞ0?L :ZXXϹZ3U<|xɤdN| A&[޼,Oذ"@dABg`,O;ϱ+r&ln*y_G}6ڗ Pdϗ0:?ݰ5 !hU\>\uO 41ɜ'yR@t$1E^z`Ёn1v`$!R% AK[n! c.yzlFy8O`˘X43ʌ:=lZ~ DLh!1WRR elg+II^R rl\:k"kHP!iIشt1 *xBۀ=`3@ t^Z**Z }Q놰`qUX"6dV}71̮ Mx˓UTЮ34 -&撶*$ e"jNhbᲬԖkh/Nx[%J0J"#Kh[P93Ō=ᵯ>)%p1FH)(_ #/d5%FgWDkjJHvJc|JUDLh}ӓ5 x*uҠQ(|/uI|c?_&WHpXmryH pFu,Ρ v(v/ tщY9ќc6ckdvͦùHYsNS712цNf3BL]"Df&lZ|yr|ŢfZphN|@H"?JBA~źFDͤϿxT7^E @H k&e~V+OYr%Ee a=r g:S!o,c#0 |(IJ؍.3c߇U])yBBPTUٱt`%ǀ#Z!`*$߂L1C!y(x=q:K '1ɋao`}" ~{Ko@EA\}c+l)6}/qt#h3܇OM锺u15!sel/PɾT= [}wv-Ll@6Hqu2վC $2;&EpeZzd8ʏ~gXzuSR3ͮR(.Dr?wa>sSQ%$ - A"3/L-$(CDw:fӔ6AMsV(<>cBA0g@M!g܏on`ل1$ު2W͌3|1eSAn" 5L"K3`XMx3Sg5 DHtzz E/?5!$d~S?fr)RA>O%Ak=ӟ) $&ThJ\0M׭)}bG?}o2gEsLN2@(Su69)m\=zi" ̄Id^7ߧ=)IRh݆ Js EeADc5mݱ?}HH>|G$!d8xzRS"0RauAgX=A- <|;wBkJ.;%Leqy}=^kn5@x8 kuD%s3z@h:4 t3Ĥ0A1Y"5-9>bj6H(-)]aeRU(0VҶ '2B㜇KV.WIDs%)KX|/!'L& 3 Jkްӳ3^y?Zt~d}6i|HQVdbo҉ժ%&>:Yْهç#f<; <^J0Z_ѶHjtZ]CIcL))H5xf67||bv HAes%*.Ϟ~[h%1Bb&1FRN M @YBLH1%d{W&UrtNP!JT(/?x ˫[O~s> <)eϳ30=-y_~ÿ7)gW:Ғ`:j"s@`SJDE+r\h\0e,CeY^K{@VlK)s3aCe yD,n[i8|иިx`leH {>182~@ H)1ZUM)9RL&t]eXRD̪Z\\^H>(@*)S.OOIm\=d q'Ӫo>{6C~q@QkϴgTӊˋS{!@ȄPk>N22;Y@HA𕇯jyǴ\uJL,h@J~M&&5-{3x(9ށw)S|ܽ}+u I!z{( )erY5%C* *NoQkPH5)lV(EKF$Ca5e1%_;p{Ҹ.t&gRNi7!%+h /(CN+% }Gi?K>#XAg%''tw>גtb޾Vo]QY%'Pu]3ݛ"6:J!.RtmKi-%v !{\\\lCу89u}5@6[Dhurݳ#u]®<{M_r~ !`>`EkM;A0#>XtQJ!H2mעDfiesE6W1$~$bø'oԛ {{Y5 {bkm”Jm_$[ aBl׆f} Eס 7>uEMd$0dmΥ}a픖De S([@TkN&z.c<&& ưAoa)6ྯpSܲ&b[i`8k!HmD_ R(0>v(2=X66v-5﫵IВj:EYÞUKykkz 's/ q3?^ 4pl<1l|_^ ј4/u]gpS@$8o):7xMp7Ǎ^ERD"[yzAa+UP0L+O+Vb`:𛷟XL6FD9sX`4i61 H nܧ 5U8:c C fݡJ~!)o}%^ӹSDhxpwƣ41(_ (k(KM\ 1Ρ&t'e-'K~ӷ_?e.980:eIQLqcRZXlZ$.qeG~ !-G&zL&LjCׅL.zɺx cgՔf@QhL&%oIDc1J.8b ̧Hnp>"D݂Ou[S$BtĜ7kǪ.Y8')|oJQWr ?> lͺPo}>9CIbdg98*CDa )&6)':E?mXw ؑ- ﺴoyPU3KsVpM 1kݶqWc4,弖 Ji>2q_d )g ~=E(>-|Nn#PJbfX( KZk`c0q(=u ڠͶ$:R"$4 ˉƘ"K9.2 ;\5,{!FϷzghel/Pk&1ɘ G`p&2;Dyp߿  {20Y7,Dp\9Hc"H8m%-cyQ)W õ /[@_B }'ܱ 'MT IDATDw4Й /:ׂc V#U3p{Vρ5WlkR QA jSНySeC٠7,!svrM53õK?}<9fܤʎ7prA<=_&HH;#h@+Ɲ8>㎔8"&9 )g@FB𸦡0$2*dDJO"҆<]1͐ ;d Ƒ|fm![4]+]-ܽ{Mc[(1}oJ hc)#"e_zWtmSSCm1>Տϐ=ZtڮA |jJ` wOU(Ьۆ咽=.uLf6 >$ )"%kI)++$i&\1$d%G lܱ@dt x׫K~oL^3)DC8? `7{wnQM*gRz?TLT^)Rh.<}~W_c\) R4#:S6`p|x|A)g?۴h$!I[qIYޟ%?;ƴ[NV# bz_)s/WRd?%)@=Q$$OLB+d !HD@04>!_TYvS.Szz6LUV$ŧ} &umVCʝ6dBut]K)Pb/XCy0x85P]wxi!QCB *1ƒz Zml6h-]w=^D(A Y]R$Ďߗ$.fЎ]T`A>ڐR3qCD5/ a#p)GiR"xȒQ*' \励_\ aSkc[M~霍.zd>&*k sI)-Gί \!1)T|nJf5b%dfRd0 `W*gBŭ=MMQv-!Ea6!؂( )o]HE#*3U(T3pEAPEE)KhmS#cu L납X5qh#%ƈh ch`Q7n31=~ֺ !r-UYQus+w [>K{IO ^N?޿ S$z`r\ zrZ嬵Z`) $s ޵Vb@"M0&ueSo&ۍ\`?RR/ Jë_{@"dD!!BpFH{mBZ">{o= FHJcgM[&΃אY9鰐1#,Kآc"D׵&)mhҒZ 8s" -u(0% DERB!W1$$4) -zT@z,Ƙ(k.#G=tVjJD))"e"W;Ǥ0-D%FЁ1 /PK=E4ԫ;e%4ToJBֽX <$03JfҶm(JE-ױ'-&0PH;Ql4n Z96 HW+sV(12eFKFHd ! 0Q`ڈw$߰$&C{.PXORgAHdP*6xp&LB+ZzC0Єajda)KҠ(#H2 o̕Qp ́B1K o[%)+ ]f$$TJX[7(Nt%eYdmHZRfޅRȴ5m`7nC1 v&c0vҰqaobHѨmn}|oA[gMV9 w6L-yc2"fPTRr!ob'DG-lĜc"3@@0(jI FP}:ɞbIdyi)!Ā.@%CUKMh AD1>zҀ.dDȑ>\U3d@ ĔJR @\YP >g蟍G * ;3@zF]~.ؗy'"dD25؃lTZ<WJzȱWy ExdVcv$/K*na| W+sB1TlL1F+LIa"J^zMC ]qAEf3r#1,K0,W5J"*_? zTGgCjy)'?_;t#jGnڣYǸY7Y&%BB$2M*"8,ң^<-؎@l%ӽ\劶qآ5Cڜ''7?{}U 9>^o>}5,5 A:L]KJZG !((KF6f2 |mR$WgpyY,kbyBctCa #>>"=K L1eZAY*,ͦ4mffI˳ׯfɴEJ֊IeB˃{,넩uM`oʙ%f13Oy/GR1|(Y>̻B]q؍i]/[UL&mK49(_ѣO\FJ,񓞏k&-dK9|d$ñs!S7 IsoB\8}MtMCUU[ϣ ||`KQziw>cm>$i{Piwnb (I)}o+} }L,{ {zSȩ;('W_>]<xQj, ё2) HkLH% J U,#cdI`C\ i˖V#>%ԨFx< XPDyܔ]ZMD%J d!QE$QJMQRj'!l@ Kr"]fZr'DԖv"fNFd.)Tt>gB ~i y߷^F{c"1M/.f1HJI4[p7a;pZg0 Clq|&!Y.B UPI!OqZCaX2 R&Jp,}Ę%Z̜!{)!PHҘɧ``M yIAIB]H)!TSthٛڧ2]dTUoK#@4b9+UG>Hh$ge:=Tx1MCI)d'%Ac"3>O!z`βYV^n5iJBhE@"a?z9X?cj,ݛvL06oHYBQuբdUZ"`p.8~\.$iL2\^^RJ ꦆk#3#Ʊp-]FBrNljyz| `%2P75"8q[`N\Xx啗F3Złgϩ7 /6׸PABh.е-UHg,Ww(,h3GWz7U8y0?9shU ږT/Nٛhf5:NT!}#j<ï8g]!CHY"E(G |))taF0YfSӏ.sRm:Las'a=ͽjRRx߁p` 6B5ɝs34pr"zAۮ>&|[3ugrƚk5 ."Gqql)&@l֎C_|_?+p$Q(Ll@k@=+ P,g7 z*7< #m2\3-~tUZ1j[9E>N׌ K m3>9\S۶ gC\ǝ7[Hy-Wmv/XC7'cPMbaD9'Po>vjwp~[?R߷ݾ )cB czKL>fH)fH}n Dq`1FC?:!8d$KMLh ~ڗg.h~3YY!aAbz詜ε}3 ;D" %|$h]@%E)$ZDBrl %oVS:&DfGD GRŔ7`*[A7'IK-kLapJDp:``2p0a%2`6 J@YXAXT]/#bCpW{P/k*[:*SV:<Q!bpy4=zIC 2ƿmۭ81,& xs6-HOC13؍AEw f ʘ]26x{ˌt-ӘFr4z0rX}||?D(7%.3HA9 f(PdT(]M͑!E;26@C?) dl<-"D 635T$)/f&UyHQ!1$yTDk*9"[IAP$HD DRgO'"5C"D#E! >J|߲ $>l6)7ܕRq~qۮ^#˯uK5W񵗿ʋӆyrĔ&KMӱnDžf )M)+ޣO%ͺe2eE9kl >%G.!98R|~SN?(؛,Wgxν6>x0WH88:K?6HO)m .c// ܾan=,38> _};|/^pt􈳥cG(b'1:MU-o꘻/sx0g>'+&=?/ӹ9aZ!db68{qt&x(JAY%S5)n{gTZzk  j6LJ"m!s4q-*Yn uKݴdňżB"2ο X$=9Qf_`U{b <{e2R${b % #(==˪*ڲd\2*V7!C'Z} )W+sRgtSCg-Ʉ,ODWqn'@<JW7bm/`A*1 U}ߋbeVt>* k[.1= ^ ɢ(d⹘>i=LM\IV&O+_' AJ`S44uLb܊L 4ޓt&Sz[ םV \ַ?[ĠmIv` x|~6ozɬw#48ʗd#x [Ֆx׮`OpMk] J"'BD͛"PћG J G(]e8Nᜏ$ B*-U"ma!XX'V谿+6fkX-1OH}cy3h6̘ _S ke)L4޾ mȔ΁e5z ϑXZj$΃]115l /.>x|0XۢY|W+0*\ZVB#-ZbE/$ уMd"jz=s$/kl(1$hdY3Ay>pYG+v1>W賢!f/;¬#?;@82 St:aN B"n8.IޙCv_ 8c ZM~tHA1.(mZ.0esbګ|w8ºyuqCG]wQcrUK`J p҈P<:%nnpr 99^ȳ\*1"l4{ !%;׮L(3- g _y#]íW1ϐh2cкflŸ7?νSNrQՖjYS՞eRL&h^DLi_LIv6#=W?S?٣ƴKGu`Jr+9?wsox#nS oC>hrTVe$ <}tBg`cy?`<*i9 wf6Ӛi(zz(q׷b|t,1˦+(gYY2aak-c1,vvC%/ 槑QpxrT<( x6&9(xU<>nt1̸E_T&)Ƙ2L{m'nICI} KtPgr]wQ8{dN\b9V(PJQ9(k b(yDӾVs5Eo IDAT H5VkNIq^6` B~S'$̈́*"L9A qCv DvB|=(p&DgvRAr4Z'CX/uV?a43ݓҹ,ڶ"긋ՠ̟[kچ%O E:cZhtJG8ui"2Kdq.D(}u4Q8P5iFi삍ŸC{:F`]+dSTDD*I;P@ ݆CH1zkF7WuG"#}z|m1(=OFD4:r]l$I7^G9k aC}x-Eo΁SBKcʱRb#V\H ,Hi47^ME 鰌dڼeBt)zta)ttto [wV*"ED_U f @Y'ad!bqMU*5"e"_>#A寂՘EhdB !cAYsСV~:" c {B*!d4$ŊZldŅA |>zmHV \>I{)XU!DƏ(mJ"Yd[J)2ZH됙Wѳ+Gp+d, /%Q +!". fRyȔ/{w>?[(u.X S"uhg럹$@/ϙR1&œ(g{kGܽ?˶cTPKQEC\Sd"TmG.kyw 9z㓇#q啛7}BxMGd7?fTZM偮HsO^ra?aפg1<,~u]B˓8B̓~?5V^dv3?òap$OQ.U4M`U~S7d.$WMQ1/^4 y bE,VIb7Lv$V0zeAR56a<{J5S5$Ƭ֫u5ކW@kmI>状$@p>/;Y.÷վm iCLs(!zV~T):x :ߚ/& XKقo"hDJLQOZN 'E40hQ<)L4I:$-XF:L#><('JXKr 9prt\g8att/P*V0P+=NXt&qbGbpB$с*6N#ryZ((=L6tA:$)7t:S*n 8/I 4^!sq pXBy*o>hCz2s٘/8Z*H"KEvA_v;D9#%H%Hj-Sг\~EHiRokkNa4(z@)Dxkcb:&#X>]FDa ʃ 1 ڪ">f!!V-ۅ9GzjdtcI BdA H: =J9G+WIDsi!\yP=,A=nA8*:H%e8PXo~pHwnE,] #N6GM@p-Zʕ[ulrkj\3KW4zPZ\oD )稗'lr*Sc.cwlcxڦU"MUZ`rqJ9\|,ZFyN/\VX Tb~ ۛ3^a9s)]#޹D(NN( >DP( qU(1j3Z\Eg ߣ3Lhh}]!kO’2Stj4WN%i2][sK3O޳5 ;;>2W.OX.=C&/?坷y-˃8E, Yk Gg$9 zLp>QjV wN|$wdy{Ep:JIJI 8K !VR(5kh D Jce/SJbuzc@} 'Γ,UW`>s}JLlbfͮeZָܡ_¬ RS\>Bຎ52ד۝ NO γo"oQI_+s5"ձsCFNx2Qx@.C?|E_B)5!(ܒ\0`y&CYf0Yr{.zsC9u1,jAB ״ :+Uc ]K*:0ຸsv/4V1JxqjdAcmHbG [W/,c4A\ \jj&BEWZHeUt6HF22 8Jcy@֚Wү!# esV *Q:nk) й l"]kUKW>(262lB={rM/5{\3C602㉞ q|ZdכF^C {;}P Z6C+BӑᙯuD<}f!˱z}vPJP ɳ}}(zQjs8nJ5 ԪuS44͹i-5TWbU|"^ҳkƌ&#n~LfLg[HG9qޢF)I]LY-˺kZv^2ed2ƞ/ɋM1AE*F2 |z%/+qҚEŗ12loJ]e /!oNvG1:4u=X.<=@+u{17PrN 2r#)ŒZIU-u/>$˷/?ɏnLȠ~ћ1ֵ- X-Tdr{%}dlgJ`ߛyKRAWA%JDl4&LHBӡ!>й@UwqL,f8ߤ=<؞ H \`mLӶ!Z t&xTDר"C(Cp i r?B ]-NԠ5AD6/ȧEclM{mqVw-p6&Plok!MPňmk3ΣƆ"+[%L vК4xT&Wc;Aj>gTC(I.#)X,Ϙ,9[/.U|LhKb_khϖd(L0O؝ aCG& ^8Pm Ns$Y:GOo/Pn#X5u]G \1)PO~" _i37A,:DTւj(&؍ \[;CAPu6G4LjłL2$MĘ:&NlHD'QZQcҸHA-R9:<d-u2S+Mw,b.c%e78D HKgϢEY+noJ,֥ۛ~L"0sq,$h{ Y *XCdɄVU)I!P~/tH-8 *0ǠW2,'o-ϻ; +zUDlf+uZ@|S5G(ͪ5/&bc/{=|8RvOLFc~O >д d @( fAg[dP"z\q|`idZԝ5Q4'Hj/>Fɴ̲ƄE}ol>Igܿ?'/2b@-x:Zԋ7 R U0isz2>l8Ws/t戏?%<|™u&kxta*\2c1OQWpc;HHi/xF(c0֒e33GX2.JBf _z_έ H:\&%uCCz:U.Ju'iNwZ) :&GRv ] rZdw']NwL+> dJ'x9!(4ipAa$ `q]Y plJc&2$3bXxFC.j{Š? =kϲD!B|A3`=[TX#\8gJ,}۾~[kԆƚf|,[17R+ͪHccfHׄu/dc@LhpMkEq<`cLvŒ虦F@No!GyՑqF\d(vB(T+ɥa!M;OW[$/J&d26&d* B6P]Ej[tȑN\d[d"]xrEic6Nڶ]O>I@J¤>f䇛ļHn5ElH>>Mx^?l| f/rEn(0:E=Uy97OK57>z .R͓2$x`ЇmIz65.C`>)4!|F>E g :"}YE2 h}Ri:Z8;#'๿.q?달X,CP"mykz>~ܵVo(Hyކ7inB`E_O7!L5~sЈSIFți4%_9{:[1,ޡaٴy,(r %QFeS (pޱ먝G˜,3. Xg% =;ۊ??y۟=bqH/)'[bu2,<><۟tIg-wWƈ8#3trD6QZ$ gFeޜ<9>qp2X<[tXdNT?84x|1ui49v-lldb;OUW8{:>],$ij\pz+|BkyCp c4)uq~'5_xٵ+=u":20;~?Gxǭ[YֻJ =>{o/r%O)'%3=>%=W/ppzX@kW O%G|[X?z֏"97Kn6`0xJ@)LsxXHǵ?}$˂~X%!+vqxb1]񢅃w#edYK/;IF,`D\h]RX˻%Rhg_} }XZ7b"Nyp_?asc7xCNy&˪Ndc|~̵;r'6,3|TG~z&EQp{(hͭ.t?W^XQE,[eֻ#2꺦,U?9j A!(K5Xk.KuxB84Jn b2 ߄v^NVq3} 4>H `%TG O@sx+Xބ9@ye9"S):"s OYlgt6V7 aiGV=mgWhC]x)!d7ZmZvM{o!O=mV\1rT%n† x^ Ԇ ax܊mCkze_15syKuIsc@JBl 7$D4h?]?hYV0 %sNϖ ;E(QՖ3?]rvVI,= qʻ\?aY;MΕˌ'gTmEQk=2cXTGlƕ1o~u=`Yo0(iY.Q:iN;Eg; 8$/msx0uNMK%mz0Pc=f\>Ec<#Df"ŲΑ ZZk1:g<ΐo均,˦Hdo[\db23M}r֒墋 RCm7/駏{._ģGOqR5m*FZrλo^BkG1:btAp-Zn\~2MUqp\|gb6q|V_᝷Ǽs&7o{NOFR$ueхdskBE\0A}&Mvg7 +B1s<ϣ,e*ʑ6$|x6戵ܖ D !4Jp?>Yi^;̔2$V5#1m A`F\ۡl_٣ (Yx6*]X'P=T;H^D+_te~DRO8|r_y_7llG3_E)[''[pvzʏ&)O;s_=~+L =ƵWp649 RV>L/8Z݆a_sEA], Ísbp,@K׿iaM4m0XUًԆths&]lWLӶHHc,X;XD\."}^5:)ZivhT0Nh5&ϘLr1LΖ-dƒ@ vv뚍U͸ҍ0^p'cZ9B=q YrNOθy&u|g\&s۱H4UJCDOsBb cY"Jnn Σ>wEא5L6 ٔ"I4M` upڀɴDe@Z'X.Z(⬥-rBU5lnmpzzl!YiۼW}K?㥗 W>ZOQ/x+HYd)f\~(F4mK1ݦcY/\Sg("^"s6:yʲ$\(z9]s@87z?{kjHɼ4?bH (!az5{蓐,$~^~-6z]*C!FT6PRNܧJXtb(FȱU&S sAc1kڐTm+&(%caPM R9'Ǟ-]EU`J&Xip qm.'0}-Z #۲\.1{MSbEs4MWJv>oꆶmi V)E4Ȣk{Xo>Rp !`' cȲsy;ؓ|۾^0+X-=)hXKnA$\@fbscP@DzkWAXR%iSAV IG\,o"(p8|jFbi:R{X-I*^5<&ŝ3gpu?9W:3D)m6?'˜Ϙ,G|13hxnҽM %`t0;!D,z}v: 6p11_ R!Ch8Nӆ4m`B:nыVـQU ]\Vtb h!r{=՛y;Wȕcoo͒icE'%1<~4jK{V2fmDSd7&7d|TPHqV"kM^č(K:|oScǪZiKX2)YBjNOO/+ ;okaaX-G Fr#7yuKdNIU]'?XV-RX6P 3( E״flmϨiqxR3.>"Z\2x;].4ZɄ/p|;;\<,-Sjv ǘj!S/>+/qZ6w.-djG^a[ >9`tEgpv֢T}" 's,hײ~S JɔRjRH>'o6Us]ULuc~g0rq$J2%w@i)|7XYŒځ0^w8j4ဣC:yh:&8Θ^b5'y ry !>!DփTW_7;=xeA+5'Me Gw<椪yw8^ ('wHiޝ#\;>w^mk?e~پ$/ ;9wjٹLk}67b&+ZMx=b2e{{ø&n"[H[*Es/).a+ ѷՈkFjW$s^.eƜs,؆`[و>__{Odray9'l|4A縳G%$PtU89潏> VOsboxxRo7<>xٯGscw?{so C9~mF?>fY.<:)BX,HNqV,[)A՚>1p}2+>nXy)Mi[kԆ~{h{@9Mր͑^||*4mۮ|c,r]^CnZ'裣]RJ_MAs 9|tZcZ8+iKƣ aw>/_q<Ӈ8<w}]!V >KX(l Ґ4&XO jUBH.zh)!W00V@CVYL6LIuR!ds?hxs`26._nv^cezx?F錃SPx˷RӺ@>^98[0toctxϟɼiPyv[en]GAlzC5O%gz/3-߾3sa0X]K! 1B7 }>(%"u wwp*{ F01QvUs{}`}糃4έ# Zwl >oHgZ>: g i扡,4 eWW)낓 GY%hQS(k "#/3,0a *CDQGQvNhu<8? 5;[e kj=e^p;S>*}0 y0co:>̵+ӌ<9;x7z:2o?@(l]0[Wɏn;Y^Z/r$ift;W.i'Љ#u#V,ppTјNw#e:,V[$.=za$gx^Z2OI4M9 ;O'5~%6YIU6mXt/6v^fQx|Ospq6X;A xj t1UݰS ^44.!Wb*ѺFKJ $a]il]Lb>8>!ku(Z] X50? jw)U.z "th ytT͍THƅcT3243I-]_;%Wh$y^ghjS!IYj̫xyэySW%B4%$tUSES EĀ!"l.1 |֜.Ɋ|hc ̃pnu`W2݄gApF]Te5g?'9g9 !--n2/ŕwJ>{XT_u&Ⱦ6e}ײS;5԰;ǁ >%]b"QJք2Ɣ& B@UT(+2y($y u%H(QB!XiLcV(1uEeR<+hۨiA ClQm:a,9A`PJ Yn>k5QUeYp|f4)~|p\q||0iҸv?Y|3?s}`@菊:fs?#ap 286m Wq&>,s”Z ]Zc1RSfEUc#8xxr|P`6NF$6KR9/*;{--ՆKo|(H~Wnwk T7+[Zee},GJůog%"oM&u^0f[mfYKXh =׋f8gTZs ۳`iuGscQ4Z@4Xt?0>3~ 0ygS|@JIERQTKE4c,錥(N'IHe%Ӣ"[d m/USL S&v5d)P12׊U#d:fie.O=Rx wc$n1LD JF NN2Tah|FՌV6Q$2ԥΉ! {hS!J(0a e%QQh8V-i'PU(i/,Da/cI5aS QeeYe:`su0޷a$J;rڭg^ae)wnMyZFtdYr>$i\C{W/?ͻzOtrXtJ<8& ZITK{,3|Ν=¸C %ఀCy)]b|"xwtvmU~wc4<݇gW+ 25uެ1wQdi}i{{ܻ2>CP]tz}ӒEY0 پ]] uS"" !J7xe$4Pm *h]dY(%C!g[7E qYTԵi^ݪVjkD!dLۧ-&6eŜ$ &!RVWP2C 4Pab>sT?wiZs~{xYR"TÀi>YłArp3ܵ$whTGG'\xG;|ic+/ c`]y1I" {ONݦ.5eyxxoWOpq20U /}H՘'b4 3S#L#77nx>A0Nvgұܸq|E}&c8p23il>ͥ}Wx]ߞYr;s/ў;>]1fa8!B!襔ѩ%$UU/{J11?fUR9AHVol2MY^_,J!"PL&WV8:>fkktBxrD02+~o I ʢhDkMkXMEh6!NbV1v `F`夭(IȦk6Tv:5n&@栔D6|XNk1N;1i`иj'bcL=\ksS V+!--2F y1#$$VLjU!eEB5qamLV4tFE(c [s$ M"KgrLU嬮>ǝ;|$<~t `m}%"uNT$&m0NNHSEQ(aU*M <N 4Z*Jm2TP0g,_ymAD %%Vx|}fh@[I22YnvV#CZqauN'e׼=fn,$;a<2gds}ヌl>sb8LfSLruvv{h;ܧ׏\OL Uy@YjZUpt0%IEU\{ܿS5i71,+F#<Ғ|Q`z봫t>U\xƜai6l5|Z`0Jy{;~ RrQSB>ɘvR0 9FS.v8g;vy1KK=޿0%%INGA^Ba@GIEF/ȫ: 'fÛltvRS€,*K$i*ʼ GHRm;Hz)~sx^XW _B\Yo~gdԵOPC|0,S|nwsEb8~;TbtӺΧNq9:)ZPjƅm~ۼҋ<9F@wglm^A$qxJuݻqW& k<||~8 [-d6o+k|ߥqےI5P224Fpy"D>!21dMqO;W|J7,4?ЍW3@0ʎ%9W:l0̍|ǁ?S梿f}Q@߸8[NYZ cC/ J4霶uS"XH52t]%1a y&yQr-El]4E2.; `,kH}6Kܞ}myؤ~7x"׿A]Vy2oGQȗ Vk,ݻz-t%kOxWxkɦzKK|PUJ!fbjM|MuQbǼڦ CLH3j =y )%ӱgnoe吝Yȸ@*Q`*M+N|q "&Hc*#@Q%`˫Js=ƣuZsxÓecW4o=vjsh`LNsysd sb@EVD˒JNŰ{?6q$<>oӒ {!eXPF9&)V31ɿcbC%2<;K,wQ}-w~m!UTsw6W0[;{o#Jc@TUⷺ?e<E?{g9#K>03Aβ{Uq@ȧ q^wp$:?cuΖ ?-mΜO m J^)@I<' B׸{>^7znۀJB'=ziC%acFC=i [d7s&UEg\tե%F&@!PV4RD(Ps@]GYv&ei)A K)i(hcӌ kLF,/0!ȳ0J+hG5O]Ya{mᛷn޾EV(t=v I:uc}xDSS%/> WX\'*,/pATp%jȵ+K[)LWVz< t:sp`nسP,A6H)U,.H(Ζ칠y|miB u]/@#cA0:ހ5eYs4:/񓻷 A9̷y?w=oqp1J; _t7W|VcnǴ)(:W9_UĿ?eJ!JD ~]W ]VGϱuS2G~_UjlM;LO+joyݞl`a8}0t~=盟]ƇI;Ak3>a ">Clv@UU$IBhTfpc9Pw}-f*iB5>_Ɓ:Q_-!+cԺ G㼱w}g|v1vZ7c7&PcTA` P\M!bd|0t_?W]T)[[W\Xߠ+$潷kJRGz;I"' Ck2O'$b4FknIFӢrƓ JH\V+bTT,&֖Į̀1I2 II&d4J@k1D@U"=k=&B` R) /ƅ>ӟcЕ% ~`dJk<(5^tBIX]NyM!r*.iaeZ]dv3;7,uؾ!!7hu4DeNNJs@^|nãӑ7odYŭU.n x>;2Izs?G$/bGdHOy)=4?`wgdZ`WЌlm]kqx /^gg6[.]C t;}KmNF%˫k CU$XuM6f.9ߎ5!`XRi%%cn'.7_sq{s1_oݹ~ܱK~x8kY4:Be-Hd#C&[\zy^0@ڗ^X괛uFW=C>yq~AϿ?%?'Z &a3_|7pr:b9mgg}m`t2k_|?_y$(J=JPpGRy+t[yuDKy>ݷ'LU/Y澯* F5 3Ra $( zE(8Pvk]/3@J*b}2'9cp yd-8 r8|s*$x~9αw颲=s>#v_E@otByE65z^uo RP̏W?Hvz5EQ43kOӦB`?ss9"9 H)EoBo;y}y~2sgq? @iJ5%;=cf,b}ul=,rI0 H:o@ !!Bi紺sCsn9knǎ;RO}R"' k*1ap44Dmu#jY2,XѰߒ ڊ8 條h&୷RVF<鱺dtB6KK*Zqΐ"+V #,4@HC;e2-`iM&qF^7/\QUU! }tD$AL>+(+&&M#B!H,k뻭<+dֆad2{Ջ)I C#iǿ"i|?{,/0LXY0O䅤҆ dMUXQ)Ȍ+WWԜ𵯼ݽ): /لN4!q[n^?+=$,=|{7PQW4SxW e8}č[GV]vwvyCˬ-E aD).[=*8&Z6T0jo?O#S#.iag7XWzBZ&MSyQ8j IDAT?3Q{3>: }@G-Kc94*Iy}}; Ggh8-Ff x|~-#|cotﻇCA8_& v$W1f\<XcvΓU#T9I)9߿n.˒4MNr|yaEh')eӯ|ϸ7w0QM'_Xα\s};6qrʴ֬nlGϛORX1/q~eg4%lŹA,'vn}ZM3?$4ecP伲@W5qt3W˛[(28!ϦML]2<~2֭'Dq^$|x^$ȋ a61 + (`</\aν`#n*t(Dbʅ:`<ɨR״[1aFQ4R @ a()K R`lD2_ǣ=R`miRQl":#f̦*$VQfH>*y8򀟽 ,CMoEO,.1OMh _}i7ns!VWyU~n|;o89de̬1"dʣoM@^Flb@;6g>Oy5d-S<\]]uR׾_75>gиx~Z_q}懯qlD,]Ӌtki8 NHOl݂5غF!.F7Pڭv&H <*i-I(NVV@Yqd2S9q.Bnr2%C$9_ݔ : \ui=7ӊss؟n4C4G)ٴQս|@</Ӿ> 8Ѻx6C[K&(2)*5a$T1t"6VRsp5iT6!b\Bj',/Ř:$٬`oR{4 .$(*Ƴ0HY]u,AadB\̀AϰAےa;DNfMzBRi6Vɋ)UiIZW(BZ0 k mI6^#2LF?z{Liz&j9k2TIR)؂k+<*|%^_'J <؁N {X#|d<9LAF8ܿJҒG" cCo"!a+: {>$,MTINNQL#"Z#oy1@NK>KίC{LJ ^bxttTVz-N9a+/w7 Q(#vJP`3P F](66Vę  䞭aJ V4 X)[ 3s MQ^4kb@!VliI'OSļ0 Vm?؆%ojĔ( DF3: K[KL#VV:dو&I>٥6Tdn7d$3gVb>W"Q\d4ڥ1F(R XVcb$AÔ: ڣ*Kڲ+ GzR*)=µCEi4 cEu#hZ&5ZC4ZX "hRf*)tR! u FPMP6PG-,N]18`RTX0 hDh4Vҟk@Ϳ[\t88{O)xNu[`w@|sk8ďm>xE>%c<&ʥcYE  !q  uOMDFSƒKqƁ>_y|>k1k{>n>{{>.5yhtqL~U63hqu_{ijs~=n\TUDw2GˆT?7EK[\kigEMS]~\ ,QZִZm'Qh2g1I$Ibl !BQW9QPئ⊶@հ\,1*o5RP̦0iAA6w`-JJ9@O]LsES/OSgwyR#4E ; kY 5/Iy~x={n]BkdeLc"P iAY^Q  P!4C ){QdZ”l] 7%~{L9Ow5Hg`-YGma0 ݀~1`ݖEVSH8W՝̛D#NFAd7Y*ds#v1쵿o#+6\1fWvylƳ!r7\EF7*vw9}!$I79+kAj4c $SaAsGxOUS!yXlR3NLkRG`o>{߻F4/-Ӊ"Jֈ0Rb]sJcISJ\ۡ*g$ VwgL&o|j߼IUU_geN>)ΆdMQTG)X_d> K6S66"鈷^d}K֑ܿ;$-nꫯXnjf9e֣i # d6˿K~kx.nYrEFlmv8ͰBal>xl]atdݔAO3hRRoUO=֜$9wR픠AIgbYM@W|lY{QIR\dlgol (Z;B:v>|Y>U_h/ȒH(aDD.!u#ݬ ޒ$ɐ8OSQSD:5Ap)yey!X:hyk>j?Tہ .eYB(q!+9kiE>Fgg?QӓڬE:8`[/ƚ"аY4;^7Jpy0C)QN0 :)J6'w-/ …iQ̃st.qP%J+WF:_x"k#hqOeEGh@8 IO9=.PU\ѳ#fWݽ|v›om2 x/1zbќyޥ{)KJػ|J%xIɐ q^1^3.nejJe:V3Ǐ;=cڣ(+X"68x4^{1i<tO:*i)$Q< $^S^}2wp<wkh)σmT\wZg5f*snk)e`jR{s:5є'}iI4梍&jY˚se; HY떹e3!(B(S:kK+[5Dhq|IT*AD)p cEQJRT%]<<'ND-3yqiZrKB:sA?Z>|s͟pir A(5TE"ǂ-c8&g~%1/<i >7۷{ocB4Om2#~9k&yw6KG.>IVOr ).iހ: sjMXDY˻CIm`e-0,شιc5^6m,_w!hn3Q-8,O3m=Q/mI1k ~>么y 0nY@*WQBiX/T<ƅexHQT6%UUwj'2) g502HeH ņű eP`0Dj t$a18pQLUzqBjJkL1 HƍT8"oF ^(NjaD8By8Z3A`,ZziŬ(!5BP) $Śk5$޻PITTQS)Jc ~EY8 DX8!I*!P$$*:@iAxBEcul~Q ʩIxLȊ^/tFzŬ̉֔*0f$qzaAfTUt%ۛ+L'Lq,y3q߿,xQu<Nr&)yiIs]_Ff87@ p1qrVs>J:0#l(&Iu(Jp֠uL[AH7lfG"N5[Q󄓓:U&0#(!B0ydMx Mxg嘭7qu㣜oUQ#W_)O=OJ NON8 n~jKfgUl_W:t:3ݻMK&dOXY鲵FIBEn7e|2`utoOܸIuلdB*z݄^/֝gCf o _nr3w_h1Gs BⰕ*?aszxJ[8NG$יSz*px"^D/y|߯ R Fk]S YYVs[Up$-ƈ΍ְM xX l|υfKz@AUIRղORfPq`#MЗz\t\.TH(fs$* ޜkY6k4*u͈0ɪ AR)0 u%2KqR ;#Fh`ey}`h:HT8FZGެѤ>/ӌy-UY:5웦Wx Ĩ/775C4ZzCх8I(/^綠>fڧ)? EA*+mL{ަIi6]̘N4LڌetYEAioݞҼ?Oi>t\!ĢAiҕN>6/&ʽf|mL[6ަٷIk@c7mrUU-P|nd49I4Ms_q|9ՌYy#1Ssxy RD!o>"Dp(;s| iURx!ېw.kgSP ;fH(ZR,CZfUTeʻ{OeUUu(.Q H|-VaI G3=҅~OB$:g:2hSX(JGQZ{K#8QP R7N{.[6ܒڲo7=;-$B.z["{(k ܢm<d3BY[)! QA7`qEG`"BZ.4֔SB)r {-з{8el2{K0Ō'%xl2IfSH[%Lgc'H $Iڵu~#"vFQJ1 <t<;;AIt~ C׭SwY@)O9 sR#^`б|e ob4buRKX B1e*NX{zi(2Oʂp8J298N7 ^Z͔y1ރ-+V)׮8zvjn7x SM[;lomĞ_AȒ4٘32={2)Z1x$ٜġDͫq~ƭ]> 1IX_1^{ Uʧ\Ε˻((+KQx?# U~7bc)+LaGng"+eggtW6?+EPڒ ]yMGObё\N{(K"ء66og>/(IdKKpiRJ9^`DA ,q BP1_,KfN7BE,צ_ V} d]5LUAly[r|t*˶N2"HkkϯKÎ MEYUJ#Һ j k߹ IDATǷan(1z~j1rY}&WfYFiu;L"ϯ^u[оO|\&MN ٌ `a'X!dt XH·uHYbST^zߨ#D4_D<Ȥ C9v5p^ÚC}'$،_ĸ+aVZ|5A X12Ε-&y7#e'meOP+泂4tTatńÓ!k+l1BHFDȧ3`ask,K.'Cn}£D;(t$ A{C"ݥ4ʔr.ݭ+|p{6᭷o]5C^y2[ wO_%FDMYҕ ?2:)QXw . }weqѧ,B,R.˖Jl/[㗩~Q&շ֮XkAf A/ 6ڠ} &w=qAdҫ6}a#5$x"m=gucѶY78oOD@v&m:UXEƇaVՌ:0T(%2~s{unx{_i8_,Ǩ c6k6 7V֠s<̃]G=/w^@S{So_?W/ڠHth~|ߴ޿ h,^SÖA۠E^(>ơ;`/;^mtp@Qh5M{mF?[v^%>/?G^%LB} I ֢ރҍlsSx_v|` *BzT"km-I(3pʼnI!㥭+8 ? sDz\eRTaA ]YSA"0N*3@t<#8LPDw#R4$1YDiu#p؄" 7ak&Lƚ}'p׋ Q‡k+BjiʔA3Æ1%VİN#abNs~ {aCo)}/-*h5o7%ϣǼfi*%XjjWߣ2"J'"Ҏp*~hge5{5nr:Qt",/°_awk^[1fCO`d]pNI.O㬥Wt52st|]aM,(͠0Xr)*LDż 6HMkom_ڵ(g7}a"AJHE(LN ?e/ \[geco}xgze}nӳS~#p xEYx*+6(-Qxoc&C{P٘Ng[=>6~L7N ń|(Ex!f{{TfFi!e .rm#ǽOySW8;>be2\[MjΕK+DI;sf%=?}_'*"V_:.QI>v5p֦gLO2͐Q X%V)_ٳ1]$ڎfEːLƐeQYԦ֛l~dA jѤ]5zk],~|Qk6mFNwEբoZo>0.PJ!|`H417)ƘPu8ٜ( h e$/|vwE 6WttM@TC pW3ZMnysߴunr'ϥ&sVa cX?_oO㥽kZuu& dRL vA JYJab%EiGNz$FJ;2(y*8BH|JR*\"'7%"08k,s_PhL«"}A)*'B:*apRPJJ~Y*iB5URbikz3H02T*E:h ]Ц /Vx,Ӳ.ZWըY[Tk |:Fᚸ|,@ J*va5ҬFc~$q7>PY=(X8g3YJtMAHKCYpu/)ܻ]"4Ϟ f;㓒gY>dmk@$ܺS?[{"oYmsr8?8&BXf,J|J%?K $.UʹlF7ѬolyQ2O.Ϟ(Nt5BȄ{=`2ƀN[6gx_јGO 7_>^ݘ,P&vHGS2(%e1曫gS>* 0~:j9=: ')`]@.Dw??RzDM4e^"b2&d$YJf5AsE%u`Ex;,h֒Q| f 8o^O$ % +C'G9A8@z4pxgPuY+d@ k†t,qE0+ b4$Sx%ΙE!՝HaMt$Q !غv.P3:ɀ4DɄHgh"R(agJ"')8R(!'t49RHʢB /rhቄ'p2THIB>"uz@d@Z8YaDPZK‘:SYJZDYF~tz-Ў17sJW(83y^@cs 4yi PIlRќ#Dw /v^@/;`y E9 B3!gH9"&0r:qfga?U4=PA,P(R Uȯ +PZb jl+IE)hxr3,D ] J,D|}Xтz9v8GJY"@ۮ#&Rj@dcDu9f) u* Bz\gEtnbAK|3fM]opdx>s,!QifZ-O:fu}qRxFOYZ'UL%i&dڷHRNN ?})"[߹` r|`ЏS "/rnD7M9|r$EY&}{Nr8*~|1n*ony('d$\O9xv cj/i3ܻSҋ`kwiQpxϛo]Mxx Vi'f>+xp \Ĭvb bqtOv.vHt`D'y%TUtdg\I _]3lS񜼘rL $EY0Ypyo@IGXpO>c}W _.e=T.惻re-߹ΝǏ89ѹ<gm?DPk6ћIMZA`h4@oRjVSAJGNjm*7~Ē%^, vĹycI;iJSaEFubB9",t:e",üB/ߡ^K{i/w~~GZ,jrCOyZ sʛEoGٿ/ە˯y_oxccTz.rNuN2誮c WxtSF4ΈOQ #M?u;?eq%źa>P&H!q0enlpqJ +]ENUy!9Oqb˘sHOD?S9f8wOrc -I* q!әcZDVg i]JdYJ3AI`JX0(Ju>WyΝC4ҵEaIʃGTְ}OƘᐽq|bz/s_<'~c1*jtEEqp60Vfc^B%`5%Ώ0曯 筷vYYY=;}V+D,My Gf)>ҍ;]'?zƝ;X]K鏟GJHMz{o}D)fNth|uƓn?| 6>_=_{tt8gkOh8boggXWA'?9E:S9NNkt2!")]h+ʖrd`c0f ޗxqc*jdq~Ф7 m+` ()Z2GXWtl]=pcxLYľì,X43TQ8Ca !0L =OJ"$2UIթTUUQ4Or\8e:\~AlHr΁RE!JOB/~/0s!?ws@HZ mWMpD(.~}ԴC-t~£R1M Թ3iW9~z~UYﷶU]sy.mӴR~< ϱu_kxз $6abJT1iIh(c:!׃K{(EQ")s#n9a<)JV KU8Y*DLDQOduDUx)P*eggFhJ=WS& /ljCףۏs67uwȔט38ܲڋRooO|s40V:t#nm}K|szxxc38as˛^p-AF%7>E(#lms:<޽\ƗlL[zN?+osw/餌sFS6cfш~'c6=c6(bn;|ӯ!ust:ogYb)GyܸfQRC∝]ͧ?s1>Q1XOKvV@$MȺkŌӘ[|oTfg!694e#\Şׯ?O\ _<>qZц15ZeB1{X)w"JI?[PϷ;x2&K:C " Qb鳽ehQ,0&F:w K&* W09("$NSƓ[,#O'ٻtQ!q=Et6C(M-U)(g’Ă$Ҙ$2ܼǽNPZ*VZ\@ gC OrrVV^7#I4G=;ceEp ^k~$$3NjBO9=믰! pKe :] "td$Y'&Jweѳ1w}w:b{k O'ܽsӂn?7LLH׼e|p4e^H:Ǡ1Ҵ_.0c0XlRYwTl8|v+22}o_Yg lb#>3T&ܼ~T!Uscn˭ӽ$|R`??^2e. ͿןgKM+Vc|uzK<[?7՜wsNF.Ӷs}R65`__jc݇BE^y3X8;:J(SFOKQMA>@DY)}E$mJ6;g:bz>O+ȣӓkQCGn!Op5{TtEKbN6Gxan&uCfD)E!qcF{8pӜ1ʫ\O~y!oyɤ" [)"`m%dQ0lʉbMUŌg1"ʰxv: '%:Jg9Âqi^ `_/j/I f2`^'&Ʌ EΡ6(jʚ?c90~G5l5u>T~6b{~T;/_wW~}8~$R(U\p&Qlё Ufq!aQinP*&[S Ig' ]u8Ax66V 掵&c )D(`ug:-%ZG(e)(Orud W ͝{w,;["B)pu[b}q#RM&9'jԒ{wX_C+I#騢JΪINe% 1h-v9=;%%vNBiJK'[%"x??|W>p{[=O)re aTֱ}{/͍M |²b(RW(Cx9i=LLDX´!<؋d-45+a[q- /$ifPg󫯲sWٶFf̘/Jwoihbڴitvb _C x2mL3ζ&OG) X0iqǷᨖNT+=7 0b> IîYvtCo@6_$ĢH6[SWYu.[w줫o6$T=yLj؉:u:fhe]M#_tzf;m~3sJ%&TE&OأS_'4ޝ4֧iԈrBZZ-GEE,'[E355e/Xlشa,Z2<9R4Am ߆e)v`h܆-\>vsalʦT}3,]DQQL.i#LC'1P(uKakG|D:],{\&Yxl(P9d:dʌ n1GN<~&o9,kfΜɔIinhbݕeӦw3{n,Xq;ikmP*P*ر3&ڀaK}L#)e㨨|7Em9e5?Zqe_K~Eґwz7tӕ0/|\.mriR~de}߽:0qȵwXJi=y6o˲J՛eKGzCz>/扔w|OP 4^z#R!$E_͹m0d'^[ ݋V`bhL 9斩\'@MOr՝eقEOA@, B%/ÎNT]=,8r啎Nree CB ȧߏ(<ƌg˫88\GΣtv$j$ҚS[QIWK7k#Y6ydˮ,fbҟz5O4&Xp* u -OԱ鳧X0ǰ Z܋hhHВ;IO<|i-8a(ۢ/LĴLago7wR_ƜٓhlЦՎHfPAIm 'T}7'Eb" #,Y23ضæ ;cbuhb[t6ɤ-v[1g }tn.iӛ͑Jۛcs+LB_041N9 y&-sq󮮮/| .U qBaϫAq~2Fx]ɞ>VP~l堩ܑFk(" bL&C* 11y,DҸ9Cq7 q- C{~GcGQb#L,@E(@c&J>eb11P1J%|1$h"H2h(tdC´M ȧ.CaИ"Sgc!=y%R)TpqNT9eR|iM: ks|P;Ei/`XDZ8&_ŨoP,&NhI tA&ɘ]^]v H% fϛAǎN]TS/}V-sQ&r矯<_xqRd:!TzNk $v?H!hdJe {DM> Ѹ|3^{(br4Inԉ-_ ?~yq_@CDFȐ |ʿR~h9*ZT.^aoփ1֠á5rkw\0y W1O[rXƷE-$^# C{ C<IM72C󫾨H q(^g%E["2oQ$$E-m@FP|Q119oQ$$E-.HvIhٽ~=R 1 ķeߢvI|K|uw5ZC#D-8goQY[Բ}}L N+B=I|Z!'oQ+$$-jwP vI| Q$]BCq+ B!B!,I .܆жm̙_OTzeR7ǚwhf|ͼo%0m4*z{{X؛Z7۷|9sH$={6٧r[0 iiiaѢE/]v]w݈.]WUS6zx{ G7w__1c 8#ԧ>.T*Q(C-teqGz*SO=RիW̱bToL#K.g/w8HHL8rر}{?n8zÊ"۷o[o&O=W]u8j˹瞋WW^y[JCCm?Yz5 ,x]\xwq\! 6Ǜ6GMkͥ^>9x׳b 4T O_2W^y~֯_ϯ~|lhǎ??k(/r 18C*"JwO~yZoX[[+V>}:3f38Zkײaz),?/˖-cʔ)o/\! X6G{ׯ駟&Wޟ3gg}A544p7s{_G!N1ۣVN9fΜW_ͻCho@#ĄuV.]ZyyȬY4iW]u\2>nFfϞ͌3꫇w_wE7|3 .;W^yewoVZR7!EO}#8d2… O~23<_җx;A&aٲe]+VpGdx{î]}t?|+vid2=<nf͚̙3k?~4l+_ _%F2ezu֑H$*>?xRϯ}/}K?ǶmaY|9ЇMo/n/i^r '4؅M/fٲeN=O}Sh{ƽSm_{sg8HHL8w?O~nv֬Yß'6mg>nロ~|>4/_΅^#<' M7ĝwɝwɺubyxo'<3淋uXAc=߈!}}}w}|K_{^fB^o'pGuz*r [nݣ^vno_O}oc{\\~O?=?ݗ f<|>?lh9/ɳ>_W\/XLWWW^~e,Xφ 뮻Xv-7n]WW׾56lذG??sv U֭[y[˹袋Ї>֭[Yre%YO~,_=f\ve{daX/K/_>S^{ӽmʕ+?>ݱݍM۽/bڴi{ 9ꨣx饗5/#Mx{(}?1c|J؃ClpI 58hh3Y<`!8I k6:0 uwq=uTbQqOVy 6h^l+MT*d2׬YSy/f}whu}}~'Fe~я~ToץRiy馛*pB}wRbxf[nѓ'O֦i˗맟~zX9+5}1}?+z}嗏X-_\_{O݄8FڦzժUZ=͛7OgeW^[NzǎE N4v/: ^acmxg4wYyZk'O|֮]Zk0͛Gg?Y|֥:~\ zZkl٢t>{˗/7tzݍ IDATuZk:}W>cM[뽷Ct}쭝}߯?򑏌{^Fx"{x{P 8i0Gp0g0k00e0:ch9 ɪ|Pb(10GɁ7@b¹k7۸k9Ә6mQU2fظq#a·i{Loכ6ma{pR'x"/ lٲQ}mO}vbب?g?Y6o̭ʥ^ڵk)#B^otO\wu{ۿ'p9c}w٤R)r/^`:&D6e,]]]7>(lܸq;kyr9*u*CuqiӦnV 1g6lP9韸k'?9r/^g%K8?Yg-~/SOeʕ$Q˫8_W~}ݍM۽/Ftttpy{^Fxs(}Ï&&t:5\)ªU*k[nu-6=# aGT" C ~,#0C:,79LdܹX:T_!Z7۶yᇙ5kwqǨ5.m{q4nBl|O<n&~_r1u{2c7?A{ۆٳgsVo}}I=ʭM{%qg'~.2V\ j^{-o'>_ԩS_״G2ZmZTb,]uː}鋌ǁ.J# QZ[[ihh`֬Yi?7|R7Zc;0dڵuQ̝;(Xve̞=gr-o$Xq^VͲ,N:?ncxb1|6~cMmڵtuuq-d4ٲe˛Vyu6ֶJoo|cJx燽O?o{ロm۶U_y>93Z?ϼs^&MW\~3q}۴[osr9yy}?Np]wj*.lӟ4gx-[T(i>я~5kְ}v>O9t:͇>!>Oɵ^ˤI8sinn梋./"{{z/|cÆ =\^͛7O|v.okxhoo__"k׮}ukZZZhooWk$baގzڗ q(6wKwwwȼٳgik6ֶJ+s9mX+pwp]wUn~'͛7i&E{zz̶m( ^T*Ess33fGaqŏi}+ .)J>ϳj*,X0ۂ7Ҧ]r%|k_uŗYf \s +V>J2/{닌ǁ.J# 1|["Y`wXreg>8Yn]7938936mZYb~袋8FKw3f=ʹ9SK;c \(Gy$dժUL2.6!^Z&:(N>d? kٌ5]w?OGX2l^&ġ:f-Z-?y,Xʕ+袋: =tUBʕ+׿w駟Ή'ȷmo//@ӦMcҥ\tE%]wqGss3?;+G~ओNbҥ,_|77lڴK/ti6MaGI;uuuL4|#a+_ۡ"flpx9PX4JC?S}+i=zȂB!8رSR(:?B1AT^xs@?T QcDlus^Sujc&# 9H!Bqxꩧ7o$BLHrx!B!F //r駳cnQ/~+B !B!FǗeN\_UW]u%B.rB!#8YfB_@BDa~wbŊ^bH| Ⱥ.B_rxSdY͢E7o) IR{ߵk?8xGSSs#a(X`zjְB.$C([x;Xp~F!V!&:ICV"ଳ"L1n<#yL25]]]UL&wy'uQ|!jķbd2tb!&B@L@␥q@EZ;mmm!N3sL 8 Qk$oB? D$ qȸXp!=r /fŊ\}>ׇi6<?===aȒ%K8So}#8;vEgu3gW_=Rf9=-JlݺL&͛ٺu+'xbehetttzj\ץ :;;Yz5|x<ΙgYivŪU$IzX=]宻NOTB^{o}[̟?;vpI'a:;;1Ms=ɓ'Fl۶իWyرk !D1IH2, |C4Q?׷8T*ӟy1eʔa m466/CqWP(yG}}=k֬G|衇d2A@PKZ駟ί~+.bZZZؼy3.{袋hiiaӦM{\~h{84ibx<>~w}7oy[ϡ8$%a+m'Ap 'ȳ>o~ yꩧXz5^zm.կK*qqFƬeIZc褵o)*,Y2f9uuu:0 #yr܈`܂  _#c!/<-۷DKK ӧO' +ztttXܹsYf ݸK]]&M 5+Wdԩ,^xoSB[[kk-wW^?䓣96y8[Q@BBLtoT*ET"a{|7޻455.7of֬Y{3ϤaaD)UibSN=yxg CQ(F-cӦM83j/(yy>?smo{^)%]&-ā1޸聽MPz5B=!&iě4MΝի+^z0 G=w4eqiqqF( 㴵!L<~6m;8Lf2LBGGܹuG-sʔ)l߾rmm۶ɓ'm6zzz}^L67DQ4b_I|K| q q/{Y!Ğ$4g}6<?1 6.aŋI&Yz͜}̟?͛7sH$6m>5msj*?8s Gq;0M0HR\pcw￿ ƺun|A0?0׿5mH$8쳇]O{欳ڇ%,ľb;c/~7"H Vlۮ-f#پG)wGc՟1gTznU= Za^B!a(˱rJo`WE!WW_?Q)u2UCTz9Uzo׺yۗLvY!B1(>iO!D͐SB!qF֯_si !$B!t1p1j!&B!BQ$$B!BQ$$B!BQ$$B!BQ$$B!BQ$$B!BQ$$B!BQ$$B!BQ$$B!BQ$$B!BQ$$B!BQ$$B!BQ$$B!BQ$$B!BQ$$B!BQ$$B!BQ$$B!BQ$$B!BQ$$B!BQ$$B!BQ$$B!BQ$$B!BQ$$B!BQ$$B!BQ$$B!BQ㬃]hvxݔR 4o1I|ķ$N[LdߵG@H44b"jX[il$D'=:o1I|N[LtߵK@Tu0j+H8TU7$J0 ķ#@{dߢH|6IM05,aaE 0 LIJ,L<oQ+$$-j$E}@F?[GGvCi&X an0Б0 "QJtq"He:s; c`b,Ja裔DamY,ZLqb1.t9-ի Cu%=‹.$Wร$b$[n̟?7nb̙5Pe9v"gscttw帣´ɓAHDWcO<*&/EJ~8Q2T*ԩ)r(E*HS*o7@1ɤQQD]2I2 8HA( "@s5 SaHv,L].LFiPH2iD!历2rgCDs%C" XBppSrE "MbC! .0L/P0$`qp 'e"+/|@8A]q , f[4fghݯFf~gxul|-$O3ϒJ|M, P "#PL&Sy, ;{88̈0۶=qȗ ,0 bh,!WHn`LE͓JQ*q nd!*D~ B"b&auDF@.뢂\K:rۧ듅 E 5n}4Q"Î.7Pp=ô4e&l| \cRKD:"SAB.GtEKSl Eww7 \La`O:[8SXh!+%%_y$1&On-uєItS[g;D:ȅdR10 p8fmimrJ(MϮNZywӾEN?L֭ysɤyKg **f&aSt$q\a IDXO.؀eh\ߣP,`bPIӟ' 2}$ZJ%b1X&L@DZ0MA<J$Rd}i"aR(b B 6u$t9Ah4~ˑf&Mj4 4aP^O"]~xKve]2W_⮟}0|rRA!( DBL(oΝM9@^;! (w ptQ4a &L~WĜ1UVضSޙ4Ve2PJ/è<_JiL }$ |Ԙ L *Ԁ 1H040 RYFQ"0*{},)+U?P޹Q*:UN,[6-Qjm# ~rz:1 ^R,hji$ }S̙ӈcGB 5\YflL@o/sCCѽcN&ա\sò ,"_`p2r=rWp0Lê2pb!vDuy݊N&00M<}<=_|s,\raC bjggw2Pc#WUq{ǡ!~M7]rU7.Q/;PʝPDay"\20,L&lg$S_O:.]G-tX,RuItI1?iL>tX2._!Clz^ٸ9s3oLJ$X0RPW2 mI̘ꫛɋd0#LnaRK3gz{IygW$ i6K'O-Ez=twmm-44fϏp\TN@En2s)HS}= b  P¶M[a;U;#E*4 dK+МIp^;th%tډ"E0 BeaY&0c6Z+lAБƲl]XU"0 p=;f`~0 |'>(ECLW\[bXa&a>1+FyؖFl0 @S?Pĝ`˥,Vag9$IYrlˎe%Vi$ zW@&@ rhAm]ؖb',9jKAD{ֳՎEQ}YK{JWC`1e6TUE=Z+bJ8m!0>Rm(4!`SaZ9[@eIEir( `,5[OzǾxOUT(j]s9bFeER#s |50ְleI k57d"r"7π - fT@K0S*hcPġGd,1ڠ(e5߼W~z,?CU=_w"1&b 2Mȩ˂p >3>⽧=1EЊYJk\EJh+, A4Ep:S; ʮ3;d]’&z/a`*%[.cϥ$M$s@H^ٜH<fv]`\1="Fdr:l1[woS Fӊw#)ڐ{oI6r@XɵZ!& I 4c4j؃*gZ#̲(#{7s<ؓ\9 mh]m((;O|??:djMϼw@?&hmH94 tlEi mZ)} &I'rN4݊r!1 c U]Ӷ-jBI{]!'2 xڲsܹynE 51%v'''3q6 έ}66v[wxc"t:jo}#3|㫿Ga2}7F%o\} ϳZpS4]<[֌6}d"$e3* #\^1K,fjt{s̓#c ΝX5mGYVaT]OuTyN]Whp(Lkd^q]`"˙zT`#()7LC_:Vm* F!l L=q9Br`6kY:k Rt]Cwfs:eccDe izO#1Eu cqΠ.K>lI@]ye4߽vӏ5Oo,ҤoMp;+iT)#@H"),k+ŒՒ6yJW`M$Upr<$QGgYa *KYT(0O] Д{*[@@ cZN |d4>PHf%LGVKpq]DM|>ǨKG bH1Q5})])`TerNU;RS'H2hgh餠=UUb뮑8Kʙ(rO4%]Yv Mh)#H룧00&̎1n$rcIa%6m`:3_I9ar`KC$cAkK`(K^BX a<-[j[|&d gp~gy7^.;w$Q@(,4BRػ U(/5JeHIZaB;̾´6$0t S tW [,*u0dq83f`A|}ڔ2dQZMhhC* +*ń>6hs! XkdF+% WhęB%At]Z4ƭ/(5r w=xOzړcʺfuv.ʳ|?ds,V=癯:&[tc8 cwțns962'S_D&o^{aBV'OȆ1t.B)χR8c)=5h'\G`Zؘ9w"G4M35zw=hk}_9o.Yk?/lLgSdRK44%HF}W& c$f0OhzJ TԲ\,ѲcbTT2oNȆ'#ф|Kh9ɂW7G>cW.u=5'sNʒFózcT)F%ĵWo0[4gv/Юw/!m,Wllnҷ- H.x |jOb0FLGc c}$dPҵ"Zk9CׁJ< Qkd#)S$ь677뒲j9>ֆ@I6$愪r#DPP9mB6'cΖT:M*Q.EP9D S)S"8Hє |䩇tA`}h<p%ZYreю64D%Ֆ4E)iԅB VI6t%^ XvlAuDH9b@++ @X (S Y `&au}O6tVhLUV9!FtM Z#Ţ\%(cGYX/J(9㺖 xQ1,ەQ%Kk)ʱ++}ډ;~hJQ+Ŝ/|==:MO ~;} /s]6lNKÝ=3|ObFw| P ȡܸvē=1;8b6s..p(pN bۤ7ط=mPOR`9v+lfGwnmr=&U}]& S k6Ūx`\rf{ݝm⋣-J+Z߳Z( bJS𽘱$ 12"Ĭ{IU["L7K@ez/ Y->}:2Pa!Hߋ.kJ-%Gk$E"JshHI6i\1X.X,M9yy L^_ϼB۵Ŕ4JCG马-g ,mnEz/SPeQp:WE[KY-9u=y3',9b0B+ ]̉eO ԮϙV paTw s,s0 z]$zaQuEH9ci*&%F@ ^'F^sg !ڎ1`cկfʤ(C+E1E2*fM;FX(o(뒾YuKJW1 Bv#u( %{bV]{N6~/So)a(,9Z{T!Qkmä0fH4f ks4Qصpoct}7_k Ɡ,xJh' b3%K۶-'(yik1JSo9} ih|fNԵc ͡sF+-@!Z|zeY>b.])$FHZ`І׸s@ (__ aG,p8ea1YEVs[̗@m T1"DɌ>|!]} ;yr4fs!dѼέc6;c:o\fl0]'@L҄Gy;;sϿ u5_2ӍGz_ǿƙ L8woUlUgLҍ&p7e/*ELNQ.DrcZ9Ǜnɢ!%bP _~/恮]u̎OPCc6&j0Qoz4?-T^N*AYOֻ;d>w9%1"qHb@}`6L0$lMW [[L\0e]w.ՊdLʄ|4qr<#e1P !PF(M4ܽy]}o\ݻ|?3g>?^:~W~b{{*Gfcx-v7:ǹ]f:bg2Ŏdbu4f&Ϲ[~k/Ӈ+ .\lZC 1L'#R6E@ʄTFSÖY+f_S &cK̀Z6LN"UJVM B9wʄ:2gxUv6W_'4O>A^{)ď0L1S5'?(o^.mplmoEQ{FhVF"Z뚢pm@v].J+ƓXe𾥰i_'1&Ic޵=gZv[,_xl-+y=O{ RXWf!6:YЖ3|HQRa/yͭ]>sumΊi55's+N=ʯ >T UQtMrOk: K"J)c%B zy؜ne F($I&Z(LK :=r0{Eɬm{RKZBJ4[C @wIX҂vrIQJY=6]-"pT]fHAfN$hCwd2T4rνղXu0K_߷oRc,Kp3) JAzs{bWX)Pji-/M*Fx s)11jBlJTZc3hNA'$^B{Vöc:NJd #31S`b}RD#nP)1Jc2Kp|aYwM)FHH S(秎ԞOȕ̏o͘rXq MlymT|Q ΀I?5GK~x2f CSTCozz˜J[C y0\Ow` lln\,}`v"qU+ܼq= NB( Z2{wMF1?9w~HW^{w,ٌ]sxģLlj IDATO%cZ/٘n1Tklnn~wg|۷oTO<glg1~6x{#vU6+Ó=F1.d_7(q>ɄB\&n33/[ԣ]>џO=bm1.gw6(JIoSYE! bI[|P-ʢav"%FcRͣ9m1N1$ƭF"S3m 3*Ah9q?d8>qe.;VYc) цUӱ\X+^zDY:>LlLGXNط(c31TǞ媡ov'[⺾)D K8k{M҉ՄH11O%*Xk㓧g 6P*iW 53г\-Q`TČFkJWbQ5_4lIRƱjRTuEh.c$Y1!0Ȏ̐oQ%7(11"g)J;X[cb+ b,wx*5ƒ},H2XeנRJ1U#B M,E+["&q:F^<%}1JV$/Y•&D]d71&la5N7t)QEve_ѵ=*>$=ĨYu ~E"QC:r!>Ca3Pw @wbF)'|YEgio_u7&4mϼYQWS~ ߘH' @wyC,DN9s7r7Ԣg5Ny=}u勺}qcO}q + σZz^2A. "'R>2R~6$Ho.t2߻C׬PpEII۷oq||$1G1~ep+HJ367'^͢#xe^{u0ʷ_&/t;/;7n=m\nX8EaULG;;Sʥ}O>EQM?{rk/qp*&Gγ9e1;=< cĔirqBޙӮUa}bޞisO&%+acv0MO1ڿw۞r'y1;g2mھasYMhmໞU!Rc]VPdjٓb.и&mv0ZcX2 tӸRJ&m{>0II5Ӵ]'j]הf:a CzV˖)I֘|q<r3о&ӅwV $$\o0$Wc|N`t`#TɵjK7h31.SI 껞Q=ZGL(mA$]S%aa6> ]RZR"%*&OJ;_sʡY #&)%BڑMx|%+%>%`U1t2Z<|rjQ]QnHO;Z\SD!^krXeQF 39kcOFHXPG.*|C"Kz:M߷8Wf  ,: $;ƀOo()3oQc8U'@BUt^`GOʙQQ7FYJ[PhG=}/xP[ɓ5Ƹ7x.I9SX; xt4@P ʲ4[Q;MbCQ:4$K=}fT*0V5ʜ%b#@GLqdDr(g+@M#EzӤȺ#D63FV4deD1 >6}@geZ(ڣ?g交I$csJhe\䉇y I׮O6,8sW`CU/YtœfIٰ}1LC[|^5W=O^o?'t1Wyf%yjkoW}ʣr 왳|뙯r|x7`T4mxƙme<=2\p [h?:|ݭM>%66αw۷n>uԮ/JL4"(dΙII `I<) oCP9,K>sKI,|QX$ pOoĹ~^ gËGx@YgVc0J(YX؝"ҍ{Y3ZK9rZKipUm :)n0Zi6b:ɣ1d(#JS Ug91IO̧p!/2~o27W8?xs}is hj9 }<~ ]RÕ'g_bck荊Δw8<\ХK\u=V]`,9{z⒰rYv:sCN6Jιx<@8}3/b3L늣&Q8X%ȞR+( ekK{ #A~T^mRPTy*}kEƻh{Z~} I$ ѕº3 uky+_KΠUgNao_kP?L]x$S?yh*"S)$}@~AAۭQ.zx -}Z))*qEV9Ŝ-޳ʉ7nt:i;{a.>thGOE~s7zt]VM[?Ͻ Ii\xg_.:koP9×ƷQ5ƹw˯B;$)Yi1@hHuy1x1D;ttqMUXZ\Yr|9$C<&%ʲ09}JL|~=ahl2[lom𤅴!jݓ#966&Tu1rC)l3TĬ\i*x%+AQ8zfSت,8{Ot>S iy% ]8/i˂ѸbTx/ "fp[,ɸ&' Nf ʲ,j (K4VMsfrwmFYH>4Zⓒ J\laV 1D#MOӷl5mc$|-h%mԽ[&iJuU )9(k ]ʔEIx)rޓج6闒z{ϨouVż\UFҒhSI4>aM$V}?$)1T.j*QŒ Px`{T 0=Ÿ=eYZ(}PLbXZ;_)CFjUU$RӓV@(qhqDrJysC@=YN9RL5M0I,>]J1p4?™4fΨKDg+Dq>r")myS1D UQ0YkpV!*I[l4߮EЈ +E'`WdQڀ4YGBS8ŤtZr)a2UmЅ<fx>54e1F䁁.`#XtKwC($fd⏅x(p}e  bHH0L1NSQ@ѣ=~lloLru^Wo/5%;#'~ܾ:|ko}!v&c0Xј=17XoppŪ^y. 5\7.adIVVlMƜٞ9>:gw^{;ܧC}{B[ _]R}k#F9)5PYYQ1bŘn'`^oI975(|}SVFƚS H395z9,qrj\ %>1EeL\}eфN8<GjvlM_v>c ϳm,9% b\Vxb8Ѷdv-ks%V-؝L(GCj$W Gl;ƕĖilI풻I{x?.ę3g%(mQp(3lm !f1lL/ 8Y6Z333ޢP` x$FŻd2 J#\E{@{hˮ3C *Jdɲd`;ib^ ,iBW7Y,c! 24nflcllK%k.J5o~L{?yJNHo[޻{Ͻg9NBnҸsIAkCJʲADbTܗ#&! 'c^KTm1`t4c;hL/A#] dyb`Z 3IEʑE=P>GMϊ("omC]diԊqh 0GB 2ƣQWyGQm(Z)W: x˴ޤhu 4JB4Ρ}-u4&/ɤHӃ*i!0ޛD^JE Gc,&aӪlcwoHjLo'@d1K tiQɈ$O#4K7@LrV{, cXM sO@ yR|wڒPND(R8!N (sQ[7&|h4 5 " -;&^uӊ4"·k)462]k\+sus#[fo5Zkק*~߇lkbRc F+$~G8濟RɃclVl:RM(|!8Ѧ [W8r͔͈'h΁mePL+@19[z4*oO*auuTi<ζtsMN&ʐ&z<(+6㢢hTtӔ4StRruۚ e4tMNQ8g1:5:+ VsL*~ʓ @@i8byǴQuՐ d'CBTT9t }A4shh 1ULCd (JhLtRIr&{t+<-e][aauJG5ltԶ"z(8{3[/rl8УႣ(!N|BwWOoT%$MӲ'$Hb2X3ݦ.ґ3i|Vu L*2eX-AJk )WU(c:EZ'3=BJ*P4TeIwg #MC) -Udچ4 yOTtN|"lFFٸli)`R&֯ݘ4΂gZ=Cz #Mj6oZkIQeXd !61PFD H%U@y(,2Qp(MwHV`&t\;/QJ! ZS }_#½PX%T{&R҄ r,('|Z>,:dhDd bpFM KH|C:mwyO2kܑva;ˏbt5X8Lu1ze^^[cz%9E` bdi!%d3\2(ǕG+.3\;oKT1LI [)ɶΛ;,,fWkv7 *'`/m}neí.&|SO,ҨD IDAT,d6 z=Dqeatl('a ))FI.hҽb,ղOY669q뭜;{;MmpV0\p4OIӔq7I4={C㥗^s73ZqQ*n勗q.0;3O4<׳ŝwIYVln{gav~67 /Dmt2}7Ξ+WXQn@:&,A$xn"܁:"UĦi֬o^6d,-3R%I?`f~667R:O2W׮rVⷼ z)9A8vq^:do?@Ք|CBJ#VVg!Gǎ24,`e:)X\\`!083/Q2ЌC?˸te03gY/IIQI#8KG)Ѯ&0 ց I95dZeu8r`owjlՅ%:ycdg M]]aM5TMR*j)IR>P6hYBjsL 8( ֑ sH畁NfMNY1@P adRR JIzY~iID%)A&tS1a2eg4ʪBf@e4U5s繲=boQM:O=w+KsA0+_m@UpqhK.r%nlmmLAjE lnl4 GFIŝwIQԵ&1 C\\t~ǎ!"v`kk-GsE>x3=z4>8wuE1E E]7={n˗/4(r ws7/^bcsO1Q7F}n^E|ܧak.cBwbĊ>D`ks=tfe2fu㏳v+ h=&.J'u\X[7D)%>Uο\7rE^|$~͍Mܙvq4Q=7#뉘6aa074R§4lXO5ӽܠ`ZhzY,Ʉa]#K&cEAc#20Hho:s)E'3<#;ˬ2 2&Νgan#Olo >Go t%"YBʲ&8EQe)2ZyuecobHhhH2˗63;gnG5&hɴb2iJKQ7H45ǣ{9Jw8( k-J@?OZ IJԖ!ȉ-&K+֤:C!PA %N$$&8J1P9o,f& h H؝GP.4Ta !MD"j))|hh\t2NvtҙKjWQ 'Tug')IVto͘DJ HȲNp7)welIL4uSBm8D]@YL ;]}/;nϡTiEn(m@&l.uOH0=-HUED LXא9ŸBe+i/r@KWX+I,5`vv˗P55OozեWGݚ'>4x7=y}m~o0&aY Bθz^8rcL6XXZsYsӱe׹|*+KGV}C"$n!u]t7CJd2ڔuEӲJCH__p폸@r-looc'?)zwy<,/\d:r2l Y^^fnn $YFryffgAPS0)_\Zb:g`|koyk_FE**S8SfZDs-5ҷy|L&cT,.0H{YXO?p{$no!fnaCǹX2g^xr|;zl]3W/APpy})y'x䡇9|A.(kl#B J)(JRHLT_D?g>)VcE=ZL4T#=cMhE #גRZS"xtp,ݜAT[LuìԨmO}ťț&9lʸ;dmcř{d&f1F}L;il43lR,/1ZbmgczN n`4.jKuJ&eIU9fff)nԡtLqX]Rh7 xmMYGPHyn2?ZGϺ;QUUUY4,\VJAj({ 4pvBfRBRcojDhJkP&41= “8 ޣd@L R*!BR@b:Bj(kϲyMH~ȹG1c{2R;xrua>3e[Ԍ9Uѥ5!kت] tVxiQ!K#V4BkGbV DqS$&aˣHi$]|.i>ǘ뗸j![S:8 !C{Ͼ¡lWOc%>ʢ%1) f{ RvWو n=ξg,)96^bqihl=u$qy2 4nZ!l|z-O ƴҵ)$U]3ϘJNLD% :GMIRTe H.J!;"MR<˨*z;p%UBQ 5"`E(jH%hYz Ch&H42Jrsm¨ۊ^.XwA8O| %*歷 AJw:e(X-hԂG 3G91$ ֐6^ >h 9HR#.$;`kkXvwwvヌ{RT*%:0Y2O99ܥJUdԥr=SWHG/}|vi\{o5fYt8{eLC ;{cnrUPU >XpڐOrdMNjC]7dYFfCJ꺦B() I&I_7OkςMʲ'D*6B^<"Ji?w bs(IN|ksc?h(mml/4wp"6zjREsy@ {pR s4"2< 0^Q޺J(p6`x<ٟ'֑_)}n1~X8YBJsemw(K!IRWw~ NovXY=B[W2ٌ4܃ǃ=xRٳ/I'Ax&3M$^&KRR4eoF6H|FP55&ZB >ADt9dpleTd4UEeLqsi1aC04L+IUH"HSnuMb|CQfbDB" ZH17|r==Gpqi1=\_غۓo#Pߤr|W$)o|q^]:aFe~^3 Ʋ^]8w?|3|7N>ͷh9qOH^K(i^KϜU3,g^$>x;30`7-F!BwյkCI!4&|B\`NޑŴ  qP9x)˒4$ipF"Fj\jL\mJ URJFjp!XKBQBār`6DxnmL!D+EL#mPUn_3MRjcy ǎk5Cl8|?I\!.h:EM [Le{"x@*Ŋ83!%hPm,sej:)UM7˿$v Sd |ܩv)3Z&qRic{ok.^=X?:Ǔ iCY[r/O)wGWN73E7l\p|$ 6wwY=:^E'HG5)quΰd$#S8{C^:sno@Ӌ=>!$!80OYZpKafv@aTb* iA,[{C{{z=.<% Ȼ=6{T>.s'M\& q"ݚc Rgvr,iɻtf4RyA"h)ĉ\˫}LJ RHE^ptZ#M4$YHfwoިdoodZE_TwL<nJHa݊vO WyǗt/~@ .4@{S=S;=w> o{7ߒyُjLf:_ s3K?\8P"P/fX5w,dol!9ɰ2ۿ= &X^)~g~?μ(};yF~7HK"?3(k_/C4S9x){W]H8|*rs55ȿ |׼ {{x|;?/Hnq\~x9nΏvWX_Sr ﱱVaTk]\yP><t 8j}d O BJф6ۆJQ2F{Y a.eSD<&#K@I $PZQ 룇WP H񞲶TvPҗqLj˸taQ5;W52i,SW9D{&)&DJ cWhd x$JkpȵVPxA'X%JB&a Fj84UPQؚ)1>PR Up{M 6ָr35Ȼ`R2ch+Wy; ssK4G@ߑ?0Jԑ%dLBر8v(?{9ff00iM]UdiNS )v%k9L8..ïTQ'`$9xmjxh/_޻A$?dneIYX&`.~wȒ_BE`\a6U?˻^/?8ܺo`c>7DjA9O@"ڟ"Dd(?e >Jȃm_qޮ+:xT׿o{mSyCS^Q`O&p;mNIbog'N[; n<&fE1ER:sՄ-RO::bDSMZ_;Hz=ְ>p!~i x'[fn~_?>@2[ x"7&RZ)F{{:%)Y鄲%뛛#~/=O% GiQ*ۻ$㥰j6^'CyI: /*E/Ah10o]$0BuM?Ix0MilmEtEIPtLg~m@q6EJ.礙"+?EvFYdu%EH06TuCS9ʦnIhL=S.nË6XG [(EQ)D#h-iC8.OP92aP"`mP4.x\ Ir)%:EJA522̠hb*Vtα`a}Mc6*!KR&`/<ՠ}|sM<+t3Ær(3L{>Y{'[8|sK[;=I⿉:4nq!IUp2oGRG ƺ(Vy讎PJkFKAHW~17/mb~vް8;v9saJSt;sh2UZjʱN\0 B!&c&{o{!!xS F`;>Pb+gr9v~1Wd=^x?Juj݊<6&5ij\ 6|a{Le,G%Isu8DY:&EG4m67FHHMm>TڀIGfp6;v]45$@"`mMx&q8IiZhqd80R( #T.ck1%Y:H(wv #:Wp {Ox pZGH S8Gp 6xkUMS5<,I$(6d|W?yfWz;۽[j꽹/nCrIf"m8`؆H(ę$َLdvEf8Mrw7kuwu-w9[89F ǀ2p*~Wս}ӸQJS=uY Gq ۧ/Gu w69azw0Nz\CCp3F" "%$'(X_Yy^&;ۛS,(m3 X^^W^=K/iʪfË]c zq41C#vꚡ[,ͲƜ̘>,& zrRTڧm0>S_Q6 ʶ`2 {IvRip: Pớ&УKnw}F M5ĘF%H-ɔj|W^oO[,KgVZOU9lwxi!5Y]Î+[+ i1I!q.tb46jMq.5MSz'Ƙ[ -\O"4^2*mέ& R%H;53F)PRbrOSIÝ45zױ޳x/s \v!$KbEN= sff0l23'>sfffÏiɨ=e!ph>ZuG5>Dۛ͝CCNpMM g0ui%Z|%5ۃZ28եg$і錾Lh-%G,W,^GfTAuܡi"SLLR)%q,+Ҧ>09; 1zmYlZiBZ,Ky'dJ@6)Ż@! !%J VI!Dڷ1Iu`cs$ttFS0w~3yDgȋ/ݟ!O>ۯ45Z ٔ%ZKTuxZ#iÚ%ۨҚrXCʲ RC!H&cT}mĒhJIh)1M9 ߯\1-R$+0uj[A];ٛFk RQ2P uiI:K4vd7٣sA'!뛎 }6I\4d:<ߚ8>ZB5JbCEyRTȦN B:l]cm cvR E!"F2]5=tɺLGbh3 c4A}}p]uZk[}]!3ׯq);m=9uz`h+V7Yﲵ p{JȩYޤ2 Ap[p;wh1DQw )a1:<@h}oC_]a"Ndtnr._±;KaLgſ{؉cD/ 7v㏱Ns >ϑr6_x-{ _$ws/<R:v CQ^=Q 1u>O&g>b|׸reSk\vHO}77os!VWWF-0==͙go7np}UY HǦn6ş'ia&/  kvvvHmHbMBTKB11X16U5fbbghp Iv^aw;LNa Q*~KW/ru ˼~Eẓ_"JHUcҷ`nv>0e64X:E?m\eY3iDAJvOMtJ3,˶2:F15tD𞾁&=%,ƀk%zj:lnqccr~?77u{tsU->dDZcGijOӄ1[4h-[N#^Ie$ʆ2)u pic:Tn,qΈb S|edmAA!Y jk?> D2c7g!ؐm(B$0 QHaxޕl'1DrQV%!B :&WNNU44u. .x`i\@# # R S3KN@-H p}qsOQ?q?/K>COӖ^ZE~mȏ<|N}iz.K4gW˗n+]Xk9_ c +o]o?EK ya.'>o5/y~O=N/;_$ 3!f6G4H7u̓d~+ɿ(=o>S1].R-o83g&ߚg~q0/c_8*bqZ2rw1=q׌E^?;LdA)g㗾2/?Q՚ef:G8("=3]|7/gҫr 7$[QDӬ\]+ALpw) -yk27?ˉNpW>;_]bL<˦.9~qX_7D^MϟD z) EhoukE"\cy'x"E Jx33?4t(#H\~o>*[TUZ,kUɃ}CwRP75ZUx8j9j6V+s]ES42Ɍ&p4bbC5V2amc,:D7 K>:ј7or9t}{l`vnsۿk+/G?wSd\` W t;ݿɑ72X8}ol30#x@ub~d_9Gz-]YPH0Jٶ Ux_u /~r3,!%gbV_yYGYO0sÊ6-T{I(#@/nx^~wKz.,25v@NIdiMa\6[iʲėF'k!ZI(-+9oYZc˰]IwZ1#H &(st'2h8GɻM4Kgq6BAt+bREG ir#몐j\c[LZzmJ]fgY[%%ZJa*'My:fH=RHzHCcG]%Uخ+hV͙NW^~N>Rk޳2U%Ĥ27&)/:P%Y}]Y!i>#)AIE.c\DڵMJ,dm1J%ŵgoAGMH IDAT=>8wLdu=5rX2ٛbؘ)6:y  xu wvHz_z'Oq֊xwqBa;>.t;I}71ڦ!v#n7ʺ2JJ Rp5!&3!D`m#oEnmn'g˳A8+TQ 83'Np3^Gg9ovpȾ}br;%c4Qe2cX^^~79|{}3󌫊~`9`82($}AJoNd766 {häfи2m.czFkLd% QtL+ 5FgTԅFI%&R5iӂ)"zbhgY۩!O')Jr gorb56)TF_) 3tp;1X N.wٙ.]7"]֞L8ˋln2;q'7> ]ZsEnn0?ПDkK3 +ϰ|Cw4&y^~Fdӯcqz3._.U Ǎl3gVI >qVol\smk5Y`9 ŽwPRq!oCy}j&#BKO]oGb۷K\#q5krzH[׸&1(r9o387+ׯpߺ̕'c e>8 HS3F@T9wsoI5ǖܼNd\џ39NWp]GgeDT{GRBujny smqƤ:1BfBRݮYb! Dv{HBU:9z(KK1O26()xGBri>8&/䩓|_'ERNt-'Op}/%+E'O\V{h~c+WMMgϰnUVJ cs"+ҹ[Z 2Q)%33lmm"URJ0y%D`8MDƣ]_)6!X:>/?x"yo{<1h@љ'gskw\Uldzj!ř/MAS_[d4uCw#59Jl^/GH\F I9*L9F!ș[vօ~Խ,,A>8w (P D@I%ar(m٣ G75Y(W ~GBrϝw[[DXG s1(EiPv}HOx\jG][JR#z[}1lc)]*Hk.Yޥ >Iw4.5ڒEUYx JixP멭Mc!0Z_ڝYcS(cZDĨ/H(rcUyKgJ()KxevmBKB])YWQmn#D`8A xWqs)rdJ#R YSqyvYAJύ3v;ԾG *jذo<Ɂw~Sؼ&0(BK0ʗDMCE/"2͍̙@vuD"c7BfA= hO0ݢ 'ۥ5Z&Z  XAcb1OXKʛYOsh2CTedwq5JZ%)R)uIi@ &HTh' 5DU3$`n}%!Dz?V[_Cp("uZncG.{]e)b9mC&ؐB9B B!fx@!b,[yftF 2@G[K-<58VE DaLƍ`kkjYN?z1aGazn7ڇƶ~r<泟<޻D @J|؆яm u ʲiQߕ#LRC&&')6HӍPK,\J ?=Q&&&|<3짪j$o? k׹x<*qH>3{0UUs{8v>Ξ;Mbt:y)LN?A s8xk& B rzZ'0ɓsc**w8k Ecc8BEOݽ}w,Kppf[l$["5=RiF#ǵ%o8#wei\efb?+x!FlUsA&)LJɸn0dmm XL&9ПEĴY5)HHTe8DŽ)tNyn0Y( !E DS*\XдSNc yfTU2qlU>}LSlT֦#B*,KR$zoӰ%7F+]K% 24{(]:D6:Z-ĵMyWc4&+ZO3YoɲkH5+YnЙ0UdLXj稃m"" UZ2yHE:M M{pr8ᘿ. +hp$xELW#efˎA+H4AʈdXdT.h<7e8V 1E eyHOA(Jۤq^I "]B"a01!^KrL)@+04~'KAt?'O(Ex5[bp< I.d0Jd. m"jh[YR* Eg/NDPJbtRH%D);v’u4DEDd@$GtYp!QxiNиk=1{v1}G"YeJT$߇ce\Os4=ֵdRQOTtZih< rxj#Rhb AwM:p3 (E`HB!cDQ0Dg ;Ft,JE* pQ'F{'Xߺɉ;bgc[9FedEŒBfx7x1P E'J) \dWnιf*)8wvJPb`ii흊L/J5}:Ss?j rm8k[['N[13;nsE.αqi@r[,I 6VqН\M=7At`0vH R9Bm=xr\,`]bXhÇ]ijx!'EK2heRJo;/* R|0rS_&^3gx衇8qg;N)w%PA#5Z("JB۷|2yo.V\Iͦ2Tt:BhġCry"/ј;g3Ĺ Dld~_L(]@G@ H:T{i# Ӵ")0&'Pʴi#is[n]W\v<+X\: :>dEꚪXK2˗.Qt2r'-nwxN<Ũn_enˇ  1ѻNN>{ uvweuuUraL}$x5UH6QY273Gq ʴ9eP\_ f'dRoz +!7}S]L035|8w|h&2`vz"eEdF!d?h\`sc8>Qb-LQiASMV1-S*!`2-K TI!Z)bL E!b,/0Y2klbHQ{I\H5kSYN1oWe&MOlxG] ];ee}tG` Gega6j @Ti# ӆjܐY D٪)Cq!͆ 2%$a<6*C+"(jWЌrap%AD*W1EIM,-C:nJEkH2'-M TUu]ٸJF<yB H @iw >:rbSKvZ!3% T2M Aԡ&x(6N%.XT4MM}HjE nf&G [&GE:TP CZSDxljx1D [6HU$5hRLk^eԌm+ݬ6ZG`xU]&2Emkr'UVhڿͶDKMQo!Z?k{QڣCj1d&``kTk,5SĐlj|(!F1A*AHcDp~n#ZCh-2\ On4|@ n}hm mnsOxPJPG)4c-Y!DŽIE|L;>>pO?$1F^;NPRqEu(fii黆n7iT(k,K֔eIU{@^)%u= ZBEoG¸,q VgɳQΑDj" 7yQ2pOG(!ﰱ6}}è_BDGf%Οւׯ/$=eIh?/ovKs ʊ׮'3BH͟r\$lݼ~;d˺1y).UxW6J6'^)LOrmL^q cTji)kaEL:[ʈGB! o>Y9r(uS29~FU7 ;8XJuMњ<(2B=RJBS"ɹ&"BH2Im}JZ Al-a,*CߚqCᱶӦYS|+UĖ MS"xHjC mk'?+{S WC)L״4.ZYLL@CU6ԮFPBҸ1єZnM*.N8h|M'B)O4jDǠ%h\B)N⫚UR+*rd"c vRpr} !㸶q`$I65dy–# chBC tx ZQ+&I2\ X05d M`*8I-Bg 4QE|ǎHjnI$.:z̤Xcqh-Z@4HCԉVIh\ ŌށQ.)i|ûC8yQ]R7 N&(rd4HM$Cծ"dc$UP rȏ~ X(Zu#T(JM"6lHj4 D=Ƨq~mMcнe߭ݯ[&A~VLpZ{Rm] T%j Sk6F2\G^U0L/$-%wn=F2쳹Me-Z ۹ @BAu]#QԨk(u KSi`7Ms<\|.>.޾ͩ5άHw~YlEs޽uSgp^4"Y,e> #feICsV1L*[gWlZ+=Nk×_}zyC9biCD⬡B=xoG~CYL7|ӟaV6hȴj IDATXh"'I3TPR1@#gGkV#3=%FqAБ$M֟s%Ihu4oq9!i:c4\#4ϡee&ip8b &q A^Q$0sce Ȳ(q-ZMYKrtl!iq~XU}*t0M`0}3Vs("`XIįŅWk)$$IXZ]E)ǚ$a)ɜ w6X,"msB0M(csl޿8<ÅׯݻwW\xҠ*jcƑg.^z,E]ATi/p)fM(b<"vvz ޘr^$ ͽ9+ꐵQ7^~/ڨd!hB*T+n,K(&8/h:E '6$PRM!$iJ:생$RV%"M fHqI@df;v},6}(ƒ:uQf63sݔj- ڣU̱I`g6!ъ0Qu! M|眃!YPVectg(,m v|`VOJc%s9J$LS"4JZ`c蚘t8|]bgmƭwPH,ᚆ1რ %,4:(s[r7"i[lcK%U9XYA =Z4gY.]kt1 2˘L9dtUT# –q _!f"N"e{GИ9oIc=key8YQR+[e^( 4m>6,Ko!4uPRs TMAht r~܁ uu9R*u; W '#Kɘi,$I)/hjìn7 yLxt`+ 3A`g~^m{w ) !m}OS ܸM&9E ̚8V-4M] k7gz lMg;+=,4!؄4R[G/SB4Ͽ3 kڳ;e2)mԜ;Ϋ;GSe{^:IGGg0',6:K !]F+lo3.f=fgbyqȽ{wy#(Ȼ=B .(&$NFcJZ\(D0B4ZOuX/0^1 iżS͠e؏]D5 Hƶ"ю@e⽧l!$Zh"AꔪIRM=H){4DhSb1 p>yC"Q MevL يēt; *q:.a:YZYX€ >EFO(ݾ˂LeP7nqENPyBRU`#N&Ks6. lNlX.+`0`z@_>'fvN4!H%̫F.Bhh/9>Zd$4S!Du4)t xkSV\tg,nwkiʫo#&c\4>ČY3*BxAK,..Bnހ=p|6Û;-oh %Itd rŸV`OsMCeq'<)ZSaE,ޑ%9A 5EJ78C7b2d:m>qX2t }`%VX0AbKu=pY8!Z<CHـcУutw9??c1p}cD(4HO(:D`ѳg{p3%-;w|4 ԇ%Ƴ9nյS$Jb%Ms?cIBpD>əhromm֟ @B%BLnjiu N.x|ۦ=8v`0 K HҢMtgiV0Z\uU}>Jk> eEUonS9\uO|O>éEb!UWFܽ15J*2-wfy4[Zq03I!&uM<) {l0RUdޡ.Zl5m2V;|yǵ&,w 2aEd|PJdN %!G8(>wV >@AN|SN4Zic=UDNI7vE׏qFsee@HYZh//1,04IA(PH6z(E[iLpLThFPVW )Sj1| /` @N(e'I$2b2n!!`Z)x*Sф`LAʌ"ɘ"D(Tи,JWeiμe:ϝl {  idW( x__ħ%IA|Mw.ϜaVt/ Bi.qW8{nԌ3vnwB"B5}$Z;Qwn^4aorp[>.O-ݡm{_?oR+noNۆg^]"|S]FYT3b1ƇXO?c߽ƓOZ; ^fEļ\-/;obT1yG[%4ZD"MRwQ4ĠR)gMCm :$ymRHljtRxoS3\IKLdITjM@m X0օ\y}Gm"%.1<]__'ş#7IIqZ }b,g>2 V'IcU%0.:no%GꡭzaH֑x]`D¥ ܸ)SLX\9G0S噏>K93?NeggdFo0,//BD(/qΠ«⹦i @m =f!\~13ڳHx Tslo*n©!7߽c^TOa69P %l4\do{,moPpvz>GٸY{XY9ivvvps2ҵ=J+,Է)bSGş /@%đ#8ZD{mTo(^i1'yŔ믿`?8)5"DiG}booc*NevvQHq3xnڵ,s1!u!./6[˙3?,ָLˆzhSˌ EnW3Vx7Y]cn 9;/<9{<S!D&HaU?$Z/:H%='$9;ATG \%`bSąx. J *TL ssfz6CKI'/L&,/AIvk;>BqEw811 Ej HItdQyu cᜡs,?GUu!-O"`LMS3/dJ:ѦgPE+~O:1M'Ԩ 4H3ױ9?lϯ?ͯ|hM7e@-!<du}Q`=~7w~O};M) 4Uɼf.!X;{ ZO>wn_@k7ޤ_tuy5kO!<f'IBSXP:EɔI22t;rY$k?sq+ܹpj}<ۿ? 3M>ɏ];~wv> ]żڧ !ak<4T3MYܡ?JG@(">a:¯&O~s?*GszCO(@ޛA*9Gn3$EҾ$qPHcR_krFAqx4GKMjW#˱ଧ iPx Oˤ4۔-$u#*и@Q62ȱon3qSs4x}?NHy}~g^븄 P$ Y]\"ԆK}Gg~k?qZ)9"JR|lTq֑'W/_fqe+Bۏs2-i B,ibR }dXLa&7:Mxݛ )e5eeL23\ĭ[_O|Xp|l N-ӯLC|  %fڼν e}FuH_fP\Ͻ>|+U @]F DS564MM^HJ}Վ:kHRR%$w5tI0H{cm|NHE⸲k>o6!z ;BH6h1e˹8GGk?J`|'<lNrAjן9p#Wѱw^#$kT)"4骴"` tbm&@ $u5L] "xpesKrvyQ k՘9NxT615$EEws&C c"RitJczNqѡ)s,szumZd>'ORvNs KYN8 ]v?˹SC 09}4 7`e1ao~q0Ǐ?"NcE*yUxGDлRYp~H'|aMHl'#tpt#Y[xĈvZH"0s$`:9b},geLw:Own\,Iݎȅc IDAT.=Oe"X[[?4YYZ"y׹z29|#|杛s5F!ofy5ނ ow |EtTw# W t]AU7,zlmg){^7MLb}ep} .{s^*B=Gy7٠wޢRv3gfa Vk\L0%"Q;, tp"DtXrέ{;;i;ȄI%JhGI"I\.)i"$sƇ 5H" km"l( `2FGP" #Q{%u]Nv E2QW,hLCYB&%"iPRSedFI7)PRQYLg3ac4OQJ*~Ím~_g>C9ƇXZYO OǮ"ljyPvtꚭ}VNm$ AȀ' TT"jRAqmDHCzy@ |"F%U 1(R63ٺ Kګ:RSkܸqÙOkex-Y_ckwC/9U<90 K)#^8N)4A$(H1*ONή%uUDLL $)2|[-Y1>MV`Z%jFhGN?ec8 TA)U Ia['K\GVP)imlxnĜt0x ;)|cacyMƛ;ز0E ) K}}h`TAd$YaNEV\^0B2mv9{~]l鹳.]Ͽ2Ea0XƔ{ܼw@?4ll4@==d3͝wi~=/}> Vpda4dRIE*Rd$!64Dh4LH[gvUmw:-.zF#vyRV8Ga};óP:e2@d1h-ÃCw,,,,HWC`:R]"xmwR—A(J?AɅG.9~ -)+HC.>ʻo/|Sg zMxgx5޹y}@HΈ$u;Lʆjc,,- iac.3t:1* RiD2u9gkk,SΧ(xKaoo| %9ASV5:M(9]9xQS>w|<19~/:%*b<wY9d U]P,ĎjDw_=Mdz4u) l#S0's{@H!IB3;GtJ!1ζ\+piYzZI+߲MO*nO}{4u LI#$7}R9G!"HQwPd#W%8 9k <*M`$e"0;xMPml0 Wqj;ܣTu ecf8_O0 _S^pnoPI@@ftqn}m%|Sښ0>39q89(2mt D0n#$!(-HSֲM-}9,p!xWxlno5-O0$(r'ٳёFcC["q,Og>P5s,C)-u|,o|4RDZ1BIt q1 YZZ_~v7u>M1+8cٸIU;w=}}lէFlߤghJF #VG˼:=N^KSTxYdrÝ ;{ҔYZHd1Z]e]Ve~2ΐd  c0YAY"c9iͰE* :#+>N&Bvv;>X8MYxH4NAPQf,QH(:ikckCPMCc[qDh8@L#</8 :91n`2iBxj7/ ,,M1q ݴndMY㦰jWy1HQX'WW6"scyog+Q #)OSt=A v'ۜ[^bE 8H(dY)4;;?(R<ֶ.o0f`Nߧ4 3Huɒ4bG'2ͩ#37ȅ 2Xzy1fEIcMqռAkS{|Z\uxg(ˊ?|˼-hvʣ]䅦!-)sK  Q [WLdBK/g?E=j~3~<?l$hb7FxIAv8؆y]1,Ծl/Ȓy=C0RL唔@ Q)B JS"Xkq)pޡ9> 1N$4,!^\;.B<ɽIOsR}Mg)A)N=ïگy=ٜyb\Ғ [dV2+yz>) $Uՠ']oq8Ⱥ`\6`-.ƫX[F3lEzoO\BJR MS{9̢<1O(:p78=u,v z# a+ϰ2dvv{$&UD 2B 2{ Kϻ\۹{wƒF=l5 6PI [.!$TT6dZ\de v0ز61Ȳ%Yl]gF#͵}\s?sZ-kZS>u}~ yxSB1U ..?OXdnL FerCCNdsa!5X y%5ʀ58JWK@KM3r_q QD] pwGm*YHh@Â4UU!*fhx TvDl(W1}'x3^UgUuC (Iƻ X+F7=M"CU-O:,~7~[ P"me Uh4,4# (1=f{k} |_kxovgY$6f5TEiM"{\m1Ԇ$N4 ,175E>D$ Eye1JJ#Hi 8fn1X)ZY%ӬvZMȒ4NQ4T{:Ѡbg/fo6)%K/C,F )nJ)\)ޓF8O13 !\/0GDF Ӕf+A <{>|(jctg|*+kklrs8x8c F.Uh2upT9;iwˊ(S ĵBɈijcGCZ-!LXh7P N,Mm'>.IU4>b <s`KTI9;2,p~s;)>$E.lnpҾXWCW3W#Dk ԐFAe Um1@(h~~>ڦ+8 "TU:稫(wkS9w(Q!p@!i~(QL)H!$/kw"dAP7d*S}ࢄ(G$OcjbwG 9p"y:."r1"b BHJ @yX8p 1|0oIKC(U9CGPBAϙK!(%M$QZӳ GCqAQBEPBR:pUTGN8W뮻Jb-Bu΂().NE1~>u;UU)YtJ YG)DxJS Zç>)yY~,?3u,PC3N0>G䣜AA#ڠiS%QQFa?s Id7w4s XSk[L4Fln NgVqmǸr2 i$ kV,B` ֒DVȺB`:5/e!+|7-^1uXWE@ /6LN8 '<.w /<~~w {ߣnͷFG YY3=^,GEH)Ɩo=^fbQ2p4k23EN* LV"Rt Naz[[4:mP9|$[.Eik.q 3 DKX~יjv[8&ɥ(٩f6aCR;Z̈́$k󗩋Gi|CY173Uoe8| kۘdSsbi֐w43V;!Qer5'zCkJ7!0s:\=[Wd,/~; ra)ӳ fJΠڍ2 (Fi(㶮p\j)Id7Nk7$QDD8'ȋ*q>IJ8"4ypKzGH)>LN7A#:i-U8X(+ %/(˒csRwߨq8aCyJd3r. S82[բ(A•4eADa&<"rA(?ynXV D((eW{~ЈuDQ tC IBhRH"16\ʺ$5jk@ R,x9^Ɛ{CQC_$$!mMmnr"탨>ONlMX;^ z5_9r!_7qMx@; Bfpbd IDAT)ɗK ; jg:(QQiAh t q# |3iFys_yKXm{fʕ>RHqy@iH@nR #6_}u,8l#IcsgH(o4Ne!֎[ H(۟DP(-MpyVAIPE9>)A9qƑ$ $*ʺSSEjX $Vj#iO0;DMt01?;m')j#ˠfe1Ɛvv>ѥಒFNf00??sظ~89K5Y3&k8ȗ("p9Lj" !G(q+vk#\ +qvsi655oICo{MÂ!&MSjp $(c|j$( X\! CdLJBHc$͵lnh69|!;._LQg2ULmy[Q8 G>qHiO?w]i15qxE)ʒ|ClݤJ)6{;XB9-K51O`17;&jt sݘ,jSqKCk {dI@J-s?i(,9k0a@.GhXD)7:,,L3;;l{KL39w6TߘA5!Uvj)>Opc>я2?7É' FPKl(OQDHЗ`f˟򶷽>Sq32f bi?$`ys~kחiv!G*E-PUMe†/U&/sc!tH-)(Jp*_ԁ1(HQZ#AxA,D8X4,8lA4TJV=Q)P~*X]vjϱizkw  >ƽL RP>Պ=Jh/?<#,..72vvsg_gn![ 'v㬿q`"h:)&quJ 1;μOgIL4x[(()0. D-f e,;w/\sN5z>syfNtDfS%w~-.h#YY:Ow9Έ(&R)4qlv(XETi @FX`zUIš*^G4 ! lDvUDxA"Ih ~}rV*4v)Mw8I$u"VԸqB'8zVO&/F/GO6UA!R)wh,D䣂,iPFt1/<"!;EC \Cu$R2` iIUx-y/˴x{EfdUӴeL=',Mq9t 0 I$J1\ISlĸzuQ_=4jW3  .9>쌴"o/^tCӖzu_CVWr2@Xdi~AT{'˦9 1|U҅Rm8**B**"/ E$F~]"}eE#iP $&xh`JjZvx֡<+Y*"}D w'W1ULNNͱExwyKDq`>6GL7nXb{G!&;%SS3<,fަi)˂ٹy>RjF;z093SllR(V6We`H)ItW$4.T֠'/BC魹5aƌ?gu&:REh'k3ˏ1(#h,HF:&R4h#"h!*G1,>65((˂__@#NǮ6ޯխy+W q} 7\i*ԡzjC]na-J)8R h4I`gΓ6[$iZ{bN J#h jh$]|f{SkW{<ݙ%z.\MSgZEf8k1;ְWמ࡯nqS1|z B[LN_q,ij˒*Ie8)[1,*#lr[ʿzɫa/?kO>ůxˏ<= SO `$;_`sk k+>o~ou/q'xij'0_#4}YyX1F`dP9V7Gec{iu<uJb6׸zgnq?l5 Y~ڡP+!/U#s4Ma>vDwp[]:n?^ffL/_Kֶ$W<*tB%3Ɉ{KH61.%χEZc]T%5U]t 0U ]gy#'#$iX52)@y RSW[X>֚D8vUE`4㑑XNK  KX#ºD{..L4XlePܽb;]%/uqdoRT ^D4<ޟ3M~*p#LW06{jCZyk> OKZ0,,igo3 O3Obmcgocd"4wS?EgVVy'#!KJS9z\mClXjcp^D (3:۽>#[q}pyZpK Fڠ>,,,rΞ^đ%zBB>f,C`~_ܠ4U V37ߥMRn.NĪI#̢rd8E͉s14 QQ(aMV$Z!%!nc}&7]vk?a{C]/+^@)˒p_.59,#I6nvM"28&M.NYFNCeq֚FR ˿x^d!X5n9ۢBT'Icrl3w/1{@kMYNcFB>ZjdB7m6R`pHwj5n$iu #6vwm$6?0מ@5mg_ѠE^wY˨ KUg@DX]@3]|Aڑ`gN*G~7_yAh'UY-K D]gqz΀v*ggF?Z3e qLf4}DH\#F#pd*KB!bvLTZM=x.-z Ñe3l H]ya+(^E{*r|&/BR1ol q{G3O,Mll׼5|'ImNnlRѤ-rsVM ϳgqaǿ%-3k7UģqP/-r)G#ӄǹoF+o5gN k4J$Ј^HEUPg8BZ&)G3i]DU:A(4N)U;#F3ZKh0s(Ř.LVx<,#тk,)4TClztnIkB cґ#4Ç(MIۏS_<֯sumy GO^=_НWd94ȕW 6NWط,<+qThV/:G mO<=c9rgzeYL6 h {v0;AIE(B2F̦8ƠVN^ZBG)2|s=i !~z8[aj]LZ@pg-+s`a{W.p}矿6W^eymsox3^2 ׮/cgG'§- IDAT6vF8!G,.-177f>C_z$<LOpI>,?fovՕ-V<s++O~U.SK/~\8,T1k+uxQZܵ/ Q8 6I!d&"R%IĻ/z{|Oew>Ėp2^ I]u^&+m0s(B:P^!yO^q`{T&;SiJzNSS,C t*uc\qEr1.\\!7g_7~_sow);Ź_͏ӧ b_#Ak#2'I"0^)RFb-J;J  8 @䗿7hL-rcgȟ|+<~/|7Wj4BLMM0Sx)Ǝ dѐtcXXʍ㛌r"6#;o"0F!T8_;\ -tfuoRAQL/$qPydx%IXxW ⼡5[ms'-0~GYUX@b 5X#qV`mw4x{$FGzWD=f2b亲ϽF,`Wtzsh'"s(6Bx@"zRy1h"}1bB]aV(-Vnn j(zxSn< ֑*&vK4Z-BkMUU'$( fS F;=ހb:gߤ۷Ⱦڢ Q~OY[V{9N8$X_[C ɱc'G(y<'bckDJ[eEYIJUW&BS$femcp"3MM4N[dcT#2On#A>b81;# _S#j9$BKj'x[1#ƻCS+d΅-Dm]#:]>z}^[X^^y /Qѐ~#"7.,HeuJ`05de{y{뙞e''RIٍƀivl/CQ;K efvX€c0\ػS `mlvAԭ, oxHmLح]JjtH_x﹯G{; >Ix>=}jҼNj^ =u{Jq}/DI[ff.@&t^7p!yk_O+Kx4?f0*6|HT,U $ BP6ƯWdXoZl7{H$IP]yu/d<f1m)53f~~<0 AYcj rzfT 5%$$:E qRQԞ];HG-o/zΜo>N=z7wy%LNrIoxg}A$*$, I6N~G.0\3y/gW7+'NnYmƃe]uHEu-Sd#u;^GYsjz\8ʥ}DYh@tob9Å'"-:+1XEt0Α U\)GRV+>~fiN*,+5<MA%c6IjpMJ(y[L1yn{6-\_ڵ%\[ۺ&\ӰwKFo]( b\{l;%(AP!I0DEA2(dg%Q6)j[g!vͲd12C.pYN*;w4Ϝ?[gS#43 {pνD|&4CJFcԴ}Wu8w4e9blll0ךazzw`"cI?@ikM2VWW֨+$,v;Ź@Վ",/n VYY`Ͼ`B׈qsP޽Qblq򱏠diʵDCv5>kjutYNա$yhKMWWhE9F- i!lS__E|nsn@ϡ6<1+t7Ht;#9+E $Z$97q'Wp DT@#=d293˨,&hfYYZk|`*$eLO@' {v$xgiw:3 Y.^HYT;v)Vd{ÇS9?8+m0!rqQ18z6eQ0=="sSS :yɅRL $D ^X29ncͭZ[cI"HB򎽝+hd=sڻI<}qH BjLmA0.k5uu`HixG1*iO0pu}\^ ci{m,oҞD6B01.dl48n*Ǒ[+cȩaZ10W{i !jø*$8(EW=R()HYeYt|EgDI:{ ȓ,6Ip4"d!I5z(Mŵ%EPt!Jccys;HTLH)bDqme<.JR%~ KKt?G?AOOع;`}LNLtēۊ`/xዸx4??ɿ_)5z3%){v%kOlpH!.`#|]m#!x:>>TRa}͓OO~ `r~ۨjAP/=8[~Kʀ vB 9wTZ'"򝠉 WrW?"fA t* GHg(u854%S)c⦎k[i+*[C'**OcjC+m7 > AeXȲ S=y)G_jtedžN`(V'׼wZT$YTNtl U 1hCb4B2Iro/A6g;1k,I>K0>~oKlrޠFD\2x eF*`eP h %2k}36*IJJa֙+\|QVV]^cmz"ë $.T$U( ( $w~{ ZcT 6Tf`eaq5fcf8X-Gyڿu&?yjm>Ꭳ9q4w9ką 2 Jx/)kIU Z(N>/kfg*S3<ո"w]Ek"_FՍ8T%рw{04!2XxVC ^߁6|nsn@ϡ]KcD7J>Jh'gJ1;7˙3g8pll1.,w]zY%FP%$OzKS)&-Kݹqaֱcje,N26rYVxn v洛e<u= _ ]ڦ̥0J&Lte~;k<-PB iv,U' u"@F@UGcj@H k,c7`WI"]a,etd:!\RInJ+_`ZJkR=RF0 F] $eU2*`ThX0%pks dI MdOȲq] o#oJj5@ځ $:a\tP\Y}iagg@+ƾ@(s&`r]4#6#u ,ngcxfʱB% o9.?OjSW%gݔEMO?ʏ7pDk'vJEg9B "J*z9ƦFHO9˛zfRȣ_]y7O9ǹdY7?!w~w׽^+ERT3F:aA&F;TFͺi03ì;R"^DЍ0P 7t}$6eU!A"4׽'`\1& BuZK\{ wz #$ VۚLZY"L]SWŐ >┈_x%4AQ(#a QX:()4-GHu:r IA\[b |'%}51~oZ" \38)hO$x "PyH:PqYB)Jij/@ HIGxGٽw%O;9r]t`!$D[6A]?i݂CЉ;kn`NjTsEyǹ8ڟ;}<wN=Evin%c\4 x8wq;ta.255,y۫uUrK_(s0rcfvMI>qeS=6f؆3v@T|yG[^DwF؍z^ԍsnz[+][ ! JeBwj]{!֬-_emϸy6v $)^:C&9\K‰'w.\efv~nw/{w}YBlG%\8w)%{ezr#119ڗ>K7m8u| \_{O+4ٹi!eYa'Hw|;$oΣҜp)WtE<`-*uMhwD /$\>-N]k.ZoKB]tM"wb3f#7[(I0>6:&t,RT: !,F26RjIShIOɔj#C@|oRjǰXu9GIp!rGx,"M卯{#:MyŃ/K_I^W+tv/~<@p8'4{{\_W~杼mݯzw?eR gY/ A*$23mLlux9ORD!+a0 ~W?ȱdYjRRي,ϰP6{R 1!YD,#jkB9<'k"MR-%g'@k'6K%6|ltD E$ -xpQ \ЈRnkL+Z\kGȸf^V϶Ao}, CfEիy 1H* ( >`mPYkPBjF+Bg`E1BPx)k+Fx:re>V&#ᘝ |qItxkq Eg ^:ʺ"3rL'8zfbm?o2Ӛ@:>ve%-޹¸];60pK9tkk5Yrwbjje\1tTf bLajIZOVFd+?r+ w*r$e97꛲d&Éx~B@ =&C`nVk;">siw;(ؤ( VvRrRjis#Ř~胼-#1alzuCzUtUD۶3b6]{C״%IPѐ,oqGXz8?Z !磍{lWPDEc8,f_F~p\mo1iw $8s'y݋ /-Rή2w! MӷZ%X u+O1]E8:0{x 9RgTzX+"DkEj\ dcQl#=r??]**&| ј%׼>"貙S vo=S<1w:_zCwkQcD,(\ 9ސDG [! FВ ZVTTuQkݣ,KD*E9Eg[o$BGA9:vlPixהuR"UJظ|m6$*z-#ǵ R*JnCTrT:e,mnŢ=B2.5nDc@m54g59>׋Y׳; )y IDATF@|dɸ\{ @FvM(WRy 8$%I%"<J@$8 aטMP:?KOspY=d*aIGZaK8!8t VTŘN+cs^\9]{ Vٳgٷoāݻc|_>ʱ/|ˬpucNn?z}/s1ΟW= ++l"ޘZdI Sn+kzyN]j3/0o#Uꈙ:exa$ JR%|n*N_ꗹyVᓦq#BHI@4Ѹb+U,K&&vzBLl"^ZbLܼP2}fD{&8ިgSW!9~/35uY0?;;>#~em4,/^J4˱qiI갾9Xc$I`Nr9rN7:H^\@ ),--23;Şݻ\gfjptK7ѣRC.MP(^fffSSH!Ȳ(P携Ai޹Ntpei;7 18Sg& :2%P\Y_|>#ǟ]i{eKpdf i Le#u#L4cV-k\ Jމ&-,*ɞU6חBuQRB;A]׌' R(4DD#Ǹkn Yh ZR I M:h|m$QlJY p>`\Fk,CӞ:CIZcD^ @oMB^QME*Rf)MR4IΒ*Qn%ʏPdIz\9NU`yyV:Y>O{xߟwzT"Os6776(BUtpPRGHD'D+2r[ǎɛX/F*CQZz6v:CYK<4Bh\pF$P 66cb5x;H g-i[@b}5b.DȽY[lΟkV]E6,0Dۯ %dɉ׎6%vLP _<ϣX`"PՁ_CKI ^й~ͽɖ {-*B1B(m( 3HJj籉uv&y9T+RHRqR3.+r% "FN{?.|";A]:ljO} -dץ, L]aAVg6!˘JXSQv;as}rvWD3Ow"_|ׯ}-u7?ғDsuq+}nß0s;YyJʪ IF#ydNVWΑ8lXZTR% JVɶ#Q !OI"_ܨo 8?nc I`L6XPUyՕUYYXb}c͍肷1lߋb?{++'oշ㭋u*`lsx]/$M#aLŮL{,.p`>&&&| {KOst-ETnwvǞ8ux Rx yūux\ uBa'Nn[yx$:UU2=9řO.+I?š˜@jsd.|Ꮣ蘘ODUCYU[! dYN6Z-Hg j){6y[S^ԅsrā{w:bɥE0d"c  ƆPs5PVюS"ʄ7dՐOyEh3=jc>$[Y%=h!uظ Bt @IVY쟲*alb "ItD*'Z-y *EHr.໾׾7]Սuԧx;:yF1r]ǘ]ݜ+Z6BR ǣ)y7<' #GnQW2Bh-H UnHkBQ8aekC`F ZI!Nxpl9t*etlqsxDMS@{\CL' =rdJ'O=0JñA@ WEQX<`@,Ft}3H3f硻Fh-A*6 C8V"].qUdJ&'|J\~\)fvr9Օ5&w F233?ifw{䞻 ܩ XQqQfsS'~?* X_cdp 77y~.^H8oٽs/OD61C#ʳ> &!)B5-$IiB(Dk{~ߨ_k+'3=?ٳ`}욟鲴9:.S_ZF /_fBxᨌIYA)4Jr`"[ ҦgMx2dP jsx|˓G=z0ǰ˓qp:% j<8Q>S+XM; $ATsy ա2h8፬\aOj:SN!cD "TY:7ALCuݤ郍kv$e/>lQUP5J2LO$%ISR%H qjM*D%Xe)L9Jaŕ)#"U Cvd}޸k-ypXW:.CZx!#Eu8ʲ,#2$J,Q9,Eb~nQL@c"-S\ȳhf”eIU>g3Ez`=hT)pbM^ %q ه,װRb)u-lAȸoCck($es8H㢢 e=$wuIXY<=Գ1pmY\eai'd93-CVػg+<}|;9 1VVkwRd'驪9ĹŀSSy`^Oq{3I;7Fmq%t[榣b"F'Z25ѣiS5R@sS|z?y晧)l]ﴣ]"Sjghi1X[#$;X/] 6ǤINe CӉA0X\^"ﴹc"!j\ςoo8QlrC\pN1UMQ܅1b 5NOM23,3gnMk&Du:ˑ;)Y*Дho $sM4t;d QkLF |eN $Z] 1MYt"H|TuUhXߤ2fŢt,M`kU[!HTGw XLB`kl"]ZcI+t! @',k-I Dh %DGI(j[Ft(yR|\)2ڨd2A T/!9B JOB\#ĉ 1:>Fi0ɲztp΁$0We@8} gx[jֵR4kTSIڦhG uaV!b"H63C@ W|{k)s8v=˼c"}wO? k V+TEI;(ZxBx^??(:V.o3ߝM`#iwrF&iƙ(Lw#8?N?AkIPxA0V@zd NsVZ98 Y7&IfLI# [-jH7>iT(!q8jk"kVVj1*j4Q֢E$Pғ)ȕθ$7d5!6X. >P #Ei ,IhRݡzAQ(Ee'&F&kBnNltm^15~)$%={L6keBH*kA|pA2dy;R\ ZŸ0/E q=T-9ZJ=t[{ӴE*im (B$6K1ϰ2fr\ŕ+yltƦIN;"QG#k [^XN_X iJg!|Ů]{(#F+LMf87V9v3gWO~N_x_?=hB5h4v뚕 ttVgO}85VYIk/xnv$@3̍-0MSΞ;{tUmw=~ ^yV`F9GQH))r{xWJ bXItJ|q##o&#_97F=G_ȁGiOLS[Hb󮥢n)Lk&;|O>Ch,R6[LִmqjKgݷƃ!B(zS8rV{bT9u3\t~:ьG75*kK9r&bH1dj_^PE6I\];Y fpֻ6nYR?HfK2&%9PBf\ V;4:Q>6Rir\zDag{4n:IBkoHz`u:x"à 1ץD uM!i: m ǹ[5۽ko[¯R'[f YgY|Ǵ:Lp3&?pmxK_;zx JFVN֢7fsQYRÿԹK1.ӏՋ-$*7dq=cvj{LumZ4^E^&v?EPttVgL;VSt[]H% { ɮ<9]2^7t7 D@")QjD)9lxB1D83agd[PؚEȒHS $ k2.gfvH{]U̬}-Fd!CvvF@2lۦƢyj"^CIKeئK{ =l G" $ +h%5*d^&EfDEtuiIGh- S`L$FG>!R^DgIra:$Baz1$~BiigabKͮr.lQR8 jgEL4[`:.HxD)!5tq~jhWŻ!!)ʒ>B(N:Z+F#v~* ȋ׹,grx{*6ue䁔< ܿ%Mn\HcZ"t}m֚i!3ˋ є-PxRNYdViuJFrERbS~U?ݣHL<ɲlpNפ^{}<5yk4UJƶXkۚaLb\yθsh9<&S _/xrioIմB47RRXX۸GO~ ե3$wXkI5( 2+KK\|:<c s\|w;8zL*k޳;bg4ʵ+,..SO3o,OVcV{3 \"_'yw(y9~ EAɟӆ!BZ1m,'WLJ̔H;BLEEledIZ!D1d.DJyV]:Iv|zKAvDK"%nnoo;r'`c`TFcM>dHXds Ҙ.%-˳i:Gm-U5f\ę4 bLkDe$J+j s1;vT bK<@SKZP2 KջZNjW7-5FfD8 IDAT4HmS{lk1L$@=,CI=1Cwu23o혅B9Rk7x;' nW`)q.)Ȧym; q[xMWyaee?· A?mo{Z~, >"/=b2hC5J؛{8/9>p#Jg_~|@1jZYN-cR",XNo#SZ4>8 1*RJ*+"&Wk-2bLl#4Uc4u]A۶dy>m 4mC 125d7o\ }#Uyi3I8UAkJj+hE4DIaJi4f AF >Ql"IT @H=~.zD˒m蕊rvPrHpqAC1(Wp ;7n\@Hj`LN:]_ROC&ߔzmEh~|IFuhPih1ک{x G#{ˋX]EJ=왓y~;eaaUVU5"z;:(Ƈˣ{=VO#oa`n8r1>y E4c|KQ$eq FJ%"g9^H~+ԗ੪j.^&x-6;']۶, Yzh6R)f8ć<+旗v:'V0ZSdeIB]봱<)6IS h BKB!#e]"<[pUk֦PRz-JkR0k ,YC'.MDdff@i22mP:Au =bù$ B T69`6&OZqP#ݤWw$p˜,] ]ʇ"6)1*5 ':t<5N@8&⛿4lkB#)FEL`(  Seֆ,ϰcPٯ#.NuAXr:g BԜR`,^T`YVRciv"cC=Dd'ώhXDNjFү~꿸x~ ,.C Bx~O}LY"MA$ɐJb[GirVq1b+/L֫=۾_Ǚó8OonmfS&PeTIq"uՒER ]"5b!6 cD"w()x*шdڤƎ,N!Z)H#1DiELiJ$TQf,+ÑپD(u U+ZbQeI5|ą41` 2R&qd4lzlꈭ=Me!ƔZEM#d\W{5~M:"(PQ$ $t>49XE h2HP*瘑G8~" #`RQFIi]$W*:K/@cz*J-GIe-KuΝ}{{(ȅ){G@?%vKHuJ)h^M7{D tJc"6ulۦ5L$ecnO쨻g膝UUMfm;a &{WSwk4@51F'L%qKl\ȗ8;7bHFB$6ڤ]uAHK+{!]ʥ2ssFCƲus]y?2 "W._c5r)^xyZrvn^cyyWTo9sYQ~^ڕч{νdkkŅ9kys=WQ䒫W2Ȳu1Zi3LWa7Ǖ]MNq5fv"ϥ6P!ٔR*lH͠"D DoIXbDJm@ ?*=>z9d`F 1 xnj "䔙!3"Ӻ[q] BtJ&]㪱-KWo:LJ*%Hh%1Z%BjBځd:1icDK R;,kF(JBLmS%{,C+v wGdu5i2%w j*4xBŧ$N^((Tm,͐d,xU 5MMS' Ĺyke>"@|G9z.)//?7~;y{RgSiBSR4!ŭEA9ȩKIr/M?YUXp,Q`E_mϲ"qbNv"N%LL}Ӹ>(ABXk)%.TؕHB,i8 DJ'*~]6ŃޢBK(7f-X8 RDqElٚ jKX Xq!]#s:2_[,K!!Dp"M U5ަ@)碗g):E&K+5<URDnu{A`8CAD4QC,yQS E " C *b6ǒR uj6Hp)=4n3+,MRm4vT4 R&nǡGp|9wL#hQϞGawc_k<{%~Af|;w//qc+}v2=<}?ss/^䭦8|hJ}I])gȌЁE E.ag4pW8rRr zdo>ğQ:FOw,s36͉{b{kqS!Mo)9se^zv~:?03\/=%n\zT!;{CZGK'I3^f%u]CLֶqM q({DnT{ [|۠ Gbtl#㡀2Ʃph85|@O Zt$(s\\zd̘ nBmM4cTWb2u"͇ux:G$? ${9y3/QӶRDz-CKv8=΅nMoiuq'75)i]FOPHHK!X"m\џL#ZpڷIIg7;LkvRRtƙC'q - _zy4Ay5u_cۿe)<{"u#ǎKOy~;#=f^|i]8ވǾ_£{.8)UT Z%SS[0uOw9>͇oQϓ\a׾ʻphK\o'&{N9@*kY1sli@- .|TMM5㺦8+iZASzntjXY*{|g} Ra[g paWw)x>p2{ELeR{ɅX='FV8DǎŗxrM\N -)x B4JH6s';[uի0 |5M19eØ,"4uҀ5Nc2CS֏q5s-Bt,K)!h|rڿ#ocýS_uFaƅ-n\ /155R1AMn^Tm-V'21eѣGfg{"eos\i\n<"1zry'X_Av7QUcWrIjk]+W0O !n/xP`Cuzݔ:&֑TE@%%= -c,/K!}Di ?A -[.e4 "лww"Q%[D]yOإxgRzנ7,H:ƲW5떺ԍMrXoq!\@ҸB !ӆ_)Iar g(Oi2|m{NPNz+"Z $D"C7I`cD’)d =$EHqAӶ]wjDиؐU+ilCZАKMɆg%>{My){%u@B u г &ɦggcq!,d2Os/9urvOjέt붟z֗m_TՐS'N2;uc{᳟Ks <'(<ܓuG~OC^d|_ۿ OqrLV| D BDI'f-HĤ1mh[Kn$.Rs*[K4YJ6.84Ze(e:ޜRc))IֵI %-"KvGDXWS75M.qlޯIg ohD\g{XG$[mMi" ipr.%萴49@cJeDtoB)ecD:;F,ZiP=,HA퉴L E#@EOip! #o74x}&hͰ13\{1doTwN-6XbtY"&i.)bG%GrOruҍN<ْ.Rg^~zyOtA4'9st.=ǷO|#'8q0&zbpu,T͵X 0ʱRu#(ef0˨U]11Kek9uO|[ȼkC8~"Hw_)Pu"{q)o[cD:˷A鞗wkӅI4MNS@tU(6/:JIAjPHxA\O8鹥y.^ B_Ǟ>qaߩ;Zw@oںvK^dk:{[(RZdRܪ ZTRiڶ%3գ#fgp#g}} (&9kTMōkFCqO?h+hĸڧp#7opx07_ft ``0'kR҈AtS'7HL|L|!-J .$)U%KV8zGW^t?%ŇQ]3n,8k0k-_ ,).4y!H}s65tr,u)FJ"`y}C xٔktΫZۂzHbLoajDIM^fHR`dqb$sN !oU)R;nmҟ0/K*L1<}ˑ#G0J(GcfMOOgvUSE6jVP <\| [03s+Qf9?~ŧoV~Ճƒ﹇tb8NkQ 3XƐ??h=cO| K?CJh]Mf |1TFDH1&蚌U[SY9Km5eGdB;"CRrwg4Q >GO괉~)\U 6F8%4ojƬT׏G,' 逢4ce1@Im-6ze9z$N$O=  tZ V*i:;XjpJbڵVS) UVVZfBdvz| FCXd D>ᐡL놊@ɚT֡&3 '8vM.@Zeioǻ.XBukAiBkijY$ג^go.O_ÙU>egXO>kW;|;"2ٗ,nrc 9{݊?{ilmqv/"vA177-Veeim|z2_`4qپ^9 EaX\^acsEg{ 7wj4B Qk2\H\qcss||goo5x]#:)ڤT*YᕜKR4`MYPbjZKfr!םSyN TO~Oh*]MkRKkuHIL'Fs@Iݧm\!}bz4A(Ia4CnHʻ_nME\x){;[{{, [p}p7.O}#/PKG~ylmnΓ}wv9v4v5b^~sloDCQ8p7n\#QUQ9yQ6FCN@_1(%y. :fFbDDp@f^ Gom5kAGn>t,W)H%bHH..+ ZE B҄m]))A F#޵6ة29*uK QrQGI= $(T)t[%GH9m=D IDATSXR[IdhK,;)9iZk "5ޒH.MW)! JTY 7[^/+٩Zd'v AZ"dXeIQ!S%mp0)2O#KyAO).|}˷MAZZڶ!7%1zBpCmL5KRF_(yM1v۰f"<}X1?7_?DY.W?9}Ikoa5F[|>ڦȑ# s{u^VW_|R'gxoӟz2UZ1$[)iB&zH`8 AtOpJHo{4) ޓiM׃ȍ(hހIFYz4B+M'G-4ZyDHhIėHIcTዔ(133M$RAj 'ř ѓICl]̇{.ݤL٤~B+J*4PSHtAн$S)[{Ra|^P㳬}7Zi #˴gJ AQ)85Hж mr I L6#.f%Q,#‡@D5,a?b>!6uEYhĉ\AUUe~7Rb[n\#OUUg-85yfoo^=O,]D,Rm8 !ݷ}?gϞpiT@ ^m%xi*`[ں&eznj__FJ\g=Jz^v1֮{mlry*ilRTz%&}vnr ]ws쮻%xOQ hG?5pg]Nq߹x˜:ysh!+ˌ"7x9}T]*6y^ d{w"RBl-f(iSH٥Kt JɈ-ZpS#X3G)P:6J@c)sP "AvP׮_gf6ꆺN^`Pȍ GX1Z3 $'QM&K[ #}zG <ňMљ..>NDj:A;mmM,4FF>ଧj[Mm)P]R"ěI]axMPg WFvj ާ{8 A22SUw`H t'RFeDKlX2o`e[66M#,.bi+D4Q\:n *FϨx⩧w~W$KjxVgy~yLC M~ADW_~Ѩ~W._Y _7UO1`ۛ;~^~)~翇ȷ}?}?]hܻ)$EEeǔYBi:vn2EOi :Ig1 u3&/rb7 (jאi jq(ygAjXo"༟쾙yZuDkO -ZLc̔ϐ%"eO劼Ht_BbHET 7: ؓ4!OM 4!d\ EdBj@i]RR@ڟt04kSO AkKY&hs//PR2;/<7S4}3"3Rr S:bB%(E_[dDg%(T L2 '۸uԶXGs{"7vm`oxWq .x繇6v)K̢`k˳|//v}~Y_`sgT皻Ϝbmmru}kkF~S5xg8y/2Oߍ W^92;;l^#/{8tj9sWo=ea0 FI 2G*C^({^S_BضI W7\_[㥋]OOϿ&QR, 0m2cG?iڄHk[4 !iFYNqA=VNu_EnZJd(%`wMTw@o!$E&3)QIMdfMbzc̲ c kׯ wǼ=]wfwwh'YLAXJAlC 8ri|ShwdȬ`Q66hlCD_ܧ1lVBH66akg9Z'?;~"%Wnag?}oe+,͡D & T,zh V]$󖙘uf򅀒M3NQR#6HE H# MCR)|%1^~[d mXK"GKI,0F)T#{MKxdAJ!`Ok,jY/۶j(Ad/F1F >0鵆Ox : Tm !%Hr%P8ͿK ɲ~WRfbcYxT8R5ZI=dcZ&%JK5 ITuŸap ꚻN%m A~R&`!sΣURNᦦ &ŤX|KcՏaO 78}B TՈrKQ~w_R3}7>]w}\S|7tSXZFd5ˋ?Bp2۟55u=fff u)T"TY uRu0Oe FJwS)b4MBZO rI\ɤJ`t2=B xͿɴEk }zDL c H=U(m&OfctJsMILrTDR Q"ZxtTGe".%2Kf@I>L)"J#5bnq&D) !GPy.ɔDƖ;X7 "Ǥ"HEPiPfAnfJB4㚞Hi]n Hbgd,KSS ssVW07;KKT o乗.k0^_f9%no[66wYZZ._fiaS˜{c8afϵ co=f1q7YZ .4ss HY!}fh@&g9AQh֌[1c9T"kښ?q4x;MN>>ud`nfG\[%8њ2ϑҠ],'+t:Pީ/Si > &gegg'O‡/K/V`GSNgʕ+lnoNv޻VwIJZ !\ 3Vp1-s KKE/=s,.-G?J]'t |;u&Ϳzu[itMkE]sj n3!ȊF,n\|xׯc]Y1Qr?I[yNקs6Y>x}q˜͝5=z'£!f1%6eF{A ~~ , E@ƀk[Jhuv* B'q!" nK"LlJIwSiJhY'3!$6F >oQ%P bDwj=~k)D"%w@pK)2 ĿcNFk{t JV):HI_|l!0g%}~ڶM1ı#o)gh%d`idy*@!%H]{۴( qc̓,}mL }EJ"EEdh)$;N9U)rɑU*8)Yv+Sr("hHPw  0L-w;K8{ $ `N,o|Gz$0%<;`)j5v-"8&1 XQH,( DQg+/ކ8w_m o|_ #H>uHpyio6'og( BpNqGN]wOo:?>[p۬,Jt%죮g#ӭ*#p׹M#4&C:"hc1EI;M +FB *WzcPPPV%ڐ'ЊP$5DTeaejybU2:*CR|Q[&6qah)x BĘ$:RH#롬cDAk#J}@Α BXF;y %!MREAqnE@1( wC`3:Y krj@o۲& %e(E“ i+I7SttD~`dV , jqP8gx]Txfz*#Cvvow)PZpp'nV%=@-yQPNƨ4:숏|ٵz3Ӱ?7' p%VkLܱ?a~n^3O=G;Co{iWݥ p&O:dz^iL'lUi!C>ȸiU}VזY][O>NؿcGrwka'UU ɘ&<4iڢmwt:sss{`!pA-^GmqxЫh{(0ȘMua(j+"e^H{ ɺ,--4 '%wq7OF'!4#h>95:&Mq33ݧǿF5ɐNw*K/ЛHtz6!fmm>ΖZA# HmpE.eׂwQW8(L @NP (dĎ4K.D jUUBٿG]ָbT{X[ZshYB2NF)ŹrmSUӀl*:j2QdVq[69i@Ũ$?ؿ!l5+oys.6_[ųϟa=; 6s[Y3C;!<򅒓ϿHgo/rdݬLo×Wv;%̗ 0E6așHaHU֚V6cO LKc:#1 J(FP)5"GlgɒU5y|sbT;VN_oQTiUl>[ !@Y; ijp]Nڡ\[U8EfP;Kb1:TScbD9B{Obb]Rb)P%eg3RoRR- |ya*BE'A<^DT$qTEE>.j%XO^ Tdmͤ1,=ocXLȇF%q3**JZ>/^$덇ٵs#Gd>d=܋g] ojsv+׮23PLs N?8G.:mSmV7X]p-'ܢ4-wrU9M#{gi:B)Ů]=ҶD1MNWw08N^awhm暭f gи_Q9)c[o]s}g^8͙N#β;8oݎA##4|2N @8z(2MӼi9^m*v^'l4т*uc{ā.DHn>[<Ǹ`⋧ٱcO<h҂Iw|d/o}2 [Ǖ+gkN컇0GOjx1qDV !}BI͠v$*!)e]R {H@51`AFx"Sˤ2m*[ڊ,Lmue BR{0F B=>ϒe=.Ip>+ g>k4&3i)_Q/TZ.ŏ݆G.jDUqaխ>Iyc[JFN !3E@^ׁx >DW$Z |mqRJlob b"=E88ѩ ')e-8wy=:lnDh\ i #?rCpRdYKUnw`y#tV+=˹eec;{gΞcTz1_gȾ{\NgNVWo~}|泿9xRb}ykW7Ys\^ʨKׇX< T-CM9y0?mwEQ u1kk+)+Wzz:OYl1Xe9fu5i@V `a~յ5YkW.қD]YYF;mw>Q(igYp̳H%w&/h2b ,hghkMcvS=2YBMHZ`$u 4B#Iw#'%y #r>ƛDH"8$!hZw|t#"X+@ifCJkY[^"cQRZ@ZGJ#KYb"TΒq""98N$ FG*FD#DQ!T6&A'MpC^i!*ok7(Q pd݀yWUQ;)'QPzH;lٙ FTB5\մzHVEwl1yzۿhcf|wu+wSF7:0$"Z*sa%IhLO?#).:!$8 ./F@(41˗AӻƄ%u:]:N3'/rFVڡ(7Y_W~ױN0ԴҌw=C5N=Ɏ|8Z6pe.%KoznC$Qt!]ӛM?S}<<.IX\&5) ѝ$VX:C\o5 qÙƲ C&)cQL4;ȏ`Jw P3[f%Q6YI&&>Dq:~U+蜩iZ$TMEo0‡9 bE|ۺ^Z85X"p`hZ*M2mTVBm )#H"BņC0NGVP HEJoJ@v;$P#_"jRZYwfnmlʼd. $ תCl 6xz̢!B4 97W07k׋;͍նaxO Qd}X2NX\ƅ /0XYpGozlnvg5dP 6QJQ[1 yQқRv[Y~"pܒ35vm $ӳӜ?w 4n677XعIRzS4%R G#zz2~V$욟!I ;hD9E^،eMm\pMDEJ5`E@CB!pXd C!63mgQSeL$ \ht8_x6ry6#l"RJJi%4140OekIۺz! %!r Zň1yNE;P[KiyDV-roj}+Mx5 9mD+bRUX+!v>lRsUm ]Ri298p.Z)Z*6e]nTSiF$jRrێYnd8@@z qɓhv2ݩv{p4f{*Xv`4Rv] EUBMb4ڤ.s;fY[[ۛEа7yiw^r"!VNaɣؘ]n^<w㷿_JA;8籯?])x<)뜫.s,wܱ~ fgq5n?x7>8Ul/LkIm6cDGt غ+w2/he]r;3ٵgqo~s~/鱰/~ QLx)L1Q<±GX~+ݽ3/PW=,--qqVW0Y]l&)wС M#&IL<(ع<MI (m"󚊸3+!`DW/4ͤ8u4&ʇq!$-< e$BsUudKMjZA Q5u]7?D,-q"VCBM"vu c$[ʼD,F[‡8[z))+<裼]&k*pYƣaKppCYn-R_ݚpn4[Q%Ro>ȡcNv.0;3K60M∑eiC[!<" j.];z$"(H.,?w xy 1z' ;v0*&kQUdmxp>5DAPBkT7BJMxb+Pm1n5[ S 1 yc R0P[׾+xO>-so`f,xP:cvVjI:hƥC%4 <䕣E(n_y)yOKi M}ﰢQ‹~VJ!?RCty&m8w/TTM J*F .![6h ? 28$ZL ;İkâF@ۥ(mSa05=K!Zb@yx NQ&EWsg/>Z$kL5;wuHLM-0qewL<ͧX|~ЩG /RwV/ʅ(9A7lNH %gN_f^1S$i>>{u9WYY[{7… ݻ+/pYfIu#{7/34 E1!I00Rcf@fzpƖ/Hsї9y΍÷WMI2Y7^>bk+e{-B&|bh)sssϻ/~9AФn/{WU"xo&ރҒn#USoB)C]V,^Nl ӧe2\$?7 ͥAU)n17OFHeqZApQ0F#$X[QW`cKXrT ( '9O=58B9?y?r 塞%/\D)šCP=ჇM&;ӤiF7s5d̞s/ $H;z+ӽIJsEVv'a2*ڤ$A*V"LRItdle`c{Y]@2NnU`XA$1$=J!Blr.2 j9BZY͊U1YHX610.SxkGYYl=ܶkhRc#8 ' Fk k5g>Icm~[,B`*xGM4FDM+M7-YDbQael;[C#>BG Cxm 6v{T8s&嘲( 4'?O$k!/O3JfwnX~p׽iqm!#βyItY& j tmDhvC0fа#;rSvt)XXP<yCP|P==~9|+ *5k\7bEY8c !Ui0iҸ!MSx5LV4{hܡSe#=^kXڦE-kj߰^CxBpP[lQ䅋Y\YE (%@|E:Yfs 'f0.T6-KǰVH9wet6S!œs6nVUIt ǟF;7RLdH! PWQ2:L6<(0ƃwf 1 K3LE()L҄ ۟fʺ됶O焺&K(`"vfm6M~?}ҕe^KhcPxߤs;uz1^xx}E]`ǥ'1_Ȧl}:roc9{,F={7\s==䳿Ǿ/[yÛ@ۧ( #>3S}&yN^VLOOe!S.$M #b|r>ӛ$hmЉAl(iB'3yE^zl]}F RpT5Hq2*TcN"kqJ!AlVmy[-X&~\+X%%ұq @2{R {F;'/Fb$CȴV$ӄD ƨ"U{2C[:%-`c|e[ K2W"jTBfQL"S7IG bBmSF3%ccq%FEZIiQI"d\Э|_ui,YOpe:dYYF$&n,Rrev`8D syZk]ʵ0=;xTezx}]9g)W." t揳q?iV>^lj|'/Gi YsIU.GQoGŶlRą}];VY~-89 OږB7xy+WsR?`a!G!A4\8'cB@"ƶ$ e]RA1~*$p-kf\cE EnƯ  %"/(`oE5___O ![@ P2^č(ÜC9o3?E EU%ܒW,-EWIo;ж-'HT=h& ] 1Z1q1CλDmpkLS2V$!XB tPx6eU*qPBJ|QZLJ\]#|ht}2p Cf21wb2 B$vcBzӗSԖјo9`y^kW.)676z Ť?5}?X :y lF\ӏbϾ-Ð15S[Օy*F vmo<3],oG?LUNXݸ2bH{j;nW/scǏ7w=sU8R{@E+kl~EWYWf\AM8_"[Θv_yIl)Ǝ#3:d–އFkV̈.װ},[A+ -yL[!FlđoSοMj7xg^1}S7nǗ}]9q%__*1<΢ĕ EET؀vQW%Gjz֢yG;("NIB@KE[y&lJ!3Z<+&è{+EŅsKRáYzcMDK0GLFGiJAY(pmexO]SLF# &Q13LȲ.\_#2`'\U)C h8XMXo?[cnN.ɧٱrm(K4 IDAT*&C3} q*J7]{|qVNvMyI\n#L+FbyuٙYLbxSOhG!Rc ECu</<זY7/|4:=ϟP1(CIPTilֆN0EQM2Pq=6*ZP`AF_xla%N\x]@8?5.\qP.FEvFoTNp2+^:HR֎ؠE5m>|nA!Rݎ!kj(22&eT%QSDabQu=(Ad#v4FULwށR(8F`щ@T\~"X=F +\mTTj7Bs ;;\xN+c0#\E K5',OF &5KUרJ3?DZ[2+_*ܳ tϟy${ﻏ/s<_=uG#eSip:hgm׿yۻ׾y_#=c1`mgμ@^z#~{:ƵkkdY#G0\^ų*{c<" X]@t3[UKIP5MQQH|=khW@|ѯH:$'<ܳ,'ٵk5qQ!8o] 7ͷɗqi8 | ޿-ÿy%&<|OO[tػgo <ܳmRi' \xeM+WgnN570Fc|s8n @obg]䲄XtXWǚpc4IbjjGxh $ON~nX*`.1!@4`&!˲Fx|+_&me޵M|]|z15$=z{w˚N?KO{3^ѐibb}(afz i4m|i*Y*A(!BJٸ` E,#TQ%Egc2zB'cCB rFtyզ۟F*ĨZ(G((%bP(ᬥvZ8ϗCB4¢٭NyZ#ňuEo *~ I4ܠ#@|q3;AX-DS!hd" .h-nk1q>8E$B zJ0kYM)$|ipξR0 %TZB5J.9ޞoH"t[MLO`L}2>֓ز$D>/ }R !y m/]g~dHύKߧ&#("2~ZFQ' {Ge0Vʒk[gzXXbhznrњ.*qԾYڛ]رc}7;v!^x G< 4 L!FG/<?c?@{f8}< W.Adlx˛"Cu.]M7eqy_bU wxZ싧ޏ%cщIVȕ&3,ʻ='$G("إj[^ɧ$MZ6[{!_blWb i[)|Ǧj0H >W:O>;FRMʫ4Rfl8J)~a8빗"CC4vzQo +k ;5;guu)%i~y=0s=  ![NQ7зPj5&RJ4݅:~,XmA`hEcW^Dw#s4dyN4ZX[ڪW(@<@iJk,nSWAn) ~oRPXaBA("?r6\"= @'%TacH#IJskvC%~f)BJ2n2k+L 7|!s\|4K8RkЖzBT9LMOn(W@Cc`r3*u64u7IG ,x/rx7A0"c]br??(G M")Z^EcjU BT~_l}s,]C]VL-:K['D´PO_ z+}~KQ% bzzvG#Mc'i6/bD 50~//am>fpL r HωPq 1XiQ%x[NDq iBTyJe&xB9&ŘW v;!.Ku:MCv|GIZN}$3a¹鬵{+Mc5fxT\z: nFi2L+ҠR;u"3J%A!f&2X/ E%.gr H`(RU9M} TڡT?IZ6cB AXܡ@!r }@{IB!G軔L+A{kȮ$#zYTODPr3O&NB%d5.+A05!gӡQ=͛;λ]=}1&&GiovHP 2::Fs{ŅbHc3#<{ZKm6u;Dy`/>"JH!,EX|׮{F|sgc~G~GC`?!.]~V#LMin002B*2*ﰴB qݨon95Ȏ9>4y:vΟCAP :m9BjEpIfx.}ƍz]}1w c7&)8vQn9{W4( .scc_a#=#UR`X^I)F"|@F>AB)9V B)q $ׇ0fyNέ`!S% Y9sn 9?ː(G.:!&KxR ,6yB%b2UXZ!Bkq5֒)U{BO5RZ.iJQ0 uqRQv㬯;yn^gt|m$ڥc=~6Z lanoo>rUTF`%`yy(CH#_ر9|}=wV|}>YƮ]mALEK '#45$c0Hd^W8"V8W.I:'|Kҋ|~w- *k}#D\&KSM)U$/X^~V@}|d_qkuK r|瓟(1_4F%vi_&VRHB/" OՔk5a:_0>;YJB ~C[']#A+Ǚjl47>w߬'C~cgSznK3?hT*e<=nvB/WZ`n}MRo!Z|<OeLW881=U57)EQE"uY`c !Iw]_e8"KD AGs,RI\>= i/Eg@jek8 d"@5*E¢W|$vǔe2:!aZ%ΟJcmjxT&pn>y+w0^BSg=tSq&n2ڽZ S'noCξtyU^MYX%&L eɓ'IznE:JO١OZK\}'AF Zգb{DEy>V+( cIJW+aatd ^fllZA E3_CQL%Эk_ǎdA^ϽTeğ=yuqM7G3gh6LǞҥ_H)RdW6-+ Y }̬|'~n>q/|s]buc4O9x Kdk)N\+u!} R9i#<+10<001>2NW(=Y>IR*TK% ckkn/Rb:J}`< " B¸#$tKe Zi̾#u>Q<xK3:6FV315ʕ:$ZB%$"nёayz0YSV9)NpqKn8>Rt41~ xZ'+#OE“rxO,]LOOhڦ:C*QH:g"6]RF$~+x =}RdJ~$i!(ܹ\*K}1H(]+$S4 u"k5-x-#WTh-ra(=' Q^Uȍ UNZB%\Q+:%Ƞ…GЀt*}yU7жY{r99=wBNҍ}7%K\.bYVFv.1T[މB[]YK,{bz(dxxJB^!*2Z4 .L!1Fec.ĥATD /Qu"e@n<#X`tQ9iz5uc $F ڧh –"d[B,yR"m^>ɿdbz<9{e ׸҆Ex"RbjrtY_`vO“9,n8pS榩sɧΣLM2;??sgV\8{R,k^Dcl|jzὴ2..a\J9vlHhܨzW#5Qs9ZHsX RLO n@kS{&ɥQa^%TD44>1:}ŋsotRJ'ık}wnz˲yH{f47w {qp;u\vV |C r+GJ7㬔hɍ"JiJ) APu:,q{jC?CZߍPMV&L^$ ,pV;mq`JgH#@/DiU [. IDAT=8l' 宥\H7C}P)J)g.;)%A4MI?!Dq(G@.BK?"|o\D[*Uʥ2Di`sMP&q@BQVH) ? VsVs &bԷ'>*ZxsL==wYk,l.nYAŔu3 j+MO|3*Ɋ}9zx2@YRL.[Q;x9z `ݧU0PoaAٳw/<7|78c8У2s7^|Z%9\ŋ_QfAN C[Ii%(.ٷo,pk]f$]+ke7~ǭ'ϑqjhMYbaDJ:GI^DPʐ+xıGQge}GW@1}Nz H"鱤iLNOhuZG`K4[Ԫ5vDkF:y_khonFGՈ# o~_$Jw;;C8VnMysM|kU+]AT:N:ž}>'O!N==all_z^Lc|U/ko?7-Tbbv}4/_du II) -xsQZr>FO9qt ϑ2)Ek+/]#]) إx̟? AH?$b&/-RۛH)Z]Kϳ%^:gpp'N3,'o+1ὂ^Z%`p F}uwSY_akVeā_!,RR)w M0:2΅ gZx7ET'9A$yGq;I/~b?$emmI. ^TN/\`ht+ Jg~\_f \YcqwQj b&.ŌPXZ\oSs5L& }2 H q xpˤA{<*7e52 XgٷhP"Azs40$OszZ4*I{D/(:.66iFr7ΕeZΝ}^{KWmviFͶ@(Dcq&T2Hu%DJ\2F T02)ÏQjՀ~:0qR dn5Pk4Pf~/jC%,ZkP) ^A;;:cc,g~aNB(~P&3Z)| sO>r,.Qi Qj q~;Ff9o}{=8f}`[M&3Gf;5zቧDjK{kGKT[fpˉX+:OvA>Bė!ݬL15NOg(4T{m}0 6QV!ѹUp-'6ʭ5 W}Ɔ+YR2-ZqK{й5" " ! PDR68@Z%TI15vFɼ p_{[.#E$!@ #-B0)yFNlIoSm'.JwB`Qb- J)J]"#,Ř,ǵ4ҳhb"i?4aQ>6&*Inu F)&YAt;LNIIzIBP*1=9D1۝>ؿg˫<_e;:}ulmnSEALӒ4O>y],7S+ l%䶌|if'yxx{Χ*qXZ^m8$D up}[Ȩ!A`RoI\o&^K?(E;jx晧I҄w݄~HRR*j0fuE2??OD[#,TEkɝ'>!:T9eeLMe!W'y-K; \"c=}G /_`tR~;v(1FGG>}\zK/rQΜ9Cgjj +sH)G^/>@R3,??N?ƝwI$Ç~}u._]`vz5rEj]`ˎVq}v-T:^k+x72#)y|dA7W%)z"bfzٙi..a(U TK } }/~暻\Ed'ADiCeH188nT0>5I!I3Jٳ/rpJG> 趷<嗞'{f^&&R-$[m_[`mu_H8Օk4Un/7+LAś A\ZB#R@ BIf$9(Uܶ9P T#yX%&S!JFd J `} C/ȍYxF|" M3hօГu<HO"xx2(8ҹ9 )t34.2hƸ1'JeEUS954M)綒Da m\iOQKn_&Ν! wW"!X{Ɛ; ׊ƪ\gd8l:**qN(NhOKIeAJA\A!yf{V%Nk\H=Slmn3::Jk 6طO[y#x̋ Vct qmkfw?^swRcVnOSSfqE#YY^%(ss ; ?3?sM92wK3SZ^D Mgɥelg?Y~g ~^^cd!z7syW( om'<\)s {:PO~1<2ʽkW9>vsDǾgVVV[c}p!,hV!yS$iNTf}̾_m&'2,smjqqE!!;p\/;Coy3'NիZž={e8fttȏpqmdy-'o~3<:vz6kk~IN~Ç;FGF \廢4?z+WXY_{K̈Ne{Ms! |7Jေ`0>V&,-.|^w033,+Kqv<}V.Ecqq4M9|0.\u28q3{_%W^'?M{}Ͽ+0z9Y.͟'C**cOzt:m.iBH* CC4u F7AQ߹6H;l/ { B 8`502Eץ>РT2g.qƃaff^/^ֻcpb.-X ؍ALLrKt>,/x'NRHrMc`lmj%s3Si+ũG-w18+ P/01L/{>A ,tX5k S9qYEj8Ȕ“g4.ܳ*kުWjR EFL`yp"0D0D x<6 H2$ --@{ꪬ%3+׻9g>7[aQODEEwv.v{Bm~|s݉Stn'vq|տǎCM6]np?grqgzMsy hO%o X W@>]ŷ_  Ђ kw*4:/nCY^ՂLi=tIt)MA"b0;V U8 k[qL<; hB$ _YUUyX$!'z ߶Vz\^*Ђ PP @5R%Br2]n '_F{ PamYdBFT~&@{8($RO k{\}SQ\\9aAhc\$ɘ 4@ q~cU͜RQ8͔ jR g.SN5,]**P%ֳoqu9VGN¥\M\}9P\E~COEF;a{ۻ8&/K.o0O@d i۬md_ou9MYlםd2X߹ƥpM7xxᅫ|Ӎ؏ϭ=ʻu//<6fKt R1hsy*Z([Y W~WUD*4eM\=<|k\|xDe"g0*#f G4s/KL; IDAT%ܺʕtzIYzPчݭk]YF*yG|AC?Cosss=G,--cjdnnv͗?U> 7]( I "`yi_ n<|TRy'^,|B1Ӛԩ9sNbff$IPY^?$hp03ܹs?gz=:^:KKa}n}z. ;3C< atM[fqR"ƧQss%bP% HNGgu %ipqx5=vvvQBqN1ISBB%Pe8;E*O?~7$/] "#- mF!KvZ2Y%**DYaBg.$ #iYv*[҄!4+"餟*  0bDES=X䌲m"hS؈MaR԰Uxyś>V`pZa;E?L O?_|AJ)AOwz"?zQU%XJcTf2c-;DKTmkÌ=?&D(-ט^eOʊ[ֺq2u<!q#N"v{DIRV@B4y j}a6sq{#/.rfҔ~UY$BbUy4 Daȑl^5ʐ(,,' hvjPVѐ6ZdiwOጤۛ T ظv'x?{=~yVzč&VN`rgљamwǹvSز2M 8rwxW{M;*YP:5 kJVG??D{(fss~?|O1vgkB/~#9tQr ]}5 ],i:Aܤ`M0:aeYՎCAa^N^[!-t*""sQ}W` 3͈6Bp2fyI:ͩg8Ͼ9H)-J@ P?P[Viba=XCfAAĨ}b<9042@yd*pa)Kj4f?do+۬Y!W$(` ᅵJX `̀f1@ICƓ)IQTns/2,9>NSO31Sqڐ'k,+sVf lЊ`DӦ@gy6O8A7KuhQOE@ F#*;&LT"?ä3fv9_y|2_iMu\۸@2ߛcݞ ufro,Nk4Z8@; 5گ[?ϝ.]\`Ч(=Y_>"jr`pF!熼pyz+GXYZ!M'&?qN./_ѣ9s4qmsyFt`4@kO<"w-:W\oC.VI88} Ͻ=xqy}YF!AQ tlGx:`:䱓|;_ӛ3`i0ǎUʪ”^ N|_fiiw]|g#G-ԯ%?,Z{;iA+3ER>ܳ9v+%eb\v# 7LBZ*L9eUsӜ>>`oELD]\Q O>s2׮" xkv L!}sM7rqme`R@Z {TaB]g[u$ eI^\b0:`<ЄI@Z|3mSOa e,cvF84U/:$|Gޙ0xHtgh4c&Ӕ,ryRؔBib-20f7:8E_zX!^?^ PËH'Q#&s{)g~_ ;գv w]eQu]#ݝ].\Ooet{=9SO}e^-z.-3m~]|宻~7?S'8s ?0{{{|_.o:7|+UR)%7tO>|'Y?ss4[-,-S*g(#_[ncuDע+.oM,Q8,K!#?R0n2w8GOeu4,g{CFdB rZeh5V)_Zfaa<ℤe]̳yfggLF }>h4&c4[=ڽE`IUv ˆ,i-r vl)ɘ,tH#T,uzKak-z:"2*NǬיE,4$E(J\Y$asa4Hkۭm%J)]$%BQ7O롬Vk[C3~kCIuF* q&hBD #AZR@+?:  W[qКT |}eB;~QGR+@ԐZ@(>bi+(yg,ʡaNM=e^,a!iw)D'#$f "wY-{g3VZDId2(I`K FAEYhv9yYdH,BDiJK %O3q G:f ڕomA3k]avfntk!+( (&EVx6nac;%>rpuK2 SH# ffz;z.V>['$"*^xu+++lnn2LM [h;$7p#I걣/~M/pU!93=>G{EHA܌=ћe8l6} ^V;DZ>Jj+u)Z7z(lmc{%G:17+`N)ܧ t@LH8pBeY=/q񩭭MyΜ9C;|3㺳7ߏ, <3\x;vw'?#<7HH0cS?O'OUVWtL&$IիW|s\ֲƙ3gygk^igCh7c7>ӟn#è|4 [a"}-/ ƲcUX0R.n IBj6L?@|H'oiJ$[تzLooy5~p:,r&1ZZ- f4M:RYuBѬ#f1GRW._`<f9阙n4MٽvOOoh4~SjXNx^ v600 EKN\JO U@y> )B0(f*G|dNB P) ;p&" B+-B7C:q84NMR(Z{o1⤣0U ]8gjh>SYVLӢz98GSsG!PZڎek]0J{0urʻ|&V ):r_Rzch6"F$/|kUNաL}/-|{^6yN(JFm)F6 gf7]Qc!7FXtK'7'WN>E=C-0짴gfIH\қgf̴c`g,p8t '4{ؒkJb :_/aDY| Br53 ,Eh;kJD RH9Yd;C"cf #W75:gܷ~9ΖXyQ [S)6͙LFS-ڛO aAT(!i( $k+J"z$D?BhEHRHKZT3DA13͘ٹYD}[﹁Vs._BDYlB(2'% AQ%XpZAV-՗S8T}/@(o}$Yߝ  -4ih4h6۴-N:^§>i8qk[1?7m 9,i$~| _\X`ss'xE_mǹs7sϐ5bޥ*љaOHt{l=5Crd2vq24gZ~"+pNFe&i$MF+,<xU6vG\&GV)E>er* /g~(K8zkLmQ}"mQ,)LK"V1HS!qA8jP9G0/X!ZCVH!had%P>lCT+-8, !cB;2+ТD4$RbKIi 54(8٠D2DQZW PNUU>RWh-ʼ8tܗʻeaN ,in43%J%h[љQL׆qJhH㛸pW'}\BIai"@fG92;lo0i6RB`F+/ keF2`ʟ4qX,e:R`p2 );;&c HD@n K(Hlׇ:r(|\r~jo`XaV2V*poj,Z2. >uXsq{bHcf!{m34s=B˗>& Y?F1Qv;l,v6yI:sWjt`EU1Z:9411dyF/.M#6 xi}Q'_J%5r?x8yjͭ]N;dC`X4]Y2 ص癬mS0iQV5:\ h JI|q.]B5f#&2>,88FNZzt=n9w Yz: q瘟g C^W/F }wLDh,Νgckkm8'VKWc2@ ˳ȕ)tߓH'y=ΑUG qIY.Ė"(tp5+Gþp޿/ˆ(8e5zs#?O>'C2'/ quQdn:?Gx[>11ȃ1;;K9sduuk[8X+hZdY=m>UUlgook[aqi?%RY>u~!^oHx-^]UQR9)ƹI~,Iʸ?&B!aiX2)33"I0, MU"@kULp)1Cq'8!32?Y*)2 BuTUNUV<#j36#"nQk3$洺W|0\ŋ8}#K[0ZGjv))KMEZ!@Z?YQQk /$'P>"-WCPyACz{uE!P)gJymR!ͽPh,3"DW1a'<i&0"Pr5zf¾hI0T ;zg՟Ɛ/"[<@&BE*WGƜP^R%I,Ci ”bNT^qENDf}.bla}Z0d8)$ZTGCFgns6x<ȃ?q6Y^=N+TBJzn,YF!I'UYztp$tzYl1ɦsHS1iیG#f Ø-82 smR5i$Ib U[(@QVQoSy5cs4-LUx(nph o 4IJg\8{2oy7|+69ZUYG#:mVx5N}Y_~o"KuX*p@L):Ɓc-B)l8i|S)4h@`}Lz_i H U9`4)JFk{P~sBP^k8 0B0-K( s(oa5S!sF#h0 u,.Лi4!qDrsk-STUNYLFLRdEYY")ɧcid8N1:LeICHxrp#U:.3U?JT#*ܐGPYGiDq@U8Sb$8#OgML`D0*SƓ Modg{%AZI7N&$M\cs KK < )J8 ilno!hx{R)" ϵWp֐e)9_zu5hd8&O>?y_} Y╌i#'Hw)f? [>{>s fmIl'KvHHaؗuÊ+뗹~k<Νz/_!KS~HӔu;^=8vq%7|a͇?an667N&{7n7YXZBA0Apyh/p"Ofk{5kָy(EKVYuәG wX[ ?x `Cw>c|ſ"_8O=4'xwg.^ܭ7s) K.Dgk{pȻn~8y$v휽:9Z7sq>s}|_ܹs|8z;3￟mXg uB|' CR:](" CPQq6FN>H" C=fk+.oM˲!(fqe )y7O8 δY!)tYN3ڹD>F,RktyCZ6L#Gr2B8.3]8fok kJʪ8(h\Iizyf9<7@QT0 }ݫsE&I0 [9AҚaO3YY\&c)WU*'s(bc [k=KCK3͐f ND@$j3zd--ΕԍXL)ala1TAv%R+,ַ`d"ZS29Yriw4b\D@c!Ͳ ](T(7D D* 2%/bp@Gs߽N'/S̃oSJoZ AQU |X0/HlCLY`cˆMKMQGj4ȋʔ`-Y15|'L)JB) Su<@5xw0U1f**T$kzXSMۡl2LÐhD/+J(c Idoo$i$ W<ݽm:/\8αblơ JRL3@DIp,XVf(h8$iD1%?3?O'y8sM짂0lyuLݝmbH9qRc D| 'p)*L egr^!?FT4ϑU}BbCK~RJQڊʔc4@PCyI Pq>AHAE(/Sc&(UE1f |%hJ,%uUHB9ʀP5vGҬqZp|QSԵ޽4I+n2 $3ьp%KEaXv!ygeii)L(/K|g)SW1 ^|ͽ1Nj&)]8Muvf(ޭ`= 4`LY< UU 4XpL)tH%?铞}wY޵ B \$S+Xˊ嚑8dRT%%x&&Dz[E%˒LJH?Y jvty8곲g^zfy*4z8V,,ɳ)"kuڍ]"+2^xDK+K+]b~~^6+++t].Ç馛Qlhaj#a_uoo@viԯ%*g)|{WyQLiJ(*x(xԤ: %#"P*JEpkUoJ,ւ|JY-Y၈)^5% .qp&QVʔ GF \,&M 1D52,/-!bg]V{k-co:adK0}DB߆}T1{(rK ̙D{I$Y[Zi6dR:$*""VDźfjIzi`$_Jʿ]w{ z+Z׫ѐQlmogq nI>| "㛏|W _ O˕яWlnn1p+y97y7j6p9^p4bm+ͯwE '/̵kzoܹs|"w}7-o} o~3Ny9c 6c=b+i4یdfw(i4Z̘%iAY!S:9.@FJg#ix$í (g <k7H X"r/4)td8$4u#V L}0Z6VyLBm%LUY`M 3=֬>=ɛo>am*c}8k qč&ulR/]Ssy\p4xU}ڝaQJq~~w\r`@r~$DRC 2%; IDATO xomSU?e~~gaagy[oci2FJ&2FCr$Iw~OO|=YA;*f YNH$~q^~ [UٴQ%M̦6:$Xlg^DZ0`}A,a:)UQU2Qvٸd20&Kyt1K0ڭs GOhRUa*yڽ8bDPYp4AbN(+;/)< {Vh-Н둤i8A9hӿD'6A5^*6'%+`CL9A-Ihq΂T . - WW*!xip׼n2Õ”Ȳ" SMYYxI$M7FGGGZ(V )iXP“Y")tJc\Zذ׈p.xo? %$^%r p )`zX&T# 76$!BXi ga 3g_Up5:sPJbt*v;aDUL#P$*ƖJF4[&BF#e:Z3LiZTe^J)S a$Y4] P{ U'$% c# .%f < IURU!WHk^M6JNRDTM9u(۠X"4^2vYRͭgCW;zs%2)1&Ҕf a:GxK93H|#NȊswޑҔz҆眸ufS"mU\Jj'p5LUqXGd 2F R:EF5hnQ%-Xᄢ@ Z:0Gx ‚xQ^0 &ڑĚo055a;5UQqT2dl"(_Tyh*<*gln8" )~Lxr@i=*Ip 28\tl n\g=udPmjYJkRAh$)R8tFP5Q(*=" Ye( 1s:x2El1m-H9t0/]-Z1 HNa"JvGlWs1 $AEx(8\Γ$1i Gl&7 D}š-.^zqa߁[QcظvH:"9}IL$ٚH{D]o$j6[9&qą/}b?![ۻ8ͳϞAJޕy7F1?i+wr!4qDgݻhDWBϾsFzFXk|֒Ͽyi>p۩O3V->ʡY(x~n;uRK6}vŦPG/wEd:ɔO||/w#o󘢢( ֮i-$cկQV%{/{|{3rS◿̅ 9r.lS?G9ox[w5WJ fH"sux'ݛ 0b]d`2\Y0ZF}ܤIF 6[Phn'(LU։AP q" BU m)|pEA-UZ@+]WS.@D ^jH߻~@P ]2HcA!^R9"e($J+u&D*"/ Zݸq6LD! g)]\ṧ~7GwGQnlBg^`2̧ ZV\ʹ1M=JHTǒPGi0cKʞ:>$J\_8ﵐkSVYVJda^i$:QXYH1QpA8'+K'`³7 x^Q3(;ydVS,q1EJ8Xx߄Op)!,F_{V:<K <#6AWlϾcEIc+x,ʂY6%n&>5vб@ϋVB8zD. 4_HGp7Ӳ^;@7 7k-Yۥfk۔NPЌu=!2/HBZõj!/,Fv$h4 i#]~Wdn4u!@I>0E'Z7f 2r^`0;%(%GJT03&TF CL֕>q#CT(ݸD2gG!K *|_$"ȭiԚr(@IeD3IQ¨gn~͝^*ZX Rϡ'tyd25DbL4 ΝnDq3eXcd:m M`AXHSڍa3u&Ϧ8TQeV(!rX>xO=.hStz0ֳ0;,q%V`5rY fوrm#Oµ _Bs%&)?[[<\p8Z\\4up{u>I'1n9ŧ?qıcGX׈rG}$N_}{﹛'J #~QBbO7:k11epv;v;x"}QM#"7>s8Jv,dy^?+-eU穧o}˟d8r}:^.,񬭭կ}__sg8#%y㜭5@+?_۟m|._d `4=VWyd2Ǿ>Ƚo;8oٳzlol3ϱ>StP@O+ G`^~0s/gϟe:nv8r0ш5|gR2 c2=U0W^suGhYx:#I[!dJ /)4:Jh5[xaLI;m`~|M6g{l^{Fæ](t”;0F0q΀3xS]530r\_M$>=C.] bTi‘-*JsUbNZ\lepLyC R-$ZVr528L،P! Z\Pi$Qk}9 {GeKD1D0)gmlnI)ɉY$eV$]@iIi}Ӂ 1-LVqDUYcm,1dyr T2MxUS9RI4e4BNZo,,qS9q+?|+Zj80fDbZ;zt1juv}7~/2) Ղt/2(A1RHQgPY.tɔlQs,FFpEI,/.smw1“W8|^L5bB s(DR sJahϵal ˈkk-<urh/Vm:PY?cD=>?q[TFeEL3:s:$TrJWQiQBV$I,ˈ yy?F,t<&I,#c%.leSKKnAF Y Zj \iqRK$+p`>JHSTaC8O,U-D@*8".Dv]UUaKZGnFxN*O̊/%QU", % XK  yH) p 8{7h1t.1ޑ48HQTH-fy3 G6Hs,.K@D lm]MKuX#$IJ簵@ c*D-tq\u;PGZl?@t"8tcV,"3.mO@{*[x7sᄴաs/%)ќgmkW.1i$I[(E4F zſ[GbTᜥ{G\_]e*VkWчa}skWs]wwx¾}67H˗/֚__//REΟ?_3|''n:~$wtO;vw,/-կ}V##긢DtX\\d6,~gV?-oc6q%l3x }3/>K,--a [_aR+N|3ЁÜ<ӧ?E`2٧E'O`=|s=ϣyUh4XZ\r3}{/®Tz2/FC[|C?x;:Kv,/-3XXUe8U#| 1ަʦxStNjp=![{PQF4hmyF1>t 6U$I2eߡT&sThQ*Ed8Iȳ)yV^(h7\XFsʖ^+ȦZ+9q> \:hRSl W/!pd!]ՐbKU\X;dNiJ&JZKl[͋+ wE^8!IyN,'Q9q!+m%l&E RF%P!=C+Wx8ƢtH\ /' eK. R0o(Tfm;pT #Vt!({[ok<(-2[jg D"$R:='8wap!Vz;B^0w S].6_zO@zDcVHq㝧$xbZ ƙ&^8 SaE0=!V4 *nBQ8F:G[Gtm+ e=tUE#m/o|[Φ}c V{n-Qfm2vL{.@gfYlLCLc4{fan|Brg)7 ?ƙ';𘉃`b3]Y47kng<>;`Q4)BD1uEzeVҴ"[DϔҔ$RhbyC w'MhȖg3NP2Dף`a 8v8(Rm@5[ANΩ[#sBVxkX Cf~s\[R7{(r\_U%I,vEnr*[1xzoE!29KEL!$ Ґ [,; 7EbK~ ^<(i2 GVeB!HQʱ4FVpiT3vE$8"wgqcUVy,*OWl0iX!1uDIPT O”0AΣ}NXc)DZOe*{%Qң% b5@׺Yֆ} CB iB&SǺaQ_?Zx$" ˄A h7#fe:)UtN=c:H!>=ȗܳ ;(a3&IS q2,EaX\Zb5WbY4/p8T?n;UTGʺκvյZm&YN52Ҕ dpcWEFFY$ loOe3KKG+q7k[,Y y˻ž7rʾqĝf(HI?m_ںc(fgY޳K{V Teɋ1j cmu9ɘW^|l3L/rrE)O3nf=>Nl^>wm?<~+Bӌ["^u/<x;8zEQL[eIî!ԩ[8|k_AGz}c54?O>Ai ]v6679z(gϞL;(+&ΐ7we鈢;ȦփT6<7??4%?Ea:ʓOclD?m';\rFKK^b6Q4mҞ%$HGTeU.}iv68q1;v(ȓO>P1Zd1<ѣy[&1N[z'9YK/ J¸e5+7JzzXsgy-=|\+"f&LqL+Q̵4&yr(OI5Y,/p9?I4ooUrEI%)Kg67g3{]f)th0BQh4/7#=[zJj"CiI#016̞&dblW%BKIB=/y IlEj:#*v^c#i7ƐW 5'∔H #/,[-Q"$ Yk MHRFuJ;5HKl9-cUҖ8c+ɥpbLr-qUR,lSۯ`\,=`=4T mA*ijTjAE`h5(IZ`Ezjcb `aD+CSCQƏ:r:PC30h3Ut2iu/.cm }ͲF ix:3H(CDE3PS%U IDATTW:E\|`J$x< Y ICHAf{kVEU"TFb'N'(^CsL3هRfIeKuwfS(&i48~VZ&?xT׮ž=A5'䮛{smvdBj&EAKE&0 ٔ$(ק jUH4ٌZdx1*ԡ2x%BhLʌ!/-Ąn@d%YKaBYɠej*NqV"L_{Dy{k kCS *WV9^{{_sl<┢ Lj' gq Gޣ4"G#g%ɧQG,75}}Mvڿ%@d>a20ֳ>6G/vܜy*'#LI΀ȚԵֆߠnםy*eP][&AYllli".ƉTTY2+S47[Xv8͡NAXVQD鑶wB)HERۣn'yd2Ν;d8_k9}&c|eZfc [>F)%+oesc/9[6^ʩfKK\zhb| >rpmT<`#G1|5Kݡ,K7<_ʗ"˄6*DZ7O'\p|sn }ξ\wtBK=ž}xr}oX8}4yܟkk<>|x7u8xK\pw޵˪2T o7܋<ρCGƹu]YBkEkųgi۴ qϱ gg2hdJqm9>?]i7L39z(VooګցDz % 5Y+W^ﳼ0v(0l5I3#7*;{3~VTT ` Cbc'iDZm;CnY{+q^vi0& BfjR[|{?W"ɟݶzתU~=AMNL1ڵ@Y,,Sd#$(rVjW0ɀ|45KK,cϞhczI%.mҴKFX P54,;bֆ<+[} =.` y]}oEiwWa@>.iEnvvNDܝ&VRGYiZO+R7&]4|&JH}@tX*4a'j|"rغB ҫ80X]bSj'Ni{~ְ`yFB63$Q "sz<ֆi B)kZ۞m)Eb@s`-RAӤJKj4rcv,hXmO&^?:e9aآ65A%d%x5KkB@xiPkT( gvb&{?oKWjz2 JBFUU9NрVNZdلv4 \0$1䅣 69|Z hC1L a0*r\^p ?Amk+)8H=ak}|Xo*-z1X/|T( ]3=ÊYdpau|&)Oq5nV>nכ&k G#vTqc 6bIYntF^A4^]g rݡ-mľ|"/AVy'aWs;~-< N!<6(q֐&-bLB* U@WcnMj@!?\MgK%c= D^J*.IӔA<Xk}#Mb\*X21"X@ċI:~rJPK(Wx9T$NFv@) {;mD+)D X.$kCF%v )AIB ZyB(HPؓkF9ۈўa@ZK47OV @T`Vnj_gOrK_B l`IQYS8uake+B'$L:z=V6;QXꪠn@yb kT`.V* 'nMl z^S`!I1Q`b+~KN<`K癞Šn._C6p6"RW+Ջ9JcVVBYUUv;(xꩧ";wk vK. ں$Gen>>|u] C}1u]E˗lnm2MÀnÙ39r0q155EE{=.SSSTUEb"sssLP<(8z<K?}O33gNqY~g%>&8T`&t;}˯_K~~A/;;opYvooW[n5?ƞ= (jG}4z~޳W_畯~8|)Teɩ'CO{~Q~Gn%x[/| |[U$)^wh -we2ɘ톄dsi^EU@g,Z8+G2;=.s6 jń;~|ݿ9ʿ{ou7=l{͚ 32+7yIwWOsX$[73YN$֐ NE0bye:)*Xɳ'Y.Uo"i#ߺʯ/72\]# fW>Aƚc5FFn9GZ *%vIZtxinnN3gh5EvƈZMFXUw[W k]^afvhLYƧ@Zͅj2 qIv!U q C@դ=quzh9] T|uJɱ[i3OfxKu//|XMI%Q2) tP{׫ӞL%xGI!՝UUc8q1.-‍%l  Xkn gΜ! CΜy]i| ^{}ϝw~fuckcvn5Vy?EF̙,KkmkvW??i@~_?~c-]zԧ?DuՌc+@׎~@{M7D(,74n{gϞ[necu0{~T}Y^033` &m7eOx??|#WWI҄V%gfP %^:x >ϒ9ߢv7i)Mo矋?)_~#߿w$ |f?_bD4V)bۨ:IL Vx˅ 2IV13;,Rq뚢O4M㘤b} EeYؿ6rL1*꧿D5 ;j<*hwzif'CT!1Ax5y6Amz_Bӆ|ľǘ% V! bnaW._IE.^^b~_{~ETU&lU>I2$JͰ1M"~ѺBIP BnmlBOgH* m i Uxvpaɰ1\$M($G+[+ DNŘSg-HNRg4*Hh-5j2~lfi i,6>z[E5?Qnb *!P2aqS%Z o I b E@72'7c*b&5i| -!$ٵ/}/;ƿuVר&'= aΝ=h4(\Y] 6iCѐ$2kw !y^AʄD2X[[Сch]`# }lX S}d9y3S|^3gxz3}f榹xu¾֥E䖩b E2`唺&ISh@%mWc8/]^ɐWsDE,&8)YLM%!9?E^AdP#u!_zGyїka$ƈYn9%9ڀqϾk#L@ 󍄦 8Hxv-+.ʺ"HEXaw"BHO\3?_kMJ(Ҕ:'W3)&m 333y<5apT:Eb^R4ʟdBDs /!yũ7AX T)J@pi)A)$DZx‘)Q1eQϭH B|9.&=(1b hva؈l T 5AjSN5ZQD ,'R҂pajZA@ bdbR8ʫּZKz[+װxy^i9$]bnQlfn3.<#.=( ?E%Y6a8 77SGesq* F#+| :k5G?%ZSՎy\˿ .D`FW6i'J/R* cIþݾSo AUhZ@qM9zavpS;~ar)^w'9GBp"3ZB?c=wW7h<a:~ftX Xk{✏,oZ8'=x1ʲ7=x<@}| [K w^6LWǍQ $".&ԥW%a#@لs'OrRrڒ$˗3^[& ֚$Mq' IEtwINozE9p(Л!tp At;z#^y?a0-2w?>Qlmo|Fty0k󧟤 v_C[[[gws'75LGHz.Ca 6-BW0] j% f|>j4 /aȡoH 緈fb~j4ii:*[z5 YLR~o*0A R!;G58A =YpZ7!5U"$>UFkv~*,Or#8Iyxh)FH?5փx. tڎ n ԕO1N36Rim.鶻d:gG*WR*I V"+H„ HH%V17}/[oo,r]1J{]$fg8눢^w:-O=ؒV+F*&ADK5S( B(@OPa@;GQqnZkV15ښ5G~׿껐SmfNˋ9v 4#.0(?߻WOo6ȹ Vט$X#h%-z0)gk8JvrIhH'lln0c>'!+BylF|3\s 䣛tsJ'IZ}C/Aଡ'J|ؚ4يS\UbDs4PUTH%ͩjK"p#PP)V33"`'! "r6bX%(' ,֊iԤBI*3]Bu@ Q6}VȄD$"!8U ZJdyvPZടBS5Hg cIiV:V#"R;QJ 0PzΘ7uq>TMa9BiS`%jAc܅kk-"PA;5 -h3$FMH7hFY BngOrimSg9O|$n!Eę`F(K8z8`ZC IDATm,Q󊰉=X](jk{X!(ʚ:b@ F6%IUwhSt* 6tnLj- vVΟV.q}t6{vq9{#6It( ə;s+߮sӴͤɊ^a{!4Wq~0T%SeNQvsQt뮻8uo9Ǚ3y+ޱHʗ{՜ADAHOxIS;r(|g}}6xWTJfgx˛g.?8iΞOz w}O}zӼ`0rSٷdLOQV;fg8YsV%DZcxk囏HV6vdѤ'om6ϋMb6!$a񽵟Vڒ%.9 ʢ`jzO}pi(DWV8S;@yodO(`1xXm6.\.xsT&%}#* "PAj]SUoMM]f@ GD-AiO{^!bݱ)'qMT;?tI 䣅uIea?'(oI3oj'/ g65$QBejҴ2T́ 8N0 hCt/%BLAhG-ʼ TPVEls@Xl#o+zyQ >0/7|bsy9ի*`s4!v3!LME">^z3<}sl8kQ`Rmjcv}l&MM]wJnV6XX@E(`*f{50yAp'9q]Ԙ_?7 كp!Ihj(G'08j>Ŝ> qY^ʉ c VLYUJgt>& D-жBH zs@PVq)$I@RblIQ _w 9_#4Mq`^/]JpXDI!d෣^U֍ h8%:`d-*EH"8s 90eP(MHwH Z9jN*pRD`Qab UPkG<0KbH+hJ5|gO2 mm,́Jv(e֑gV tU{{cp2&+kڡbsk0 FR%8a4%Q:\emRrmwqec0M Y&F3CgwbccHVAi,.B*ESU7 R}Wx۝Bj>v[w^& xgMF*!ȳ%7`fii:~Z֜8qk-.\`i :Zs237ͫ}+K<# 6vu+ppsٳgY^_8s4Ƈo;7?SDA'|b~nnCgOKWUT^¥Tuի>vo$Vo֐€`<1=;f񋋴ZF)-e`yn{-:y{!%~;wyJs̳^ )/333C[nAךG}i􆦮+@gTz+зQU& m;,gkkZ_e#a=5UeN> &2Iӄ,l8̛CG:Gez#k4d3?w 4DW6h{e",xsO8acc0H8tZٵ[nr*/jWO]frm}-fX8pƣ!&x6,#T;SBRْBo_tTH«uot8+|̆H7 MQ()0IR  ʊƆeRHiW踀(ַ O\ayӲPiy9J$RPIabFc5:34/姃H-b9cwǫj͂pyM"oFͼ.OJ!7p~NH|NXg9Q++rDJR9J;B 2< rۇn-2 qV75NGii3r8(ٿw_y!7:|ws<:Y]"ДUE"P*8F[h0XISon-h#5Pך8 &q+%T>IGE(HGc듥ks]'Oy|޺]U9NFHP2 94 k[y6Ap8-ԕ@EE4@(TBQ MM]{۷0 (˚)En$FZHҔF"ø 'iV\eYRGԴ@*5Rν2" -l2&TuM(FܿׯNae j8,; \ca<ǿJU;~=O?$QSkwBelo=<ȥijn.Jb$Zo˘41z9,A$"MB!Y5 : o4:AZI#D5aPZMVOHĘ&-lQ1UY32`P^װ6~O+ʊ~#8(\(Pb4hScc4355&[ٳh䭤x)VWWXY]a~HGH|jFDhmpX )z >GL-V}sG|ǕsϠ,*dfvMP=Ü.`zzZK./.=K{l8Rz'xL߰5$޽GxKmSannFoOx! ̴g[S#f3Sgsm#0 X5a0Mo\o 'lllA5)!b !>KzuS[J 7;%A)}c*vң( Yg,@ hܨWHAuU aEai"͟W.(ml0!!i,yf%1*4&7SFg q#CQ 5(.qP(3 B8ḮT5NHTڠ +,Գ+gCV{L 'P֠ź V&TZ#QPk@9)N! QBH-үy1U][r)ʂR)G^l%L80>sGLʂNT{nHQY#Ց3“ب܌ dCc18A .ȪLQV`E I& B6FhS FSKE-%k@1/,Ab=GHC&^{I9!iw @9)Ɋh>yq"O<~{kg?A$+w~l(kK 1if8nbW%ls؝vZz>vڻ_vycsw a~W8~8+++uh4"blm +8In&$ =_3Icɩw`?`5rq; V{h|7h:~87E/=U=X3#^y|H]42jcؿ?Gfvf=~$cqi=yz s0Be>/[wxuUU54\8ru= 3h_lmlz%﹮}뭷s˭$DyZn˱剏< r}qk_{pq4%G t=z{@2ƆOMMF?_/?zmTy1q' Vx<7v6L$,d$bV{? 9x#uD?bFl 6G%abJWx/nFuMmq Y§ [HRxhsԼ zGn[*)aaX!ݱiIȘj}OD>JWi\ ^)w ( DHƌ *Ȋ 8$pXEԲB]Ek6e'azPDH' $ b^V%j,N̸˗Ɵ?׿7 vE>FiJelMh~D)IڭD &BIS},{UaUAvwt;JW%Key83ٙIf$TE44U=] ((hT1qB&Ėȶl˖5߫;{ƽ;w+cW>Z:gs~y~O(Jc=Qik'ӯ|Za#OP;/,8OհJsRHv ˠ\&ll q]ƿMӔ+]nj|֭~~[^q3;+!;ωES@23#URh0} dOԓ`KxWiH6"7U7:wd.'gqcdr4+$iBJ()]"<ƕ 0^RFbe@mixiOQĉ `C4|4c}h)l┼zoD,#2c䦵v#i{Lky[$_zp-ѐa'o:2&KRuO,~ky9e(C((@'+w0;|?{?$zbQX8^!hH&`vɭ^8 ҀԲg ^Ir`%:F>IIdC^sHU9ϻm|ßĮx J?Tޡ si *VWan|AoЗUK,[~G,V9_N2=Z?য়BGkF:V2=#f]X_8[@m_8 Aupȡ)Ũ?=aijHq6'J F\v6_,dDbmuf#XO,3yN Qϙګx;u|4k_ g׸ɿ[wvDBeuTI1TA|Ը8x y^T6kk+G gllE4 6yDi:f30XbT}|;F 5Msu33=Zu(ú,̍MHPԊ׿uls>pᐥM 癝 -SlAǪayAgzr|c%j~|#}oH{ƱclWt)Wri)k=:i5\z饄Tu]l6ߡ>bur͗wxyVed::]dzEk|5 :AǨߧ`uyZڋ#)!k :!QQpIDzsE1Ǝ(e,;f8QO2"ވZE<* r4PR IDATCnHym5,9 :pݣ(N Gt;,?qVhevAVC*MQ=6s%RG!Ŗ$n#P!Ѥ{m0VpID84wCq83 F gqA43+|Ot{}&ff87?dQkHLI҅;E❭6BCtWY:tl&l!Q%˜J}`+߹oq#y'((RQb?TfBBbEK#tz1S!I<Bd|`T qޢu%,c8mM6UHFw RZ(!1; 7p=K_"3dΜaYPA1'Qt=& A&$BBo} PDIL'Ub۶m,-/:"MtZbh-)*1N :c5f]g[ۯ׽5_-+˫$ gY1b6ps/T X4Cr};o%zm+zw7f箝h-I4vL zcN7?m k~/Zf& |UtETA"7rK=SNsېOjv]u5\OnJɣ89G,cI~$ʢj0QJwУjuFEN3k#Mv:5YpQ$q!, ,X^[lcBiw!_sg> h:A,$7-OԀ_xlIVP V;6v+dJRFE S%w߶+oSCpMS62DţŨ7Rd9/2%QQz˨ 5]Ei څx [kW7Ҿ-$B:xWE8Q$QL+8XDR:YCZ5,y9˶ñGO UO0yI.??>HŪD';|ľݳO|DZMY,$&ҒZQľW^' Eq4 *`c+H ZU`SVp YbPp>p/L3lpqvOH&%p7\Ko`i-&>,kJt?}bB zԲ;`yyoBN85\ŕWFi͑o>Fؿ1N>uvwO}珟!Xtbiy-5;@kz]̱cǪE~Qk6ZMf$ CAi]]4*I -;e]ξ}W;Q)oN8υ ZfH{﹇O $MSVWWزu T5@p\~&s.ߡ/) 4(PZP%tVW޺:>nQoVs433t {UW=ZJT8lI\ǀIF h /rDT`dkS \afv뫌"*`dH0wcJkזt!2[wBT,eVh6䔣".\4!1n35]{.E!$qT ˚2G袋$JJM#+/RXc]HB"ޔXpe hV {ǎkN%_EԒJ!QNE$:(K 0Y$lXAaT0µVbTUs}ZU(T[\/8Z\C.]Paɮk!SXҷq`0 U){:"/p@^Tk{C Tg)ʂ44MqC #(D</}~, :G0qWP ,={/eyuW-zw8IѪthQGYbU$Cgҗʖ4PH5+T\")ʂ*J*N kY0[94?D*q{~~.ˮ`EÞas$d)h':m^w`1:p{]Fc.ƥ2vz O>Ŷ[IBa T %5Xv;-V'МC~A~2@fP8W- B\v(0p>w׽˓O9vo9$"}%vX8Ppk<Ƙ* KiRS9Y4fT@^ fIMEƄ+MI#(Л,憴zʅxH.ص4y'4XPIS`gr+W(\R+K( GX_aI֘WUNx4?s/OOݤi-J(=HWAGUc>AQ8!D&ȌCK])BC:N/vߝNzFë_w ?U"EGϧ>i~' YzzyqA,HEHo7y{eiYiwO$@+ @g:$"JcXx{I)ر^GFpeٺu+HÏAf,sgϲ} [ ͱkN.\Xe$a~~wt}cce(1A_8i7.P|<9wTWH & Hd kAj`jQwd:I(LI^ȋfBbiѪSt{2BX"P!U+ F5xn{ϯ+fbtf FGJ pwE ϛdeamg^>c?ʏлIbEx)UYe7p|_]o;uAJ|QU[FK'<2es ֑#U%_ RR8[͟4ԥFDIO,{$!I I Ia]A=eɏ}7dʟ}1ϝ??~?bH޴R:3l$"&VMzA>ß>7]}2E 4 =;Kz?Wx[@]!c J%wEGԳZJIM#(Oi4Qi !wEHs1*rJc(o{wGX CwaUF9 RhrgyƾAMWRy _{\SO=ŶYZz4v V.kn;o|#{(\T@?'Nzy> J!si۷WH߅%׿{ B{G?A^{ͱ!DhT N''&BOHG8p^:+.cbr'Np}qM7m6)¼yf )ƄPJsiswBk^Z4WrWvyk_K_{^W}p^3vڜ;KSrɞKh D`aΝϓe)W\y{e||`f*/0^V} U 97F>O5ZG4' $idz]c4]!bA!kl.H9$T؋TN#iBY %"DIF9*Ĥ":ͱq$I諘ɚm&YgaT(B9icg0㜡tֳI>%I s'ϰҭtMoWĶ];Pw{Zαe% s,$MC-C>33[ <Էا>ãG~}q n33BFHR  >I/*#"/qXi2sT[#3BJ1D+ To< EYaY#ҌX&$# L/i%++DIDED =tD.MR^V\I7H--b_pՇy9|J!ɑRƸ2=46f'/}wobe Pxq*- RYZwsp~unu"{?54RZ;>=4yNYFC eOûxD#Z@V/B%BhGU48F&| TRX4kq $&VN4 MU!(G4i`U,ԢAٹ%x:Շ3A;֘@x|ާWD$iA1p\K G.>_s4ezD=Iq.; s옽z" GUclP:&H#uF7eHbD71[1,qǞgr %/~TbL9$4Zy"^58'g5:FA:|%.?yZ&`2Ξ?Á[7s{&=?8ccEA^[VG0ހqfFyٵk'VT@}>~g>C(aLMM}v(%Ȓ7 yuA^|$:xg%u¶Edam[ٴU"Cq .>7HI\s5t;K6;,86K_%SLOr+8pra~AUy8V{6O$pӍ8,I3ejED;g,I%ti4.h{jX]\UpOPvG}K/IH=n5^n6ȇJ/.vtA9nhDayQF}[߶K_Ƕض $F5yvHUVS:L"y*IĘе. e:loN<*)I4YIqR0wk AOnG%mbbjLo EiA_r$4[5kKt_g6ϨNm~ӳY:kkҐJQ#Vxor,̝g}m!SWW*ɡ*|x_\"X+"~j?c蚘 !1Ervy3p2;5F+VC{҄U%YaC7ǣDB[|P}IwG B?:B)U4b! TJ4euZ%:PQ4%"dJD!xZoP`YI]OtF8PD*Ɩ *xI)B#Er"g$ `”(tbH}r:gΟ&9^Ңt$J{vf<;$.0`u$X!J(z% ̳O#DEH8Gy~bК"}é =G}~)jd*lN>}-bvهPސEd$78|7|+G#`ȫ]7䶙lyH8%gme)ؽ{ei{&-I+ §a^y^[)["C`rk~{v5i%o@!(MT8䶚`T.CRAW "[ްGarPFoW#w1ٮpV sD@bŚJ3(IeNX.)Jp|̳'оkR"ׁIa8] IDATTسmۮ7qov^sn$cw^zVپ-;o!FxGF$"AVמ5wJ+D6'# 3)74&D$H"V8đC)Q9]=G3n"r"[fb$hJI)y3I+ V$cbhKcqNp?o~OE)]>lj97<}m9szA4O4k$RQcɠSW-ITAy&AW︇#X Fg{nT)T fzLn/@%H@n-eYM%['[ ˜҂&B茥g.$Y9<Ϗ{[1#AiIcZmzEjF9ֳctLڨ?fΙd%E(N pSg S%Vkj駟fuus<}I|=N}%MSN=j)dnnZsW\liJU$ICTOc<i>D[Wp`ʒ8J[UC9pK}!lA(Aet]&&'8|(*/=+++XhZF98(K{Q%T}Z.%w4 ˳>oggguDಃQAYb+=^.} !*iw ,^agS'0}'iE`miQ` c_bLj|K4FiRXKh(P4alM&5D&X]99$IӞBlSc|sQZCF1v Ys-Acb+=FkFE0 I-s ̟<'ō:ؼq%ӳ;qA&gwav콜v\r9]y[fF}|HQ(KwXk*"([<,E lGO|/91Qq( $5Ɩ$qBk $*B7 J |qʅ LMO311SO?`P5hqXSp{n`3s?87xwuzٳۻ!sss!,ɲ,X]HZp!Ħ Vfͽa*4~:C|˼pFa`YMi?}f"4U$xQāxDk͡/'6ɲ> #?w<Ǐ>V"nҦ"G,Kև_Q8 "@(ʲb>G e.8Iʠ;8 -F9Vs Ywl2Cc~:ﯱrʫpO=8[fJ٤+>kj(>l Ij^*Kƾހ) +PZ NBAQBmZ+Wu| ?,|w5F UnnMk PM>˰? mԩMy3\{-rOG>yG~8I IB#~8b8^;^ZJ!J&3XTZ.dH$΄B *4WVB J%!K'ٶ=?YkQRaMh2()zH-(ס$r4BH25hǺTDJ#by"AzZg-?/} LJ‘GlFƠpqUƑsƖz6%R Zx[qb~YΓރ<ͦ%86Қ8TwH5#"gc9~%VF\K_.W-=-!u /qsx^<>cx1B·xugJ xUp]Wpc&aaCQkÈBQ֚Z-hPKJKJ(D` !q%:LQF"k(7@Uy۱/W]OϜ>˖M-)>,0 %h )V%+fMIYFRc< \EG8 &+7B6}F P[)BZK,$4cXC/HO ̀ 6 j{oUg^{xo>cS4 Hd 6$&${vv=&1l@BPjPiy87~ϑhd=kVR}s=No(nBj@K>";.޳Nsݵ{79Rgԍ=Ѩ涽>#LNN& kkQEQxT_%EHɱRV΃'WAQmM5&4ݬ@H|$bLh՜a+B$:"q,cEs\}5xgieɞݗmv'O؉cڹ^:SS| SX[1dQaC IXQԗJQV>'OD%%I냊D*ME[hqގmI&q#{o ^Z\ަl$n=èIwvvyv=,X8Wйz7k=(66xCgJYɋ.ʊ{u xE"kI)]$i5Yl804#ziujx/AM_a H,L%xqiYZ'i $q\](J+CS(Sk3m@b)ʜ(Q&[O$"W5QH,Q=PZ8$%.1˅ov/Dla/,2i$m'{HQZCi)z| ½\+cM#Tu\<{7Ⱥi0h2ql3^>+Y@췬k!EoW%SU R CR^ RFwpI$=B꒴uzv-VB%F%7HFIFE)Br%yl_YUtu[lÿ?`oϱs#$&\sMeySr H:|ӚdrbF{Adִc?pǞ|Clke]~D$3wrܐ܌ tWegI|h́ Mf$5[ƎS;FіJ]!(( }%GG++X>4|s\<}sT>~1u*kK z%\fy,.-C1ŵo6('7Zn<ؠss[=;wu!,\t .0??)2 )1Lp7giaIvMZ7~@Gcǎm%xn%z+++/iS3==1i&&>F,0Ye>Ҍ#~ "~-\7&>^eA" &rUzA*Zs4ZMnp{{xϭo4uzs1Y9^\x E|P7?)Uϟ@'Y@6 h=\x 5.]$3?q4MxlY[p4Dj>q]wK'ĉ^z$r43j^C ^Gz^s?U c*@؊lc(l,/0X:ǩO3ZY۲.;/1%P/IY2A6JESᜩo[\9Ec8ˤIByS]q<:i0s,k̞iLhu٦=9C tX93St$t;f#$^jiv5ZDqB8kqF(M5UYն7_o4,e9Q 2YI^Ĕ*/j.RQVgh"_מw0g69ajt񶠨 Y%^J,.ymUQ8Z46\+KTir)GKAG +GRKPАɳ1kV2e[7p2TU+4 uxE| lZ0}&š`3Ĕ!ZX8TuZ_7^ ʕuCC#M" 'yc}*-)щHB'+Txq]8O$|T k$?w0҈loEa>I?DDX5}-?rE~ŘwkJwc7z~i ̐0bzm[叿 F1&T#o>]!ʘJHP*B!"DqITfYsX!q:Be"*A2r,!HƈėlkK29qߟy#ωss}<;Vk ,8鴻Z%s魦: \=\63K)$fǎe<+Q6kk9v5N=$6,fkyKl ufO@)Ey衇^8=뱶a@/]a`Mu•& Xd Ξ=2m**kq*W56ZKDi-I_ΰiu8tTsK.xq$vo|+=<@{syB`x blT :EY*P$Jqvj¢Do>'rQwIҠ(KYT8qɀ!c5dBy ײ4T_x5E&f#N_,2{;HѥGXkNFE6o?o ӓT5[f:m s?}"ځtEPmF'"*/(o} Ak]wR|4 -uDF4O?4<={U(& ]{4[M45IȠJ F""ِHFk\˹re_$i#Dt+%qNԀG{,XlDlll5Wʃ<Ns]xEN^3gNM`뱰DGQ8XY^fjj`R  4ee !]\.1U,,x;Η4;c'ɏC4#Ql 2.J*ي4Ÿ+ B@yMD\j>tL-,PY󗎂1"&a7Fz\`eʓϞ'O`a5'R H)):~ۻ7C5Rj-,qrM{ȧIxD%hF8^62ZѭJ666( G) q,,kQV5˯߿?3Lc}:Q L8bY_V7*˾m)Vlg*f ӝZx*7o>vkErmi1' ')&PQ7zx5tS$}EJ^`*KU-T$Ub $aPSk,:D3,,1x;ݦb]о*؊!8{,\s +<xɍ^ɓDݦnrjBpÛ3>ƀVM{v&3LNc8u ,,\beeǏq7Fϫ٧?F*Vr 7 Z5Ֆ[ػw/JjgB\h67"~I!T*oa@++$* fgw|PV))76:6jҵX$IKX\\k_}{9tЖKԟ$-w fٿo?SSTU;;uRhjO<?a֎4nGs裏ls?s:tťEZOKw;܂^wPm&`KѐHIV< q",y1&G[7$IMaChΉ+q,D3M1aצjrgϞen6F!S[111I^D: ʶb0gP} G:'֨R,-|?_蟢M3sM@wOOZxC2Y޼cϟEZ;Y8t.={/^Ї臹S X vxy]ck-Ьq%=x ^DLO5FYN[PDQGrV+pL=PHT~S$Qh[/ֆh(G%3iofs.$1K LJA$Ӥ/_X` Ger7r7/q(Lj>sJWL$1 H2^C( )hRFRW%'9W&g^ʏO9VJ r(А9>L*"mR pitc ! 2h)I(MH~~ԧ4q.."I2S0BΗ .[sn(6dED Ca*G vbKgį[,1$+:6N y>[)v&oÁ*N$ZL-Wx|EU9Y3[`p8_[+8^CtXZ(sC71ޑƂ(eB 折8&'z"gWl/.ݸ{+ı;wLOMq%Dq:|ɉI>}VŃ<_xGYڭ.ϟmo[ v8{ {cuu%[ G#sg9ripM^)8U!Yqɭ=!oDQ y;Y_[Te`>j173O#m0kJ V / )"Tƀd1O<8]{^o럔BƟ8cki؋"Ԭ'xhef&b4bm8Et JB }n~W;nywG*ž}[[oju>YK/#h377)2Gk $ʌHp"3. ⤅{D0eťe kwÂ:I∋K ѫRs(o0^E¢B TKHQ̸6($nx\[Ȥuajh ^]8h )惤Ikt=2H{@ # @ ™z8axN|بVSQ_^qIJAV!: G.(KRT5@Q4."iblhIY|p%d;vγ(mΒƬ.+էg ? 2h-`rrɍu&z=VVVNFUXfgqZèؠ!HqR7A)MYH6̶m#ov!o:d٣t5devٵ2UgΓx룴G,|Oٯ=G:Vpmea4m4vN᫜$5uY\D{{Kx'eOo pf)!DN2DGx[H",2X|˭M_aL̶h5`X?{+I*SٌFI?#$V:4KU=* _֪OSr_nª"Mb7{R(EtGFh  #:XǏfҥӞQsJIpۭ7M2/1xқ "J)7.Hn3|di JiRpꞯrhG@LA@zV5H/*4Yq߃G؏;|$'^PJPH(}7r7!bɰRq[V#҆nERdG)PcM2IX+u"N:ǽ,|qF3#EP[DYUH1zi9sz9K_(5DKlr~d|w)A,$ ʃHK"-Hd\ei/'=AT:8AYO <,lL'G(!F%8≉x'wޣ@pH &pıDIP RHu^d)h~KHa'}yi-<NEnw鴉$…t]4%2;'>y衇hOtMt9},v+vf9}p8wc 9uos$>S f&gֳȎY]]e~z(Nb0ƫqrohqy6~7g{y>OjkuBg,/ȉOp!~ O<O~ O<Еٔ]8wo%2gvvtļ@Putx"_+ڦkw/檫Mvi4[ď|^}] f^UC _~Hz=TLi P*tlT<{&kIi񘒐!*HBx'Yjhz7$ILUQ9[ʪ1!U39|hc T{(NHZ]lL>ΘݾFKy) 1c;coW*"XxTvk d$QI/CbeCՋ/eqb5X+ E^QAEF"7 :VrauȂlU`pXua8A0׉LE^k<سcE% Qއ*kćIHeBۦktN*Hn'/"@# x Ƅ*'Btג:Sl?ls8 3 &Z{Ua]Higc*GͰ,iM-uʸHtPn8MR*S JF@؜ C9Tf99|ogrf&fyä]R {~&oͬ-'1n4 Ӵq\Ue&&'˒#MSV}ڝ<W_y%s[uz`Hi ,*tE_#c=̹eG6*lbb{XzEN-"~7iu.ǟ޽l {{.|R~;O"\ !# MahRߣaxR6jTI )`"9JhFVڤ(%(ʌUNh<ҖT CS'1ƨFxW'IA,,n$^nYYY2\sͲ~}L(U9.OQI{SFxw^(tsTa@1YAJ~Y/:Iꃅ!. b/J_9D Qnj4Xif`Q"ͻ}#{ Ţ r40hzk5h<|-B IDATp9Z,Fzі}BpFWNhMcD=G'?Hܚ&Q^'k$q\SQ"m0.Z*/GzJ)صwS;|-9rQʼ iq^ ,>R-MB^8#-" RT"EvOϢ,,` 4 6ᑔoP d+=PƒΜ9DP,/i2g ;C(W_}>l=X ͦӧOh4X^^܅曹8s o|ٹc'w'psgO137#D+2np˘} SVZ-TߡX?s,leo:&)A܇8̷Hi(%CI$YUlP )S*4:EFRBʏ{`t';iD$m VҪ$l*wUumY-+J%QEI(&E4N;ᆎ'a?/nlmb.v9} 껌8QAJJf*lӂ20OZO^Nөah-B`Wȫ81k o~ʍh,8:*%&3 Q )D,%[@XXCeJc!ȇ|V[(駘-aP G44Ewy`zp(\_KɤΑZUIXgfOJXk84shMU+#XU%!_U`HXT@ +:m& G騈vw;:ՆRsuM\X[ݙƀ8Nxڐ$ Jk&1vjB3XG(i¿1.eZp- DPyUpi!ZyϛWw%dy.Y[e>3ZyA938}c'sG8u>;wr-71ӛC 1d0,Hup²/ݐVw0xfz;y[O0^$w8?3yP^6X>ir2Ży})VZCm udY':4ZȈ($H┺┑ L6J(ZqT%ۭ0Z_WzY pB!1hWrw/?NuMGTPy+2j1nIGv*o~n~WOAmɘƵѴ)ڡù#n}ͭى"P!IpV"df[ZdY@b}` bpXi68ThW~D A5Ekn93(V9Bh,"Ds~O_șoRZb, )Pǎ'Kv-# DWsek2ٙ0\*#vNJna=,):*o NH{Kh2k`B'G6e7CYy8aLL(IT"4 D-jWUA c)a9FJG-4ZiGU_‘b|dRcGki2ሽ#_%իp;8v3 O?,օ*}~nOOsf:]~=,sn6>WJݏG W93#~޽{ٹv1U]5sy 3n5d,,,RU!xk8q.HQছn X`~no|- yޮ= +SǤR~7ao ? *S񽧾0~ؚ/ [>dZs3O=M )mԊE=_{+6(*Ȳ6y>oyA}uy)xóٳ|CN+MQRM7݂+nnrwcQ[fuf,XؽLc85|'|e1Xc;qOU^~s'1U xPRG8kA 7OcCd>wNe-4&Zn@fPbe !A k,:)QJ&B6ɸ-0xI10H;\<7F)ʁIҔnx jXڽJ^-r>9G]* 4eaiځuTƢ[3\{_b_cWϟFF ;vG)=ԣ U9jڽy$ *)M].kKgCN)未,mX!ոC&Ғ2Q`mxB DxUm<T=L".9$f0qЋ[a#[ lƐ(R%Pڝ9D9 ٠\ƅͬ5  sB!Zx :{)A ^ oSXԸ0aU]b2DjSRR5Q \# m]ZoiMhA Sz)uiH Qm,!̴[9{6D}ϰsNfz]=s/c4㬥, Ҵ8 HӧO1S%!C#/> ex_ p{!pطf6F5[/}Q,v&Z܋%"NB)Iu2gu$GϜ#'O+ ˊVs(RuNx L)Jhg߾|v yw܃$a)L7_9_|>rn>P q+&!jg#oh9V j@lI+M!Is\wu#:6y8coK__y+w/17;4yJkַkkkosӭw>y{OY|{}~PɾygHPeumػw/'N{s,\_ͻE#s =0 DQ&ѿuٟ*°zg&CQ5񄹤B WKKKeA @kͮp"}O+4gs<PJ2Mhwۀ9{OUUۭoyaјnYXXhB~eB hgmyvd2bcsc is7s7| ') bu NwyW>m*-o0H+ɘ*"d<sރnJ|snR8!ily7'Nnތ1xiemZikq2y5J@gii"/X`k|Av-$meExƥ `lbў_FE1xB^vf;>f2TȂ8l`W|QҢjS [W;q:HA1~)MMZlTX& XS ⺮Ru`1In‘R׶ 7٦-AxoOE@8b\88L]dh ,*b+sEQ`(0.lB *Hl -4PQ@hiZk TgJb PBg` H6X!_~%/B#ޑ舘Nq ^NعoQS9}uI߼B2BK3dԩcYayύ,8V9'&g'ɇ)㒿\2^ٯYٵPWB`8dY"붨!dQ̟p8y?[oH+ B /+8-BƁ};ZbmRQ3:&YĩtcDQ;@*+ n@(|ziQ9E#4n!)Oeڄ x=Riph84I*@ۥ"{}nG{OB1DHV́Y[Lʅ ) R"xW囁s%9{l i럵 Tؗ8~{w'ObffgcA6{mlm tĞ=Z-k8wsom2 cvvN1?Gh۬PUEQs.zʲfmm;#Gjz=8u:.\Xõ_`<|pmћ? zl!>->ORjw BɈ=?I> ˘뮽;L<o Ci}X(onemlUceϮ]+|fVwn^c(up7z3=,=Ο?ÌAGȑÇtY[ROӼd}Cl90uMXZZ#0!閛) #GصkXYY { ފH.LoއW+j*-*_c:G94 g=ia۶a@tR k-C1JEhu 3B8ʪh\"օ` )u] mӛ?3l1߿`AAQIFItWSo+F[WpQ:Iӌx)9&-v9*aBA)e]K!Cͼ(M`[m?غB(16 Bs>LiE\ Oq΀g(%Gf!v;.CϤPJne1f<ڢ5٢,DL~YB:.[$]:Å56p ;2M="…r3E Dž+}oC$"@: `z֢wD: ʺc2|FaUƤ픢(HuXm>L3p0Y;Ô%B *[&=Ο>O%lr(ML%XZ1+Rhŵ+I~p0buhx3?< 7ރug4;#"ք8R&Z}Ξ;gw\onl/±ct]VVV@B絯}-7|3? ?ei~^2_day.P 闋އV_siwz/)XXXdsso8ĝwd<;nՐ0%bu*gx_DZcǙ[kK!qfUR`2y>!N4UUQ9?;vaLh:9J"l؋{F:udY!W")cǏqǝwleiżxaH.Ct2{7z ? ?:yXSͯﻏgװ ,/.dsk [>OЛoǘ:$7Y&xGJqqO8v^8s Wҫz_xu^~o@G5V՜ IDAT6ILUx5. 5ꄛ(4RB]$<ĭkn4m3?b5om6,N`k*!Y+c83ly"3 lf[,,bX5!CQx3шrA`Ey$> =Lڤ$tZ yNQG}Ջ$K:Ÿ yi< Ӗ#JZnEp4v]`J.AxB5aBNu#LD$:"yIj1damjՈc墴!a.r M#-(MIcIxB$1&A5n*ڇzj۰dTujEtVjKU;G5)u鴙v<Z{v&E1ULk-qS AxdYV sw3䩣O?y;0G:0@GXjS=+ϓvRΗ9ɾ-穿_<-"Bj+8%g~?7qE.q[F%|HQY^;E)>_4Qت@- + !kO  C]WUM%5*A4("R 3WHO]>(c\N& >0"4$2K(<\쏑|ۍʹM8}B, O<}4HSvОYO>?z)#I0|M]֔L|X$q bKxԔ ᨜_}$N"@M-8z2i)I ~DNbFB̰tE(Jt~vkziFΩ9zϟ%a;KF]v+|s3xI+5}j]KmNj5G.޹1OBe+l382~d]w\G4ŚH` tDY(8qN\Q @5 Sj˂(Nؿw/G?s_ZZ⡇BS?<ű_sshӄ,Ky{ߋV?A72??"GVWWopsԶV}G;h۴g$IŽetqQu:t\s gϞC709t!wHz*Ѵw#ckڝζ5}dY!6HmYb2PU0S?Sh)QBRIU666)ʂŅa>K cʢX͈B#T8It{x'9we3;; ig<7s˗h1 ңF#v\޿O\_WIӄ7z~i$O>$w}3 s{8~_]#a8 :b8T@ބ{06qJ|i󺩵axً+TO-1"E)K5QVkbL6/3luPY/t`!7HR6!bBh`QRx4 Jc[<^f/ic{1jTWa=rh`c V8*1Mj#ƚ :F*AyEn·TDC/ :l]5+WnjVVws v37DOrz=&0Kۭ${k|Ve~~!LDCD<ݯ?V!E(/umF{]w͑1U8[T.v[^eqf[ 7r{Yn\{'$?O"+!UVlnnД{qluwux!9J;~vhB,7Z-"&Ʉ|9KeBѣ|gop=o~<~;d6iҢn~J\ @?B؊`c-Y;c4awٸ3Ma̋BP#\qwMj $ }!I:vȋI8;g6L [)B 666S$xEgA;;# ט-Tvb2si8 ͒ڈ4Se ,R'a 8gJ t`>8sCeX]S*kCM L+mQ%*VcPR2pch4)}g*̈́8u8zI"g*ٞ 9JL@A[Xc2;w^Z;0tq:3=@ftyK4j5I`OpyyuY _t3)S#/V3v ؽ<ˀ{f7b&}t6\*&-?<ĭ IQL8/p"lta!Gđ%'f9q,_?ۉT oq hFmqI56tD-WC b@1AP %@J8(hGc$WQۺiN)N+I[-aD$J:dLje+8*OKЋe +]Μ>Obҡ}DbeĽ%qSqq'V>- ^}c<鐉cG,.gna%L)e3R8<|AZ&&g .r5FMyTamԊXfAI_BVm8dY8t ੅@ QJnL3N\ЯzB?P[ȖR; zĹJ8ZIBf.YR+gu?$K8'0ЊfpN;XVK$ Z˩)J\;8WCRx l,Kjc7uC%x) qM8$Jޠi%`dTx)DH)t45hyVcK|ljuoϿ+W7[ANg@3.~׻aٵ >1TD 凪B6333<ga2sM_0Og}BiB]׿,C`kx쫏o*W2kfH{p-,,05q3 8y<0* Vw E5mH֗$N٨NGY/RbT`&3xLUU6u1S` hB]QڂBj,CvoI]Vh+*ǻqyy,"dQmI>1hB>#32&*+p6XMs/gM3ۇS 4 ,B7̔#4u _N sȪä,igu^#!7 C\Dhd2;"1u B7x1= j=ҿV$z-VfTh,l &ktW:"5TUM8L %py1SG+IQ K)tD+IٚlmuLV֓f)|HmfH‡ڦA |e:bBTTPM n!p/BT`B&͟D/C^XʢPyT:E`qXoα9 ʦ5e1DE6Eq(oGf}N R7TXU]77aV 6 Ÿ  ӛca2 ["i10 \]y;v,0;"d#Nt Q%:1!f.<1Nh% y<4VU Na4[$UIC≔7%hlQK P88/B`VYh%DZTQ $h9kkg ~kF"8g"$uQkJLXj)՘,p 7XB1 OS75)$eZGM3T22^D@\րB$8,y=a4b#VZlN+eivYo"&.< cPTUÂPXHFHq='(ʂ%^BEa w\r_7vB^7$EQP__%:IO{fFhUJW;u9{$Q2>{+G]ɪkSDZjPRw~u}Clݴ[levnz֚aN>5\}eɓ'9Gl6;?ZoUXa, Y24lܸ;w)s=pQY￟Ӭ^391˹xv^r5t=zAx[PZCǎСClڴqA.ܲmߎdzvFsi.XZ|ll Џ:'ϰećvB|$5BV@&y>(7Ij[Ši!Bj?t eޓ5aTCXVɲ6 Nh?((΂) K@T!cIQ^oJgIӔ8Ӟj-tԈd(+Ps_R8%/ Y8eWSBsDQ %D6/I02aH`J**3*Eu@t̪ũ߳)B=4i6@Ul&W)RV`]d(Jk#ȴnJLe+El cj^u~]AD+>`)1!Gc R 3ʊ>q=™j=Bi7pX,*8BuL%^E"r c1%q n;JS:@,4RTpD!i6Kk0 3Ovvǔ9&YGԘ\ngo!BKI3K-MI&Q*ZI٤Ro4t:psq@pk)M^Y\%YN> D0!"ZyslXFNW`p訆38gyeT>2Lf{Qs\ksmnʽ-\kC\f}/U5C3kx_ 10oKDF)A=tGGqJQXdk-ZE~E DYW*D^f>3,Y~r |]-5trew}9Kǔdz\0㳎 .KkDqTդ:tʑ⻭Z)Y-RxmJ+҉*Q:TVx"˨r"ĆۜB F)2 2IB%T{]ff*b!˒d,t;&'Fgϓ.]B73@V2eڵy?Ns3 HB{3(r[v% U)Dg,u3$tb~6c)[",REH-6Cu, (WV~-~/DȒ$(SH"Icyޣʣ(2YfNGԚ5w1etdt#4^:8-t 뇗'h#.RPSF IDAT:r^G}bynqB >Ux%#45[8zoy˛5T3<:0BJjyo͜8~%˖pɥrw'Y|sZc|&ɠuw)5BasE?NҤ}{rW~Q,B0.0ZID:)PQp 9^rJ>"uRh|r:mdlt{rEAvCQYleLa%bOȑc,_[6g^:IBVْe-d,Z+R(@MjY;mIaDJ+%a"l{HA HWp[vRMc$ $ဘ)X%$ [ZA %yޣ^o_ʊk ,IDG!R$T"xcJjIR(_Fb bRiJ$bݺQN_ klذnn ThjU1Qxˮbvn"l({=Rvi 5u]8t*KsER O%iJ  b$B;򪫙%q!+3-k'$C##{]b<SzMLU֒gOl|2[2>أ{?Gf4_ .D G#& XQA‚HkH"| $ā˨h5nL&LϜg9NQ$Yay4+7qk]p7ZgH$LUUInH%I , 0 yQsoJaB"`22J 20߼lDJa\iWbJ`6 ق\x xOq!.pj(  O5"ghSذ#_c L.jƩױEp-h%#=yVT&1*Z19BkJo)pč햎)W8|7m k>x |U|9y]>7P'\kɺm6? YVr!ؑtטG?\Yܹ|O}S?qQ~?c'ڗ|/?ԧ+_9T׾'<&SOS_r5c\~gx;suoկī^rn)V\e^sկ~ ~4m`Mw9u6_;>V\B|׽i.~?=~/Sp?ُ|?5BvR/PƂpYA 6b |!ʲXl&L'xӛM2jrIMMqH'D(9tINCdjj sqPynNeUzNFcBe]pEcff뮻7$7o4Ϟ~ظyy<֭2==\b 68jdz1?}{{#Ƕm.\~e|4},[qt-: `apk8NR5ȣnZ;Fסhe>Ν;ټy+Xv qm/FVSDZSKR6m܂ íQ.Xɑq?Fkh+KCY%cB|^~&zxB6'˟H"A[8^j8"5R}pnMQ拓c%T2wCY ZF N$YM t4xSmu*kxpMLj8,2TS#&>{ 60ArPir2DixX##tf) st3x[T殪|6 9ŎT'o_Aa!#x- pJ*[ė4rZê(N16Y n #UWV߫kL8(<[EfcD+WSk"bsƕD բZ Rz)qT,Ki3ϝ*g9&+h5[ }[W S.yb+տs-Tp)uVZI3"H'b i;$I0??ϫ^:NSk(3Qo(B 5%E#(p!.~eWO@QeUo+dKgeI,";] M4d,t:h9 mPxjImC UEs 3Z ͷq /p+/7$߬Ɣ{> :&BW" t/@H+^ ."Smo'P8DD`E?/pTMbsmCFâ4 5"WnX;cx-BP ֒Q5AVXskmB8Zԅ Y򤁤SWx%ge\e3 …:Es` =p=.N",>Zpna^zqykކ֚}c̷2ȡ<^fƃ젽0{y_O9{'Ywz$/~׾{-ȇs_Ã_w4^:lW053WHʊ9_j_8L>g ? "O=uv͊+8uZ"0kay a\P!%w 6mvn:<}G5ԙ)v(˒,i!طo_pJZkDIś{t7ofӦM|_drr$IxٰaQ;v>K_R>[䒋_imf㮯slvzDQL-#d\|E\;eY^qӍ_'&̙3|s#MR(ǪUXr%ccz$ap-h˖,oַ9rkdʕlذ]d붭yW_Λ&Ng5<'K)2qy$,Sc͑ Vmuۮ`-F UTA6MR$ Y0ĵ&([B:2N64BmE\oj!!Sd<Ⱥ deCw1y)2;a'+Zj,E JGa&R^Jk|%0tIZ , <T,@SQ$GUYaQACק,m PPD 0DJiM"Cs`_ޡ$iG. }uHPZN"/&w)=LS}ʼOY[bmIENQ}Ę<4939.ÔR<t T(Q*"!Fy*G4~QKjP"0e{$ 7|8kICE(8AL+aגRFǗH)؅YrnF*0NVkC0\tIcí%$qDQκJ.3K)YȰXCȈ$8Gǚ1-C#iB-#Ex^(|[ pAeƵw82m* Bkl^^(?k2n~o\yLy^d fm FӄX j:i:&ӊcj)#uMC 걤"jBx, r L6 }+8 r3yf}z5Nnw(ɰ@$Iz=ʢDXP޳|rT)\QIŊex:jiL$JJ) /;tu$i 0hYw|?]w}(Rj<9KyAYk?s~~!hoczzkV`qe˩SXgxx[ ck Ҭ]fF@a˖J z59⫯٬cʂV"'Ҋ,QRRi',>q7{Yq3z $Z5H1iA&"FvekulP )`54D,]cwrzFi v]c~a~4M9{ Ö%uSu6exnB60!`aa n߹(X|9A`ǮvǪ+_xB96 N׿%|;~O|ǭ'>Ʒ}vٳukױi&|LNN~oswsٰGN=vO!wq?3?mwΩӧx{'> 8fu<#k7O|op o|>4 xi6J?1l޸b|l.iBs^/~1۷_qג{ܝO?4J)oҥq¾'t -́>k+ٿoŗ|Mec74Gƨ O k ґ%[c4-ZfczARK>@G;3a24B'$QZdD@'"PJA tANE8+ |Y`W(\$U%C BЪ%$J7Ѝq'V0t5Rރ xιj:{p pUᨮDP+)TR@VX[zGZZqG=D8!K!RJi(MwIMP8rTM5%(pc 2|m`6kÆEؔ@ :i"0RU_+e'JP%tԒ RITLS4a W0ϋ%%zg)E` Yp9֮_M_ ULiZآ@;Bc<}ex?EA60e [/|DC "#,OWO*OE,l GBmNN{HkGgQ12dI+ddsĺ$#7%y%\qD260+:g> z&lO#ZCa$rkZx!@V8} o+7£+QA p!gםPgMSg(.e8,5u(:gV [84JCa "kq(/@ 爕&RX@I#)J%XDߩs<~ /4|lu|væDJXz9[\HBE3b0DRJ!%uH:HЬ &cdQRsдj 4!r9q2d݌('8&ѧSPWo —ZRB+ / T0"RǞBHGKzpxr] !21HL=˽|hݙ3?o~׈tH/z/3sk%]PQh^Pt< jCb*͝9H} /p_J 3ujXF\segpk(%4@eL;q9qlen'}{߽G~;cc{ůovekL ls͛݇ws|״Fy !|XX8Zg@jZq(fݺ[fq.RN=߹sYvMey?Gc:yX,OOe?%/7, kWaazz'O$sfggJ#qy[ߊO_2<6\/?'Y*{ؽ0<6߾]~9<wyWp2(CJO񍌍ēO, 蛶l9+^ ~?˚ ; ]ߠ z׻p25uQ[8fbb{ヌrn&|A~_a;ylnnjqsZʹshٶmW_s cccidY0շts˲SNx;/Yz#&yaȼy&h +WQt<֯e݆?&^1C>cؿw[ ;7W!'I$Iq`HTbm4 z&j!d,٪|p iQ=h(&Ik nkJ" ^EX1y,JSRlڋ<#Mk4}!~emAYUDEqHW+BE:B2ܽKh\ .4xx=.\?YD$z0U#WpfW@"?SAt}Alv&.}Ru5hɢ\URvfCB2z"#zyxqs&Ntزx"qh2* $R!U*@i]Alh1 גJ ݩbxRxC2L,$ xKI*iY߷}k-qS%RI bSCn DqDn ("/1R IDATCUT 10"@%,6:ݼG=#*  dPI-dhS0EhSRǙ-Uz栰^GZ3?@VcziV[ΩOd N FhpSKkDZ qӇYr5JHր$s/022 ޢURΝ3(BjN""gaaB)R. ONy,_BHx(:KpGWnWa";LC WɸwBd2%UV!!" R1 K*ʲ%]m_GKmg*@ }iP^9Fq"/Б:K#(dBaU vQfi~/VOe}ji,ωa}{^~ɟskҘ!bDD$]hRqbqýRc <օQ-ԭ ʭ]}9cĵ^HOТ)s_8{}8'y^Gpm) e1~nvJۜ04GFѵ&2^"JJ$8Б9B<2bBI#cCGXh[½CqwVoed.+L2;}|/җ;ηUЮ}̜;ѣǐRqw1: "ȳs(322,߹zJROΟ;3P*ߺOj!d{Yt;vm.,K/_Ǝ;vLNq뭷r|iR#8˗-c8|(Znqy,EW|+7hs73>>g?CQ/|+/n4&h/|(? S14nyιs;~yn6?1Ncǎ#f6y!`jQ7j0~$[N˖ntz]t˂'ObAk'J2<#Ξ>ò%alb#MS&&&x|n/JO!B|_?Au#Sٳqwwqcמpu3]WUXIRCAQdH'%۷4?ŝw3;3ws3s\u\)Wbr|In6*zٹ9կJǺkٵs'Lsogꕜ8q[nqn^tE\qU\~eZF) #\yU$qzAD3gXfMhm3^Wqq.YF 02:B9sfwpϽeÆ 5E9z0zcz kЙK.[nQo3~޽ff:]n-f^NG===_; '\wT~/0ЏВ*8AEQO:nBRи:d7fY=\J ^> }aM!Z4:kC-c$;Goa22%+(P9_d9^7L-ExLq;"1:FBG)r YgEBS+B^)Є$~>g]-B"XͶ 7a7 xR:j H&݅zUÀ᫵U^'Z[)zAp0&LpeRch+kCCAl1q>) t !ChQU;`+b8,Z 籃t {T6`A WxU JUG0k"7ȡukYZh+˿#iOD*&3yhYpioHJP2"IR*!M#ܹs,]–] Prgb|t<%/ & ꔅcYak^Hߧn^h17;2/ygXc.JNUz}e*8Lk.ٳw:IKG|R&q n!(8T4uLi3()bՊU!~䏮mW6;9oїQ̞ *gExKh8,"&@BR8+.`1Sf8W*pCftʌvC5i1YtnXo@$*a(iRXy8xk.0 @Ҕx)m"5 rKjrXd9b.xYMR&!2 QJ 67ٳC+\O10[1 ϘxzzD-Gi$D^l'PEX(H4J /J2o@Š"J[1%Ѡl1# dEAfkA1#-t7b1JTAQ9Sϯ-uHs~('ǘU`Ϟ=RA6Įǟ@mZp gzj ΞZ?={!ZjJ#9vGF꼳ny:]8basԩA3테HW#FZM,2ִ dYR'G)NNև8v41(ȱS-ͱE!ĉlq V^MYZ ؂4hpq&894<²uI5hz՘y XVX{zY 8HEmoGG/`YwNk-K,3Yt SHNKK)n=p xl.;uvR~W3<{n9y̰nzFem,!t-] IEAQg8v+xYM‘cG8zyL..ell1&'Xt n˖ azؿ'unJ_r1)Z]z:H#?x#]?3|s7{v׾Prdbb=q{ϒKi6x˖/~7?p?JHVZSiY277ϩS')˂+VG1e^fjV,]Ύ1eR9FF:xl,rZ#ocLNg~ eVƄF#$,ˊ}~Xhe$I؉T5C[78"qURTVy]=:H!pIցP|,&9B-s3]iD"#sd\hkg~y֥'[_YASSaD(\C,1ETq".&+s)Y!յPWL K+ P]\JԲ)ퟙ,A@p>8~ߒWxGDQK*Zw~(lAG~'SD"o "4IMrqPYU ` n0$$daqT3?1b7C3 RlƆ6V ILQ䌌E%~͝g5B37:-(%Yl5I}?ǡCOpSl`Kp x"DxB'!x˯1J*E?T+AQkp= P 8]L 1?#}QT$ocٸn-/6ć>JʅѺ<"0Wɨc\`/+`!l`,v !CL8w{IhJ92 )Kar% i^ J4ޒ vƓ{k qAHgx!~JnaJDbI(I1pZJk׮] K@U DΠIZ$qR Uakh+XsSdH *!tvuk FQ:SxQ.2CVm]cl; CR({;]) xµag??(}xȋ~U{hM~w:SU'*S8(b Q3!NL;M16.cmV5EgA()Dd(@:Ug|ytVxuonkAԩs>ϳ~'pseo#DJ+^BDq9R0bc47o__ϲm6|z7mB޽{+?hPQJͭĺuky衇naۉUw| fgg10==S RaF֤YJ 2z.Wrn [K\+YZZmo{ݩ"M2y˯G=cc5"8s''&t4;> B999KD ;4`d̤zz%V8'^\I?rtD+wsY5(JhZ "Ġ2p*疋C %r92a:#E("|C-61NpbW9ϰ( ) 30MC%rQ /b0xCrUSZ`@Ai5zZ5xDl)ʒ̟X$C,f~ѢTIcڽQG ƅ:A*9'@mKsx!##L%HEFẏuD\q18I3۪(<Zse=CbTTg]yM IzLi0$8q2ah ED'$ϴ%b*&&kv`M7%K̮[U[u揟O.LMLiFg;MI7`C(EQEQ y6ד9ƍhLpߧ9b},ylߣ,,/qbq/^84=w#Ʉ8(5s=a^x x{{~~{ }xq^18ϧS!9̋_r9qXZ\fͼogjj &''8qbG=D..h4\} o-}|gno|059͛~M:w:zfaޣSըjXqcOws8묳939k.;wتtc߾G/~x:صkbzr+~d7nՓ۶o/lgޓe5NT $a7mfǎ|[ߦ`=YfZ AA}srVcY}s~]D240>(貚ThR$(a<)P.RApVѦ4ֵsH%@pE] 1R VsۨD-e9{A99cɋk I'2NiM`lQżm4Q'kq9ԨG2)?c>@FsXzl9 ODIZ+yA4^qxBZdTJTS4CzGuYZ٫B(&^B͞*V"[\@(DGBJHE^ r>62rq0#R=_:F5HQ@Zɢ L%lX"\$=և͂MB}6_1~X`\"#,XqJ졢b684e'dk, Dpr3KQ2 y8T "EKR1j*q€[Moz'kI'1Nx YԔ 'kLN45QAL56=[?dy%gxz=h'H!iM_5z%Xz#ցHǻ ǩTU!y6T@&zp䦠o3==, 㖛oA9L=ffÇ?+^wXappRZ_R3 *+P>B%8!dp9Bp^! 1]2|^(8E{uXg)Z3LG"1IE$80#/AW N8\_Z; Ȉ5X9xTD'kF.âdOp< jlV )<ޕl]Ϻp"`$1YsRJa *a햭l\5Öu[`zzI;̃=7z$V!F H](܈mDFQhJV-2pDhCryꞕNȤ0ޒJ"4ԛMV:H v$ɰUlxJe89ԀE##Ą5vIB\Xiw`LxqbՕwZcU4vkq̈(E̍% ו9]oJ#")Ѻ/(fW%.$H $ D~ؕOA}-ygeyY$Inw?6l.fv,O<8BN?tz0$S&N8NX^Zcaa!8AxjΒD)׿z|Wx!xܻrJ>{9ްo\wݫ>/|j*֮_O>ɋ^"hPT9v5kgs&%گW]{-[nK/=yw=⍍ IDATg8QNrMgvzJg0` j5<{5y-y,شi#G9L^9$+++XqaLIA1b%W^Ν߼s7/ELNOplٲ$Inȑ#<3wNCT0p\v Oq֙gt9v3egȦ] @?F+OH\Ys` P sY}|Yh;eYxGE)FIN^ (!pq^Qw y>6UAlڲ\X1zad5JD]$arQqBdύ\PU}ĺS{*$ #Ƣ:G_kHYUG(q`-E]ikƚMPB"!I'Hwz*=eQ9G)?XIJ.@q[~ckR $ mNK5IL^.L5 _ Rv86&muudqBwCGA8RBY’P ^㌣({Y`W(Jc 5če Yj2APҨi˱ΦU0?w>}/g e͒1엤dP Y~5eQ!NG|ί{yH T E*Q1 T0R(,]a@SD }{0}ޅRz&֞G3>0EΈf@PkƑe)$ibmuPȘ_Y!"543 (i=BM֢0#5(A:AWgeOe$2t3dQz!dIF/UH dC@yXS@ HpQJȇypȒ~C'"ZF}&>Jhx'a' 4cDD4 ~GH-+@y^s{A~UW :%"@1ʂ7ML4YLcvS?n'3"D|#.K5N)EI c,6|v!THR 8{ܗ2B)֚~9$ YNsz&6&^ ?^K `8&sqԲ J% }m?x<gML̴[_yy?2o(!CkTa0[HE,{/6l`@p,..`SO"Dx] !ZW+'غu;\J᳟V󖷾%$vǗG$%ٳW^{-_V:Kݗ=駞5 H !9e6n؀.3:7p3\tE!h4z:~K+6OooCFp1Va/_ __< qαD$\}5v+kyz~&'&Wgɷ6^r:v_cǎO~]/dդiJ$lUԅ~D$Iqİ(FT-M š1Ѝڪ_쨭A&b·T9. . A ʪky1[WqĢV3u]8qzEd^&Oti|pХ04w9=~X)Ij-iRJ(cft8,JQYF”%:mbE#nVbGrb]J$:8<x-ϓE;07Zh]Crx(%E*\EQ0*+N)Y!zRzQkyQLuNm4^dʠHk:x.##9++UGUBհ6j DոF$aA'mFJ$<[Oֈt%.q>ĿrgPJ^fb*0<Ԓ+6yc!Tp JJZFIPk 8zBL4 %SiJ{P5"FK=Mtz\}{iLf2F5 :f~ѡ1r fg6ÂVJiL/`v*Ϛ ,-}F2'L"3zyiieu6WK%l3G! uN3kԪi.kVͲ0M81w.ez~I^<$ g.g CCd -ۘM_&^@b) IiN IӔZR91oa0z*Z [7lan~ײԡu roCٰn#?<[na<ӳ;z6W:lbPS%,0RIPKjXs.OF"` 6-^pٰa ~8sӘn"XW9Z$^h{-Eh(|SJRhq^x1>h䔥cbQaI/ N糱,JNZkdq^PQd!jK:JQ H/?,Ҭཧ0ޠ!,5BXv2O6k- Ow"D\ Q>!qBprGO>G@âe'Rғ핥Op2zxYZ \aL$x5E $9uVYSSM=Ws={S{?Ɵg"v>=V;wr%Gyd>9\= ֮eݺuLOO~>sY11#ʅ_|Eر^O7=x+8묳h69#pQTLNM215=߽{J)ORh.׽xEE]Y-^5{C(9uyreryK?w|9 {Ae7z8sYlf؇z駟Ncrj3337zAG)駟 ^f׬C|_ܹ38]_C<-89#q< H-@cF759ֺ⨈AZS)~Fl6HӔȑRE6DrȊ)d@hiNL0$I,!6"h@d=feQDY;؂ t3OLhNNu-0rcJ !"}5Ht* "L (`WI Y3YsqZtRRP*aʁw&P-Ʃ&JB92Yݚij(!G$N.BK\h/.xF UpK}8{C-I ~ 1q\5+)-.~`C%'OEE ^uƑDc[#7wTAIAr"44ʼU;$ ŵx-Y38MlPT "Ż' YT-KH!C\hw;Ȩ*wnϐ44DvF,1I57L&pf6A<,21C2(an0Rb`b;gy6O$kfW1qƖ9rUk8N099lýY3c ήge~kf8s8>b&]EҜf ҪM`Oh61}ts9:5j)jq~Ț+}ֶ֒ (]xZS-N,`M}5V쐘>Ť[7U4: TD"dJKUߌYhwh6Y^^!bSE2RRb v#-""sHŀjuN6 P_t7TW ;ҭݾcǛ)4yIקsEiX3AcqcEƁ3e p(X[A1ƠKC2"{20xۡh 8u6G882@#!)odmC2_9>(ꭱ QŘBC;:Ӷl( KJdȽ1r@p QO"~];բiLV.fA^PpNB-ެ{A,}MPR%3X:*&wh$z<7(bY „cE =ގx%H!(T9΅{ZxEda~Ufn˯;u'Dž q\wu8s짖eCl6ٹsxz걣n}{Y~֯]<+E͓d;y{O֮_ˇ>rca_=an?|ly>ׄ!7<pŻ?S>wy/ĤZ-yC y҉JƯpoCh?5pE_}\v R2 Hg^MQ!_z>m6HnK}1N;/x_y5kpn_{5W_=3I!0`J˹ñcG9pp?֮hvWM^hI] @?FKJU qJnއ{0beQKٺe;Q$7|ȑ#''=ΡupcIJ^؎sm;w,b1w1N>++?LLO-=P<4kg1]C:A. xa<=ZYܗ,.ȈB,c(Yl/e?GŒM3YxOns4&r )frl(tJPJ~HDRZcx;Onjk-PY5jXGDyOpXI^Q5(+&gfpJ12 {sR:CT8R8J"gmKK8/PH L; Wc' N~َ)e`,!_ >u' RoH[:Zځ%2Mp)ۘ(nT53HFsYgp avVAQ80%U 4BЪE)XZ;shmb'"4o)yJNQϿ0 18g8<x\lAT+I(R8V8!r`QӬ ױ!ULiFS);K`{ݫnv9\яUk)ؿm۷qy9{%Y~^T+;ӄ].;wލs .8͛7裏r뭷_׽gY81Ϸ6 K\a^q5Z,yQn:}QPٵk>pDQw?~?N87R,q)>:H%;qs&&rShPgXxK"N67(%*^SYz5W]{w|vn8ol}mҮڟy_WwAJ|3=9{ th6wgtWmg=Ű$/v˯s_k^~Qs˭ٶ (TŽg7}ElrypᮋeĝwމvTZwO'V p/ z>y9(肵؄C5 ?qnVG>gGZV;5RJՕRc97E>l6yކ؜qM3G HQ153O~=;VEʼ'T]G*!IjLNbbbIYkM[6Ly^u 8rVW)Ƣ(]|_f3\} χyr.uEڄEYe1YKs~Hq8կ~uyUl!&EHJw77R7KqnqfK1~c6LNq,aù&ؼi?nwvX J7ڍua\m'؊0㋷|@iD DMC0Vb֬.ػ\v&YZd9κp{y_x4ځJb,0O^?z W ܔho}^S#,Hk]Anrj8(m)EDXWeA(}) +X+nHIIa:Aϭwє$i$=o3g.g-!;C&K!KzGHrX , "[&ܠ$zKih2j .Yk$YHF8ƏZ#M#x/GbtpRcAxHH (4FR5 w_ʶ-[YYY B~ǑSQRKĜS3f8115ɚk颋fA$ z'B6vaJleY0.W{9+RI IDATaf9Q8OCZW"><{*U!D`AJalUR "Nr=3Z^3hR(sHiD8jcEQDDIEتvLmH%hH"I*iSPUcVK)q@-˲57P};w.kQ#7Dxw!$y~2EQHRQy_Zv#~Wx`Gq2<0\z /}=¶mqAY=%e8k'}/^{-di4vwqW\qO>;v%/_W\陙a&4M|IkV?~3/1NmzIOe] ^7ֳif^WSKұ~q {<)(1 '7rnS>o?C|##3 c{{t]fV, q$)KKKٳg\\\@GbY'xNo\nw| G|_⦛ob~~/.0B(ku^k7LXT\u\}\veرZZw3hbp"X\XdM|}ntYy-GðN{];~MJ7f‡_Tc$+_ʅ.o11٤, :+msUW#69PEBgy&'[̰ef..R'TV0M`"E*L3˂.ܱ9fgq1 cPCkH;'|YpL @כxSmD[Oi *H!W?/q/}KG/_i 1pN}k-o? $[$ɝ`G1ȇh *Űg(fjf->Goh3՜ad~%-I"""2Kdq$ ":T4+Ļ+Y8tΑf-WDCYyD5eI`4ETH08oR<(S!4k bRqha>DIG:2x+)H5jEU$q ^zma E&Xg(%hаjUB[vq2?t?13U(4$nF˪VGoA(AQX\S00&8VH%Yw}"FUtyKu?,,LNN9ɰBCht(93"]{φX/qc)O籱`M5VV]G@!;t)]l68L )\#U@cL AX!Jx)UaJaiuQ]p"?%fΘC<DEr#pa!V2)R[/xdY+WvcvDV-]vAX!S>|q=wh㏳qF^Vr2eNV*Oܱ9VVVXn'N_*|敯|%[6m= snv.`6mI-x/s8rSR>sӧoP?v˔epc={w/33\xżK/DG059EQrΈ{4GN4/<̲pznYDA(NWQ5$:hB4Q#FMTH"+3"327q)b'a:QͶ[sR68s4G)/}cCPBF sfᗿY3f dٲed(9'~pcUo^Q%Ifp+C747M. '>?$Ť2)Yl|q-8`̝;;K/~#_8I4Ӱ6}8B<{V6$QB&SdBJDB_R64AO66sSa$E0J zeu1$eNEafFq88KX#)q<(oͰ8MH&1)\SΡu[&6vW I_k1/bҌe:ljG!OQόy$m3mTA$QH${;:xlUlزuts?gkYl'|2g-&&&  "f3cǦ͛>c:]={6o>-unϻsG>i' NesҲ88a{ܱ̚;LNLPAkOFBC3i9Yz5ipɟ}:{SOyIcIGL ÐFN̮[ɍ7}kL&ɮ1tvt}+VtaL2ڵk_u}%M#Oa||yޢ M$ii4 wYl|8;&`pNnI*%!&XxTXm=pLkb$]C#~j:F$ cmEĞ*j/R<`%'V3xYc$Z<(8 %N,= +WwqxC[RS3|y{*j"T@{ΙغYi31[b"}MݠɶZAeƪ(Ec5F#وX;<ônZd,>D<@b}Uj/-{i:c&stzXJ`82/4Vښ(]ŧmC[)EQ*4Ts=\7x" X#ͧ\ `Jd?-A 폃O`Ƥ,6Č}4 vu9f̮(Mi[73wj}}LN!`b(wf|Di8rJXG:@cB9`/G*Nl4Z%II҄(M AIguۮP!4Z)\"D4fT'M|;J""#ziHhReY<cµpC=@(Q'GH|cdNl$$AJH"4Z %+Bт0D&%2Xư=(ʼ&%%&AP owIYd sbȨu];wdb1 NbS L} 34}SviLLLp"T4J%OaǶttvT*&gԩ,]z w?~eqLZmKWKgo[8Yr5q9琤 ==m@{?!x8J0 ,>||> M W^A^\)/Ry>a|bA8#Xa_s< 9XnN:=0T4όiM~/4R 8_kᘣrd,xӖL gժUeu\>m1ukD*I3hr}vr~j<ϣV D&=`F> Q.~l#­IQEy!oPJdLO&N,Zƾ4q\;=,`|.]ʇ?aa,^~: tz8O>߁㻘4%lh4#,D ɖMe/}CC\wI&ZJ7gdk=0i1b?K2.?<6o/.8.Yc2gA25=ƥr2IZ7r2[6m:2ǔTRal'H RIxQ{q1!ps9k2 ܚmY?Je "qi\k;.Q"ĂH9K4y/ԃ-l=&m3:-#SoLt,MAiү$'I#u&fNdeǚW.: IaOi&lil_&6@fhk,nQY&YN[9\A/!UonNE;B#>Y{o76 < $L w0wv'Q|8:>\o\szƒ>gG6 ;vؓo u>&#HaH||"\q<,9$j}|L.zl}Cboop W}6 bc1snCq5W~yS?W|h9~awz?y2])_-=iSO7HN`Y,{Aqճd>  㩩8Q f_|4" ʑ'eG,đ}\aF_ott1/ >[M$fS/^鏲fMwe.?!fs\Svfjw_,;e߇ztOh_j37 AN _'5K\eγ1BU/1&<%t`'9?@HT'U.gpq:H"I47 CEmƇB/tL#W dC":mN\lݲĄ"ZAph!c~43wAPѧCsLRLGٽ @VZm$b /;H2&Yj4:lb, eZ6ՠ5(ma$6E@ Ҭex#$1YZ|8JpDd9P5(U)H0Z1dn~3wS+#IlMp* K33^ȕFQ4ؚTg/&rU'ze,0 }؀$ȹ.2,,;}P`\ȇ?ˍ_/}i 裎l1<18Nd,_Ka2pGEww'arG /P(Xv׼3/¬ٴq33f̰rMǡuk"~y<3̙]bhcuฒ|>gp`xuK3si^qR s-7qyQQ̚. tS `?݌ @AR擟%D45鐹ԴJ9훝-&LMRL|?檿bX !ls2s7+-PbY IDAT~ &&'7:ƒ?ңu&{XJֱ߀Ȁ6!N{{FO}S450Dpyi>kS .Q %;EP#-jvmh#R+KSD¢&E 6ϱr ?.'C'!ajRo,e&N[ͼ]K!PB W{nFY qBʞcbظyiYSmy{<^η~M|YD;#$QʚA @Skqtw7QC&?A_S"5Bޮ-|sG>v3l^9羙)|54$x!|=c ǝ2߽ F^;.8}#(ykO>2ù b|OpI|gIPJ}Fnb=ׯ>~?.fӦwtV?;yS?UQ|#;I.8<~c>;yU867\hb+N/%NC RArg6o݄ W?ygʑ-ӗF2M\}l^򾷭 NiǗ>?0ѨE%zO NyM"I{a|_${zyƅ ߯%uGSlioߋW8LcƟȤp'ŷq' 59LLgSq_'̗9ij=e'Q Q#dB$Rwb&6ah шC|2֫%hZ?a@^z:T㓨|"l4c&T{#p0e$].'ELU(1kB͙f&5fȸ@/ YR$mVbR0y^UB!pl_X)i2$wNYvJJA@V%JY')B֦bY2=IҎOwщ F@PR=~E:/RbMʚKk(٣ex-ؚg RȹQj 6+5&rVuuuhX6ƚN!Wmkbի(@f<2Zu{m]9%-a㦍H%Yj̀v=wy\Ύ"g⩧ΎFFFXv-[7mep`*ûP+WIcmzH҄u\{5<֏hP)W$C@4"K5&3%C3rNalڴeN`T`RT*s)?hѽ|i+WcŪUlߵz3 N&K%0j{͙3&qiMwOwqm>}/X9s8Slٺ}cN{)$2?{M7 *Jnu]6n?QOp|(MЀdӖv@JjugCGGeQ{) ~mʕ/$ #ONڇ7^GTP(&_ȣu*o>~a/"E@%.0!ɼsdGb ,q6m]KLL!;v`̞=m4BB~.OD4*qlˎcQ/~q#GlܴfՕ5vzҮ* ac)yk$2H<&h)%+c)eqd&R<*]>ذfZ9 sH׳#!Ja2kE0I ?Ttvso{}KPJz>+hw> >!9sgN=a2/cҌ:d,SİV3OkMsbqFDahmCd.F>u6_$VVv=R(Q& ij2T[ YGG i1e*K HӔf3NKQDW8ҵƤQg#7"C+=DS'y58Y2DV>__o!FAuس{;#NG>C01Q1SM_ :"i \':sZ6q8ļ2dNT'goOcԤqL MS; 9qe|=s>G1̚zWu冨$3\?ZB2 "O<\E;7Ý7ً)W~\p:}8$i+\K*[?yn㿕kx 5;y6玻$IO೟0QW c{ !w,AbFc)F^\⅄Jš(nk3 S>O9iSĵ*C#89]oڅFʘ%_̟l4 =ן7(2R$~ 3)$K &QFF4SQJZS1? ~btww.SN]︀ŋ&Lb+ KI/Z4ii4CaѴ!0f=4 aQLLRr>D}CӨkC)h2hP3!2Ȝ"0i8#NaM!$0&gJP-@ k$09dAqČ3زmj9Dp(qsEɡGAWw|l`ˎ,_R.qʳbYܣe˶(ǥk?}]8s L\A N0v"ušAİh"+˷M̝C3 =dV&# 1]3oG?t1c{v(aY$id& Ctӄ)HXfk7mg8 j1|JStaH#^ , LgL }j+\DZWje:HE24c"AP!Q/IB^eu‡>z/XϢp;B `R82wF$x<~uwF觸'Q(~q2Ղ(IชBW-BhD9rYvL܃,9j2=X}bݛzI29yC/]\#f/͊C>>Feb"b|Kө63xs9So%AKbw\(O`tJWNHJRN%xt ]SƈzIc蝾(vH:F(B-YzWլX43ʓ nI,:t)|Gnw|XrZ:HsDaHtƖ.Qds=|Ϸ%\˨|pܞ!t 2w fNb ZIDqJϜ!f-G$ Mzs@BiH1yPaν SeyG!'DtXھ#hTF#S ɜCf"26l`l6HR)&5:  .@HPd tA)bTЙ5BӋ35h͐"fVB=1} 2..;*ոA#NpQP$m.IcBiR'Ő uBRP.Jގ͔<`O>d֮]K>g4u>3uh\g*o{ۘ208;w&CN>d Ysf119ɾ}h6Wx A;Ɛ]L"a߂<ax#{w'tJ9!ڵkb=83:DWW(zɱ N:$Zr,Z4IQ~Ν;iTʕIy)^~镶'\,y֯zFT*2A.g5}'?gz!V^MRi\all>8a9l޴ͪ4xAVҸDSVP(O~|:gqST\0dQz菩sy ad~ZuK#/c|SN9/8k"47t ll뼥XB-Z8;˒`lܴ )Z ^Ll4XRa):Q>;9Sx׻(W2a+ ̬ڦ! Ba{P|qKbƙIS͕_ _)PD"eȒ΄䊝~ߣ;0(Ww3ZW-jnROga IᦛoENLt\>+;g5qv=Deј,=D FoV_;yFk&Ƹި cHm0 kY^7܀*^w w2YՇIbiB5b}*>_0aGI̝wOgW(Ϳ1&l0i3^ϥFK0W@-B$I\#IɻFNig=s Ɏ -D5M'ɨ }~ >e'OFO"l!I#F%х/ *Kgqgtp-R<L(_N% h!=}ׇT2sp6 Г+PtSf@ԅ+ޮEZCsN}v6:CuSC:aSdy>Bk+ct\P$sX;\ DH1z.H*] '1FŦe[5###[|@+du?8yn*Iyi5G-CN)piμOoO7JԹsZR#o͓1"WȸI΅j2X淠19ɾm[)Whҡ4Gؼ}G:^3TK Jn{TI1ʤt错efG *M#I3Fi"=$q-sG$DkKG[O$I,{fNf2*n0jO9IM cAHZ ᝒ IӘqdA MӚ(mRWP1GQE`ERk-w]ײsQ8ΎN\f m$iL:J)mJokUʤ)==](vsQGSO}vA-SOc:r9pm[6#_HѤR0{lN%Q`lݼ +V v[Zk5Rxis9~:ox{Gzj4l߹JaKW^UZg6[>qmG/oW9zACT7qj?lٲV_䜳8| wbۖ&V*XP-ɬxGww'tuvs%X63J%Νц">oYbI*ZR:1l߶sy;7uYġq" ŞGTB)r䛙:㮧XB=,8[oXԳ@ѝTN盟cNGM M]Dm̦e]t䧲qe2}6VYv;I2ݸ?G삧|(\ҺOoǙ{V0$U+v6oĜGNn۟‘L{.o*/>K޼돢P(#pLn}XS^`Shޕ|!k׾&~sK'O;d+aC;p"Fj; {HPEsK|3#\(צ39Ϛ'xCٱ܁}nILwG7cc%: =Hǡ4P5UBZ/q&mڌ"qdrA֭[g k[t| IDAT&Ўt1BYp`@7QL4`;1|FeRcWVCP+pԛ1qo:PfU2> P)Ussh]C$7|?N{8SUI2' $bqB vj^Zjm[qhhU B$$! !!I@R9Ug;wшMoTy~ ox{UF1^>M]\uUyg@I6ضp=زm eSO}1LeoUUie8wCUW|c7?董ڹpK^b.)?{^~t8ìmp^kyOۡJ^E]BRG]!stbuu7::.\s [5ؿキ3?Mm[YZ9ļ)oQt]Wz}T~4M~ v(˒م| ]rtPZ Sgqn@`cc۶m}BhEA>=y[&3-l %IMy఍!ϳXK'PpQF%@g59 \) !xY& Q. 2LY )$.8"tzs(Ci|TD.LEdNʽFIt$PtzHи\i ~bP8"X %utz (SQz%vb2I\ײ|%D46 j%qqzچ3As_\ٚnAJAm*|pG;TMER!dkΐu{ 6r>ާ9~yyA#Wع{tr a}|'ص=OpWO~rS[X:(O_S;Sڹm,8>j3KHTG@io/.r#wƎ۹=|#)pm8v%,cv~_-~{,.t7jkxo|߄ʲ ` x*z}8̏(5J3٠! \p;:gFlݵm.EGH2#  l*Ÿ\s+McƬ<ʩ'r3U 7$֓hk*BM)IL9 `zRQA7Ut Hbc~=;ٵ}ق4+5MSV`N4 Bh)!>W_{5T{2&@ih%qؑ$9[er.^'c^9=sJBqL27&P6;ʦOY$ R22=iYZZ_43}NSM]WS)JtHCɳ$5fgW8^Ke.RʲЁvŞ=9q$W3;;L[n?}!}.ٶc;W_}~W^}ZPܽ$YLych<%QB]ͿWBӷoysp٥q͵/;>!y{nG?G>~\|O sMϓ$)?8D_xyɖYmx+G?p4@_y#\t gu?:vw_kڳc5އ)( 0AdnO9.E]q`z*=Z)*6ZIVƵO~cjl{ 2 ZfU7 #DFyDc >SO0AZe tɳNd xF><+L($EYaC ٪$)`ݼ  k#nVk 8X99uXX";<:k):LqaB ,IȊ Y*YɫE1hHf4"eT! hD"Y1GafHDd:6r:9,i.PZҕ}F#Ԉ\D`57t<.zdH:7HB}W4MCxY! Q)M"-I,*R  I*rY} YlUH r{9Lxz3K;ՊNj|p*BIO$XTpQ5U\g\L<- Ez@۸N?6&>JC ؔ.$ <Awu}ݏ&R{1mx<&MRxys}̨ܞ]$Y"{d06zB\|KkJ`$=ɉ'a=_=~aqu+S:>aք pD9l}tRc‹U$$IUʚ`,Kѓ=y`N 1ʦ12iT^ Arm92(1 M K*i, x۽qΎPM .`TC4{Jƅ@D0(&2y& ľktGvUudeYwB?٘$Zi7"C5>>&6Nu|s'Oo*e^!G䝂 ^n{'>T[n뮻'Npyڛ_9[Vi"gmmm7L<~ ٯ!`֭U)9|:?|;>M~4Mç>i.nf>w{Ѣ{^3?;e^UW^igxǹ+%ױc~ 'OM / /;nn{y| ysUWt 8y$ACTADhtOy +o~jp0W]q%ȇ,6J)4m󸖩wTJt8!8U((˲5}.зP)LGŅ(EC*d4s,n"9gM^"7cL8qt1b`Ӟy޾a@[ȶI<6b=TeLȋ.RGyA%y,&-9HqSgޣDC*`',Gr η( n`f#\SJkDe x$xӠ'-A`mh=KRd45<NsTm3+-86-۶~?kEpekOD_~ѐ3Dkk& uBINC N(h?u6>O)UJt.28 #MM Tp86ݼyG].0P:UQ004cTSj blJ4cJ:BRyUҲs|}=5n WxFJG%+x\dQBnO& C 5`x$fi]!2TE8Wrz|`MB|'Q=Z.va˖-,nefn;N}l+8~b#{wnjĠizy,w.Y(k D,-z!A?{ V6X=zy晓ǁcW \X S)%:bc%NR"U4 -'ٵYeuD^*Od)KA%"SJR 'PADۏʪBK^pzIN1-R%>9~ZkSƕhB`ܤWQ>f駂^8gfō3+e 84eInЌDXH>yCOb?p _*Nd=}7}N;yA3ow5|OC`SYc [o-oX_51*9gĮ,s=.{Ul!;$]^}M,/fnn?+.g <~6`!e:NmVF 4~92knècAT1M *mҷS` \dyx^ѧU|m-{ubAd |"5(+7(-D i ѾG)5Z+|g#^NjT:6j)9Щf\ENT4a7M[F@Jw|'>,,Ud$>EMq$IB5H4+#s~5ZiRRDiARd*7 gޡEN@ߘ3pB55?0BY,e-l۱]9gnnƖ^@2$Y\QbOg<`9g'[R(t0ێ)H]En3,\b1Obmd8}zj-v̰u|:RBe9f}aYH*a6+;ѤYϒa+5vT(AIktQ#"̐]I^|d2p8l Ck(-,U "չ 6DGٸ1Dc+-*:}Y9z i)+&#@ *2?Pڜ$=s3kR6ˇ84:&c!/Hvo 49H"saUUвx'lNXrӋwyj<s!j~0^r uǟ^M7ȝwݻ!H"c2;wlk[o%1nʻTs/]+|k_e,]ww)k>N4&gO~O7u۶`߹ |nXY9`S X%BnQl߾7M_%@|46p ;ܴRf;N;x"Mc"=;ӷqp{臀h ~^MYns^z)eUAC95򹞯9y[D%O#Cd㿝sQ+-0I5> !=}&Iy4 9TџJGiIhDix8ϐGƆA4͢RƣE"?J=)d$@h11 ,U*XGmRilN-5cA+)Z"KS㊼Rq!3Q*W`2&UUux Rk,Osm(JU٠Ex0xC 3&Nh-$*!@ʦ"r|S Xq v-)A蟄#Y4cZ)N4j i"xTk ݼ@+UtNNxJFY F"il8LG,* q*:+U2) ҕ:l tg; #|$%T6cd}=5h648*ih dqDMH%l*ͩ4'h IDAT9,>o- NPAR1:S8zT,#"&lxyIR/2J;C],ʪk8α'xQU 3>3~F ?)5M0HuuGXAeN/.q*+k $RCE\|.k"$!t+2婤QC&EJJ #u crhp&0بJss<2Kb#FI3 yr'ևlB+JL*$2k(^b]:*D\5.SCV]3 $<}4!ȧ>ιhh=ݢ`8i*PSvlBI"-i< H<ۓgjJBȻ%,{i ~ZVOxRDYY?0i&C$IW}<ߞ5aK%9} 7q'$^|.t|~>gIs=8;{o|#O/,裏r]t$/~ыSt Fo`TW>O=;^?7,-.q%f=w^VViꊺ!w;~'N\d-FiTܓ$KLIgLhѧ^aBsWo57\Ed,Kz3 c vD[ox?wqȣqY,q9WSiQ ^<:Q|}sT*)%I"e L[v}8g)jD 4y(7O#zGhVdy):oQB'M9NѸE)Wlqԭzm4xq}xp6NWQ,GE MO|~#E*lY(!Dchdi7޷ Kh+->7RD&6̢Hu2ǰDM0e $ᅳݻv~{?t[⋹Wcb'4usi8!FOBPy^vw}~~VNe4 HE]x5D03ǎr{7U8q[1k>t޷iYHQP%'L"-#Os0}(/4-z$#Ivj'JRInejF-@cc7h-i&2D'ӘQ/7(Q-Uۺev$^IAXgD*I=Du n:!c-YZohۆɋ(:I" CJAjNnG5J8hlukMӠd"0!mc&4kNZ'GvM2Y5JTI뚞ы1q_ŵ19O>KWghky"eY|zS+^])66(rDXlR<$YD``d5{U/'+F^+M^/(ԣG."c<"F$^HL)uD㜙 4$"XkL6%M2$TU˒[-0^SW`13PbcXiNm 8zn7Zc~M rA༡n*lۋDfʸ[P(<1"qrq3 JJ|kO\6jNXjMiKIӔNC̐)Cw`NFd&:0.nRgUgyy9Ddtu % 3(3E4kDӘM@ ТRa(~b >x=\'|g߾H*9Ͼ–[9]>oؑg<~(ka!)_| {E!( : }!RJ 1XcIѣf8s !0)t? #}x6أy[d{8&z8 D\&q7Lq):q޵DJ&`Bؤ% )PiBQqB"8YV):ѤiFQVr%diW*#IR:dSN:J^(>L|0Mt$%6+Da7I; ڌ/m앎#!3DB@LlRRC!%^꘶ald3Hm@'Yd0(qૂĘ%tï'{x#\t~L z ("p&w9oMZhw\J'B'5J_ /f=|)DM !V{C_uWZ#Vnrl\Mc( >:cdLc Iӣ7}ʍ -3fJzLiF6 yRYH6u\F5)$ݢhӮHgjgMRm HdBFD զOhVƭAvƣQbk X\K]Rd)h5IB#]<)q.`MNl+4!AC(ծ m5MdZ !}d IA x1͘"-ZMDb )ry,N l"ȯ%5хO X{3TuIZG4EcZ <T^EƠ)uhW5yZHa4YS5 !dee%CHEƊs<+_ ymEstzرNh>l0Xaۉ(e4AȄ_{.NEF>uB"s{w%w9+R:dFxA"&H*5/HPǵѸTǘrkQ@WWUM%Z}nñTR )4Y%d9^+DPhe0[+ZÑAkJD\: &hAo*a&d,V4u3nY`4bX^+#^x%, yC,|D`T710ʹ5A9yOP"*:Lk-MS+g6b% J dhJHT&&&E6n#Zmp!2sRI5vqdJ"(qHӄ V};ׄeBGQ`p0`I>9F<Ip IVS,۷ogyyK/﹇_E^W~ckQR07SxO  g?7Kˋ|/{ITB~n|u~-õFSra: C,زecwA]aFď׾6XF]7z\qO\ f]C[neiiYzҙe:.RFs8\kF|C`~nv%Q ը,/-wgصeg>~S>Mo xNgcCZƊl&ZCe*h čiĤp73"eج]Hגtz=:IÚHL!Q+MڲfY2~&;B%:a 8iIW"jkOhM9-=A jhA #X}d6<Z I>@Hpm Xt Jٺ+2(#_yciqo8[;h8lYD!ƌF#`$S"D@Hx O@m}KoO|_; Sx/ǎͰ12*gIT6-D2p&XN9A}D&Zh21$ 84ZKd4i&jChtLm 7[j\ #/8o(|{ PJѐ+[`B=6]L@1c|MUֻGMe&29Kj\pPѴum4ASdǍDe1]*fV||+IE%tfzHpݽ9/YWH )k͈+9qJGwpFi=T$Hj\cT .0?#w2WlDM('@O9)3,i|1Q{Pd*E#B IߙV]k-yVDMRJ +ї)ES{C)xR`6.z(b#:]VϬah(i2@[ J)EiE&k[ҷ/yuYT17׏ң/k7u+۷nǼ%Շ#mpNY>{\WsSw>'9N*xRA0KZId,_Qm9z |b-4uL"DGJ1 }y#D+xo]BhD? p-HpMC8ՊjXhl"Z9%5L1Rr ˒n%OrP%Y1(Gē#kvX;B*!6XjSrj|khwd} *,U"*͊YbYVJ9kư=Vtn}>g7cfG{cOf, s]!3f#͎ˮ`Y,g3`OOL#zMjȲQ5"3c .$kޠZ e9vޠhxl#/fc3f64r|MHj˺cN@YcΨ iRJ2řg1R`<SUq_6fӿ/{pˮ{o[ARr%Ypee9a34L&nlleYbUIJ7 ][fgXrng}^]As/o!MD8MRy6cFF6S&oiZ(2_albٻdvIRC {Nae|@>,;(%YG+$F;zyG@$K\|aPt]nANyuz` ~$CkZ9ZԶeRWB@& ^<MJft>xZ\xKaRК̤1ik!277d<&T 8[GiO,trI;:sZ.k~w4e{6c<3E֝y7:pVXA)w'JDӺn&S ᙆ\G:O m[ ;1,FDZI AaA<%+E:QYvvb@#SM# ˟Y-[ocnn%6E_J<|g~~Ofz{vsI'q7\xUǎq)q]ߊh'fǁ p+S ]Z{%Ż7ЕW[|_NYgũ'/}Ć &u]q! qD[tK*-ӟw?yyC.p˭7s7HXHхN͑#Gg,(˒?x8t-c{^&uEFH if馛9s)F2i¸smJgueI> ?cwhVw@MPnAbRdrDTV3e)Ccz> 9&M rB3HA' s[ȋAh ᜧStQƐ脬 $]jt1JGcIUel*\+H}b!ӻt6Dw?+DqB6 ^77yc4-H#mBKj$Ξ fy?|lm~R-隑$kj4Sx4"=,JLұ|wI|WjRb6->糟8'h8>i޴!GJ?G ZYV(_3:y4=Gj֑e)m2?cRM\]KXkM4f%ϼ3T K/M3V"% z]2>4P7F Niݓ~%WrBp0G,>vv΁R~0Ex˟kne}}"Ouq$SO}ϳ{1z`i<''nc'rGn7u'/ફiK:]Iik)PB2 p-:x(.fNDF*̙PuTXyƊAJg8ItBcFkp֣92L :%-&@ Cv5&ԭw.F%d&%U(ݬ0x YkӔT'KennF]?O?^fX% (5E Ox~I@wqcM659z)tx']駟EbrPmRL$EydOj~xۯ¸g>"qE?0.5 `|@9Ҭ#I&O. IDATך%6NJFc:uUSt9DKxV׎{nc˖ 0jU ۷uR/VVǶMgNrq1^cimPۚȴsakJ2XYڊ,˩BS U/]'ҪKK}]e5aٷn/DֹI]$ N:ztT$~Çc L{m&y^'˫$iAj>4Ĉ{ibtZ<%M #\>!MI@L4=I0GvG/,@dݳ뮻F/{}ÇO~*kFs,.`qq^{-UUqAcCr)bdN![iJ=x EgBZE/c`޹:n=˧?#K>pwpvlNz;~_?\Kkxz.ħx@ӶQ" Hkŧ4\t!("Ys=PWy rg$)>d)c4{O$ [mGk.x . 7I"\3T& I,>UU† ^AzS RҥWR߲<+f.u* QiSΌAHӔbhLpYLsH2G$_3@GIK  (ND㽓;.AP*X2IiɊtfsKƹFqa7J05֑D ICX ku=JSWQgAa6?+a7ePL%M&BٗNg+ $DvEkkR"$!XJI41qLIQt40e $^J+r4a%ؖn%32dLſ(Q"d&g204Jk,v ȴ1'iJZ "#vz0?O3ig0%1)&WZ"3PdNhIR5`3r#B3}T-YRZR9?}=T:oɍ73^|~6a7wYiXq#֎,Jٖ̝:ﺏɑ*0'5&#q"9qh a*BeH 9WU|f(Ҕ̈́,TbeC^6S:P5ݬä)qTuE:%Md$,1[:iWޜhMVdԢnA30-ڈLؘTa`m-ϩs>*12 Z^)'b"mƤ:GڶyN-$X<ʦ#y(/jçgu+Ĺ|3}榛fh/5R?͉Eם`"qi2C'Uͫ+^2굣4G1.3yҚ53$ 17*u1xgv:t:9UYL"4g~a:Ǹ}\)iD S@g`& ʺ ǖWYG3X:rAv, =;rBuYܶMhMXEI R#ЖɤK YhֆhtJDZm3Ck3[;+M7mAlRYۀVu4yVظδ^ ꧵MU s{/7۴?6&MXZ:e|s1R# M|ŕ_579a..~Ed&c 9v(7|3Y1}Ȳq B,%>{@)+7ʮ?hv;Ne|/p齛<#E&& ?7p9cyh4/Mɛ_xݏO|ܳ5NPhp<Z|?ؼS?*^qŕޔ9y._bbR9pϠkϾnj&D).r\D:@\mϻ~ :X7MC9H]M8Fo _"q#rZO'ihJ" d4Y[]fF]WhmC1KŢ4;K]i :5{tHc@ĉ=2SQBP` " ΊkZToN$aJ K%zxgmTs%)n 12#_9*@fiԤhim J$)&ie$ ʓ):18,2]ɺQu[ᕧj*ZW+RC("+1nL\z9_*R]:Ѡ(mUƶV#4ReSc}k%`԰> C&xLǤ~7v:}>pS/ȷє~a+A8o8S{ ߟX2Rv4^ă' ƙ iw^l)Eoq$;LxܛO9sys˭~ =|ԡ?B12!Zhwr4iZ1=r#U_'ь'#ECd>#O 0UNF'$%5"7ɓJjL 2K Զ&x+F&!}+h3Qʰ%цǎ _HM>J ,#< ZkD6ytHQ!8:Qv'@ɹ6o7wG{2m83y}6x`G#ɰc>WQ@M׍Ib4^2F|nl<.Whe\ שeTOTŧX)KLJj2c43.'=eSXϸj[hX]CbmTtECa4!˄"K۶̳}~c~0?7@g)>xj<"q- 8'V)JoZif){+QD;$KqU-2IɸP mq9iQa@[E^/p%_ֵUl>TU5cj⼢M|n={&CIeA+wLL4Jo ;u`҄Mm ^ɼ8GjeǩuwX5_='Ir wC~SaʾЊ|/\%=BeaaUņj3{#0ӟgٿ}jX^YSOg~?r.i~{;om^WePjN; ~w~??O}zoy Q5>{뜺4>O+\a"P8q%UzSOcum 8@4MIM-s)2/nиZZ8q1wYD5"91u1:\5g$둧9$;H>ꆧr`t&fEESהd,i QO MS$Kbke5Y."jf> ND^؍"8Y!'MZJJ"&,dHt*s?eL4T=/kthkPUBhqxadwŴ ' E;{EӯA!s眤Q+v:!H}ZYNZG^PRhĎxT} " fۏQۆn5YxC ,hoD&uzI W;mM&%KRj'rkuv:ehl+!)mh4% r?@w\b,M=thHٰxr>̳ϧ5|oYk0$I"N&Ai|&i`vM^c'iѝqT~A?&n8jJ3S.$/׏&ٷb cܱ^G] CNڳd !j&D]hx>~ü~9_a}i:01+ޱ;ɆF6w/{ϽXغ{Oq׽pWnooo oC8fVq"@>ƼOearon//V~ps^WEye8/}VF})TT6gۖm~^3"Tx ~k&< 4Mg7`0 7|3]t&9e˖y>L~E;b[ 6vV5M3F!9 \Y!;(#]ȶc  EYo(jlss>.Ǯr<*K+&% 2i*pqryhҴQjBT1Co~tt*4(A(E6)9b@(gPyP([G)\E*ϊ)_ilT|=fl*fMhָ`qd) ;EC){c"X7o 6Nc<: b~~Ӷ&dINp ;qIɔ2J\ #nnzLUJLu$nG)ִMK蓥yͲՂUCS7 mkiLKӶy,體t] 74)GVR%Ն4IhTd&-.8o{YTL (#LG RIN9e5wQgשggqUz d&J=^󪗾.؁_,MrK:y:yZt:iN|8#˫e]^G>p @cRGcv>{UNF+( |dUєMC Rd ,fsc[\AQ513ַX䚐@e+/HSt%N0%2P0R}|^I^z+֑f)ʁWZV!S&w(pUI:Kn2hmsL;$D=]U_۩̬)1fQ_OУi[Zk!2k ]\S㕤iN3ʪ {z=4OY sjz>^ø6daa F#9KM&@2T,bҌ"s:J; *yk,iAV 1-LԦUblI"*%{4{mb;on犗\!`ۖ-Tdp aZI-('S\s5| ǝ;(%b۶RsqzWEiL˱9ro7.sǖz#MS|˹XZ>&b['1$ {O:WU\ċ/sQn6/R0)'yε_9ֶb]$@TU%q YpQW5s݁\kpa0$/:t:zC1J6l4;OVlZv2!P{׸ڒ9Y$޻ɲ34uUcmIL]_&՚~kmajIgd̉fuU/[2\i AS5CrS[~0Sv#@9Yᬹ0À2&9֬Ceh;k3"c*L;{Lzni sŀX$'yb,SF眢(pn-o׆9Y.+]D ȾhZIrS[+Vr$:ֶiʤ9Ϡiag\+ 8GG4esJȺѶ-9VidL\=K >n5:Q@J3̧~E_G?/*Iz{]NX7g[w2\$ nlK4L ۷2KnvN&CM? ޓӴPZ+FfV@16h1IB%(TPh2P$ *KZʑrF2kB5î q΁jO9iXNן#ɺ;dsss>M׳2\$VhZ45h|1 zƓZRuV6f}m`K6\)k$M:y Hj_(cRVKkCZe0g9wdr x&q@W(Z(Jkڡ'%8L7xU*Mb`RDI&hk{ؽ{,w P7xcn滢̏ /2,K9to: i2\2I%uwɥ^z\#P=gY@B|-<C[-<qɓA:eMs<3?Ep`4gxYtGx . IRhIϊJni0lhszH)lc E! AM1N(GjRdd26I 21[44$PG [P3b0Jw ў:wc[G(ޗ kdnLC1ZӵҒlcO, H6t,2vQ\mމOC۠b1惀{R9~)eg,1P޼PҔ-dŽ]|se# e"J*T) kfZ'84(F:[bVRmA{z"cya]O*[ǗRJYCHv-NrdH.+c0&Fy-&1diA4%3yZDm-t6t6c1رV sNTnm[8]~ []!5Wԏ~t{T˞bop]{W$73_r4s_4F_9)fǏ]̗s-c`%x,JZtrqCmRm^YKmB d:hCj&zuY__ M ЕZ 'LҔT3g˖IU⬧3e酀A+iL҆ZG[IN"[QF&_?)@y. ISy;E9otIƈπQ&: _z}[mVM6/Hw׽៍ooy u-lqM<t򤗋x؍!s G۷m~]E$\x<,..c\ve(\p1W]?93o?WX[[w\'s>LQ70L{5zضe;2|om$<|rʲ 5]Ws/]z۶m7 |Ae3  "7a6>,ZKY45B}|0u }6:I=+ڔv ċk, ޵YI41&`B,oA?Tf$&X네0#Nt}$M2LP '!1DC4c8T.o ┯6z`*A6b"SrBȲwj?i†D_pFBsvi;ڶ.t9tKS*TS@@2vRJlhNQ'39eSaUcNy"}5r WXT{{\\gq;.[G i9}<Ο׿IK yST㴧{o;GwqdsNMw0:y>H+־u' p+?^rá\ݟ&0>gfA)5`h zzyq=Yh# $2xE6 #$ m'THSmkmIcVQ6%2ݜfiچ'SYO3ZhEZyiki(jћ%P,ηxgRI#!0MIlNYofee9< 4ۤQQCcޥ&Naqqm,hD1GC&mM]dYF$ H >O2yJ1K3(cc*I>д 9::mZSl6]u.^ ڣ0Юږf{o yc<ֵڐ& 3vlm =$jdLIth6qԌYV5b Ϟ%HVjȲUmF]4Eۣ*B<~a-A)|PxM+^$H~K `O :9HH4i!DaMR"%o86:[{Zx:M%OP6WUE͹gåO}//,.M^hKv)O~wm {቗\Ow|SD aaFmj@Ϙ~74u4O""U Pc8?#[w:K1fvGRv@d-Ib0 Vv&~l|wG]9V6Myό m~Z NѓoAMA`y434Z,m]lt5LKя4UYL4;Ket{=:I`c|-6;u]̒ †`D:ҥ͔x_KbFzcwH;h:&Z&:#&l0tCYs>^kIH"G/yx%`*XtrѠY'o97;Nq |{f=;h=B*+{olUw~ְsνIzzB%Lbʀ!8)WʉN;ەN:N+U=݉N4l&#3O6f$';sk?~k{]][ӢTwsg~@-(SI'X p#@b^# K\hV,Ƣm`LYzH\&Ł> pHD&G̑21G2ҍ7JS <%T@,aX䟈* vtÀ| B(8lǀ D-,<)fʹ)1T+:j5d[ ~u|_S0g=x_8yiʊ3_;_Bm97r=x2#)CLا'\nOጷ<;5 'xF_<];M`lxSa 9^W4n0jdו(4ꦤ@k"Scq MkaO*ap4m (|WUUb.b?G֚je#8~*$FI$C9e&Ld1 9-}dtJ44M#L@ú~`7~%#k&=!"_~Aj^?W]ͰK)M֜ 1t1fDg'9C]rCGp+qGjv9y$C?.`W۶+v([ W}ӗFx |]pD-GdLWsPmXV2h[uMΆ>DLUc)xD$l-X.{"YC~bMϯkV srym[*f錵5R PV'Y"S=_]ۺv=] طҙ[NJic=߷59{w='ʯj.s#yطo?6^-T|te IotZYb)0qC)>,t{ٙp\qI0ր^~?3~-{.O}S^l囿g?Y\.J{BN,o?x'_Zg_//?$W5tyWxn=n8|/ (錟o;W@Gvvv%)#?r='ugd*cy?uju;r\{nx0MNvzDwY@Ezv mA"JSJ2EU]K:ka&fÀd2Jiԕe 2dr&_D&1jy4nbL,`͚/K!bEltvwmŀd *+=^vwQ%^qeJZnWDŽ6bNX\39$L)dccB]V ccᢀH.У#}H({d:^L@cteطonlPm1,;;;}42u ,3i4YCa@)Xfl?v.l22M2,4mY6g֚UĕGOkʑU QikAXH'\'g> ky lo򪷾Mɸ`dk8;|jN |~#7s$x_q%Z^q)looR?IL$ي5)stKw=hm}LTXNLD(\Jcse\_F`<)薚Z)r^"9uEdĀR +Ѻ%v.kp}ϤjfӚZBLuKhhҖ ̴bGRL5iHٳoJ=tfAm*C`jZQ!8hng訉av ͱXz^r)QZstx׉έjUm3Ҹ0t"CR>;(%@"VTf<޿t,0t{ >p+0m] QdX.&3677yG6WLݺ5ph.ኍ[x|xsn5|_˸vs[M IDAT98{ wusvs&xmΚGkcz6Lt L :'ٸbT C0EC+OI5!De+린|&1-ү Urqav"Tui 1$ntIYG ?xNVݟ'Wlll0B(wW٣DHGSR|'gm%0MM;2۷|׾=$9+7:x7/ŲPFLCL ͶML0KdJIt08gxOd?`%ār@[r~`uEHb]/T )HVa sdNEJIZ3ՌS4b_gIFX:ȱR"K*WPi0e]kz{rd}mM h88Xw74t;䌋e?}x~IUY;s8wV~oҲ\KIә 9{#Fk\F14x0* F;{ c8{,X>r첣<9apnw( #Tit},p0T 7-N*V{M7e(- 1֠>v7P>ʗ7 7ws|78mJ'n&rWPZc)5H!Qˤy ^{^Ox>T:MS\\pd}׻Oyы^G>򖷬_k%9GL{ﻗī_+\Y}ˎ%yl?@\.Wi!пu%%2 ls&Ju |>/z]媮ifUEN$NιIiZV9'9HׯxŌQ.E%jPK9J&rE_:)46z$?Rʤ(J@jFLN,QRZb1XI|U"$(UCZ3a-ٳ>;1~7{" 0)>ep)%T=Eד31{4l]hOB#WZRkNbP꼣Z X[ᜰ4\p"1 z=-ɓ0aM!J 1> !0m[X+Eh)Dz_V 1fC3āq@1`lM[MPIv< L'3pQ ,YV ߷䞯|Ք9v8{W8p0ߺ&*Y.{)nvS=zw&ݜ#pXN}ハLgo=Z3#e.='mΫ |0_FlRa' 9t.0wZ+MLY?ϑeXjv:jj2$MgOet%U̻l CO̲YndCLxm4 qL-3c5>xb2Ba)as @b;ʙVt@ 4MZ5")1R(`XWiTZf YSuloosĉ<ƯDޥ~Ӧsc0؊7v -gW^y%@;[8{)tcB`HЃEscQMM;i0F$G =M;q.q$#Q)KJrOژ@iRb !8wZ$n #kjie )ⱦqN>T5 2"r&-`j%N 8ɚ+@RWޣʌmE߶ Ʉ>BQڬnhd13jiȃsrj0vt[N9K,U$7b"FEm,tz('7kWpwsx"zxhJ[=L&S>Pil/咖ٷW >?]~͔1L;'S*lHaeGG>̵O|^ì)%5Gx z1]Q|r$ZrV4u|1ApPHc3EfEt KBՆzд-^vՆ^:]׭6#/G[Ե,L&)*k}y[ʩ s[ETXOi"/r ˢH.万SAUc` kFA3JOQ&4&vha"igkL6X_8Ɨ\Yyڹ:RFB_ԑlʿvJ6xXxwM{C6S:t8ޯVY5(cxX K>E=L:kJebXɄgot2- TJCSIP51Df5:QYI"YM%>?VWD < Bv+Uڒt$QF&B 䵘DSׄ#@K &u䙓>yXwH]b`mca_kŝIo#~сJ+*=FV3iק_<|e6l/X%4iۖ5ƉN=!˞l3ΟҖ@b/PIiB+FVSEDWk/ZQiKEZFSyA"$EOeQeJt%a9uѕRL R4UK_6|Z; KrSoh-=N!v͇C)t:%H]גg _=wuwy'v=l_4JIX~d\p>t .YccSgjk&l#1ac$$*cI!J k5[߇lo/Vx RWQb̄( QIlM1"L ȷ)Dti -{t֔4A(X.F\TZ\{ʈ_]J<іIUMs7xw@9_H&0 }v|occZkɚ߽F]],>!{ICc4p!owt^5sbϱņڶM圱J|\}0!5-Z+|{)rdcIq%4$=4!̩SomS?S;zL:Uin6?}ZckVl][I>BuvR5o*\$+^ ~3=EロuwF=MŇxU0t~[nՏsKPڰrλ?1W<ٳg $V`U>}_-EVU]7/|K,x=9… h ^ڟc0u(4ko37ꫯ^RlXV~hdc x ziKVѶrxj %f('us1;6#;2hc_ete:tъRL 13`e2Y#1=QdGh@գb oЌQ.@]G+8q@GqR@a)PhrewZRI(ePŔW0s3I$K=Ha~R黅FWV"&vtv_ ^y< Xu*0ӴZmsn/;vpeW5ϩ\~6r Efg$!)0VROR,LSVԪƴ-˾D)ZA#Z+n4gDB9dNl}C5Y ) r[blJ,@ZLmrmZ 13B Wt 9! 58$PMR3a{knt>'L|ԓE$Xibmb}"B+TS|q6TB@!9أBL򬶊ΒJ5 x@Ÿ*|pdQ~JH!$@NIwI U QY5k ö5nMbu1Vb9+I )2IYCK'GOMꪒy0"OM߹H̴#0 Mש5hJgaWZkʼ;7pW?ߕns^R "PTpxVsť q/{))DTR[n,ḾG+r`_nLk]z)(o-LSx+aqQYoC6f缤zVBRUS L3ɔ)g˥ZRhP圙b~X´0W a@x ra0Z%^g9FND'' {8yEF+*SU՞Ԭ&Lݶ ,]7 UCe4Ut.\ 9OLY~ I :3 (cQRER6x"c&"W in̴0iglmIT`h](JYDՊQ~6ߺv~gPѪ8|c+lh2mb2.>4 m䵯~ _|w0LWMSsqO34mX|#X>9/19O-A%6ϳyFp--. 9Ódz;Z~?ʫ!"x1V˛~sD%M)6_◹[Y|&Ü>}K_BN\zRڶeҴL'".dDfB11r=F]7Md:L m!Sd#ħV%?d]9'eL&fOX>xB%ޕ.W=jք([O2HܤKU<1IX {1`4F5!MX{Ȯ+.@ տɤ$])Ic!J+pe$HSޓħUYNCդsܬRW/Ȳx(+S(S^GT1&sc}&vd2ҹ,Ea!99H ={7rda!GI$8yijrGҹΑb`(JF|^ޝnT˃Mc1,B 'ȴxV̻w@gB(}SۊVJ)Rc A:1͜/ָ$ $$tmԔb3AkڦQGQJiGRbm ˡiYTZTuM"38\ V,D%!De tΑcbXtڦTZySdԷx`4ڈ.g!0ΘMW~A vŴ4F3_7YSL=vc&la@+$"(z/>kb(PYa\^pyQ Qg9y$wy'9U҃rޕg\^CjxU~!̓дfgwm:<>>u?sۤٓ8Ҙa_bg;|['8u,}6q$j0$ }ĹA؟~@x'Q֥@"蒒iXvJC$gɔ %$RFYLcnH庥H9b;ϼX b)Z6`)M( (aw4T¬&%nF-Bұ̯1`R+V[2w[U̦ ,8wDzCae[UhkYཀྵ: \#|aS#ǎ\c#윧[L3pJvg#$OmMV 12Nؐo+1;N:%td}A^c*~!FO| CtA]^W{ﻏ}y~o~;Mo2|+ysG?[looքB{h&-suqM7WR$~mzrec\bFCziF:1ae:QUMy l#XTN蜥ba Q:{:P @*~d{D H&ğ+y`Z1+`1 2 (wٴDPʠ"9BV& ?6cwxZQMIC6b1cʔgO:׃=VEz)w!0dҶ21I`)Ь]c҈PXrNVTTJlEU PQ5 s$qO:b bЋ4E|Xeߑ ,*Ee$^}L1 t;t'b.XmAC7VҵTVԺ&FI. sxa;-[$tߔb*`kx5lP-Ed0ZUJ1b23|̉DhPiNdNm4֌>iۨx}OREFk.Z`f~_e:6}Pز "#H&戉?*.8Ȭlη80[3mVZn MϤkOn4RY;XJen8y4xb?HbP F{$1 F"bάyB \UՊ32UGs0Xki01n.ޛ+lra* g(r|>_mU"ue4JXVA!M/pjN$DO'.?zÇ/eO_jrԤ=^h 9<>LrfmrSx.2Jk*bYiM4d]f1)aF$ .vbJrZ u(CT e*t]WC6uh̄J{{F"|OL5;O{B T/kKLc -&3.zH"N>]ʠ IDATm4Hz`jimK2wgI킖1KBwm!92I 2LcT%$/ϳbpʒ2"kjS;|kI}0X| 4wE>SdISV@ b0|Ě1¸2gdPIˆ9] 3m&nrÒV7䙢ўmBkP01G JNR =>zpU0†& FZR”k**uy ңhFh9]<@vzcVQZ[W?*g`1Vskqʓ_6k mV \#Q-oo4ws;xG/%='G?_c`qk&$Q` "XE&P5bU IPk6XeѦwWQJn|cgfX-sØW qέ$wJIҘDaTX\s,~Vbs&1c6 𵶕xBikgIN༗ka{ǞRBH MiRiyV} d%a#+*ğ/%vg^CowC ?"&/V2dͣt\Pn}}my( 1%)Ѷ)JmdOkM7bXN䪫{^/9qnb*C(e'>eGqyȚx(J\%o} pW8O}S_׽{wW?I/,"p-=mۂVM#o~Og\Gyܱ/|gNsꃤ%8{-B#|4[c`:#\@H(F2/ʢj4dE^ȺDekP`^=F)yM2C?xHVzz(锌t[h2aR^LmS⹐s`ѰHTN$!I/Sʠ 1* (R)VI?؏*9'"j[B^If5@rd/V ֮1Z*]Gb6t'#&z*I.ZԵC uCm󨛆XdZE"JP] _O kb/თnwaYkYa3D=ѪmQ#;CSP)S2UZ]^WY3k+bK̼[GVZ+@HԲ5<_uUaCYr"șmH;|"(\d4SVBO3iPYH QU5VUl<=v&ˈ\PW- xeF 1ik[m[aJ a6Y*u"z'6Hj&kFYԣ 02QTqc~1`DxTaޯi8pW^yg=p?˯x1iXd}l6GiQ]r)!|-{\^W ;v9UIGE1rfX.N,FbYRв=Rj嵣˼']|V Kw:cdfi^:8k<~=2F9x|{늪=m ȹRWM5ʳ8 šzJc_v ]vF]׫uICtB.`wX@ff-G5ϰ%Gt\>fߤaH]?PFsN'P8@Ӕ@I!WRofamoUWsyoy{{?XԊё|;1 ~`2XcWU=Mr o|y35װ\._Ewr׾,dH)Q|Sq__:Zkl;Yeǎӧ9|EctmL~<6㑿zX0NqIq YL}hLS▇A&7i S6*蔩 |4UBѴ59 XИ-,r\=TM+KiM[SL 9MCk0P75T2zUE𣯅'PQcʼS).–ʊ`q0"=mQ| ~rPe҆*0,=5aPU|4cssc=cS.e^~L"-fO_M(̗ T{KC׼5iZ~cNw?}M5TKS<8P]c47m#c~bcox;!{c|moCd}h KkkyKcÆ yzwq#?oy֬mq#?{i )<*LL%8 N ij1=IlU"FrMyu)@RW ;7G9RVhuNNߍfZ0IRKbOK"3SkJXhM(q(cĚJJ[9SF"jilȫ%bUa$hTqR$ ׏|fi5 Igm\ui iF)A,UL{ >^fZJ9cI||w(i@dp؄$ b3mA7xR N,Mg[)&hE/_,u8ڨyK%)RܤtlLڣќ=MԠיh&O:$!`bT˅iQ&H:hx/5iY@$bzhܼIŒ+5igSfҚN5dNc ԛl!6g),EQf"?v-nIs],,,l4*X4JP7q65zx^gz%ga|V.ݏpϢg#v aq89 j_{_ss˭7cpI'BB3fG0N~/dΝwP  }L!c(F#+uWb^@cLv(bi4 ,{Yk&tA4qiݲZOSq; !Agf-DK0KiBlF94ɾq(cy>`9kU&Hb:zSHL,FͳB JdQ嬥Ж Q5hUHtԥX3RXUtPjZ{S !%(\7G(MX*n䬰{qN``eXyv?cqjԣ c (a;ҞSE둸| mZV Ⲅ"ú:Cш]a9j7!xʪ u&^'C"iC7ƍqp.#:N{5dVɻvz}LաmkeXZX4BT~ی՝>N&>sXR>Oste+7DBC*Xk뮻p1hdEK|^x4^\ =+,s㿽rTiqr -[ի7033U;p!F!wG} \z[KbmBjO0a&Xu,,X\c&;"ZCB!'t~5禥K!&D,M8͜x5ZV*K-zKRnlWPsN4ߌ1m5׬1ӟQHϷD_~L}ʲlYSYUׁ{6!:$.ŚPҶQ6k7k rױyƿh7_N>*xa|y'%Y{kcake6w^}y,Cy~w~ NL'8jݩ$>35~GPnBT>xۓO:={rI䳞W5<(s9˲c(>Zwn믻,Mpg?ݻw;wpƍXkٹsg0уSp6%I2TSֿ @ f5M(.dB1k<LĴXxr,j] n5C %$XRTp`~ ^ؖXHXBADR7268GK1 rbGZ笥˵^C++8׆XZnv&U2AИ()B1z.ʿM$st7@iB:Rhc:ڴJ#L I-IJ { RW%ըh8$%NJ_F}IlKM,IM0~nB]t4zjǪ41mɏ=\2gd@P/ Gl8lc"kVEn~RYQc#dIjX-%4+@'0d5 j_.RӹbK)8*UBVN㏑9.nLpF iJ9FY#Dh;Uv.a  :$MiDuJXTQi\īQXb)ĩe>Kd:f>X%eji5ȳ.\+UESi>Q8 eU0-RKM-Tօ8E,*y7GD=4 č!N IDATӏ A˺lELTaTaa]Æa59ܨ,U#{Q"9uU3͛777ǚ5Z- ԏ y41I,V ~3p/渧>{*3&]M?>u'߻[=n=}L9`an.,0oRaQ~ GcD[UEzSeY Ir5xBbqyg&$y@W塡9{SE UMxʺ@L@|E x-B:F$ϰ.gDug@,e +ZP'ZΑD%5e,&R;QaXZ(Baa'wbݻ@2:y_1Ptl*?l""P#)/JvF]G6$ 3}H/7.TvgV/_9{dҥrC^e˖-gg4dL600t:4o?c8qu.#,W٫q>7†@`޽ݻwuI)kg+ e <ܵ??%H=عu5%q0ph_71V+m>v ;v`vv IqݻbE];b4`$1aݺuw)ǻoo';c m{N]^KAWFAѨd4*HYFp1-cI@Xid*:&@[X@_^}VQFsh%B%!s8TI+H= iҹX A[ikJH~|e=J"RSv1VEϽH'!FkpdBAE#iMq4}3Kj~9yk_`ۿ݌sV^#tfcP^M-5G߿GL]}eWL{[v߽9d&z~A(фa9|Nx;yýx@n!|3ٰnUURܵo7`+98_s /yKX~vN{̰w~?^&YWR^@CLJ'#{g}\9Qoa aQeZB̡89/|jZpq*B% +(1؄4E奦,2n 1M% ֨)tRB&tV$%z}UUEd.o x;KTed%OsUx!O;U*S|14k7}1KUK{x>4KDH#~45kL_Nvb%FڍFtI:I2%A %9U՗((YW diX <ͨkOb>[\h"x]ʲd4wr*KtMKRrD7_r Z{<˵DuthԦaJ-HkHykȳn%)cwYƶwiLh0_{B|i!pF6DoFUړ$.ɒ"FuLnAױꙵ1MXT:CH\nc{Ox 0-D&.4д\l3c̘JsĪhΥk5Ie)ovw|%u9IZRx9]{91-[c&^jPc&9G~x\k eU;;ƪyM<(1j1l=Xssپ69Sܿl[lf(K;xX:?1~x˿kֲ񨍔eukYn y+~E6#`gC?0%Ƙ̧s?w6g$nZ3˩*e^}t1Qq6 |EnZ"."@0`?u1,uZF&-̈ƃ%U ncD5BKHk Xnb#X#@=c,ITr!$8X-'nlCh.m\P󌯑n$}%d1+84jnlK'vUV XU)iyw 5"XXC7Sk^="p'Ix4 ̦5o6'Ͳӧ75,yJ*RKųukHrIFiO>x~g.Z }٧ӿM߸]STHmJjMsΦDS:()TK:V3XE3g {,pa07a@U?3Z&+Z=#ŨKjUc"\SXHmNH\ʞJ$#q#FAff-f@'iQil-!X%%Nyd&e\g(ˊNځPS]w3MUM~MU9A۷JO<)U1:6 +xa$L6m9A=n7p4JߏL C̈́k^y6|0,RUfHnb$.FL$,m ԵB:R,oZ $%4k M:X Tc*1Q"[E#.1#7E(B--GÜ$ƋA4ISH% l;6?Ŋe{C )SG=z>$iBjBXRi2"Ԑ=QAԓi,6,d(tKڝa-جcMGlP2RgJBMx_W,z\rӿ_/C:yN~wE9R܃rSIO]Vz@P6QEeeɠbdLa(CI YEbTheSS@`XUAɩ㲄hH(ƛt;*Jc:`<ϴJFҔbT%ͳ,aTh+NcT-n{wP/M&4aTt<R^ڣH NFkyzX,:\Jꦩ LcbY$6!IN]0ͱnҗc2ܤ{MjT*0X__8ssMcˆE_X ?gYn|Uv{],k%1,hΜ_3Z`C&M+01;1}+.ls=ثe,5w_ 1} `LxYˑjB~sW媛RXU>|>xIb[H޴)!˷-r+3mj2WMX&CuU? JtJxKmz5_ BKx D]9 ( DP,*sH,ymcmC4DUQ&SɢqrU'DyoQ1XğҜxj-xSbheDEEn;H1Z~񮨉scPΈ<a4)$D`KF% yԀ&ZR,jè!N2ٍ Qzu?{lj5|>UIP&fz]YPbJ\fh;.(Ni5ʓXGwGUXeY` :=D/_S;g F܇ZU!h:eo<tI\J'1MgEnGYQ38$i U`e[m؈L<=ǟwG\>sg>å^ݻٶm~q%.䝔սG_ϣc}7m愭Y;ۥJ &sYF[KPXs8L TbY$rFEǨc<-0=y[mpi:4"Q9Z^C]Ú!dBRC[_kts$E]ѰTcıy&B1Q#ʲ&,uSIEߦ乖NEB§OSN~(hҵ&1>:CzyGU| ޓ)0$mۘ,޼QS5n h?M)k-iYBd):z\qV/{y.z ]5`j)8P%EQ`}DJu o_ϛ<:_|+õTp#h)0RXN\˫K\4%(Zj 5'VCX٨VH\ ĸh,Fiw~SqL80NMVN$%WZ!-h[C0auA1D!i#?)i8i"&~'~|齵q,IbqiBJ)2fT!QYKA ,+[)J%IUqa?73x%Dݰx6>j=B1.Y5ʮBIRBTk ƷUP3T IDATJյ 5O.&j6%KA2h$cXLN㥦Kf W3է겢w)x dV2ӌ^\>;JB'96@UeFc&1m L3i1pT <ɰQ1BPTl{bA3Ն^eP 44A1 O2h%*~"i*Rڔ<2h3@kKf#&)y+@p$8ƠAHD}?TɨqUp4ɱ8wuDuY*pqhTR98tfGd<7]`8SÎZc8nGl޸q#/~ٺu+eY’Nh$yef'I'=#hHY=sQGz*4[{k)|Mը1j#8l9E~x]Ɛ>hO4͠ NL-_o%FD&ߋ%nߓ$v nuד) wQ tL뷥CjؘSƒĪgQD!7ƴ̤ZdR5ILٸTW)5~M R3B$˚N٨!~6 朚׋Gs4|9\ty[ƺuIk}|<*Ep8lǟCܹ c1L6x}5v}{>1+"|!dP38<p3?uP@(n!X!m޷0SdLOr1=JtI1? AG9IMBٚߙߗH,{~i Iq# o" ,x2)4M7rUx8O.=JǴO+=S\L:˴O1=ŴO+0%QobGz{)V2yڿXxib%cڞW!i^+I垘)V )V )V {aJ L;S\LS\LS\LSLp}O`)b)b)b)bShgvv;ϽPNۯ?}o#:8xы^č7ǙgW\GA<)UL,8Sxއ}́}橧ʻ9'pB{z|;߹_{=5?<6m '|2ozӛ۹{qnǟlڴWu]qXx1>cλs˯c”⠰w^7wA>{5y sssر|#lذ3<+>^z)|+ӘAӦmo{ȇ}__ Ox}177vԧq 'ܟ}iuO8`a/})o{x_5\ömxϪU=P_c]wK>c̃}cuY|3a4=Ǟb@S./=y9Yw]<_[ndժUy5Y6lST6o_zf͚⾢iӳ`\ve-oyP饗Ln$I~ܓ)->lիⳛPuy0P%'{ww/ƒzSLPc⠰i&.R^kCY:[lWWYXXe/{h4E]maa,ؾ}=>կ~5r=Ҽp#B]z'x"k׮sA?gre?իW=kW7Mԧ(˒7Mp z=N9d֭[w>{86%=իWsgpuN;իWpI ƙg>>lfgg9묳׾;:{`cS<<'qewsl_Wj}>po}:O;z=,kz美yS|<c̾ý/}=yy{x _c|scݺuy晜{|8}?͉'իyֳ7>wuoMH9PERG'>z@?>f,8 Xl6[S w\r%⽗hk E/zرC~9#}kED+ 6HADD> {lJ.bKۿqn:ٵklܸQ?so{ Oxxrm//֭[(zc@ȏc dƍo|>3 y["""d۶mrme]&9馛nܸQ>Ϸ_wut~M 7 re/@nVٲe/yַuuLD3@> 7 )Vզ?OɑG~gȇ?{k߻vN#e׮]m6Wھw_ms=O?]:;//eaaaw[>{@m_Weǎr ^x||GN=Tyի^\'; oxݻ{}ܟ? h?Pok.dFY۷o.K$Gyd{nZOַ$Dl‘S9"09 ^7W4Eg4r ZAh nAݮx"ڳgXk;h/}I:(4M.Lfff__ED oxگ>/9믿^DD.",!Fz%̅Yn|?": a.@{o^% Iwq6 t:}}~qqq tg>쁾3_WXlUU׿u9S}o{,m۶mk|{kDvTU%/a_ ۃm}@v}3ΐ??j/Ї{}˱|<8=DZ)~i nF'?I/XlLEkn/}i}8@`;.1yfy[*'f̛be6,:`0~/_WDDdǎveϞ=8bqqQݮ\}K{r.}4QG%GEдo=|0%ƘzMqps|K_Z7LٟmUUw^fggyӟN;4jjopUWq)p5=,}ky''l۶۾};UU'>[IOz7trʽ>qK߯uя~Ĺ Ν; ZvmvЕoߎ~s@Y'?uS,\~\~cغu+]t}k{k'tx38S8syի^9sr3??gﺦm}O4E#h_5׼)Oyr{88kiDZ)~Xmԃ[oeÆ o&o| >p}8׼5_W8sx_ܦ<띃Xx(Ƙ@v<窫⬳ӟ4~O}~ϣhxS=>9@BUEEEZjEVUt:L/ϫә.]u5O=V̝;&˖-c޽]~26d1(//硇=rcիYnGmYfq{wGry|+/};~D"O:-\Y~_~Xi?ngۜ:f8뮻??3pwo~N<91==aqja~@2LhÈַMn>}:ƍgWfӦM[6ǚ5kҗDEE[e>##m۶?FΝw9`Sꚜzp32rJ,Yƒ>Ȯ]8|0O>$O?Oˇ"^820[: 3g_"_׈祿c9up[u]7O?4SL5jٲe_G?)6mxǚ5kh@?)};&MNN˗/gǎYz5mmm\s5mAE}hXr|UVf.Ry~?'++>yv.y?ٳYvm2?2e Y}c1+7pz+7xcr<)a{/W_}5s=07c=wqO?W\A^^SO=0P?Lyy9^{-ӦM?1#N(}|_7|7&\p\3]#)RJ֮]ˏcy/_ҥKw~hDN$ñ:ʖG_'O|Xi7Ls.뮻b|coowJ~עEWU͛yWNo7F#g?q>5u*OjH{;5Z1 'NPTTDWW׈ 3ŋ x`0.*Oyy9z S͛|/hܔ?WK}Sޓm}?]̺b< ;wRVVf`0 EڵkYb a` b߾}<3RQQAa `0 cg|ک0V1p??QTTիg>>,`0 syV^}b0\@`0 `0$&P`y8ix ß٪KL`0.Rmا`0F3N⢾͛7H,c„ \r:())/On{'mR`޽X#iOLIIɐ·˙8ƹ@)Ŗ-[?>BD;<`i 7n0SLAJeY&ŐD iO<~8%%%L:~Ge!(++` cgӆƍGqq1c ;mS^^΢Ex ?Dn:Ν;p眜`߿f.]:~֭1r&q6R2a***zm߱cG?`8aT҂eYlvvvn: _{g|ꫯI8oy5}h޼yӭ+ eG^#ʕ+=D";vS]]ͱczu;Hy ilܸN222[z3O|`ivÅĬYx{>v}ĉ曬Yi s`e矧$9iΝtuuq5 yv^u>яOvtǏW_%lj'g? ޾Ԇelܸ19L<>]]]|y睤TQQ?!_dٲe!СClذde˖ +`v>Rd[]UU0da8|rrr۷j*v  pNruٲe tvvAAA+%v ٳL0|NJZZZ͟?iKII vLBPN8ѣG3gΐm|ԐLsii)[nAj0-}NH8ݺb:;;yW3yހH o>^~eΝ;1FZ eh, zy&hYv-EEE>4.D:::t+V{WGNo0K+eeelذH$D0aͼ _}̘1m۶ٳ=ߌ3*=PN`v~8SӏYd 6l,rssN~7T?Tá pN0ah^X~=7x#yyy455ٳ_??tɓ'Js,]75 33H$+9ف2\Wӭ+"(**on3g6lkc}3c ˒%KSߕRsi 7&`6_=֭ Treuill$SXXy`YhH$¬YXr%---DAvyڿ?獸Ln]1\&MDkk+`<?jjjÌ?~c.ʎ'MijjrբE2e / FB@)ž}x :{:6?j*^xG|̠`8D"TVV&֡%\Bee%Czq^z%nA?Ux8]voYd vOUV~z<#++[o,]k8otMlڴGy$iGW>-ө+8vmlܸzP(… 5kV}|I,BJIff&W>1FRjYYYtMqӹ馛zv\|9=) O<۶)**7eF)6mW_}5<̀^C3hW^Po0zJ233Yj0tϧQ ;?ﻕ+W2mڴ|g?qĤ5>P$p=P`„ 6pFk8[BNu܁)ۃW9}ddཝekGځ`0 px={63gO"{MO(hܔ?NyOgRSާ2ж|?b`0 `0!(ǎё{nL3 `0 1ľ}1cƈI_,TUUk.sן # `0 b…; ch1S `0 `08F2 `0 ``0 `0 ac `0 `0 1 `0 `08F2 `0 ``0 `0 ac `0 `0 1 `0 `08F2 `0 ``0 `0 ac `0 `0 1 `0 `08F2 `0 ``0 `0 ac `0 `0 1 `0 `08F2 `0 ``0 `0 ac `0 `0 1 `0 `08F2 `0 ``0 `0 ac `0 `0 1 `0 `08N̡>I0N!N¨طB6\c߆ cc#] Ԩp!4,46>ƾ :ƾطB6\%ɿ7F+ "ߋ1m c߆1m c<\r.*g'33 Ӵ6F={6o˗/G)b޼9a݋JRX0+tuJ,RX0}GV8߿?HHO=AAx*+Ő`zd"|ëx7KXJΛEaa!TUUQ8o`ɸKnn'o>6mۖO`ٵKY~=&0k,~bYS'd @H6nUW-ez4v:B!.W\q--m87N˽~|gnc[3u5M"33;Y>;;;m㤱}ÿb!4PlcZz qp_갤@f0 |L ?Q]밽Qm/&hP(؎Xi6ڋ#, ׍cb\iY8O "ţq¡ 9^2ǎc֬R>kkq8knԞ{?IC}=m-6y'O.r:;;>X,FFFSQRRBEE˖-#Nq,^{5>j6n|Yt)y7X,UN`fϟO(d{&瓑FZp!//-P}*˛W.b+y饗ɝ'"̚UFi vzL8h4J,K8Sۻy.aP[sƆn)BidddbY6Jd't"Р(xi!;(vrtrp"DZҲPZ' ˾ud74| !JlمF'zm<i | Jq z/k"}nG@R"%AJ A*qb/z"zxHDbfYRA$(C`%%RX2#- y<ߓWR~dZƶ P:ȯ-; R.¶hWH7H?oH xh,[BȠ_.s !Ny5UJa9} -?`BuJ|m_P ^r>q-؎iÍʼnF8V8zp '&}h!~ĉDS^ -=}al8Kdq߳BlxCOx,>ik߻ROR]md^{)]&KlLJKKAKlʢED6mdggm6rr={6g$k%--g}H_1k{D"h)..˄!,iŻ hu Ǐ's\׿UW^@+E}}SN5 ,@Hlnf*hUUU̞=5+V),Hss3Sy饗IOOr<㺛5g~*]՝`"Fssh5J)!sN>̂ pl|rYz5Uդ}.#477sX LVy%;RZ(?emll>o~ *ng u ȑ#aJKK?~+ %vQQٷ4q urvwB E^k0ӣ?;0|'cXHBk8"kUa<Xvƒ_+vA)UDTKQ(B#HHR蔩$UUUL4{vSQQ֚J{ZZϟ@VV99QK+=qXx);ɺzl!s)--e̙_TxWnoOit멧o3F,I>ys"y@TJ]0%a;"oكlo"Eā߀e[Hql`Ar*MP&o;$NkGQ(IAo!!D5^.IhiMCnEu{DS̥I/!'զ*=^ZPYD86¶Z`[`[h)NÞJ!p);LF.:LЗrSl%n<Hhh?Vvl?~Y8oc־:f B%P z5cmwWW-x;?O=i1M$6_O(n QQPPx%N;v0H)),,iQJtH^~Zk.7<)+Α#LchXFnj.t>|➻p;{(4ƖfȪsQ^p]vQ>hnhɅinltut=(:^|a]ŬYeD#]8Q˜ٳqˍ7@gG/: ikm۷1kl=q8R}.$oB.]PPPMA1Ңpdoh,_L-\4'22{ ɵ,\8)S'db9rǎ#/]fR$Rn(%x?ύb]HwL~*pmp( IDAT8q۶D"̝;se[L:%K9^sI&Q^^Nvv6BCZZ ,Xp)iia^x'2klxc3')4~wˆ$vnZIKK+[A4C l{O%q!$]{46)ԧRR2cĪ&eeeٽCQWW 7@Fz:M }~ğRDAGjq& Ӊߍ}<}9Gx@(CMWY9c!fg[{_n @@"@nECPFI XieK X/m;=^#~ѳB,OzD?IPA(XUJL_AJJ|"DjLr=?s D__t ӐB$A^yR$!'ER[?GJWB:` i~l!Q{D%=.%@\#Zb[V2 w@IJ`cBI(9%.~mOeNj')y~Fz.mYIaNkxgaF>]P^[ eD"ٷQlQRE-#Qf[H睧(**BHEgg-ۈF8x ̘1͛ċIBa%=/r鴷ljǣ,^Laa!mmmtttpqΝ0Oʹ47F<cǸ.3ޯG}:H$cV_~yBL^nJ)BxRrssOC}#xq㳩c ΛGks3Ge˖TfVoI&ɓeWp 8!38y&3d:q/&)^L܍! '0a6m"-&'w<#$mtvF9^;˥ /!77n222ϟŋ' Fnn6L<˲` ƀhm½ɟ$Fk7X1'Ɯ4I{Itv}Vپ};s\\`҈D=H"֭?|;ԝ<SZZoF8f=dfer饗+/_H{k9s)6o4u{rʥL>m;+׸l<㤥C+qBٳ{nO4rsΡxe^8RKK>)/'#tb䚒 ls]4;7M7ȃe-<5-zd-RʀLJ,h|qq<7EzTOkS!? O P'y(ОGHu4 xqǶR™$?oZ,/!j[ [`DPfER0bcr (C+\˲lt£ɷD%dKIh5b@ ,xyp00BlhomEkTu Hq l*!hnnL:&ZZZxqn蠫 ^}W\q9]'p ==Pȑ#dddDȠ9sPXXHKK pa,ˢxSB"(3g@u5_x{޹ n-bǎ] ۦKW6پǑmQWWW,$FT4IE߿܉xJ ,^|%㨉ג;a\JCS+y8/27}p%x7w6Jf1w\y-ZDFF-b۶7-:j::Xd1{졹\2338!}g44|_: s>fLLAN(.+ljz$q ɘ?3gֆeYb1h`ܸqkX__ϤɅDQlb<}]ƍ\EsS+S]]Mee%mmmFΦX,Fyy9UUUxc޼yD"Q~&w{O)"{\1%ol`׻; On3Ek{;Iބl>Of%ص{)_QɆY}iλinl$.X;fϾ ڰlǰm 9.ۘ1c'NhC~jlGRsuuu̘1O4J$aΜ9<ij/Eww#Gڌm9̜Ug?iSZJJJxw+ 'gwΝo;T<@Yi)'<9քNwI iA_!dw@"xhbW8 K1=45K4$y?$` Ss ӟREbzPA앚KuOߍuiK #E$!%R[M/BB &  HzV~`Kߋ(1Gʘ|h{(BJq"FO Ai/R!p}/m!)T=Pmx8E+d"-iz%FG~c7I-EkG&<l] y|A<,i䵅DpmO#,a!@K -FiQRy a%X / &Dc!$Ĉ~o@ fo2."d(cܱeF>m=D}Dw`Sw@rH5Ծ\}XΕ<יk4O)&!Ԭ}!!n-OS=8W\@}}#q#QَMss+455MSSq7JFFmmm=zqY8C(wƍ9,\-[rO7-\y%h6ՎjnD$%ЩY>OT<c9#Q43 Z0 MCg%ks[9lJtΪߢkZSK5g\aZRkQͮ%qZ#-ZcL)Z[kM:5SjBLk$AjxN%O9%Z&Y}T #$h thg5չFkQ RMDi]Mcn D=mDV l#:9U-j:$ZѦ#fFDd2ax&B(FKt5s/ 0QJi 01 EW)=2Dk F

@"Ek, ^ *:^˒VOU:j# `T3=WyUZ-}Fvީ>Z+WϘ{G_rk27//[Ӓx:$ib m! dP-iik&aBS)fhsãѣG'N_&'' <[nxtvdT'fsN-͌MNqFFƎ;J%ӝ᫐v˲d2(lqK{񔢵n 4wOOf  Ҏt-lp<MM-KElb?]1c^{/>'1&'VO _w ׿<#tM<#hmmRh"ICG(Hx}C4d岮jnr>5§ָ\} ~ٹE:Qg%27E0D#"zx+]ƹC,ϯ[:xgI8];k,Ns|!kRSUh0D0Rj_tD&f:"(2g5;#'F H|-_`BD@Us"R2Aj!T1Q( |T7u\d R`QAusSD䨹 UBDDH#2jVQya tCQnJ>"@+Rc2JTD: %ڙGD0H Z >2ªn CT‰-mc#11pAD4X:f&P>#%P5o |uejuz 2 WtËTw\WzI~ ,xm_o0B)CO?Ŗmؼ "߂gPa$2saH0 qPJm۷Lww٦ tttF,T*immdY40<0#U3ߺrPj`.=QHKfcD-THPaU/󈜊OAh+)e"Jۉ!iGaRm@f@kBPh| DVjĂ00@UBwZ. үV Q2D5H v5EC#TZaiRDFD $ a9"!5!R%1+{%FE$*̅Т@) L]=ai55DUI?nT]SK7ߘv1[\VE=\8yc:oF9(Xv"6 ſ:?V%T mۤR) z1g9BSs+ѳ,&Hpyk8,frj ^r1֯ҋ/.៾x[D__1;mw ufll/﹇/}/8_eSQ IDAT?hmn%_.19:c9~Ey%)pC;dٲ_\n}ĉ[Χ֜6N׫ڙgzVQ2}ұnɨeԒG(iF= 8ur<(t$iX,ӊ҂BB"/i;h]ǚs~jaPRP@h\<ϭ*[|JUGSA"JWҬA> ҈̚>K` fy!)ૡ5RhY 0#LP~5J{*h\ <&}t HJ)4!ڍtiY(B\B!6UURih lD0RIP FX>&[.#lI\T  +.ZH-eQ""<_*@F>FfMv 9r:X!@XV0zW'@GUgsҖBi5kV1fٲ(2;;m;TR[lWW>6p.zٳk3yZ'@k:{-60SS fʥ,] Ο׾M_l7^Es,SS3lذ)lKy騑>Z3y Ff[{LzL˪+QX`= LJV #CGAt4H9M&$~C\&:V/HQM.fR!([76rnӒg,[]JHLX0tC*a)]8ڛŴ!,0l KӲp%$ X!5Se!,fH#1LFA+@ id)gHg'b +gF&R@(G>1' FJ&ē J-ZHsKlsBiEGP() 000>짭[&pXu֐Ndl٦ td*AgW-44DSsfCZ옅U0-BE}HS$9z'FvPop[pqV\awK%lfӻy(ʄA97hٳf=e^׿,wz{pR ֬_ҋIMOf8D& \BN[{W_{9]r>C?x ?ٷA?dp(_24ttHR<}\rf.bNR*eQQBXJ9_y?Mݤшs/)NʧS}{XTTxS]ݐ,ךSVZU qUj)sB@EYT* E(  LCڋƎ%@b`X&F0 |S3ր0L|_aqOTJ!'ЁI`1JU_j<"ZD4O4 I!FV(TP=!:00bY&D`:M#3(H0s+HEfrCnGDID&СWnP~ "]01eL@>`$;RiXJIx&nG1I/Z  x6~A&ĴRx8ImQ)t`B&)MU4A%Q ,14k֭fffRҐ;-$LR.BpBZ[[1MT*X.LK\q!X iXmۮgqA2 pT*onu]2)VfVut29-&zbfzN .}{66{mm-d3)Ǧdٱ\kJ!9t3\EsNz{{)lڸ x쑭l8{i7!m8aR*hʶ"ftx^G`6''-ٰa-CJ9F\WD/ԒPʰpQK+#$7nlabj훼ౣlٲr+^az/ꧽ#CETaXݪDFkM"co{%|1D'Ae z*NMGd/GY3}[:܆j/.Z:wBN-=s}OWvs5 'oTR~ҿ d*!!l85:"\6aո7zESK%CJlێқkCTz )^уJ2i !@H᠂B L+[g(L[(MŽʊBͰP88IWo|CXHKGemUϷʢ8'Iy 0J@+Yf+Dw-C+%hF&*ؠQ{DH`1t(hgj,O"t#(٤eB^ID #xɱ3,oC/ Ba*Y fbezzB-BPbxdUk0,Iq&f&{)QHҊJW "RX|(֍e5jDǫ<1yɨM"YLko|3C?s÷? RƈMRSVR) r ضMssd2Nww'Bh*TnɤFJ҂8q$Zk* yRJ,²hQcjY4)HT*u6r<*q588ƍm#G12zˊ̬\x޽h3H& bppUV2>wyܹ;wH$y #Jз/|᳼]o7^E__/rr٥\.3</J00ny-۶'bbz0 V8ZJx,Y+$ɐL&Ro ,YIv?=ރpqr|{eߞdYraD Ɣd,XuTeS+ !<ϫh\²Mz`'ذl +Wddd---<#,Y;IJ VXlqmb 8˗/gݻK"djb )%uoNte>ɉ)ZZZb8Ñ'@ T:JWW'FY@0mްi#TѪgEOOL!flRK, _5+VeCYQ>{Gx39>8r h$Yb9~g>G8+(ޯ]tW F-o'ḢZiL~jډ~>^ 'r˳SmeAkT*գj)Q_^;ǧSXHY xuծxxs@6Uh$϶vl.N2KAӫj4P)*t*EC |w@BLL!Ő&Ra،vUvCSE<9+ߡTiëĈ|+I < 2.E)D0)#}&%+T1`tZCɉ5 ur0,‰C>XNZ'FITlI&&&YrexliX=)L Tc9ct%bM~qR8)h5S ! +dpg#0gt:KrC{mm`S}-M,mneQV>|A: ǶA ͼ)RC'*nAWoeI6cM4:f+D{Д>ȇ|iVw\'Q,Uظy9 56!R6 4UR΅7цtՇ 棼_<13,t$S1tS>-aeͨvjd2 F__!l$uH[[+!"ИeY$I:;;q0S_#o "2΍6:5Ost:mXUVɤ BL&>hoocjy4eGFGG9p###8qJe166F\&N0==MKK ǎ;LMMq1FI&(|*nX4#)}yDe|?X_5q_B>bZqvvLCcNFcG-Sk>W'VojiCRje-u֎c{cZg/RGm^֦?[WM%H3弿OFd3' CDD}#": C&8v8&Úc`z:4LJ\Ie ;w՘"|" +rp`0 P<B~1~]h/{L|>Wv7CrfHCRqc۷[$z߱"ʴ?0'عg{b;n;?(011lǴc !&V뻙(ϸ3d@B?/quqo߽8NB!|{vqE 171!2|ͣL01YiwAݧI`r+_-8vl3y?yU|lytJ)5L[J*6~q1O<9E_# {IL "hy`Xx +.0ݶbwܡc)(=iZⲫ]LGW*(_0Gi #2&H#ZH(PUՁB@icod<13ZQ ҷ~z7Ikk }t M̈a}}d3-KO~'hʴeOp#رme;1F2d||%Kԕ>^xcfgfn!4c\p%;1B"wqk7!+s/CYqM|31q(7]|)59x -q*94 *Z qpԉa?IMYju7b(O&R^Pu}:vA#i{FTFMSbԸL0SCO9jo'Z36i4(!t-BH2N-zIkUt}9!{.\Gi%B4Eݿ'Zt*HH@inT^C}Cj ayJ$ؽȟ|+$]X~f.n&|r0*I~Z -b)`|ȁּa)f8nf,TXiͬ8YYs|0= :<(LNN!xa۶mAς.?V\ƹ[52MT*\.(<''ܐV뮿kWD' b׾= ӟ4X޽\q}c,_~l֖V"4ynv`bjo}_Y ֳq,]D"isMo}(%(x?[n8#SHiae#t@:Ĵ$;3ydv5xpEX6:`3ؽ_P d;c.4e`6/EKW&H7/vIqMq˙)NmRq= 0[߾JD3N(\Q"cfYqzHGς@%%$[tOu~2@ d\lEW}ة4Ns^Wϕ񥅫=DLmiX 8r<).vl ;IU턄o,X`qB3 6M,ypBb q8c&8i;c4K\D^ce{6&E͠,\xIDY`(Cܞ $0IiH%kֵ} eMq:29-s\0 H&2*S srC !0ĒSʹyeXҎǙ6ycgNm44?J_*;va~ YE___1 f<ϫg:cS?ޟ.\։SJCZ|jeVXM:&Ns,ڲ\r\|LMMpaǏՁaJ#E21Ŋ>I묏&RXh>*Y&f֘ (M|"RSֆ%/UF/͏ 5̯Y}<j럜!+zD[Ymr6)99/ռ롦rյ $D}ҨQJ#9OgR9 mg` "ʢ;0Lf0M}lyj+L1G J<==1Ē&Wp]}38)fQid6Ny@2#YvɦڞHL̒j`H7g(ghoqw!N LG$5@Zeںt-t^Cs"˴^$ |#gJo4M,BGV0/FX&FUkٿ^/"^開.x~o\G6N6|o6|֦p,8;aa~d&p^̛@??{m{t:eYdxL>[N֋ r0?ۤJor?}RU3reH$YE]SM;OG4{q"FSNlfbbriK2$HP,Tض ,+iZ`UR.{yۮGkM"`vvX~=[ne՘7Ձiʪoe4QgT,S*UGҜLa7zJ|_s`~]wCǸAٰ'|k2==_|KZO{;)gmT*M\avH!8q&iiigA'V HH{FvLcٽwBB -@ Emn@i) "ar\fu[Z_;uujS-Tdzn9䕅~LuL$:N_{J)x)wtJY6@Uk~wN3`f'H¯TR,RIn'BvB[;ɻs%?1fNΛc\{" #m=ƍ:{1i\ȶGF\laכbْ~Fs?8=pPvGȤ[9A:4kJtP;,ްP J%@ʐBntPAurOs/8\uXvHxJ:he@kɍ7-y~לA/y:qf@Ɔuf KEa+3\<˞N_}?~17vu3R}5Vӭ]\B Acyj{/cV<'&]ظ±c(Ob&s4%|\7n]]TP'~3|7FЍ=#L3Ƕ3::Ux;F,#0:2NB." 3eNʼnls9| rM7aYwy'9ro|(T*Z0MD"= җxQ fs3=fB𖷼#GBo_GҔL1Ð@Fh 0C%$ljF5A jaF(A~`i/Bww`B @G䐨I%wj$Y!Mt#9+Kz>L_B^L0 H f òȕl{Ϗe]pl-rH+`|JihEF5HS d0 t ,b;ϫ`iJE-!bj ;.p .N- B כqEXLo.fƦp)LCaqT{Ω>>0 ;(# 25Jp߲DQ=&1QD%cb=?,8Y}nuSaQWw߮:uԩs>|m\P9>J8 2laʊFA6Maꓣ, dD ,&i3L 7 ą&K'+HyJ87J JR|<$%EY:zkRL.dUOپɱ>|Z yIRbM )*-\ Q0-OfX Cq># i)Dž"=4'02O1Rwۨ4 h6YW:ϜЈx$0YFD-b}{տ 438Lk-V@QU4 x ^9j%Fs] q.ǵA ȡ0MދN S*Ð`޺&}e M#cv_G Gu* TևGEu &U~ս{a"$kA{HGO@HN!*>u{= LjG} lƼY`ʋAq$(E  o-}Jk.n«^Jz{{2YgѢTYH+CZO{ng不ñ-g֝2[lcմ,[v i&,'INqi[x}j5J\J\f= RTػw/Zwō7AbY#8$("`r2(AA@0MHKH z ^>`tt@#ƃxƫxD₭W-L8Q⹕E !Diu>v)ĕI^\)%O16TDfH meSJBkm}+U.u&c@3q&Z$)ȭU2RÆ#x~FķH% NiJJRf:6(ӆ/Q|3a׋P"|\m;_kPמoLэKs1g2kVW(X/ƀAYp<4Jܬubσ՚?cyq_]W/swC{wseIB@D0I+JjI=$y[w~;j) Y.hzM38 E G?/}̛!C]$!~dtp5k9z3guvbʕL26VSWŋrJtӍ%/K/c|b#ۼy3_}8Lz{LLL0{`G )Z.8<1~ocAM6,YDC?ڴdւn P\޵=sΥQoaǎSR)'2f1:6AV*j^s . .x!ѿ$eez l ٢>nvlaQ6<&HHٱD|I~s!H*"#Aj5a|2TˣTb͋S#w^Qwro5IÑh EX {}Gm>ЙЋDhG.8̛=Χu?/1u`F4BL ]oz$-1wC;E oMpF%4R4Z%$c} B)dDX[LEBZ\ol.<$PIwt21v$IT<&%ID@iDDi)!^=(C̪lRbscr  ^(PTb7[x<r )K!ČY:8lãt o@/I 9J4^l\P ň{@cplw(Bc #6e{9ZZ:Llth#Qў(t;Нr%qJb>41!ftԔS/i7-r =Ā6$-K'NZMmT+7HO=\`7EC~:2ĕpTF+ IDATE ,0(ՌbrgDAz[e\"m!` ~Yg2pکX&ݽp)tMS1zmlfB&a7K4k%BXCFUHK IoȤ[ed^Ny҅Ag uoqq٥I*Vks\ZOݯv< _hc냤){YÛ;kW|f5<~YqOnSNhP*Uj[{sK_0l`rr͛$3 FF26o~%K`Lj&Io-k҃{+Z U` 1*B0859bJcfKdR=yV)4/rDkMLC4>xTZMZP1 -AI8A$n 0E0RLly{FDƅR *U S rp}6$*C&3ssbR)ji_Zџ&uJSGTF*&Hqԉ=$Z>w1ƕW^E܇ 6i䄰CwΝw0 gĩ'w+o~޻~G,Z{Vܹs[͛7Ӳ9.`,Xd͚g}xz_Pj&j5J}={)7܏-]x!cuWBdy`f$pޞnp 2TO?6kMF@/QO1SKM U97Q'ņ4ȃO,m25 5ERNy[^e,d(/Ӵtr?׿%jID첔?\[Nx4q㰼wނ EÁ3Tv]O>/puA!z=bl#-)x'ݬ xp.&D̀>D%RԦ%M@ o5Lc耷 HDŽ,xmZ^V-bV0Iiա9*"417e{n EV( Cbi˙YW%mIBq|6.XDt))*z Iy㉣4ZiĘ(*("E(D$2vBFO <4h03Ţqq)7CRMU}ׂ\B111cR mBbyhOfd˿13eF)-2%CCp6g&}4s!X2ɬb+^Po:xtp0?{wޑ9IxNUIt8xOxO9w'ussbL*U2 ר#.| q`qy[oZ ~ܻj L)O-u7|gu|k陳uJƳ׬ӏcg5Ne$)Aqzqn(F%۠§^tϬ4iQk.NL@W5o7bgo{.0aiFA1?Ԥ%Fh+˛~d OS,=nG PpTxt{.)!Lc]n\phϱ#xkZfpkڳ9Aے@$ff.GG:1\*&1n1CU vT)SgQS}Cc< x!JhR$8BXFuZ\[Wx ]e\4:udӢ^M>`-(#o*2D/`߃Æs? ε;Q_秷͢ʗLq% ̞zxn'-z'j&Vz7o{Hh'B/P1ogj{Jzyo^d,-$)iZFDCk8Vk׮/})ig^..6mwͮ]h44M,aѢ̚5s0>>W_g?YOラo17|+vbgqܪU,_KhqTPw~5lݺ$I;1kF]+TU[%dB.]9Mb44+Cm{~c\|rͷgN$>1x'1Zv˥v9ysG>F<¬|?yg=%x.ӔP")ʕAR̮o}ob?_6APRB]-$(^&$06yg?[V!4'HHsZZKS?/ [--rO $#RLSDG>cVG2e|,ǣ Sx1~ۄR1 cԴ~! ]aQ*NCĿ<޹Bn::Z2Z+V`6Gj3#CƷ=ohC&C@\F#<Tt`a$mdZ>^~5k6TRԝ4HzmEh2L.xue%x|^|QB٩wh}W *[w&M)wC;L^]_誟6+8wfcF6K|'/d&jHoX6t٬kwN:O~|cu={n#v=5(B$@hֹʫM%+&z{| YXw!!ѣGxs,^rZ6^ղW'w߿c.g6ABZf11b۶Tq,_FӬ5Qʀ*qM[ p}bwq|_ơ|axxg? .\^mL–/~1:ԛ58Yz߿ϟϖ-?;vlK=},{#I˴rx=ܵA Y,Z% 'ٲi3V8frZEn=X+PTF1QBflƗ -\IP"-&|gϟKff h APdѤ%9';c`?E*)DIi|n0`E\ng X;0tއÀ^wrN퓣/QZ?Ȼt W=?tqnXAjOa@D+/諃*.!(ł(I݂།Eუjii)F("C(D3OΜƘ칋a`4BE'iQ/r(&)E ur"4w{$ѴZxb=uO 6 &h3aNLLIr#h%)ev2 (6:^ژa•Rф`Ws)RQh7%+Ⱥ#<3qT 4 J{gGi .'r>Hji+?xw ֬YC__\pOsUWqꩧy!P `wIx_dӜ5/<mVKZ>(ex/k}{˖-_:o~?/tHCS% KTŐO/( J3񳇨q@B }(S_+] 眊kznT#f>x4McٲelذŋCAzҗʪUǰ91JKqɫ;٬&)o80֚ZIj$;v"+WY`>߼TJ*1WpI'q׆Vs?fll~N?n.,YO~r'c۶]XF <,X6}|翿]Fk $J'|lbV|O>!g gYJNvk-I3!ܲ}V* Og]A / C˜uyEoflzG*V<[3>_fR㿾E2=*iA//{R: Eh&C G|me)qZIm}Wv6Onp߮6Dv[:T|M~G=.#%8ɭhsC!x`SD_$-kɲ .D Ui3*hVYYIܙuK|#5!(*XND.Y[):r* &F V+f2(2enKD()(hڠ/M%t"Õ 6(1h3P#\#Beڌv{%80(}{DyL߭ztG ɲ,YXK.m)] b;2$%E(h_IIIc'ә'4nLcrJ=Fiü!z{z ^.zzzظq#VJJ__Z|E={D#oy͔'1@[߯+{ȇ"?!f8r-3{l>O~zsJ%b&F qϺy91;3s jOM>_٬вZ\V|W^uyIVQH\MRs碔e!fkzz{unmAbll}zTJi[7OayI gCdΝ?‚ Xn Lk]0O:˾{?g6o{z͂y صk'sob=Yf s<"000@)+QTشi3=\V^Eoo+B&,;KQ !^yn_&7tr3qgًJl6@9$+xs]T裞Ȇry~fUds蚏!9&N^ǿL B WzX}Yx^㥁@=M4xo _4bA##SʮDf;:+2,qګn#5oRއ1GA~躷]l@QqkCsvKڤxx%p9Qq kLݑK$i[niH]D֚)tb4Z(pE[*e: Pڿ?lw7%/-D $PmSobw|<֝:Wt@< 8Vbu6LM{}wр +f8$M8fOVߗ }'ĮǮD>{wRq3::w]S1zXuz61B5M9fJ.|9-FeGȏ)b 9jwir˿Y)W[E1b;F';b( <6d6R3+CN>,?WWWm梷W[o!C8:Z2::ʒh4 rEoO?s,drmvîٻ{ =mEfvl޴9sr}#Yl980NVg޼y c=}y >c#M 3v`WKȁe<{H3kƋ_"̛?sYX{89-Zi6h5k<k(g%.sgp$iJzW ʕ͟({ o|c vn{HJD%R:^@TlR[.th {* B61IkȺcWW潏y"(1n{x Iq3f< ڠWqͅ(G IDATSetiƔK-vT]cLC{c]wpB#cf9.6U\**4fJ+Li f/f$`3q6 Eya#=Ӎgs&kxɲ -g}6{~eZA41Qm[<~A@髒OwVD@OLG|4 RFoo/dY 7'իZ4"޽;ZjbG[P֡l`h %i g~P8&uu^.I>$gHBmr]Qu@i$K.f=,^7j5!YK,g?0y;7Ĝs(%]K ,;Eޞ{T4 |ɲYs1٨e* o;V}l!̚gw[dqU6mF@?YF в9&IVerƚyū^ &1zNoo?jX>/Әsiw>lu? (COo/cc@ٜ}YJ۶%)sOـ:C;,c0A1x}*ׯzq09ܓ+.CZD-)34^rUCH*ʷaKɝPK8Mߙ/^^BOj<= +mo.cџ#W{یG/h* \0Asvꋟ V 9N`y=11u†p=HͶTy1@?j"! L1.n?u)6ELJTy[Nyu][k~X⌊D0@KUH|)>{.k Lv0~EZʔ^ ha̷%`~QAutLiE@BSPvLu'Nq+XSUi غ͟9N_~lSbuJE~QcaBhVJl_[fh̚JK 6+p\ tGў0h-,(t6Ku!t, ,z8s8/sDC@x_omy=t>d0: ҧ,EdrA, Z)xmHW? ]ϐ*8Y/F:m]&ȺKv$]d70}i'jjع lA]mIsYilCI :n:ژŸp9ڠ. @N+Q !zۥ$m䶅9xPv!9Oyugx"Qd \;8M:9U=z 9 袒T*ꆋ޻I״޽k@P2 CCL7T9qꭷdǧ:Nøl&U(H8b4SŶ0$,+.{+5+) j~R-v-twvrOGebb>N gJK0{OP j?wϖ-(|0{Ƕ['?O>ʕ+ƍ" 2a_`끢sq￿H{G]Qb12heSmLy R 2VJ87Yzf<"o퀚ʜjQduM4g$4D݇IH P|xbLuL>u;C?;%Rcb7&RJ%)Iܳ$:]r?iuLJqG}W[&&n|mM0EgZX,L"EJFZ #lcZ'HCcaΉOaDQH!БK|k9A;ux>$nXmI ׷zEGa}T% 1mDNQ`% 0a_ zH- UVX'QV"dw *)*,>T*9ƍ @!-P™K+!hK"#:&/I A Pv + &qx44bѡC?^$(f+]G#?cwc֭|K_K/W\qA044DšՇ b,b DB9c'*|暫}ⲷ2aI#U?__}o~\z%E.wST( ԄQ,{z epQdG'CBh(Ē !$:-|=o&(PAoo/Bzzz5c6<###Xk)| ,cmlذ;v>,\6oL^gϞ=̝ GG)˄aG{{;vxl޾c9ضu+]^Q |01}<{G%o~i 4[vVr_}ck5;k,D#-`hغe;]]]twwcCPTf},' TU-[5y5}Gӳq'x <wIOO7ߣ;|+D!EHTS7c.aǶmr O=Ãx2QhLR*,>$JQ0e'Yɘ0p\p,_ |O΍`BGGGj&q7!$ KdyoMo Tob2:LVeyHٹs;w=رtd4U2dyG߇ zzY1l$=rf8R?gub=d_5CC{9s&q}sg222֚WyJ]۷D8)? ѿU>BVeM,>(v^xѵq?_r Y)xjHP?*k&uyG/VBe~qW8&b"h$~^qin K::Sht2S@q2 gj{fR^pFT ܐ K`3@ 1U ku"ʁ !fB40*;ѨȕJ~Ld!q7MJ6)1R9Q ǎI3=TZ6Iϵά&R+3jN4yȝ/*Dh!Mՙ5e9>(7ZdY M=vɤtI%4$ls!x6Q[ DԐR:ClcƠ̏||/gt J{Y(PjHh%]d=XcށA>ZAS`ҙ#߿Y>/D~L@ʙN h?Rk8VHW92bѽR{۾_Ð$ F[8aGCjfW"ڈ0?H?tyr Z~m]ԵWBOg;ԥ̐`$̘l߽cO^0r1"WOp)pƊxdՓJܲ?2:cccat;W_C^/Y=3gc`. bTC$Q-*F4>V|A\oTF <ɏCnXo Z&@<(]򛜄GM~&_D. hh~:ol;%=L%K9Dnj1٘me1=~&Czj@ed< 4(b׮?~p/ 4ɳ۳6,63<ρLeSEZߩM?tK\d:,KkLqNcdM H+S2wdU֌1Js'J:$t?'L/bplrW^!`" JBkK դ{^9 ?h,mS_~S C,*a1\+!Ȕrp'ii &4b@4?aOYGTn&<(bFO$ԕ3^ib -Q_͏xRRP%a|1Fc>jFKN E{^nJ_lrQ عs'twwS,Kv3::Nʛkٽ{7Q舓aZpwYt1JQb޼tMJ%<ϣZJP}d5lGԚ'uZݧg3fr)'>>Yc9P&ش.6mҥK}'z)RK%~V-]B^ԓOQ'F?x֭cƍ̚(7nf bQ yܻ]c"?5}܀9N̴70%fn#Od5H80x|)nBĚ^Z76̀ЁM4fJl:B*tcNF$])X#2NZHH `xZSP"ϭKG${} Q~ &4U(M][S9!m;JIyc3*BPD1h5\_a7)MI%aC%yhrX0 1HOmk>])^<`$N(;&3Z'IVLʾKIX^~v]@JGrd ff0~'!c1}cxS`K9+YlXҺr6ʣ^x~Ƭm̵I$ &ar/(ؗԉbb0n,fQu0&9nA#"p O=Iy}O s2Na^Z;ؼu(-Beسg/w\ɺuXb{,o^q}h"8& CZ[[ Z!='\Mu]\zhm+sqGW2o}%MŋseH)_DIɧ=;֭۱V8Gp_[ ~ _#|G]O~U <>ql˗RU|9&Cz{ټlW̠u$U Ϫ"U55/9/pR|RZ zͱ}5g0 Y9TʕJx&Ia.–R F#G 6{ƱEMct^mh+1wĕ(恅֚ZėIIM@>0)1R PDG1RXLOU] iܷ1J !66DF)бA&Y'-oim~̠>SJ9Ϥi6Q}*?VSq1Wβ&R)O\OT=ۚ4{Y&ۦLnAb#w nIv>?sү& BR]DamhH{|,& $r4ixŐ6@SEgw )P83!JT塔1:;MJ!D„$ 5h=w&IRvVJ2Ƹny@ⒶfzrJYGچ 4(bΐXn4ry  ՟}ZzQMjMOP({WI,"[B Ah!Vt@ )}U1}IN)TThl ޞKt>~\i=R#/X+Te@O'ZJV&G8| V8PPa16FBe%H֙UVZK?aB/WJ!'"" RQ.jժl`֭[tt{`7zaV=/cŊb~7g(mE;$+8fQؾ! ]qtuv5'\;~ͣ>+^rlXY,9]Y:^qrgsyfzyaj/(11ZPRn[V)uY,^Ǽ 7{c]~~kg * ~O'|߻\|hIyva(cމ]~j` @hI "t?Enal {p׾XCig=^en&)eYi:2ѼsLvgME"~@ 8)tR`n)w̋1N)lo'Y TH ٧Dj%(jec]*5omr~I,rer6M )q7&O P5O?y`H#?g)>ρ.y4sdccҨ1!cS`ۤJlTU`Vʨ|\7_<Жhh1%C&rBc J$6y2a5g9]|;l(N'5^<]gKjzJx_@IH,r\,S.}W ByD&Җ(%htlRdTjɽ$/p>"{Xi`J--mIPJ:7QR2'Ң葾 @>Fi!/4Xf%j% A(#(=݁6i/0q ^)20^o_*Yb(KCQ>QAxs {9!“Mm&GU<4qXϲU}mO1 2a`|ZpAP, ÈVvիT }֮]gy&s--ozB|_z^v x{ #p]wu.|B }XM^ ɺR-]R0Xtq  UG(HjA5Mw#=I7uTw16YB"6ZbsZ[Xlu7ͷn׿ xcx(4O0aQX(,E)FuN=Hp)xK83 eFѴR ^:fm=]/ uLl ~U^v;+nߟbKQxOcgўRH~!`RCE£"4B9|,a~gl¡IQ5;6uֆXx9]Jb1T*vlA[[qS ϟό3b̙tvvF{{;w.cbb?ϹW05JcN,YbZزe'|QVfpp7,]6,YBZc>ݻ=k6l`QGR.7__{>- 9St;6roҊ /[Qp˭s'S C>J2G̟CK[+K.a^rƒ-wPe~l Ul1/z#"+|7)O5zǩMhk1Pְ+xR=/pa42˩#b :{嶕lܴ0۲ *;`tl#yUùIrٕ՛i <+Zjt Fx $RX\ٸzQ5(x*QM!$ld1aq )<BZlE%NdǗy)%I)~>9XОLe$ʁ3R!p}smORJwe`m1H<̤= MtRyJ|<14P 6u9?E<`nO~2שP'O)%zȩUb/+`ʕ~\uU|ellZFX$ JwkG"wJZ(kzʉlz 6 laͮFO;=t|L'iMZo``UVGcJ> rWrR,]%%ܻw`ң|}E Xo4ZX2-8ae D/}Z /y3_(JB7s! VHQP+ѧ@!ST2 mP@JۑR2g<{֮݀V7w ]vΠΏ/#c{/{#XSصRctdeˎF1OnB+}=|©̛7 -I{kpby ZZJ==#QK-|[WS a9*UXv KW zzgS*Xh1##\wo-:(A0k,m܈_$ C^vذ~۷ne>nu%>p.0 L"O0m= 娅8M|?`f|.j#@'w KYg}FDRH@]6?"57(hxU4|!y<$ 8pϩ^"fO#CMXcf~O}t[>uĤw$8O&ةf7|Ry%;6ulT6c@Fi+`ss|xtYꓗZ告>%%~OS;d~w)<2br27I!=AbM`<T$1ˆ*27B_RC) A SƕJmG 4q@uwƤG 2ҙIl[;/4' 6+LU>R 42aXKT"l>_7׾'L <оο*mI7bQ+:9xUܶ [ʔvY*k ӊ!!'%Xftv1k,>?Aoggtwc&tJ r XGl53goE1?.*߿I'h-Vhxz;9aEJmw^~1+>~wRň*s qFf|uRjN)ZOZc׮],[U՘5k۶m3c;wR,gk֭ꐷj61NQL/AEPᣅct(^ ZKHp9ݫad_fON{{{6I(dhhNx?3f06Vay)x9k&woBX~hoogY :(6oC.}[Dsj/׿RFF,?z +8f2^vI"a1Khh IDATVx@H @(q$?8 7I',\qlIgo;o0=] "6m#b``z:04R*N;4fdxhK/% cB 5O_%/h!R0 !p=Z('5+6h|c2%}5,;Г=XjpnӶ>Ρ79ϝqv3s?/h?rhT! q4*giEZK""cs{IR(ȫpfLi0f`m?c0M>Oc&bcl=!ٶNgF1A5yZ`Mtûx葵6̦mtkyEsұm̞ёTH`=p=1\h%Bxg†I]kf]6& @:^RyuT b́?$k<`ºRddJ!W,5΁K6WPK񳌁1NhB1EL1 M>!Se{ [Jlnÿja̚57&(pF3IR*9_ }gcKސ\'HVh vgѤɞ5X 2at8Yϳ192no\yɓ|~0):UYϬؤiu`s72Vp0 OeUJAg,uDQ0g~yYMRWHt!2損clly *dDoٽVr z:&ep L]E_[<_"))yijJ&2%*)`Aۗ^@am1ɓOMp '5aΘhG|aQaO%fxG=\ټc_P~L#e ]3xA;X?(^ԫ5~kOMοE91r1WHMl@dEjֺU5 )&P^Q?)Ixa=Lo55~#qރ?\%h,KIJ J#PCZ(iAM!2,1˗pԂetOXh1RZغK3;v+F[ud!V\tEqׯ/?{gIU9Uu۹gzrdHN "QALku55\E_uue5b!/A00fɡs9?2ҟy]]:u<<-xi N_F: 9"ƄAB6I)2ll17n}8'е /[nc]xvw}Z>-T*e8 ~azGy=S+%t4L ePJ+LM _gXxOlj:lsQ!:r_â},y> މ%2I swIg߈K9WvbSMi_ڛp_UQ5(4PxXVNiMdbS`1 evg\* 'vJ=BHȸ^<ĢͶ~Ug&)?$T3F#ƣp4ewo׭zIq1Z R͸\fr)( E4ZpƖ,2l:.kQӺK5 aoŴkMnO\2&BǰR凜kK%"cy$"H9 \g HI)RΗnbH ~11[}K10- ݻƭ[(o{|ك|Bzzz(J(?8[l _`!F+ 1dh\FKWqIJ:4{1#aT*U?p"7tJ&(:/<[eA:Zq6oCi˵x"l݈A T,`#|UE{^)!&MttؒD|)%JfqCCCCCC0{l͊˹뮻hll"m@)Eww/]3zw@Ĕg%L {K,bgcX`ATV*f hhnȑDI*p"(°|I$J”f=4{+榛b)jwnfN?~)LҎJi@h08#B|aR,غu;?O[ds"0ﵶ19 f^&J[ؒ~%#pNtV^251{%6v׫&R¹ɽL?gI^+D\.o,\hm/rw25GZ$)cp^VU0Aj i 6`OM'>vJrj.XqRL)ȴR)'FŅFe'c U%ɢָ&/Z\q#45-/6 Ijậ@zlJ$:^c֫=&@OXb3P,2Ba=?_R%sؑG޽{Zsr[o~3r\j/dj!+Zw7o?V-YȆMh6c]]h/CXW~chhr=\||fXN518<75i 0v=x+FCgPfjDL-N_KJťkoH|Bo|'zH료њ&Ik Yqm _!%`I?U luSTr5P6ehhk ֔)S*l߾>c9 ---|ӟ@X9dRz)Sg,ZbL֘3 6!WO9_ڹ7.4yYQ8*TRbD4͌ő|crGI-Lҁ S,2o=h2.Bڕm"r-tE9 J66OHg$wIx9}}ۧ~, `>Qo<\cբ`u nR-DdamkTJg\\ڃӉ yڝXI c)e#d&R*bHLMHDB: qMz ֭ޭ1]"VӮQJtbvnmy5R?mS aÐY  +Yzz$OR;?v6o3T=\scgi?n&udHGH[^?=2׎z?imK,)6O ʱb@M4K: ݫmuehX vգ8cx]h  h" =*h4;Rdݥ'(F*Ii>f<>|VX?y8 ̛ݻ978ApKUL~& PK1qƇyͲP( m 3g۵w2+Ѷ;q6{cu#W<5k 6pwپ}-KmfZ50DPQ[Pa4|B)efLjq$ՠLa8V<2 O@KBDqe.S`͚5,XqXa={ikkTpAuV:;;ٶm-M̛75eK3m Vbq;l\%DCLVn6I1Ryq%^ԩ̙>fʥ&(a98BbB-Yޮ.<%,9hOńk%3g`@?Zk**m$NBb: R~{#?̿rHk[[48Na *3Ԭ KQH+Q!iD+{Z9EN+E6SZ2*o |m,{v1utxp-0t"d2 ~TژkZ hkX,ք@T&qk }}}Ld=J6qu|C\ujN>dwK"Vz2cƴ8KFo/{X(ӑho}' xۖ"}*U[MtM ^A$=J+h"^Q1M>!)@٧ۻ(lVYJqfNyu\W y2u(ZAs=P4&'h+l\\ ÀaO-4zY \jL{xKjmlJ8* jp]aW_{$:`X3gyV<  T+$Dp!39^3!+4VXBf3^_l""`V+.%S)Wټy3ӦMcڴiٳ9dɒ%l߾) uk\epx 5m.tML6//P(hmmP(8yr&hA] ߘwue?Ꮬֆe.|dYd \8SOfԩTUrK__LhQJblhC_0O>$L)y;K"ed>44ķ-F e ~z£0<sغm'/ߎD˙a44c]ŕ?̨3D 8҉H5$.YX~"*V ##ycP%]UcJYg"JΞ> +ZGה2O}\k ðY%HXmfn0W\q'Yim)} \Upuq<+\1ij'{ݙ| IDAT#\q}ء&*$XAdh%@[JH*L%X=:B]2UK [ke Ɓ;s 0p4/HHs W }<"g6]u&^b΂Ki#K'rk-ywﮉ2;Þ={Hɓ'l+V͛9k6vc@da MMMedr bl>.N=TV\ɓ7r_›F~uAZ D`)8,Y9Å^H4ⓔ%^8-qKLuL̒.K^&؉@zZ8In卵":i/OP8r/fU6 <#&"1H]4N:~[S(=?đǽ!d`"ĥjzӹ~v^ڹ!r` BHkVE ض=Q.4y{wb1cRmvK@LH&!FB?ք` Q,b-PX"E}\JX]ʍ h" ivliO_ʭ#@0]x_?sZ(*BHeM#J߼xLd]G N+7D})T+~Dw/AH[*BJc#Sd (K8Jy.9'GP@T- #=luHAU 08<N: ׍@R̯/ !wssNnc"{0i$:;; C͆ _KR*9 _e˸æ'6?SN9;e#ev/:@}l+V`pp0dXⴓOa'/B:E~_yԝ 63dtjx,T?NEukF!#yjq"]T"7Wd%*JuQ %0yԺ49Jʨ9as\WNޫ鷈ټD&i3sDV8i A*ĄY,+,lo 7<%9g`mO T+ܵ*cêeZY >_ᇭ 4F֮}O: Ё!Gh3 ,9իbLlő+qB"DD.BJk0¢:"ZsߤRr]74*KZ\!sʩ lGex)gϘqX}M1Kk19HRx4Pʻ`FHH72pfn6t4/"A!"V#7㏧!*AKN}:)K8.hbr~.&H@1j['~? u ǫ&;$e!cEc)/}<fvMޯarl@t.#]mdYGc?+X{1B.Z)T*Ѫe{v тiҞJQK8[gzmLH Ō{Θ}dadb0J<H>՞DH @I1!]KY5oV|3of2A0Pw97C=2 7@S@woN>N3x_-46H@S*˚ITJEWmy{uql#3E‰)uaJFT:jh75͓Qlx4N+2dҮDϞΕٸ5H"!gC{GʱLtLqoIXE ['_)NL?Rc} bR"Be hѕ<k Udǰ_AdF_ha#bLz9^j~\HGZEkM.# jyT*e CZXP *UU QTL}dp"1@uJ%,JVF Q")B`grY x6źfG^IƮL$9UJS8D`=|60#(FHGPUl&b?+B*BVhGb/894zB2 QVصkr{﹓/cеm7[wbٱuZςOriP)[238a?(^ƥ;Y4b֯_ϬYhnnRRT?>\G6mI__5ajZV5\RV/54xƆ,|[g!q7d)A~#e]鈴C;IwYl)7ȡjؼk/LK~)MTÐb?~\Jw ̢իv~ӟdqƼsbuH8Mgq7({"xBz?A6&d?jD5@+ŕzx& 3ؿqh1-j ܖF1FH:i-(O4j@1$8rd0viA2FԘ"(J/bt阵c{\Bï4ˮ|̙ƒ&DZ$d]tsJ::qd#`;7qUWn`='z"~u10ԃi`̙< zn頍x5lHR2~X#2.NJp>Y+m8NĤa[h&dCqlƑ*ZPx&&6+K1{.  s-&"<튪s|L@oX(h;-]ʰ`,&a,,p!h-J*P$e{xJX-J* {.ZknF=8nf.Xz 5?()h o}b3p簵Tf +zn㐳휌5=gz`FwZkj.Bٶm_׹k븤Șr:?=)? e?$"p%UwPr`PSiqIDRKt#ld(ǟJіn I g>xr2 G"$ !̜>iS;931Vpࠃbp3M E2x}9i:|CW]S. Y[7O|^|1qQ *9/hzdw`[_OL86R\`q:9gTP/1v~qu?U$IIiX4IG):bIRgc Z[hkjΦR, ڐ?JbP'pcp\7H1Y1G֜sc7)3^ЦETRb8jꌹ ?")7v,СD KLԁlAczlKOOU0DJzi 5x{.,Ktۥ1^7 6֑F {ҏl=S1wJ2 x*6_1M>!&4mif5/.6o9~1<<̱KGGs_"gXO֠#u|[?Önc6;WM!E4x~,^.;+c95f?1_җ{YDU[@>RRڀWqŗ1iS(!\[4!A?̢ER[ٳ7~:CI'ʦM+ilogч`iSgPa5,}}}TUOfL6nbڵ,_u3gBHA|>GƝw (GՒduͼܷe˗smw`E Ass%zs5?%Ko~~is\{ռ]#?hy9O\_u8R#]\} < E4h1+ - e|H^D;:jnG'ޏr>3Cbr$R17<#MJI5i*I&ZkT&ԞZUR\Jڶ)&PF\Ϝ(%]D/"wӄ#9o9iB`\z[soYI~R~i@hB yBm|%u,\CXQg ;qs]<% A82BǠ([!;V*ABbd8`GD}F$3`iS=e?Kv Jsr_O'VD2pJm" |RfձoW߀lp>\tE|͔eO>9/dضmEACiGBqN'G|`9|j>)yZݻwyǿۿ8\tE|_gddkP Hm9-d])8~*w5e2Z oh 9?'ᗾÏbOEg\2γw{!k" gw7Sd[eҤ,v },_yaY`6Ͼ5V?Zچ'|[!$&F!D#\ㆼ]&TعkxWRB. c4|L.b;h |r)t4Yp!-L4tLbr[;-jLz  ), L簥 |/o#;wlPMOp"˖AthF9s6x^Od#%t C[k :u$j)+n6zvqe㣏r:._?0cZ7m`瞝F:J5.BL^==4 5dLc5gAXthsG+hGi UWrjMHDU~BX+5e7DD9AK)U(G ;LeyGdۈi~H-Oj1c^׉s{C?y~ smeyF9_U%1RH7g6'j6RLM֍ǍQꌜXXT ihdum^1 JqLj3-R6 BdS前=/}8Gxa8|xf#dEgȅ#>!8M;N}}3"#;>^4 i2:@k:;0~i5e˸Na#'CXdEHXQWņ11pe{1K&]rWR,-3S_NޝZ_i*OCv~k}zW^Lܵ''m=^=Xnխr˖J_62BJL'?IRݻ .rLXի (/#̷Cr%YY{jtaj2wCgg'b/~Kڵl6{Z[[k/P-rTɳrU|,z "*4h\3Q|ѠL=Vi)}xgI R˾Ң/fc€;~;0Yb9^&/ǻ&N̜Mw$GIPın~ Pqz%|/sF:nlX(۷`dYڵ+( ‚\8t*:(>M  q]L&üs?~LV\1SN938:Ï8]~\ɝm45rkin{pJBe39B&rHxN IDAT\Rfib#,_椓Ng+WMP'Ŗ6+H&}\pL:Sr5S(kRm݅R'':M"R11(dV!D?+hD-hikBsNh*GD/MK^rgGhLf%,*~KPmӁ?/H<[Z`}F_@Hz{)>>n|n[+7R`%Z ,Yl8`2~`uW? F񶷽$My(@jA1uCS Yʱq6ó ў3jL:DAaBO=U=$.m-(eth Q2@ ;I"ĉ]Ku?ˤltE635,FCljA7."ecc93D :5$`!GA"R ~`aK@M:xLK f7MeoKR.?9jnnF!K.e޽wcp]ٳgкh7f;YAVCX1YJ>BGEtmf\6blD5V{)رc+WZˢE7o?0'@_K*.6\nĦ/uU~? !8~TL 4i#3Wrk :k ғ$Abhm8!g`@,d(YנD3r#alٸ+ =7dpT;BdIz-7+\?pӍ_tvv222BKK sepp ddd|>ORu]@%@͆דr Y "DT6ڵk #`ҥsZ2#\{lźG6rk!,\u!A4FFFjBkMGGV +|Iq=ٺm;'ӳ5k]{f(Fj.fǎz(<^|1v , ߘgݺ wobu4ݷ߈r= z&EDD$-J,}#e|6MjzB0`ێրՍ<\ĨӓӴk~,s.nt_>9evzvx@MB4?H t|饉h/EH\7 hG4E`m8*}?u] *{ڑ4HT2!& `5hF `Akr"D" XuVU/g}-[^d#llqHKy߼{ 7-HLaI !%@f,hRU>sf4ma~5Owꪧ]Ba:ѡ*('4E[24T缋)r? D )\6_\Ӎ;ȼĴ,Ӵ3(-kDF(4eG\ RJ40`5HTƊiS8$I70aL@%&dm6 cc4@6!6~/KEG*cpPdTTIXO<^gV,@KhIIQ:1rِeIVzF wzzzn,R CB:M\d=‚`Cߑ2Z6kN('k----|^q!r#"@QG*Ÿ $J+rK4Sźy"GcP&&kyI%`XCn-L,>"\ty?J>GQ1B!OWW'q-(N:c]uKGI#TL#Ǻg5bE;R^( bja<_56o~rM7qײzj#eK.uQLMM5̬ov|p0t(ozӛPx<Aǧ* O-œJSaHmo@"Rl96cS$b`˜3Y _`/9,~2< L~NٵJ<{DѼSew &Itl.eœ) ap$])*,C:!ɶ͕,hc5՟1$72ƢG82ɼ[;%KM&昈ZkѮd"!6y"#"2`mZU#;ii/8 q᷹ پ{۷>s5Zi5%YDT#Ah*6?"Ճl8\s9={w\td1Fyߍy P/_gs23&_y lfUỷȜYtN(%ѨL$jW` I26;3N-`6K3McupZgc,I⸰@*[yB0S3XTMiiuR\N6+ˁ/\v)o{(pϏ~>(++pT2HG{n:7}ЍLhkEI'(?sxpdGLjN y8v.Iu}<ϧ^ZFRfx0Ǩ*w^!Y| =k8ݏnާg#jd䨔äÁy Z[0$wY+nxRߏ(3[N3VP>G :RBGgAjUk(>\\.ǎ;dӦ󙝩03{QJgGٻBEA09gMGGZ>ŗjB\[^^/3NkP!?|5fZK^'eTq'ɆF1Lnu˜7|ܻ|19gi|g0j嚗y2F'ul),O'G4d~Vl(u&Ibt5)q!˜di2IJ%5&(1nf)x4n<#I- J'dәש)S16L8 ѩ54:Q$")8D`\ajΡC!+ ~޲[~|a#T&Zəd⣬c\vڡ(!kO[Hde}Na#HΎ^)p=$AXJ%G:Y,l=~M ,znO\ JAwsvޙ-hH-g2,3"@Kq\,5D3uz .^N?ĺ>߿ $msJkaƍ [Z[[[u%nk~~򣝏>nuPxulhl;9A@[[=}}}:t7l߾1 9=G@(HҞor5hLtlo:R&N9 z|mLS9Jxa=Dznʞ/0==MTMRAkM>Z-!bR5]_Dƍp>Ol=z;8DKw'Q+r>y|dQlCrfxxAhb/J\kYf->CCCJ-˳AggSH)DsuAZ%qBݗ82l}l;wس ]]=;pֶ61Vr8o};}- N>!"Uvxϻɍ7Hd-S\{YַǶ>FVZ[7KyLG[{.9WJ[[ R J|`VXɞCXu^op}aV>/Jze[eㆵڱra]ɃlCyy!1 ZΓ~eߠ@;mL:;k2y\f3ٹ|Y` ?l8Y \E8 `[覼HڭsqwO<2^}k6 [d֮="܄MoGHm4&Dҗ6Vlc)ڥL<`2Xdlb!ܭ)P v&s %" J8.1>",[K>F!/S+kV2lf۶f$EnIۿBDYFc(`Q~}'B6.Xk95gZcLb**0 s3AX80Xmįxq֯v9<}qÒ"q*iN ( ~&I%ǻ4^/$hay)sHfL:!q2š|;4' ̀ )4[l2Όmo#[*:YP%a3MgomƦ4_C|s?7էwrpc7JJt8<F:sp]Ȕ`%Ģ 12u,6Y%#?kY;>ď1YXYJ(?8A`:JҲ[ dDB+{"D^Lɻ!4\!?Ob )oY-}78iݐ2_&asg^~Yk/>c#3'$Ej 1Y\RȤPCUdh,V $u)Rs[]jp| şDI$czʃ 20rt{yfBp֭[G[[a8NC> t`. W,2=+βR*~ Mߗ|Z 0ڋ*$;wVS k gY~=޺5;L.W`utttrQۓr<**EIZwz˗366F^G9tݠ>V^˭~( b@k"0|hW>| KkkMؙd-Q2׃y~vv}>vb]ȑ!֭YmsO~8fzzan8~ΣrJP-vkW^ɭ}M(Ga@M-|3_e˖U*uJ<޹LWXfWqxJ=F>{5m]H91X1`|IӍS9VLjt*^2sS?Fs,xʶU5SLVۧ>z"I-0HTJbEbkl*I3 Ų RUe #qΘӛ rlQi[eXk'Z{& NSfq=pPHaq*!tT%/c__L#|#Z!Dٶ?4ARt> H#$,[хB ,!RF&򲰊k IDATݥR&@/+:=5y >Kk |2CY^LX_ƀ869\L~#3>Ψ:%5[OZgt,@Kh躥-y3DiK<1;L[}jOAB1bG? vnV:y x|Nοbj}̵ !Fa[[h}Y#Çs= `tto~;F}xG'nj!a|fj `V,a rX:[8|0--%Kj5ژ7m2==MGGm"aTGJIKKQ`4ĵZTņ1]-Ah= F:jM4gͪՃT~6´}DjuQJ1[?twayt?̌N} پ |+x+8ã %Ș"ltdf7~ùz\Ls h|xyu!~%Ƈ"M .h0k^HeQ4x)3HlʦY4N%l-H%s%,Bx2f[$[?w2@۔}ɘ -VC*9HBcA#lB C@$1ʠBHGT64N"Zhܨ&&uZUu,y = bMhRmQ(wLkL"$Z|)Ɉ R0m;6Ç炙SѣGYjcccJxXlSԘ^˱qo111OZ1JFZ5wy'MoOg=<<أ6l8}DAKABG{; / 8t|?OkK;W\qr!~A:4wܽ'A\ǝdn J&b<ݓ = CY|z;0ߟZ._ڴmG:&s](S;~/t';+bO{q0 ØL&݅,22-ݦT 143LdJY638gh#)S%c~$;aH0XvL9c(SjUjP.W"#*cqV到#I\i?wq;5g,g#݃ 5mmyr9];0c3lڸ'e#XH8qU&i bQ.QveLlfM\ kb:eemMevoȶcB#DS=fd^$RJKAoIG=l8. "9/cXrOeXZ KEb!HLS L*0-J` 6dA(kրOٔhX M?b!1W`H#C1:Tw9g+spT!bC/b Hץsr/Џ~@php"|a5a#\i!68+_{s? !"-#e *3"N^5 m!%fhhB@0H((cPVc eL,bָEikc꺆VQM~\xo?w-5Ƌ!u%AOYMPdŀ@ itOZ9r\uUPTHsl_)%zOk0o|'$V8 \kc \7SMpl j$[z Կg̭_6G{;wf} j8]]]LOO7|^VZgAWWbIVXNgg,guQ*(˴bMM &1;;W*)tUjjj.<ji߿WUe(jYTUjqÈ)đX,qͯ_MWw+rޅc>1lg^ ϝw.n,5+y[޾^VZAX֯~?<˿瞉[IY{{;ǎ ,? Dĺ033Ly}O-Ǚt| 36l7Od0]l9xYEƲ?\,~>';Zn5SqrYO~-'#dR٘YgeSpNg}=E4tyx<\oWrVZdQ&c*q8FVzw]."^z%}:yY:/|S3޿;wKRA^E! RY>Hwwaj,dEcД?I,tɤS/6 W" `KlbR!$V"cp}(ADѐ%4Wj+HnD`If,9Q7&Xh(:&fΩK2nf7c0aX0cÈ|>O(b$R*)E(Mg_ mm0rz=#.SHQlA98V6XrT!Vq#G΂}/ٲ`Pu-m% yVu#²G! p*X,rZt_LtZɄ';Amxt(ϛc#i1!߳M/ɲfNZc2d"[)J bcb)+ƘLƧx^82('p]a% llץY9Rq =_-/ͫBA$*+u YqV9#d@딹cEn@E0oxqJO"*MCBJ,z}(6Ď PGp0H-ZHtJ'nUqx{lJ8j D -NB5+Dlmm߹l Wyxl8.N7XIP61"|衣 GHb |d2㤜"y2Cc@'"b!Md*I#,2kBXLUß<#r}V2^H9#q*"TiX@&+HcnWp[֒t6R2 c۲/ٌjAf&s0'ٽ{7ccclYXbjjQԸ{xk^8]=:T?~p ՚U GJ0FE)6_O9W\u%y׸Gعo?/zizٳk7a-ıGrr&''),SӳYrNZg굌effw& ttt҂=vKKK #hkaHOOIyaQ̣^o_tG?? {x+C#L(w(bff~N'#89=:LX?PV̵׾1L`\F)zEܜ Wc!JG ;6/;7s5 12v .8q^DQl ctvv52|?gRd2 (ɞi}uH:|f|dМAϲ ͆Bq1w6ـ,nbNdO>M~Z/.UJYfĵcy ?ܹ5?\(b,|EfdNj53hw 88N=uԘWlm4M9֍8I1ҺLvJ!N`o!{Κpgas;ͣ5w8XI6'4w$Z|I?wyc5Zstu8 B r E#ֆbοp5[D0a$} GdBI`.FO(Ár adR:*;2ƠFZSf1*H TމKmRYr?hcbNjkM1cu1Z'JI~e2cdC}KRȗ ~剟<̑]{MN$0q#uw%"@kZyb]' cR4ZC 1h2&5mm:jB!= 98ȜC%d-$ExHhAT1| JaFCF-*WABW"00kC\CQ !Uh!\وC 򡎐?E %ȺzvƕX&t21(<^ ACN$r?#_,RR JV#ԃ:\m%%$Q`CV^E ZN?m=z>w[?e\]{ġa>[L6:džw;ؘjovN;mAb-,[6HuaeϞ}T*OȄMem֚032BjJ.3<4-ł~d]a m'Yp۴A:Rs7|V H)ft 0L.E?',c :FIIl aq%V)G 72TbxaTtr ]/u $_H:|V fy2NmG*̋f޶eʢněҡ[`LJCOs[w>5~.g=ع 395L׍E gÆvZ[uX7U NÇ@KʌOp޹Ц_3U2Byʳ>MP*OG 1B&=/&E@ dXYߠY)H}w,4el3 9yHdh&HzC)QdV[flfۣ'gMr)~TsKq\XzZoͱer!2ZR SHIcEX4FEHFM6$vZ£ }ZVkJoP iUci+Ҭ$u"ac:GAh#$JTdp_IHX`X\A@ KGWv+e*}BӁċ 9z R%q If"5jȩi0DBF$e `uD)Yn *8="hVi1S f" }X C%hD=VH:+TI^j:-wR8Qy2#VP.`P8z Oibnc4s?|/hkmō4h5׹Bn:0xR_lf^{n^ajjz8 $A=O#Q)[_o{p٥ƏgM?/R^qsƙkU(YM|nSql|J=#Gعg~(]]]H)ٰa 219F.0q%˗/^EJZZZy^Dž^ `MJy:Eq%nHI: )%a>P `մ.ϹB.Ri)vRƴyEc˖-tvvl۶|{O1::ڵhkke~i\u,[>UW] )%7njj5.B"||LR:R:Mʹ8r1990y=' dɬ=ɲ`OmZH$w؄.qRGMh7p'aSY YXe-B IDAT4aSs3KΟ>DI)%N 4&ЧkeaRFP`I;Yp 5EkDMMX:i:a[4& ys" <ҳɗ.*5rJDQ8jU= YI&qHkrrֹ]Č e![ٱcJ+2@HLX vUV$4AB P>+k AJ'-?uj2>"ed*lSaPsٻcS/<ήL:]Nw !,,B!28l *2с48d It٪~oBpq5NSNO=T{K4#q_/޵PD}h?a!͇dpdL’ R?c'vBϋⶻ^ߊ/R+t޺|t>ǵ5qq;u,'l{G0T`v]#)?4+ ( C k7@m(xsD.^4Б"Y(;Kh,WXIm/+Bc~[Ь4j1Qe^[ *%^[{[/]<{bqn4Ô 2`4RfS,jjh,a.&6fC[1,N.ByP`&B\jqE2q_z^.ׯgӦM!OD4 ۶IR xFF-iW}#r]?3g>sQC|kq=SO^r?G>J'@ Ethnn"°Q E2 y2 Rzzzz>}:ƍ\.bY2RĮ]rTVt]T*Q(p]M61<2a(d2477>'i2gG3~8dqq8"VfkR)mH&šQT'(~8zo D*$?#! & dǦ*WCMH ҏ*-G.2GQs\4D('|@a` S pF)?lW);h,;=:Z4}?9 k_7yO{sL |w}Ja#*2`{ItIBa}`rd3iYa|$є@*BJW-wo/:__qFXGUEZ:od o0'Θìqc8tF`6P_]NŪg.൧aΌùo8!Jz>Ϙ!X0u;k~ l!xrwo{K:\ZMV+lZIMj e w?-&\t NVG&+<Os91‹)ssb|)6mĭ2Bixé'p+iI4]cիT Q,H*eQ[[T^h4)@)U;K*mnzZZZrڵ'*{n#v&Wax&TUq*`3g楗^4tt]e铜_!6*h 9k]l3Ls]l\Tsme|@H<#Xm `̺">q/PnkD N< WIH SC t-BڸF36*6;UWO͊]L3RX %$BhDP U1ѽ)pI|Y;~N: `^c'MĄ:wYݼm~)P3l[* l~liE}_|[q?#C(4gD:(Ҙ[d&h8AI_^hՄa5,JG=ė>Yt4׵qF>erư̄w|Ʒ%>\c&R  z^pmHo^6wє$eAL:Yroر"4Ѕem +w O8{XJ0{zL Thjn `o&R`[)zve/O022B6[/&B|>Ϙ1cU+_J%aDŠO*JM4ys:ƷY370|?Er΄"iipQW{_Z`-rGЙ^xC~=ba];Kygν?- +hA&ô,}[ѱ{;'"}}}tvvr!󄔼 *2~ub˖lX`s\g?#Gxۈ Kje:'"Hd(D*[;Joݻ7a&x^؇@ βeGYv-z+[nMLSms 7pg' Yd Jڥ{|R١mSr7r1G"br-ˉyf/rrmg -bGU.R=\Dl EHt!^-[F(E9  s S /gp` 17 ŋ܄h |)} .k۶m|2wcRi!?իvw2yDJi B?/ȤxFFWɴ?So=LF00 L C&0Q"}A$!V0ڨ<(y;Ł@PgD%mc6Zrb`!* p=R3wT3|Gi!HP>PdyMWp9sxBlv 6o‰N4n(FB`#s,J<~b8{@t=aѽR&xֵ\3EtR t7->>aYV*[gu0`0 {Cf!PSry~•$.m;{q0C?g6ONY]p}"~d #4 }f~$M&s/ҿuZ*Nsq3*2VDI)4Xi \MIFҒݝ*̹(1b%zaS9ڵ R)Ldr&MΓL 4Rt68$ſCRS^Ze]x<>a` !=|owo`޽f;S3D+Z!*e88)0L']L=b>"ڶN=vb]innfԩR?iR͛7uVFFFEpDʼnY>g9Ƶ5&NHBSj4L~cM/}LC-I4MyTN_t<|̚5#fC #*sd2M&hd@&:8{}\@bvõk.fϞ0L:5bM, u󨯯4M B *HhFK\ul+}}} 2_$\ }#ͯrsw q|M6lH6Eʀ7|?TEWW7G97^_'ĬqYD7s̳es9ϰ}NjYƴ4344[yMLWblѵA2`brl~_122e>qsN Rq`M\*"ϳk.:vӱ{7]ٺc;e/8NH;H>qgp=C>Vя~.֯_yc7C woSTʡ)R˴ٲetttىR]vo5k¶܄ //G<,]? .<'dɒpΗA(`MDvw#b>(KRI&0XHJ%Ү}<|ֿSA"%Q}<zի ~ŨwOj/CƋ DbTbh}\pB\_‹Ap/WeN ^9 LE9|s'pƩg߃mxuđy9Ɔ2"e(OǭXhF#.e=t36H,SsyN,GU%Ǫ9dF\H|?Q*IXJqwմ*9g!4pw]+C( JG%RՇs/~ fvW\61Wd6ӝs)4t)'_FTNz.;y۶o/sNjq۶>}:Bjjjp!ߟ$\śoF4/ /|O\ٱM71HQ9ߥNSgI9f@.%U]ġe挩kmbd2gCWOoR9 N^x LC1~8N<ڧMa38ttkٳgbŊIiMMMBX,յ&|[Ɠd0Ʀ#> doTW?~x8SRqG0aZZZՑmV._ΖM>tBXɒPG={{Lfm}n$?\amt/v"Ś:_ꭔ<ؓo%1m!xi%wƾ[c6`oر|k_jEPq iv0 "b4Yt)%( C+D"'^x!|>1B/J$ʕW^ |vm3)%tq(ضMww7W_}5B)Z+ R)c\.&a"&8NR駟橧JmK.gB}!0\r%T*eddsy+}N܊Sq <&cǎ g?cdd˲9_}g]%U>-՞-Q 'q"$>6F`c2Q w(sC~ cQ_)Xs.LKCK#dΜ9$Oф mL0c^i)ֱ,TʢP8d5^5Ķ;v,JkR222BMM T^~ H }P@zGRa̝;Ə϶<3f`MCeuB`fl ~e.}FXRvd,_a4M\cɒ%@(+_oЀWPp R)>/sNDtK dpKeLˢ+Ǘ.CX_(%Eru|ӟ假`DPJjyPu}?Iu]kJ(-|>R)~_+(FYREm%;=Eɽb6Bb XUJתĴbJTрW a]_Jt "ο\{~Lnk}F+gh^zq]]|ʙLj5(̓oR%[c#(V![c2R)`e\y$&dnTtT+4C%Q)h^!3 FP 2-# #^h1, >MLYttlPC2m&Ѥ7aÁv@S*PLjL皵L2K_8Kư75Pp*!p'4 0(fs0Sf["], BƒJ¿(TFʉ(<LLLOT^1"M(O H"\|3)~ l.V~GiR@CCCD=N9i!'|ӦMF%Mcrөd>t0E_Z2&LbL>|>Ϻu먯gޞP %p>Kvia$F˧X.cOc"[w59vaya l]4l&N;>m`>B0x 裏mvŤIQzw 3fE?|'{Ia]]]Zs{n6@:e,CG DhByF“ n& -|&WS1s[lJ^XUikVs\̳7܀:0 nz>paҬ7t?>N+%7bHW R 3?W'}At `D83հL/``%;r*,Ay\Ǖy/?6u {rG3p+`,em : V\&3Tj4Lڶy `Ho83fxx! %Ϧ|x2BА"4 @z"ʃQM:RʾbY~Z26 aEIdbVi۠C YX!q<4SC>e#+.M05l Д (닃8`"RX-r$EcϞ"HҤD{ C?c:2fϙ ѪMRB7cܶ2e1"^ݲ Ǭa`deE!PRa 3_F>oW>vΦT-XV*lQ\S.Ǽ4O:a<[:"P>`CS!*Y- j* -K\MsJ1mmmoZiBdf:$[neUL< u9y̞}8~IHnFv|3hia¸I2ilL7ΏP*V0lRa)i;eL?w>Ƿq9B*fɂH%g#!0qD #ȧIrLKK 6I:u]0a;:kh3ݤ4ru8 i===0fw˕Wo+_(A?'?{>1̞s>øq-hFcc#6l`\XRl_)Lm3fI' J R\}jO3a8ħ_Ww7\t^vvt3m$JǏg=f=?ٳfݍﻌ SWwq'_B!?BW6AcgH]$qř6m6&ONf[ ǾT f,SO=O~~E}s[9C>VͲ@h2CQu?%5, ~!nh\rtWri,bxB>pk6"Sx^ ycY@$Ҵc='x]hB@J\uU|FJITB 'Ǖ\|%Yjr @Ԅ/r '-=1cWMӐOGG[n,BDDj XGbD}(1Z.:B xT!Bp"xf( qj(MDv y跿u=ڎ;i)tS'@/R4-޵Lbr?OM#U&ThۆPJYT)iL*-5r~/SJ E Z@I$Д  |ZKe,62ݬ%=gI[iM!QaMA|D&4F\=Iϛo0gVr" _h,ZD$@>ϼq*,<C ظ;u2}}Mi9~1ݧK.:X'eTPÙw`|>8u/>[R8-;M09Ә1gL__e@K:L&QU46}0ڰ,}dr!q% b&[nI>2glfϞ|ɥYb%SƏ7L Iioo'SWWĉR2<dZ>Oq7r-АTK&DsW$ƪ墍,X !xIcndwuJBX|=Kb K.0ē+_*efTy/B7-mFeנT? mdͩE/j!ŠhU_xȔ &6WS"<DP!UJ 1@(b(4SQ,4z f>r˱cn{tus i UlnS4u ) !+y>1 WPФA7'6=Z T̚Pd.VD7"龜哠*DULX'/cWUzy TCĕUW6E!}"3I qRl}uT$#b&ECz(idn+.gUU|k_߿פrbUx4%t/ ka85>k6-%71S0QSj=]Hg+D,0æO_o~O|MʪgcbšmėnAi:^!U3BghwBɩFM` ) w0 )!"i%S%q0Mhnn"yec '122B&ϣ@0wã5ƪVgŗi3Y3fv+9ܲ,s#ql ?\yG9Waf-:lF#*ZJT*i Go<&MDWW@yWB>X*b*r#RXRR]gE{{{bиlݶxR,Xxq|_mDM@O'LL:tɞ={f<tww3uڡL6eL !xGؾm7m⪏\ĉ8cBaOl3<۶< zGl3eQ[6?<5MCC%L]<W*\ð,f OBu]mFPBYWMM6HZ_#Vbd``C's\!#!g1M\iӦ6Z:n_mFFFUѺ:fdp3\7NʄtwwMB֍iEϧZ,RSS#}mq|%jkkaΝ TX0 tXQmh;pU|{{fK%'IA@TzӻS3"*P2((vas 3;{:}>U>Ot;yf''U|ߧVe%Ii9!wCTqJ8[H1.m ?B&>Y"pGHƈ?[S`Uf(yՄA:〘$YLן% B ESac[t5Hz<' S  GT+Q, LB.?>٫y7ظuIS+Ј|?ěOdd:R s>L6vgۨ|BH?a~zV{>u?RJul[6|Zd3U+BWoY :pQȽOs_ ?} 60b(*uZa5uĮlLc&~S$h2ney(].x?Cq IDAT@͓RKLq=—d$%2|>v2 a?1b2jՈZ\Hsh[p1 VlΤ.j=O"C=I;`l"u7E3bv !cgY~STK!V(^{rѸNM2ßtgϚŎ,X)6jmJL{{ - usd-%aӦdcSl6lPIt.#dhD3Ţ tvv)ygXhzXv Xy )J8&n'/G"ײ4X3a=]&M{{;JygXKwyhÕr:(ThkebKs(ZubvWRRdo()hqWpxgFgir FQŒ |wSytt %g6V)q O2zBߧvBň!L;}H^FRd@j+W࣏GQ*8x1sA V{+cxӹBϩlZ`21QxJiwLTҕuJ_ө/85|@bt,ֈ}@aaSԗWrM@WEw,ϚPi[8{Fu8xӻ/@ʀ\5U/݅AEH<Վwo$!Q$HHĆMhͶm>F~Z7/<&D>z*!@.ptE`·*:^AJzU Sg/ͮo9Yj`œXO JG@D( AGj΁BL@$"#Scm>"!s>!Bų0&qP A# C9 ` 9~)HA` V8I 9γf2HYfߝK:8 8_ƧVI XŤS3nʎPB ֺbީS(We 4u2ӦeA"L'W4I-aBPmcF 6fx*FiDFn0Xм/hYt)V*_b9Bg 4~ԪT5sL^%UW][>l@qJ}/c!|oSOK1d('> _(h2A=|/ ԻS3RZ0o6 i/2]۶&u(j5lgŊ̟Q( l߶#`sPT*xdYG22R;bz#ܒL6 $:dr>Ŀ0Vg3`@ŋY8sү ɗ%.>y|ш8w4^߼-(d2{/ JrL /_b_|ʬr]ցž>b&N:dRuY\ʂ رcBs9]z FHzSOy-vAÈ&PqN|>:Ab6%rYgr-`"MZh/ PhmciwrU,ykNkG?W^e}%"haJ ( '%T,Z7㡓J+Y{-xĖY0Pa V <?^̄se<('pK~1 9i<[uSe[E)|)㈦lGؖ((%t) 9b2qR@c2FK `J-'+_a2&Q**ضs37߲#F.#PP<)nFdX.h_K{i֒Y`q2'G#$Fz*f!Db[ՇGNN cc5{]&X뼗\Eˏ$80\d& f`!RyX!r@JW5k h^P "d}v\yQ>G= 5ݙ tQJ@h &c}dYtC4`A -rheYL4!CCCtOXCZMux:͙ڒ+=7f AL$@`JT?! StxI>a2<<׽u7\yxӧOgxxrL>g^5屑-\ZF6{9| Z|(H {pB~8w.? t |~2<,g4ڋVZar^~n=c`%4of`/ZH%\K-3.Rylݰ-dٰq=O<?#LKzj}|k(gq_13|WBr!rgrA}v.2HǶ~ӟ6.^F2(2#RY1%YKSsySN(m; "~6 R?}hTklIg:(#gJ I7ѢΌ(iW[Ӹ&Vl IAm,.U=;黎`'Q%+"<@}X,VXnq!LM JX\!\PlŽqk|!<:@>ۅӞ1pɄCBCJ{ 1>H^j26WvM@@͒P+SW /hcQ);0*5@(dZB1H!B+D8.t D2Ba<^b&j9jf#ON?mWSYvUKڲ (Qx)zF̘9 IG B)B&C&jPk|0FGKҤ.6nv!BdP ͔}MbK>VExƦ~YMg$v+ #dG5 ]=Te^D63tf6VE!B,Z8n54 l,;ldr VY^:j2Tz%:کSBش;nr}$+:t IfhWI]X1.je(`5{칐5O?U@ |;r7 \wMgRIW.YJ)e2|O}MY{CV^Ͷ-[etPʋ#bO?4v'z8W]u| ##̛Gy$կ9{|> xYgky|Sz Y.YqQ7OfR,Y~ SNŗpN䂋.KO}Sg%T*~G;w.|'V{˯c)'ذq-Z̙ssD_}_U dXē-^UgB QO[JzA3Ƭ>n{ ckcccT*glll6ZP78WS*J4 0|#yqsƟQQ*N)pw>' CJ%e!Rqnx7m\K/BJwO>$QѨYjM ~ӟtJ):Zn齣O|T*tߗ~FDaHd"LpW{ !|jNXzO9(rBbtHZ:f K:ΘDOG6S"jlZ#Q^.AdRǾl DA b Jt,C/RXbz [D G'l[7+IQ2ֺ։GQDylyR*[+5WlM@Rƀ(t|cn+XP@Hi)?ojƅm[o!Vr,ƳĚx˓O#}F𤤣rQm  j@Lehhj>뉁"I(c:XAR4Fwё) ^ƣp]!;ww= <#`܃A[(QH\[(Bz7s-\`}68 LHK91\`JJTlnWĉ] dÀk m#PGS Ya#C"<:4: ?&#Nmox`BKf -i,cI?\c؏Z45O>J_O'Q䮙<~̦!t=DME1VɶSAJ-ĘF,ddYΞˣ<gYM.gdĤI=T*e:L2 pEꍈz@Z r(r.؝XEKOc=!q4z UW/I4*Gq vl[8mXs̜>b[=\>Ǥn~z%d tX|?nFiٍ|cLœ+#_dSO}yvF5O|Uk56C? Ya_ettt%WsMrWfl:>Z#tڋXv<& b{/RIJCsnrݱy9-(cQR`LxـN8Ѕ V+PIڝcXrp 5ŢKS#[h+w2XK=z-~錎""dV^G,YԩS＀\[(%eTB}>X%fx ZR蘡Ē?Z$Y bKQ"N )7>$ )(ݞ$ *6z1$L6%_8)ce|?ݗiCTmH4HaVxHR!cUGKÚ:=YXx:oE6JQl6TgbZY 2DAW%n4x^)X'~wcLpy+ɱ5iu({RŬ6fƲ<5^*IbƏIiƤi?52HIXdHM|&_'5)z2:7v-8tcHk1 !f5o1Hr%CQ{5]pX lzՁ ce6~Tߟv֚DXچ!E$r:\" m Lz~MQ%jO=l&4 H'ju_'d=!^MtͶOiE!+q(d)!=S #|2xd$QI54@u9㌏k>q<_&$ΟJO|m)忣sy{d'mWB$HF[ ~\A6B`t_0 ]$u[tT644ĴiӨV̜9řrhS?d3y2۷1oLrGyr<#cahd',X 6_/ǧ8ȃ5yG)Jx*k׮eԩرaq+Wdʕy}Uxi9(j GuOIPg} 1kl,lbhh.m'Yg{ W\ҿu-#C򮻸}省 C^ŊOsx{>eL|dˉZ#_Z^eˌAW~DxȥTR%9YiW|+ɓ'~Y Ooc֬Y.P)BCG yn7nVr72k,|'qP(6N)s2EN{c7A@M>I7ˉߧL2r ^̔}=| _l6K&!ϣ">G}4{/|6tr8?c4Ro hkk#ɸkM ͦyO˖-kFTE(,~&CC[>h|?y2}/eTyƼ{,,.UG()~KaH;ٗs#pv1I?N`!5&\{zYpr!(L)D @hzct VXk1m_T<P-G ƒFPHFcU  ODTFFQ 9` cG`t3(0 !D :B.Ƞ X ]).H J!.}M: "GkbuڡɶA%$D dpCn1 ͥ!,jw !-r^an(BXh"%р$&i:'4Τɳ*&RMP_5Ǫ[:rv~ !z }T^}tVꬾ ˗I9< 7gtRf&A.]Jno߾)_YB?ϭz=XJelٻ=؃N;5mhwuDux)uO}Q>ly6gw>Gܿr'f j_DH< ]XHJ$'ќ#f%ۅXTUNnINn9vJ XǠFʂQZaf 5y4_8AGeHk?0 i<'}c a} a#"@Ϗh*F18/#cPG 0FeIZ)&G%sA2ÒMyPJ`u⿔0 ogE2'l`iSEZuqx5Q6`YN- &`CE. XNˎaǸ)9cSO3mTL0A2~km: DQG>*|mm`Ϋeyj%rO" ǖm43|Tx]:NLT@%! KX$ϧR|y',!!3f`ڴ)| RKV((ds$QȘcik˱dk,!tD]taU~jh4T4ju `^,1z2Z-E|~`(ߣhP*9S{xzl/2K} c4ICz#d½Y`/w= u䎻M<:,?q<wOU\'MK IՌlO4&KBf`RwX){Ԧ(I0SI Ssd k!+{#bE,q™'P7y1r;?b1VXR.M7aHP`}J7ɳq:6L萜"6?^FH[+xlS|/*:Q6 5s,7(좣2&M" sW`,DdY4oR>(GX¾Hbֽٙ\^I "a#bڴi<FFJԪϝφ 3g;v mDz"x.#T*Z>\)̝3C<[ɷf޼yꩧVuıˊ'#t"hj|r,OiĢKײdB`l}]}ǃ|.Xxr~y=ewhWԫU2r9F*#\yյ|_ϺgwwCۗ\ǢE aⵥTh50cihB~Kqe֬>FG(96Z?/[ӷ |5f"4ڂ8/-(B[fәaAPLx lκ ,Cq %|7}ހ[5C 0$[7G@:RI!I44?Wh^ϭӘK@l&F6tbq&TSIt"||?C&RILP7$ƹ@9$Umq=*HF JBmCLg8oZZ<@ǎ;s ,5:k#t-};G6"IOHxycA-ې,_mMŢ1<gֺidYP1-|bk\Jnȶ33iǴ=($*ZB)O[4㧍NfTjW)/و䰊d{_Ŀp$hmc,y~5A|18OI[R0|rHZ=7Qi勧M+&zAY1JYm{/vS3uTzzz2u*##L}R#F1(k,x( n(C^iw  x/0Ƥ"I̙3B7mmk3-ZFU=IQH|A=d)7_GZx#m]c,.(/p[.a zK2ctrz@6 Bc?Qז}甓Of4H__wJr ofƌdYG*|9/v⍧s=zoz㩬|rr0Gp[,gdt!o;_qHL;):: bxlӴe3x#˂EX`sfgdx:5,"E!ܳϡ5lڴsi=lzŋQ(yU,Yc}tvt2s}ł!_j|%W12ٳcOJǂmY؏L{Ys"c "ҲL*cx޿>#bCg4)[6LwYkKDm)ȘKsK aӟڱe3~;dKC$po9X1Qn%lyFQvwH=#K IX969_kH2O@ D0M/HDz `hJ"0F6J?Č 锥兔.ypHZHMl,kqH[&*ަx.B:7(U}3Ffɖ,omIddlc 6$%5!BI.LBH]-8/Me[9KwWgf$6 z^gtꪧypRT֑ @%%R)̌gJ%$vGK&-d5f{>q B:gtm7$_'\hF"iMeK4BXKN '3F) J.w~Vq Xl5GN`ҥ &''җVjZh}Հ[y˛UΫd|h?-N O8lnfwBwO)v}L&CqΟwT=k Z{ؾo8dWJ#.FJPhk/+**_eȍO~W@ųjHxJS.r}| Z4h,!8\=QC b1Jz]*ؓ8C$\aX6y|bܲV111yu|K_R)C˰sSlܸIza.\HR[k&'9Ԧ&r\\~-O?=cYMA+>0{" /^GؼiՊMkߍ9d:A{=Zf%Z z/T.ŕW^ws+߿R1 j055͆ {0^0 Xha0?6^4k^5&T)Y63נe)ҊmH<$L >7L@Ni);I0퉟)NeJ)R$9";Evst? DZ/4ә,]h&:D8%3&rA.-Pixg:)NjkAYc7b `DLO4-sƀG\!3TtJcMs48 R)KMl D/ 2;5Xs=FƠ\ Ty FE2h$uv%E$QgԮ4+'H7A넝ekEǔ2b4 n]1d/8qz/Xt&":Lp)'G:b{5dxiQlyE'{l*ea@{Hiue;Yh;0R2yNdxo|׻Paqr?DqNz!=|ZR Ȅ5nX&+ A`;022O>iəgRǗ'?q+͟w\X#y꬘tV) eVu bHX0C hHZjWx o4o}~37\@*dҠPSXlLRAu8O,Nj ryϦQ&D IDATT9r3X͒%f8nŋoZZUQzcx-*UZJ\MTuz ;<:;ꪫa||.ʡˏ߄'rgtV+s 0* qV$uZZm SӓEZ[[1XSre˖SOq}r`!Z[yc=Y .aٵk| _) E2Nr1Ji޴ N?{B^5RfaMc2AXטha*T|.'zX?z[,:1 !t'*yQ's~un s IDaH ͼ4SNBA4Tҩugh2,NT4bD$/'0.8D6MHt"fHG4lg5$̗0;_ĚZ1Hb 9D[2N1**3e5l$],BJtnEXCJ-@C̨abu"ұ HF8k:zhv HA"#eLGq]s2^[Nk-':1NY@p ѫ"NsDE'fuyV,^:nZP* #LG6Yںpq=D`<| a~d{aa )N7gDk/rws`0R9v00rMT"Mmd\ h4 ʝ>|J)w~?:w,p@@]֠޶,gYKwV}ZN a^yVE0a(nxs;~/| 2$éF2=LLLWʅ1?+(/^ִ"Cݯ#A mD`3XP(0880-^v|>#˰xbٷo\Vƺ!yժ昚YHhkkatd!.\wu{sݵ K} #,[;o] }%LNt2֯_իL};l6 گ6V: {EH=˭tvOV+v:%ED2ӓ PP,\i\F)JM 'v+O_E );y'y 7[Nnիp`/۶]ykϤTzdՃ Lj`=3f5t$8 !Pl;Ѝ$=3Ϛ:3d0#bh2&=y IXB9;/D:$ϦkYPcD4@ rI#N1ltLf 08s7H3FO1g0B0͆!iqUI GcrdZ'H\ZGXHe [NHK@Dl&mDڂQӴ1Dbae4K*Ns9 5B%i$(a@d.]a!:i2+MDuTq8N$$_+tS5P5א~rU,+3.udA- ,:^R8AHOL;%"N8H0N:1Ǭz /ne%T,1ГS՟wOo}[9cjRaG/PJ{d2Š1j[,Jye| fݕ[/RJctM[&յ^KKQLejZ6/[IZ൷ Ru. 6 J'%cGyчoek~z.y!S`">sݷ&kF'wj8HFGXx9=8zzgEj|FkR5&&P8t:Q%5PRbuFؕdRa ke`t XH$OqA\׵~9eժUسg^6K\6:nr9: ב?ߥWg$-%~>6oFϲMW\GNWWUjkV,^|3\+^ ~l28Ud2Yr%W_qy"(qZ[; C(azJƭpGQxpBjJGL(OezrK ]]]ذi-N_BhYG>=̛6~r)ѱZ8sRŖ\l@ } B>'0C"\}r1F2МL4G"b˘},\E$Q]K!ЇpG+g6ӱN>NӾ3f+JNӹStDx,^՟Ʉ>Րz;ilX#'b JbVf{gS/'4GNC D;v4ؿM,]LRġTm[[b1Z[Q"b%^L5;`Ô4(fEψp"$Nb m-%^l-v̆qOgZle(T0eTt_4Jt V<>VSZ77fA5T}$i$qۂ Sb`" [H~ 2B|3AW8ǏLFp&{}?=j˖c^4mmmI+؎5OXAGWx80:6nȞ]/^T%p XOͩU[>U䃃BKAh7k 5ӓ-\veZ`L[KrZT)#,\J8BSɉ"M}řdYR291ž}f7j qYbZ u9~l b|||>]@Hj5 UW]I԰?eӦMqǁO wb('-6>zީFSM.L-ۅƍ$M,N%LzJ)\׉"pG$`Ƥ_@lAa]<)UZI(8̥3&~je,Yb[{H@LNVbDb0+J/avܑ2tJ:B"\X}]JBmbv7Yns&JL׋H`5flW&Cvi4fl$4&?BX+7/ȘcvX-uާȺE4.y*su^y3RJn*{ 8R2409CV#7w4&L8ė/)ўs<?us&! y:Ghλb~o\|y0!F~S;^]{fw} yɦ gx^Wrqt7_KRfiK9ׇ*~ӟmV.]?C\-˥ċ0R9uqvEsXyLxMGD&|f3{g Q6iX_ դ-I3 ׳SdJ@:}-Աb^o !@A4@WtRLdt>"Fns!}\ag`H)1E2GnjBX% Mi&rX3j(0tFy"bď 7v:FJ:.Za7!C L"F1&7Q:Dmb1niJƉ0!\7JSY"8*#qAkN( W$\~4{Pn߿u?/{V^V{ V.\wq'kם) xDZcXr%硵'`崵vd ia=xgASuvҥK.?Qa׮?,]C^%E; r a-^kFG0F((-Xm<>z:GQ ikk}V|zt _ <90c;g߈&?g).N2KEܾ_@'_0X0jEWFGش`!"v2sP[wixOr{oxJEmw\] Y\@^䐣ebH2CF j2C a5i 2xKNAwR QȌ7S\}AGl… '8c ,AJgg¸(Z111Ģek+:2fGB>ͪ_䬳ΥwrLwB֮]z+Vg Qי MəkGN�$͠Dtg9ё1ڽŒC]x[Dͯ⺒c02̵gȣOc}v.``dW׿u|?e[dy|cX W>bj®n:}}}\x9rXMCrs}(-?׿ |_#WRU6&'M| `V.ɽ{8E,S(sC]e&+-lgxGHaChc)n 嵿FGGŋ81g-̍dcw&zfhvSJrRfDh$ot(yMDwfNR[rvX6 FB nH[_NhNl'gp^<`p$&ЄA`=/ѡ+GCĞwC'I1,jѬSD78ah Ja¤\i^9uYF1c0)[uƛ#v4ܹbZk\G QvA%ٲSL$vf*T/\ښH*H8bF=Ĭxl+Jc_ piu|#1RIĂ di(EZiDtD\;]AnԎ"PSHxyh>fJfvLKF: E DU& e&݆}@FB ƪ O[at`󓟲{1}}sEj*cd\\km)\h[(~uQ9rRG[ԱhQ^qԉ^nݹXM3<|>mmm;vV?κuعsAM.}HU+뺌1?K_0Tu?իyG?rLoo/fAgw.ZÌLL?D&I@a|k!FW]ɏﺛ-_'>)V<6 /d\qTkuc&Aii+V008Ȣ::|JyJ[.ʽˢEh&6msx|FP֊߿7oUY dŊ ?[/ ?|C>FL ox#7rѦ Yt1B0T[09=MPVfw`?zz#,]{~1wF @n mD ;gl1+#X0/r#Â+_E/Ƒ $;*r٘2& B ',dY;1#l.?P*Q61MF"Q~6:[An:4Zc#ˆ(u `bNggo~[@ ɿۿGTiY/mΨdgk2+Wtq/b;~i IDAT;GiIWy  J@ȁ^)]]t穗s dCAz16+Ou]K8[wJUWBk#۩9UWA3hJ4!metѺ-]RM)wl6)&'VA15iSSS\;+Ǐfj===k4bo}PjkUx%Bq/:<Cj*cc\|%wv+o_Q^qXt2\ǣ`br +<y~n0ǿ|ዼo'w?ϊg׿; {e=_Ϸ =e2lx#\K-#;8W(\˴^}B<^Sndhdk(8:V>a_睉s)fNL4M Ʀ' 'g{ޜ,N*Do L#Ѵ1Rj~6څs%S`,f4;! a2^K! BR`DL˞I0XػB֝V[$[ b BDU&bJ: `0g̥,j\(b:@)KVhLĔjc3M02~Hc+xLK:"&nikO|k(yf#RC^l{iщÙ >Qݺhcp㹮kA4,.s KhuDK;G47߄Hsן@1+40h䲅lxpǷ#,-æm0(J&IrH#x.kG-+Ɖ41?/*: 4=*MP@ 5z!^ C0*ɄB a: qn&[322vB iy Q-Xp@i}Q/" CKEh426&ПXd;cъY_đPW/ħ#L4 h +q=V&C ~:GghhazzzÅI<7Ckk'{n,Ux6r `zzbȮ]bKYQ<}mq+>Fdec u@K`"%"]5,% )L)FTRBd2V8^ҋP1d. e^ד/9Z74)H;Gױha[<[H%P>& 1*fb85M#C n!A}nD)?t|-} R5'W2r8@F8/cvBFi]QB6fE GM#)iJ?/?uYV;0ͬ Aimk5!RF=C#(e( 'B E1Wc;H`ARp]} =K![;^|߿LF3I- 4@8vS\xs$HE_G|N~z?mk?KOt(UHœe9 ȟ#P;B5uN4[ PAh?j~(XV ڬgs.;{+V36{3<:z >Duk^u%} }1d3V^O}U|Zemcbj/| LOQ*tE|ë_j7}#<9?Mza֞w>_7o凷ށR|t 06:}=\'N#ڵ%]Tk5err߯xCiSH/LZ3u]b&QhNi'4C@B}Be}6ijv;Y̘}&v\{k 4$cX_ʹf!aNjӑfS."Kqj$#L#YkN)"ǮH(f&+"`ǤtzbS}+,D&Hm6CJY{pAD@B?=M6M籮PLJ%n_Xyט!WՑI-ƿ;ұYBPm} 4bӘsRֺ~2:~?dEie3Pa1 CD^ ~ oh l6k"l.g;"=)Ämz6AE2 $ŭq] F /c G8(eLV1 N@1+Pv}Sԏ?$`ś=oqǀP墥AFR4X)yFFyf /.)bh08N[^gHA@. +}^ve #p";n)qCCF['=1KCヌɩ)ZZZ5Iu@!/Ѓ/n2V͊s*a \>яgFUyهwqeK _𮧢+HPKr>N9-k-/3+y~?&[Uh&Z>fOctRcltCrLggJ)::;񃀩)ZXv\1?B6C #㸮!#"PAgT[ "+0FF3<?=iSVA /We D+E|/ Jin.lȂE]<{~>%P5J1xXʏ yAv6lyL&(RLs9gQ.1&\w tbd#W]}{H%Wh60o֍lb70Zz*.ڰ!ttvPl)`ArLì;w~hooG)EZgQB ^֥PQNb7wN+0aB`3 Zb]7.fs#Lj HfjCR0:!r|E}9s0D/$ :p3N_>5mY Jl ^˯KLo_c%[-'ŸrGR޾f=߈ pHJ:g8kXɰVbչ"u G4Qa)Fk<;aNb&/9mHkg'JVWki[؅x8gsl6g9.hM-B=N0.3dT<ׂQBbMnEB "?!6lWf*LJɛ;^ (G{G8~|dppqF&=S{g!FG{y}@RFkMXe1}*D Sh| rD\ABMNMR(,Hk J;3mL&4J)(LNN244Dgg'[nqOoo/BHRAd2N%] ( ޽ bֱyKطo_jSBHZ[ۘ&l6C.g*Lܞ+i:?_2GwO%KLUF瞟299N2rK-[7Q*X~Ju/>!=gԌ"ԪU+o_6o}O~ݻ}s`WH)iii nf2,>RJR|g۶m,XI&/9O<w?'aSF<;M97DiZ3#dd?NωM/G}{"uԓs3f`39~4Gh0NV&)ES[Q/6@(!~֡6&i1ccL" 6P(=kc5bZBRMX伕\\N-F:16eLiݼ_"`L"^- _lԋڦEQ5|7:B@"8%&Q4Y1]N`cݡ0DGcI4d`L#o׼( p}srqRRTD[ qUdvcݣt̤^Etـ+\ # > Eq,EGRK64\ҫ M]\wr"x(oܵq%fW\XQ>OGx;IR%[ȓQ*3{?\ٌ}hh V,gcW7#},Y#tzF+Ufm?3v#`% w)9fRtבa@74& jq\Rlt']K<..+Yk0?L\5O3\Bҵhp ϞA:R%.R|Uzk֬e]Wob9{fɄV*/ܾC>E_T߻.1(!b~ h- <0Ac[\"[K<`?27)Fx>"8b5&=1)F%Ec'8))FQgPt<x'1бyxTJ1E<- |*I-YF:rMa$y2ˌYJ<5A.@z =ˡ}d7 tMI L+^75 B:#GJ^%]ED"a 90PJd_Sp0p8="ylm> }ˤ_ u Yɽsb]wM7-[pOJF#uHcҥ}ɣv#Uvi_3t|ZoyA8z+J15=G>>׼SN!9P<*HI<z(-*vP.呞@B;|&FP^4T&/=q{׼_?&j+:1hfddZH{E=ViF>|?`۶m|kJ%?ȳf:zz0M::CkMme; | 8v71igp?K:ZA.OeWQamGy7<ʳ{x7RW*18xZ5ZK$ C ZJB\frb2! "4\>?ȁI֯Z 83@=p?+]ɖ1a|ѧsσ7|HKe'@t.XH{+.}3@~Q4k=suVddYzLQcDEJ NF(ta3"`jbLg IDAT|zV:3>+LLURFršlpR7Yt* >mm021IJwGDMwsF#.ZI[{' rQq-7ĥwˊce7̕W~5C_5.X=/ ̳eX+5TT0fpĬr$ֱ̅R& 8: cH=m 0IM檧'O|>vg?L$U$`%B LTkq&YR T E()b,h1 fc rFJHcHD h25CJi㓀KIGR7HIċ?s9 C h@2豷Pw!]=G,VC8%m"Wk9C5Q 0O;?6ma\[+%3::Rϥ>KT>:g G#5V\r)_^Q<@b~0Jew:-ic/21xA<4jb&#oz^Yި24\!,?_ΦMزe Vy3wqQ$**LkYj7|3mmm3)J "ВκbwRi4hW%DkSP#d1W>R?tO]e hH/+AAYx)frm\jԪ Ӿ}]q|VZE{Gr RUX)-k5"] ϧl4}*t$V2edwYUT3Z˞=M~;9̳x衇Rŋٻw/:\.GTR0<i6,[e'ёaDQHE%R/ CI*1οe.᎟k>|7ҷh g~SuYaHGg&(鲸c800?NGGãcqB3 wF:E>I[{vn<8d?.?#::ODȒ> dG-mO%zGVL2"BD/9pf3ZOl܄9钌QRjqY JqfK0!cZypfpĉY`&K&1p gl!QB؆BX#?ke dVuCs&S6!R |b$fYo3e f;BjIJ+6OYJJ"<3N6q&3kl WJ~OR[wc$ =e^)6q]8}*Ijtc}P@2JL,m,)%]eEs(0eA'mgrf>/㰰@ X]ɗ/?gqo;v`rr)ȵ/mme,X@.0pmņGkLYU:FIFDuo?O<}\ Cd/FNنJXFկzSEXf}|3!Ӟ3ZT&ByX9?']z v;9egs)'s[/I_~0:6{f=޵c[A<.-ۊS?s[zs:D+@Wh4V,XF#ã80|^W8f3LU) DQDVl2884hikkchxnAFF'gHS j\ wy,尿A:~zxrNcjjjʒ%Kh44MbAzk"gu.;=ɒ%ܹ0 8HЎs9x>e&*1SA Q䌭*_WA.qcQg7Z.\?[T^:O|ϑSΌlHrK#fzC'EْMkr[|^1a!^VԢ<j4,_ko馟нh1!r<u\W212BZgdx+!ܳ<<#Ta1rj :ٹs'o|9x NXEX6l؀ &ڙGkKh5REBh9c3,;+ٿSG6 7V==먔O4lR)6d&9Rt_=ݘV9^x1aM8uaBcggTSO峟,W]uUYFJI\v:%?abGkiӂe= ;𘖚4LUG=яZF1Z344D8NV㒋/ꫯQ=oS@4tM,=%db|KoL1lPE1 "<<H~oc1l:$Pа F.__(XpSU<}zI㽗l2-ҥ6u.`o lٲ5AΪUiT|2zL?>'9פ1˂x)|6Xm]gcd].QӵIe˖,Ze/ (si-ecw'u199c=Ngg';wdrr\.mmm |:Pi6:t 籸o q'Q3uR|>$HV^Ͷmx^Kq}|QY=T+W;]ϦV#fmo7Mp׾/!BNj&f~JhI^ͮ F#'1VIpMF$AIҜ4;Srf2P* xaD e aEQa8c"}"trx!(=p(*$7Ҧg@º.^HccK* Rx;fgl$Wɩ 0l(-3Ja;(\='ne 1yfsFfFI!aĠ( 9wlcyP)`_/ߒr,VIΓ0=K3Xj}rc9#CYe!ˮ=PJ)ۿE\֭[Yj۷ogzz=931Q!Y }:Ʀ(IA[܏h6P}Lx1k(^}myI,Yg>i*:H:Q2 B90B ϲI!e]Pay["A>tLZ)k< 9x>.QHЄx9\s@ aDZ7*MnX4YXsX2r8M&j5] ܿ˗cM:tO>I.]TAǩժ]]vSSSy Z@{{;V7/hDDف-hro|_^swe||+V082СǭWmm]tޖ059Ǭd\)%7sCӼ!Gc~y_pιa*򲉧|j)jS N:7IiD0lmʲ+0619i:nVzaP$ˁ0>_j6og^@gg'JcV`xt\׿Mn#OE6m:r?]tuv=>O~Y~Cx{عsdzt/H^/iSeLD*qd$l Swb0yPmIs4ϥ%lll>Kd DX'y}(eE-`@L,DMD㘰R{ͱ}!-BΓ@8!Z?83^iؖ\Jl,JdFvVJ>l2O2 %+NZ):jɞġ[|\g&.K)ǒ]3H˗_D\'ETN![]a9m#1a0D ' y|0{Q1h6i;dϑ0 |x(k^@KɪI'̕DZw!tww/|(0Xb(&k;pJn)0x"S:M|/OLyfƓN͗QTq9Cϛ<J ~0A^{tFEHjaeb>MxƁF 5Ïl{}1BTprɧԕJ y8ENGO'di``ntҔ!~ٳlٲ 4GRP(PTrdj64t51EX,7s/CCCȠ@.Sn,"jƍU;v9.bq܊䂀K~t\wo+]ݼ-'izA}˰VaQVk9g_z|3O# zzs>:R@Yw`[ؤ tebo歿vo?7_FngaSD@H1|7B!hc( w˸·cow=@>W_&Bn:L.YM:;:YǬ[oN>Jd|[1?G vXVOJ>KA|ާ< L܄! fJDjٓ—Lı}_'4ʦ-ߗ)$x^  :1 0!1*2A Ź2`\ſ ZMYHb2χY` -'eĘD1:dSP`LF9@{'M 2҃t:=J(K2qbߝ{٬gɵ9ӱfd\oQrJ@3ҾۖT0_JAX Yei} fZ#6#˖5ElsI6TQ9׾ƙgMXz5W\q]qs><^lVjݔ=|o#q'X$4jQ۷o)֯_5kxk^æMxGGZ " f o{{x[.Odr/Q(#b|vFZX Fp}~W,+.W Y G>=:Okk !zyVUtuuY"xػw/7n/8z `jjQ2/f`` e9zV199ݻB)(B u IDAT|Izz1MK u6;8m?`5V,O~qb7?!^v޹3NHo_/|(lbY5s]Ƿh֨7j{E݋0 ?US SI~W|Cfp`(\|e?^ˎijuN;\С!@hQLT N2L}Z2==100FC##z?m;8昕|GGg'üѷd ֮= .z÷ÿ;7$YMnY3q45hLZO粁{\Ynj3{_\`xMܳ{;yq)ŵmYE8[Iyhm=% *Zf |/s-)%y"+{p3J([0p2tedbP*Iq)9ٌYĬpVCb6c\uɹS&[6=Zlï!O( dA|YiT <EA˧Q̦K(IEs[ش|REooORJ~6_Ϟ={R* (#,ah<&O$;&[֝سy?#֯[GicxW}DeJ9^~%\Om. YwtxFe - AsjhzH& >DXTcƢa0Μ6^ {Q6R 'd=8x~z3\rˏ瞻'`hA泥#e&T*1,[6JJjBqigRuJRD[[Ksm7RXX  HFo~e߁~¨ι ` Ua<swN.hE ۽ac4uPG%v0;~۷meQ{Cr,fqP*o3p`b1u{c[oGyJLx{ 3^uxv\.yh 0:9aqBӲ`׾-ظchkV,1m4L<`K%LO`XBb4'P_ NjRJVZ%Ke֬ZCRAFkZ[ CC#HށR*y%>>݀Mc*$ˑtZҞ&ƘTI݋/{16mțt xhQڄ~Oyr&sz$SunHm<4zQl: JkX5֢Rx'׿1"19`xx r+944DV ⬳!+hx. l<7]jo[NѤTj?!=8j pI\RL^я~Q:;rXBEaR] _~\Í|ݻ15U=~7#֯?ZF{g[oo/YIK g:⾭ƀ}ڛ+L/`9w-8xEz&~6K&Ql{4i-Y2)ҞNX!Fr&GF.VP`+c> M5`K( AbXleX# @!lIVINҚfjDQP+XJ+j PR!B"R(%<iMf$@bǾ}.Ӭ_x vennLMVX,lDLWj eFGƙV1>>NPH 7*Z-s .<,X@>gh?8B1R62꒬R)@0=]EAww7 ygqpkWeۓOZ%@*~w\ЋyO>4Zw\v%tM?;ocS{Z.2xhn~ ALW{< eV,飳-Og9LJz/N=|,#u5]݌#ClٲѴ UZt)\"r!Ȥ#I{kLW._WTy&93<?_ʑ2j`֎-2צul\$Al)Gbd ;$dJT =O,[᙮ ț;hلӋ-fpG֨8+Zg!94W1DQ2Kx{B1w1RV*Oac 2S1po'Z"N~.@-3(*\dgx)g#3Ј=XJlb6Z$Zt3B$jdY?7K&MV'e~qlB)< `?q]!Pt#JI-NQ!2 gZ4s|0cz>挆=_" "YrD"JFb%X ҸUBH&`1qFTJsH3UfBI.J5.6 zeya^6(-0 =}ՊOFgKHڱIrzvWR^R16uJ09]6pIj5B2-ŕh%{bCY9Fv4Y ,Tk Xzlxe XbY</(tK9$ о$Eg>" U䳬W/j`W4iZexh|>tuvOe;uzj PuN2=]Vlư0bZ`Fl|O ZTt!ADFyO>hpi`Aq7FFISo6&Hsٿ`ƍ۷ YX &<&7o%.]a: 9_'!?|_w,zwO[' v92LT+KE8QDk_ 8>VVl#t~630B@Gg[*sD8sB(rA`rbRD!mFR/cg"7|3m6)KDjJf hkkCRT顿+zRѹjձwGFY@TRD#ﲐ9 S36n-[xluǘbn O B4!R)"-?4LPP,[Ehmw(/,?f "u`z$]]]K9拹Yf%~ƦMw|\gio/Cp¹H/ "t=٬Ð Mn5Y(wEs}Z"ϻR'wY+942MS |/GPaٵʒE::p0lr 87]3gzIEƟ);E%LA,*S)D9u4JWᣐ8RK>^Qw5OIY͖]Loi{G'>"@%>RR&fmi9Lka7] vwfI573XZigš_VD,&?V,60MsQ7ɋ:YI&aReCkM.C^f/[oY G{C4Km;{kMt!'ڠ=yTt#iJF)64ʂ\!OՁ }errjF[٣T*IDJRy~}7p{yx`V.c``^y}GKp\ \up${l>Aadd> S.SOrLVsɌ&l6g%f|zXc8vR {{Vd]tM_cXטm w5B@R%_lcCr:hoB|ߧV`N&F8̳ !.>xo?c֞pW`dtj|zN٠Q7dݺX|__ qk|D٘{Vvkbɒ\ K!&-YH0"<Qt8x2!vIZ&%?fb Y26t6MR)ցFgҝ髉Au1ːt4a4AAј:1T@^(|Po9j RH0r2;ɋ E]HI$}?͆5RJ[tR`g/PBFMhFupҷl(3~>rd7M}K0 $t,M736GPp8ÏӹԨUDN)% -cǒ>U쯍1UixWS$ C(u[`y7m{ZCepo˵ 9L$;ֱl2,XyEP$ 5QhH|?GnF9LGH"K3hoogrrn V<ڐR:cb(XfMѓ}}}jWgg'R˗~zzz73tr&}G c[%޾.x8ur)LNN"#[q|O,|щ }K G_br^w%5X.YucX|_߿4M<1::RGy{~c-ͨA^\.Թϣo$ȷQ*'fu2@&昮Ae+GQxǞ];8\7q> slۑ%@"|5~̄4o}0ӛbvhMgIY;33kS癄`6'7q=mtVoObs&(=Ie0l3mF>Oȳ~AIyP'Dži d?!rsXkF_o]$e%xRVI 8':n5.gޯI4U1Q- Kkm+ V||3t<U4q.H6mE+~(s_1D";8;ϙ[noZ˒%Y7\B(6CB5 `! 5s`p7I.djݽ{۔s~sW+x_}泫sgΜi<g߾}dYcvP:-u3{lVZwol.n_<"k h)dB_|1 ,18B\X:>J 24s+Ѓ[sS5>4D TuOt{J'Zctww1^iܼO|s|41X~x0,\N; aI̙C>琶l )6GL IDAT)yϰ7 2k4E'PaDa52zc XR)nl<3y {=mQyg6ZxA @Ȧ0i"ȳ)q]9V`|&Čl&~O +ϭנf9g1/|;=׼5d9v[L>HFKVBee (Op՗k_:>wI\.}kuy;yGI8@B\!͐/~IGg/sETU45;4z=CikEVX/8eIB1-,/{Ky%Ɨ*_d*]TUoBii)0Qgђ ,Gc[!kCXBT+$ 1q0 X(LNN2.wel+my-ZĭފP*V^nj<V7tC̛7 dӴLƲ,X,gO> BI.Ll:ܣS֙(p]M6p= p%&@c\i#W!1emS7mu7D~ĺʶ -)@k[[{edd$6OjmFFm۷g-mیwqy{?C{K ɳN: JZu~bPMIپ}'\ ~=[FKZxyVX~S&&GXz5K,bΝtvvz &y_u`; z)pMP 3O,lI*Loj>&YQlLiJG>KX<%lkPM r&Ogal| "֡Doq'4$Y8>tz,W A 0L "IlJǞGaqu8Sw/[ȶXc6Tv}a"^'J5 wo2t~%sD?@=tN VN5Lc.Pn,6e6K6!-tp@ >&3f̀?OۘAa)X4&Qe~_ 7^NNe$@5zz+Wr~;E>O=X`B,v ًH[6jdϽ_S8m`)~vi_iNxL.K^㆛ndμ\p\K﹇w\q? ƳRx,(ZPմi/\w-A}NCh$mi ^ 2*<Џc۷mG?+Uzy[^fG)J0b9tuCE(93`5[JDԋ(tңLӐdN|])LD>LC|"T&ϧ$蓸&x K2@e:;}Sf*D@!qםwy{7_^s*e򵯙NpB!I1h\Z!C)=Q€X(S ^E+?y/(r򿼖VQz<ѾO.5]e g <<?pӍv,;h-Z-%-,@KxڢJיKHb\z1I1 JcYl 4 xɹqG?Hf^?*hTtK\+APT}b| Q/8K022}J(VV|zdHޡdA`$Yl3gd2fϞ\,3<3qJXh{ZZZX`wc޽̞=38L&ìY,c9ZFV'NPw77x#^0үZҚ]z{{={6۶m#199Ikgַ:^/ge\OޞŖ:S=oxU=o}}?/ x^LqRL )<w}]m>!bTTBJydk8餓ᢋ.`xRrXWױ,1r/ɄR4;pw/YeA^Z?|'˺;֡෿-mk_#o>1zC4&nmMY샖D" K N7T#oDkPDچDyƛI8֔sB!9t.Sx~aWl6m|ccX_:R,N =Mރ˞NqٱoYzB{ġ# xw^j~|OM+Oc{ 7OvEq|;wSHaկ~Jk֯o#{tttdPW>9FRV Hg@nʽ_1JI2,lAnJP}rz!dYJR,\.s-NT*H)Yn{aϞ=qEw^8@Cu0)e\r=*e1kV/lttb6z+k׮eժU |i/ #pk ,7K,eYc yXme(J8vj.2&KU lgABg)m_bo#u n6T )n[R)RNO<۶r̲LN'I)`tl!},֚y(ɱǮfrrorLPmzoXfM j5wkdS6j5hx߇>n66mU?Kn۶]T 5ey\o26nqezdh~fu*hjM_gj07O֟h #b hKGs#kc~v?Y}dH/J#F l٨r+hfDIKH}žJB8)6BXfI0y,BX-A-5PK=,n)Z ʸ‚ \Ow ,6*Р@"J XJ 2P:*a",- )vHI2I0u`O"z_! +Цm"=Lh;haWV $yiLP!?Tz2bbh:¶Y&  -lRD+BbXXœM^(TxVѝ ulFK4+iR0li1A[-WeǏÿ5c[7<"IB6eㆍhUXE>gÆ ٽL6K\˹?eB h* {Uhic›ky/ v/@ecj iko?1y{+cϕ|>ρ룽PuR Kξ\`WJSPs=8S"VkMi?㌌mv162A frtG _R喛oaMܿaS813<>&Ƈo'J6VXͲe+dRX\.K:W? N;:(ZǀK*Atɾ>6o~浯~ngɮ]rttt `rr\.KOo7Wlٲc9|.M6U 3ΈYLQ)h0Ҏ:(.6mj<2bL~3 spy,Yµ^7q"A+88HVcbbPC[ 1ss/;I;ry- fA݂i/S+S5i|FRY)X>P4 Rb0===j5ẵG`m'c{xы_@%B{Na0'#JAZ'1>>$̟?;3Ml s9Ph144޽g…299I'߿׫oE&EQcΝd Z 7piϵg\JgaTBIA6#V Ukk+qp,J+{OfʕwF{XmYm]fͣRڑgld)ShQVc&.~хl{G+iz |9ޣٽck KuKpP^dy{Nr\~W\mYTE::Ibʽ7c/=s \Խ .e -BB¼so~ #1 Xj5/@pټoWU+KV#~lșϥw}tu{nx|;MwwykY|W4 :v>$&~4TA3I˓1ߙ M}Me#i7QY4M"N'ɚMh!`}DVߣh}]1* Lb̺CRsS iX=ZjB[}R"R[GuG'ec*\4 ,f%6f8(85t,R=k?冷ms9wom۶qUW~,X%Kk St0 s3`84k~IlJےeԻ:Xr9rbDO?G}2­A .B~򓟰vZFgyqE3<뮻0G)8igg k県e˖QYj{aΜY\}\r*kzL&WORGZ&P*Xp!>Z qªl<g-Er;> =FwxM<9sꢷ]9ܳio-ZYرc[oOt$ AL#N=KN{ךgl{4*5v M8J>COTNec=gȹ,1;&dddMI)QN[JZVTP{IP(L)h5"@(b"AEr,]ra舦}'+~CmdoX1 #201gm#}v=;"KdS#˜ g KCi1-B%P-+ Zj0r4$`e4n2{n#a1KK\n~ 3'ϴK@3qP(!O/,YjRXZB!HiɁ~x.d |Wi)( >GFѡ&9zd.c&QB!SXgU.+>c_BߣkU>ol*^tTw>6Z8?i56dѐFĔ0 Ph%dǖqRxM-oc`"zzy?_Մ$mZaMX^(P"D^-#jJJ ,RO1b1U'w|ܴb-(+3`7QYLQ,u)JSV-uvA*bll bx~I-- w,ZTf||zql!}={6B!2uvvrM7qgD繡OQ:L֮]Q˖m6._B[[J{tvv0>>ƬY<̟?xԍ?ׯgdl>V^qp]7\5] n:z߃mzgq`rrUVsvz&e+n_di:YW 2PhE+_׼}} g߾},=j {>o*hiRx^|&ŬVXcKZs9̟?VRFdU'y'a6 d"KX\.]mL|>8Rcg緿ϯf$TA荠vn;XbK5˟[Ih(A|dtM6ĔIZOLM9L'CV:\XV4i}04ɠ4Q%h{I x C4RRwn%iKI)Ɨd@K&.w|'K,YLOW~绘(!-b;*Z-?xdP$WjGԅbiӱ>Ə ~~ qwsE'qF |Rvd)/`RK d]} p&Y )]6w9`$4抩9QX,zDi1:;zZZ '(-RR(SԸmŋ3Y.ʭy^K/Ϸ!E (TU29r4W`ddZmbq+Wɧrsi&ͲؕIE[[r spnk|B ,׸;س{P`MVKb1-[֊8RH.PKA|^׾[X&@_"Rezp@ܞٻٳPȥu))Kx`n'ʰ^ҹ<%2A`@1RNuk7N;Sy&NQUX|9f,sםwr޳ϢL6E*mifPtvw7ڤ\F*e$y~%\2l|km`b yX|=OҤ LMH9q$"j$?r>ڬ'hk ) uhx{'!jI.j/g˜4&>ʋK씤')L( 8ADmCY>LsIVΨEDS/$VIBMo8f*"-B7||s3u*I,i!Be0}?auX  #qBj0!nm6ngn.Ӥ?eti3ϟ"ode|+Gҗ^J7 - m|q,"m Pq,, 塵8| K:l߾6l#1Kp{@:f``---?W$_*UJـۑ"26rLNN ROarDkk+gu&_8gqmwrԲE,Y8'r<{'Ig^C9Simr뭷rx"n uZgdDB*w###tvv}vg&PsebbrL^EJXrR 1^E۷o׭}Gr )+~R !ŃZk4;v},O^\\AMRbضfv0Vc`9p`t=RN]vk.|g6||΅t\t!@|aLJ;o6wݾ?Xy6,;T*o[*se\~[׫< oہaZ[[fd2N;4*2E!߆Fr-~ЁQzok^J&%24C{Qhm]]]H)c9a/(9H18z!YJ:.5_n~,TQX!׼f$I+<(VOl' EPB4%Gc  qhT$KO%BT+%+Yq, .Q]*0J̙z^BZ BYhଌ1%L W !w1m6W:!b9VX1]׬cr H8䷴⤡Ҵ[GX edD^`!9Fe χߟ@3qPhlNdws"{J>^uI%M%( LcUF *y2N! |Ri#<-7RM_VPQ@ѸRG 0ebc21uV%ë*/6x&<648ۦ@W*H4d'nr5@H둪fqE6GƋXvJP tjv;)+dXb)T-r\Kw6*OӬ^Mwk֬bwᏼm[qw|?ſ;Ї>sBQu]GOO_='O8ŋ?_83,RDZ&͢桇Q*Wjϟ0{ |4g"K,v,* uF:cy:hd_fΝtuu3T'Xxp+۶`t|^)˙'Rm@8gr [ngLKɥ^;aTNG.=.l}--ZZhDZÁX,y .ර%qԲGWsY'o /`YlݾI;)vogegd>vbdjGM^g׮]wq\s5LLYgE6kYeYxO&CkBl艴m^HkK.AWg iko%|,LrL.k#cq3IRQghd:0}PII~Ƒ1 1I$@? AZ(n\M@QÃJ!S?0Q!&=bt,g Q:LXS)y4WA9(TШZh92!$i*H54,;W#Sl@# m'X (5kx"?/ PhS d liI`!hǧ'J R*+g}TJg1RASɈ1N4QɾU)q)+`M]2DY?ZA*h 0IҰ@ oީ&I!\)-_P''k7#R6==IkL0VԤZv,5kssg RkUʧoJv&#AαP[-!QvLQؖSM[B뀳?> N8UmCz8 =XZ}s9q\ݻC4B[[aERq2L˼uo ii166F{GZ-4~:;&Qh-'6 ֑Bo>4jTPhR)ǕFFF `hht:m*;oGHd}ϷRƏzN^ͨaYqT*ӾjL&y ٴit ?PŬE -7dT;.y9X)4)$=== eݺ}[}Z k֬V!BJFGGsRwtwwUƤ4DZcd">/wi">qwt3x,CEU1Z&h܎6 &2UA(4Ҕ+# ">ȸ6£ iY('򶮘$ԭdN`C`$X`R( JJ`#-19" 1hak-d2YU@t(3a) kb±.Ғ|+Bhs 磵M=A_ఉ`mҭQV>VrW#ӖđE %u_o}#it+m{8Sc82WȢXas&i6kYVi@$lt$m.d$B(ծ6kN9gΌv慕<0}tu7G=Ql/pٳw+_2Ǚu8nz?Ⱥuyy5ˤ9&Ra1r])֮Y 1660jB@FTj΂JUff&a 굈feT*24bt:K62 2?_/291R]=ScYn?_K_v=R'{K}ͮ]8=97* >|gg!׾yTu.yF\>˅^x<Ѵ!_G i}Uzxs IDATLZ~°Byv__fIw?_2~.y)׬c\Z*@.ccq\.a? _~*jX: tAE?1]Gl!۲ͳœ'l/~6si_ ̐ c| ~J,K` K#ɸ(MJL$6M%ZURcDʇQNDR0 cDD8MB"+D46!ʉ}ZM-F#b%U^#h )0Y.uc@b'B"2ʯF.BI{%RH%$h H%A*`lS6 B:(7:Zq4`@ P,$`Z&L)D<+eA1fhebF[HQ^$If0 (a"H^8o+@&"u4,|%P"]ZI%&e0pI! Z ğLh-XHʰQ`\gL#5m G'Yj5*LQ{ S8t0l;mLLNAR?E0K##{B)y{9q$~J94HI{hKgZ)E[g~ CVulXyfJNg %Ur$jhL>g$Ҷ|FWi+ mH7W(TD2\K_/@׿bCPvj|>;~|SG3q+"z%TUyGG.%(RRRD2O.6U?~cV4Ꚏ6:::hkkzztv311 [8ur{o|Cq}}?!Ɔ!RF`·Wٟ R$B xFiٲi=_ҿsu?O=f3Wޖ٩9?Gng)F+A5LMO7oE/z1yi|6{;|+\R=,LƘa5JMlnX X<)$`G-h(ѸF[!TLGE :Cp "E*% 61ccz[Hܒc-Ueia\"qv$+Yo3h{!m О6x0~/G FHH't2ɾ\Z-@uonV6ӵ,LeoA<7VMrO.?XID4JXb5S>= x2EXr=(9Ro:ځ!D!Kw0 RCOa]K-RZ>u㶕 yedz,c#8Pd%JѢe:*g!$/L h~PŝD:s-\p 0z :4#k'\݇>BLr=~AvSqlwOb,sF/X0sO ύ-&]X4?GZ3=s=h%E1$^7y}IM- ˓ڸ $* m' Cr1ݭ"lXhZkljaJauL3;> f[k0D H;i4tFcp62!Ƕ"aZm1A,O1k)MʻF"|Ovj"vVf!b7Ml@Heбx9mYpj{1IRf"A[1HCuK#Js"5=b`EZ%m: LJ)| ]W\lDTvF)5Aēm-׹Srʌ$,.1V|Ox8*a OȺu-ybj!u,q0) &Dry? pB5x膦RS2ߠG`J #x!6f=`YG,ec jPkw~_|ۨ 5!i.y0x%ǎZK\n(9Z͆kY32twwh4صNcϞLϐxk^C61_uERJBj:+Pظ~_r7v|BHZA\ZىBP.#vO>E-7o/a]lܸ`<ǦMRk֬P(XӨk>>{KVRaMM_~#G*"~_űCǘ-oe6mBR6ؿ [l`f8Q p<_?i\?dEr('`j+hKe491%!?hguOG`$dܬDw&I`"/[&\1@d_I: X&hok\5siYLlZ@im3jLuO@'&̌ ;&N}1gl`( o?ğyRN7S'Ob޵Fj)IYC '(Y,]=LNёp~_^N!BiP(# c޼қG'x}FHM^+.Eo m4"ĔaBydSi\(d\BPu|m۶pɥ)WT_ʹuP.sYj5bו)jFǏI!DI+ Xj=O^#3iv!"_% dbPy y9К*% Ez_f-@unXB(jNtB6p)@!Raon%j DDP#+iXY,j- ku0r_ދI  `1ZS,u CC[N= ] qh\S\Ϝ621"!\CJիO} "4U7֣[Jq]#0;;뺜fH`-_ξ} 뷲kcT>Ztvvf0CCCMy;vl6xG__5}J:*BT*dAR)fffb6P1!?Ooo?Zk=J@EZ+O d~#B*Ƀ<HiLYf/%Tf̧n\ץT, /C2iPl޺> طqWaLzL1\z饌8x0︐; wlc~~kO348|y}?x_MX wp! 8Mٱc=|>~tHKיip 7OBC)jAK*^8NS:h4r4Q?/˕ϹKWp˭w>v<+^ R۷qrNNg7|ZKj|oq;+84anm;W9n'[K/UU:|k7?|~u,A@`J~Kef˵\zYk#ϟ8 ,q|kv]9N*ga Dǀb'nߓ08"`6hno% ^b9`m3 )J68 E G"I(/ ʳ򜥔/2_"hh&ҩOOw tT" SȋE #G&@XB1Ӂ !Ԃ|ޣP(u45ll>/CQ+z2QJ5V bWQ1!#%:P1M1(hz'% ѿm͟Vߟƿf| 䜉j &DKK)1Vdm[×?q= a",:" 5M&brI|hq9סQQILjqi2J!~ e k',E"3{$`D"aK|Ʉ7%rXc?~^|sm_l޴R>%ט\} ڇ?5kJ߰|1l_ͩY' w8W_}h_>>8ɫ_}u7{*Mm~lߨ^aVB.]'vK{&ǬٮnBl=,I[%Z*Juӈ::26%&q]'2xlSQ&H!AJ@EA1T֣#UYCʆlȖ2iWJeqBpS?[6p^TeN8LO['+ E}mdryR8`/q9q(}+NᵨGLG5Y1L?I}ʷScHXm34, J0e~J0l> Yh(J+^d\*gM8Mww7>SSSJ)R/k-D'`J)*l6cBVRi9r|>8O{{;|Y3By=܋ۿ'G9R,[l`5+8xss3/}#\xck_ :$ R DH?@'n.#L;;I' JE _"Dy뙘<8{v%2ȥ0L0cO>RR)טcfz=rw킭s{y,kV080 }J?k rj)T<͚\.GEqʹ&ă~ߙu4*JFFch|L<87ɵOvxX,cyH~1IL,;Bx /XBA%}y>_>̗]&hk04|-瘜(]k첶jkf IDATqe-|sw5_Mg_G>6mMGZRȏpMY$ *e 6L-ĕ.X2>a#4C?G1PYDmfZ)Jt$؁њ00ڠ۔ >&a ьO Ԕr%q{;m~!D/^$ \s:'KXӚPi䋜iFP UtM"N^Ō_ W @bm 0Ig.LMαr0ss3x)Oaժlڸ ɐQJ8Z uR9 C}}}͎EhV߷nz{zڋEFGOr%W{.:=KGW7]hUȤx*Wd0?<##P% -]nwm~߀u|No_l0hr}-:o7 ׾y:tt}yoqJرgm(OԫѱBp>6lx+Jo} KTU " h!\W0f%GeTQ?.4=]t4l| \HO2OZY9D BB0WfXbp\ϰRC:9=\vFDysH4j>Lz0!uR^v ϧE/RB6xT*xGZC)G!B*EPZCZjJT{6`iTR)/|T*+VZ֭uFGO7B@rj$(f|GP6p|_:aUt0{LMMQ.W| 2Y5u׿i07nFAü8Ssd3.6FHpwlVyc:=co\.=e;/FX6oF֭b*^6[oWc)UaLOO7`M"_}LML^|_??ӍW@yss8b۶K&urppboCC(y{lO4$Ss߿RT7ZsK^={x׻'?y#NcqS3,mO~O hK_/]/<9&<ޙ(KIs6S}D @!s+{D!GXN%!ĆB?G.?jE}}G}Ɵ.ԔE!o,xF -YֈA@_W *)cHI,͒uik,eUj*]82i\S O^9twtRJP~ NhȦ<:`n_Pf gJHRR/p.=XK%~obiH_^M\>˦+Xa-mP*\ƍضm+k׮oEHgHpq4 * }jQBQ4{M@Z%Nlv8!J98pjG*  yF@Zalbu+PcW ?җr .q]:(&&&uq]F:T*A*MQA 6zYvXohhc( 'ի8yzgذn+X~=|֬<7ˉcx_s /[݄E>gjjZ=nAjtpݵϾG&yc{X,jZ>mR֚3)oV~WBy~kC\G*ŋ^B߳' |?mo;LMqEyV+pX~=_X=2ºkQJɤNi}};^j 9]-tS`)OAÂwG2KAH к`uP<eZ1I@,\]J%D~ &O>Qj>+;Ԫ/i ,L9_`-Y!.uB_C6e޽\tхdYu"8͑f?N pA\ץcǎ144DVЁ~HWWt'O2;;Kٽ{G'N/~rHҩ4мe׳i #Wk(y3J/z o T*0Կr@I榦ϦY=Qu2ϪUfzz+\:;رcJƖ-[sSS른E/fvvkW073ַkz024\r6~V* ?c1d?mZ-<)Z?~޾Vkt[<ûIyYӧ'qIPuSkf=XkyG9u4|S'==i>'ڵ#|_zpdƵ|Gw~6ٶu+~:n 1?J91O>g-}~&~,l*+V6к{ 1\qIe8S_ߟ~1όHEmF#D~\.M6%balKw2qxҸ&Tc ֑X!u 0>^*r@b!<^M$H ۳nL8GaeG?!YO8PA6'C:r̗ڐ(+tuuN{[Ir9S('5 ?'hNa`_Rpg13=E!Vk92n2)U@*qL<\2Jtl(m%Zk4( #G`V 6$RDcMoKixQ=A+%6<&<ܪeOq-3B )54g!51kqƵOk<7q%-ij8R5h2aa ҄AYc5iqEĵO\125+Br-g!0P#^L}/[o#U,6g滑ry|!m4ADtv OZP311$GyzAH2x) k֬k_ze]JX;w:jeFlam;i,y*C+!{06hhMXlJ JXCd2nVjϗzF)†f||M[ȣ335ŻNNb#IQt:U #Xvk׮bgR|; Tr;aF}!"_(lj&<u64#T*tN %1n H)"YS Mk\b!q]1Lf'>AXfn_Z Zer%+Q9 PFVKt&ɮ#; V@(ʀAm#AGu$4\mH,m1HF84sW N6Dߨ"~jo,-bZG3U,9ew./?ct\ 6o)Q-qRXь: 8m{Stwwa:j*oFoo/ZkJ"J)R4 . S.W~Sfg&d3X-,S w}|v` QO qe8ʻoUughFdٖe`c/@ba3%$%y!pߛ!!on.K%a!&^ca,bYh33gGu9ɲ1FOΜ>]U]U=)%و!cٲexHF!C=D+&dصM˲qZo1MwOwkE{ JzF{>+ԫ 6mcæ j=}|NU?|/}'򝞞N>JJ|?`rz !;<_ODJWX#Gr< Eՙfù‘RLNN^ZRRbݺuZ=M_M^r7Md%kׯ oem[ؼqxo.pT0 ͉5/{! +ijC̻~ D!v.GL!͡<(:WOW̿Bl H \'b' =N\qDE;qF2D._„jcо!xϳ&.ht*[c6b_*D5jbݘ J!"I JAYu[7⒋V8rdupֽOT[K^r)پ W^{B.OwRܾ3 2}%yd 7)c |k//|z;Y{݅˿n-oYĘa`RzY3  3`A]B~cIDҧ[]&"bTK +:Iv[qIyC,ܜ4B[OcE|p]"n#:|JYu!h>0Ą`~-N]{⹟hOYP'f㐘"881#WHm K{L !PwZ/ c;)D9&umAC |)А`q5AU lo.4}2JY}hJZ.MJoj1QG[[%]_Lexx ΡP(P.RRTK TH\011/j#G044DѠ (Oeɷo|`3\l1kWK,xYz<]x>2rWZvꢣîHFkײrJ֬Y֚~ 4]]]k>w+{Tjl޼ǑS,q'b,9\tE\wu#ƍz\57MFGXW]qo!ZWknyuc7r37711s>‹^y5[=9/oIy+/[ˆgwy Pe%R8~0la n2rSVHox"'Zb,zҮY0I=9q@xYEBђnC 麍7BmM,f--54"D^ҐDTE *V(@6'T~f}0DiOH PC Ƹ 38@J lHpn2] `C{" 4"rPdB +AЮJ$ ;8@2tl6K[[st&)<{-Ŷ,mYG | z$˗/G)bjjAzB@GGJ%DL_o'K\s`hW O|x?ӿ J7Z h􌏍xI\:U*OW:~qvܱځc 1!J:><̡d%!`vzBug^kPʰ|2.b"ICs3,?9]ߴǬ!i458Q%4[fD>! ERq#w! _[E5!LFH"Aթ7&dv|!wɵkx:?{n9`PNS5dfjPgB3bu?6́,[a\7*IVvvY{n ӕCttK.h=w޽@SG 3ECҷ +%LV!,M]8DҤⲓj/F]!Di 1 &6R<L.R0lI֭[ K:```(6G6qrBd.cnj#&Ju D o>vM_o㓓پ!fUL)PS*U:K/dR!G1CHdy D{fuwwbr9FFF\?4ժÇ 6}K9c"|nիWՁ1&pE{GZFNJx <ꫩQλ7Rݝj_Yn5x{j4]+ "z%^Fd0h\U#s>g011A[[[tvyB!2vڅ1uAAІشiBnƦMС]vvo"vBiZ4r >^$. |T,v,[+Or++mMۛX-lZ>X1hi # A`2x,gcּ]Nc5]b85'bҊh"p KJ`4ݠ{0(h4fQjC{\d#w$d!')m}9ɿ0F*:}}=&lCkMggOnYPkR, ÐzE&q4`nBRa||Gkja =2[!W{w)r6:04K/M36\@X}&&cɒ%uPd 9)::NO32z|a5r&gȕ P>xpֹgsn6s&l\yٳxϻJ[GIr0Cy\%/xLǙdnn|>pC^jgBpަs ff4aÆU /rs{*Xy`[4%q:MCʓӔJ~:;ѵ*nf&]$ jLk`38 !(ǡ^A8LEצd榇(VfV]$aJ}(頵uu4|X#.^S ։t߲N1ݜ9tr5kq`Ajcf(! 3u>nf 4BD1A M} 9Wg>GAuh(ǡCho/>rKR.ꠣ,9/1P-K?1{_dž g֖/ w~rŎo~\V! ɸ.===\{r90Ɔu'q}* k֬˖r?o㬳!IQ>K,adddv` R{ u-#uB8'u !t\Ղm]wWԪW>V# x1F[OmJ]\}ճTӃMwʍV5_'FFGzh'GQ6mE-Y/Cyvnʕ*gu]DRa@?PoTY|kV8b|gnnb1Rmbbbr͛G);wrUW~tI/er^O|__l%0^/KGGB\.lٽ{7G}FGGb޽xGïnj !LRzϳe"]d"@Az\.7?2LIp<|7{^eU~z>Fj #/05]AktL&qo@&+YfwNǵVG㝏,Zs8vR[ zGh`% 0v0ACxRYWE}!?ouHSzNjPZ Ð;wrg #K֭ n  ,Sڭz|XH$ p]pŕbddUVu,Y\.Ǒ#C (A= 4 <=4 &q,TԂ936>b8|G{~*s5Q" k(GQ́Yj5BɆlp A24tQ.Y|K_/Q91:::1n>]⃌ORA&^#Sz uvv211AHV*RJ.]ʑ#GUbc "jb(WbCw(u(0. n@hp[/~w>G9u[jΡCY7AN> _psjZcg!xO1kM[ziٱAZB$Xk&r/_ H"5Z'Iv23b4dguah:Yv'7t,ftxR&b^-z=52Z]L,|y"р)RS?@-yA-*eנa %w8"W° Z-Ԑ6[TlT-'uA.nJ3.wNMjiL3LPTAM74'=.o԰E9`"6DcHCr+!e_gZ>cOZx2 S}i@Pl\]I99.Al\s)Ǖf4hh93eO[[;cc*yYJ7ndϞ=H 34<,FUj r9uQ.CmE."F`ӹCù瞋7X:!5ɠ/R(l61a sSST_Jy>܌[v=2We*sqr6.哟4ٌ$+V Quk077T* MBAΝ!}p/k qW\ď~x l7##c82Y l1$LڮEd!O}hh-5L I9яY"s+Ɖ-o}3/Y5FA 9s?m?K2;7{b"s!v˛ilɟI1b0fm&`o87^;<щnEX#"AF N] ő,UqoXܴhsdT"6}DmELX;-G"m|I$P.F߅@0 IDAT:Փ1y M!gb-?0!2fEAݷh-@yAJ:0-g-nm%Z[wQ pOb|l뢌 gHg{1##cS.w3"Ȅ* ަ&ux&/f+ХЖQtLTb(# BGa 2zgRjQReۺnr~(z>ALD#ܖ6~bN:1tκIp i]Վ@:8C=7XоOG[N!:O==`"D' o;TvS "c~mbw_=0*4BiqnOOOST(LOMg^&&&!ϣRP.V77r+ #ds@kHA$L#C<{~+rs.`?R:tbuo~`޽߿+;|*}kzV{wy ~Wzu>BQJcǃ{QۈUjm4\p#{&%fgxͫ^} |b=~+233ís-f?3n&p=Xj9}(YM)f2:N_Ǎ7- ' %xw]wcI& LJ M ѨβgÚu"&Q@67/S FJjv~皫ٱ{;/Kسg?ϐPVfrI~%b>oOm hZkzl.?D1 H8j2枀[OrVߖeēTzb:MR1: 1?cMRsʤc1c~ڝ.}tt,ZAehҥr%~Dl4[SCALӌxGy]٬0̯0mJkX(ccBG8:1)bc Hf4xqJkZqЍF#!BgƄaH5lFJLƂ*1%7YRJ0h/)02 }ȷ9 j5Ѧ,s8[tO:q m>"n1RzpdrrSn7155E65'/`lz;vh4Xv-w-< }YQ}w,_G \cvf w[o|7G"DklV俾} }sXl>C;i<1rE 4v= ^x-sry>ٔr4yOow~G\AxY4)pg^wo#h @ɦNJVK4rZ-gD)y(7V4GX2g%'O6+/󒗼 "k~|??Y>3{JFԪk}^&$󘝭RoAnlnO]hëKEH"PHF6-#RJ$?꽴|͘y -YA⺭LVw: Pḥ;'NGvCa5:|b2d‚T:P~Tx<\?_&,! v݊ZZ'bD;4(3by 8c֙j hM\W8BID1ԂnZb6RRvR_A`]ԳEMgel1 nF-<- Υ VuN^?IMjiEJ `b:E;pumxtCr>CC29 Rb!ff^nmLU` 5c9sssHUYl9˖ w9l"+V!|R[eBP(CaHPHa,Y’%V:%Q*83׿Ίe|⡇L22mmmfLufyx^Q.c8/|P 47| ]v)lg ~}x+^ARa|S஻bU۷_U+fdv c>sjGktNX`vv!J=}r|ЧWcxr=F}c7$zKk׬<Wlp&\Vŧx5Kx QJ`q:SSSt[Fگ:Al æ4'NZڏu>p~$@B${)"kUhfr4幐Kc 2l_d5dbFJ|i [ (=q"nnǚBV3!yK  a@<2 Uqr,b`$RniQGi (0\X !y6pRv\1MP,ֺJᨦx7~g,-P-DTsm0yf<, tE$ySDFx"}2J_LԊK` Sbu 9L@9B n@ǃJS+"Y=ȉ 8|=ݽd2V\ER~r9YjU ~3{V(˸r9hm\A֑K{+R%$}}}LO30i F4Yg_Z #X^q'''ٿ?gq۶mc͚59r{le߾۷o3\z%tuupņ T*NTDHK.[5m{B>ʕ952.qUW*򲗽?;j5 ?͛7ssEhyEm6VXk_b=l޼&#^j&-`|r vƍ2LJvRk]ͪ{+tȭoI7,[׿y 1::*(™oX0ۘ8q(]$v<Lk74˲ :'kd0lƖ~o]OO~cOl=Qc٣_6X@VNvF:c;wzB;vJmt`cX%z6c a3`nF; nIlup6v~]>i=c::~ղrrQ;%gFF/P+|uVL8vRR.2<0|b2wq=== Q*s;"6O}x6&&PBbdq!}=]]^L{AkM\FA\8^0 fj ]J0k׮%qYgw^֮]1vM#Ύ.{֥B:C[{j\.Gggett A o| c-<﷞K\xΕy[Xjsw _Jjw>39Rg[v < BZW_AVq9ܿu;zlK_/y<+顧cl;# \Gϛ0x?T0 R$ ay堤]ܵkk֯N {{{Y7Nޠ ⢋{enxN<4DeՔJ%2 Ze BU8B9Dz{~~#\wJ\#CϟS IZR!O!qs~s8?9rƚUtsT.|.xS3Sd=YJ2<+WX*zڄ8Z===ݻoMc$J,XN2<㼍g?=V$391\}a$X6YƷ\5oȡC!s* mw03;IZ?|{zf˳tvw115:7۳G8LManv4.8L.qdtWl+S5`?9Tw ¡zF1&rsܹd[*0ƐB,SD ?m{p5j8J@`X~%7cJ6lF?UTBByʮw-?grrGxTgg+45i߾ h8"ajɦu!0&HXPJ b)+Ds7^=&Mm]sMFhմPi7ODcEm9 aD R4RϻVįszN]7DGfo#.VOX PH)LhH$7Gb̶ B T{ q]q,$=G7ja 6& hLhZ': 2 Q-cB'@32L 48a7m0BbB6GIK)@m0FI!-H~haAbq Hl}ITR*NE @E5$Ao-g%о'i!mH{QMb#$B(Ht`@8kL1hHbB2`s'VmtQE 1 *T pq7z5]a@hZzڶَh٣=lxL}[ ^~Hָb$E{YVKZKS!C_ᗟ|;xa(BcWyD-1\.'Bv%Bv؍ֆrC&e= w}7{wGu[UI־y- C`012YLIH2ddHLBXCf2L`2¾exe`ˋHTQJ$V9OwWWWߪUs 8v.::iVc:EXh!OJTCH8H$rhKn g|t rssPPGNSN~a @2S% T >//n^qAkL6_߇EuB4tuuAe磷F㊦,'6xM; xꫯ:,]Be݋EC5䓽b~ Fe˻8y .@cS#Οg㥗_rAuۍ^}** AGYY1Ç}F(Iv3ޭ`뺝[@>E?ʲbTVBh: $"A躎)'CbpwfZ;"׋brs ف<ߪ9J ,bez#Y6 IObs+VsŞf\/bWOyGfr-,^KxPu5otPzk^&0~dH$FizYj&{n8CV\5 .c8YP4.Kb|M Aw̼ A֬抲qWZ;,[Y:dbdE /~\VVf?~G!8ڭ#q*332X?Eƙ]?ƛx[V_DhȉƖ~vb!z$ݸeeT]]]8|0wϧh<لZZڰu{8z8r|yȑ#Gۑ5҄/—WFq~ӦLƼSOEiqYFoO\.mrrD$Ѐ3g`Μp{\C(,,ŌiӦBUUa?~bڴivxcV $UUU#773g΄%O?C$؋B塷|877SNGNq2n].Λ~hkiÞv~ }Xqjl߱.%ee8Ezw ãObν8|$$p?~{>ޏBlh&ax[ I '  IDAT{}SNSqᅫ#ͫtfy<}s8S>$|>"4=!4&s/pjk#!s._֖v4wBfp>>u=thkmGQQ [QXX7wy`_&Je:Mc+'zɒ Yz)~o}drqXeI|})|}L5X4jTT=^ld8Y:^5~sulotc,̜B27ʐ$$PU?JdŸP! ..$H5EvA;CI㏿$5y@(sH a/z:9]e7_F̒㕮!%s,k 5RTH$?A]@h:4U5F3G2++&"']*p VID_3hQDӡEaJyntfd:릛٣V=[jYvAs_4_>Ik~O$`cX?vDE890]!zIG~?<  ǟW= \>qBoo/zzzrp1tww.'(.(8Evd|p<8rjkv'OD(B(Fa~ p+ HZZzlX'/*vtƾPRRRb۠ItIƾRhm-aqU؏38v[ߺHe:eewc钥Ykf+(GCUu] bӑE^nqί !:tG=AuH5#,@M V(..GS~ Css%O4pYџ!M6}%x*#V}]n?gzD^7i0 He}ԝ; 7ȞٱռʜHfɒy̬ϼFT1hwj%#FcD.,FPξf.0,2)됄g"ˀjf/YL)ef(yqBY$.ls}5SӍ1+bnw >F7dkt3[F EP ֈ.s;e|V6{7pB@HL 0Bj z^@ `,/5"YEVK6}̥f<##NΌ<[}+e6_Sd/$߹Տesd]2d$CE\?7@}4N(1dn${Al1;U%_1P[iǑߥWDp 3\y=y–~|gxW[o_ ރ'(.A@JUI6m p|X+V,pdBz8p7G" &Uv#//uuu())B @II |> ju:w\̘1+Z^fBYY)¡/\BA477 4nij~-t]- W|8K ݎe΀ CWpypB塼 Bd'T_sO*^$(x xǡ(.YΞ 5 qD&MĤIVs6 unesn7<OF*.Y[qCHPZ|P$hnjz=n_|0AWgN 7_n.z{Q\Q5a2MnnIQGUG#׃|_$4ufcpdJ36V㏑=H $ƁwS2i#HYq=F%\42 ƨB.A1խ٭&ldq#&##H%do c ]@ҍjf=]cv794Y#h ¡Ѵ*" #7i"c4pĸ afHd$T A,>t "̾v$@; ƶ4\ X=}䈈Q+%cw(``2ath}YU $4#XAvP&@JfP53ctrG&4'(uklPrFPڕ_WwwXhXdՅTūn%'5; ]9+ u9~0oBFO^^PXX`uux^EhG(Du,L6>}:Νk71+**ѣGQXX6:dEHUH|bϞ=hmmA[[qau+½=v(.A?-M/ K⒡ n/B Gqa>~zxPQNp '%lhƱڣhml+_y9B|[QTV`8%g~ 999C\@D~pn fήQX#+>_.0Q4M$n ~>T,{ :sjX Cp{<]_Cqa!rrAwO/|^; M"fz-A UFiA?,O>BN~.6 ŕsOXn$I460'h$Fj9ѝ7KomdP>?"Zsc}'~݃wHy {x~õ/.uˆ/X}h}7F-muQa5TdƁ2s=< #keנfS&3v盁ID4lR& cqM`v"'jI2{4mPi0Haf(Yvxzxq{Pdc//D2Fs)]Ս`dN#cL3eI ct{~l/0qBp)DƉΝ;e3Jɓ'܄64ahnnFEE|%%%,GP5s:$Y$sdEQۋx^ttt (..FCC$IBqq1dYC~~>* 77ƕ/DSLBII t %Xnza駡$PTTɓ'Mˬʕbvi\. ۍ`1-c)ոƳO tۅ?--pݘ9s:l,Y%޽$`޽աSLA[[6mz7||\H ==Ax<0F3 !=n\$# 0p\zhll^ASS~Xuhoo^.h :܊@ՔJ,Y%#ȇ$)(++LU"jb|>r>\f |V`?|e&\v)2)FhY@(~F #Exox.@&EDIY2l1Aonecc, #YD_*HvE9# ehV 0A0ud@3> U3>ƨSF 0Xa+3%Ybq>fU7h#pͩrZ7kG޷$2 Yef, #kJ>XYY:W24U3BfNL1V BYӍ>}t3hf^$@߀~I3fWߨBw1n|f..@P#$~g+Xs6}"?%``Ng gV+:rXB=iR\z4l߅cǍ0AyHw.^߼&G5Bp͹5.￷ C(¾} ۋ&k梋1uR***܆zى|A#AuY"j>)F$8VPEUU9s栳ƬY0glzI //>$C[3f===())AÉp=P#:~(>:UFò]`0?dYB~A>T-+0e$_kGm6p>Om6(.A (((Z%;1;*+kϟ74-YV!Tը?3彨p).(n:; ]‘Gwmt ˃^(/ķu-رs 0kL4CaA!Oj+_wr.zzz(t{y+9 3gQZ1eBo$/^o 7me~pW__|;9s&rrrPUUk---C._{K,AaaX(#K&K/}iA4ƺΏy8etꢦixwj*{=øp]w<:e"8''. #y<{nf͚/+Ww܁?O#k.?eT=}$sXhM::Nf4>B~^(((u]VO~:e@4h.O֭[0n6̘1s9> ~s+`q0~bΜ9ܹsO b]6UUqw`ƌ>}:n̞=_slOT1D؈?{~XW^y%0ছn¡Cc|8x ~ XN{{;|syA/~;N_HoZxn_W޽^Wo93h"wyqر~_uUxW /+455'? x X;:^|E;PK/͛rʔԄ կ~r)Xljjjb׮]8p~۟3mJH:pR*wVSS_|=>cTTT`ժU ZN*u($;N=xOO>7 %}o`D-hŪ$ڧ͛7kK}}=&M?`xw^\wuGņ K/FSSSP'X7F4y7yg(P @ L0@58[PRwXjՀK.o޽{E{{eY;v~'O?XqP\\,{9!wyX~}Z˲tR裏| EnnرczWW())<̀vtt_TVV EQG}$Gm۶ !8q;wگwww ~7~Iџ{n@8qžSO=U!%2!o]֥T3B~q뭷σ .>?sXş,{t^?I}g f`3a&123Pl u+ϰJHIڱ 4k?B^^o>躎+WB5  &O 8rH̎ 0k֬/K,D$%KiyyyXb ?oǭފ_~3;ԋIDAT<۷oŋvZ+83/㢋.B~~~YKsǁiZъ R-sϟBEE=J6%JE:֥TXzX`Au8s-grRD"qСCҥKDqL۔D#I82IeT0T?SBe>Cx衇 IfΜ[oO40Ekk+8Ѷ<ұ~BD0DfY9wFIII[li6;v@QA2 iTU㱧{^|sݸ+n:,X< /^ ?/"#C4h@6>3޴nS/S=~;KfuhJvjkk`3:fHXnRXX;;;}L>~Xs 7W|>ߠC)sZww7VX}k1}t{) A?HdHdۓh0xIi3c K)<+욦~#Ȉ%ٳ!Ilү\v¢Era%\?ǖ-[v!#?-,ݦDÕ7 &dui8wcc#o;v4edǩYfAuڵkﵤrސerN; 6l0}˖-6tt]O~~> IŮ]Ԅ ,@ Gsr"h Qڸn~я~7xѣqv b +͛q%wy=iӰyf֦1j*e)--šC^@ nsN444[nAyy9.~m6|x7p!߿o]v=|>]7t;4 G|Ŏ;P__o=ZT %J+WCmm-<o1եGC=͛7v4M_ WɎS%%%/ى_~]]])R=oH2QF]w݅'xw}7jjjPSS;۷o-ܒNݧcT:Mhoo~;477g`4$Fۋ~T8?Q4(~G?nfbժUؽ{wy~?oߎuᮻܹs//Xloߎ"{kg}6.\ק,z+?+%\/vZ[[H,..|XhV\m۶ܹs*vP(Uop`ڵXz5L3g&}_|D`ʔ)Xp!.r\yJ&Y]d|{C̛7;=j]'{1,\{.M|n콃9oH2QFŠ+ocƍXl.6}:.ԠkؙItꩧOSr)x\I~ߣ-VQjj'"rɖugOֽsgΞ.ǽu+B;u!J}a…hllL9([#[nBDDDDDc s&OuÍ78Ţ @D`4mADDDDDcdŊرcX&0fc?^#4M~1-&fш_|[7W_ũO>o|zcc#{=477#]tQzGza:Oam޼ .DqqqZ:M4rM(cHjHoظq#`ʔ)e5Qz WVH8~80uT=z3fo9qpڗ:M4rhdeߙ91w\|g8s0o<<ø馛EQPRRs9ذaZZZi,Xs9-G9sp 躎 /ӧO`\߲e JJJpE *M4޲ؼy38EQ0m4^:g>#={6N88QSS(/kF\.\p=gXz؈r:tfB0Q]].3c%}hhhM χիW"gFlܸ!///{vڅ:/{.]γ/DtԵH$lDh3zY[lAAA|ΝJ23PTTL6͞g0G4C1Gzǫ(..Fii)`ԩzJ {Auu5xxPXX'Nѣ;wn.Yc477"gP(ߏrdﱲx9{:Z}}}̲!g шC0!*`gZg&M"ByEo&V^$m/I}zhn<. >6l؀@uUU χ h)*++ގ0JD"A1P(`09sࢋ.B[[BP>SutwwW!+!#~DhoPIPWWɓ' Οgnb@vBAAAN)o='Mzn?~BAv'J?~---fWBu%''CT+Q&b5k`OȲ [nHW͛\رo$IBII ֬Yٳg?8rrr0eʔAn\zظq#mǃŋcΜ9_J˱p¸niiᅬ.h+V}(m۶>֭t~x駱nݺ|Q"CG}}}C999򗿌 6ؿCgXӬSNV\|9K.o MvڔG999q{ߏ5kW_FNN֬Yueɒ%ظq#ك/|PDe#?@4Txz]rLϝȎɎc޺!ĺ8ۏ͛g?$i%v;u"p<9Ӣ cd)iO)D""""""",Qc(1DDDDDDDD)17(&֐M """""""" """"""",Qc(1DDDDDDDDF*5d0(ˍUBDDDDDDD4IL@DDDDDDDDY """""""J'2X` PVVX/M@gE! """""""4bJ&ODDDDDDD#c ) (|F2-4\s7 @dEDDDDDDD!#6+fQHp8n=׏p(1;Fx 1Ǻ(ct+<{'G᳉(Ø10 Y4˖b<@szMzӬ˼)_UՍ nh4r@L5oD,^<}xF$HIM`bYϝ_Vh۶m DDDDDDD4v,񺞉g8Q5@,?xY@rRr|6!""""""q@ -=ceQ7gq#xY(2"ֆF@ pc(:2%"""""" "v1G˘lP/ѯ';-] MDDDDDDD@WW'>jgL$+z:bȘ:dC;|{֭i֛4w֭ox3 dIPFm'Ѩ`IQ8RJ iӦugy5g$&"""""""B@$o߾?DqހYAOqW#yd49{xAGa❏C{?p4^2&"+crˆ=8˘lΟ@Fc08^anDsEVЙeDDDDDDDD˺Dw(g\52# @@P/?:#9W˖ӬQfrfX=,k{

^ǚ':4?oF+h8#}XDGcMswt>DDDDDDDb:bg DF¨d fpcE?O% (zZ kzO| edM^`b=eT@JY&]>CډenDDDDDDD\h^c8DOGXde2Y@2vMKOtQ*%""""""Kyes 3@KoxMbk51?[F 0PѝL'k"lEDDDDDDD %=Vph0MƅcL2G\z/ /?4mg6'QdMe8I%'kqœ|nXҷO9ۉ#"""""" =< J53.ŚwA J%È2`3t5`M2AT?+c'"""""" $~-k {yDDDDDDD4|<ɞvz.}c8iy=޼ ?C:NA4ד `A YbuMDDDDDDD-gt~Mi7@O%3fckxY>=O%POL j+|-y3p!""""""I%j (TJfʤHR]nQ&m'"""""""/ѿR]FV l < 9ʹmCDDDDDDD%kkX7eL r sBIT|dtEXtSoftwaregnome-screenshot> IDATx{\Ut! LPAAˆ,5#,Y:~A]:ﮉ"*ME0" ?&f $tOUWwoIy^^Uu>ϓl!1=IHTDDDDDDddbhtDDDDDDD&.EPћ·`񋈈Jv@hW @v2Ю (""""""";fRA9&"""""""cRA-$l#"""""""g҄A%01$""""""2Me"iX&CH10Ηd1Ńh݌EDDDDDDdtDF7)11QاL aSA;[4RUȮi$+vhg Avt|m=>l7;ùl 70hBA= 7h;M5pfG M`cGŸ;Xೣcy{|R@5ؑ>=C w޿=7XC vЄ1 d3ϣd1@e{  wcn۬yʞvw@3Εl_A[ 4aBjlOPÜv!PM$"""""""=ꔯA)jcP~&M#"""""""k thi\Lc4Ÿ?CQh=z V4X4iB^ET4i\} z&e4Ba}/G=DDDDDDDvél9am3]:gT ij=?nBcG6۶n}e Ӹ6}hL* 5F2`5n }nGDDDDDDd;]X٦ݔ!Dz=M#"lk$posߊ@;hA@|׮!Oߐ>xZ{߸m6 pߎwLCz8}>go.o:L}ÙAPilٶg3!u1/pmqzLcL1e˖… ^Bu*XŠwpMi`-jWvԯeU@0m͚5WN:BI زe˒y}#oglڴm,bӦMl޼y?oH;wqF2!h{mmn>9MFWW7SO=źuw}{h#fʕ䪫˜g֭[j<\pGqvZW_=*kݼ zN^^3mڴ?lv3é&jksG}t(}Z/׼5֯_<(ϔ)Sǵ^wߍ7ͽ v.Z]ve,[ ||ਣ» R~_җy|"""㡫~ /@9z; ,WAh>?oBv]eU#""2e˖Qոy9s+cԩy\ve\{XkG?ʊ+X`˗/o:?O7o ,OW̙3UVqW@fڵ@E{sWeW_}5?۾Vk~znf,[nӟ4_=~8O?47|3s_rӵ~:ٳgsW/~UV~}{tIeƌmSXx1/c\̝;k|͋s9;l(oǐp'"";{W_͍7~;3;33<;oDoz5\-ܲMիWzjnF ;Q~Ӿ /eHIY<28cmܸ.'xbuODDd,,Y+_ 7x#>ƣ> o~^z?ƍ8ꨣȲG6j&1|'̧?iV^k>𧫫 #_"w~;swy'\r fj><شi7pC-Z̙3DDdOGGguz*gfq|;aɒ%c>z_<@Vc…zp@؟g{L>͛7dYg?HTn#b{}FJhVg}Ga޼y|S! [gg'g}67x#|:mxg}Xb@)Yߪ`cy6o @=4e: 6lҥK9C11iE]PE]? f͚5Ca6mh+W2c ͛jͥv+Wk5 l>׿51F<@_1 .Nn6m)z}fۃªyq CFeYg;m+V[nV Z?ç>)* Ї>Ğ{ܹs3gqƐ;عc=x'7*S9Gd|""22|A 7z r _~|̈́Xp7 ~ӟG?Q-b͛ǟ'.f<Ã+bGV(ƥP4)[?kKXpa}?Z?)S4+].2?x~i֮]e]ƞ{9Ї>… ٲe {/vzweqiyfnF}Ynݺ;N?t86lW_뱹sַwߝ+WOp衇}N;mjswYfqM7jժ!Պ+_k֬hT̞={k^ۏx<[/:hTӨϥ^ʜ9sXz5]v_~9?0wh2 `\e. o媯k |=o 6xzy;ٳl|ozӛi`)˒+w׿5sps _ˆgt 6p饗O)<+T4qk-{竁瀲W_WZ6- V /2/6hϙ%w1v?zm?^ʲ䡇⢋.bƍ+{g駟NWW+Wl9ֲ,ճ.^Sw2*hpk3fpUW1|֬Y??)ߢEwß~4f~aJ8y.B.bx^;^ێʑ>,^z)Wfܹ̝;krώvFЄ? DDDDDDvM/{Xh\x|dڵuq/^̅^H^g̙3gLwQGp0sL>O2|V^3<G>Iۍj#C%>h5z>6j (kcÆ FP+xk]Ì3ظq#/~ԧ>3yw9_8ظqc?抙V}{{򕯰x-x|dƌ@G>? 7s;;; Xx`{>} -?vk/ <֟Qh)ٵyYxq~|+_~SDDFG~M6{pGh"̙ZWQgYt)gh3kժU\r%<Ӝy晜#>=6m8熴 %]t<s樼xzYd o{ӟ>8`tuu}fԩcg,{=P=XԨ~,Xz#'ps㗿%̜9׾Lۺu+k׮ewcڵ}ǓO>˩E19X~=˗/g˖-tttp '4î 6l2lBgg'{^tR^WZ%""{l=tttШ&QRӧsg/s=܀ۍ^ӧOp>sG2c ?s=pYgŝwəgo˯~+N>m=nὧիWsa?'of֬YYG}sP׹8ә5kW?1o{ۈ1rm7ٳgu^ԖeɭGDDvzXkhڴi55 DDDdĸ?L1Ct?ӦMqk-eY͛7e˖,Zk ,Xw O>ɖ-[/~@Qxێ`ʕu]|㩧b̙o੧bƌ~߲qF6mgRc[oe}%/y@SDDdAetuu /PVSӾ SMYdYϟ[li(C]=kƌtwwf͛ׯ箻N`̙<쳃hiQZ}ݗ7MC=<: nիlپ^c(^Oy_rG,"""c9׬EM,Zg }]Ssߟ˗7iVZ3gk_YW;3GyBs,yg2e {!|a{sϱzj UӴϓO>ɔ)S}>ÓO>x gz)֭[Od IDAT9N:cqu1e̙3?Cdt!DDDDDDDDƌLr DDDDDDDD&9@"""""""" IN$HDDDDDDDdS$"""""""n=qHDDDDDDD&,{}ߕ)Lr DDDDDDDD&9@"""""""" IN$HDDDDDDDdS$"""""""2)Lr DDDDDDDD&9@"""""""" IN$HDDDDDDDdS$"""""""2)Lr DDDDDDDD&9@"""""""" IN$HDDDDDDDdS$"""""""2)Lr DDDDDDDD&9@"""""""" IN$HDDDDDDDdS$"""""""2)Lr DDDDDDDD&l Nq "3C>Ʉ.Q$h? DDDDD&@2Z/cͯvc__A"""""K=eY'M $"K##2s DDDDD&@2.Z֐9GGG֪?*@Qx{C~=@2OkeOd>"ʲ,KB-YȘj BL2E$eSLz@DDDDDƚ 3;7. EdrkP$c.^U?",˚EDDDDdl)1c yDd,yT$""""26ɘk/]xCDDDDdpu?!ʲVDdm;<={E`ch^h5GZb`Lu#^i}_"l56OCp:xZ~naƐE=^Xu-li>B-cظgwsHGv$8z_sW=HșMسm}[#i96v#jݾ[Yuq#d-AceeM>8ܤ1Vz =|yNc:wεE-W>4eժ1V ?Zްf{KL5^d [|EsbS|_MϸCWಞ%i6s8ZS-X e5k{Bj1Υqf}0w {x;BƘViZi}/EDDDDdL)q=ZlҒ-ץJ1|:s_zK{\'H*k,EQ`] 5!`0%C ".s%. T!!]Zm*Xejt2ʢ$o`'Ƙt,6\uM;H(=Y-'4gC,z,b$6c\FQi?W!\* ey՘;V2HlVXk` uYEٻ<Ƥ1XUr5?RNu~mOUN ǘj,UU1cC, iLҤd_?9uYF3/ɲ—D"֤s\5P,r% Pbsb, lq^iMH P,e1DZ/=!ϑ/K>=L_ 11֦ey,|YbYp.#M{:gysH.\>;!B9ik5\mimDDDDDd(qV9tJجtKNu콧VQ"(su\UّWe\CK;"N 4<'T%1"9@Q~| jĘFոzK3| !)2e$sBpU!F= """"2ɸp%tˀfb#ddDE#`c~ RCc:K L2ȣH)TE2P* ["[ gtFk3U)X& G>EG^;>Dhɰ1]\1Uɂdb>.MC2B i:E(0EzpI92 f1ѐ9ŅՅ .M*-ZH2>dDSIA[*2UQO? D|iq`LvE6U3ӹϬ#`1U{"yұ5jXcLF(:-C3,38 .j=ؘR6q|4a!ĜKyHA 霖jƀS䃧FF,6ԚS-;L)OaaLU EDDDDd(=1taM8BI>][54%լ@g,)J| kΥ/1f]k-P]f+yF4E^-=S}3LV9uiO VfaMAѤ.sMDOΥ¬]`XqEbsˆtKUdbHb 9ktF!yIcIl)@2omh H &`H`M S2ۘ /꽎UՓFO1}Ɛb50kU"iZ8Ǫ4Ώ_T._Y18Yi. VS׏khϚ  nmS6}4jaY5{!S}c4-@2.LFڸX]$GL1D1.=fmZI>U|Pfk16%1c׫ 4%җͩML܉)|6(tl(g H"&UM H^'B!M@eV6`\Z#V+X]BXRR6{\ ek] $l,KbjZ1ʀEbKGPz`K!Y$`P |UUcjN}Y'wjԝB9(<c Aw:O!ڪw$K4bټJ K*\ĺk' $X!+*,t\e,q!%Maq6Yk)'K;ʲHUa6BX uWG LkTSϩ%|; i), ƃє<=S@i.RhCqi_Y|Y`cǂbI9WH*`"""""Ah.URO q|g"!ʤKڜ`JJ4%yXP(ے`Q)ج.Q݄hN;5v)n) s`zM n^$:Gt\Ptd;E ڒRZ%.Rc| TMү&)[S[,M 1ݩB4*` DDDDDd)q*%-e, &M S,UndYsyp ׀O&/KZR5-2`jSЍ Oٜh">19\,9bUictS`Rhx XBDi1OZ&QV toſǧ^bڛol0ɛ(to$55 &7xiXựPx!VUJƬI)&M1JӘ2U_Rz5MeWC:cd9&*`IUQs)j!\ZV>m9!4e*}^LVf}kHiJXOd6x&ln0{>jlιZz8|\U5zI|:o1m֦@|Ht6`4PJ6ub#)!DJJiڙM%ـ\BLzcVmHƅu.5wlw`I͆z~1&(6Z@# KRR_4eDzi7O &MӊUxTiX8weZ:K=iJM$Uߐ-Fz:TKqԲ"&6'XGO!V+g 4!" .ΧMHc>rfMF$`caRYXVAif725.sO,us.MIlNѧbմB Js 1`ҜT=U5b*| 4MYXf'rJ}_9#iDwmq&| +Xt)+Wd޼f<$nVs,Zw]z"""-@2.LRmU(`^eăKGpIJZZ(t)HtjU,O!R*4z\R5MLb6zҪS1ؘc|,-MG*6渐*O y!oCMZz=uɝņXZbV29\~bZ=}LKԠxlL!Tf 1atrOnW U Y #T2G0jΑ111l:ʴ!t!*)qF%#39DIKp.8MK$P3ņ*T0cɪUJlH͢SI[pDr{n eP&S)y1`c\hkNsۍskQVFKAYTQ 1s"SvtD)=KkSO,(ҹeYM2%Te\ѧWXTs BѳXB U0#Ө֭3h3g2k,^׿N8Z6ƣun&~{1q^OC[}c,]>(>(x”vw]9 7tկ`N>Q,@2.Bi!V)4I y qKF7ܾL%pSohq&kN'60h>#ҲLDoWQqu<>UDyb>X)5dMs:p&Rf!OULtD,174ȐUg=Zp29DK(K|QU5.vYP!i@ĈwK LR3S,Ňj'lL$?a|I,IxB LH-Ze:!Wc(4+1&PE#Mo2!@UD5Uh)z7.i&p <Ǘ6,*@ZfkX/KaP+-nTQDOc*K3lu>T'3@}J׈YqT d[,M94Ps&!H UdRTd)C*=q});*`!6l Xr%?{ケk;wxO*7x#_WYn6 <7_:'8an&Hic6wmM1ȶɸ:LG1Y2M[g- 1 DW5A,,sG(JLy[-mbj!CC )  VݝGVf~QTLwVVVVfh| {qYo ʓbٍH~L+\6eɳ)>IG_\c=SkJ@{&]"8 _g^M*s K1!T!%s5U 1h|T>wʳo3 q?/~]z@u鈇VG>E壣,[4MJUV-*[zuG[+TPB Q@ T]"Dxgo&,TޗDՅ̦.B,1%lU5oµɺ"y#b+vr B:TTlW dz18hgSqNhO8tnꛛF 4 EHb]Sf[,ho. 8틝fȞ,ڜYЌHeHt>ͷs8k<"r/|.#y sL(X*Anˌ<|:z۔*B7yv׺DDs Oހ?z8q bƙ-7em lojM-1 Au͡nu+>[a\{iP;t0"0yȡ9MHo-d~g3Ed3Iw:!f^jVdZ+̢ jTIB':'Suc52{ |s;qa};֚nvnݣKشiv;w299sرcڵ=q稇o\KgfOٟٟ>Nڟe|dl۶=um}PB *,FEU8'Jy§&&_aAgPR,G9>?QS˜,iONӴ{:e4+߾sh(ړR"!ϡ۞Cʂdw[6^|.G1>>N?^iߠcޯǢm\Se_~{+/ʋ~eųD*Bӏ"U{qm1B7?' OKRX RȞ*oAFz`"犫c>r=s t׍Ǣ迟G>{3sHyǣyK_ 1׿Sg߾}tI^җ˗$ Nb޽QO:}xxhB3>>7̮]Rr%hs *TPa1*9E)6;lEQ&s:Qw)%Z - 1N$)קp#^\eYNF]JOHS'cLwSnY4~%b}1 ǵW?§߸I~Ge!x !(CnH }G>2ͧGؗ~,ʉbcE"J)~7~c~sԣ vV=ڵkKx#ٞz4j3=\B *TEEU8'(SRK5 8_3@tZS&  NxPRVzcZ96[%; X(dFHcWdYz UN!i{o"LB)ig)q*rb RbMT"B"^]`|&b0BGs?K='\<[4ؔ|3 ؾ}{7'>qwy'_Wٻw/l޼g>E/yBc[;صkIp<++g>×e<\s ykz;9ǦMؼy3{x|{=z~ٳ}155֭x/yKO/*1z; U6K_7r?>?WB *T83*9AA CMf.S"C "', q:@A DFqM/?>E!R[`3eYW T Ϊx іR0F!WK2! !aȟ I;TF!S-Gj.G/)|8ayLjpl RxZm[8 U{TIEsZTJ-5{lo|c믿jq7/|&G>_Wy{޳8|0gH'?̏~nY$i=o߾۷\uUoettNe|o&Isǎرc}ݼ/?kx{S&ϗ$:t __袋xSӞ4'=`~!:|'=I=ΜWƯB *T8WR`)OB/ʱx[$GXEz)5uYb"(Z )%iiٳ,<DEq֢fB)ė7eUHQn{ϟo?2k-y[{ȟ!yя~}Cȟ2w?wwȟOx?Az^Wr嗟ºsڵO}S./zы:/gC"yj*TPBsp*qvנ9˲g$=~9)%FdʲVEE]B@kMnCCAeZ(˲!$j qKLH1ŵJ(B5U0|;s|hO[ַxs ?E~DQcǎ1<<|-,,wl``naQRx^ST>p?|97Ic 6Pc6 SPaG3|.),`Lgz-,pr2T~Uι,v!e}}~ dƍ\yk?O-n533&իvg-]+5B6mCfggl6lk׮EexHmW\}\}դi'> >)gB?ΜWƯB *T8ר<**5$ 2SVؤy`Slx /G VΕ6>ʢp׸|¨*CuP ,Yr(TeQSVlʡK1qh\^*TXk}֮+$׆WuSy!e~zWxS}vDN1>o)B($$/]?"g\J;~PY|ys4\)IQr9#zPHآԗ7 ʾ/=g~(S9+.ΜWƯB *T8ר@ ȗʐu%1/!YT&SC9$&=)%sُ%ܜ/n苟PlӡRa]8CB<鷁/Su񴋈±9%eVyn]JLN +Sm6ٰaCh4'>Mخ 6gϞnُcog?c PJu֞cwqv[+_JWT)OyJ-[wo'?I^Wp ó,.[]zrY3ܹk /g>lٲ˗366FlmiÙ0??!_ t]H?>ϲyf$5y ~ؗ-pM7;;g??OˢW_}@p|ʕڻyֳū^_4nn%z뭏xƱ3~*TPBpN*W rs[dM{ϝ^y?X7e1$I"]wqP!h3DqjSNqPkXHb)QI :$5X0A\Ґfm ŤA)#TjXw7ԝnwPJ5dQhcLm4H1 P9 Ţl+ʳSIF;4C "T#R`$&jmր12mA*`RZcF8)9^:4E*V X"2>u@lDҳGRE:$X8C"9 (H4_Af-Q$H!jZO9% 3%bP+g8HtBTS$iD>sfZHHc&TaLiz _T[G)E$i8i. J$S"IE?Z}tWk dPHӔ~ݳgOf}-_W#^*.J]7Mlٲ}-@'Nĉ7Jmڴk)_o~m?3-[ǏiΝܹ<1Ҡo *TPCTᜡXèJ0̧\~-T"J'4)-tas6?Յ]o##eɉ k'(Hq:lHxM,"IW e{8IA$J3Myi#taBd*ON+Bٰ ;?XprE>[p`-GXIjJ"/c5i4Xa 3, B'NgC Y|k XƫhI?{.@DRRS(iM5VuH V(_8$눕"RXI")P9T)}yC!Eh` Op5 o\7|AK2bppk7͋ν%/yYM=ړ{xxn;<7=RWW<8c-"M(]z_~߹s'G=k^166S|"ӋY RJ~˿|DØ8ykь:~*TPBJTᜠ!mhf*/7aJSFhmgŸl0 dOF9#@v :"$e-Z('B 0 L &!2F!B9(qHbO>|3oai>drbQX%Dʏ$pkA"Z$Es2ϐAf)sDc2%p˓uXJ@VR?:'N8>K !E86HiڢC:RBẑH+oB UMdn]!0iRH,J%߃~_eI}SJuUp&鐮esAB_6^n:6lE]5\7;xrx+^g>9~8Ìq<5k\{eO~nPk IDATロj*J^W300W<תU?7 Yl[l /e/{ْƻk׮o>9tVZŶm۸ꪫPF7w||s +011M7ѣG͎;8v:u+Wn:?|^򒗰y6PgÙ뮻 6~E[neժU?>pƯB *Tw>~S֑u2^|ű,M|Ra 1Ɛe L}>s )Z[Nnh4qw7Qu`J)`Ce,#c:-4!L-8Tv m6Y~app4Ɉ8Vh3HM%B@}n 1uU#$gbXKG4BHΨ"2bL#BN'hKՈN6(fVBi144H{㨖ׁghZ  1tk1|s Q∴2XcRI!)I )o<,18BE׉$I-!<iWd%RQ$-5qdIJQG" B!L̇Y)IPk" Cp85Zo @kCc{"<|/2R 8&M3TIv齃@JHD v^Suߕ8"ӚzNYh4HKj!Z녤P72":zݿ"#c~$ =&OZ0q/ʴVB *TP#’ jg􆜽];AY >87#P)*c0U T"Uq..Ыd(Q8b't>*myR$P("+aO׼0aV$&8#BI̓+2T q[*VyHY$bIIPC3X , 8'qN!aNNʅ %( o^)P7kf^d˥Ogm}D7fD8Pp~tMHJʼk}[d_Ya,}/?JG(!_ Μ6"Ρ?קD(A== @k*V^ejPVV t0+TLH~i*TPB *Tţ"*GfTM.xOx}Y ;!c9haF[ I1Nn%@[lE3#mڢTakD#%9NC6EK%s8rvpXX(@ic Af qh.孄1x%N ̇-+H 8Ң&2`wFZDad27f6`D*f"dNA=8T JG=Ud8%'؂>!%:Hk2  +)RlN9%w" m,u-誅 e[9̱PNR64 ɢ~jPB *TPܢ"*7αʁ"%w nMrT*Ce"T886i ӴCbRDDg+3d6%rZeS(hH3Af,tD i1H*T[JbUk^:G>S rYd8MI]'QtD 1 ) 2?8k֒:P #}(cbG*9qH݈TlakIb EQha2bIE;G&&<%g2Ƨ}`rB\h!g+qxT>Ku^mdpDxM,5y. g4Q}"LX3h+Iͥ  hmsͨCKv @ b)i9Gd4)i *ǜ Skl/ 6ŻQ'Tٕ2ʄn *TPB ~q qwCX$NR6g.6ItBPDTl7:&ZYÌEk",YɣMJ2:&H^1>]v\o0::BB(5@'ϥX2d B"R1QsݤBHN!%iU#dD{aSNw1TGDD.f0!I[ ŤYBadx9XEf ڤgmNϒ5B2V,Mi 337g O  n$&$a^Gg)Bk$%6)GI2IJ6B ЖN`}4GAt&q}gsfΣA5m4AN0:QBRH:КX)MGh QJGi1 ,M1·tuAm2RdJ9G<ؠeO7UD-& ~t6Ki"z½ ҨPυJݑRzr4PdYF^( *TPB  *9AA~O-cpb\3,!uOKDnRp{8qlz>vSLMM12: /&p Ɨ]}>w}004誕Kf{G\| 5!Y2s?ɩ<9E۶,_իWq=ў?E#tt;߅-T k6dݳXl;w+8ݽ9FF0yl\8w2B<8xFsOjm۶;vp s饗ΟƸpVGl۶ Sê+ٝwl7h aVM1fgO%-ƆYv%Ǐa tml²e6GdzyΣ695sQYz5CرeXr%;.A {>p­[^߷5.s85ChYD*baIbabrZ&&cljT́i;\aZs9|4PغiIp1nZFj1.X{R񵒢 {"D[V>|wb߫yWPB *TPŻ ~Ӿ&g^ g I9zc 'lSYF\ٔ3'tVhK]aΚ>vf> ͬÉS3Xc u㧦 'NM30 d=Q`rf}'=rc3,S6c+v'ƹpHr.'OC4ڤݻI8B;kc%;|ŞRf 6:Hcd͡cG0R|F餚EDuV^GcpS->LϩVh`{gߑs? 5vǂNp5ŝ;3{G[9 k6atb;~6OȚ8]m'mb=ttpf2OԐyfOpa?$aρC9yZJӔgdN +R)wwvљlTc!سv99}ԖGAR43ywՙmu!wL5@ʛ n~j B)k;:V$U *TPB  *9AiZeY \@ٻĖ6ƘnhK9l)3x'sRJV4KkqMawXn%5 6$|2hk$ qd NjDd913I'k2=wC "?o5c F0Ύ{f[[1Q<‰3S95?C[L8l3|W,णhlb,#sk22{ej~4ej~eclpG'q27d۶KchhHYh'L,_,,;l8jpE2fvf Z=ze\z_WUV*twNN֕R[nH!!UPB *TPACL ~GxijTxf%JӔZ c Qg}*)ZqsTx88Nk-au>(+VR (|T$zfIE+5V{Fm`Ѧ3;tpHC3=5Xj%-0:971ytL=CM;kj+ӟzc#C 5DRyF֮YIiq~zٰٓ~ i 2pGq^; ᘙװh4xS ֬[>"%Yz'Nf֮_cGx6ڒ9$Ӛ mc{fŪ 0b%hwR_jY5}N$Ve˘aj$n10{23uF_4qL8IsWb~v< OHXbJH\OۧxJ!2uOBS@9!2tWQWk%Y,놗IRt.|!V- B*TPB i,7pǁp⯝gJG ~^~ {XGK (Y4,B#Xc Y`e``N .NMo4,˺ʅ$INoPCN+OD*"% 9ُ9r(^hxcś.&kfՇ StQ*ҡU{M6i& .dp J2:05{fh%IgCN,pŏgxhe+t4Q#e:i-cIN8|`b"j`BcuӚzV._Ͷӡݞ#n(v NNj8fꃤ1{:Qc#sm0155IՌ/g$mJjC̞ehhVpq&c1YFcaNpZ+R\S3sLOOcflt:H07G֠51n´Ok=I.!SuZ 'ELL\P(%k|'(+/H/GHU8'3 N \TӡOJB 1!+:aҔHIl51X1'IK$#C <ġpES\6YȴFؔIك %mVgd4h 4iIMh Kit'R@g Q,9q{60p^Ȑ$ ,Sv15?I\v&gQ!_wu5@,<@N8H5# l::KcI)sKfFZVg`-ҁ 5Eju`GsvT , #FU(b@XF'&@d̟࿷S(%fql+֡P̲|l^`bs49Ib k&b~0ɡ6]x1q}^cf$kGGY=^W$1Q"$(5I\6D>Q)q:R̍Ig׭ K(Bͬ]]?hׄDE8p!*TPB *FEU8'(ȞB/#QqzȞ*lWnh(&o[hMV#K3[HcQqD\.EbRKqV!%8$&%cM,VdXq"0(v0:)`na8ı$ QE(¡Mƚ!"D e )2=K,y:려+@ )y!Mj&5B(2H33MaCHĀ8t@H6X 5z8!M\jȇYp9Y)D &GMkLcFKt6tQ"F' Bj? Xk0&X hDע&4$2%Y';TXDBQ׋ +Yʾ;iv '*%eu Mnv r aCO *TPB =*9Aa:[Va`ry@ϵK7-v_q:)v`f֚b3IM^ mZ&Ofym^wa^&2E85^!$BD#dH:Ɠ?&I3Ww8M2481Ҭ` +-NX:I8 s(E[BI^ap2H(3hg\43D$MP-: )Ht֚PR`h jTR(r!C: ϛ@8Heü" 2 vP&-YǠŸ6%XX1.!nif$8"4VtSL#i)5.r8ap2&:Ԣ2]b#肨 Iz?R s ϞxPA2q|\ϻ/3Y *TPB ~ zPF6 ̀T6 B`KP5Qd@WEW"m4 jz=f14`b(m99}m2"1.AZ% YЈbD&yؓRY" Ej[sh&|saq$ PiGE18ItlNlTdH"|hpW'\IYhG4d5Nt(Y̥df*,A IMED΁6HR ~0ڐ@jPϑlhi]}v& X#"A)sB FFw0٢2ΰ<y IDATٹi4#3sdzh9PCkts"Kk$ E֬Z!"zizVb݇Gq} C64a/yB *TPB TPsQLE dPjwجv rzޛږ徿cv8% vz#R11CD1h"F_$v~BH5Q D1A(p(X}ծjg3k5YpWǯk9ƚsSyB h-`j,/_(e8qgՋ F ;'ʈeoQ{T$F$*FF x1@ kR}xEq1tXc}JcYo 2JB.G)5KXG i$R+DjGQFw:!DK,!T#Xy٧pYu@')0I$(ʪ Q:$ںPb=A?bex<Ԍ\-/;6PPUձ:hymNpGGGGGGGGGG͡:n cv Pv#u!4>vh?88Jc1.{±m Upw`,ؾt=wWS@ PDCF L1ɀѲv#yo !( 11ZQ41 *hRAv$ l@%AH$'$ -ZHD(nxu^)a1:WD(f$$DiA:ziJ,m A -RCy1'/*bsQY.%A tR?9J(DMKÊq3XhWu4r [+$RHxW;㢣L&!DYMQΈ:"=- F" PHtHՔr:'mbI+(#ɲX酰7M^{-^=r7fYGmIkŧ:n ˣ'"P{Dܒƍl~j 0y;R!x4&f=&*u] y>쭧){ٟ0`mDfibCD=WȘrb@(R5`_Xo+#D 0ėh!BB-ޮgN=@+x|=[QP!GB8"}-iZh6mgqƆ]ߜoLpcFJV)L}IQG69sm||>HE DB@\H/d#2QBI (=S_S 1jz!L7a(cB84oSPk"EsZGwC҉P4rh 6bѴ% E@b c 2e4J$̧%6$B7'JP >@֖8Wb@ zKB/L@ukj죣,ZBb! M4鑚 uu (*kqX[jY$RjL YYP9GEEp9.H#"K{Wi@Do\6Lf}-gǸ{{â N)4ScѨJ{sd,; Ƴk8)m\ -HmE=l9(ZJydTpCH a$xA92Ƙ00;oW.SOqQbD2+Sŋ)6wd:QDQJ@ICt&y$:ɘ# %V+(cEQ2!>DShe#hTki%P_?B#>EtXlq,)t6[%H)GٔYu@^'!9ET(B,Q1JE:K)QGc4xWp{,f+ bҀ\-(-CsPWAG #҈jQDbN ,2n|7FβsnѫӰkvsO-gp#1;SGGGGGGGGGGNjO'uڹ"12p,5}5_?isǛM986}i׮n\@:51}.l^0$JRy?OYVDp1ࣃ$mpebEAdJ"f}. j@t¢- jc6r}23{ikB} !:8xD BĨ@""b4>U$#D]priO#L KZF*;ҕgvPOS* "TXD7#DDBԄV@DQg 0=YB!zBH ί{XOOqx*,j¼8  @ ,!8|tHr7%Ў*LQS+^$1u$]:'?7bg{L9%P{M[m@M-klxqB f];m嶯ŏx#P0T\OP^cu?n 29<{UA_8DoMVV%üFśF|mxDBnylGGGGGGGGGGNjK'u1Dz~NƕpRt;f<*ּT WCۓGR(TͯDM (h1ʊCtLyn\ъX:B41q̊na<*8bZ(]x3~X2$FbdI]I(AUGiA bъBZD P3W̓jXԡAzJH StDȈ (VdE^( rv( 1TPR 8!"D+pMfMS;bCj!ׂuZ=C@|U* DБY~eDUy0,R(B y\0:%kX7%M:lp\lFHDm֎ۯAs~ڮdܬ} ьuPGGGGGGGGG͡:n 9|YAGڍ8LJUUHjWC>~qcby=c=CJPZ,#F k_˗s׬>pm 붰hȅM&$RQKkk+L/Ŕ,]+ka2w3,EB# %*܎IX{!"ZAfLf{\*# A#2#z7,%E ¡tpqE/^"B-zTU)cA%JT$ѠB+M-U$@?KgSRcNHIA)RIҴG]DYEc}Ibۧ(Jb"sVg#&4ɘ+B(m^&|֖^:<}-42!Fzz[^0g0 Qz*Wdz^$ IǓd='Q@wGZ&a1j;wXG.i4R:I G9Wbq̢Z {-_֙O.x\QD؄e4HQ:n푕ߥ)ܨn:N5!qeF/{0Z"|@Py_1JR^z=r IbEis&C,(e! Z)ePRAGI D dfM) Bt.q̩\^:1/n xaCL.xTΗ!ڥk+!5LgFeVfs}H"E*)&Ɉ\2;]U!Fkٓ,C%)1Z)Fh\a$$*A ZPF# ígmDS!e-&S<\'s# $i#H F,/IĖʙSr[ t@J0PUk= 4H$8VDmp0C*A^!IA EWiF9EvDᜫ5ZgZP=z]-|z^oєW ȺX G^DbxbvxxMCpB9$vW[ig4Ҷۧ9y=pL*ycf8I'JB ADIIS.lo{:7"(T` fd*s[Cdj2:3V IdPhۺ2BSU68$1 H#WTxkRUJUyʲN%ɫy#F'cR^Ļ^M`)r [UD+$p2< /1@}wh:,猆#08牕 JpT t4l6r^P`HpE9Ww`\ Eޘr2D=~fq!B JFRC E =hcRd/ek} !2D41cnV{ >k#c׈03=V6v:m~sm7Ni,7EFiDĶ_nx5bQm,u> %5J:bGJF) Km y=8\XԎkE s8˩b: HϴCL! O-IsTH6*X]6>GoC3#i*Ul>e8Y A@ 1A!Mi2(%!|Ę |$IB7 $ >' X >K2\p>QD)Ȳ>v1)Y>'I 1@UZB@Phw 7` '#2p8gqRPpB4@yQS%UJJOnU$j@YBLFY̐Ψ>R6t@@ړd4I=MUF x~I6ƈ8;FM~/.qS8Ea٭jOnAj6P]+xs Rv,bBJ(J, TkNbusc$1DpTx$$MƳHcJp^:&[aU@.D(q31 d)EURU4c?Z*[B*B!#yIDFՕ5!HOr8/A{X;x_[=JHAd#rKx$5OAȰ)ʂ~_ |n:ASW Tlhd㚅NA@CYyQlf)G(;!H,3)W&!rG#r 0iE#ѫE@[,_rIƠU -JۈL4V*B(ȭG)*J#f-xĚf-4|!ԬwmQ[:)}g @7&pYYnӣE[X{qB4nїRsBxHӌA~]<r$B\{b=3ol@xHH {%B"p~zC(P"13lxzd+#& AaH2bJHʲ AC2-gl➗W !U$*2ɘJA2pF>&hllQ:bA -Om!DH֊dNP:+}^&Q!e8Ke)T%V)=Ԋҗmlb]Վ_M OD+XQ w0<GEsb*,lVV%yEY I 10Tj =1rqܿj B'uosR>֗kjq @7rxNn ͱ lRGhp4F%jk%<,*!BQ\G&UɅ딮ǒ;) >X Hu[R#FB̉vK |%  Jʐ$Qo#U0gjOY R0\[1BZw¿~hR}}|{`9}e= g^r8ˈ2OX+霝yy>85!ư{@;u4Iڧ,**ꬤ%r^u˹[^/A+XXAb^w[MH%yX7khJ?wf:1X[]\~?W]VI!J&)kD20IRhT*)'%#BJ0[1,a!g}2iqVR zjy$KJhM4bs5e%˲#7r޲+qek;NZY?λ.^z衛;Gg?Y~iw~}>ߴh @7$Ir}{ZRƵ=L)um6'0fjEkskcZ1xDD$c`u HMX\ 񈢄-{b`" V1D$Θ)s2(Hf eRL ő,I8#v.2X P=I Ñٸi?s}ue,c]IulpuV !\t1Hq$]yUU=v<ȉǼucgg׽u/W<W\ʕ+<w}_>Om`kkロ൯}-I|UW{ ?̯{,I677{^۾ENI7!fndsDځkI@,/Llñ@ziQouucS,X\bP!m-[8 o=D>OQƐ;x};^r!F6o\p,H"O/Nƛ+}f9xkլ%#b:go?K #Q;LF@#>Jq`9z :[x1Fl+glӛT߰WθmU J{P*ag^wv)}}qֆB1csmLQ;u`cmrZP%jFU="GkmЁg"()IBh4pa">W_yOL?BdChIoV׮+g$I]i8$iڣ3NɋH(Т/ͧFC;Y QA }<u[l4. ܱ8ڈCk\Y{}QsԨeF3__[Gy׻/^ŋg^^ËEUUloo'> 7?7::::::::K @7v6OmhyIA+3;ws\[|j8D1b-!R>k:'FJ0uMy>21^ MFCE'5:x<8J#M ѽx. eHsxm[d }qm 7F9O/!Q̊(Ō"̉X SDPl:`/>vy5;aKxn:B C>E>s:W/vw0RNoq0RT%21J *OU9 (C`8PT譌ȴ{eF Tұ dUs~Ǡקr@1Å#/HVVU 1/]`<3+挆C& 6W%yDJo1"Rz!EiYg* |Hz Za$ǻ^H$&Ը3`"QJK>kcY9uЦ-To9y9wk-ڄkh ˂n[~i}7?#!y{?RO}S'>9I+>|G}˗/#ocxskh{[_ry}Q,[[x[R-s'yg5y o~CnV677W;g>\mv9ϬqY_57SO={[[O|ݏ|#|c駟&sn7 '_??SO=h4?~Wuttttttt:n m'B$9Y4le΄ mD'5vIgB4.)j'ADBuW!x|w:ES Le=qEО,Y2"/Kb s!Ul5G Z!?1dS)ڵ]nhD_D{*[|}\"sOquzAo٭=;^u |<*+W8}MՋZ喭19EkͨU`8a1J޳6bcseHWH#1J6?~Wph@KOS!FFAbO0f<1IDk._>O~)676")j?&[ Jfyd,/A.3UBmJVZъ= #5+23Dϰ$T~`:!+( 2dThTGAm-.7嵝B'e4k |nz@F/F{{M5zꇚ}:4N>k?wW,gGeOOcg~yΟ?ϧ>)~ay~{C>1NR|7M;w?e>??'?c|~꧎! ݱz)~Ic-_;.,c[7)gq$Q BĨ0ưa#3uylRCe^^FQL˗.2ݻ5W{IzÌA12;_r2=<ʹs̮eu8kV9+gm{wecs(<1Ap{.LX]Ad1&=2 X]Y'a0LQr0p}gʵ+Y_ 1}V9UY1 bRP;^be6){CѡBdN%J.T$&''ъ= eRtFQ%J"EYTH{kWt`I{MlG2Dʒ%=4 |J "g29{K{djp0Q%LPJ|n2Ҍ!b:޺zL*)F*"Jdwk-"5N -KqМiϒp8=_fy!`oo;+>ߏ؏Ͻ /_}{>('q赚v1=?O|;w;c8կ _??\%xyFH뻾m~^ }fz$|?</_}/.]ovk???x|AR<{'Gc??77]GGGGGGGn: ,ˣv{#Zz!KtΓig(Uo~Q۽ ;~<" P"#D(GE&HP! @)C%5p5OdJ:5DjCP8$Q1%Pq3 F=1)pS85Xaqzo@gJ30czhd.&y̫=ґdoC2 fj-+O3+Ow! )yxu1Il-5b%(Q&&(:X"*g|$ISTWÙ ހ>I2fX{k|)J9oo"H D*S2 !t-܅}!"b6uw$BI;#w%mmb,;x_yʪ:$%A!agl*r4˂A6`2f,e^$8 #HQZCW4IPB!CD"Dd-$BiTZHpg_4 "DGՈcCQGk?cлn^W|UiNӯyywqш7My'b~׎|ppC=3G>կ~5B~~˞C su]ȏ1FoHzᇏiNu/w@9oE'uiv贳GNr4fCf1uְgnn@y5&&&88 M4!=2Bb|$%FiCUuU=ӞZkZ)f*o{{u?}]]Y-)Yb%1 P(~*FH#)R`}hV[-pZH(#AՒFE4Lk|S%Y1'8)ƈ[-A@#j^sDݠ k/>B)O|3LS 'S]s'q{<ܢ&O 9g5 Rg8[1_899/x[Go!)G%7n!%ɲq2|td`>_pp9p Eːu^@[A'\dO~T%@h.ytªYsT&^VhQc63bLGLSqނeRr#;R)B4"&3bfH2Hj1$!G~֣1J)<_ݴysu"Y a} oBWmxݵc\\HeYZG?Q{1>OrzzʵkNNNclne/[#xͻ;]7wCu oy[} oi|l}ݶ^o\.r >/| x"W\YUUxų*~~k-o|}U =9˼v3ƺ_O(JDMCg""NڌV#B)RH,h(#,f \KEI}/+ h²',W 72(8:*UA\+، ՂP[FHs!j -)XJPڲZLɅ}^a9x'7spysk:#JEjeܸvtzyJnM8y&3TMC \-BT4mZrL(k*!ez Ad6'"j:1Z#@bܢH F2r:#(1Z 0& uQJRU1FV!M1u6m|,euƤJ6$J+'IJ" Ĉ!|Iz}OBJWco8slzOۜ?9k4裏wok;ZT_ g}ju[%&y?>|5׭pt,hp{ֶiDU|5흁<2TL!ZdidhBŀt3Op]aE=_-U/0:. kD1-J(aT8m{eI9)PHAG/( 9<'͛G7Xߐ#w_Y'\;ڕ,g'z-BJFECkCjU3x>|)[6!xv9:U7kndgwhͫO, V !ŨDBD; d*rDD6ޑ[, 誊"B T.7qYb"7` u$DT,}D)> B1XV+\Z}ʲ !5)[{fN_-ooi$[ëCg(ԝ;IzG$^o[}wuzyk^Ç?aB!Ν/}]_,u{?s?O> @g1x"W^GKRb?k_RױۿmǻvO>$/x 888`4\.yy^_U>OOWUz:0000000tρ~pnMpYn}fkf+Y7W uH)άlQn38CHhGԆsHPʐ2/ȅ$Bm""xP/ՊIs~{, tZN J11%EddBU\:֔e1he!#ƀdL'[(o=4lOG8o99΄Qa1e(`41Zr|t E@-amjI^%dy,G"ۻ;<~ix z]}~~ HVo~mOu]|k[NOO999k׮c%>g>O{>k~S?8o|qQ%??޾o>7/}K<3"A$ ȗʉl}?:@k}kltcߦى=}q?^7[9&<+ʲw~w NNNpw}w}ݢ³KKE;s|m\pҥK/sy_->?3?>1'˲u&~G~Y׿{{{-o׿}Cwwk鯗__(O<Zk~}-ʯ ǹ~:{x޷^?÷lw/浯}-g ozӛx# A'$ʆnY7v?!1%ŭL[ UC&R)c4Y1A0L*f!ւPx2Ȳo-#I~TMEnqfK? RV57O(9 Ţ,<Sfȼ(ƌF?+X͏aQ~5'z!aêfhS`)4.]eq9B{?K{dX!bޢd^y! P4pOLc|ݕ6⺫鎱ٺկ4jgȻ,i}tz2(% mj^+|h$QH]<Hm01NΙDa4Hf2"xA%| v.^ 4H)|4sU<)"uoV2&fBDBtxd.-G|+sզ]IH&""DLoD$(G:{TI\xU`1N'X,PaoW!׀B*IUWVK>@ցjY1 \'uVZCѵUrݽ}uKfRkL۬ WmS 4p6[ю~IMΚ##@4rw-A%(X Y>fk/}q>e̛HPy<L"B rx .X,21%B縠tDM5<#f1wT. M2%'7:mH@M>jAm-@vvvx+Ox[#5+J">BF(//`4<+QUr''!V@DuF ΐg<3ݚ__y|0'lSZa$Ό\!GfRJ{ۺ6BD}\M:ѧ[޿o/4pO#~7-[zRҳ4}}$B!Н!/c>C@hQ6dssg.6Tgr?_|shքL)FmQYh/ _hK".^k|3ɧr -L/Tr"ZgŘ!8Ϙ.Lɋ(!e@iCs[QdG9G2V "a2qt4T%JTm~D 4ujqm] <\} 3!)Mo@*!6/"%ۊ䛜\Z((F#wB :fnK)ԊX%1FuڠMYF]L"8/le#:U 9O_kZb늹zq)M]P'@0@nr dͤn YbP7VBC5|j-xu!rsh%pF[%j hat'Ws;|%ycFۻev*; Wz}̖Kl);[SD/e[w,m9UU,D1fo{xɬkbH0:Պ@D`E/᳟Zf,3g+&B!b5#5Cf+P3#BԫZ ɑ!"|D)8 5,;4b@m1!xɴys 4αwU2#"$7OR!`[#_Ji,){K4ՊIP;5`+˂ɘLW u.DGGfш7%!j));;#jFc9!*mRRc= JAf Jhm{S9wn돈*#ȪY!mUH( gR(&T4.X.]`f=҈޽fcw̵XZ h"$ Xd'}UyJo~OYD}\`ҟ+v)@I&=A E)#j]hdVD>2r2Z TQ *$xC2edLLxɣ'rmwvHdB`D2Pad$)r\B*<T. ҡ FG$RJjeQD2ڪ@A#%H"{3""b4uC˗K-PZyw()ɴ"3/\=Y1x£p@mR->Մ'֏HKF([oR:!xEJC6e"2DzO"k+BpY@btNKFCn/dF&5eFccq.BRV -RRbw.]q}&8uZ{H*?"=:?n_2@֭`_ us6qpv뮡vvV;Z#@$6^mQ{! @T塍9Q$%dLrI-dʢ0MXVhq֢Qlt '_dp9r{T7hJP,BȺdT45 g-MbНsST8'xxąADR`!@+IڞbUU799g%Y]X{)▟M !o|ZHm\ȹ}beȲ"JkhVՊU]#)Rtj%9Fx[%:bd&G*R4T@տ1Ս~}Qn>\^hП'ܻ[L'tBݪ 6:J/m kmǀ'gB!-5i1o[<[Qz5CkLFƐe9Z8-'/ LbBJI\!D|xtkժZG])5R8%MkICR1;9e<*y&łi$vf3BeI91R j# @;тm4ՊrZ&!xi'/ ->sŪA!S5Jl@h}(]r 'G ..wBPp:"d@PR)48P =US\5i \X֭Q56%YV`L֩t8k 14Dɮuz{cqaMfm+^;AA't-&~ I"?sdՏ[8]%z<ڢZ v1-JgmȲ"P2R4ήMD2cUk/lVn%Uŵ+WPJ1*JFQo-*Og<:aK97MS+D) cjwB2|}mCĐڼꊢ̨ F,}Rhڤ.)"n A>B6xp3IpCPS8-8::%YB[zL9aD֦=ՉII]B$ߤz;d媢kº]"D"D| *L ĵs:;!@۪5R$᪩-ՊSUՠU5mMXWj넰L|Ew˳h`````````0@M>woWVΪ$ Z2J*[E)[!Db]B "y)sj9Yٙ`5\|g4!2c8=:ئI@Z*"c@&Çuh op{%Hw.Ş6229j&JDz=qIYdH''l"ֳ5s߅ h!(3cV9ukWz*BJL?*#Ը(hlh[Bd5J 4RjLR* 3$Zn+~R2XV*.K^$(%(p^;6R~9vbmzuB?&)ni6s&QVQj;!~ѥuLcLcւOG)n귙7ţ9 l{TZdBN'VH"%.VM$aEiC sJ)ZtTiw[穬r p!@*ERhn޸9)++K*ȊqQ Œ(/*2XH Tgǔz&{pm씺2jOԌb JFeQ"zOUj%S|}[wRиm$g'Y,,VKL:0o8 Tj2RG o兓Kb 0 "υl(A [$%x Ji)[*`l* IDATxD3Ŭ8&3 % x >VU9WmB4 _-޼ND+ #˪a2f4"D(CĬD_ )QbI0(Jxv9w~G71eNThS!8&bM.\, )85d=%+ra6[rtrB& |sh~;}*I1FtfeO?IOkMUUyI!me'uг|~-=᫵tm*}Q>>g%c7[{t圣iR[-ɘԖEK)Zh#@M[MphэD%ڭb6 咓)ŊsBLFDlmjvw(GJ[MR&+ .\HURRjIUIRCxRUD*Ri]R[T$emybm͛ױM 18ⓡr'4x[s4fcºrt:ekkEotNVDփ[FI&y䓓,݇* wZK0F(%aZ/P2mBs_i82g5F 8==a6!D`5J+%GG][gyfzخ?_߉TnnoP?3T Qd?K&Ĵd[nyYma便I2DNB >&ʉ6qMJmUvg%! F*/ornJxmR9jkQ&M@iDfKrD.%H:]' ❧n"QAYNWHep✣njV*!RжV$xň]~Az^gu]stt E9n$G%Jgd[F$_o^n!VkY Ji|e&G|S} JvHˆ,3F#.mq؊h]#Q> 8!bl'w] 7Ux1OB*Gݎ;0000000000g ]Y}nl l-[/7l'W3dY'7NxmA J'{dJ}R 9vw/*!D;d؜%HM67uŨ,0*a]jךreLj OiM!Ŗ@ R̉S!8s4 @)d<eijJ,d,yBiE%@ƈ"Ph._hNt&$)) [[8y<}*(t[k:Q1U%AȷlŮb ئp_;" !E [1מ!z2Mn2IF 4PxTsƣ1Û,fsB ,%9uxtRPȜHXNwXJ-D=pgt*mw~[s`````````` ][Idj.-/-sr7()$!UN~(R*Bd2~YJ BI1z.%3d])BVKf%dd3j0J!ۀhL9* U|g<Ɋ88[ٶytߝT %$d^C }N5f4xQKiu0& ?MBID$d+{6@!$-djbJo<1؍K]Վsn`i}6#zұ "UU h`````````0@5M6m;Q7W uO7y4uܪz|(8l# FKOSuI 27,jKw0)RH4NlM<}*WSdEI\R%Ff:fc2ɘD .FшQblS5Z 3B*l+\`RN2kjA_,F4 eJwyt>`vc DĔ&H)(jx}r˓9b[S%EQprrDۡQfSWz2>4\Ji B97k' H"LWDPB#c[cC@ m&SzakHUE9.G5LaX.*jEP./>"DeV՜ g(%{s/gټ3L ! `"bx.J()@(Cgƞgk;۽^TgMHRG*Ts羸ץe8LeB F| X  Z\KquJ' BQEAQރI^`+C#B+t›s@{^z]zO>$O>677۷Y[[9}:;? C/9y _9~8W\?}{)_Wxx#yKKKKKKKKX}( si:ojq:v1huє7kY|bXUZHxN nXcB1.fz38l8gAZQ!H}W% Bŋ>ŗrLUU|8$F|#|C:_|?~M~ppB={?O~򓿱liiiiiiiiyP}aQY ]t,v>h#QCSr1_9;a%%98jCI $IJk"N1 uJkuxctIE **{#?z$JC^T+7B&$Hu=C2¹0&$CYH3 Ȳ #`Чl;/F^ 'TC -ㄇ:fHbŤ,L:%|d:k?ϰ:x4Y@wť+A;!B2t#I( wy#l9,2EY& V(wSDVcwBz1>cbekfaD5xn[a2/?7ͨ%0__ú<<2ٌtC7ټ5py.\0ׯsʕg~M~ӟoc iE:G3/^|yyx F_A+8,C!R&i1nΝfC=(u,Qi͖m!`- RuCYʄf- BJ4L#&)1.8ԟKp[c㈥!4AKX6';t.+˫TeFLJ4=B "Ѣ1 O“D*NB^x'cMU9u^GsEF1n$\RXW<仹|Uʪ`:cdJvpTeANˎ̲^3D*8Qxg!BG8${,!^sː_$EU:ه2o"+ T c,HsLP2Z `RDRQ:J JͅP{?wlǎ AMHDsFY b^}5ԯ3̮we:_tO|p1eYmnlnng?Y}ٷ~={k׮2>,ng4}N3O}ts u5PㄸGyΧI3U)ZcAXcʹXCQ861Le9k'(XOhRFUx4]kaelݺͩv{T|JVRO|}R>^DX{Lˌ( =(*'S6tXgBc$J+#JAQ6Os|uoͣ8[7uxdh44xrp dh6>%;۷׿,x"O<:ؠ|,//».nܸ+_ĉt]~ifo|#n~?A\d29?L$kWKKKKKKKKZP}A)5x_QAju<Z|6gAfq)@)tI$x0GF8 J:l`8{c/lPo+$0S9qOpbm RxN7yD#aNł'C׹N zR:W2QZE.pH5eTEc AIX @ŇP8рEyVrNޡF\ql֢[g:owM{'!BWv]-"MANj_Pq_ tw]>ŜE͏-bf1)3gO}akk--,//z_U߽*!Q,}keeY̙3-gϞ'P}qhoXt-cPJQQ|$`Q9Z'"S"yXc朚(pcE8A2"e؄;ȋ%EA P: et"HvS)ߌ5ky4~`O>䮉8gmmmh4o.lUeii$IL&oY/_}q45BE4!ׯ_^_:<>ϖɴ#`-fcld6Ţa1ק96flTv7ѱ1<=nBeIӄHk4iᜡ?1֐&֎' =FJEY&ll6A*Psg:)q2+J/$Q2ԛeNUx Th$#AJ*[Q9%EY %XgБ`mvܸʠFJ Uͳ<_W+ t;Μ6gLx6EFdeIf*B-9pu>M#TƄ&)R` >|DQي8"p,Ɉ(k,Q :h# H%+p9XP\`D1JJG8c*4Ux6׮aѣ2`*-5ID1R#2)S! ZhAI']fHcq.8ɢ8BPB)ERw<)-` cR|#)Cf0U>/ގ 8Chqq$yQs:P;9Wg,9G#='SUա}'?a2_K.-ewq锛7oo~sG{8><'O^`4qpp˿\Ȫ )%7^{5scn߾ ^xa|u([ӎ75BL#4lHwu#8%)l^uu&ć5u^'/  Q9p8 4I{{{ ҈X&gt=TUb"(z]|VtK5Y^ 4+ 1Nke]ݤ%qև&-a(K5X<+QƖ|U x> D$i $*K%n죄Cbj`6ͰRVunYKe-YQԍU&!juqLRh/N UKS8B&Xȴ:fVQ4V(Tl6Ś )T( ¡(,ZJ^-$Άg\| F|:g8Ԭf ,uy:Zl-8 @G὚Ŏ+ŋCҗp8d}}~G??1|s 7<&Wŷ-& GygyfEQܳ,2.]GCW.\8sUp>O3Ϡ{nSO=EQpe~R|SX]KKKKKKKK[T}gQ?at ӻ_oQ Z~?QхGe#ۄͶe8"|9Mοg9Y38~NK{Q7h l}Ɔܣn׎XV NH c&l*VH$^x 2$<‡Ʀuދw䦢4eY"bEz]qraT(QR!ًD'C5HsNnWbKDbMh+˲@Cwy?o%[diiOwqZZZZZZZZZP}ZtZWYFhbbR3FvqC@"F({g!? !s$I-nl?ZK$EY,--i.ɌPQeY!Dhpj2:y)J0)2wt}ẘʀX$ho掑WsHBMsҕT4,bޔ"2&1Ha2ʺ D"s 3RCk™?(_ĬztL❣, "gmI1Ĭxo{ 8kqƒo\MRX("熲4x@nm?EE]\o`Xb!PX)ҹJ$kIc+Ƚ 2I`!Nbf.)q΄wd=>c]47oZs\-ug}j箼HSkgxAȞ"LNw Xk#^----------Vj/,tXld(g4Qs|3h1Ghqc{tTp)d¨ 8D0?z^[ +K=fՌ(RDR"etm$6Xw&28zqYQG]H#DF(/oF(I:(0eq&vP+s($]"Be"O'_ƋjA.gU IY=4+)-@Xr8YaLuH֊ʱ(KX?ƩXqRT!N$gN׮^`grVqp*PZ G8WןzIAURDxb yQZCQU {"7nmsln02(APѓ8aIzqEIV8,"J*:Im:@ ohq- )xjR"k ;ypBڐw*ܝ82ֵkH",Kx432)qg>[忒Vj/!Qp-)`ąPeF|x@74MQ󧵖8C0o߷yb~pע(˜~?sz1:Lg9*-It{)q Q78bͰY %I6+f[#JA*{_}ity@1JԂ|gA29y1EUe*l8;Μ8 ф3,uܺy/1ﳾacmݽ=|FI,hZ<% NrVbC/$X;/.]2YTZ:rkk !%֙P߮@J³mVC/c eQ!3812:.=O?FJ"Q\-p6"8 G & z3e3!CIK2^׾0 *B2],s4ZK5΄7 E#tu;!B4ZZZZZZZZZ @-4ft~* 4ՇڸjP3o\G#`G߿3v1qh3 asqH83Pэ$gG1,&]qqLGc:iJr:e:P If#֗zf֑3nʴ*0X(awkg6sk{}dh:-BggJ<&4YCUH9q$y^k׸f#rq: Ue)ʊckw֎W? #SafS8 L1\YBE1qoHoЧyzid2xIΜ>͵kט&aIi567o01&'g] X1G8V 3˘NL,8|{^x1+ n3sH/dY!c,YH)7Xa}Ry`ZLS$=Y~==B Wg)\RZQd AAF9(iłi% Ƿ @- ֠ f38{=kҌ4y@oF+v5QE ^ *tC,@% UeSX^[N3|8 $2Diؼ:[ 3phl`2y !.n]c4!uLޑhV "< UUt)lqpOVVley}'JS(K$/JfyN"B*=;Ls$1b 0DI,7$i<)³5ڃ8a`"T$˜K\,s8CID>3p6;#Njf3ttWhiM %NSn4)ZE Cf  Eb,#M ƔXk(\*d$a42yVBE:^4Og:h}{JyVLY^vܬfr9'Bjޅ{sMxxڬţCԢky:ZZZZZZZZZZr9d:\6c'Z1ojĝfkqsZU<#-Fo8')1 T]]h: Աb.;=d!k-3gXOxoUwh4I9_{ nmaIⓎx$H(lA0҈t+W_[؟L"MUEAݴPysp"ǃ IR%4k'> s` #(_x>1+wdyN1P E<\(ft;1})4MQ_,`j-.Rÿr IgSBV2Xby8dwgKn)T[YEg@Txq{Q qNlx2(fw2( (BF)Ɍ42,-?1MXי(H)PZQd9E)JVW9q[ܺ걓<{X?D1G};PI4+aQh$Y S7 |^^ooﶾk+Zptq\sY%Yt,Ư6Ey4UR"@*qy (XufTE"Ǚ,kVH%zH$y(K˱vDJAE -N`'pJ3 ˙VikEE&12IY^A(Em(|ncZʼb0]=AVs|$'O$++ R ZFigal6#,z${ۤa:wLБF+McNR3vwX^ZF!gS"qEAG(bk驈W//~>$JfEAiKH-1וTRJ,)kM%=l'1B%$QI$dDՂ e9QMpIΜy4 'Osx;s0rBifٔ^~G;6`.6U0gGZ!͊XlG[k~tl|-----------}P}sn Դv"YtAYĥ5qǍrSꩨpuK:vm)Hrc%W`iuW.sX[?ƻ.7y%Q'E{e{159ݎfp|St^p QDՌڽ B _խgJ%):Y2ǎ,KDo&8[ISp?^D9LQ)ܾ}z+˔Rc+Ii"R*`L&3 MmLfƬ,ӋvwHkX]YLQqlD:HHt ;*CHǣ%'L78 FdyiHFӜc+H/_dkNO!zu+4CII]{qJK&~N?t1*^72cHP!'4ԹE֡k}1^N/..GViiiiiiiiiiwx} i6UUj[ u^mi9;U71N3$'s'1iBU5Y5ڊ')8+x/0E qQ'=LcgĝDZcE1ޱ5sĬtu5\VOG6Y[RzH,?rIʛqyN!HI"IUFܢtf9c*OB;TJ!Ҟt11+ɰ98y^0qα?ढ;" Ƚ ‡YP%yha7 *+0+SNgNFM6oqy[[dUP j7JS(!#1Ee(2\J똕20YE?ಊ/}زG,kDQVBH:.2]H8W2eYY[eĝ>nlw*F~o )t=FʪZt4mxMHudU<TJ_aQB`uшFiޣ({'IBYTU5_ڹrh-u,f4->7G75sM.@e,ֹ_y`XzX=zα?͘%qCe !D1NHt+^ULv*ht*0ڦ%"`my[^'=od2+F}Nɬ$)*:C2^wLQWq}BQZ1JEt]bڳ{$:Zv&vww)/$^*PL'BEaex!tiFRsry 3pcDrl,-sz_&nG,r:SXg(2Aw@` = ]vnK/)* rO1)9Mx 6*̃xyޘ4Wvz=e^Z  G3xk_I2ܤߗ7Iju@֬{8ͱ͹ܵ_Kj/mhb@N7cu X@*RX ORȸCɌj%tڣ O&x\"8t$tƱ w/3̈Wx=lQr|8@Ik^c0qYYF .qc4`gDqJtD' 3iCP`]?֚4Md)hL?MpuʢIyeƫ vqI%3tɊ$t,#iZH:[b1ezhOHuL4%K-\~4:y!5B)x!BJMHt(q.J pu^} *Y`meID*BuLc<1JEe<:=z++'v}:UIa*E\XUX+"gj FJS0Ωb~R@YdIL܋~6'NayۣX .dT1BxPEA6qX`_.AޠCjnCh±cKeXbƢ \x N~}F3t!MS['q7,ҍce1:txu13T{yuxkF켯f(w#Y@閖~Zptx{pi7o6rl1X)⦅4AP.D8QQg y&ӊRIܓ N7Q)/xsgSdӌJe6ޠR R`<8}|}uvvn2쓤 7;)/g,QRd9}x~lI:S 9VPp)Nڬ׺Н^EL[Z먥THb j1UH dAh22W@i|wE^ZQ%JH4UMn4Z r @,)8+˼ ɅdV4ȊH`g6Ӌ6t(ĈE$\ Ev<3\"D]^}Ŕ#޻{exgԧ?xHٽͪwlQ)% 6L&R ">yqcOڮݏFFFFFFFFFFF4\zWAĢa;w6[b{jҐ+=z{*7DR/HdĔU/P)\ Đ"g^2ק{k||"d4:γvFUxWMws>"S?|Ly_۷wzY ZK2))&۴(%dPf((K2-+9 4͚7oƌх޵k~>oTaۚ(*ϐJPM~6ʼHEYI Ώ!Z9%9G^x%qM5r^{>!$Iz2']1FQT1:ޭt5'g4ւHYF9y#]뀆Y^ж)nK_2rݻ{f>QG'zpαX.9_,B0Ɋ,mе-!rƤ0Fs1gGJvvvDB@jCk-&H۶8*cW>_Ge3y?;,vxu]zyZ&#]t)yj[B >w_$6Qq! D"bdO_' Hk}muddddddddddWy.l-EК5loŶos{<\@$>xCPAD0S !@mBSH!̜U !]$guG9o?-8==f.4os/\q})9GۼRL]Ờ~p8SJ|D(=>[}unx)V5lJk4&' q9A1Y}ea򒪬^k<|=;J;asPMD Z J ChEk2Sc̫ rJ rR+b4Y3R D$R(|sh{QZ#X}kL@,#R PrB #EK<]B$E1e{+{ש뎣ǏɏޡkׯTjU1!&)pEHTw*" %I)C`U;M29]WEvݷwM$)E4<|Ǐ!CtFӴL'lZ4MCT)k[%9iU0sZ!3}8vȫ{SᣇD!q1E* "Z}(cwx\$zOfseIV䜜/xp| rcΑ/ܼg^NY~I^"}u1y@ "%3Wv^C-fsIUke}2 {s΍sdF 9?o&gpO>*vۂMql'?B axɄP"FO-BD:kZ;VR{ٿACd:r=(a6c䃳mC<8:bZQe08XuSAD~p8ꔇo|/*qrz̵뻤,A̾CKL8!OOɋSOܻ~rEO)W ~mnܺ(OEF۴Lh>J D>KIil>!-u242/౶'-@½Y Yg6%˂%腊i9%3vhIQdm"ĭ;7yTUɬc3)u`t͚swnĵ7RS/x<>9e3#u](iP1|^IBE$nZu]lgYpmzDg<_ϡnCh/hddddddddd1 @#sxjѶa[PIݾj h]#O>J'u`e#Q+Z޻͛y㋿vsah|nŽNgF!p]G?l^xF8FOH=IΛH >Yv6߄,W0g{$V*Oh ,cY/Lp;;ccW^A?Okygs|c$s%Fk~o?@x^θʫ,y~6yK_G8^7_)Ś3QRc[w+tmKYΙ傸L&%MkIb%eḨ3 4MKk;Bk/uӐUBJm>&3y< Zۻ4 jV뺦>3:y1!+*L1%n,M!PX `nY8Q`m#%NrَsRL+خ,2ḩNY-smtQL*nN9kk=G@S洍%IILexh5e^0NUږ<&+$eUO'%:9;[P]6$%ٌhe\D$A'?:!R7518sl hm@(kiEJY&.ؖ(P2 ݱWǫ sc$;:"kĖ;hxlqU(Ҷ-ڏ|i_EQ\}_(<'7ˈ'BͶ3^n6%Z㜻X뽿8񴒤Ȗ@R*1|p$R|L9J#sfYNAqh!̹"Qe?+34snX,[fd>cp-vB\5,Niq\/xp׸KlMZ>7Jr=Vsdt]HD'g{y zq.3)%}]͚r65sMmo(S"ꎦ{D(H@HlNF`,}>/_>!.FZkIf˜=zZ9G2z29Ʉn.bRMʊ)1 qujYN eQ!]HepΓRnl6)>%Y댼H'2 C!RH۬(6&J0elU_W5w;ojNuu}bZR.DͧFFFFFFFFF0 @#ύgdms5y-~| pS/ w^?e@[o+[hîy}l$+lE]R`Wݷ~Ƚ0FKJzub6"vr^ΝoA\_{8(3?z{.?8[چȔ!eJJBY/d^s^^ ^{5<.߹;Ĭ@>`ۖ҃7d!&CI׶o dQBs=;y;=m#96,)!Ƈ!uySU܌~40 ̀ ST$ ;_Bgz]b$/~X !JiXki5ٌRtŀ@PU(L{ BSB<P.DS.rm -ۂU!+gh !\װuAn?j=z咶mL&\Uil乲ݎ-\$n<ͳںmec$BH:RBHITՔg;] QreH\= ZU"lVJo}ً/cċ>wH)ӻb{rMjC&&c)𱣚Nػy.Z6خ!+:x&;~Gp9??j:e]75 {9J$O 9m[h;2ܸs)0 ")y1|yd2-;NY;[ '{[0JDk_x8Ehz("i#J8Xw-׉!b[GYNN!/]K>5MCEA4(!%PZ#G~B`}(F T`Iqrz)qӴU.sHhȴF H`G?Cڦ8‘,\JBv n'mYVs88;;c:R/\W_ȳUA6ۯJoo~?ñUh'Av1"pH߈ABu:) N#%偮^r:Uush>x@cWde "DܲEKy>k|eUMX!bbogm2pNxt.IK/^ o~|[iŏ#)(Jv̐!@v]׷%A܄{źcMݑ|$tٜ(!s6/޺5o||ok",#.ԑ}kÇHr]PlzgDSj2B(;wLش7B 9dVlW,KZj|*X?^R`x̪e۰t&DPhPQb#H$] 8p8$!DFxIΡ|w$7xy[o}Xڦ[t6G%/L/~yeˢ^iR*)mq6mVi,*2#@:t2k 3O$oE:'/dЉ}&SH %2 bb*T( FfD]KYUmGROIa&&I9|,*PJu(R1#:"1"#եa=omYϥkO1鶰g9~>jE۶6MCJtK=ϧFFFFFFFFF>QD06j؞\sM>mY"QR^Ia#D墄BiC&6\[- :4m28][~t!JuN6Z8G".B /4&e)c3PB\R)CXLD(Ss?BI>:ۿ.{i:KnrsNc$\ IDATNN웯?GD^QjCJŊX q 'FD2SHCwɋiw|ri>>"/K929Fi( .cfd:cWHchRm-)>V bkYњ1D` ΓĘγ|F %$Go;|pEB'P)%]0sJR~Yb0gݶ{nI. aEqe!YIn[Eh!/)iQD0ldcW7LZ`Qlgl,m&lڔ)E;%BLH!{5Hiss} tX4X<\ N5,ryEҊx]ې @c-m)EHiPJ}90ahp"y3L.rDFL6]׏6Cb:ׇ7%!HRg07-:Z  =w(& )SUzt!5Q"%$ItΑmF*GoɌBruNdyktg"UtNn2ܰZ)rC9J]f#]qo|~%mӑfuJ7lqTƶxg]?@MQ9:PTRL<::#Yפ(a6rB$6v"vyQ @~rW)&:gq!P%%Bi$I($) К!ֵ#(#1FӅEfXxVT8-%0ZDE$~J֋%E.!a!YI\RdooD$D HpEEК3ΐF#=kI) dʐe9˺f62JuHAQ6h\zT oHx:q )nw?Wn_~x5=RjLw9ܧZRU9劳}bRbmǺ1:,KyNvw12X.8>;F$PFYFEHeHջmbDjٷ+ ٷ )z\בdX TFU0%J"iowb%d:MT4M-ZD&ՌrZu :OFP5${8H/D&NbDmZJxsJ۵g`;z8$?)Ir=|XMX-1Ni@E5:#+h:@d%{^orX_n/|o;1uSf)LZRNKtN5K擒u(T) u2=cYImrڎ#D)R,S!1El&RH8^]Gl"&vXք09)ZO8Eњd3-4k2*2kɐ9z0 wEisA$:kQ m[ QCb^ZPRCBwmֵB1 !@ 2>>Dbҥ\ZY]SbD'5{$u'ҡ\~}#########?4jf7W_{u2N6l@ e/[T$~?B1xٻxlgRClzݡB;J#dt{} ~ruuM e uCc TZIt!41K$!&;Uiug^~p׹q:W0o_J3'/r\y}`pkTw߸FU5auyi3ggc^}f#F<4H-Jۢ[dhF*VC5jJV\Ҷ8yO2&\1<7ὧmڍ+F^/eEALLd&'i9CjbBȋb׊2/t۶D=; h~5t̫uy5f|=O~oC?,|گoddddddddcF W< ͫm7U mFznnBGs`^VHc5*v&%9dF]lsQbdgwt6A NqB$%PBlRi{FdyNYY쳇6K}qDniJQ̦ $Mo]S,/@@mAd:%1[% ,.T(qv-dKYKa u!7y%5J8yoDY/ 0+h%+ !q.5:v|X-Ҷ/,|o~!?s},\(< ojl=<'peWz4ľ{ғMr[2Sux<1X/W+|pWSU}pmmZDIѣDB*6PfE<7@$ypQ$(уy:Z&ewý]sLxw>2p8q3+)R3:a#y55ޡf>) ֡&ƈuUUr`uTmȲo;/ubĺ)XyY2T(-к׫%J ZВwtmLk!Eb(im٣sT:k:kR6Amaft!! | QBgk;tf()] :zWBd=z;gwHOOԅ3w=^ }t{VP?5u"t5ojyRE''@ck%WWWX^/(<aY.Smo*;/r}#########4\!^LmYp9Ws{>|uvLgHdJh)p]:4]*r5ՂIQUYkBB䙕yV" 2 B##C9:ES4S V$RV1Y*0چໍȌBk)4 ecL ׮<[RjRJ\?~x[Lfp1)̦3DJ!fqv~!,()RM =.KѬ59ABѴdi; ycmCZBM##n Q 9O!4ٜ= [!D+j# iRj<2źպAIG )G R`E .F< Ivs7?1!ཿ>/eJڢ*J|JQĔCY$y|kPbq(5 n7|+/t |cÿ·Fnn[%JyqO1닕+wrSGܙ+#2j|f(-Ȭ,t`!NHGM[&oWD 1!LPj2<gS TFBL[c fS&ƀ(*#rF%1`WĘ%"kliy;AT"!iy_ވ#tl޿aƔ)r^,{v޳]&b.]@祀>W^>_җȸ\1@<~˙ev gw]Ʈ^U6~Xn#92+ Y-H:̲}Ǖ٢bhD#4c<f6tf6_rV-WB+V)g= CiC!qB3޹hiNQ5)#mQ{wa\i2.Ux `5d7's5Qk#l]aa}R 2u ]v=EPR8_e3s[3߃nn)FBF$C9O=s ]f0 U%T9W!b"D~$"(RHH1,UqT"8K Yb,"]nyynv41%Gym]AQۿpxxYQҹNLLLLLLL3 @knYNݮC۷M*i#BRSBsgܳ2|xWΐ(ˆO\έ{Ljkp^g3*g'X+u&:>u43F1r 1HdxH9!C?r* +1Vaْ.rJc łl~ҋ_ů~d,OIrt},xfG45X CdS͒h)& VXB _SU }0c f#|r)A."m` 9'}{|D&ٯg9}}W0LCBԆ팑Q۝F¯SB+l~H(M^ѻE{b=tw8QO_ܼ>.! q5ghhXI*b9۬!&%}X߰{Mi5"P3+)/oMc ~(90I\ňbbR;l ͢=]F{r_{ q=7?gyufYd7'e UŰA9[U4S3Ģdk-C)zPq1`YGJX[1 C [WIۗkzؒ! %)ohv"aݮ IZbA" \ʼn\E~]6@ 1FrӹRL/n2JצkKW_J\q%qlD.]R;>r %p-uՊg6iGA1&&&&&&&&0 @r1gd{@ T%:vozK0v,[%c뚫WR4kuKhjN[2qd,Ιr8;=fX̖9]`,a}1mPzFچ!!y}_™k_BUеk JmJXS.[u˵Ǯ4 ]!N{ ONi|6OiCkvYQy3S g `^ńXރ1Գa"%DzZRbX\x逥%;1grPLU C_1)1/ ca{RTx?G1X988$rLh XV6wXUrRR yKxcԐTkCW:Hɖ,1QYWE43X;ŽsA܈1#0K[2VhHYD(Xk !]X7;cI}&h⡰ܶ3y_X!MS{s5t)mڃW\f?AVÂM4 _k/ތXB&%"!+ .JZSJ]/T!+>00[rt#b|ͺ ĔPjTvKP7*y/3m9Ox >}4zA bꚮ[UUT5I Vhcy4w+N IDATsf0{/w}7x|ɺ {w 9"ROz9Ҷ+ P7qdU۲e:b*UV7A`ꆣpxRN8gY:9'g,d!ْpֳwx{씘#Mw"dbh%]HQ mbd:VoМJRJqY)99QYhDecKt{6-滪ܦRQJj]?)#(#Zbt]l6;!DY R:m{M?*A"r{,׃ϳ أ0&&&&&&&&0 @1H{ ЮK><뗵-G(l?ۥX MYt2-kTVܦr 1 b8oY䌒_%fg}^zx71!i:&\SUh8$l1sIBSƉlEJ `h b,1%;`ûB:D )$N"MM\ E,)Bv 24 PqQđu2gX+X_)ތI$MM8$$}{vͻ,Kl1X٬}ҲYӜ9qk 7ΤV-cX }]911111111Ix(\4nZݠǟv7cNmi|.BdJBNUj.1luêOif( MQiB°'0b1bGģtBJ[3IAĠ"6 hDO\Zg"˖BG { ͎A3}#(>Z 0'c1u+W!>2b"/X4YQ膀"2m@ X'6:ꌦ13E醾8̌JQ!FRTf1Rc&H͹8|bDc@4c:DL[9T5V m`,bOaHhkK&Zqs Nl 334AtKȵ-nq_8t529㜻0ƹZ ~]J+> /O|O|;|_| %1=h>MLLLLLLLL|6&h⡰]5- flw:LmBSJ: Ksk-dP)7ƛ)y03TE0Tgvj,]8:f>QUmB#τ^E!eKʙ!&*I5\ 1:l EEoڐ-y)erNM@ʠCy<כ%t |պ;|O>CΆRW_lfR>b+mѥ&b)B@"qb1MqxW”Cȴv37,zFB8!CA-F-C9%$2֔_9,g3P~}MBhɛ2DH("l 5u MyXRAŐ`.yUK(\k{o @m܈^piv,;_w)!f2Qp|8!<1oܸ__''t]?A^\gcCatёMe,cָk~lŰ+ kF2P\?1)M 醞7D1$c8UrdGR>GG'xjHC,b1Xu\cVrR*/Rt)r|ђc4~M( 4sD+(A-B\RVf#K.M8kq ?[rrƻǷ/O<~ #uopmX[Ӷ=b})#}@EqwF*1Ե*ZPa)%Xknπ%E 7#! b,8ĂH4˸Y wZybvĐ0Ac@7 MIjHX"FRiUcJyۢ8wmc(l 8mbM^3{Ap(8Ep},K/~xȘ|1&&&&&&&&&.g& [Bq9WqQ.7ۥ`g_* U9XD8LvE1>_V$ڶ)"m~ kʆמi=ιXc|Cs$fE&TCTU5F)%X)!akuJ"rq9ɦK[g8YH)]EDY8k)E^{-=OOȢ|k3Mݐ3=a13ĈX0*_R31'#|1'e cm7b*mP M=!Ҏ>Hz+:uX0 uU53 M6V[J )9d"&9"E4o:|9XWr{.)Kv˶v×cxܘ͵=v'`2]v]@Aٌ??888xgu9U]w\'&&&&&&&~יvnn]qf7Sdvf]'nP&&Gt#%_T6Q4+p8!Kr&@ m[GeXPMXMc=4*n* ry #)ݬ w6bJɗśr)gR#h^2!'b7HD@ItC`Ўukh{zuX,C__7l/3>`^.Wz}Ix((Ν=X1✻ ·q3;汝X5n^Cp1MR4} n!H9q&FQBH8cāzV)j?ߜ*GGj.)$jKL $ayJ-rBj`F5h`2ށI %c8aZa%g&cdMPUEɩ'e5!'Yo׾ʕWxgi|ͻ+8Qej.}fݷZGB4`0 x,cH+b0mnځ P&ȪXcH1#[4ifsbe6Ĥ2m"i2UhԶy{\J8M  A9GK>Ƽqn{ee Ikqo1[cn6GAi $MF>&7111111113 @\ ֑ۛ2}.Dc΅M觅Jo^ă"bL%R@YbyMjbC۱x-1 }106jV*qbLBb0Mx221_QŪPWo,└#Hc.J<SRK`!,(B xpƗ -Yp8$$0YhLC<PenupÏIon\{'2sM)5uT5cڎ!d\fSDX)bX#J,dLaud~Om* R)ԵE44S!rI 6RasRfeX--9cTq13oj|N:6%h3RJi%Ykf{qvsn آ~s&`6>jXk3E_Ix(vv|s-# !\(Os70 :!jU0s&Ҡ,Rc%a$|VE8x?'koø}p!T%Z<q( $4)!&#Ղt QG``>fNcTig@r8f`p>E@-z@m&C{75U hITT,YD%#7r㏹;<ˬNO2/՟`pɭ;7xĶ'θbgnMb1:U$cV'ց [9㰹B+b^RLL!SDP@3ohÀ> X":v+$UZrg+80+*&"Ȩ7Я77/rP/l/u؊}wlwcI76q=n0|rge~sNOOi\|> c|obbbbbbbbc& ۡͻO+7na]U9%e\6ϑ;P2qSrQW+o m FhwiM Q-Zzn<W؟ үK*RQ""YκO_;G?d{I1Z{+'U D ta@U͗c8>;7%'698 ]Rap\y+\K9 ic ]۲7_?a[;śoq(W rDa8do/}- e|eÀ5ݻ;:6IQ5.tl:gbIzɓ7^/}WAXF)}yo &R5 G jUs+{,C8:9q6̓7xqMjOx/ʍO:Daewnl~ﮛcb p3B1V𗸄3%k{-SuE_Ix(87۹#cȅOq쾾[BDɘ?4v#!%ŭ ر lA# qP)mڻ56* $^Wkk?K rD Q6w,%b3.g{t5)Id2b][rsnRֆ! +`xڂ|v:Y ̓W9{7o~D 7~01An0:]z9fˇת"s/:ۙ[*5s ~TX,=Ӹbxc}obbbbbbbbWg& eW]}FTlnF{aħmnXQBsɁ)(1"Dśℴ:a _zqn۶{ +ո\Y&44`:4 º2Q9K;t ]OO̩Š&ĮcQDb!b `|#/^No.}:V0% bVdu,F*59ÀuS{C۞aZ7}xz|-\m fXΐ>!ZGyo>l)ʙ1Q BÏXϐOo[oK*v9_ēvXV-!y`yJtǧ,|<n5`\CbQ-,7Ak銧?_|'ΎR";of>Yr|>)l^f/XR1@zwJ݌3Ro咳}*, "o&&&&&&&&&~uM<.۔nnsTKrS%VJnAМѱ؅*-]]!.JI3Mf%e)g&B)_gǼ{f9u,F6MQJ<ʇQQ䒽 ܌Xfwߤ Y¢Zpp*hTvbHV+H#Nk$됬Prmnz}& I1"熶?OgQ(R!")'RN1d)+|czqn<󙇘ϖ]1y7F3cLP:U&nW)r`MFhX45ŒbFV\Pf׾2 qg7~B ĐygyثTUhrؕ9j?Y9+N j*.rrr[y酯Ӯ[f/9'}q6նtrR*pgId0x7@7NQiabv+_g\rxO:"v aܸ,}6sEA>x7m{˺bue:NNL#5R~{"9eY|/ϱ8_w*o9]X !vwlJ.{ˎ.~4r㟇Co1ChGr֝2"|ѯobbbbbbbb3 @mqyDT9]PVj̅o󈝂2`S8uxx/L6Z 0xTTjE۶ef70B&Gy/S5 *]y׹w{{T#gBqEr`!HʁuX^X<%\'VhY.1` "wPR&o:YcC&kbNNu+fՂ~Ę ;b 8B_ΕVޓHa>lYvUSOQ{G|ETB8 uxxd8B۶sGj.ĸ[ptrnߢŦ IDAT7B8f ǩ' 9\/lɽuTduκ=΄JS&zE`qΝlf}r^_4Bm&yn (X,2so,~}$M<-w7AͨL4g9hts֒YvKb ˦dgLByGYϨ'Vuppp^~ƫF6B sW4srtAv=q i=~ƫ=PJ ê Yϯ#H2(`eխJ“Pj.4cRe8ScrQb\p^Wn 4-~n~Y6/~v9zXku@|ѯobbbbbbbbLCa{mM*Rl:So^,1s&K>$^Z.Y@a4zۚ3Ir ON{`Q(d<`]&kO?!@:'3 qޔ|DMq)wc ڒM"D$ ;k=hF7 l0sf>RW{W|tC%Cn1rG[ 'T6ewSj{uH1rR55}H)1hY[2%ƈrg+~(Ε c,)f3LD@V`m0 r$Xλr9Ā*)RCkc&怪u=0y9CNĔUmC1?v^gn4V9w3o1D]uͻc4NUU4MCUU 3711111111qIx(춬>]2n a(qFlFCERU‚ӹ(gr.e 1FM6Gt$:p||xޜzESX4K{K49b\zk]sgDv؃wOn2#\5̊(fm[c VMELErR"=-ъ,{qUEEM71^#I3))yD,9+V z ! k9^黁bX")f~s瓨RK ozb6/Aβ\|Y{BJx_B dh08Ysv3G !pzzµlj!"ΰX,c{F-\i) m{lqVezR͐Mqn&-+ܼ1O?41Br<9bI!bR%sI!ƁwosX`y@NkW]WִmKc؉g͞$9Ywwq_,gg]ChLoK ʌ&H]f,04:33"?={fdv5fEqȕaiUfW ޽)sTkfֲhwMN4o6} !|>g555p~uƃozgSbO?%劃=W 8`=O*t$O4M~Nvm[Z]^nPyB1FLD^UM&&K&oUTTTTTTToRQ׋e-Ae9m(R(,rF4Z2Hv뫓R54Z1UF8&&X,Hz\qvvwI-QBsEʂ< }/:C5+bgǼ|qَjQѨI;eY=Os{!nj;G ~&ĠG1YHW+g$E Q9DXlg$ ''08ywӚ-sfv;il\ɲ)lw1w c#~}Y\ c߲?'?=w8;=cic$f"ŚT#QG_7|_0.}mz> @ u2 m +-ؐe>@S+n5<>7[?**ngHYöR`)?Eӂ5^i*7?}la-9B͘fC1ptt #"]3yNܡlYSxq(,hm_.*v:<<̜فc5#&҇@۵tw9| )1HPq9o`Z(e8cNO6C~rdX09WEG"npkV<|-}X;2:}pxst%Φ O !g|)?82 =F \]^Kֵ#o8==@ȝ#~H>_}%c~B{|yͷ_\/pƈ b6tMȳ8_;#T}x|R/Y-z!AY?X;Zg$+ 3 *}cWTTTTTTTTTT*Tq+֦`ޝز0*p^ e HLl4l^FEr^O֦޴v8xQR7xCg<BHØjҟ?8kqɓs zvZ[w=A7@Xx'`YjKMaF wO! =@,FbO9;?%ʐ it톱Ka*?v0xo8>99 qk|19?OO H<9%vݡiXc /xk ! M!b~ca#o>wçky㍻a^f|<}/i`l&FKU:AE8gx|%g>13|G<}ᥡu3¤iJ(B EMsinݼ))<0^fʛykl"y!v]2e.+?yBqeo 4Mc.}X81d7{(gg1 #BA=*<Bf:zjq~ok-K0%e Bg=he-E%B3r#q6xhR(ZT Ajgh~ĹrvXx>Ùl ~k; ~y !,_t͌tXux2Y=oXi^juͷ})PQ⨬GW#qe}eDeqW#xqu虵K]bSրwcu Xe+~\-.|D>d`5 /AΦ&)<v)SZRFED<*4tzF6}+**********@UU d i]B^m-]>JB+AcDqsjZ6]7C yVߴYRjD5b jb$g2c1`c5Dz K\#\\^ͷx1/NMG״32ߥxa)͏Ȭi\c.I3 :qqI7hhms%,;dT'Ƞ4#7)poǏ# GcpB/qšjt>a}⚮a8;cysq.V4hww#gyOP={s\\y,uD1~By.J}֫y!w*,c7aӌg7ؽy***********P [1 gax,!y"7-to ݵM߶6U1]if K1* Zf:6rMZc0Ul'3κ,# k藁q=Bh[DM"B BcMr1}bb>K#miOS,sAXzY>{1Dx9,fś~9%ٮFùԬ1*FB;A%s4h=&=De6||чo%3yBOD๺\` $֡XPO9$[岇hAe}k8?I$9IEr\Ru7{+es۬\inMgwJU a@bĺWրY[Ldש vQh"gI.-IiEMjKmd4hm1gm888@!: 6-cĨ b(v(10819MAN>КrA6*иQȞg~Sq4MV#,4! zbPT j,EŁ8qI=d!3BD!GqPVuX4H ]g*B%X&e K@T,* Ht%\O:9#108l!U82 HijK;0 q# #q 4ALײu!M$ RTJWnz6ϓu[ul!شMä꫙]ۭ~짢wJU q$ƈxmWs&u.y4%f մ/u 4]+d"H12ZkR:iqXPgPAcY5 RL$h)*=6 ];êHD$c &5|E$3>)2#vFW F[uuSRMsJfm fr> :mݢ@UE4YJ`fZUݪEnQ0p\#iTK/ >18HԱkEUCc۔b-@t Js|>OLzde9HͤP"VF &励,GPTpӺRH@! 1HgYDM48ch#d{"M1 Q#K*Hk5 !Yg)Si4x!HLֳǰ1jK&y>)zZY=a 3V`]0!`#XXk5ҼqvfBqt]FC"Z?È$F4 Nb"~,`j4Ctmfjɚ d&ƼM?/]>=qR>QNA%*n`K&!й={^_VxMʇE&I"nnM?ӻ1J.!- XpF(" !UgaX0?Cj+ ~l޺Ԉ-q)&FUOx IDAT5 JL(ՀHim HR׌Iu؝88bx8yl—8&Uw V#b+)ӇB`ZZFa-Xܢ)!Hq<}?Z$$,)ǩE}˚c=|Dc(t EFU Q E+Yb4C-(eQM!АHNc74>zjtNd w@´TOpyؔ)jW#~k!M**#n*9q\:~rZ ^tnXHK1R2 #feZ3* !pNV^Q(J7ckT#B۶1k=#oןc Ǝ2=ȂЯ8>gqukCԞ(Kp#؁(Kca\ +WDGB0&U#X (&L`e@k^҃ ĸd<'%Qb\CsyJZeWH1V#!a(Cywq@5`-8L#$8"UIӵ3[$ZJD@=J)(Z^37Vh\2`t ZDБH5cI jD19Qi-{廳ٌcSϲBʖ:A{ڶ"***********~ [&$&6m޾em "H:uHn8l1Yua5U[PSM-k+,=Ɛ=qw[43%Ȯ%,XF$\^gYR!\ Vyl"@Ic]"UJ˜9 5)B 6`U1.Hb£leuID9ИN&,l$ޚ<11-xoQI$}>YrnNHLdm3q^[iA%_X-Mj[o|9/+ӵJYzʄYA!yRA7LltjZ*ʧ( !IbL+씼IJUMjCs.ՍYk린48ZQqXj0X㘳tX^”i뱭$1B)VCgZ[k65Y 1re5dҡeτrցP1$X|V,97%q]vTc1MIƤ̡8$LD\RȚ"&k:ټa"URP@ IZ=(Tv&~C[Q4@jLfBaL#kF0^AդL3U4ټn˦ݠC1>]шu J0sIYlfޑ|+@x )dM!eaShUț*2ֶ!^}F4k-!/8iQl1ak+)+vc|g"c}5crXsbW06>9x5ר{])ǖ 8i|#$q%!0iɤO" 7!/L;@R{k4jjD|r`M* qu65I9;8ivĚIQX$蠘&)ǔ,J4L1.% )YM&L"|4>Z3#Ĩdu(5c<5X+X2^eMb+%Zs~7㭨A%*n%3>%Ua ~-k蔝E?lc7/)7i%)A5[ͰkcZ@4ZQ6$~! #l&$@&Qj1XS *ޤ,%+q,J&H<AHl6*5AD1H*4/ Fm:zL&,UIIu"Ƙ9cR&6B " |$X"¨1!\[_ItcLĖ!O%uM Ns#}}\QJlr{ݜ):%wv0rxem|V1=NEEEEEEEEEE@b5J@D7$gZI6A\In HLjunv%E͌ɊdL1JD$I i91N̈@IthtvxkrV `G[Dv8\MM"v%bh,Xh"yMDƈ$6M+BQGL҇RO$lBi .!\ƥBٚ*IG*hBKƈd 9!` aP(,/7?u&Oi՛X{n6nPUUTTTTTTTTT.*Tq;Ȃr;9ZInIZ|ahJ"YkH$:y۔rr0 uپlJH2ِ|56 ȖRB,"צb,C 0`Κlג܌搐ÔV+ XT`t$[2upk;l<#D"cLza1c8҉xR,XCʹl$Ո%dRxC76Sk!:܄8*k6FbIvrt&L"?uUřdCsFIYNƐkH$6qQy< b65NyܢRzJOw޿h"L0MbJUy6eo^6YluhJZoZ1޺c6ιԆeYQ"t-^-):D""X$H gvVĐGwfl4| 36 W\[+5k\"@O`F2"FPK9h9bG2 =mӦ`g@8`}Y#=1Dp>h\sg ΤLu1[1|>LjCcnQhKd5ʬ7s5 )@qbL;Ѭš)Xq,m֖.QM(FbP8 mo=mTPĈ1!H#DyƹFkp$2{y}@'U5m"ɜuئ90 ;-8)#Z*֭^}9Ga>bSqfO )˺Yk1*TVPր,7GvEJId)&FɊ)y:LMQ4W[kB21?9+'06^8g׍n0,Ike_ {*9'km"NKΏfEUZ2.3iSpyʺIޚt@Q˖[NJ+iR,Ӝc~۲%(릲fc2ƤV 6ޝo嚮}MMD̙Psb!fKt _7>iwf U] ,fzS [C%*n iBJUy^Pdeٻ7 l k.;A"p2$&<6-i\2g:1^Ygxܼ{> .g˜T=o!{&7GAR8cHZA͚3$KjߒLB%N29#W$U\Bj3MEVĐU&n?POd]ҾT۔WOy{ 3|=n ,wVvτ !l}({MsT!iDFm3ss~5e嘻uxwIlVwUAS"sJUTTTTTTTTTTnQ [M֮]fMZV.$[ߦi"8SF[Ɔ`mZ`ԯ+*Ev`E݄M9D7]@~IQk}o2k($q)4:0h,EECرͭso-_bS唱KI䄒Ƞ&)&ǝޫWW6);鶻MyBL hrdf]M. !$ZYk*XƦ<<ק@UUTTTTTTTTT*TqkxuHj].I'iPCαaF'6vEHE),;+ ,wUK7sʐWYQ{*)]Ѐylڮ",I!C 8FXDH(l٘\ΟqTu%!;Us9?(]ːjr fV$e1`K *SI fb@'3A BTC̲,ck@rضʺ,+WU<{STT!-RoRdc:_VH31z~L,|SmJRMa)mYߨr*}&ц WRHu^[ˊ5oߤ?? awN/*A4&NRoZOG!vyL ]+̔:bb|dú/782Fa X"0JDjգPVÀ>^ uumo"FƮ5j^OD| ky}uה*$ <؝k7J)IY~\EUQQQQQQQQQQGUU v7L(%9m_?zAYHGb)y:0l椲.R}=Ui}nivB&%~vU"@!g @ָg[Ǩxk08>9&Fe"g# Y^.s~uboz1rpG0}<˳3Bt 5rXCӵr򚓓C//9`:..srg|cx>{}2Y^^"@c,0&xIj%,(B/ެD2?LI֤l6[2 ]1 ilTK)l{J~&ϮZ|YKopר<~-k=jOOOcQ!7,C˗%`ӗn b_W\,V|)~$*CT~/.jpm|ݣ<a1|ͷ\.V 䋯|#>~b/~o.xr/?jSڽ}ft? 5L&(dH!wJXLѮl7OhWA4C9jܮ71v ZS0|97M>}״wJUvՅMvbi!-Q$ۨlZr=Q"QrIdQ`+;&iAaT$T!TEI4Mwps bʾd C3=^_}Ky_qmxyb~ 8>}ݷ]LӶ~7?@籾%y,;O^nߧu3q<~z?!obg_!ߵ(grfk8bf)P0Uݴ-s ܵZv-%j3_Uchf0*.Mgn:n,ŽݮwjLS@7,V"E@ZNWY'jŧ,˂4Bh d3ZjHc}yDxC XڼdٙXwrrw ޵\/z>ga}[s:xW >mC7O7fevpb8 !Sg( 09vUTTTTTTTTTT$UTSMM iMT5X58c&ՏxcA$Y$*r-N!ipQFΫ:>rl=nT"C8<f"[}8=D9?%/..Gr/t9:4"JԐ;*r_V0UM_7Yn o~kJimQ";K?qW9Զuʱvk5gyΦi)hwQ;17('v,4q7(yr1 Jy`9 &1Z'2]M֟aCZ(X&ۯ.QPR^}AzGN_߹ՂW{>cZkN1rq~Mqy _>ej{8;;XrŢ팃<.o?bO\,s~y 0xw;8sqAӵs) c1 Qk fYJL+&[WJ3k &'H.SuʹN}Jca*c1ER>لq &%sXeCNV󽢢lۮ FڭReDdY)y-3dc1d&EbL߱6[c aqs~!B6]ڦ,)٘=#]6ScEB /Vcl=3cZhczTXbX +gs.+h}C"an6cPEE8q|;oWFDٛϘw!ptUIɣG!R#_(wOOxЯW;rq~oEC7x |lGO? +}%oQy~sqbk12rf3D1X1Uq@4'.<֦yaX$'Ƶ%OyTbdߋ!`4Љ*Fqd6y4m6ċ!ۤTYT@ETt=H[P( |=\ޥέk'*)4ej "*Tq+ {2Q{"3"ܛ˵B>H }Z&R5!qS]l2i% S[CVz,EQbe eklub$ GO$ a0\;'gÆmG!V6Df{s]K c_<~N? IDATw~M'x17%[a^G\Cy>(?S ~|֡Q{|W\^^Ѻ}.. !\\%]ױÃ}>{|+}MmC','>{o޻˼m䣏oΝKaCsr|1uã}.q.ٴqNZu%KD /k!&Ũn(M6?NiKV?Sť!{~gfWZɖ;m|@1!K.m $iHBIINsҜRRJs=1Rͭ KNs@HcL@ G0||ƒ%V;33]dٖёgvgy`c\2B6ke]euNvj]vsҭPlZ]W݄g&+.tFDtqJEt@S+sT e=Ί3˻XU![RA%ۋtWrFKSra]oK`˖-x啍hOleVھ [*0P,D`Z8m۵Qi74݋]8*k4tTr ž^gwB@. p[cػM,];vl00bXp!Z azݳ"֢7oFkK >(#۶Πg 0D_8I~.Iߖg0PtĤOR&=%!c.YZ2!BC02B@+% ¨:93P..3IDDDDDEvY$J64I.KWeVWYKZWOqNnUQ/1T9ZcJ$SȤ_] q#I!H0̞c9ǔMm/qQYJN@{߻@OBP-͘5cOm*cSйuom6>(C Ja <ϟٳf) ]rp6p ' T oz (!CT._sRh5QRPb1s0mJ+m݂B }s!RKgf*+$AO[eN68 PQ%=Gfs"qOz! h Ȳ 9Z%^KuTW0 !jNŷ1&LHduW\͐ RTlCrܖ](h7ƤI.xǑ i-cڕLlKpmW 3p*d0E.Ơ%GsK+fC.^\Ԅ0)y (anlE \B |c3 @ g@(ʥ~̙5=zԌ\>];w2M@>SB:O= SZ Eka-X~1 Byhka-7-MM0֢oB̙8Sh-ۋ2e NY CSS93Ԗ o9J h] U)N/'%y%奔Hʳ rίgs5ۜ|pYيih0dP*Hǖ4.!|0zd~Rn7 Êq>\n4k+!"""""[eQ]_} V!yl$?'SnʚlE%6n*KA`hOlD6 $ @co+`e D|'sZ)DBX h3 @K.cѳgaiI0 ܌mӐ7 pqy}p/\.]BZh)|Ќ9s Ia>@J) 4k6LG ืC.8%֘6u A@MMh>((Ӧgρu~r-5R:*C CZ!CU^'+peqCY9eUFrNr_ XMEEOs> _ c-L&[iWd%=|3].{7%V)`DDDDD)`TBtlT=U%; 0nv5l5Pv)LS*TcұVTJCU=M% X+ `Cyհ+n(Gh ѻMat_>4r02zz`]o(!׍P 訄t|w{j(kPF_w7.F ,pQjD.Дp0p@? M945\*PAK  @IQQ.tJR"TgӾ%۟'i@ŔZSM\g/m "}>rjEzTLflc2R^5VbEvZWvHr8\O`'L>7gd::2bD*NǛ8LADsj>-սc_'_cጆPۥ)Q Vhk|3|C\FsS3B`%De47 | aL,)c|>8:8}upƇ @TPI4T,VG0Qgrp'+B Ay h7j c4d*Y0RH= +ߥ]<8Z998q\s+C x*s~ڟRP5]WGQ~.)BsaZz>DDDDD4Q]Ԫ^9֔f=>[M QESž}h0ZCA%$8a|"ґ_B J@X@pY(hg1_@Ͱ΢9CTU,}s98k|&!auH}?u:Gϓdw 'EE[rldf+}$)m T\ 2cȞ٩cr=]zu;\E^DDDDDT_ .<ي$]f/γ d t ef)Du(0\V_lw]=5ǯm؛} s@ @)!H0 JX"Tڡ)B8hvc)!K%8vB)F$ZHH"9a36np¯f|$ %pqXm2Xc5B '$ 8@55o:j%Γ<+eϙ)X}_@\X ~RH &fe+ג2yL6n<*)Օq6YDDDDDT? ."ᄀ ZPZxu+ 秽H H67vΥURJ*@ %!SJ b~ _Ma .0j n3_lǽRWNJ68)ODŷIuHwiAJ:@+=fJ%455a``N8sM~է62@(BhA Y訌@)p!+G|E5!L &$\ pqb+9_AL B8H<01!0F\.CJd%uR:X Ӻ*JAWK_Uk _dMM?M+nRr쯂Ft9dEr'YXuc-|8(8 `ESSSW9P9dbW|K9wI$!%M8S]_9BJ0P~5)H B cH[h   "`d0D" 8@*DP ?d'۶*d m `X59N@@ *Deg "P.kh B N) 28000>dI lz)DRQ Zh! j)#ל r2 rVB d r hP6ҿBA[ r  s0*@  X2 `, 0' TP !{w ה(#%@J #R@A#$"`?Oc@*C}DB9DƟ?R FH8C0 X@ySR?$|qoC*X'G/ _oP6Ł2TP;˯lZ g_Aa@ƽY&6V9! tqOOItPu0!40 56@BM_01"TJ %}/+T<*J9Z_! RppڇxPPRAU$J&RJU0BIlkfj`u`e V$Xφ3.JO{. 51"9_cgk h2~]%ʜ2up@%J |6>{cMƯB"Ju7HHWN9_8d]/_\A2'`RRJ(!`\ 6"""""x .k˓˔.F_b%FD796)$6O ?nĕT@w)ķL2K( ~}]cO'MX4jʇe7mV2C]Y Xbt,Hg*C Eps)ֿf@I0C )U& RXp\3FC H !96IaP>pbY+4` .)vrb㕵m+ Ӝ0tЈ FZ[(A|cOau~R|ҏէAN h0$%|Sݤ #|` }omhLC,"iI,YIԹ Αh8[e-ʢ 4"iiű00IENC9(뗟4{9HQdeCӰ0Bd-d>NA` @I+S~HB# %t/#i0ZxOY 2~;f Hj@JD@)Ϩ5DpX+A"iPiPVZYHiPF@D@ +R&p8LZ$4)2*?pĘB IDATT6]v zY-`}&nc@7ӶPBXOo'L`!Y>̲8+44"X-j\\?IcM*ä_ heLAxu8y Hhoe|Xc(ӟI(,H"""""XՍaۭuܞը{12<=9|Op,t=k-1>mL#Lգ2ӹHbǧ*kmWx"Or0Rdrȸ19C]`m%T>{*Kz#08Rr5y@ wύ6Q -;aZ%c>Gh_{ȯ r," Ct'FDDDDtҟ|s.[|A32#s[1_NYDuq[O#5µa{"n` \k=w0GxTLd0ҮFv&m;=""""# ܥvV|q~ծlFelVc (İyd_.T]t @_aޢa8}G0>G;?α8(k.`9OHBM:r_z5 ų"TO܃08b꒿$N/Ev8 HܰӔ1xxf򻋏dmX NE)`czL8s0H;}V?~js@Ϲw{2fk٧M7㐝XsX&  ޖR}aW|e.F_VܖG^M.}f%Y+m{4*Z ~w@pɸ+]/5.*g5%ɲJbpRnpnC߸cLkSL߳}]j8>6╼s%~93czhs@&/dLFWO~*ǘdADDDDDՅ,1+jh1GXdQIn;*?6DU9(y\BJYݻ<GB~e+bAZeJAg.Y2>ٿ[@!/NIEn09949qf#J8hÞӵn~ʡjsGDDDDD&TsUM]ZʛhmՓQj>^֐Tdsq0d,$R)HGX' ca}:aߜ#Kmt8J!Qv{LtE<"""""0 hd/DU5x&!'0}zbd:hC """"&DڌVaO&^ ThM``dP1M @4aA```!:@DDDDD4Ѹ#R"f-"jlQ@4!'!1U@DGcU@DDDDDM8 @TPhJ%Ap4'""""j heWI/sh"۷ιp%0""""eiI9;jw^ :b^)U""""" hB!K> ZkX,"#sa,500km:3hb1 LH. ی1Cww7FD4y !$MTY^& 0l TAGWBVbDDDDD4qфߓ $@ &g;0Q0 W%+%ߓ &g69cDuQ(sc4a""""`DuSd AD7?DDDDD  ":LDDDD490I}C""""ɇMJ$""""""; """""""1""""""""jp  """""""1""""""""jp  """""""1""""""""jp  """""""1""""""""jp  """""""1""""""""jp  """""""1""""""""jp  """""""1""""""""jp  """""""1""""""""jp  """""""1""""""""jp  """""""{D#q{DDDDDD%F&Z """""'{0&#@4idKjODDDDDTo٠G~%. h2aDu7\cXkBDDDDDD=RJ(R & F0+@u t'"e(܌0 !4hRqZ(ߏR\.0 p(ygC)T1)0IŸZR!MƄ&5!D0455AkhԔ>&bD+llc1R BBΣ#""""":pA`((hjjR*I{tT2!""""^P@kk+JR"T/V477%DDDDDDz'Iz>PIڝZk@KKK=EDDDDD4u:` $ :ujBDDDDD4.NRcLBG8@4a?Zh0ȈGZZ`M<@T/6}&""""FW(i`D&s.Z#{HDDDDDD*˥PE4ф1]I)aTW .IuBTT0z`D#""""#^Q]?zDDDDDtu """""""1""""""""jp  """""""1""""""""jp د]t.b<фbDDDDDDDd˖-زeK_V®]sNxф ="""""":|E޽jii󈈨@D^?38o}[y{}}}o͛7Bs ?|455Ak hG?©K;%Kpg~gCaÆ )%MSO=~:?hڸn gvHc!""Kk'x衇C)e˖K_̙30իW=ua׮]88sx6oޜe,Zhyz|__W= hڵ k׮Eww7zzzd7̙~hnnFoo/:::< r1xi˗Ck͛7c͚5o{&pDDDtRW_5\?*|_aW,qYg[n)7ħ>)B/f̘1nǓݻ!.{I]|r^ @D_I'SO=?d;wDWW>O[(,_n>PJ)yy,^R &]w]{{{;.]+V`Ϟ=9s&kҥKqWڊa}cٲekێ;1?Rb~X,Ν !::: /WPh1"+VmZkaAOOOͩB>,y+'|7n'x"w! CcO`ӦMŔ)S𶷽mز݁{Xp!>O?(8ꨣp`ԩ#gccڵkE0ď~#yx饗ىK.oy[Fw-wrJ̟?{WWSOs8+#""מ={P( YkQbm6c}aƍpUܮJsNhݍn .?oB9zh0":L̝;f}݇38r Z[[-[r!Ͷ}YlذQ(131 w&gիWcŊX|y:}0x lٲ!~V?#""ZR76n#R!"V^5k֠ K,?y||(Ӄ0 /0m4|_>cooo6lsӦM vwظq#gc:j*o<@GD4q zj)xqP(s^{1o}[1sLᬳԩScǎ!Zf 2.a7Ҷxgb  .RRÁb׮]x'4^d N;4̞=AXn`٘6mhyqyꫯƶmo}C{tխ߂7} > /[oo~1ٳq)@.ttt y'eCtca$aٲe?lڴ =\q5u޽p{MW֢\.tvvT*;]U+~zl߾gv|#mk߾}hU.jg40?<y@[[[َ͕:ꨊj߉n8*ʺhYr%7>o|hoo_'pBԩSj*|ƣ>+">vyᬳ~;Uf͚Eᥗ^BGGϟQOk[N9̚5k( 8餓p ';+R3Jq?OTsN>doǔ)SpZ[c޽Xnݰ2g|1֒%Kpy!CphsιϏձ&@{{;*lذk׮6!N>dܹK.xܱ'xbLǝ5eʔtOY=Z?8c._>h^u-oq'I)n:_ׯǺu?t%!ɁabXf lقntuu駟Ν;`/1t+)%ׯǾ}ݍG}4rXx1~_aǎ뫘?i˖-Xjz)tvvb֭뮻cᢋ.+>n k׮Ŏ;i&|k_1/'?Ik.C=4M"_4===iwE]/O>dC480L Zf zzz̙|#U-믿;?A} }^Pe0g̘1{.z)<8cq';mرc|A\qf[^x!֬Yc֬YCAWgc}gWكK/|;#;D[[.\X]px|K,?""":< z+:;;h"|[JZٳg߱m6L2gqP([ln&|{m݆N8r˸V%N7o>h@gg'm Ɇ6ֺ_dnOg#3ϓߓ䫭\.dX)b1QͫP}8ӱxz&Ћ/̟?APYW`Agg'pꩧi\2 : mۆVazCrtЙ/n]gd~G]ᛣ)`DtP1x7V[h?!(0IG믿;w.W#Ayg1cƌܗYX@ߘ(\d"fŮ]gg,Y%""""": ^ziADDDDDD """""""1""""""""jp  """""""1""""""""jp  """""""1""""""""jp  """""""1""""""""jp  """""""6o\!;T@G8@TW{l@DDDDD4mV!S """""""1""""""""jp  """""""1""""""""jp  """""""1""""""""jp  """""""1""""""""jp  """""""1""""""""jp د]t.b<фbDDDDDDDd˖-زeK_V®]sNxф ="""""":|E޽jii󈈨V!yG?·-~XnݘmXj>s^neJ1\y~V/wyg㸉ƒ?*X}{quaΝ}?Opgòej~_xN͛7?O*믿;w.կ{8D@Dchƍغu+=\_ǯkO>me| _E//6mvڅ{غu+VZ5_z׻p H&*xWq=_2~~7E|!~XfMmZ|#>!{nHk v=/_իW{Duh -X"9сM6r/c֭̘1r!mP| _۾'RJ\wuXt)VX={`̙kK.ŕW^ .|%\ /v?&~J"ߏb6~;w. /477_Bc:":0F4Cn+ 01(ؾ}{|#<>7t "z뭸K_Q,n|#E_~95m}ݸ˰b |K_Bgg~31 wDDDDݞ={P(0uTrvmym9n IDAT@Za3w>! 1}K/aӦMؾ};R ǼyƎ;?/2z{{t,ё@D㬳 ,8,]'t>+ʕ+ޞWoTo|w5nWaoFSSy|k_Ò%KpVۿł ~vF;/9s&yL>};n"""ZR76n4R8l4:;;hC 69iӦacw```7nDWWXp!fϞ=9VoyDD@D^޽{tCV.~|cwߍK._Wqaׇ̘1>W1O.É'c9gpGcqQ,q 7 e~\wuXh~Fs DDDD~wjl۶f_C{.̙3M̞=r BGGǐl߾}R?DG:V>/wVUP \y?kƧ?i~56o k-/"Nj@WWz![===ضmې~^?\.7FVGG"/^o|hoo.O:`֬YXh^z%ttt`i[nr)5kָ@]׿)%W# qH!0L+f̘\.r>f2*`t$01fի!{qݗR gϮ0Z?uQ( xj>_FWW/N@PƍsΊ}Xjnv]u1Z_~y㩵C&""":\r s'q-Զ~\ve5&kI5֭~z[.?+&@Dc9~{E](BEO[lw]x{3gyl߾ԧpm駟1;wK/?ݍG}bo>9p iYoֆ .7t6oތbkצy C&"""llقUVᩧBgg'n݊ =."2h٘6mo_믿K.d^So@===xdUH)`DchӦMذa{^}W]uUםL曱c455aѢEt/O<>я37M\uUf̘O}SXx1;8|_69\pÎ3 ^|E\{F7ߌQa8Q(FH0qM&hkkíފNr9,Zַ*WW|+_~d^X}݇+WuK 0o޼~ضm֓2*`t$m"s{]=yd'_mr89~z1QͫP9>яK/Phhiiutvvk\a+WQG5жmڊ0 rw"P\n9n{Xu  x@gQJ υҬL۸j֒iuji[fJeY5s-K,ca?A~..f~7:H_ߝ\=vxUⵋJ<..gecjԲe.WYXXڵkW& ꯵e֬Y VfX uCT￯vک[n] Vu}6VC]F P/_nt]\yyyiѢE]u<#p@x8 G<#p@x8 G< @v.jWm:M6]Ը.uC<#p@x8 G<#p@x8 G<#p@pErrrSeTj׮]6l޽* INNVrrrmQ;wNgϞkલv]6MzrEC v~iٲeZro߮|?sLEDD(""B={<ӧȑ#ՎԢEtwhĈ:~[.ݮkkԨQZj[pvmꫯ._RRLKK/ϗo֭3f Sܹs5Uz'O4_뽀f͚`5kL3gάrp#á_cƌ۷=k}={4fm۶m|ڻw>#\R[v[}Ksέ .]}+r4wJo:͝;WoX9rDJmۦ j„ Zjի'xm7!/%''G22ȸׯl٢͛7O>]pU1 p#??? 0xޱcG5lPׯw9|||ԠAIR&Mԭ[75kL-R>}԰aJHNNV׮]մiSu-*˥xIRAAx >\wy͛'&h_6mR^U14f;0a"##Dc{e޽[cƌmݦ?OZt$i׿m۶W^no۶mV-^X<|P[l1q>Sc?өw}W>)S(-- P]Zt^xyyyt:ZjVqS,00P.KNStq8qBwq;w,8p@Ǐӧ)!///UVX,r8ԙ3govk-*`%ݮӧO+!!㣎;-Z$ժիWphΜ9Zdf̘3g_VUg6ڸ1dZl2ZJ-ZЛo3fhYYY6mN!C(==}Q~~>,*ɤΝ;+((ȭTWLL%IצMj"P|rmܸQzԔ YVhƍ6mI&믿ت^zI ԸqԩS.ánM5RԵkJ׈#j|9r:t蠖-[S-T埓nך5k4sLuQ-[+ե֯_#G詧yyyZjFmaLPRƍeZ]kEԥKL&YVduj@޽իW/eeei߾}ڲej_zznv]^^^ڰaZjUqqqoWj`eee)33簴4]5v=şm,M(:W"WW-[W^j޼.kҿSoV͙3GvYjCQy<(ժho^~~~:|Ξ=[jK"IڷoԁԱcJkٳgk޽uU .TBBZj%˥ѣGkťݺu|M-^X׶mیלNvQP6JLLTRRh8" N:x(++KNҎ;:Uvv?P/L&,Ǝ%K(!!A:{8Pa9rg}s)//O?|}} Io>>}Z'00PZ~233}vIECU֖~-X@@ݻJ PL&H_~YsQN% $0ƍӒ%KgjX,4hPZ<4>??_.\0z]pXZ>*`QÆ UXX/R.\PzԢE =CeVf?Xծ];uM}Q.ǏWz3g(00Pcǎ9_pA_}.]lmVߍ!Ws[=ú[k{m*::Zo-[}jJ[?hڴir8ի,Y0/P.3{l9NM>?|IIC=$˥K[bŊ]8ܱX,jժqC.--M)))r8d*`j;[vS׋y^rs%?^n{7p\d̽RPPKspmڿ"tBjo 7tP#j޼U RRRԠAy{{˘ǧLI_ߝ\=vxUⵋJ<..gec಄]vehː*$f͚`5k֌UP0 pYJDv%\m@x8 G<#p@x8 G<#p@x8 gP]pUYjݻW>nM2E5~~M)))f޽jժRPq#Iǎӹs,Iڷo7nΝ;W{$͜9SrK۹٬իWH믿~PDD/_.$hazjՠA>nڵ߮W^yE5T~绻J]kԔ\5h@3}tk̘1X,d6ݷ ԩS-.\.YFQQQ>| Rcf)77WlFӬY3L&_~|}}/??K^7G:tj˖-O<(?.;vm|ͪ_h/p84bT|?O… ޽M-ZTi{ddF%ժ]v_G<`߿T]viʕ:qծ];-Xx?+WfϞ]jlYe?oUy{fٴxbǫaÆ:t{==T\+l6%CөT㆞2Yr!&IK,/ÇrzK!!!>K9eff*33ӨsDk.͟?_&I/[%W CPdgg_ƍk۷oW>\[z tIN:{$ٳGO?I*=k…Zl,zCgѾ}=_ɻG}Մ ԪUJ߿$ۧlv}Q.K~{}Z?N>|P oG*0Tg'USV՟Wy*{iƍjڴZn7|SU&6ͦ-[7:}Y9rn6vZM66ծ]Z6Ν;=ԳgOW>>>Q>}ԳgOsFqS0UPntA8qAܭ8_#GW^ԩ Yfgڷo_ .ԋ/(Iz=א!C4j(IE=&L //J0`wߩaÆX,ڽ{HRРAi„ z'$zg3ϨI&Gy$_^˗/פIJQRpp^{5Zz?k̙?J뭷2j,>oV=zPll^y_VJJJKӂ 4{lIErk߾qĉr8޽~i͘1Cj;u$]VSߟ޷.,99Y;wTfʹzjk;|MԆ?Oyf-]TE'NTFFFӪU4zbAAAҥL&VRSSsiYk.: ) 6Գ>[j\pA;vP=p≠w^\.SRQ/L駟Ժuk5o\tQ9NGK׻"Ui8t:!C[n? ݮ{e˖j۶e ;+VM6zꩧ|\@@1+<<\dZݷGZvhСX,ڶmbcc}:cNoQIO8!hB=Kcʶ ֊X.]ԨQ#}W4h^|r'?/VއR?\=$I={4jLձcG5jH_W]`7oaÆpִiSI*LQPP`ls8 .]\s.c f'޳gvc}R<VW_~EM6_~ڸq6oެ98xXLaaZ~~L&eŮj;Zv٣#G'ԙ3gkǎ:v?_jΜ9*,,ܹs=)sq`p)&I}U߾}u}'pW7TN̘1Զ͛%V>^/,XN:=s-1T6l6IEZJl5z:X u=q6l=. U)I2馛ԠARϟzH999ow}I!IѺaÆr珩j;fSjqϠ޽{_˨Q4l0iƍ:v~'9IE]WZUVKջK6mF_Ujjõ`w}UnɓիWk5zT]5jnAwV˖-xbc.(00P[nիe65mڴr?kz'O*))I͛77ڿw*{y[MZpsܹsSkTPP/_#G駟VaaVX!???cŋkٳgtjۍc4c c^Aժɓ'+""F),ڶm=zGj۶+xk .Oɕ[vS׋y^rs%?^n{7(OTaa VZiذa8qJ*22R]w>.ƿoo.~+$$\}JKKju42tPK*{qӦMW)))jР%迻ܼ>>>$eJrr豫cx]UqIϽQ헍!`s7Xy{U8BBBԢE\Uf͚yl6  O?T7n7߬cǎW>}jlpٵZX uRƍ 6iӦzSOvY59pU@p-ckK]U<#p@x8 G<#p@x8 G<vN%xdggkԨQZrqoÇ;Լyd$I/Ν[{O= SF$INS:w\RSStR *:q5ooo 8P;wtkYYY:p?ӧO+33SC^^^ QVdXp83g~ZUPp}Wڹs|}}նm[G~~~niٳ W_iǎz[!!!Um6͙3G7pڴiSjB _IҢEdZzj9͙3GK,ь3twjr\;wjȑnNOt:Çkٲez嗍fp_w}n29sFe\iFZ{ppL&:$˥f֧OòZ2LܹZKu(==]4|mڴ+   ___կ__銏g}~-s8qBSL1fmذ9J2=>S%%% \..\(ͦŋK*ϽqFm޼YI&iƌ1c\%%%)<<\ϟסCy੾ oT?_^G… ݞ yqƲZW^Ed2믿j*55U۷/ӧ7k޼8$$DÇ׻ᆱte=6M~^}Uz߿V>s%&&… JIIQ^^^}>3//N<)ө1λ^z۵k.+>>^zf' :Tw}ӵyf-ZH0`@}Ҵd=jܸq(33M3mٲE>wyv%h~d2)88XǏנAJ}*iʕlQ^ԫW/8p@ӧOW^`eee Ҫ|uVΟ?b7yfӧ* egg+??_M4s4iҤܮjUttڷo/???>|XgϞ-_-UV@7o.??KNد_?~Ӿ}p|||I].Fm ɟ={ݫ~A JHHP׮]pB%$$UV _m۶m:NرV+l6+11QIIIJJJRbb{x rss}v*''GO͛վ}{uu8W_}T\.*;;[ׯWffo.(X޽5i$:u,Ǝ%K(!!A:{8`H-ZHrK!dhϞ=JKKөSfܹSÆ T3(((HUnl6kܸqZduY-X@E 1Vׅ @.\P~~~}%97r\Ҷm۔ cǎիαn:[NRPKGEE)&&FǏWll[oiٲe۷Xaۏ=߯ӧwU^=̙3 رcյkW;S=\%4hƍ7PZZ||| 5+s9z!\.-]Tϟ׭ު+VԄpbUV ƴ4p\.%nyM%^/n.y}%3x^R{Wce\ rI*ZXXeggUV\TrrF۷ؿ"tBjo 7tP#j޼U RRRԠAy{{KfswݱR0.O?I%%;%.z*X%k?wx\Ry]0W믿VϞ= ꐰ0k׮L#I^^^ )kZ1k,Yf:!`ȶm4bĈ.W[ڊW"zSN߿mz}]p@x8 G<#p@x8 G<#p@Rn;ydm5˫K@GZզM.j\JJJm:!`x8 G<#p@x8 G<#p@x8 G"999ɩ2*k. 6Lsv]W$''+99˨TLLΝ;gj]pUYj.ͦ IE=k"!,??_|RRR&MW^С[w:zcǎe˖[OV-???_PPɓ'+//O&MR۶mu1[zGo+88\vN$)..N^ucj$ݮzJaaazs駟~R v>SݻW}f5jT#٬Gjĉj׮=?PSNڵk=phܹ=z{9+7xCԭ[7}ץs:z衇t]we)''G2fȸ{O[l2ZAя?f͚;0^kҤ_nV֬YzIZl޽{kZtΝ{Ym xի'// c)֢EիWkڵJMMՒ%Kʴ;/{Rn}.I9sF{W kp')ͦD͟?_/Ԙf]VӦMDkN/w{ZZ;1s2LS}|||ԧOS$ɤΝ;+((T.#_4 IDATƮ]tM7Wdd٣#G\qŽf*RV|xK W``ƍ>WI&1cn2mhƍ6mI&.Tzw#(..NÇ̙3ua Z_(22RO>^/̙N:K_u >\Op… /ϵUP1 p-Z{w}ݻwI&>|>[o˗+%%Em۶U޽O;j?~իX9sF;vvZja[կ__aaaz7y\QQQ  qz7&ga={NO^\O>|ݺu:t4hP+w,Zj-ZH*Z,%%X!ZtIiӦZzjo`e햷Tr\8sŏ-%5^Ƶ {c8N@jժU-Wr߿_ R_AaawarUuܥҝ4B Q4D aG(# 22( B IȞR]Q}nHH%$t|_Or֩{P:~hذairJ<qj S4 D~Lol{]uz޶5eaOi)`B!B!ϸq@QV ;ַE{{;CUG !B!.[[l{y*`bO&@B!B!@B!B!@B!B!@B!B!@B!B!@B!B!@B!B!@B!B!@B!B!@B!B!@B!B!@B!B!@B!B!@B!B!@B!B!@B!B!@B!B!@B!B!@B!B!V"^yB!B'*JA1 B!B)`B!B!@B!B!@B!B!@B!B!@B!B!@B!B!@B!B!@B!B!@B!B!@B!B!@B!B!B!Ğ->?1=wEku!B$"B\T* x߇=[XQnZ>T qtB!I$BLRT* F2rud2RB! !b ÐBG?[EݔJ%rT !bh;8R Te`ZK=!|>O\a얢(t:MCCCG!@ur]WH0|+m("#P.i-B]BCR#L)8= ! g;DQDGGAPB1IT MBDRERa!b:xGdbCxJ)8c UkbXXxafp\% BGQu?ZqF)U]2W- PZaN<00qUF[cP=ϯZ0! CT0=U>J)LOߟ8|c cL|/OBPtww0QJ~E!@upV188^ bY:oPJ% [Nc-cPƠm5z-ıKZ(q]<i JP '|#Ҏ$XH.ahHqb*,FiE8K8HʸR(8u]סRўMǓ$EQ$?;QWW---H!;|C3iJ)`h*ܔKՊ ]X5qhGWt,Q(ѮGD6SarQCXkJgi(q\B v"4%S$C@*WJcq]5q1qpӖB!r(2cv ȤDq H!|0yZZZ{B!$oЁ=lNJg\%Tg}9n7DPZ61*U (dF<קU08FkT(6vppLP W.i/EȢziŵ.&R9`[*pa9b8xN )<Ƅ@B'վvd%5Y"^!@uPjOY`=c^ʡP&bȖ.rRXBq!qSTjcpkmV×^Oq4:},ُ1bXmhӣ(y~cLm~he0!؃ €'X!@uHr\ :Z((I%Iޗ(JnSJ՞' s$IBPվz$t-IB$dJB$IZ[ מ[P]7 m !T*HB!Ļ"P#쁾aP lzW$q]@>ÞtROx|6 伹${=S$c6{W 9y}G*bT*{{ 9B!x7$C$8Zc{j &&\MI>KQK8ZaԛU=P VAFT21A+( ОњЂ.J9:Z v0A'̱D4XqkBP 0MSK UbOT(" B!ާ$CܳV)Tɇ^qTj%1)WQ0hZkqD&bb"]1&M )rT"$MAyP5NAO*PqQAY0b,k7%=zOJ^c&VqjUOB!,2%'\!;JV^=IdT$PGFVˌcWḅٔ=B!_̓Ĩ);H^OϞz/=k1vD9fUNMk^gV2eUL:p֯@[[+n(# oߋLb՘r^migM8fT}zΜ ˉQVB=M==s!B(C2)I>%{ةg3Ya~L0E[ &$m;L{ڏvg/hf5s|ܰ,ACsĠ 7``\{Nm6#; ]dx-E>tVwTJM:5Ɔ!dSODH#{(|  !Bl Lu7o7WJBQN e Q”}u^ec'??k:<1ۘ< ^_:W.崏DK'9zN̑2}-8@/[9m`-xG`lCɕx7戡>CWgsC9cǚ6RibSCޚؠE&iԩL:uۅam'>񉺶 !ϻ9SNv[]}_ !b'u㸶WǵeС %1ɼvcO>7Jbd8|c쵁FǠEE^uh67<l\ Jyl"0ρu v lHCb'@{.tcL7qɜ9xYyL:[,PkT е%)oPwOR!yquꫯ}Iߴi?~Ǘ%;42!BΤAԚARZd2=#"8HE5Q*9<=G8N-Ižd*,/.n&ڿ;?;ϟ?:\tE !b PT>QJAmZ<8L*e?9A 8%46bs\1g;YIbp P?GMQJQl`< ʤevaϐ\KTtc7ŪP ,8 #!h(sR8ڣR:m`k֬`С<^s/vGag]]q1s=<#{r)_!GTR+y]%Jd{(+q1h ðO2}"J1 ]eÓ-Fb̽~̟^|=$_W/FLH6V._>n1ç':1'GgW!#\g>AVXƐq#yWt:8VGŝsĠ <\Ar' C[𤩘(OUW}ZRUeo CYgŢEk8ck_套^ӟ4\pA\{\xᅜyuӧdg?vb3g|}իX,rꩧp=f)DQD6Z8 ,Y&X,rm?7x\.{Ygaۙ* {,mmm}{Xt)B#Fя~3Ȋ+7BqLww>IDQDET*eFJP}w]um*1ZV=ARKWs,x%V8v + +ɣtP6; #pZo!0 T"-D^K+bMw&Ɗoɱ6Xwe5*/+q!#ʥu 6b^_͊ :^da5ֱTW2a%cfQT#8v[Xdܹttts#py{,cƌ}mM:ff&NpUW1c ^y啝|b馛dr9yT*;q̥^??s1bgV\-{!vҗM[Be ?EQDwww}C*`%J!yRL&C01XR.fvy&R@65pb19 j%ܘCy1q& HTh xA7e xWpM (uX :io{'L)GWW-gdh" yr4bn&|ϣku|AkUW9G'JBe˖n:X`L8q>y'Zkn]h"~i9ڇRD*Ur9q/yGЇ>ķmj蕬^ν~9rNSCCCm BT* 'EQs$C2* 9b(Y+Qhl@Z;Gv> Z+_/+bӁofÆ.r rqϽ~zy dᒅ ;]h-|`ҁ4|ƛ5= 8qo|jɤ}Иa o+kB"<: B  e,:vUCߋ&N/3oOկ6l]]]|gʔ)?fϽW\Tr9c=VV\pg};ӧ3c 2 =ApI'/|mۮ]C!_ҷA,J?G!3e. Vg?Y:::xf̚5O}S}dYr\>7r;@o&o}}Z뭾mova/!"N:$?}r}[X,<4440sL~_pٷ;kc*bl<( QTOO;Y!~0 y饗7o'pO<>,w׵^ˍ7ވq,^K. lf̘Q|Gr3rmgڴi , ?8< Z>yO^|ry0qDN?tN?t>[SL뮻x9r$|}@:f…z\;m IDATg/L8c9s}L*Lڵk#z(??J#@I qgOouHžMǵo>ǩ-nX뺸{Xcqːѓ-SmdZFpQqD&}dFȴϜNSuwrga>YgNy:|71jfN=q:i]EЍ{Q(tR9Ol"SOaq4,^v-saܸq?{^9l>я~??64N=466.s#Gk{ ..ApꩧW_bqε^˄ Xz5gO+`u?ז,YC=koL6%Kjժ>ફ[PmƝ7n#G`DQĔ)S K^bv?ovz۹j%;ڹZb?0C[nkB +3뮻G7nuc?rH*z&LS)Bݗ@uH*uZeL~hZyZ(ε Cti}t>zyr /9 Ylڸ!-4gGML{4STʝT1yB6#pH bl\K,vj2\\i?EX 뺔 uj?IW)Z=PcXkk!ԩSdѢE<쳌56W^ԩSk| e˖}.ON<cxꩧ1cx 3|j*l2n&F]VtI&ѱm=PnV~0sL\?v^{ zS2uTxZ)9rd-0L˗oq/MMM/cַXd۶2dۂw37mmmIx n;C) ;0nV.w]!PyǾ/_wq;iTB!ɧ:$ORIc&Y9S|񕡘ifȯZBe`ؽlD0h6W@,^D#sLo@EPJU]d|RĚ"6cC,ګVqXD g8)t!T!"6:]nF(JSAT*ђjj4jqhoo^ j0GuwuXj'|rq=,* JY~9~_OtRk2o<|A-[>71L|;oGy$Gy$'p_:]^@K/}Cc @-yA??~i[r kWb[C:#8u4VF10Q ㎚J%%K.ڌeS8sQDM͸ )*r9D+J[ճ}J$vlgNGGs̩5Nnw]6UwG} ;w.ڷS5RI?<9tnaɇ.I߼˜yp[}ѻRۀ7W׿57nmb ~nYlok!رcZh"ZZZ=ztwrkꩧ?~Vc Yre{<{+=6+ ~A !b':%SRU?fJjPRXkpOiLDc[8 X/,\NEwWVQ Ie#˂yRSUFamʯ]зQr pu]"kjǤ^Gqw}77fLOqwryS,+3`<(5kǻl2 =Pr\mJٖ .{ŋsi1~xZZZXt)Gy$7|o|mbݚ0a|0?"?8&M⦛nbԨQm/Ɲw޹>2GkG TWK$AGqD͖|gu],[g}~zz<|Ә1c?Occ#-7`ҤI\uU?plSNeȐ!L!`SSpsek[aHkk+wgFk%\'rr ^x!: .dС1=Pڕ1m4֯_Ϻuj%B*vs!'d.청%]ƶUۓz {o{=N\v{N~ x5b>M&M}rJRk]*HӵPaRQJH+r"d\o!9+ҬʦY[Tˏ1Д#eFfԨQ\s5zwk۵G@m˶ez]mon{]m[hfS'CRy^&ɷd,kmQtLaR@l"^YRfsN~]]ȄĄxƒS kV߾ؼpp<:$K[Cmbx^E"@ K8ShpR6&x1b~u%3UeߓGz=41sQW~E=}]HCucX !x/mܸ_W̞=iӦ{ou[d@uJqj˽' 0$J cbi[r ~c̄T*!x=BCG6WQ&dCwH9YLd xncۇd:ňL cĸ%XQ*+Y~s].r?Gw~3th e'q]8ZZbz.?x!fٲe̛7SBJTR[T d/!\ח^z~OsΩ0Yx1cǎꫯBu̞=qq~;*X2ɒI"JZ hJZRC ~x9`l\:R=b*T)15GRd#ش-PlF2ԧ exe٫_ML9_Vm܀i` *,VH.)ק`s:Kk' H(Y[ ~5X>Bl[SSr;36N9/a\ƀ{B!0?@/&ɢ0 $u$CRSTpz*a8ST.q<_AuưOGIbAcYsMA;l=MMTĦ1Ğvs-J1Ppb`~i%\\/aޛ_&2 V }r"X8NJYоGEqLKWC1@K葬%nL>!Nyt_W=ComIB^n+5k?@uHdWR {M Pq sVXɧN<5_fF gU)XWF)&"Cfa%DT"7dFt2eO.^˜q1$= 4,xmX$])d\3>cK^*MTu`:6䱞Bg<*kH:%Md/qPJQ 4t}=E*Dn^t*ȥZUPơt9-TR 66k .Gt .7`43"tr| .n Qg>)\cEH馑xVBعgw.롍E[( B *v>9B!vG3g䢋.%g͚Ź纄?@uHum׭.^bQ6WS~ur72|I,){/#K%e6n\^^]54pX9RAMH&&5"#*a*Fݗ6.O?L047Yf=fE P '` 9.a ĄB\ץ1`455R-ՆнM8%Kpep}HUWnO~-\m8zr;ix-'q!~:38V< FB!Rx_kllUB6l{ۙ3g0vXnFn~_cF5\Ckk5xN cz6}e2붷^.۶&@u{*z?A%AI9X0]!c̈́־M7Kh8Hࡼ8>MCҤq~Ć͛yY xŬZ<dž0a"-m{1|OGΐrS6 ^+VS /-_r7ݕJ0]Ԫ3Y,yeqH!DM*JwI!^f֬YzꩵJ RTeL&Cq\[, qgԨQtI|ӟ+j`G>.|ߡ}AiӸ;1bn9g>N<]!E|^C)i,ӾBLST/ŋ3vX꺗ߕhFZ$?Ƙ^81QhPjrNUV%4|Bxb&LW^[?>!Y=Lt:1 U"l aqDs0ʛ䣘Tn$f.7PJKG7Жk5~nrP"lt9!2ŊחX,6ah' rK[p=G2>Chb v,1ЮSm]p[ga} & dd2L:SN9x`>BRBAu]rPB{=$CR>Ԧ%U@J+T֐I)t̨È.H;611MKGP&L8&rGs0tGӠ/ڪ7ش@%RXBHn׮P,SD44B)t:EwGkT=U3s9vi{~;NGO矿j0 O}Q֯_O{{;{.|s9c='|E1b3y>oF?ST6m?l]sݺu?iq89ꨣ:n~_pw׿u V{Μ9sشit| _`ƌwyuF!GZZZT*J=>r]L&#~BƘZk-S,kaO:Y%dx\PcG74dhk i\b+ٴa#B(_`UF5(V,O?ӎ X4]kI6SɗŊR2l*as(pl(}Ig|J2Jy3(eQƢcO5dz H w+o|\xᅌ5-ˬ\z"5jI\yL4ѣGo1x| 6'|dΜ9xǿۿ~3(+??Ksra1> > ?kok7p>Lf=tn&{1j2 ?я y̞=;,Xmqs3qD ;,JJÐJB{BɗGTJ*~BN>˾Pǵ ! ƀU4\6P, i;6> &4RP nD.7͎[W_yO7Y6kCbKlFi)ETf};KDa.~嫼ѹ9:J5s#+C \mw5x6nt'rI'յUns'\|Ygq]w/n5jiifҤI̙ IDAT3+W]wŜ9sjK~_V˗}v]k~;P(qA}uWU $H ,Du=W\/*f帮]ݫ+U.AŨ,{@/+"<C@a!]T33Iz&9u'g2ʰ_~nar-//j/| {YSO=ok>w]Ι)OV3iD$QK^f+k-Z|+IU|s#<<bo-7ɳ#1K(z&*B(n0q)~;-xZ6紷!=YC>g#4 K|E<0:/%>ļyR"aۓ7Jt_(MYH@3ٴ===N=sN|IT*{!-P(044+s+WV^O1uW> qwկ~O< {sTW_[s۴iq:P(pqDZa6ms̘}wk3EለO[ Ȫ}u X=qdQ\Zf8]tZ0ECjQx[I!0MC j.{zwS",}^--D`#)q&&ג#!!a4meNi%?!|KtyD#Gݯ ҂J%r\ v?sݶ5ѼyG3OO8?Aʕ+']5oҵ}x;oEQTxg,wU&ˑCwI'ano-"""""9{OHjLEǪ_[ZZ*U0Iq@&}[!ߴ|4G؉GqɊQ+{M~q`{`|lz#+MӱYKl|'o7/uв).:D:ӱ<Hw:9Gϲl2~_'?~M6}}ڵO}?V^x6o<;imme͚5{r̟? w!j2g#d8XvXx1W]uWgp`YlX>plg ۟yC-K>A%v/Yw6?q;8vrsTk u,iZJ[+=4%J/8+ rATB_C#>qwsM7ꫯꫯrOs裏/o祗^bƍs=YnHoo/?P7}.B_$Iؼy3>qLaH__> ?8gqƄkmm嬳kga֭?9??ϲ}v0|N98Xj CCCYQ9S'>W^ɫ:LDDDDDB0+d5ebs_42Tf4u` x$#J8b%5JήN9l~_E>7vu-X $g/ymǻ. f8 i5-1rtԄcig~,:xL4f<^߲_1?X┨!bĺukɵr0"l_= Bs\Pې q׿unB 'q{4}:n6>z~{,]O}Sx\oNۣK|+_a̟?.hah~;~;]]],_k#8]~\{\~tttg :89䓹k+_+~\(X|9˖-m:/~tML97JkLyng}lqyW=fKWL^xL|.W@^y֒0" C_q?}.:x9+婗ןڈ»\%>]_!G}ټqIHwN~(֓:9%zw9(;w"WZ߳AKij@&.'1KjM)oP```Y\(pgR(ڷ R#u>rʂy}q "MR\1^FiJC'%%BqxI>^gpٟ$0lݶRށWYpg8:( YimKh˵_{ށ,=pAyS2xyogρ k<ml:'s)<9Nj=%GKu=ZL+67ĺ8eީJ!9Eqe6*He OHDDDDDDiX^c 8R(5RZ;̜äLP? $i1$i$m  AL1 st\ާGzE!yk1΀a80O\JID5O?A ;vXCOgI,QT>å"|k-b*C<H_TCDDDDDDdV0+x֖Ö4LXy9K;l/7Nӑf&~ODg}$[C#I.~'I0)$c#M Qb'&`IƁI|Lar180qL9g-| !$C|4YBIqާiIǕ, 1ƔMrX<\\$IXkx?K ].pXHrAcR<`Mq9VsXR5Ip4!1piHb !-Ks83?_hr'MS|Jl8^1xaHXK)qIigZS)I Υ,IcA> L"˷Sn0mS${z0.48K=L`\>$ &>1qR$7$>K0qyHs(*W>J&"""""""JP!P!]1_9 !q~R[Hly 8GrU#]("Bbb&gRblaIցIHH\HR$TLbc i9aioo|>_1RA蠳4"˽ U=gJd1[T=j[jDSiOT۪jClXQU“Jʍ-#SIU2p38H;R\['};=GIjJIJ8RDR,IS#$#)RaSc8/__'s^D:ٲe ,\nS}.\Hgg'[l! Q]T"߳DA\s{P #|kM' qR ,q?c05g lBJt+l &M1k^KiT"A*=}J0T,RX,KWW׮a"""""(jH3*Ht`*F*\h移5*y1sԻ^#ݡΕRiZ]HS{[aŊ|sc…{tLEx{ܹ#m Dd6O~G?јǟyovZ$O3 ݣsqwr 7pWLOfN~N5`0XKWSk7ȫ]͖xfj~-c<,R]Kv]x$"u{|_K/&|+WR*o~/~|\~lٲkKӔA3bppP}DdN椓N,XqsWsgp 7p5 /pWW^x!پ}޸aV$~G{Hַŧ?id/1{oe{ޤy? 'ҥK?ͼyXvmCו },""0 QKuucpg!Š+g>ã>:Q-\ʼyɽ޷L؜dSie?"ilذO?-N=Tz!F瞫O?v؄ו}p!---tk})x^@"c?! ˜~vk]]ϵ^;kiOR@CDfw̛7Qۗ.]SO=QXz?g?Y"+V?1]vK,i4%iqiicǎ)@w}7?hiicOOYlz|I;i EDdv09j۶m91<]tw}7_җxGV]44KD}|;k_seuֆ/^|#3|""2~+BWW}}}md{tW_c=-mF{{;x饗4M1;7T*aU$"M#6~8Gy$,_Vx_j|0~""s~c4z+ .^*7mA4c^}U..8*/o}[63 c*0 Yd -"UzAl26o<ᾷz+<W4[ :T@}Mወ̤˗sAq}U9J4MK* A9``娣shY=<;w ֱsNBs_Ks=|`ժU,\p_\l53f>)8pGDdrEquױpB:(o~%1ư`4l2,Ygg,X;K/kfTlmmeƍ,ZhAq͛Ydfl9aժU˗/gxxիW|'p5kpW,[aDDVNTLt<ѹk_7Umkf?od[xlijo->?ٱc'x"&G117p=r!wy{^O9c0d˖-T=U6lX,`rkxs^:::8'?ɢE<3ϬTjVG?ʕ++:3ꪫ&DDTE}%\ՒPqUS^m`hFf m絁DP@/|瓹>9$! CJ6mCm۶+xb|}L~]OUat ?M˟VUZݬ[ᩍmݺuݍG?""""RH&{^0 }ƪݫ~j_Y%P{oo s&wK""24%MS$!"0d``[rdɒ {qƍ+Ǵ2B 6<<|gWW*!`7zq+ f$$9!'e@?c^0BrhFDDdzU3ٺy z{{YnIyި\q300@OOy1I܏L!tV UeAÄaH$@9$r JO(U $"oT@Y?@cGDDDD)+g}?|o?0=`zA>N> ~ki5kΖ,̱֎ɆyA0j{>H;/} .5ʧ:y`4f^otDU@('ZC/ҷ.X|>p` ""(%,[< |DDDDR-[~sM7^@Į'[2k5j⧶tmT=֬W 1:8ʂ%i>Y9!{$5뵍kj?OuWfȟɓOrS8krpkU4@vGjzNm3J 7&y#U@ƫʶ |jS$""""""Ҽ&5^y2mkXzuTv5n"""""""ټj7#cSzD4veLTU3ֶ{j{V5r"""""""2i]x;4~3DU>cM>ЯzAX׻iꁉgcjϙ9 <kDC&:oSiȸƛ^84!^?`߆@'R4rQ|,i7C& `>> hDC"""""""w NF>ֵe@yFz5ۧy5|I#w7> j4?P}U>V_F*DDDDDDDLBgb3Lvi/zeF{{}6vُ4{#D皵n4󉈈Ȟ(d{>ƞ@&X*} &j=Qd^~@4k-"""""""ͭs ~۾N#Te5g%"""""""USX v#ӪYB _kd'Ȟi$@i4jdɄJK5Sx1!P(4jIDDDDDDDFktF1h`c*3APو&Voz7sSrLzgc>U?6TckPc&C}ޛs+3Hٓ ɾOhbOk*jwkDz'NS?мflDDDDDDD {!Ǟ^t_F"""""""2=˞)F8kf"dihFͦcu6ݳ̌ l:̶0D3wȞfh8LFkfs1>?L3*̅co\DDDDDDD抽'3Wff&f׌AK3^Ӥ̵bݏ;>d.ߛ̌9TBEDDDDDDd'#tSmDٟ7O- ;si^ z&`c3s uDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDdi6IENDB`07070100000020000081A400000000000000000000000166968E4E0003DAC0000000000000000000000000000000000000003400000000gnome-music-46.1/data/screenshots/gnome-music-3.pngPNG  IHDR>sBIT|dtEXtSoftwaregnome-screenshot> IDATxyxT9eȾIA7V\}lAVY(jE)nqj}jѺajK*7E\@D$$9q&\3s}L&0; 霊?;К('KaQlT!""""""z(B[<񋈈%m6jkH[;^Y B QDDDDDDDOZs8ҚMDDDDDDDG Z[HڎGDDDDDDDO ZK`%IDDDDDDkKKS)5/֢)::ҸaI!Gcl}H4>O d NTU#""""""6 &:BQ)[DDDDDDDϱ1nۦ|&w2c }d8w"""""""M}2'" jAPK1 ~jkb"""""""-[]úobClOS׶u>izn kkWVԀxoS}l'"""""""ͯ g~%449OK<"""""""ECc 5@:~4\d͵U$ZVڞ+9k5P ZZq,U7 s8Γ|?Ր XB @ 44oO}¤t~DDDDDDDvږ?MmmҧfRԧGD4cW]AuA&j ES?7GsLUU@-!hHzz*4ɣ!>n oԲ.QD?uUԧjHDDDDDDDZcO䒸b(Iya_ VPTHjhcPsEPmj'z(`oO}3Avշ5VDDDDDDDZ*x㪩[CDϑ(iU@jۺU>NToGDDDDDD>+QX&ѐn@ :Ǭ&6f-H"""""""G;aH|Sy[=_⧡!PstAHmsT_!O(~@m+"""""""-O|SӐ6v6um߮Cj m-$ DDDDDDDZ./?5:6_V$ډ\_(kPC[5t|?6?ꫯ~mذa|A릻GDDDDDD3 1 8~zǍ("|${zSpRm-BS;_ WU@jaPʫ:zԨQt]VF"""""""5 c=nܸR [}TjP7 @U8QhWeU@^ %''gVrrxu_@-޽RYT y*A 'f?u]+QS=J=xgIEDDDDDD8m;vcD!PDJ`yV5IT4fTAsrrf)iə$xjF*HMRӒ&8Im1>/\ptrrx?"""""""8$''_ph*.U=ūO0TW욪#: {ezOR UsHm ض]cx$%%5wWDDD}1'Pnvv7 fQu"CàI KTab5EPC&.Q'~]2߂ (ٶMQQeee NbmSVVFQQ^G6 /sJ5 2EN46T6./Q9oȑW+ڔ(0hElۦ!"""u]Fy5_@ՇUmDmZvrk[_=y|>ߠIi}BmS^^fE&?PIUAr%@srjn*DD&p DH.SՔԖ5f݁Zw_q]%_""Bk+""2ٶM$!bYVu^χs} TVŏ^)b-3ͮ$\ume;Eff6PH$Rc˲,P(' zH"j L_+~ 5ш!Ȩv[}ۆT &ؽu%{"""""""BPßxBB+ ]Tq yc322xHX,X 'i?7o3fsΩvp۶IJJ4+ qCӦM駟& 6xxB #%%^z1qD:4 7mۀo;vșgɔ)S}< ~?z-" .' z![ץK>lO… 袋|8؜9sذa۷wUߟ3uT(wy'[l_~MϖR'Z$f;Y P$EDN <?d/[HZ)~ٱ@˗/_zuٳgl2~7@=z>f5}Zon>]v~8p7rWJ*N?yPO?|''b`^衇xwL߾}_6UVL8Jo\uU<,\Im۶h"~'nq3jF,XPeؗgʔ)\|[<ӱ8KJJXp!&Ms߹|;~+V[0gXQ߷o۷oK.e͚5?>4MxcV֭[83ycG>ϭJzz:L6/_΅^hi&gn4ć~PM."}X8ƍ5A~ЩS&eFk]߽{w6o=}}ǎ;֭[>)3f N 6aʕUO2={2uTn&OO<kbŊz@>,Y?Cֺ](ߧ}|;[.GO?9s&#Gdܸq\x~-[8L0}k̙3M6ѡC~ž9_jc$''ӳgO.y&OnG _v,VXTTrJ6mTJر#/cǎdggl2nf<Jg_&77`0Hnݘ>}:sέq5msc۴<"F')))q^z%/^L^^=z`ɜwy6٤$-[F4eرL<9& ?+W_K/ĕW^{Ԗ7|sgFySOsB͛O^^ڵc?3m4>S?<,\0aǍPk;@Ű5ÛoY6@Oqq1Ps:tҾlذ;z7x0M3fpꩧ6EZ˲j]wswk. `Νtԉ=} c޽U_|L:u5kgϮk. 2,Y²e saʕ ++AWXhr ݺu?䩧⩧bРAdggsNf͚?ϡC{IMMeرaԇ'_vG檫:}-_d ġCXr%Wo]vw <8 6>}$^^<)))\r%D" HMMeȑ Q6r @ O?eʔ)\p\r%U.7裏ꫯҧO9VX3{k׮lܸy1` ϊ+۷/:t8Ц7noIm_.j*zٸq#/2>)Sp駟~vZ233P]m2jԨ؜&m@Ozz:ѥKUÆbCaYf͢]v@{Zg?#Foc5z[$еf̙*½{Wҟ--p-j\u+DhPu999l߾ .y睇i,[iӦչ?Oot|A5O=~gy#G2sL~{nrssò,N?ts嫦zsTeΝ5 YgiZk}֬Yvi_WYljgϞ=Xi5\SehmڊիWsϱk׮*M}'Ҿ}{f͚?ζm+ѣ馛Fٓ9szYh?0/Q@{^੧bƍ 6={b :vٳz̜9%KĶݽ{whm6^u^/gyQm _cǤIXv-SLa̝;u1ydrssٻw/cǎsim׾5.By&MHr 2wy~kvoV}s,-[p뭷RPP̙3mo}[B!nzi5^o>׌=:.-j^/&VK.+@ŷ.r f*TR׮]on,@r6o\CurJѣyٽ{w+###x^8ݻwS\\L~HKKcҥ\~ 6'IE0gɒ%^+Kǎ +ۦ+'^|yСC|g?{P}ʕ+4iguW\qE>6ɪUoٲAk3tPq}/^ҥKc_qs=7A /}Z)=;`:*8~'ix5΃eϟ'|Bqq1Ɔtԉ駟RVVڵku9״H0a/"g}v‰7mK/aL0IשS'rrrرcg֬YzܹӧsBcƌaʔ)@e+m -ir=[g^fΜIfffcw>C t_Q#GgaǎUѩrU*%9$33'|+vr76C(s+p*Բ,[ʕ+1z*mity&L@FF˗/g|'td޼y\wuk\wu Z_08s; G}D(BwaWڨ399mGa,^~3`̘1L4sr'l~nfn-r<{aƍYt8:p,i[=3h &L@8f̛7{DcD"ܹsדּ YڵkC=D޽ٵkbȐ!|ͱ/U 8k֬X3sLfΜInسgկkߍ,ZzZ ""mׄ HII=D"̝;}{|{'r:ڵkvbȐ!(// K.ҾrYǞsݺuˀW-ڵ+fΝ =dggssqUW8Nlj5~(|L4'|JڪrrraРA#pTsbҤI̙3/qb5mZ Ǔ/պ$;T9fVVVl(٪Ub׵kns<%Rm5kbOjז?O3f cƌ?ylm۵=wIVU 6CTrB+WqFկV ״r%%%F!nFƏO8geҤI|dߟ3sXeeeMdرMϖ϶oN>}b>̜9޽{*u ld&"jdddpmq}YUc&v[V^)ԳgON9Ƕm۷/߿~ʤ_=_WbW^ TT׏[2m4233Y~};Ν;СCINNU+5(*ݻsʮs=ݻөS'8Ν;kvջwo{=z)9ݻw&ߑʰ!>W6]=زe ,`„ ,X 6,+5l箻";;nݺ bUU]vzseڵx㍜zꩬX_ۗA'0uTz;S7md~ߨu1$#AIh/7*-Z:״o߾,^9s0bjۦ~qy<~p`>#`Ȑ!L0Ν;s뭷cnfz!ozbر̘17Ӈv1{*mm/K(ǏoZ$~?VH/233uy$X$"b5{+"r5d,+I%*6|p*Gdeek";v,]tatܙq3`ۇm&P o/itMGMK=z4?88p^kf IDAT9sԺ> K/e ]wp]w1n8Xf jO&s#G$??+6quis"NNNꫯ[oqꩧ*~U>iiiU&No@^3fϢEعs~Qvi̘1_|E/rw2pXM^aƌM֯oCϴiӘ={67o&Dؼy3>(ӦM#??:nגx׵yxG[K;M[n]}С<ܣڭY3fp%pm5wwDNÇ3c RSSD̫Zc%i\vep 'Um۱ ( L$;;{PXq?NܭCń?ˉ{Lܲ]O]dҍ2Ѵ j:|9s0 #-NvmWOwڵkybW =owFj:v^>`޽ڷoϙgرc̐纄:@iPc&Si,C'hnoo0h v9s(K.'"*"ǯgϞtMݍ/8NG0lpshkhtyb„ \{-kRRRˆ#Z&9ALuTxm!@ii<``0]i̺-Oz5@򘈈IIIi<III 95@"""'LjjBVr~Js$xȠp89NR@ i"))I၈4LDDDDDDDS$""""""")ir DDDDDDDDZ6y{F"""""""|>_swYfѣ!"""""*iH+HDDDDDDDS$""""""")ir DDDDDDDU2 41 eEDDDDDDu3 ~s5v]Mވ[^yk&xƌΌ{\yw[D7XN((utVLÁruD?Ew$ /snA"Q4) E`cxzܧADDDDDDD&^oHl#a^)#p ˧]vxhy Ņ>Dr1tv$&4z#++(c(gm """""""DP# +M2Ұm-"""""""56Jrc:%K="""""""҄5{jҒ$KIHrH0(,;|qhp9!:ۻǁ2KO00p2D(^\R4}84]nsiB ˾5DJ#؎M8%b88QHI2;"""""""҄5`3x>4 p$K#d1M|,`K &ap|6t=7cjz萕‡[SXR$3-ɏÏ;!)x~"8 \V-4i&v|>ZKÔG^`ሃt1\ugͼיSL,[!zoa܈r`R*=Nf'萙Ύ;(Gm%hx\Vv- CY(K􎃉K޶O~mnf.2."&Ô Nl\HÇ{Bwmq뭷-ÇFIqq1'N瞋2e 闈H%osw5M$%?`bB )WJrJee{ LʽʣKL^]5隕 NcP9#nL&~s= J1\Sv drky>o85 쨅cXǃalkqWb\?%eRRR,<Μ9s*5LuժU^ /0|ݺu 0tFM""""""Ҷy$%-iN—l8Б#.-m>_tnpϕ`xwr Q a6@ I$u2qϋ8 cCY֯_?ϥ^J^ׯcǎnEÇ[ƖܹH$رcYlY֭c?fذaM_i{T װ0}8@#ztʮݻ &i8 Ce>O4?)E4~.ƴ*oD]=)5 cD!Mi.۶ j1=\wu5VDQfϞͲeˣcǎ?K/Yr%seǎdggs3uZgSLaѬ^-[еkWOgTks?m3r*}2e W_}5-?gСu>o.]н{w֯_Yj#F` uYnwboq%<3q7o 2ӧӹszi;5' B޹3K?@rzE!~q9?Df<^Gā@Lл/$jrEa =o? ׊b.bYm 68P={pѽ{wx˯~+ D=(..o?9cƌ!??p8 P뺺 PXX?_:wܹs1c ,1g֮]<@0'l:??˲9r$Ӈֹdffrw2h $2օxMؾ?= 3#]얅T}yu'|댮ضIvxL`:l|`';;klWXXțoƍ9r^zqgsW3j(.2=:յJ/wܙ`0HYY8Se Ҡ&uV0`iiion2O]j;/{Ų* ۰]cd# 1iI>R2 ...v.P1MRFV'33U B\{w۶ G塇swpmչ0**(8NX7 rg~zV\ɨQbFŶmطoׯϵH$8GkgyEP#pS:P:WHrⒷ;}WN*dHL֛t}TYw؜Kdƍ<͛9t?0ڵeEDDDDD( }?paRضMİZ.o-هVAH)IXxY.7<RjHJ٘WHa#a%6v̔#FlOσ\J.(]BQqh4JtL^{뮻ŋss2|JJJٳ'ӦM'.K, .m_RR;~..\o~~o}L>>ӧsM7ѱcإkr,ۯ_?b?*|MZ -ˆ#۹k())G0/9Jc}Rkq+oۘqۙq+{n+2"1x;Q90?|l tŒgi r]3@?Ov&3=#8&a؎@ߋ냛] )I-P bYW2+ mS wG i%LdӦMǧvZl~X? ('jݸ=&nYnx5d}x:G$d:fznOOdmdzxe޴"N锅ظSVm9%!I|YXmH([ncP8LX4 iK51/J/^&G#^BͦmoLgpAvፆsHE19 Ǐm:`D>CrGJrߏeظW\y_o#"""""""Mh`V0.&hb c08.QfLjP1x,2YƑ>-"""""""TȂC'rշ?w ױcQ 5ܢ#خC^iB^zzfDKHq-,cX)')Py9ƃMjKдH zi׻?_ܧCDDDDDDD&!װ [58TLS2SqM 2!3^פszWNI PZRDz LJcYu{tOmۤG6^Ëpwo&^}DDDDDDDh&rE\?i2EEGQaD\Ӱ8Kg[8/ChשED#MscڑI,u k`a2>|i6wD]6FP}E"nfnXN1!4b`Z6i3LβR<ɪ]۰ /~/a :xa;dKq-,&S/NSz7a (Q$r ~?{odu}~{OϾ3XEl R h@RȘUqT%rʩJ8)*]cSlYpp/ IDAT_ H`f03=޽97J&@E f{{{ϧ붆AjժUVjѻO}k?v,JD=-18:. Gp8<~oݧZV7QEU~}תU띩~#"կ[ZjժU[M|>?ʗeZ(k j,{Dg-Aa{&M%`Η/M3`,w>cghϝoժUM_~ses_Bjzg)c Z,Z[ZjժUL5zuC<̳|>GՕe(0HFt:5zZGy~2玷jժ&$''8u+3(oh6ާ{@f} ޻c*A%BަӿAP Џ޲E@|/l^%zD#/>>EQ' %L8z0 x[AbzU5 񫆻Vq Šz ^SzƵBl[_yJ#|"Vzz@ޔa]dDM\Lw0&pXx tL(`vyh+ţϣPjTVZjzsV}w}.o?}{;9=vkTO~{^9\Ude [6o;{Gx?vrZo._̞={xǨ>ɿoqj;P#]["(&OEQa#шx$ޫ (>BpkF9]ľZt޵6R]z@+A 8Mk}(A~-8OIw5n5U8Ώ=o?r T!PZjժɓ'9 5K@~Jg3}o7H}MVZ~g|"8ėa qDm1 FlTш` &m _wXַzqmT!LJN5uT>NvFF4žH$pg L}y"0J` Hג(3\2T5y|,K×E$<Ā9Px-p BJFg(6,"$2c Н,&'Del,&(x-a<l?`PwK;2FN%&m`Մ!KXTJT&jHAD bPz_*7zQ\b)+)JQ% X|/C(SD{1( ~;iptc2<7ej:Yzr>-049xH2J!6|Νb]=))VU3"jD`:Qs!}HFǫCG=Xɂ 't\XfIǪy# kb4KK0E;"͂גc(0֣p3U]-ޙI1]P=)ů5mF(LxNbE[ִFUVZjժ}@jժQrouNL-O&yL֝ѴJТ=yOe$A'E #r4@3) "=fMu"H%}S%xlQ bl|>ET0 #S XitQHYXX@"YJtiٶA=W,I=G`]8c4l'X }ƩT&PRHVB8CJ9_@eVZ4B "0 . RJ5 Q2 1(M3ؙh h8VWTZ& Q?y#[nq>}RuOp'] Q$ Z]0m1289CMl5ÓpL_l5Q J1vDL#9NDJ KN];g}*]@jժUV7C5UVws:ebH @H,1,6S@P DKGpMn_=ͼ1iW]ebCan*n 13,xąUV)VWN"+5wE*]| V,đ 57eXdxK`]55DE8c)r5쉙4k']pg81{_qqf kJiA3D(z Wmp674 f\H"$5Z 3` #es eESU{,;71j,.Fɱl=0P怣q??S/.ǓA*3Gz/V `k{fkt*49L!f~.>ी̰8o?i 6رuv 2}Uen̮2~6MlkO\=4,smfg=Oր&[˩kBu .ZjժU%Z__P}(j*2&oPIU)˒+3q " +8^)j:x<6@v fjrby$;\=B"Z4Bz/ixwoST[,H@ 1ℭzt.8E\7k.OVIZG?b<6 " btg\c, &kmD~ QlIG8# @pEysq{;8*ڄA@Fti,1X91h F7q; HaąJ*D<T]%5 Cs "$FDRS8$ܫ)Jsa8p<ѡ%(U,b0>ŦPbUAf̅xyV0} _ѽ#ib-$9$NKt\U>G"@%+ nV2_x ,CMίDO=yO}8{XY?|fp9rT;UT Po06@7SH#IF/J ENο__2'm`w[ⲷ&ժUVZj}P. C&,~,,]eajxܐɇ2 8I?sU띪aW-܁M~p]IwcK8{n__and#~`={spKsƦ;_ǽNQlptC?YrUhUnqISߊ1՘YpĚ`ޠKPX\Vf#K¯cG$0eiXJ-QU0I8Q,~xOnBw+1c í`1x:@zzqZrA'L?SX(!.!!71ːT S(o8|q}S$8zODq"WB>T&. O@q>y|9/gXG f!=7fH}Yv޾W.mcllIOp칓<'5fg3Ì;c2|SVZjժf@o|gՅ^9{'xǹx9arճ8kY=<6%+ص2|` iSBZ~>Bw KNԵ\c,-psY٩c;w,sCpY9v:wC}jժUVZoj6ɯ2 &_|woUf.4w꧹E^|=;󕧞g7a&?CVvM֢IA=mVzECŇؑS( p[شy{r0u)nܾaYY&벶219=?ѓ4&y`HtD`%ܘd n7ే&Ϊ\=Pbq8r2c}.g,sǯquu\Gɵflֳ+כ:j={Ŝ!μzTtdsStJw⊛X;v =֚*B 7b7>Ƃ$F$ !y!Z48*J*}qK&8ѳ&ticA UTUP<c TaBM$T2|&O&ɠp 2תs  /[Rɫk}]a9%% }Ru3vlg!ǖ e xx-S*%ҨeϮ_slZh1lmƜuLV*d$/־,HovL[e-ہfK(gGbT $ >pHT.tJe)lR F<8!ջdzr88{W30SʅEMg=sH׉ ]Kzl7;dô|O3<_g/6CA_]`0!~b𾾩ZjժUV7K5Wտ_21f3u*KNge>|kMx}n 1ޠ54Jatgh[CY: &+hSQ io-ѽ@̇suqĽbNt8bD.BMU9Qd}=&T+H?P)[|_H&.`bD|$0~[HK1>;3'rS/RPc"x<>h0EYp SQޣMkHR|tƄl:&3*z|1x8M=`5u+y8c<fߠ칛x{21YʆW+x}|;U07w6֧鴶V*U1 qy(F;vn҅\bܿo-[h 3z+fQML]AKgmT8u*61Uj:V)dvxE.ƔZJ5hk[Iq-:==&kl+CP#x{oߍ LF1GS$lE3 `AUѥ1><%бQA%'<8+ }IHS4F" D)C05]խLl ` +%+t|lWOu/6i螉cN't5>gzBPΦN'j1V"}OĎ L<CH`#+t5y #"vR\pWq"%1$6+,W ϕ QfظCdi79ysl?@p}E+WoG·/]9yŹu~s5Vwpn'8μ՚Ț9ԪUVZDSl:+-ALEwzly6N<ɡ&6/_aa31}MÏ?pfVC=Z ^/YQ?_"YOP!ڝ5V[#oRԪU믡4+X/bp`Z24̫o&w7~K;l۾T;L2:h5]\ťU.]Nnۄ YuFS1ȃBYqՀkp usM2eR%KnCCbi5BX.A m7BIA8WU, &q,aBATTZd `Ҟ-3SjI#ͽ@ENBKSoORfaHZ~d`"Co3acc{ϙcNG #[`b0ɰxɮ]ci 5@fc1ot *E,FBԩU#} vȨ sl7c6މ( w.[Z}~RtYvصҭ|u(=({6(eK1ZVp>x! TӥĩKӾ$WD*e] 8G]rF/)Yx* ja|.;sƌ`|В ϊq,}id!VǾ+ũQ3lp"imq2x/&aUJWU7ibWIq|tFאG `n~>'x3<Џ(yed pEK~(>x/Ⱦ{06cq&h1q` VZjժ@onX_[6>Ά/n]:7xi` f]Vcز}P>@{l Ad́`o5WrmO_aa~կƮ`uPGתU.}N w%[yCiQ~c# BțZ-.-#*xoL XYEqܘ}M$_{ *1K1^ 8]t1R60.L@r7Bf8aw? f TR<_}9y^Fd*Yhg7PO,dY#ļB6Ҧt&W/-6o`+e R"، \[P|G,BC:, Lnڗ]29kp. 93qV>~c:Ε,t< 9S [ \06v5y@4(- ^ znpF R&=L8aġ,t 2uRƶ[),:t,@(VHG47D DK)9h8h4Rѝ1uum9&/ٷ GNr{s'\-hi>ɥ+יȝ{9 ox|:&@TZjժU[v!vcL_fa>fvf}wn.[(y3J;56'3Үlw|ş|8[wr{[LstrC6C1^ZjFc,-`ѱb# fsFF,-=/yFLJi6FSE22?'O F Zh!PZjժU-P "-/s39~hi7 ۹wVW)7VC#keMg8AW(|A)=FCO_˹6}N|4Cw#΂ikJm^Zj} 1YO~8`p")g-mK?yMG6PFA2acCLc`AaI.e)nx16+ͧvw7R"nbUX]sacx-YqL} 7`:f(c&v߷MِE2,bI4EbLbaa3!&A@p˗%ἆίvu:fawVMmexnŋ%}iTjW0p!fl]Pt14f 8eS،p `rbs`Ec'rʍA.<=+~ew9N7d~mϿE^[gy&#̾:7(N7C;Vg4/Z)LWdm<ٖ 'YzyFg*ǦC.7dcr'z*~/i~x7Ds_{yOC5ntmMb ;L24b~vrsON~e;t2s89ah t#8neW f@V@ pbd͇6G2yhlYk}$aupsǹyV vsZ~Jyertd?qMG'yo ݽv!G,1@H]6h(dYc CU1Oُͅ5.]aI{Mx[a妲{+FVr,7/Xeo:ۯ>?ﳟ,o`~'?Ic=6UZjժE:c-\aHN c]Dٱc ss,/qu/88&c#,` oZ.Ǜ4X\fXB=>&o.aEھjYZ)~i]6rѲ_r Z%U_A.Xr6eY.,`!h24Cu. = ˾)Q7y5ԭ2dmE*@W 6l؅ <7pu7 U 2(/O=T=]g}; wy!_@=C=G޹ qfxщu㏢#OW#ƹپNըSm[y'*$h2,iMO}m@BGF6LG>8oEiOh۸|_zIЭ;HZdgbyPN8P&Xj!&ֈ3DQDUO;N@UJLa zV31j"6NaS7[Wř% h|"4~{Fh1n7VK w<.]ÊWE -7lax_FKb:'}gжԂH$NQIA&U-KQi[ֆY΀Ҥsγ q,뫲,ܙ17?֎9o?ʣ'Xuz? $9$mO%1>CZCb9Ҏbר{:{?d6ĐPuu$AC@1A4SFq~ lqǃ3Ht**69sY- ͮZqo'-^vP4HwwcρG3U0\#; W̪R]BWܯDbx4 IDATO V:am H5Z G"@@-+ )|CR|D PPnCݫ^[b0z衇zxn#vw',Kml9alZ\~y?7|ұdc_j-|G||6*-OOO_Vͻ&N9o04iB/~ 9$fw26DRe xW\7D[7no}+6l> .9Oe/.O<.u{!_L^E|' K CV72LQT^9-U'>Uehn,|L tI+.x2\@G8A1hYţ$'sǓi30C6^`#U)B{f hTgO#[-+:c$MGsJ IsdY@C|FBEK(\ /8>[!Z4&Fu*%wR} >$YD\Rxw!X:M(ɩxg|[G裏<z衇zx@~j7ه Vʉ [~;Ya# nd|:lʯlkH:gYvSg#qp\r<044[mo`ڣZ@``m9ooqbeǎp \tE\|żկ3#|3<W\_ȟzx~Z AʼnjhRbOh)*TrREN҉rB\ EЯE])E=bYaCpѦhsaD6YeL79mgu3ΰvL#XTX;5D)Tll@4 ZYM֮݌.Tvm\Ѣ0J81w*Z $AE@⿝M2j5Z IXD,*jZ*1ӘF  aPǀJd>&Q<>ߵG>҂1&7&@j,PzCH*)BqdIp8Bn xh$};sYG:nr~tO1#J\*՚v=AĠP$cTqgxԉ<l*OJcæQŚ 2#,i5͜/Bxg!*ż(UdWyAyMP<ObiX BfcQ"c&>J (M('뽏j'sC4AP(1_p=th/FFF꫹PJqqǡ~C=C=09gLxg1Gq!ß7yG ػ¾w kyU}-LM5X.]y4 /;vNvTְʦ3'¤USL$~N`||ۿSOw|fK/ /䕯|=zxFPJA8Ȳ<:R`% (Bc}Q ! uNH\ E!#CIj ӵ=H8á:6J X fsg+W띠;T0Ү oN8Ch2`%IG2Ͳ̎AJTOCuh< q?1H( ^# hpL@Fߚ!:+]4@9G"X5BM.9Z6;xQ\J<|6N>r# &uXIFH`I+iTf#>V, Ϡ:CZ+l0j 9xoxlP'Zi`.m1]o,7h%-FV6=9+d͐6tVǪœ84 jƱ|pj'2T=ۦ1u LQ!v/QzX?EB|_Bck]ȨB|LT( xV "5{H{?7i'|z衇À[go;=xqTbr 1dr<{hn!MY16UERX9lI{v+hͱn|5o9T}k 웛⨵ENGo|#\s z+~5*s*n6y[¯گu袋x_Ώ~#z!V\>N8ᄧ0??_s9q%]to|7ɽ˟ٟqI'=F7uHS1EN1хb[@Tw'hE+9=iKE̢'OGPPwZM6 h !w%9~M=t5Ee]EGM$2c/4*/N;L:Vh&֏jq4ncFYu\;BE&IRȘu i1 6} ^3Y{:m~ ۿMq*N`QZNr  /c߃X* )d BO& "#CTG" Kԭ$ V  ٲNfٿJImkeh/d H {hk. @+ ex%OXo߃qC:BZMsdBc1cՄ (Z 4Xv6u :Uls|N&k ,ҁlRAJGWR./e)Y$1*tyQR,xm $18+} ʪybv|>Ľ_σ>${իWaַnݺmؚ}slذ/~|` q1]-E6oތ:;;IpWri==aӦM<_۹ֲqF.VXC)&''?$!֯_φ M^<{C=ïza|jMvxs?c5tZa~a??^F&V?w;Yu33ՠб20i(TRV ԦgqyjrF;QX64nIZG|99$Iذa;v8UVq饗RV?1Ú5kk&&&>e]>ct?qj+]b8=@%\)RTLXJb A/Kq $Q] %) ~-L EB y']Tb8Bj\XK J P:CL #Nc  AZxȴgɿJV,0NWƮg KjOutFWSsb<-Ԛ kXƨ?%#!M'S;|Tim}v|g?qeq!6WC9Qx>wDmGQ.gi{;zw5wPG5ګ"rOqҙ,@%*jpI`6Ut֞5W3͓L޼j@B4~ƓmS_^#'נ5,6y_YSov2JXR"9Hc>D}xH(Ű|飻jHZxZ3|X|0_D|_欳z¯={<={so~OM7tYq?Y/}KwWWſ{.Ǒ?O<))Qя~z衇zaBO[[1!?8LUi͙or@MGn@}7<nŹ@ywjj 2sss|_.Cw9J-ކ+VZv?E m޵8z5 NEPBqcf7 R9F[RDڳ|DHEef!:IU1 N ]WMo.*qJTn@HCPG,iw!]4@IƐn钪񙈜c}ٜ;Cl ~QE6H1QEpqgiv O~u,!ö۷CF}6z"u]\}Տ{}ddzoFڧ9z衇^H@JsFpVᲜe>b^c|xc;U3AsۨTq}#d=կ6klݺ#8q6o;^z)7n9w=-@L xK_ʥ^W^W.ƒݿ?SSSOk/|o| o8:+Gl۶Y:ۻ?QJ뿞03??(.rZzq|~C= b3~>^ &j#6,'Qj5!˛zm*4?(gZ pX$Ipfw$ZYgt vbtt3MDX6:¶-?"dstڂnBG*35\ʕ+.277ǻn8j[laf?{6~?y졇Å\:N"!AH$F Wʟ,`t(&4 SL"äT- h?+e ")$TݜbeR E'xQbrnTBb*f18l<~/%aJb'usMn=F'UBд:93 $J#a!& $DRI逩&qGrv(A*UX} , +BMaj&,Vq uPJh!e8$J5(E hIRR$IƼV"P )T4}h*5dijzY |%‡H8-[k㕊dMOh/䈏Č6BhC*f[ :ũ=IШ`@?B_!AT)*)8%EE)6hQI8t>ޣ{^t|6P*9*B v'…彂c(/#$ V^͖-[ꪫ}^~qnݺIq \SN:;w~V򳎿Ts9y+^9|kvg}6ݽ YvA=#8ڍ6K(ۗޘw-2KɨH-n;"մJӷ [Ť%PU!JS#]e&,S$ ! oR.] 6ſ>Go]HTL  IDATjH*ؐ!#E ( vFT*J Z) W&a{TjkTXCJiw8k >&AL3Zcj ҧݽ{ 1&*lAp/r'GuUCֱ>)ymHm2lW%&cS*NV黄g7ڇ.Y |e&WAJI̪.!TV̇QECX]g3{Mozӳ J~,?sn槴ӱg?5|ǮS39~ǩ&M'l|`ժU,"_ Q|C=pS󒗡u!llP$|}ՄFp`YA P摻vGۙcN h3Neضp14Zy Ac Oկ7㓟$!>OqCvZwsWwݿl=DX )Иm yU΅ܕx"TaQ,3"l (5ޓu:hDC *γ_A!6QJPJaBiUGrMjȕ s`ZVKC}xi2q)`8gU0\tߺHHriPJp\@[).OWV*\ 15(O:T4(@iKmEX4YFuxH" Yiex^eυ)Iob^yL !u ^J.*1Yu+@ʼR$$Ķ3T$8kQ飵FkTu_m\]R5^7|Qæ#/H)I"x,STx%\~"I^{'ѡY'''yddGC= : 8YnxbRN?%|TG;r.<+ҺʿF5`yZ*Zc)kؿc;'A_r\hScǹ71tUw~,[3^ױY$CO>}gO}ꠟ77)Oyǎ8ꨣ"urSO=~Ÿ{p`1VhB]Ť/)BUt$LUy'<(ȡ䷰ (;*)|Ad&h:$rG0=73F8ifX*&xE@A8%LGDZ+p" ƹ8;!Zi#GJQPZyZ|TPaE(DUDa[9)|P}0\Q9El>mhPyP(DcmTwIpx:!nHF"RS :h.Ȓ (/]l)!*\$"QV?Z.qd!tEhxTR*~BGkkcN4A9s$ E%]B^^ ¬퉊U>rR(U)mQibh+ӪܗAPR01??l>Nsgs%k֬9v|׼5Xkkٴi7o>hkq!ӧzs|&=C=2G&?ewصI0j\w]aN>?طgMl9HX-abb >@gB(,3_u ?NN9dQB;c``L-̲z㋙|c_|_z)l%rb]h"WR7HQ QGlJII(-dP6v2 &/@D(r2<`;)N T}B6wl*T7NbH[: Ggcr,!w|{L(Dxc N̰)-fdY8>gk= ²%sTI~* HIѠeDCn@0:kBׇbջIq͋$B0 e|(2C%fH&F((L5Z:y3(Qʧq]$d~zDkX-Z Sm(>dļ"тւ )+T|n!YIJlpTkU#HT܇DX kaA4-y<1}$JTb^AyBCW R iVs|"y"_z,_q]y啜y]uOSnjJ__ )W (%\˙v: #ԧ8pв4My;z衇_>ÄW{}㙛kpXjN;>#On& 39{C(֎2700Pg?' Ck"c2fwmh2tJngx(塭;%EWtZ`d*dz衇_DEXT uĆN3öHu%6Gȭ Gf{l$C +O(ǔ x.| 4~ _#(A:h6ڠb w8EFNN,}96wDSVy)6 Ik(X e|3"|A9?RfhTiOd)} +Cq"/&ʩ$s@E;a,yqF1el޼͛7s 'p駳i&z,Rw~}o{۸馛z}zz{衇z@/0ᨓ^ /{9iFBZknƛ-[Qdˮ}~)&yikxpNsߣ=C6/4H*/JޅuLMͲr|k# (QTGW|%Rx/O=iAm`SzO F]RHm\^-Qˋb托rҹS!$$)̡eV56jis9ƛhrŤPFL u2r8y"t922K4AiB5`Aե<@{I2ܫ";du=zbA;t|us+hi,ħki!EEHW XmM$iph)+)OM5kool߾c 6mb||O<|3{a޽s'wV$ vW_}5W]uw}7;wdժUo<]tA?6y||O||p lݺ۷344ƍ9ꨣ8}=C=##9^wk?<fg_!O-/+^t vzZ_KY|Gvnaz~]sގz s۝y˹Gpg8y֤1ߤ6 H,=Sbqa*MWD`h 2B\tqB+v0$d$*(18F#\;ڠ*UrSG+"T{pĹAiVA#-SxO&\Yc5$dC]pmцD j1}Uk'x|ҞNs.] `%PK{ʸ2+N EVvD&ųc t 3h<19!ё*HI֋NR$96Rf qngs=L|([|#Op9p9Э  >;n^9GfycZRՐVԽ՛D)`2^{x,U PsS'ȇ@H d'A tQ4n?wWK{c?Km3Le{۴1w 3=jn+ o sKO}il fYs-SWkuXP}RW\͚b|XM tupl U9 /TխmNixWgO>,?#?l6ٳ\~'x&n~7MӼBG:jԨQ4@_=k/ł~osO9N tXpFٝ15ǟ[Vu_L^0jԨ?ּ5pĹ¯)̐b*` ȊrZ>7ےP,5Фfr an10qe<ҼM&_g 1кbLI ny>ca<s.2f 91EX,<{ӛ}kԨQF}j4Dz}#$!o0'sr}ŷ{oϙx˃r$Ć0pm {2[? {[3v<l#[:?lկQLj DI>KI#HQ%e.ŒDrʍl6Y]$nC)ngmCB+'et|&fVmH_#k 8Gh&hpe̴Ԭo {~;N/x#3{>=yy4@bD*2NړO\f;Ȳ™;}]agV$Vi`ΈӀ2Ĉ%qr[ MgZoU^R5Z* ~ ]&^-³B4_rѻg JsurbfKag)K \Uxb$TORD ]pNL8ְ͕.raLu6kx_LV5Z1[ weqc&r}uPdLyG?EooGGގ-QT IDAT;?wԨQF4@_B?O? 4/9C&>ϝ4^ep^?3SOH=w^x;7g\|)y_[+m5Ou5K+|{-OUZlj&җ_c> ̤>y pל5D-oH{.Md|c(i/8AƵܸzpdEr| eûXƵB8|̶k˵8$X24I8bi. N `uduwqh ]= R (> ׯrrgx7}7Uc7! Y*qʎb]Id/%co|g^ӻr gr 9!1U29G$JߎE9s^ؤ,Z-,tݖV ܴ%EUT6 !Z9ofKz YIS(jZrF}yx /7{~7<+}F5+D%7'7??^@yk.c] In[SN|ӝ-O^(6̶ro|ȷ~+5O[*pIv[3oUX̺DTzbBԛRRe՛`R[12TMx#es={%N88< ,`̤!6[N`qDN=Vtdqbiyqy*Ҋpugy{=s}8OE9cLOy?Z$|8Jt! 7!n8si rM8{Ek6$ ;3ܸvGYs{ʋLwfVPX̻ttձ3mL.3 傣O ѷ b/\U s%b9aF9Zp7>מG9A{Lɜ8lZ^LoJ3k;Gx읯' ί9VuZ4-׼H.߯$Qs5=WRp'} ff5Tfu|AӮ6f>υN>QF@ ѷ}-/4?~w}qO/~ _xiog\xGȻޔpp0p-NO;x7׾ިQ^euPfykSǺm>zXX\ϭiq 5GkEp.ʊյ5uɭ)^s- G@wiw'i o䁯~83 @Õ\{* ~:~u[{ 9a8Y.?4gq$8qxN7~c7i2.tmHBĹ\/|_0۷p[gh~]oǶyZ1{{vpt g޼Ϲ; 6L;nd:psLfρ( gKtknraq;`_Y5.#V%ws M,.z^+hVtؖ1w1Dbބ+nX0So0O{wpgy/oLa{#0!p 9E$ֳ}>~c>ga[Szo䉰4h21?/ofNXD7U tM`C]M tA@iJErmfPmRҦd3̯ juS /hԨQF5e+cG=ۺ?u_nqnaq(_ .?[gţ% )bop=2|K|g<_pkQ?gyK|4_Z'T30pzz*gc_7m6̆ˍ2isZ%XSf@MXB*aWqeSlO U`ZLt$~A|K NVs'Lڽ4"}n>]={ (z|txcrW`dq4~+wS C$ 1lU&6nrp&wo&F<㖁GNƧ泟$_]o&'TNA3~%za_u/^+$tʛm<5"U9xW|d!M ܧ{^_m/h'n)pwckO]晏> <2Y˭kx]&GK4fs9_O~೬;!zC<+o}9~}<·zM xWz};m.3hT4ph.rm'Q?c@ Į_}V [zM5KD25pI(@[ͪX5 VqH5١Z̟rO^SbiI\L5iU@5('LrYp!e̻.ԯRP-:(I RIi JƹHKI$Ʀ0V$K8Chʪ4i I]:`ȫ:0xF\]DJ.;E,\4z)}y ]LL/riaY#RgXLt/o=m ,{VdM+ˎ@DB9Gg2O>o\U5.7*瑦5uEL@fJ9}s,iKhm#SRIx_J9% $ t`*jZ=&Jf4g4cP3 ##dGHrYs*JJ'{?u9GOόШQFhTc6m@M?~=m_C3#g/]d fmI+O c]rBPZE*C4׊I&\#uK!D_28"5jBQ,Ƨ7,g aR1 %Ǫ# ėڙJ&U]e^f!w9oA|CB17<&Uˍs$Qh/MMŅs% u|&R1=;WAL 睐5Q Zu8qv=8!YfG,Qa[嵶<S ^z\RcL5pov`1W+Fė)&"wa>+9ƒA u \0̖$#3ϙG'aa$%k6Fy61p[#?֓옫LPʵKIt::)/KBM1+ɣjкm*'ɨQF5jK4N7FJTtJƟ)o( j dx1JmSwش&e0MS|dD/-)3G՛s{/un<0!4q !c,) /f+ ݮ_FM9 y JiݙDi&ggg / &"jm $ >Є)mQ]\YR 1Ur*7!:06#@bbe;s(asZT ]d6[CC75LK*ˋSyd` ʡiMw+RM6xo="BΙфHJF΂#t90-7MGUؚ] %˵RjgfP)\aqޡ:e%ѓJDk mC#bh۠q幛|vh<{ywk.r]{<8?w_`2nIٞz~Al&hjٙ5*!F9AC1ԣfKa lkF4QpBpPL j\9|Τm{r2^ia8>0M0SVq3MӠ(ejI_%ˮZQ4[!eb!6\~si'~XnhۈHb̌vy3|B+,ݞÏI x/sc8|pp2WIkK=Q-5'諙e^㊔7'/hCT]J [ @'+q/׹U#;+%'2捡WN󂧿`dԊǴ{5jԨQF ? ={{{,1 4jԟR!ڶ??UnL \a{DžTW䤄I,us}_ IΖQrӋ9U&ĸYrICF24WCPM) m5M$UɈU4+Py6ѦTe8h#)er*xˍr2t0&qw2-W?p|7x?|3һ;HϹ~/~y^EٙcH=}Ѭ B2)eV+rL=ӶG@D##バNls"zZ":Kndj'6 ]ӭ:9GsRV1A~cM!l)EusM98GUM[ϙ)>|ǯߟ"˥K3)/>^1In҆)鲱ͧ?`m=b8134hmݶ-fw/V5s }?riţ}=v\v9>uO~wp=om.\|5%ɌfO=Q/G|*.p!OYR[$p&X7"An*S")m x}=/!Z2>:++F%|>;qzsRW i5K]Ή CMp^%&΄v[*rI& FX_!LP'4dzͨ9ђ)麱6jԨQFz5@Feۡ!ZX!NZWJ'\50`2V ղ ҀT.CO 4M "'u67%&\P?wk:HD $YG"h.X\5u 5C1ZO 50~Fǯ} )V/t @/}F E ˜=wCg8))HeLu:B(ʹnUs1Fberʸi$Dq SC*U'UÀ }S5W+DG -aHL[6qM~w_:vw"uãt/'瞾H1J@nd N /@0Gnդ\j!bcuXFH^N,ΥRWds-)b\VP}WmVr&.SJJץR@r.u:1s0X\%yWL[ò ֵ6Z²2l3FW ӕS4jԨQFrk4F5TBPo CG#"gyגjnj"2R{VyBTCǻM[#PnbDա5w66ӚsZpʷPT1*LLpRjÕit/$&eѧdy HBIdu87c4|e{| RR HLք H͑DV%@ ĈӶ-KqqլB9PSRR$*dRqʹԞ/)Z3s /uոxNԞh3GJFwz8<|+@@rt ۢ>8ZDx􈭋\qLNɠXcdu!eN躁$Ű̩\OR?u׳*Nsdqb\AІ D\ 9J!V ȬzJ-5)_{5%eMU 㧬1 C9Zd4F5jԨQ_$ШQF}ʠ5f>N< ^pw4RbXw:cpb i A-3ٚ`JjC|іD]QReZ{13-SP+H6ƑH.7%cueI+9kL7:R*Ur/؝dչlb0Y.则:CR_9'IS/'8?iZB@ЊG*bx_&߱)3V U- 1HyCqRB,ia瘖d+g,L'5AuBֶЬC((g , fleLd8x;IBױ=fgE81gujhi裡 eB*5U։r3d:o^*KiLiN*c,)%2Nh֏8ʚW\g7nÖ.S%AIb. 1 ( 0($wIXRQ)UJHc;jONBrslNńq#7X>O89PZ%RITLY,h' i xc2q%#Ɩ h[g IDAT}\K{Tawolb CO f]@Far &OxaAvY.qڜW,1pfgYǡ^'볮k5!|qⰤXjMi Y.0az2>t9W"Mlp՘Ȃ\޾&J˻@c~(ױ&ʨQF5ϯFhԨQLULp%>Ct {G/IiL`Rj_kB}_+*:kc ,vEI2|s}hNe5+e%s}Mhtܬ}^BpI)Ѷ/,#b[!@L_b<@JA p9 qJ-X #N;U;i4 N0(]ױM-i&$jXxTb6# quŪ*L@ 煦P44Ӏ9ٽ S8>aK >.C!|XN EYfLdp.0X;f ! 3A(l:a2̶&rbPor~ +p^yXSI[V#+ Cjx_L 3C% ;;nvJ;tn;]6&K+4͓S"焓PWU@e7jԨQF2j4F5TZU)/봂iZ­h"))}Vh,[[gx_>bo6,@ V`kV U5x )jpol(,TI @eTDKB 0„ ӆPo*S& LVO tZ*J^*ʱtݢ)V =jCOmIR9/ pu+eYIgBm=E)w帽w4XaUcB$'#E+;۞憐1锾w1TsByM˞#DFcrO <2ŜZdfӦ$T/g#V PTL+g *4+5܉'53)id5L-)YD+!N;GDJYiVOx7+pN\Ys$'z]J05jԨQF QF2X]04M@mb@1M9WsѶŴymɄn0)64Mm0qTKbyڔ+韵DYhMf R1 Hu h0$%HJ~dJ 'DO}Y1+Z%ixm0e(՜9{* &mdg{dL#gN'ĶACf0e:nY_u$ȄZJH9s.w_bVj*6jJɡjXӹCU,H914p\*}f~!9?O zrMkwKphV 4:TZ  ̼T)+ Sx?^H7`yˊk^š2x1+n=g\bq,WKJ `-VPr12Kip>gߟж 9ռTܭz\N00@V(ܣ%\i.b(ߓ!8hbb4%[ä9ZM+ׇ-#ewwQU 9~R֍ pD dB1ɊǓIOif3̊>/'R\uFV2n %zYs]V͗+oRuˬuL+TkeX,2Yr|B Ŝ 4LuZA(=!(KdclԨQFh5jԗ|(7zk+$ZʹTLD\v'bVoXv]mb֤e/^H] TnljmE0lTI1K\de݇1$ :<21\r1pP="Wo̭*1Nl%N2)))e.C(M \`)VMo䤬VTCBywHy@!Z*+o;|(gy0BcIZ̲>He6bꉡEd'f:L0;@k:żѓM7s_ϝ4jHKѧE|\M+%Ò+ tmu f嫘9A\("xnB *\ j|9G9[5)_{`ӓ$%\YUd>b TRL:Dr4jԨQFz5@Fe-RJg2[-5}KgtU1m298_|"m,iR0b|jVR+7"zN/8Tyu~vܬ+?%qXQMx_Dԝr@Gm5t&%BX* q`t+eggd4g9/+aY,;뗋%j[MMItJ5MR\eB}1*Pg |;!kFj("Mh@&1fTmNfB 3;{)fi&jyOߥr.} _5CJM"e+׫Ll _&5K Wm@m[>R$zD< ^X@RkkHC xiȴ0rOɆ297naZ O+:_Kt!TY y*hԨQF5h5jԗŠ5g: hh)9%RXfSLoq~R4sT3%fZMx18/I¡&Lr݂Duu:arkyTj|M?H:V&OR\Hjsip"=!c釲%Z:{aHu Ki"LJ7X\g6mn9 `|޹jVgϳz}# 3(ZAk(jZ4MZkƒxHjҚ4j1m֘JjѤjU hAA`fffq?k?cu^úuUڶ>0B嫪uI-)F 8+4)SjZY9< `,Ԧ"sZIjs"D{Rq6ƀsjq"&6,`r·"~oMSWK\>} ʹbmE)b oG=9k6(Du\\9G5J+FS9פ0xIJG9.-I)"<1DL :ęù q"1)O(DLN3BG98rn5jNe3hРA z5@ tF5b:f MScd2bb4jɦbMrJ4i1CU5'jp[O%YۿxrTYW4!{vРA 4` 4hI`ch=[1cHzYgĐJ c;(mg FS>O]ҙ=ڬ_)z.+K&+Ga!cE8%dJ&b򚘰Z`)SKcŐXgHXbu={OA<"j}HpK˷ ,p"iQ#c镪.)*wH,֪P¨uz_ a}>L]WXRYr ⰔAq*>B[W%Uw j4Rޒ0sBP(\*]~Ӊbd&j=9\f!! +psN ?jtJQ1SWYꑣj*FEWԄTUVFS h85bUQthLI #cD7 iNڋ5B Z?r8V3V$yѨI2>c;|o }-&EÇp!#UA}Mƚp["Mgs9̫!&C5)hUvr7m/T+`tdm+bNY{k 9ԌYY@jJA6f{}uwp?ٴi]t{ ďꫯiO{\pcx! 4hРA0 tAuXhF#6=XыL}H|l)Ŭsy0\|jd $:wLSRA1b&Y[X1ߨc2\CWIjRZ@}D/^[1T0YlȌ4jNb"͕1Ii#B$ffG"yhqiMKD+rY97 kF3N[={`jyhJ)\<56cioz("G!UJ/2g !idI$&&ufUι1)>q`m-g5ܹ~ܿ@cMkeQ™"rFJz pwJ1nbʜ1zZYI%fZUVD)*IDb54M]Ŋk|JzW̍ueU5ou5qxO8_ѣGYZZ:k_Y]]~/|3UzTs`>ݻwsꩧ>fG򒗼1{A 4x РARVl1,rdmm#3Z;JZb m2FLOBlkiu:^LNB5j:h!uƪsS=zAP֒@ $rI*g!!޴湻HeX>-bpIJҩ$)Vuih"`E@hM Ѱ=R$DX]}N[pV% U bYٚPŒV鎭<GX7tNU.gL\ sCJmYʥdK”6ΎY\\TSa@Q/1VwUNigf\$5F,>O&鄽TRgDUv\̧5#hQ#Lb"Sx;}3O F X5 `d=;Ɛ*"}EF_C.1bЉ՚Xy<1!+-@>iR Ԁ*GLlW974.|4iۖUffffnn԰ȗe1gy&_|q7*Z>r=0xs}5n&^2??ϗegs嗓ss_Wyы^q7++,,,pM7~+Z}siG*`_җX[[㵯}-)%:z.2)^{-\r s=GhРA z0 РAeE50`NQ5>Ƅu`jۉx}I-@p]<㶬/Fu 5xucd4reg= IDAT;YTDp"(w(רcÀVBp>L)XRQn~%Mm|,.Sז24TBSѶ]=IcJ)h\1}2_*I#RaH]J$eV|fLD cR1rYweM,I PS`%DG 9+0"%"AHUWц)!iUʊWO))ãka0^T͠3gK9cZ2k'cw1UHUY[_Rf+*]dB f.vxC2i=N-e.He9IǽZ )rPYO:qFN=T/p饗bٴiK.a<3xWµ^k^z.//p 7p ݻcKqNHC&f8p!-g~0ŐY[[ceuM[Y\\dӦp!uR.3SeY)%M&ԝau0LqR)i)A hǎ;6,xpن^úqI9PZ/9W554 1EM$SL.׳bmMl[aĝaH9"dk"˔TLRdTt:9߿t$rFH$ŖjbʸJU)&B֪])H>aLt~s'G=N)ge /KO%֭fZCXuk,u|'SFD]:.*ӈXI!vkbZR>xr?wtd9XbYkuΰ$_οۿO|hs5c|TQ;w/8p击B38~j6o Zq;zT9^G!'?SC_Ν;'>ݻ9z٠A ` X9g'YqO ~/| ?#J^WqW,Nv !8+`.V ұ`LĒjL#)@_KJѡ6?T#{{) K&RUf"$353B"d,@f.cqkj mA*J}r 5FBH2u]#E2FkJj]\Fb ,{֢wL`~2?'L&ʆ"k2F` AjT~oXqҊ:zƤg%k}L+aYgJXW+0褕|G+ V͘c_- ~Z> WrD!bûհ{uS"KX11̟@ȍ+@k4dz-,,W}3aǎ6? 64 ˏz]+"?\7oZſ[y_h4z˿۷[ok]v񲗽u4hР X9T֫^*򖷜nF ^=a7hГ'FlK ךsF\ת Y/x m25X>Eo 9S)%]~Buu53,lc2/|í߽Ne޻5{11MYYv.]9p0++&+Xql?})y5Z*]2hB2nx;gzK JI59 ~MnwUW>x*CL35[n`f% z54XkHA"7.`*2L_I˥BBqS#vD&3A.Y>ذfOWI1+^SgՖD-53*"( Vc+–lz.tU{F R[?&>>\SSRQQS:tկ3z?)e&S;J)D2PfBJQ䲘b,Nԥ~޽{OXInt:eƍ5}w~B"?c?VÇk׮s?lZXXkg>ر;vpsW|kiРA 4@',2ƈ u774ɐAJ"c2l GARYKUY*1S&e@]Wch[Ot>%|a& XIĐN={$fcc=w^dYgT3鄘s,-OpU,̍9̎g-mTu֮Z11UmiI&I6dԕmъIOF#bNJXh1xtg 39CS7 3Imrm[9Cӭ`#mP`:[ mcVm<_'էb 9|ZG2 )Xj2QcIKU#t>\EiBrdڮRYK7֊Z 8[+`mq"H1R`?YOƈcb2 sCV*>٭lYRAוgZ>@8'Tn,"jewI(L̮J^}aǎ\uU<h?OΙK/믿??aǎkZyֳUW]uW`Р']] grJX\Y*ɟ>ʍ.zTRYsJ$m|$& '%1ضD8<}`~a1Uq3G昛')+Gss3X8|0h}ĬcǸΰ,lY:)&L,)MtSI@ '" gj6n+59Clq5XYYE:U` TU׃AL'4#3ԍ;0tI+kUUcd?S̗tr$K&E:qR*b-V:>r$CZgG)GC`z)ӖvY2&394|LQewx㲫huE5j㎟܁6\osUu.ԝGz wFcǞY VMxMZMFuM);l DSHsOf(Ƚ׾5Br)G?Qo__w*>o|??f<|}G> 7{^1[o9 zU.BHsmD!`Qs-39wGz!-di!Β$'l2QmfffK6Z{$8393^מ𱵖9sgqozӛ>?1oo=33#\ .o܃{?|? WA '7djaa::_AO}S\ve'ַ}_͞={8y۹[oܸw<`*]vk.⊇|seͼoСCݻtw>ܹw}۶oox;g駟λnVWWWAKr0$&XD%~nr2DEMO YbHbe-s9rd1 fnv&k033g?OƍYX33slٲSŎc3ɔ۾w77wqQVذq1λN}R2UYp%G4$n6c !&YLtM(POJtiM% brnIl K_t9!asr;t]cӐ8JIŐrX'}LojzhjlDʾT4c,U&/#DYXh{13$M1%q֝knK,Yׯi*GOMiOOS8ǿFWr4MC*Rx?-fPHd2\KYre+V֒.c|_gԕ9}UL"Ab(,fjB6jb=:z(1!;hРA=@'>ODjǎ;v ?^:~wvqq[KKK۷tzmO޽Yg#}v1߿ o~B'|}<syq]w=qР[] `} ]B.:ЪN"PSRsbJZ2mk`m,l`ii333{S~|;jݿ9& UcrF&UvL9ž;Iac9G6mȡ% [c;P 8ŬT].u<C !RW|194m:ذqTTUG=FΕ)2YOh4f:=dzS]9LN(G7T*k8yy6oc1&NѪPt=+roZ`g8=7&OF#tktYz`4]&btA,EB UC0zh\rCΑ4c*fNy}HLo?Z[?4[*adu;k fb L21]VtPI(ZB 4^uڤ#03 6@^& lsSj$T.3H֪cJOx R+^b4hРA PW^z>ɤ57sA~7~}HN-x 4hРG:ɔR7sNe-[Nhw]=[Vv ~;4~|Яw=w>T{fkX )RB)k!sۦ"xa`NXW6 <rY^E6 8}s/o7N+gSt ,fgO4K]Bhgp}Gٽ\sGNq);:[8g͡CG%#KM!^֥ @m+*gHW9fJH)`RidkvjJ@S׺FI\4R(] S_QU֙A9r2HI*g;~ #-bsq00#=K@uU# ?&s7K'D_ 40jj簶qS85NBe (5Z"R1N'}w~[y9 `Ksڗ2id `Cۮ\}]FM+(bۧOdHJ\NLۖ5tko$)7;QBMcLp<4hРA z5TN2MӇLlݺ;-[ȗڸq##͛Y^^ӟ4/zы7駟.rz|?W\q?Cm__i&=asРS7M։i+I\ YlYFJZus0S0HR">#F3󬬶d*{];7rtqhanv#[B ]L&D 0pwW8mfw C`iٻ=h4O30byyٙ5F'F2>dKF1u6gP'@3rDFbH) &)k%'LrLdh1MBNeX!]t3\Lx))&+kot!:A@Š0:}=,5HiGCS:zuKfvl;]3&# ÷`!E\B&aH{2$ZͻTEO!Cj=~]#c$62:-1Vʪ]-I0kHeX䒼l$ h-f5OdkGIŔ1[&;))UC*XL6@s!iJ(aCoѿ 4hРA$CԯoL׽u;}{o}[˿K>?u<ֺꪫ>UW]hf]OM3#%r{Ngv<ñc˄h\5}?+4:9ĞX9xQch +'"4Q.T4dڛ}4hРA h0N25M9)ٴiGeaah􄽮==y}7?1Gx;Cя~ONu6=6hГLu$݌Xpb0:m!RcUTmȘTFٻGDʳI=!|+'"kR9岴>FbT豋DESasce]T3Ɩt =#wM]=fK 5JUM4SXH1+X7(0!CJ~dMIzco,ql\12>(&eAyf=ƈ.3* 1y@M@Y)eSM_iL/81L TL`y)ukZ N~7)D/ ,| L%ϕ3*'rĔeQY, u3rL$W`mM``]ɐbe=hРA z5@'{e'%Av;v σ~j$kLd\j$8BLauac2]c:b!?Y$Ėv[7du☶ɔ6MIy @*)bKSBr?t0cn3!h(}ƣb4UldE?BQsکؼW,q RLږ#!dH !!dɉYb8 [[.v lH65ʌ!љ7 Sօ0]88}Y,IgFH[+Y]2&k 5R8TTըԲ&PIׯ4mcrf!⪌ Ad#NNh)eM~"1 SBZ%LCJC)R~.mX_p#?L2XJdnaxne/u5S YK d-b=&rvp]":g_ZbVs jB Ե 3p򇤆d@:/iThzРA 4hcVwuwu>64hɦBXD%`53++$S1d}nbSJ`:i;ՋRP0Qi`ӦMg6s؊fYZDZk$*b951ʊŹ=m0jdOL#Lh[ڨ2MhTqaNbH270yl )n* DBdiU#'S*Itn*11:0&w=<әY%{MJ_ց__Q1@eKʖVٌtU251%;7rSwgnU !yՅc1#BXH~ ڊ0YT1URT3e,m?Eb:FJ+S.lzAlC ˴m FWι14WRS( 1dl Vds}mI&WIiոIĨ!26hРA Xk0x)«_j^W>/kРGnݨ8q6hm@8Blޝ{d7MWXKHc vo 2=4V;ٶm+Ӷ3yQr >m0*52FшN*DTTCA+wV-omOPO ~R$"p#4NpdL Br4$[Lcbd2D;$9W. XUPZXܾ}'OghKr}Y`k{B.k#шglșË!X.+ybY$-C2ikO$ɘb -[[\rw~ %!:VB8:X"Ѭ4JrX'gU.Q]M&(ZTXsݽo{ܼ>fmeFENҭu1QaHR'Oy He;|0DIHnъL}H$`bW !EѲ| LkӒG }1q֡tLڊOp yY##6 :v{(R&nK.n@VVUьdO*f%n\9M#4M`gU8;k/hRZm>?y4R_S_Ebnc(d{$n$ X)1.9銶 D1vR========5 wI/i0;XQ4iVm 4>667-̖Pɔap <̀xB,ЅȅeeQFЙ"v1I׍ql6gh1A ѤX  oy;wRB帼3[;d7޸->t{~ђɸi&>uĮD;TbH;D'GP芣E0Z|񱀨!2R""C$W'&Eצ8(69g$# 34\cZەmL޳UXg #[\A۶:g?5gsʈd||}ws$I1r֞ԭDPOOOOOOo^yV9Z &ϐq0_TTG)Cs66(E4M}Zm ]NNf>ŵ5Ƥ(ҢkĶż~4Ƽo``\j~MvF > fp\Ʋ |so v8?wX5ZY*)A1-;y9b}kb: Ԑ!`)$,'GcC>^eOj|QeBL$L1yɤ+& uE1tׅC:b٬nZt&hȔBLqbLiJƳskJ##@gFbNi>DHOda293E{̘֧CDlkKѮp IIk[u iB0gm} f_1kVm쬢m+\`Aƚ(k~na\12*3b<ޡinXYR4O%9Gma Ҡ48g),Dդ.ʩ?"C]T\lg$ n\PZN㜧Z&2f GjDb$CӍ يS^}9l2ɚx͛nN5RU- ޠxHFh[\Go[o>{-Y>`![H6oGoϾ7eP5,c4޷YI0UTg\jƃvF,|ik=A͠YzAoZC!J`u)gd0f<=ÃSƳS2j2giEMq咮_!xbPI0D1 @/E9wQͽϩrp/ښATTIh ͉G.ip΢-!ZbT.: iQ-t,/ɏn2,Bck Ac._|>MΧE5o,E逮(;]O u`Yloo- 0kh4$ eŗ_} 7~ Ìi1 c(XkQ*eywzULg.[)dX"|;Ȟ-s]Hu绥zzzzQ8"p0 F%RU :9h0Z6MqF.*0 4 %Z׏ҋ{ӣveк`l798|ӧ#NOOzu1G5±n 2 rQi^ǖ( h59LWXd2Nq+?T--Z̠,/h@t B^{:o:Z-y۔ ?bg{1H9BVE$c*%e@T|D<9i"=E 1J$w}M^|>E|\“$H7IDpIlr xhXpI"5s11Y:]_Pq1s^yFI@҉ ;yNj!uº`0d() pT iT6mI3sde#jrD=,4v7/ sFHL-RdֶduPf6P9׸FX5|Wܼ|ѷߒ!idkgВ{gWĐ+JT'`tt]K,y^|\D "BѺ%SLykFsG|>7pp0]˯<Ljs5)Ŗ1Eb*UҕfHd{k ,cXcTz( rCf ^y%9pƭ[7y>wwiۖS?y+;I,#Ϳ9F d&XhK+oMZejCJq?,ATrF~.[========1BdiIIp.Ҵ娨Ɍb2. !J"YT-'''Y^|6ɕ:$ll0*nמc0h89YC|]VɆ,,VoMQx)!йjD=FyƠ)2քAQr> [-Rn.&lжq"4U83XP16,i;! >w988X u.hCկyҋ*SVzwi >IwL7 i;o@hAiY8K@։Q!yau*cN֛u`9Tr~劦J :hDrX8[s:׮5b`]zn߾MώQ&c{{ӳCN0Js_ӺGT XȌͫ|Nd:݇8rt:ecYV-㡧,r3:tsA('G V,i]XVQfXȵ敗Vu낵-M !h[Sמ23 1bR9XsHqJ3窛FOemc Q*-FM&f wiv|=@Hs>عRL.*nZca}mop#d"OCd4O,Ŋb0yOck|K=˯=}{a9 bi(Z41]. );%FP5 IDATZ#:U8JbNqOL6\H3t!|POOO3RK$s-mc1BDkCQĸpb*6mrV bĘ3OY-O1f) Ë/B}l$/4ghi" ȭLʊ^N+4'ʸ rVƶ(1KݽDUU(8(:OAݶX00YA:ڒkh`VL!LP*CEÿ˟/|yW__䣏>Ob6`D D4bDV9K.m*cR4Lu.Z)K@1U Eh[N%mlykWwqڵ] $t=E -FJeWZ %*-{9w8[WoQ*6$׳99.9Dg |xD1}͛OX.*O77_)3BTE<" xZHY:4io$ x/{r6=2crYcp'>F9:اV\4`<]/s:K7hH&݇>t}EwB"c G!wDu_ڕ o3[֨l֍|Kܾ5u-Y!TѣEBc1Gzo,[# rVq,Q4In,FPݤ:p^:\>OTW4"ApttpbLp.`ƧX!/~w?D놭u^ rt"lҺ]'5ѝH'шй$}:}'=rj%#G{ja:P]P &|NgC?g]YrvC w1RZ3bl!F1YN1$#F C =ڶkڶs$,wq_OOOO^yFQ"7Ĉ3ǑK/g9J{±k%u$( *`8NX-V5D "/E@`}}WoR4~MF#E}úBZR*p-A؉[!n6=DOiK G xrᙤ,>d:.^#p#˄#w.xz%Oϯr!7tbN1yH:_ZwS$'\@bX˪Jѱnb9iXVxOۦ֚pHQ}??z%x!r<ûާa Y nꦶuN!a]6ON7:Gd,DʲdQsr@P[Ki͓'GDrPm[ۇln(n?:ӧY-,ʲVUi|k55uԌYf3t2HQ4Σt(Iǜ8X*J"E"TU !`!7Ast#NOG"Q(?d26h^TD ٪кByyNscG`hoљ,K{ca)s(\6FPٝ.^#Ӗ,{[4Eb=xyH.CH4E<cDsrĭ =FãKNֵuZhLɃ"3[$r3tue1(bhbpvs6)*d!3HdU"*Ŷb8l90&H`6o+%W}uu j$!bt1ANY3pX}˲ZbcuHt dBfiHhrm/Ho-|#)w`ƹTP\d-\Ag1N c(յm-*Oc>s²|W[;(qr~L 1 dep8`\T5eQ~1My,/$:Ó*&ǀOD0f4Quv;!$* >DPq.F@f x(?ӽ=ub~Sq~|ϯ}=====t 1hm0&D-qb]ŘpPfhjGӺԡc-McimlG4uD >Ҷ M۰6BYhe?4y'8ҚrPϱi??i,MWm  5Α&Z Oݶ4֓%Bݬh!n-VX)"cNDO ¨p8o*&m(sh{:C4EOFw-ŗB*v"JHbXB@ȇsrS/q:/X_l}j;epwha]%Km{W$b>DGQ$.L2^d}mM2 ڢ%#JdO>{f'VK1ʔVv~?~DŽyIq!E\zXW-K\/sVc`csƘY!9[4v$g}!$Ă'!hbK/k"ל?\`#R9!Dع;k+t2gr[G~br}zzzzzp@====(JA!Eq^R=#D|^ȇ% l^I/i\&RWi|(0YrlNm+aI9SpXa騫at |-縶bĘxU;y<*]۶Mџ4ՂhF! mDST͊#M+uòZ1_Di\RΈ!1PG8kP9:h A@u'3Bڦ&ׁH$S Uq3gSGVYP.xH2>7ĝ' Q)ZJtk(1)q =:D>ږ4S &#֧,TL1Yj3Q9֏/"dY eEm|~g|u^nN%KP9.Z"m=uhw?JgdF1Rr.!jm)JMi\k'1ĐaUZ I)IQE19QtDKԁEԀڀтhM?%?5P- nUUǿ_OOOO6rr>AUE`0ќh)]H}FA631Y-gH̨V5m) yn!ͼahYocsݱxUCYNXJ""*R-F AIY)k-RMc2y1לSR:v,*Drxx*c^Y0(-ph!vў5ONx+\hPcr5YlVwOxFhq1{{5,mbTAUG>1Ogԭ:S7V859}D"b*^ZĮ׹Q"Yti?_Pk(iDu+bPF+O>V2OxHY΀ ' ژ f4e]sGm@g#zfKsQxz$lmmc4RU55]#UUJCa2(!C$YqtPH; EqΑE'3L1¯8sa[nVVzY.,9u]#"F_OOOOOO/k! ibT4MCXKj*amRº{Bp`.%9#;fQцUUX4˜ -r|xݯy|4ԍ~M*Bddl! hsDX+( Yb^Ctl`cmH)rxoF3iZ9um8:X,5Q)~%:4@bDb $|ɲ(O,XX--yGhiy . o%3ǪeEiZK5rg_\KLCI2TDt*9wBTXo 8Tgwww-k[;Cˊ3UU#Oi`}:e:VbenȌ^9ZfsKBfRAsD#tqGI.&!"u]SUMr EEݖ7PUz%mk8::dgwBmۦg(D%GQ]$nzqN;qX,cdy{JAʁ,,#h;#3 MY]7 .qh X * P76[+u>"7$jEI8t UiiV HҭoX 9BL`i]Gu٬;C[gt55buwkTgҶⰢ1la2ize{;\x\~b GgCOB)#3GJsuRR P0x %XFFFFFF1 @####("7aR R\ \2ytS>t' @/nqp@-&[/L9YNu{ōwx-b.>&dIJ Z,Lx}Zȅt0tL&R`(ER$#〦D O(g}dи̝ ]0\d鲐CNg(xƂ3u >Rf2 ?q[ƛX%0`'ÿsaqT.ȇq9w.9[EbJ`[c3 !?|{:)u ިB zEIzj p(sz/]㡋rlǹ"("ԃD 3 ,88>O[|cP2F!dBȠOXXRؔ ׽L&Ji5&XŒڃK 1ĆUC,4X[pf􄭭~":rr"O=yp IDATm^"Y2Bl!apIɹc(}uNa@#N#<ާ~'`ZJb=֕ALFSيw [8:('aLI))%D-iH8i<S#@ tŋ/0ӳBUPkCGxU\);ۖ]O di匢vv |yY-xo{v=tւOX.{&͜=qjbKCs`mSKe=.ULR?P{~ b)9E0b0pg׿sv:`蕫\2shZޠ-g[EAgu uS̀`lN raW1R έJ) !RJy9! ߺw̠Ro 3\ǻ4,3n ]OXEm}6&lmv dQB` T}H 3 ξֺ٪Xz&3(*K>ՇPnOB n?K^ qMӼ~}######QyPÞq0 "X& vvf=1Cq@!Ƚ#k 78dBrӓD׸:n e-,aɳO_⽏_o'+._c+evi91aqv1཭6Z@\-F/7}w0|6ϼ"!FRY_Kb*MY.o.m>89g>дP's d7!iu Su-RuOPD\")gDZee\FxXuӳk=)+ׯ6ֹk q.I(8c(B420ж\r=RP5R"@)beo\I%bX>G­w_CĹ L}7s/XEXEĻPJgSK+J.ZDpQ%F%&C.br1(`E(jɹ^֑<#dQ" !d:H-HL:$_/}K|sCD_u>ܗ~/722222X1^~6 54It]f@z66=}2LJ-C?$fcjo&X,>qΊtB,mC- xon\#S#7X 1DpU9R])@U PԾ5=Z63EIayiZCxonxJɔÂv "0 y4 lu0Q@VQj|sX5養o9GJZ ֯(F??_"?s?'> k̃XvodddddbFFFFd0q )YB4'q *<Ͽ Z,Y jbYӳi)RJKLUr5U6c1k vd"sg-Fw3%8 )QJȄtBɞn)cKDLC$axV}QF1Rpa:]s8SWD oy={dD"RhZؘyg4 pxsz}?EJ^!F=,?z&PR! QWМ(9‘B΁ ι킵f=޼yַ`o!EqM'f{{B*X 3ºĒRƈsADign呫ӬoBL72PJajLKHRbRb&N U*ҴɰUaUEӢZp2Fq!8 S|Cx9ZI׵ G2%;ۻV=/O2 )W- /_ Errƥ ?nѸe:u= F`Ծ#oHPZ6dBVH" }H~ $]/~|S};6<g?Y~~c kv_= @#####QyPAfbLKa27̧k?Cecs\n8$ߐ#R2`k*X`)aJ*,4's-a=G_k_r4*[lcI1bAk!s~ij"21i)ףQH;R`h'DGLl2Z2"_o,S(Znٳ7O16|FPg-`ݔ'4$̶7$&cXr^kEV=nXTW܄%\{{_88Xco3>)9q|xB^{ӳHc7!\~a9Jt2a:sP2t}$paȅ;CLkj+*@c d&D*mRJ7n?g>xrܷs{9>cx/FFFFFu2 @####2k(|]>2dvv[||=0.^`| RN#R;%SDz:R *d}U!U6S{f[\L,lnnqK|_xPŢE!KL1Fkc *CTY3)ET-|dJLaa κо97,.QqƢfN=gw#k29j="LZ0b0(t!G;$+4yK(cH9s|Nb JZRtPJ@68hU]9TklJд ^"Q9/xGܘ1 5j@Q٢#nHDJuVJ";ԟC뿵XC*ܼs]]b=ә=Wwzu#e}#5C;y3k8=V}/gqHSXј%%DF#Ų'Z_-1ئ֮+Wcn`bZZ{T[Xu\Wʯ}__fgg{:9y_ҹ<،2U)bhΡr\?$;;Fzyp)MHQaKQ\!ԁpc,)WgQ-$hQ`-B=O<'~ߠz̗U&.:#񾡙?|>g+rtd53F$S\F/vA䔉dT #V"J`S*8gN< MNdB.DʵlXWWmfH;Gko}Z6D{D<%_f[8I%qxV񨰮}7ԹvAr|l:R8[rskIPb% F-*RR#zU"ּacc!g Ɍc)A)BgB_ J6RPJBཥՒhUs`,Y w}opaDSDL⡋wx#Gw;p! >Tb 1w7[(E(EP2n%yĹ]wg82ZRz]{l y)bDY17s 1`Rj2["8xw c3FmT+K%!g3a]\h=А5מmqd!fC,\ C.u[7!K!Dc)qB̡Ft}c={{{ }dk17&SXJ*[jI1BɤA%gRoʦ~Sk7x}+5 |XMxj9KXb* W qxiAVwRVb$+q~Jwhgw1&k=Պ39g!3 w1Ud*xoj6u5f)R{sAL51Yt6lllO~~x;}} ؃(<Ȭ{D1wnnqBdcINWkU7 B:J)X+L'TTqM-U :/cBKnix>`%GUq֎Mc귧tB#<))eXW8JRcZ_LFRa !E8Yϣ.aJ_-Qp!:w^ T׉sΗ{Xe]v&,GǠ>+XęFֈr(+cAkXӾ:4̈́kFSrD4a'&] 3ct3g_aEqfk2m;!H̤v/lBd u>u+T"Z )gYworw_)2coon.(ŁZT&,V 1AU;Yc:f%e"εd"ipƃ%G~r!՞U+8 )c]5NBJXZI>O+X?=;:O?Uf&K]XP!QEqB c )0f1Sୣi[RȩY)I ؛3US{tL'D1 @wO88\ԓ|ek3èbRDw(vhA%匳`BLb*.u/.\X-J"Et-fU!d mυGw )bB*Rbacñ؞'# e#!)4mSKq ~L33gcU4/9=!FN%CrcEDע#B. V b Àk4qk=Zz4ms&Yd`:0!H 9"c5ЁUZ!<"PKzgHЇg>?~_gץǼSwy;722222O1 @B}hk]>R*F5RIdr)&+Wʫs6*#&w #\S˖X\RY?"3짧3#i"qJk(!a@Ywuuv(5҅pF#k~~cֽ8u *%X3VVs/ܬzvRS @.kD(k8ì %c캤 *Ƌn_/luo-.^<×((,VuXKZPƒKZCO |>oo/|˗/SOO'|_kdAΰ+ Cc F9%Zhg~FM689y@ FίiYwh| 3XrQB, ጫ\[$%wMNk)pɄqbm-JxrN2E*Ɛ8g1X4&1UW 1G/!%FcK5Lbֶh)8pQrɤH ** c \8?û7-1"Œ|28k> 8S8YJ‰A4:K)5n8  " dEiCN '%䉫UR0C$by}4g{|W9:}[ G;\p h֢Utj֐b΀5\:b z/XP]̪^+htv@˟ɟ?3~w~O|,+B7x??SOOkG ?̧4X\XnZR1b钝]dV@6k7HIh\Kȉ0`1`,zNR?.]-(=DVWEJʥ.5bִ0dTI9*ZcIcuL|ò/^2XH(D;S2t,Bzjus{3D.1FR F\ )עeaw)snr9Z)B%'Y,ПaFm^.&F>$.!hRڃs \(! mQUhEM#->*\m>ôVwۻt>GӔ[pِ,,Y몖74bD9]vsbL<39rv,N[L3惜,^9ú 6-̌>֌oCX6)3B 8g6]Q0tR,b(oL9-=u !ugϽ{-+Y3j?Ydg}{dfem]]v X) 1+;c;ln v 0`Vٞ. UuWUVUfsm.B-yOevy?JiҘZzFIEz #B Rxğ{":eM7Ļ.&''zzRᥴcƌ3f,<5coH)t:Olyy dY8\s5l۶O|ebblk̘#qm R 8֬66*NZfȲ@w(DLFMSta|J14ΥqEV^`]w,˨!p=("6A8mM:cj3ٙ$J어ZuOg(Q7vؤf4V3DZ9= AoA II& %(InE6ـRBѤj,QKoaID-:7Cvڼ\zu|N7D,Q*"ev6S,-7E:7DEK3p ,"JBhUz .g)%yd+F B@H>Fx~5װm~W);  1j.y`8/q֢(2M=$#Sy] *P7[ }"RFvDdtص_Fᘚhq;p~'?Ω>u@ h*ьIJK/271@G[!("E] qN@LyXBhI<|rHʲHbyNÿۿQ5o|2'g&RB8@I2 k%9zg6(+b &d^DrBT ?V09# F~iHUU*S()d0 hQnXo|( 2E@@oZB  eY6]Hں2jś!@n m1x( -&-7Ae ydj -p9mon.p;  L+M2CD@n]lc/VVHc@E];@X/*e)`8˲"1| 2jD!i^sҭsdƣGwat!"hEYDTnikEn[Nm z!e gkz'y08\dhՆ~Eg乡(u^qɅq'O X^`}0`rfյ!1jb $h9@YDv(ػ;gvRP"bjU @Re fZmxi6b MSctf*Gx(~>_{Z~3f̘1?X:`֭3[l9$vG?Q;#gtM|cwowY???/oGuϕ,˸ 9|sm뙎*g[XXX?m݆1o}ce__sر?Noop|o2 aGS7H*; 6ع}+U{8W\y%5J S[Rޑi3ʰ( 20Px!%h|娖]!41Ik!F@"J_+]Cm|LQ'BBckF Ȉ1U[\J8j_Ӊ5%1YEHƞ!h~ Mp5* 1$I-G #N\;Oht.]Wc۷o(2 hkQ!&ňP }`iblAoR"DG >$L_"L-`%Tjxa3l |@(%>qm]DGfksG%Zkؾհk|j y@F"H6Ge(~߭/$J 徾1cƌ3 @9nwSRn^۬/=f[?8LMMonѣl߾೟,_|16~~vmP[?2AFΒ$u ̳_377Ick=IKL LZEPu 5=2 uBrySrަ!R55F8"((R:v!sx&h% tj5V}\t#L88$${wdiOom@mk2ڙ(ePRDڮ )1$z !@K6 Mub$װca(b8R;WМ/FdLL&ǓN?҈"9vBrY9:ץ[:-R0 1$)R8; r@{7 A|rNAr/-6^JitqaKZsfeʀVKi1|'N8u:PU2eʝHU3n eA0yO 88 %5'+?~E7pYСÅ3Cz5ʹ SLv(" Vj[{ Qhek2F+R ،v2 6. ޅ-Mq\H_R!8QB≸Ȍ!zOp>F2+QB#H-m) j~wiy>\/3f̘1Of,,//CJ)رckkkW\q.vHΕ{e}}cǎQ5ys 7pw~N^<+Q{χ?a~~׿?v=y{rp 7gg?z~8coJYB$HB)uu ,\@mQ @Ie%PQYAh(%|MQ6\xz~V#DpQ`TԀT(!FBR q!9f| x!PGܘd(Z, H,񡠩=Rd@[xW^u9y\=@+>U)M x!XδMn[T. 4FQT% )#H3PBHiRTX}Q)H ?n33c0P-_}h6PU'1&Fsր$4Yn6HYdZA 9YK1ެ_WRU$Ɣ_ FA(B8WSךjRAcMgT9x-[<#<ݓ:C(I*.C K؊wCN8[+G"7 ".4&#JAfVuEq8-t-#FO"ʱt:1LMN*y|h噞-)fzھ| 90j@KZ+4<&@êJ3@u@bqHKmzk}VXEM6q/c @enYRqBR9{ͳx"7=rs{ POVz*]7:o1e p\eR3ˁ+j3h%;wLq]Ύ݆Uj;G=D[hrBQK)GNurųS%0#h!Fc'XD$.pށzhA vys>_gy}cƌ3fYyFnjj9fgg_?>̞={xz}ۼ{x׽??s=־o=c<|K_ӟ4eYpnVok^\5?ms=x~;v{Uz]m6Z7y4#Dߤwdٵ3ソȋ9tϿ kM%y@)Y_ mXDx;$Hp!eQAj-JnR%z d'1 !$Y݌<?dfEKlZkR#F=bL.@ P g9ql(JQ4uMn$GdL WYD̹뮣wV76!Zh y2&Z(-js8t^p /݊Tt;3y{O]jH]P];Lw/3Q򫴲3?RW4u̙_@YCf,RLLh"Rfux}Dxoql1HH,U*9zJ?C?E >Ze.$QTR@2( IDAT( Qy֚N9r}t:I~xo̘1cƌ9yF]כd˖-<ξ(n}ݛy6333llltMu]l߾}Y7\{?T ~~\x ç\/hc̳ɶ2sanvO~!~䚟˶qqZ-ַ!Zkwq73??+_JN>2_~9?ԧ?̮]Ԛ/}~Ρ~q|y Q=X3Kۦl0yI@?N5q;<&'FC$(H/EIPJ22ͱ8 XX$zE-R%Q#B5LgxqU2=!^m$){cm2A>Tfgسg+[&XY=əӏ3՝e~άԬN3;U64j@! %3Ӛv\7HӓN*) Ǵޅ-\w^9>p7M73>׾5N8ʭC_s5|}^\jM_WW1{r5/ySQk~.z???-o|y{C|ԩSLOOw{SZ__Oz8q)YD?~X:$ADDI zA{MY^<# +C! UUǏGFV+C$KU@ZQcƺ:^# JJ5K.Y6A]d k-2.391ō 3 bD)IQjt&UCWxg;ᨖ"{r;蔞V[yl13&A  ۔ $S\!zGUYPȝQxrsI\Rn(\}(=jk k61F:'_ |~o̘1cƌyzFiOwxg?˧ɷO|gO|ci=:Oxrדɲ'NvAr9r˿1ώ3g𶷽/Çoq6g*"zcc_;B`-2SM%q5">JEU!1mMVTVk1JU@CMeX[#94Y-K4!Υ9?jSƀHr9;ZAD(_뮽 Lvena3GO#G8p4kbq_D »0K.j_Ǟ]h-b('X[cr/n [HٷEfGUo΄dj`LA6 fPU&Zw8R,CWVO1?b=1䮻 D\ r/eTFS9?|'-ٹC&!ZpXD%4U{6ZeZ2 {{ 2Ą@G"(#( (*O9&/,+F5|sIѝ2eYh}}cƌ󳄔zh+mگzGI]'5O']G~,ϻ%xyȏs^,,,"O׿u^WşG};vlğ1OOr0߀dDP҄H9fTQז(SNAa94hl@@^Mmcy^uDIo &d$YV`TPȑJܠa? U4['35=ݒ9ڭvk S8|.qfB MdaaD-s]N.z6 =l(Ye9!@ h'fѢIդNv+ogI9ppـ`2_J*?rd@<s^ކ%]\u)2&c:,Y:qnw 'z<x.@ΐKǹ,%v\qť[hϻt;kn=BKE@5>ge8J!1z[#dW1514l:C922iIus b!XhLΙ3|#\vAruh)!i$bm(4gwݜ\ {/A -#56k|1*Bpn![bR*TuC#a&F %1AJ.*rmp)G((-j8RvREt:/X}}cƌ3g4;oލ4СC\wu,//OwzƼ$㨦]),/p>Ј&B[vYZ}D@P"ۤd1:YMc81$!ΡsEYdHB"j/N#B*F"5"H"HJ\QU+\˘u|%\eNs8JoHLna|ع+.C5LY>]q6D R={f( !J풦9uj"hmGXYm|tvN.ة!+|[4ZoE!@+Ɂ#LNt& l3`@܅'^ve PQht23)X:Ԕa]Lǩ@ f̔ 'r%)sAA,5QFPD)>|HXA ˽H{`nuLђiM 2nHЀR8O-m03U`>92ĠH VVR"3R&={qj)'5(3z4 %B#%>zDH-\1 u6BR2#$n'6)lLYF#Lj¤% !va5 F5{vTu(c !8LyEB2p5',eɡǹqc\wJηvKDz78yjuϾ#0!xLO5,+72BƴxGo?«_ J x8yr{;Sv. aQѠ%#+2mҸS8xQ=Æh劲df4@ FI+u=@HA–-\z^;3S;ij8g1#Fʤ׀ % l>$&ZŁCM bu đN!sHrF.=DRj#XgGZɃO46eE6XfJ֚If0VG>X7f̘1c~ @c^Pvɷs/yJ>ϟ"B`Gc)d -2e4r\Gbd%m@]y1hY|z0F5Χ&I6# HI"4J5BiIenR"V}f:xW}rCCD, XX5Hn4]Wm?s.h犩-RBwMvࣧ?SU$cR`2=É4Ř 5qx)Z58|7jy!hkLq!G.IŽ~$P% " 87L#ѥ/ (I=C6C % ;]ltry@x9y4 UU4sNeEqލ77f̘1c~v @cƌs7@*8 xL9| 4vٹcjmNMi2`D Id~hkPRHY UC`LF@4'!gsS S hm$<7 9Rt]24V  V3$/8qlk* ,]FZ\{0>Cg!-3-ڝ<ب.e9eM(VѺ;9$Hlsǎ-mC#GM9$%HL! B@©eVVzܵlMxQd2'0ӝEʖ`۶)rL[*;DTԃ!JD&DH$)4cݖ 5-SjZ5DIKͩ3( 3 [22Њ:lĠp!FG65RT.>`f$(Hc@H b LWJTr#q)@HYJ05]2Ω5XDڳPdECp.Xٶ(Zn֎"5'FrօuB>z- u drI@RP| (q~=Ye1Fo7f㦔Bk=2r_ߘ1cƌy3ƌ3%@ih Vbnt)&'Kvn;8W_}Jؘ{1&S(S{hR!e:am\r;%u(d$XRH:=;t':[ĎFlPԕ6#B v΅>~Wǖ- |C Ih-!7Ր6$D!#K!ĦXr徾1cƌe,3fK@Dz8书ExػkAC1=W# )b\i,y2S*s8RdyIc-J+L!bG ޥw#CHN A.Nhs yQknjVWV(ʋS ɣ\r7p0޻k03b¶I[8}&&NK+8q2| <y&xSLLl8~Gh)r7myN:ZGa7(YG+!51QUʎ!@Hb- B)[g*ܒ,JAVj!T 6 DHQ1մZ~! RGkY1M8ɋH Ĉ<e@iEh)"#ATQHlq k1\Pѝ(mTtPזA5ʈAJ)Dh(6вM]NosG R*BLVU,ǹ@]_4ϰְ4Ļ@SRjPHeăCI. V9M ? DGiT,/2*S$2ѨBK ='| $$%4f̘1cƌyi1ƌ3%iM=R &&hkBRjk~EoZUW]Ⴧo4(Y4Σ#4BpPa}MY휺⃥ti X7CCP4!Zj6kRf!$Jj!um)6ޛXfzϷFYsڻ6ťIja` ×`\|` `aK\h,&foWgow5?x,T&*3#ωLp]gجWl7ۖ}3K^]7G?{}>¿?ͦc\Fsnk~Pfg?E䖣~{Ae\>n7,VKWf}Yd}8@R"EW!)chful|-.L5"G#+0c\_^(IQ՚TdWE=W ,EN@ *Ʋ,V,hʼ6ϱwD(._-LJbX[s&mYR#fnz{ "@*.$DARXe 7[皦H/ͻ hsGԕ`qcffn?JiQA+Ybtbt!!HFSYJ?H&1jھ+ q9F">MqىRDLel``````` |K_$HmI'"K7\_`q\߶dmD)6%9)Rt}O"އ")ydR2grN!dDLQ.3 !!FK_,"->8+noVr&CC989GS#1v GG{4AOș?w0?ҵ=9MI)cGX\X,{4#yhR!u&4& IDAT嗯_mqd9;IR#(!&Zvţ07 HbD3ps}mQx?cj'»o@dAmG 9G eYn 1u]J+C̉)AR}9+B 6h3>6@(4dJLHB(EhcFd:C+*SB(XhwXcw>!OٳܻpxEe+o1KYEUIOvl6pJξ+%%DK9yVeZKJ=BfFؕ;|"Detq(1#DR|,+Ye-,îZh_h```[J Kg I%]>v.||oj{I)bmG]OhjǶ[#DM2]׃T\"LXFMMJ!AJMN`C(VgRL( 1)eRP5=!G*QCxsvx4gXSl}%= Ͽ`jCSH@] <|p)Kndf>BXf1Us7 Qb5E"¾k!&O.Zjъ.7HOp 5uL5FaIYx:O ; x 3%,)̋'RBG.99~dVcI\^-5 ޼5H(a)bA3PiݻGt}O eRdvHd4A31Vd@Hݻs_[֫-ٌQSssb 1jO?є޻K zbГ3*vHIʊsƼ)"%-% 1b L\n!gSk5G[AU^n#&`o.9:9))"b@dD,Z-G|5/_^ֽ}>'bU#>ǸаZ{ӆh3MQ` <Ɋcv)rAr)VgޢnnVĔVSs0_w4F寲T֕\{Owcк`dk)%cc18ubbe((q95ڕh[-R?\%1$.*Vzd=n/hgLTMxoȀ ~4000m%Rq C d\Q)pݖbɶٶkG5İi󹦪:fŨR; G\6n=ZKQdBjjD&@.:׃h]tCIdLXZH}{|owt<>b:TF#B)\&dF2q_;͟fל~|9:fr>cYR$ƄҖX.o+Ki"G i2,J)UfʵhV(Sٌv۲Yo c'zbYȞVxd9?mT\+E|ج\_y;IIKZ,Z^|d 6`ER)}.& 1R2mTҒ"U#*+2#Z-9hSb^MUC͊%EoO9s*G".E\D%Rˉ6' V 3RH*[v> o)?@$VjjL,F**k늘2!QwNH3)F(!)#e&ҩMt;{<~.mAOS>%o.Y4C.\],!8B sRH)QIaj(Kbc$ʵ .|̏=Ξ\hO79" o~R"Ĉr,qssw{ YHok=CXst9' gB#J'=n8xd>lZ&1喋Ev?zo<C`:ҺH՚/ŏኦRHLւ_9?̱V#EY SJfIyfN̉#J+' dK׭IwÃobABc+I'8sƪ2\^^%!(B2 Z5EI[%,) YJŽEBKSew?QB? o/4000-&^t$[%gAbYjm$Ox!uEK_0s~AIGѥ%PĊb D %ȜPR V(sh0JR2$"֪22JI'P}߲?ohC6[ٛGOۇp=xӠB蜠ʽlցW/=GG?g?V|t9zy}:jK'D$G51b (R"&1, DwhmI&' %K?() >Eaf^s󎳳mǯ?c+~XB";,US)V1f@!d*%w\ԁn#}4w=/p|xb왎k.d@zRSO;Oկ3,9;(B[rGc_OO9=;M%hR$- R555)CՌ1l7Wg~O>[,o–0J)+_9EXkPZ\4=>'Hb&LA H2%R H!R[Cr[b8ףzMLMײj{R.9|G%3k>9:U< q>Ւ9MQ*D*-4ʪRKqt Y/t튇'9jqAo8>qsYQuפtBj1Vי\WBBKĘy>shQZK)c RnzÃwQJGαm4Cz%J_I)Eq=b( !TEȉzb"h' 2[s8̥}x~Ujf{ڃFu%ӱXQ=wgŜ/zԁsjϏ!}e22;TVD%ˌˏ>eJĆ1mp.GHP(,9I(Yků??Ys45"GrJH!9!rqIQ?1G6(296 IoȪO?0@vvS1GV חRuqFPlkfDm{zHo'0֢,K^ёrLS"%D!H[e-҉{J#$B(ș$MR9brlCʊ*@fkPqfsśo&zRf !`ͯNqufcZѶ {Rԍ;y7[bԴū 7KokOP)BkEƱ*z&9zLrylE#!wbxr>3UAh>bʎqSz1?&R|u"5__p|z Mc;meq4j]h:b/s*@a+uxd<9910)ٛphUƓ9Rv$4u}gl+z{YL&h#BJ-#"vqIΖ:՗=ꪧ'6TVEBʊ51$B@$AX|T\\nW|Ŗ[A$v `) Iv)JGPL9J!M2y}%?4000A9B,"EOV蜘&#Kmɴq 3Q!(2#2+R&ƄlsHĸs匒,}ą҂' vBI؄H4FFa)qѻ$!Jz>7^n9;kQ OaE) ;RXkDqcl֤8؟Lszwf,NY,/ybM3~ܿ3CrXC ɳ8RhO1"ELФ},=BZ66ճ&Jk7[>9W?ѣ*s!&RJxWmsdb ,sϞ^sy|zR\\ǶKT;vM$vxBUYBhCwlx`.Yࢡsk=aeTY k~'|l:Hc+KY “R kA n鍄VhD"Ӷ-Rb+w.r$sO)?4000-Ex;Le+9akIz[#SFH1C9>E2"eAH9!b5ϐB0Of[#P\?RRBI(Myꂛk>z֖gϯo_PW )}xd@LAJh4"u5/e`6SS.l;go&8źrP].ΟsyBz.. G3u=uK}Պ撓mbro3t]K jŽ{,nmֲnϙ5Lg{|ŗܡ<}d΃{o?|>ip>pI|5WaT9ߝaM޼&Gc-5L+ˑ8:zb鹽ԲMgX{)}͛Jiڶi* .xlYVHYSՇ#)ώܘŗ|YŽ1jFl[>w-_|q+6֯ѺL ,UӠf-d,*M(B 1;PQ*SM*f%2v4000000`Id)H}{2#$ B vPKmPhLe]PbKPė uR+*EuH%Fi# ELwA"%G5hIp| 點3"'8gtֈr.qc`q<|pKX&S"m)/NF hLxSUFG,Hr ރw䓏wG~aROpRJ|̼xq?tF C5يbQprxG'ĘysAiifp[i^ߢ唔$p|ŧ\߬vDuʒSWƚkOЕV zݑsYp'DTHϓ翢6.ybI8Kfku=!t639xx]b$.Q"EJҢܧڮ#ތ9xj̽GsRn\_qhD_\cL]f喘3`0bl[|ߴ|]m%hd ¦'dT&6-ѕF9D!6000000gH!Jig2@h%1 %JbFĄ2UǝfͶm5S&1׫19m@:WuS !FQG 6 Z|MS&E,s,h) ؖJ $Ā(Dq|]%@6Hy)7Wgob6 R(uIu{eBH EαMxl-VjcB ,[V@  .1~ VkLJ\\꣯8HNs IQtELrkMp[~3wM"4"JW "!݊ͶEIe+d^]~F27.4HR-JkrKL-$ IDAT^Vli"z]_^$$z@*2Z05Me1!r$5Ii7m3T"&|Je5AS541&D^:go. >Hn `|8e&Dh07ۣ Whv}XAL$b+˜ %1*2>Fd(9ԚIzJ|sgh```[Rxq1ʚl&T<#YJ}@H5ըfU5) Br 2?3I$RN]J fEһ#F+C(%9a*1e,DŽ86-3 ٜsތ;'sfĽeh9(%1N,KL 7Q7-9W1Rj=-&c.9Ś~7KP5M??Ϭ7l ''#B=nj) R%Fc!%Zgr (%PJPYK]|K/1}Ƈ@ΥL["IA*U! b! J)@}qH r* c*BʬWf)'B$m ĞL{l[b[nԘ>TPHNkmu=FG&c5iꆮl--wO_͟{7ĸE(/N%nz`>/yj53*P2ekbDS)r~)tKG*/l֎xTsq ZKr<{E@K=u8:U=d!J)R| o/?'_s||w?ggg/y``L~J)ƀn,q Dx_B$UH>4$J\ )~Cc L2BS (zF2#)Ms-1x.cT!I!)%w ъ,$D̮;F9)KR?ɓ ̑s\qp8"BR"`)^2!Drk+ڭc؀R,<gBԤP%.ɧoҒa"_=Y59}[bHu[b('AKd EH'2!G`+My߈nιy"!IK]S4!P 4R$j0:qztY/nyqu|>gdY!wzwn\89dYHb!"#%4c~CmX;V&!GL]!Z !3}.aU'QBCOkV"#B?->%?/` 3?s)GrλXHy=H]ץ8Ե%Dܴ(mh)BI!ajѺfz֖mYeE bHV|Vl h*~ב2Azl%V"Dy[L$#H) @MzB@kC3pV>t&{348ߓCT:bNKxU"BV$*1e]ʀT+ BؑQxޛk}g;ۻ޽Y43F#$!nl6 eB+SI`bB'0)##X2}Yzf׻w?˳sG8UY0I|n~{Nw}?_ӧEI ҀL j8>T 1ґ t.!+ KͬE]XHҜd#Pڕ,,S15^EbT+YÓOιret%x5.!e9ssR1Ra$DOYTU273|HRU{oj"`"ZD D(ڍ-R@al&11v9ZGQn2~ww!Y?ͭn&8j6g8f yox{ /u͛^Ɨh_ i|j X6drTo҂aUӜ<1HXt>e<8ʷQ!1 ZJHEh"OhD*%R JbCd}}=:4KƝƣ:VBH(B9b9[i 6e=O>b>=v;GJl#4IbmCiۗژn̩Anff;np-iY bl+$Cq|<֭ E>;5*Is!$ i.Rb4maRc@mI5b4iYH OJbhȒ $X[DD z ˳ϷT-LC C= ʕCeUHQ)fwU) wvkk<ĘamU#1!AKKvA]/LܾG!2=9~ dtͽoєfgO/s .4PG) hZ+b$f*$4ڡeگ4@V "i('zC%#ZE HgGGGGGGGn2?$('d&'T +o sr8eg9.\۷>?o~=;=??r mDHHL 4ZԠdنƴ}*bG"sLǬVh|cDZhEp5"MMUePc@mtH궅,DEm`N 5݉IX"4ь3<ۛadJstRhLf4U̓l3+d !A Pm5hq.Lѓf ZGʙ-sbXqYև z ijpqLzDatF+u"BԊd;իs^q@YGrd$Izh ْG"1R 6dYk R!Ebu+e/ Ph>haXTK[#S, 4O>B|ֆ (QR1g8nHyRJlup@s{RfxlZQ 3kÙs9^PlnE uz[gTIB5E!!x+I$Dv/4Ϙ=u}j.=z>s׬[d҂Edqph~<^J>^\Ƿog~x篿?a~)yZr`GJK G $* NzkP`:))W+G=v@ PQ4^)[wOTUC 6hi)(!$IQb]Q( "U X %JX.Kf3SWr֊ڥTBjNz,Kɳ?lo$VP{H /ҐR'17sUц egKۄgu}鐨΀bJj5n= O&%:AMH['eb slmH ("&Ip4O5B!lDxN4[iH ӓ'❠2/'sD༧i"M 1 $aFJ+\c-eii\D}Mt-IH]qx3.:*hkzn]j:ÞG`(+ uʢ hysx1M#{{AhG)V Jr96 Y`ݒƶ" $OU)>^+AP<·[u:I&ƈ1 ڤ2&I623>1[E3O_%<ȽA?սB^%>sv agQgdyÏ1}[~z{G{w^cwttiy%P|6FvdYZ@%(Neȑ4G)P UBSG2rt8.ݻN$.%UE]5ѾCw*qΒ Q@U5"blQ4ie§?l BP~b;K Y*~N 5ELN!ix5k@mL0MzyAڐ$#JAh(~:|Irr1ER#* 'g+UXVdRԕU5fx/ψ?4v9]&<{:˲"W <ce:GV oϽpi R}i;ñgas}O.S ^E@(Z"h2 N[ p^19Y\ZVˆ4n>V b$JEv :6 4&06\{.:~BgkXU uΥYJ 6'{>1H}Y>RTh!I_(sM^Db2J֒~Sd)1Bx:b[Ic΂D! O73gO&"4A# "DO3_`'Ld)غx^{ܰF8Y#k~h{>|w7y+/e@w"EIT",R;7wijAb 4#sUyuʲF NZ1[Suo9*;/H@7 IRށ<Āi޵[%-fʲ4%ʐxQ`҂{sBT+C 5Z1Jm.e<쓤*Ξf0m-/4=zBipQ,EdT˕4)N,tQ3Q|t2dld:Ypi{0^|TM B PB IVw=s-eIӌ^Q>fm#1Uf˚@T1)b%E "ժFfO6}<3[:Ɵs'I5?_{_K' ;UJB̤"a^LJxk 3%rCUY $5H#:0_Do|djKQ^1/-Z6&"9zRhS|2bZRmTن ,JѠRzpt8<׌ְZ/.Venju"}$x892!VwQZާ+\О3H `gg'>@vgYXGG3F |%u-sbI,VKOe4Vh>IxzyN]-:b$FP(&Ѭ+u 8l]!xM2$QXdIF FMiŌiJJu!ځH'Ias' k(iltb&kzÜ2L+:jD@zIuwS$@H}4ȉ1$)7Hy6 *5ƣ V dݫx_AQ+LBZGsHIFPW%QJ&~,x߶5MMB$) m7{m$9L0Z"у!JEz%d_hKo?IyNQ5&g^xs?䀞1cܝZF2l:Ԋ'&!_6G"3\zE>?dm8fz}g߻{?O}/IGGǟ![Ka2G[Rn8oZc=^F$2^1՜K88j*G E+/WqH !:PD )4emuC4IZ/S@ģt;@B)MS\+UyZB鍵mR db KzHNKbxJNŻ!ȳJʶeI*Dy=œ9I DKY-3v3y~vj IDATD5qx\ي73 TtDȚK65GG3GbP,KF &sRs½pJJ*n:(c'u A6D;R3mp^6!8gcck7cV'KeMjd"#h!)2 Ep"HI"!5A^Y>k$FQV^\, 8Y>Msr4/=#<%u1i1yQu YBhEU(Q5!DDt!r&7^c$+!O#"q2))@p !=$DhC qaP*!E^p{LGRaݻ)y_DjFMf4[9ΏMܸ5Ę$՘đ'}s)@(A&8kq h zG;<ӟ΍3eê qA%l˗6~Ixny ƒ)€vwym, C/يڨĨNz@*%(۶O:::::::^KOOpb><ǟx_G͂,泷XL}EW_6k;gMa ղf4G>Too3ۥ<Ԭ\>+_ ΃pCq'~ş{}i:::D".Xr#)%bl3ANdlږeT)-7P&YRp]| B jF=4܊risΜYs7KcpxP TUB"I:(h%ӓnfmM7=̕+dJ7;L措(1FPW:DE!"ilCb+"")B B^‘a{FHcNY(IιS"&H dt@Q&{`V@NJ07H@@/r B5bcvzlK\6}.~N-.klЄYXq M: ń#qmN*&)JXe4Q"JU1&媢 :DO"=1^EѺzEAYdR#m9J+ PPyn!O$vttttttt|@//ywI&sŇ~O,={?qpL\S7f~og,%vT5\R|dUўNh҂,WlcۿA8s BYTddEUm)E 8)2%.1:9|D=RrY76Y, ^}IP @>:ll!%a!.1#XI;wO*%3ҔZ!D)PkMjF8[sg (mMbCx[bC/OxϰZ=s֜ѓ %:s}Ej^O`}trDsfrVqwoFo8&5H!NG =HnߺͰ7f:_%#΍v?lȋy$)JI(83.vsB+S>= G#ꇷyyׯߠ?a<2%H"sw~.?1 %o n^-M._s9OPYO%ZE"n\e,]yDe 1FB9iM]7,f+V˚ $$!O3BPV!x;j!SRlS`%D{Mf3Op{Wї|Ji<7rO2TuDosb$!w˿;nc5WkO(.00'Mu/?c/%pA"ǣ3CiD D^ɒ)j1{8i g6r`aι3}=Njk {GJ 88 )ys)4N#/:mۊ4(zD뚬QK\`4M B<6pޣudh@Aݴ[ӯqiG] n:fwo|Z8޳*=yCF).ʇs܈*{>BAɍwp:3 &m#.wG𢡹u ~:qMdgd4H(rMl^3.X,kH3h}k=1hkp3$Z&)=YZئ McpAp_qY,E^yEAu $2beBTJۀ iQS7Kk^ssR󙥪2!'S&c!J67y-*cb0LQJ Ւ2qpxrjv?nxmYEUYl4M$ J LBBIxx2(p\-(TeY!I4=p/uY9bY:S@!59<ȐDIY(Y"B E?|7gJc(tRV&*I3fbY18+_uh@x}L kހrP7)GKʪڒ9@;g6_!#ё<=\c,sN&D<:dynYIЉaHM}H ~om*8kIMA AwB˽;]}& bY"%,cryIa{'GJdAUZ&FV(P،D2QV='b8ϝ}KW8w*34M(2~&kΝ$IS%uYR R >Ϸ~r֭_.^t4MC,^"7|7]]/۞ jIAK 8bhMBٴlۡd䑇^A= ${y&{=[_y_?pӄ YY-kFl!I RZ#ɒ!UYj(u!Fq6 cH~_qC>X_?C'LJ!KGw !xYc= I1 ~H :j ! b+N`T)E~/~ëy+kܽϽ\bwwF]yhon$Ɍ Ѧ!M"_E#繫!AUh(~QRilUTCB(  z,D"C MUl^5Z)iZqD>s{{x=#pxs7 d* "V \xʜ[w& GC.)1\ަuݘq+D!BԳs4prͰ/IL@ǯ]:glm}˫c+υ 9if Nã)Rd1O'H鑧Cqd=t+@/%g6?G>4髾]O86 )?7?^GF@Ï< aMij9X :;G~m ׶HS;C_(*gHCВf>_y/o7󶷽7<<r\*kujKlɖmmL{:zLxc"3p 1D44&` aLӣaL%Y-ڗodVg#Kj1 ^]_DE\Nʛusy|SG~^yr&5u!?~ -x@񖺱lo S<( h4KO]bpXy;[[8ekkm6%qebs=feβZĉqUy9Μ'M: e1eyKhDh4I-VrƓXZF`ɳ-p%+Sq~ƹK "6WYd(@($;&zI*S񙇟`w2 []]HҌIHNk_@I66,ڬbV g y$yeYNA@9~bހɸ`A%^HHxy lo.Jآ[>O>sݚ69RJ"Pc@@ LS(0gJE!xVW{x c J.\Ju:~gvI hhGɰ@\VkhQ B"\ ~nlonc]M"5U uβֈ[u1^ʭ|ǩoy߽<珲SV׆#$v%w Dn iF0AJ"aUnXY~M~?c!o|G>+ԧ>`0 ox+}?OO|O|''?<{W w<=;;;|#ᮻzW{<l>4֒,i ґr*hC"18q o$tۊLiLٽvK/\b/)L JqLm=kӌ$TMM,5 IDATOܭI"QRM# G:q!U7|>9 c0& шv`2MSqo9Z:ue3";&}x%FiEU MdQ՜~|'2~W!QO~??g~gXYY}}~lOG?̉':!oooo}￟(u}, k$`I\[0k,x!0kJiR+Ӛ nד9!΂1Bh"B*Iib-Hp"@ BiO"5RxБ"M23ԵG+Mp(Z&04e?FeN I$kGʖB!FS.^}iR#nj* D>X(f+<8kҔ2RDdL5׮'#ۘ`V vJҋԍ`GhE) eͬL 8&@*$iRѨ@fY#sx;Tupc[kt:XkY\{.^a58%qq@a{ -5nJSK"4:'.ƴxCy<:-L~>f4J#8gR"Pohsxւ֒#N?2.06f8E AS^gRٌ8p#B*@Vr5e)p>Fq^ ֺyIShi6V"TBc$e<>$oǴ;Ӣohe C]Bx45cfId25H4TC󤯪l8atfT`VV0)S ?(y :pn4ul9VE-$%iQ`ǎo_7ڀq¬)RU\ݭHU%(&I##n2XL J:ⅳ|hx7imQAU( .-ֆXcźy=8'>PZB" & $&̥؂ ,X:-c4qUz=,#kk\=lnc:)[ϟDQVyEA*4]u)#F ȹjeΝ?K3h~r5[+W ,˸;9 R`:ys.h)+4wH"xG>TBM@G7IRI{lڀ,uWN-"@5RyדhF#CPsdJזh&)##ƥ )QҦ4lJDq'Ci,VDR`i.37fn!58_a͌Rh4E](T  t9^d@աn* -jq E%|$*-v+"jSEikiO{Bp1ѰϹK$yjx=;GcTH77|[1G39ƀ[S9>۾<F9R5.l5G o~rLso+q'H)5Zw!~ս`׃Øh%RTYY!S!p$ibZ2Xg=Ye47(MQC@C.=TiUC4k2uAWQcGʈ&J`{Ki!TLmg$NhR< [mhvC¡?)Z<,ORQ<'۬16"Jq*)kKpm0oڦ{ΟHQUDiEx;ovtmDe`0%X wVNߴ_gy੧2dY %Ӣ$ %%ɤ4cR*fEҗlmX_FEeQ u=vN)PQB(4t[-ƳI$Z`8déǙ)L RxpR d uƑXFBK\Eƴq\ڵ\:eeq=1+h(iIky'Ѱ WHy"HP=iL-Yji;sk/1VȲ+B'R4KXeՐD8#gmn`(Li gKnj Ŭ݊tsK14!:yĒWsh!-X` +?eJVCG7L&dYFd2uH$xކ-׮]֛nƺcKnv)kǖ647f~_kcjsB f!=1逸3ēN;~8?+yyg馛8v{}ٯyߗkս`׋t@HK{V5޲zZ<(2x_ 'SZv;'I#("8jXZ^-Q1U|L sum:n9BKD㜡.HJDe)ALU5(!²LuNH<-z${z{t-DJhۛ錋/39~K7H9& أa!qʰO<͋/5X"$Yg LU87NqRkSӚv2=f1mnaӧYEhUSf%5yz0\ppJʲn,ic6ǎdscctvM:e:}5}ZQՁI08Q 8qQI13TT xL*"M鈭%bʲZJaG "Dq)$J 4(q&&:)QP!Be)iuä&jҠDXk8M3̨J1) \f6xs@\BU,/ql{oK"-Ng:K;|K< d i8 L IlfkfECm,K%z]iAIXg$ J#'/f,X`= :ŗ>E9}H#\HI"!38ncnNyΔtb2˽ԥ.KL]!{K]tڒ}۝|}=[r)货ipcb1GS&0+ ee'LgS DJ8"M2fӒٴ[pJd|K kY]AG]SnYz n8Eʆ,UpqĿ ?3#.]ϻt4np{]FW fmC%lFctWKzm3.]wPQ`L#8/" .^y8y+[|Kҙ j,Jy\ -Gh817JŒ4k$ByT4Mq< %q5^FIkOjBD>{.\rJGew_`2W<.W k#T鄪Xv8}q\#i4^..<苔ds۫qKj)khnN*BhG IT/k>svu` ,xY] n~)ʲ$b 3CKO$>)m=.i8uZkΝ;֊μ?Olkq88s()GՔ"QYy|^[t??گя~k-{/_}__Cnnf<~;gAn:V\ \oBn8wI"Rkj=$sdHU74EEe$xmQ֚s\6C)<yB } ("RJTu$֚dt:e}cc, 6ڥ݊0;< ,-R84R&E4 Meqސ [Rzh3o[Wny$tV15%/$Q:ՉIbZ1밵iT >g3^78x'"YbJK$lx+jNU J%v6)cc{Y C!ј8'k5 Oo9UW~y[_KM<5Ν7fgkc̼h0o[ !_仾MF]5ytJeB*\2 7vѿ4[ǹ|BD@FCj`r=> |M\p'O~V)? xzd3Yy@m@猦}l/SzzLuDJ"%,-̦TuE=vAYZ"|`:+X^^Fs`6+gKN.Ql`8 9jʅ {d"4kK CI5q"Br8) A"HRetjLyq}lSkUmy"4BZz.YI?54Hxu5!䖻 eQa&877RRIp[vJGj({X[pxw15'aVL.XkB'xc"kyd3A]K =B Z )19f.$ũdu-cc-A0aa̕}Bm`8wةS?oY`WxY?Z+K Z ʪa2B)+FKq…>}Ge468DK;uqL\slH@E4 v$eQ"9"gR'SMg^qЯii|ln/[n1H6Y':h%&"¹ޣ!Lhefŋ爴bJ5@9VF֕t:U bV2 aHKku;Kzٳ9{%OyogX0|b6Ťa0  i#5+0#RLim,3A!d /?1>ig?CY&atRKq¬b tƣ~u)b|D3 &Rk-hK8: %ƹA@8!bX#A 4McaqNN1$ Vh%6`!$(l\gFi1Mʂ^αufeh4FtfV/]p;NRqUN+AEѿpHs7fPEO8J\< ,X`מta?RE IDAT1u??KOޒ$-Ƴ7wi/wyo}78%.%!V !ܹs>}.#Jo g,['T5wx)MMUN ]eey~I0rsó`` Vz$i@7KfbZTL0S5{66Qʕ=hS֚iQGwA(Ț3ECdTME%Y&_{)֤ILxh-b%keXk'h#@:eXx̀vm+z-jBt•y4#CgG08&8?!\I0^u[N`{KۯYYm1+ B&00N].G1iMcTz.6IMkȘ='K=QE-7L&3#ܓ̦5Y=B(uXR#dΑǍI{=(%0FT`4H#兠foGgѤB Ee5Rq"##Dpvv!Ew5ZiD#$1Ȳ<_̙]{zS7O(s?O&|%T!Z9+7,,X` ^+u׿&v|%sp;Y͙5儢j#>#RRVqsn'Xv9Nj:Q!AJgJH λR1ٌRU~yIz+ pd48V{HӔQ4&ǒ@U Y["58A=4. =۹$i8\ݳDqVΉ(NOg3+ ?'1Y8%rRRfue$Դ  *IlV},)=p0ʥ>K۬lp9f'll?L*X'R#J"\XPyng/>"C C*CF,u3L%>4DBi cKc=@9uvn vȓ #4D(0N2 j c5LcH$$p@ YEmxoh1mݔ,Q׎E\NUpHwʂ(>v#>ܴU&>egBN#id2!Nfe9[GX Rɗ ,X`_+ :O~|#:ΐ~3)P$EI(N oιW9\'1xO:b&W^f6g[?bJ3$iNw}߿iM{: wjrvwc(X !ģH1Xr"!a%!XI" D9 FQpX6`GvnTUVխ{3}ȃu v ^{Ho~*;;;_~6@L k=]cC%WێXaYo׌G~dO9A!Y!hE;|Lhׁ+-&O\6}141jF s!A򬠷=! $B(Zk1:GiC Ⰲ?>*G "#Ōbo~,}oy) mǾU'O^{URXq|Z"ELDt)cj?3!"!:wX/Ymuz%$ R!\Q޶[֒ATtPC ^dzpq@c2f3zӑHێAɩezoz퐃"$OY&QHhg(Cd*\%BCngggggggd7:a~":\q{Oٻ:WBc2AL I|>G+ E#?W [>S5{ .z>οD"%f5&\h]0"G+d}ϓ+N;B~ZCȄ@4 Lւ(XP.u@ ;lJ6Hh!W9Y؛f`ul-,Jɏ \6)DL^pqrŇ^{,1q`o%׮%nߺN,XV(%8;`jN!DB Vyzn^\;'· H)pC2Q*ܶe>J1#b}oT{"ENYХ3,12mrmW+]H-eϸ⽇d! o ^.I_>utNYԞy8Y7_ď8Y9fo_ӿA??)$F> =ADLLS˚'OOi{MۺGJ6-JiB ńËw!mבb"f ertͦrbT|N]w9 Ȉ i9az9=]faк$Dz݃H)_w=JA9I&3tMK;BSrM$Kğ Rk>ǰ/蟯{NIPe%]ST?a?Y `LMhkGn$1y2J=Ji$ ;\.iLf2(-mGlQQ%WcV8۾Aja+/][dq֒hY KݛR 1yYQ7 r_)|q(+C"d<23U\,/yWyuDyc$1EB/hFJz8`!_Zɦm6:h>WPd`hfZg7P2$H#hUczͨ1&{J)>ZM|3od2LCx,W^;O套ٶ?=CKV,K(2H+51IshcX7G@n,s4k}9{]w=(f -"d`qՠ"7SNηl>>Rul? -}L+42ÇO/lx;;;;;;;;_k_1FQʂ`4[{sLD_??Ϗ?նTEA??2/2LLޢ'ӑy+xs|*He5"JIgM۠@$@P#b## Mreqp0(#m[l:t6dͶ%, <ǹEs=g2Hpy;Dh1Ye FF|B|oDY~xs\pq‡ĶnM*Dr<|p1_(3quRڢAf|owp!Ԝ{wn%O^aLR 1l6Cb8ұ$٘ͪj/=O|ǹvc ^;i6\߯x[8_!"S%f&|=y|%ywʛK󅯼Au(%Op t2Ɲ{XjM2ߛ1Uwo#dm[71U1f{LɸWn^_qr|4ӑlAGi Jyf@ED`2Vܸ>&R$@fB$8Esr!!BH$mnszՒ'{.Y/IR]/߿ZRÆEbx9Ն`[rַwoιXlyvŶ hqήϟ0w{5b!QI&{!9@hggggggko7C]N_iԟA\әDZ޿'bY6m$_.xo]_<#DhL k>{<{ғ?ɗ>9o3~ xH9C Dk,׎FpYa1 1BѴG-xz'|* k2۞%%k~$~'x=~o=>>菽$x(f[CrAO Q惧lEdAK|*GIv"`8EQ8< c41: hɍ`tǻ[>ٴ(3M %1 pP[ڦ!Ta=8[cLF#VEM&BlXfmh" (b-!a6fلRZKf{=) XPBAM'biۀ ߉x BGk=eSMs{O\9M@nIR @RC #xSrq΃$(0oDD@÷"arrrJ|ÉXZr999*KfO'XmzFc)ZMGb(%I/?9ؓ!8_6!)RIp;6$ I]n8relm!+`\2\?v- dyAVdTU6l[ڦ¯f²Z"dl6Cժ(v-e5s7pv)1XPJw?;;;;;;;_~#ƯS_/o~  DRjP ,G:$!K| Rȟa~/QwvvCv n fPזg' zKB T"R*B?* EYP(!B 'Dfmͭd Jhb(mJCyLCTBIO!q\\9 n! ώRtvsI9Rh;=썸u{)Qx4(*LHȔYO\6\Եû1"Çs|sI"F +͝(HQaHňQ y5bhl2R1*s6M"“-Fxv9]ųKK%9tـFZk}aBD+WCPU/Fz?[0ё $_›d) Bdh [CkPJsW+HHɒ%{Մ`b QAL% BK Ds#RH)ɴCFX|L! EI$4|' ٸ a&ӑ"%rU.#ޝD8u}@GForDAp)v9G1,Yq?}Ǐwv%ϟssoⲦp A!H%JB@9%wH(˒Hb4{ MѴg(("H4X"B&45:1-bϿw( %$ MFi;~楻#ޭ?+dʈ)P7Խ@%6BdSDѣD$EOY>>[78K6u d@o IDAT=oݚHx6 Zf`9=B˜L@tG lkƌNNXۑc& k=^E4MK^Xm>wykH%FG@_Jo4?kIJ{qɍ<~$WMO}/k|G?GGR"ɋ 6/6?tȭE'B lWu}ov۾?'| [,/CBJGsr4e d2|cu ?oQG5:+H1PV7*c(J: v\,U񘃽~LOX,7_?89|ysE+o] 3tD(%1G+A ,zχSN$99 QE TΡrJbNa$ R)rM IR(HRZAeL ?\\1Ϲ~4h< zB$ƈR;b4HQ`Sd:*g:Uhᱮd`#I1C>iږ4Z ƣVtϨ3ws9F;d4MHh j3g|'_ y..7$۶󱏾B,x !نjqjvW@Bj7=|wg|^ HQ\\yJdx ]mD%F'F1i&>O9GAYIR:|, m*zkA#pM't햼(GAd4uOD $!zҌ[^T@xFr8孇gSͰQ!sK$Gz[TQ:H%5ڔdmeۍH6XYt6%/R̦U %z,Q riXkAFA"mp1TІ:yO\i$(%espu[R(. ( .<#kigL&s!Axq)oR ejq.X#@ g(%IH(r^{yn<sxDHA=6t%z0x}2tMɆM'hjG*bk!aC-NaR0)oW^ɊǏ/X.ֱLsֈ|[/Rtfcyc\,Nw'kNO.feFzv?8g 79OD ;,Xrxhh pyE dJy|z*) D n . Ն/\2 ljK[$R(,' ޓD@d2!xKݐeHIDU2 @Uيf#Ȁ; y( G;ڕ{#ƕcvI$tnLƷ$%:fŊ"Gc 2KAr|隀>XԮGk41A <  \-B1x8>^]@ "P%yѵnh H$>xʥ"ňP<]3EN/jRR()"JgH!ZtFJxPQ@2DU99UQq>$7pUdKڦeirE+,v뚐hf a(ȴmKL\GYd%ώܒZ,+J1AqppWk+/̸~x{׌&s>ZXmA ƣ<78d>a:V]bռY-z $)[lx|wnglV8f28 t 9b hggg(qA:A$)D\PDc@IH!x0H H&"ωB4S,0Z#"DZRmp1HXaTh T#ʹSGO^Ըt¸m˚mF`"BER34j,O fWl7Sfdu#|dBĔp#4TћD !Py#E68 ཧwB(' by2(F*"hK-}@GHV9QйDĤ3c zMy.*PUٛ̀G@J9˫" ˞$)jS@=E( rK^w"ABGL̦9߯~m4o~ +S!Izg2K1L8!ŀPdm7ΨWڧ;h)zޜ+l+l쀺k x''[u,W gDX- >D. 1 =<|Gt0m&}FJÃ{wnr:g^9FX\Qo" $ф.I$Cg|@;;;;ߨP Pg; EB!DH1@E\[̧tmK {2f}O#&pޣb*7-ѓe9hF߭x ޽|Ӈ^'/I1jqto҂j!Dg[;Pad2^ukKs[Z4(H)0b'BJMH RZ>RD GJohBLp`4* AI\jfj2t}Gb ySD`Eȭۇܺ>)gY,ChL&[7?v--WWdĠhFHJGhȲ<=?#"='&Pd! jDQ9RDl{\m;V-}0?bA}F}FjE9w>>e ~;|];ڵ=>~HfॗpxOC_Q@[o'[t$y!tBHo NDŽT唾[s~Ng1 l,[ +n jh) &lk11v4] )%ZKH`o6%FG %IEUlWW#Re6'4HcTdPi]7 E؟кd%N MScpµ=Քw;ejY\lH(SvGj#Ӫ,4Vԍ {X1y&R(#H!: ,QG2\ay9MT#Қ"JI2S`2(gN s=y(!0y;dsڱm{"povд-U1Ho-:{1 R27+}r_9A5!9 ޙ0.>g eU{'z$BhwĔx!J\(o9ܫ8<Æu]#b]sMSs3zq|aQRs!~d:0ܿOUy}nT`ѹa/q΃g V麚 BTE{u5uqY?!g(JCJ"ԆF 1'’iPv]k;ܾu[GO؛O2Dg"B2ާ=yX6<|PS y^btf-7{w+YzNgnefM*vK&В-paY` 62ĝVVN nBB7Zj`!`S4%"Y5TwEɜ$& syy~O9bՎ+:gUHqz^z^'@K)iB <('HjE( eb"R G veR7)|خmj,a3mkdGl6+&7!4->bŒGO%qoħ?*|ăGd@9va1 :p UYc4\k.ZNh@1HiE$TMQHB*m!:dH( Hz";BZk3d\`MSh?'iJ$]gl =RjJ( :ގh6ζTg"k|'ֻLFWv`BkպٓÁb0JЉg: vqva~ձ%nְ?pǻD'qa >m[b N M xB<-JA hHd2,xsns#,Qa{4$i5 yR'Ć,KGyRZ,{{n}) ~x9#%,u`I =VeU='$*-5c?b:1$R ;lC)E!>Z3ζ,%V vOBb{}~8^Q @^,FϓԵ%@ pΑ$tj|A:h"]d umlk:u8ɥvP S@Y2A2ۚB4mg!88|j76 ܽ<8Ih|t ]\3blYRm]3 ᔦU Y,0J)YjT%>@X$mk@%<7(#^h"Ycv,nHZm֣%(G@+Zq|,qxxZt֡5LsRjŅphGrnc|X-h]b`oBg-$I28t?`0( /@Y NOV{#EFQX*KRδ`8Hhzii$K1I1)Ն0(rբbVoaDyz?j}~ α^Zrpw4h4|CɲlHGɲ!mo,18縸 GRL BB )34GZzc 6F:אL39& Wg_qq!DM6$Ap>yN/Zf@J Q G\ )=u аX;D)wȲ K.jF1N /ܸ~+.,.J6jNvr9Wst`茲 nƘ8~HmlǬc³gW(!Wv>y@ ٙLy:Ilf48;.OXtMIoGM]$v|a_N89 KKQnJMKv&HJ dG'l02# hchRX,i[G J SzRq;)_zZ_z`LҔM4֣bA5 \\ քi7k.u`@iHӔDBc@!HJBк@c-&EF砱5I twR.hb0Bi ߆f(-QJ3, ZӹJklp8 !T@) gD"Q"Fm 5])I]@G Zn FB&uRE,h]AFwB~EbTdj&x]#CA$y8vwCĖ8;[2[TtN"U0O\?uv|ɚ' ,p#5uG ɶ#hag4bdS.Hp1,&};cC4|[OXH ywzuŦ\pp0``S궥<;@1|FCE$eowR o ]; u./ޝrF^y׮sV+ŦkNN86!/4Q^s_9DG8/x'FnQD |~ƫbE5ܼu,W yMW(hZxR DKD:|tZ犪HCDIWz?ǯ}gxhۖ}vvvxWԧ>>9~~#zCDIALh|gq%!΍ IDATmj4A&D lkQBRRb82,RJAiP,_R`E (I|˵>v7Thx٬m0We$I(7Z_ZmH>b`+P(J8 l$Q@6(Vj"!Vx]w];jۅmQ(lk;sxHA8/~fy vT-1ta] KslIv%UU %連(cXd$SNO%0UJ@kGP:5"p6O 2I<~ck=:ĸ9dw61Zh8~h߾ygs]Gʄ+.f5Ფ-{~.ͯp^R:xܸyɚÃ]K B`<ጺܼq!r.g 3ؙr.YKFP;%kG\?'`71:2,W-iWԥubMߟRlʎ犢hټA$x iq7ei 1E)u Q~|zk_kݿ]V]D\^^2XV_1Fʯ~}(^*xZ <%GQmk[ ΁d!3!aSlnAFf61 QJv-ᐶnhۖ45(%K@K֑rP`؝8'|Gl6#<L&S@*l5: wȶj"v+ Z4IHREb :kiZ+xkIR2,OmT#ifbGVBt(-G 28(hX1H)AHy1/ OŶʤ udg2f/Ƞ)1I*,QqW|;w~X*6yеf/ۿzD?}e@bۂR)"U]ǨIBv6 Ji1MS%):$nmRHA`hRx1D Ɠ UɓsbIk=r p!#h@Yf%@I 9Q)YV`wk-!R$:2KB;iebYR-=ZaF5۱Js5sSfmɺq1HT-opt}JVJ^{`cW/XW)U' DI P*%RBݽ;Gר)|PMYHaZ!!up8!SW0ɷ?a$'K "26"Ȍ+񸰡n!1cB0T"ψC ]]atdR;OY6!dxےf)(H)I \zSՑ!Z(!S$*b%[]}wܸq[׹smR=[$I3:Z8rynLvFYv\WH \]XW >3$J)6eK$fbNv2'A z^/}K.w0,?#ƣ1bo0n3pGg>19goo;;?#z  !cM6)i;PZ1X۠;V4Ohz&f@8@^oZxBH$ûI7a49ag<"OSlΥhPÔv&њ`J,zxeǺ,B$Uu$M4J*$'M$Bqzᘃ)iFh" 4Mϋ@ ĠT6,tB +GS l[00Z RB)s|oD|˚($i RjG;&5 k# to;Aik=Ybqt3\;p^ >ϧ>~To˒gHcc$ Im)w>MzցH霧]n^!P+v)];d4H8?3쒚ArpmͫSgT ǷY.K<{/v %7vX7l6 GGY#:WȌsH[WΡf6Cvwwxv2eR\ެOs^}{s5_1dtmS5 pnFtu˳ggxxՐg6/z^A @?bo_y7PJamh[ǸjMS7xN?xHSܸq=O! Y!_WO~|Ľ^k,gh D )uXp!0_,%LacDQP+PJ\ۇ{G|“ephJ& J<肏6X$ DRL Dl]#q} DlyDQ5%!z+bٲ^5XP64@&!DA&+!4zk%I~8-FHh~[t("b =?ub(bD P݉#Fӌo~\^դ8V@3&dÂdIk]P&K@Dڶ#l[.nH$5k׆ܾ3a4uBaooDJ,Ye2B%TmC挆Yd2mrA 2@1hI#{;ӳm'F r٬={Jx&aog}oUEp"CKp s,Ŷ r ]P{ "߹p씪n'aFTWܸ~I89_ l=|7yb[zm[JiQFnjL2ԍñͩJǶK0^xt f{;OҔ-(Ykщetƒ(z^~Dvt])F}OqvwFM&Lc}Oux-`.xu>~GOq&Azz<z@ c!xyM!!"I;;SBth" yr!H' :ݾ&M$!GcNO,2pU.<{0^ m,uu]x Uԭ=u;%MmP؎͂(HFd!Bam@ n#Im(pЁP|}xc84Ĩh%I!E)19i1^?_ i FK fAGN?짹w>X1>D6ME@*`{RnBa>0ɇ+DW_,dyf4L Exvs#M̩ FJ8Cұ^15DrvBZ/8:HHD Wtu˺id1߰^WKdR]~|z#[o/|x!"Ij:K:~g>kwoqp;7́ e~}k=?e:Ȓ{ $m9/GHD+hT!+rEKAm$Hgַ$yB!%i^P55"DkvwG q%I,5M˽wmCSw%Im$%]miPVDF[H-"g4CRꦡm*vܾ']qVm@@ƈ֑<2-;A*KEeESv,Dh<KfR2cPcc7!Jˠ!ga4d8)+n8$ˠZp]GSUm>8?O(7<cQzb^z.)7 MKW  dhH9'->X |(2u^ye^ 0 n2[<`uՁتcgg. Ksޙ򉟺eMYYf:)&%;=&I$i{ҝ[>*P $Mpq>cXHmImDRI@Bb@z^/~l6dIRpqm^{(|Ce1iBUUH<':f6_!o~<)pncd^|_q^$ضxBm 42DPV-i"i$ q$Y )iR"aZsvb]vH6Ęa$g B#h 18kHRIlQaf8PUV$Fَ:"cP ixHΎ@wz^! @?d_җ t-1>bݻǼ+ AA)E)%&)Y9ǭCfˊmy#~+oP,K6o&[o1E$h_R IZW46! 2AQl;B09Z)[Ϙ $e4$&K3BJOT$*RuZ[M D,B:tm :1Irfq ! ɃO8}zzQzD ) Jk#R{4"l)Hk% fB bJ@@%7NY-/%M=WgkN6\-e;D(!%!1$%5 ȳp|GJAk+>xCrɧNhҬ|{4Mf3$8l`CȈ4S Di"ȳ=Fp>eU'p|9pu 2韞rvilRm($4z޷MGf/X|!?ٛ47L^}(c8PZQgg3H\(p>\0fL\<_=_O k#EL%D;FiXmk@$𼫬z^~/J)bn/p|㈃=dy /dYF۶)^C>)%毿*+G_2+g?iz_gӜ9KK@%m:) F GZkJ;!6Z)LnmY [W8HMH:6!"]@k·CrHy|6,8r-&ɱ65"z >l{DŪb 4-ӌX\م'JpֈAa8vf:6 ("$Q"ƈuQRD,$vLk64Cij$ͧ| ZCgKЄ!Z'uB"vB92H iB=x;;b.Gǯ1{`EU̲V$Q$F+5=tbL͉ӄ{٧O/.H3FF;i-"0:E S=|9ۏh[GUׄA$QMUc9-,f3ڀ`M˕=Sf9խ?ҍS6yihꚃ0Be&sN `c}d]ɫE %7Ld] ј1٢B B&ݝ-L0M}]?a4Z[IcA/3Zf8dlU*t<#O"P$畯3#<ʍ gCl PHʜH-7B),+P7c%΂jg-VxZ@KHں mkhS7 I#tjXȓZ21OI":ɘ Bl]{ Mx _qr Cw˗7y+noXdշmC2tDZ' [ qmlo5]3G̋n4Nqt *řNb1dВa/dwo59BldYL>_GKc%wܻƧ})IniItӖ@KGd&47F$0 ure#BvLcF U0>b]B]701pp@3zioтENe(x24$BQ7KƬ]M[YYYYYYy@/I_0C)EYAe֚8IP:F9xf5@1{t^?3.:(]<}߿ A`i & 8ںFxG!EB) ԲDִXk A( j3, I\`و|nBRcڵ#NJ6$ 5Z8YLjw>AK![ ? ڠ$lonpm}p c9$1xc,YIQ$#7!u9t;kN 0>65 n^CHgPҀղGP DSh.? kh!CdYLFfAHK'"^bqrzDQMpR$ 'ed<WYfND#e:R0:/yk\Lfll^B`mHYdD(PZA tBP7^G*Jĉ?K7yI mλ䵯{MUsv !Ŵ_& E(HdI3 Mvň;Ic lєn/gm{l1z1gSGXxxʶ6Wӟ*h9c:8 ;" 9E ++++++++/U?/)BZu?O߈0 eO$B\RG1qrtC$Jc7NuO~75LIy{6|-Xf 0/Z/f%t{,n88 @G3@8XR7s֠nW|KGdqL/Uӟ=g>!$ ˗/cIJ,˞>:LBlVIN& %Y]{s,+fN1>_0:dRW+Y6t)lh(g5'sΦ .P `2>cI${SZP0Ɛ mB"V\n րa_,ٴ0X됤AqB"%%i$,bPE$ƻc]*8C'[6z%IN,f- wݳEIk,`M\_0,m%$)s"Dà/ u@>׌5E Sʢ%N!b!Q p38:`hpS%9M]=ZG]& 6]P-|CTt$xb#Ж'"DccC (ꖼ(^0t:% =AG0X:!M=tyN2ωK-=^٢!tDQTmo板ț*>0UKF&u.mOlqgm~~+w^}|>Co|o[r,"( Q 1xg:1~F4d $YN#u0a.q&BMjYLH^~?DÒ%CҴV( *#iC۴H%R! ZkExuM3I *hkm=EM"n-yY}CekED]6,͍ -$#9>8fr>:b\3{JMKU,HcA'"P㋒QVմf9 xgPx/6{T QZbǘgh EQQ:B)ak+% 5Xp~{H XS65emPz~LA $_sFO?=wx;ݼ{}>~m5?]a~bt[[Q*md$H;W0g^2+ʯ h>C=oo}=Ï菾6y衇xY,7;+?>F/*!5NJPmTUD iP2 Br$cl* M^m}$U3G<\dA%DYta8=?,FѺ3sIId8'L&x5 ibFֱ !NTR UahZP4V z]1_jV-^[tHtvxez~ZGjnF眝O;v6;K\D"c+>cΐ";n6_v'>F"hعt `61/v{W bySF#,i1GgA}]!M"l 5u xK A#wktk a`2W&9A6;Ha@f-%99_Ԩ텄dYU,aP[8 I! !T 'bd@s|zxrBwX-Iz(X3#Kĉe$i=U U)ki1pBW_'`6*b|U#CH/*t |W? xoB?@=qm<A2=;'/H CK[;AKPܶwYqyw h^V>[_Է|˷pw]|o;?s?G۶!!IZf @I#ءE J8)Z* ;{[X/TӂŢu7O^Kψpە >sSQB!G@q$R%Mc,mm5M/l3L岷PpRT ..Jv3kWԕټd p?uSV8qqv]wld$ ti|ӧ\Dt:$,{Э 366Da1kJpr(,Bz"jc1u:#K,$N8:YH(-aO|we3l,ܢ!!iҶS6,Ce :.ōS,X_ %I%[=}7NY[:޶iqt+2Aifm73l1"UưGos˗׸q|YZ#ʃNGD!ggkMƋh¹oz$R[amM?G7}כg֢cg60Ψ( `qU./~ AQ4 L Nfėcjo-oy ?07//7|?ozӛ9OOdO۶=9;;ckkm||/[V[}c<\t__^{^Oof~4MoՑRb2i EUxr9&,s8R9q0H z4@xZ$@彄41rt*q<9a]xॣ !oZhaP/4UA_1@{E#3d.֔G3uMYTЉF"2V5 JHgbkV5S*uc< 0 L7 T8T5ׯ[cfd"ݎVpp8BN4,L]nqwWU\rE3Lx{oooow| _5){0w=/WV^N^? XfV*K(({w h24mc,Db6%hĠ,Rg%BjڒO bUKSx&$Nu@ɀr4mk($c6\v]DEcrq΢\ˀ(h{U=J+w40-dqRW )Kf"c, !N[HY- $Aɔ3G -BlmF]nXN5q$餎4nc RMmE, ̜4 Psh3OٿmnZz݌Ŕ?8'"^-%I f<]P9m켠=mSq~^Pu'g%D.;޳lm1rr|dw{YcP!0mK,A@YLyip3KJ^Ac+t q٧o!_K98s=W\590$ixNUEE({1( 9ԲeI'1LJ#$I"(JKI0~y\+Q>4@*`*%>v׸JW޷ W_BO% b4tw}7occ}lt/r @UK쭯q6/Y"v9k-HLC Uf?{y蔢177+=n?/<1>cdh0?Uz9> 7n`kk|< CwcZ!/GGeye㜦Y7{X IDATbQ5XS !a}-Ŋ`YU鉔"g3= (jOՔ= -VyA ^M@_N` Ĺ,0\ZL#$RX@R(N!BE3,)Kz^Ѷ 4dq:MS"t֐@ Xsr:k>JE2sx L lYBq}O.ZŠIQU`ô%[@IC:!iOLkⳒuVc8䂋Bi̝ot8<೟y0M-eٿrɹ*;ihl4F9e~Hy0(ֲNsںi0]2_llnumOjPݽMr~<#T},(q>^`M! d<_F-vjqvgƬ3:vv{l+Kk%gg4 ҈+eYް֋"3Bfs+esbFILc46 mmS/YEkEx>U=m,kddbLEyoprZ3p6)mmJfN!T8|-V[hN>ϴ+Wp"$LR5X,88=?`w R91ICkM8ְw+~I򛣖_o׼5_2^rdO|u]}K)_xK$EkpZK_qC(Vt{x9pN 8kp i[Y:1:&(@HpvZ/', 젃O"U@# RESh1Z+pRa@8|Ä0J鈋ɔ5h/4BJq x o#I*ohn=UP /Ky!ZO:.b穧O0!9x@en:wݱ5IAU NFch R]3>uUz xQVGPU5i*gϸ#P'<+ֆ[}гɧGϡdEĴ6 /r}~Ċ, icMEz!" ZtEN-Ej+ [I]{RpzZ& u^Ipq~|&܄0 dݐ,뢵f2q1I$ Nt]SSEQ%!W7I€hs)5ј^G1QX!i ti֧_g眞θ8i }sqH/AuaQ0e4ܸqJS{׷Yٿy`B]GF)' .:68_jWcWVVVVVVnUP/!'50ƋtgQ=&3$KݽD $Nz䓇c+)GGll zuiwiJp-L]"li=yT,`XZ8/ˆ6HEHmr"mZFsq̦ vvvtiCʐ|QWl\qpphtN).Lg t kN\v@E\O̱д$99weOc'nޯZ@-pw0eKkNsH)_hן+:)QC@B"u@ץ* Hh/>q-/{;2co|h>y[]]}'xtϾ쩧};;;iG>{>[텋ϏFD*V@K#1aR@y8?, 5(Z2 SH%$i 3:@hHP&k4Ytbk4MM^D`%,j'#Qp-Zzvh`s4 )MJ ,, !4u 4R 6A4'N4Y=_^;{!K;0(hjOi% @),9y:"$q p-e1!g /MUI.n,MF}ۏ܌K*N/JS1d]+lllo.G'fDb^1-H7Su>+kɢ! q( (A={JFHp|zFEK'ŋ,i4g6̦{yxs\.r=dRtBo`b4+<^|A/~!|V[൯}-?hxVJ}>;~⇸vpB]%J"dkqQ%NB( nzBu99Ȳ<|I"z< C=c=;ο׾~Gy 4Mr ł??;;?֚=y[[[|7|FBZY *$ "nH5-0 ̰9D# Qhq MX_4*yh4Mb"( Q)&Q!J4~Yfkus~TwM0:LόяԹnw}=# y4ۖ8N\N=a&&~Sk|F#ZR︤t0RV]8jS7-yNLFYKGQX4=\!YهSְ}(qY2t _Ĥh Z[l ;$I05*~ "fQT 2dz{~͖":vd zs,& Clhӯ^SV;HS4(=N@?333VYv,fPNZ;U|&y֬YF' y-DQD4@4hϣVJ.d2?X:;Ir> 㣕NH$k|Y€ȲG.nu[bjK; 4ۆ;pqiڠ, Sd,?JqϷY2~c)4 )S*֮][$YI>Yf,[M&jR9G)_"B sWz4H?gh8Q~@$`Si;<6-e6`RBգ!B =N;4`OcUs?ᡭg?n ,=ܽ3<)F׫1FXf-ь w~3Ju[$Dmܸk~|_&>/| 9v.W_}57|3kZvZ9V^ͥ^u]ǵ^˩g^."* .H,Y)ɓNB= J(wg1IHJZ&qji SIVz#sarE@h2>qH ~JNvb\ǧdPE)v6 lj(d] ~HĦ=0`0ܟeٰ$ԛMV"J\jQA;A6j*(1ĢK"5 CKJv=ӓWfxluz3RYT߳Fb#رF3Q&HZ4aB؉ ;|F#^!;u01( -T=C~w믿;1S PXrm,ybmJFinixK)\5s!˕PLj^H{!RJ8!&XKupSc5Q鄑˖e*YgX$Gb,ւcvD'dlؘDjZ_k"BZF9R)CIa;Bqb,:hV }}YCh4 cyT,lt۬]Fcb %_(0=36d֏Xbb1Ocع{v /`Jhs},[.vcͪ!:lMߒt&>&pS Ji) bL&C;l&Mʕ FH%6z+[2s_%^B! >C.Ͼ-b>qST*iB܉p}L{$vvαIr *[*t@+<7xn·Y)\kDDW ˱'(=z=tISC' < J|.L&C!U&`r"XM!X:e2n HMy.l@5[O0[4uFGE  ,[1D_IR9KG;VB*C&&DNBb4U Cn%%*V3[Sk639$c4p 06Ko;Fu1+W1W`r|{zF=f``|Big1FYNyh-[v<-bxJyh #+V+Mv-EFF*|B!Iw}8Шe3W d4(+h6>{%ۏIh469vrN:qEO6DHYN:YrZ*V2 iGBBѣte"Cufr)fժ8AuT*vEuRd ]LM ۆ|>KaJ۷}80-fph$IdhLr K&RmLz0'\ON#&ffD7(EJ* Fm`u˗hMglq=ER!ɱ~:vAq1kXƒĩߏb:z o7qlx K v<["cЮOb6be%({;HR̰bR0ªUK;X@y9OeWf/ IDAT%l95kR5IRqqV,[JXvm2( }K<.ʕ Rv`rz;HE Yn oeIfȕ ˈVVg23y&G A;A\) kC;Z}RQJch0:6 /fR25Q#l')ӳ52KYf5n&Gв^4֮# x`/2w$*# LLLhN&Iж{zhKz$By<%k c;&2$)[j7p=vv \?GG(HҘ?ϱrCB<)jrXT w,+/w1ӚBu D$N2>V+f vO25ҌfZ$Њ;OPClZRD6hhwb uh41hqXfڐxX%jN`')1VvRCd &3 ȗRCn\>I=BQqi.jN)FYP/=fE/˺ @ƧȖ^B윘`əYquAjb:drfgX/KeՉ 1h ڨR(1t 2VYf-@E / _F'4;F҉c\ٖa_İ{ƫmrC$%[P7'w;-ڝ*F''iMGFS_>cx4![({b Z1D'M[)Wr:fʇj /gqʅXu8WѠ=-4Dvq,ah8 u3:nq)Q,d\R\`lM4aԢ\ ;h'K6qq C2 :QdE\ɢ,t2GB1[H5`JM=y8?| ʣՎylާfbF!"e:i1\:>Sa 4dxvvmLFj|1Gӱhb4{0Uo23;C+1$EN&vcl#|.,q’$RZj yؑԪ8Za #KhQ*^2٬yxiJ5` R㦚S2Bzզ$ZݦP= nqfl=:Cn O5C0'dfݱ<6K'7t W`fvbsi*!JYA.$&uXPtڄQ®Y^fp$Ʀ>*tӱ)&VTMW[]UZdH+~1pHSC}NP GeLe2%v~E!BIf;^p]wwA }ł|4wxdvX:2L6%4M ekX2sXVo˪mtϭ ;8e޺2sMug\;sx=등TC7S`L\e}?ԤhgJkgv6_uuM}_myJ);U z`Y/sەkWZ9e̽s۔gn;ƢNNdn̜淅t϶imwݝHSVNL={kj,V$i VϽ@0thZԐЭbÁ샼hG!8HdI!|euzxG!ju06S_ y3>=I$(P,ʡlt`sfFY4¤ !cR>kAd,)O+0v\o쨦s^uwܕ3J.im,}_ ߧ&WeX.w;\z=q-Kv nxcy}vP8eF?ٓYܬ yY7; lVNʝ^c6kz}_j~FͭޠݐPuO7t=ټ=a垯"eXn\_=-Ȓ{'0Yozn|n pztWkο׎IC%W/^Uwv~Pq~9CW;%j.Tt.KN䍧\N+B!8k_qʻC&Ð1q8 * cܗkE}>|fӳe8V<|WpgEI }'IB-?wwWNޫs%$jB=Hp*>[蜩#ozN*FR#7=_cLoGze1u}a_mg\YxG]>w~Z}+q8^Aߞzˬ͜{^g~{SJ*z@-4skOeLn3_ӭRPͅznS}Vk{m@{!齎R3{{37Sg{ge{36W߹5@-[0-9S/Zbu^ՏT!OTM*>pQp3WR.LYljwo׾~z.l 7rLILg(IScy%gub/I4b/ZbN^ ?ӫ$_#8(z=Z^Q !B Bg}|;{܁B 6a׮]Xk(}x_a(⊿[7t q<tşg؋-x7% w]H#đcioza RIx!BAClI.gw0HLwW7v.:Fۺ%RBڝFݤ\|؋*x Q@ qZSK#Bg@#0jħnw.'w}Ƈ':(dqX>ZHd3E^?y+/_[Bߎ?B.;X?!`A?OtoQV1se qtwj$IfSs9^}+9w_ ^ 8r or!뉄=! 7: | 97I?_ٽl۲ c,7o&N ,] O~/yi}!3hY7;, qdG!@3:3:c{!8(BY!@Bqq8:H#BCM !8BB!ҏ!B!Bq$H!B!('B!B!QN !B!B@B!B!G9 B!B!r !B!B$B!B!8I$B!BqH!B!('B!B!QN !B!B@B!B!G9 B!B!r !B!B$B!B!8I$B!BqH!B!('B!B!QN !B!B@B!B!G9 B!B!r("B!B!PƬl۶͛7yfn݊vQrYgo~[y׻ū_j:,.Bo<=~r)r)vi5ooV(Er ;w<=Fo=c !B!8rq`4f ثO;W^y%wy'_|1oۉ_׾K/(?1wk !B!@8mG-߹; |6lpP?<#͒f9S8s[B!B!90\.=y7'?Itu7>qO}׽u~{r-z݅o9묳8{jӟ4sۿG?QZ^q֭[KӔ5y ~ꪫ7c 7p{./}Ky^h4x_?eB!Bq0V,Yd .###?K^Zg?c0dǎtI|y\tM+d۶m|,^{-^z)_Wyֳ^'> v??p 7k.wwn+[n.w|;|3! G?ynV/ny[[oo97x#[ER٫4Myϱ˛.B!B@RĚ5kXf Rw{$`zիxk^Æ d2؝;wb}Th׾s1,[ /KiӦ>Rpg=~.Bرcfo~錄a.bnuV.2w|0 ׾EQ7_Ά Xb}{wEQ??uֱl2VN\=gxxed^ZV\B!B!^2ajzz 4vqX|9ZYN<=^B@7Zpkvv{^sN:c|sҥdYZ۶m%\һ?MS:z>Z-oO~__chh1۹s'Ƙ^طy]v$^flܸ[k.Z'po}{wo !B!8Itblll91ByOB8-l6)OJB??s n73\s ?OHӔ1>gKZ;䬳zr/>}$\WU|gzz>N>d2gqWŶmzc;'_̇>!v֙B!B#v9)BZiDt3aƍ\s5|_2l>| _x̱{u꫹ǵ^֚kr9zj.R:ZN=T8㌧]tApUW166F__\pOCWWU26lcsjOOԧ>şR,y+_.2j$ /| ԧ>;}{'K 6~zr^\xlڴ|B!B]"Ղ\_yz?(~$KdU@3::JZT*= !G۶mcժU !B!QBk}׻~'}? ɂ>,΂n\^h=4: ߖKqB!Bqt1B!B!rR$G8kzuB!8̏ *!BH$Ba>YO x$B#ykmg !B G)(A8 p'MS$!MS1 B!c>Z88A H!s 'c(q,硵z!Bc qn <?N$B|3_c! CRT*\W !B*QJ8dHzN$d2c櫁$dA!S c i!\\.ȽB!ujjd28ӫHӋ!??BA!B(\B@aH!k +lW!B}e2wc ![BfI|>B!GI*A@BqX?S*+B!Q*Ð4M+0"BFVcHu1&X~=Cpq9w_○B!Bٶm۶m[n<|#366G?&!}뮻zz\B)1b>ƒ)1j5j5ŦsצxGxѯ`:}O/ܶ,B![brr# HÁt|{ss@ݰGkzU@˧4o?l2‰ ڝJ9rys\:!B/Í1W4M&'F9n>k׀BC=<Nk͛KXv-7oy׻??ݐ+.cjj|#|Cooei6LNNu*|>Sqi|g!@[4 iA)Ph58`HSŘc JY07c|r~.]ʦgjjUױyN Z/_s Q~~zN:$_0pp]5A 4 c}?Bh7|3vc=Qfƍ\ph{ qF:,u]n^rJw(0 iZm6VwJ)v~33ɾB Y¢l*R[UhqAjm]W+VP_(RQ Bآ# e,aL&di l9spL9@nnIɦMعs']vo$::eee3g^z*L$++봣1;FXXXOsc{ v$rrr|瓟atСA$RSS1caSOѿI.RJբM61{\ |Vy;շ-`1 ݠU|2>?w1` lI$0(Fw)2-lnJDH0,X}䬿}vnVٴi˗/n_P\\̸q0MUVСC)--eٲe 4:v|Owlu~?eeeUa7o~`8RSSYhwqvOL85}b6nmFTTI_ Ǝ`́gꗈŨѯ#Fйs瓶l]III wf<3N֭ 1 ]vaY111o߾ʈ~QZZݻq\Ofj45}trss1c˖-bYj#FVAFAlx +˴iٱL'gb2l'-"" !<$ ͆);ϐ~}9p\-~'aR^d #$$G'￿^H} cȐ!$$$ƕW^rzjD#jɦM6;:q>lFXvr\ 6QQ\y6 )m5amXPxKKOh솉o~N' ,$l\bvY>Df3uaXedeQfUyᠬǏcY_v4z@DyڴiC.]tluwΠANZiU;ˣiӦ~&Ǚ1mU???˲ZmDD.&ټk_Bn'((thLIJ,,˪pKD̛7yǏLng$&&x0gĉڵu֝zY~=~dY!22(p87=bccq:x> fBՒn"I,`WF+{'>2Z4'>RF]s3LyGg2M[&ex)aP^TnUrk=_Jpp0M#)++#:4(ťx%~<7K~/Hlwn+XENNqqqg~GCVq…/ϲe+HKKSN̜94, &+-yD| sW^9mR1f#==۷}v7*)T ֬W>Fhp8͚4g\[ɞ=xˊ)cPepnO-p:# Bl6L *tz))-S|5߰p{S'q/`/*4<6={~zcݻMRR7p_;ԩS?y=z0{?_M뮻OÙ\CPP_|ѫW/7oNii){eÆ ѣ]s5x`֯_ϲe0MVZq 7ݻf;vgGC6d֮]ҥK CmrDDS?DGGꫯ$%%YfѾg~g1M)STi8+;AAA$&&ҲeK|Dlff&>A&4 4'?@_7VݨVr}lUZTz7C_M7̊+lAxX$nw1UzPO݉a30M6le-wo[r oK ͆sAR"#"I]pQSTTDhX0 X~ecg B#:*~Y&ΝKӧO۟ynʤIHII]vΐ!Cߙ1NJdd$v?_M@UVFxO2ni1o<x%zDDpN';;E׮])92JHHPff&8v;6[kl6;v,w?eUt_Y>[>SiJN\*}uR-ػwak6FSi/NFtTfa!::8&FS)߅YJ,Utg&NkZ-( 6*±̒۱|BR nXq@iP~_rիٺu+.ڵk$""V!"".77%DD.))),4mIJJ jH4 4T > .9ŞRuNn7#oba#2*xJKK?+x_3a,k,6wfG׏ieEE2,LÁi8N |>:\+}뮻?~<+V`۶m̘1޽{vɼy{$*+++c֬Y_L#Gru] 44v%\£>W\hsܹYRȃ>HXXyt۴io&?M6eذaEg宻bl޼={ЪU+{1[s!zOmXݎð^o̘1U NVVef8n);`ҥl߾5cbbb;ܹs%KI||Ue̢3RvJJ ?Yz5wuW1cưdɒ@~n-0驧⦛nb͚5=J?&"!!qw""""%j}ײD$!!Gm-::t§ 47 q<8n{s=xؾ{'Ho9)pRVVF$ʼ%II&6Æ4g@d6gf,;~gL~*kڴ)P9bժU|7Tl\ x3O<9STTtʶn6z:_JJ ={d 0cim,nݺ5Łu^zidڶmXv:\q߿zȅE Zױ_\cH߾]` RyG2o.]J넖\ݫ'0bü78p8mlؒ3)ysvׇ|B+|e_ʇ}Nvmҁ,sLEԧ\.I닊>kCll,7op9Qqq1w}7C {yL<#Xg}dd$Ql6[n?8={d̙5Tw8ZP@]"7"[Pr/ɞ={ʫL}tuɵmnKB8t{sJ'z -x9 BjB7F< f`8hC~ئؽgQBϩO]viii'OOOC?z? ]d;w$??x֭[ƞ={9hт0RSSLGL:yn:9Rk\.eYl߾=0z""""""Rw4C9G|m<'0E^Ɋo˭o+8^~ea2J"#kaX<7 S޵k(pSԩw3s88nLvar?H qns,!(INՏ9'2ydZh#X|9۷ogԩ?zvmlܸ;ɓ'ӣG;v ,,VZv6l[l8)0af">>={rQN9 tev5'*((`ݺuݛ(nJhhh`sl>|>A̻ヒi <(yUQbC ZгGv2/wq>L1o_o︲ooZ&Cw@ K1laCh޵3}jۑ#8]8'N; Hn Myt:1\IӰH[嗵c sN}ҥ f7+t֍?ϧs6x裏O;w.6֭[sדJ*-W|^zΡ/UKog{C\5t8br^90{sIݶxK-]vݺ`J"m[|*lAHc|1~>r<*bIxd(e%9'/!%jI߾}{`Jy5|>#X{w[ex}`G搐̘suøe❔z{wݤKZ$;NDx0.lv{ؕq-shGFv{v_}yDDDDDDD)T~rX.;r(wu[0z $4XQ IDATO<õF߼9_| ʼ<_[oEp0.4m҂g/fMv(t#Esp2a!Jؗu8\a4xN""Ґy<=ѣG/Q@" @""!Ûoɭʧ~Z, 2k,ϟOzzz?~xzE~~I<7t7tn7iVTu]Wc6D]b ~0rH?~~?e+?n7z[o=iی3ի_~eKD||GL8Cr5Osc?nv#<‘#GNoff&W]u}YMZ|n裀~iiѢO>d}#1%DD.b{9xGN{ի9s&&Mbs=PZZzҾe1mڴjՖ"=ff5Q@ `Ŋ,_~w8r DDmٲ_1zZ;WСC`/'++}Ѯ]Z;/~wjAM\{uqWsie|Iz-""l6O>.]0tP;FӦM2e ]to୷⡇⪫o;UV1v*裏(..}҇<xɞ-Z`YYYl۶pBCC0BCCk%. @""ab ֭[=j~a' ;wt駟Ozj1NZZ)WYfn: ޽;>(-[ܷr .TÙ0a7pYwq͛ǦM8r > ;Ο?O>Çse1i${αV\kP>s^/7t'O>Xϼyg $?|L4 ٳgӫW/ϟʕ+K/e 0JCe˖,Y-[[oUo%""p1ª$泲`߾}߿aÆv* ,^u̙K/T+{n,˪n@NN>#aСCJMMeƌSO=E;$H0v?%K9i޼y̽{yi߾=dƍ<'0|wÇyXnYLjj*III 6 4Y`ov3g2{l|>DK,aڵ$%%r7oׯ?i III!&&^{gҤI$&&D߾}ٵk> _u/_ΛoIhhh݁!==3f3p8{ǣ> OCxxx6xkĈtܹbCH111ݛt:q:׏޽{s*?͚5΅fB#DD^}?~.]ʵ^ի4iR yp'ڽ{76lO>P>T}͚5dffҪUj{q8Zz?U{˖- _ƍ8r1Z> 1hѢE8N?1{lpV(O2i$tBNN1mڴad~߱`w^y杴NDDʭZS S{Q"""NZ ,/Z={0s͚̚50 v܉"++6mTСC\eYqqq=zF]l*"##{_CǎO? /f,`u̲,5kF||cc=QER:^z)6]vo߾ҞbPR 8;T=reUIT$$"A||<'Nd׮][P||<WIT~\{޼yx<O΋/zʔ)v/^Lbbb!22(Ip8#bccq:x> I,`R?/J{=MV'ɟ6kw:³ZMnΝ;iҤ Ɂ׉#p*dddڬ(,ݶm۳j/== W^xN_~=^y'~3L駟ܕP9s*[ gVeƍXuNAq,Z(СCl޼M*$"(mY&LW^gl޼y`2(}YlW_}EZZiiitԉ3gV+Fzz:۷og y:x@""VZqW)z\,bժU;vgXEYY@`(wMx窴7rjtoߞ+V2qDN)Đ͜9s;Xx1wyg`x}QQӧO?elƍ[nbF`ӶWquɒ%7YաCz֭[0a}e޽Lvpt'N2eQyf-N:U-ݻYnK,aРAro~^~e/^L~oKYr%IIItǍ*DEEѹsg6n%\}Wٳ''N?fʕ <$v8~̙d,ZdJJJvM'AywX`ݻ,Ϻ3xHMMeÆ t҅| VW֭o6saddd½K=Χ{""yWt¬YLpP17ߌeYѳgO|Qs>*@AAA$&&Fpfgg ӐL>\"unyW۪YqJ*W^s苈ԁuMcEi)++v0^zƨQ#GÌ3;w"""""""pQ|$Pxxx=G$)$""u7߰g\.֭[sW_r%v:i}v=z4 .k׮tGT,X@ǎ+k"""*33niӦ1t'Inxljl/++7`ժU\..2~_ѫW|>x )))urO /`x';)$""uQTTĠA|W|駌=Fq3`*v{}6ڴiSGH},iӦQZZz}W^̙36mZbΜ9s=|G5oL6&Md~a>c5kV})**ѣlM=ڠG 0+Vw"JH c.H-ZTc52||o}ŴomSLK.~[AD(553f`O=" ˲z:t*?4,OYYYuAAAQen'::1cݻYz5-ZI&i&ƍGdd$k׮e…t֍'XٰaÇ6b6nmFTT6mb}v֯_OFFcǎpyX͛7?0zh,Z;Nm Oţ_#Fs'ml{ÇsT|ɓ'buƲexhժUaڵ ˲}UF׏Rvލ $jQ5}trss1c˖-bԋ46o @&Mx<5mضm[u7|3'{W>_y|w>|8 w4o={k.zMXX;wDmh"poEtt4| rK~?׿~F\\]wo6]vuDDh"̙3jGqh\.W`+;d٬Xs5Xܕ5k 0عs'.,ڴiSeC5HCԋ}ҧO YbǏlݻwgРAgoqq1;w$;;|?66ؓFNTT2,J#1MvABByyyg}Ndggk}VTZv{99_Wsn`޼ym۶P!..vAVVIII8| :vaPh0i(l\ ::eee|ѷo_ƌCf0Mǜ٩֝-4,|>en'(HqDD͛aӇ>}cLB>}}:ݻw筷ުT t88#((Yeb˗ӯ_G.bJHP3wP\\UW]EӦMq:v,;YYYuA111@srrNiX}YlW_}EZZiiitԉ3gFbb"e1a^yڷoOYzu4 otСC5b/Fzz:۷ogbGDNԩ ֭[Gff&dddSPPP+COJAAP>%e۶mg:]tҩS'֬YÇ)**bUwܙ5 IDATk֐/ ,,:SDD'0h֬Yf;^cݺu/СCh׮Zg'rBPQ/HBJKKӐ2j(Fƍ;i츈ԩH~?k֬`Zl7|Ҍ#{Ycǎ1f*6mƍINN$ԉ*]t)tС~z-[ijՊnƩbOo˲xˣgϞ曁;Yf1{l}Q IJJbҤIx㍵gEr'((DZl 5fvnTZ_nf>J*-W|^zΡ/"R7J/cjڴi}uGILTZZF3gv{d͝;m|M׿VEE.2};Qnnn6O~ݻw1bAW_}uOކ$,\ƍk~^/~< n6oެn;m kFw^eggY5552Mjjjt/Yfiڵ. '| M0Y]]:w}/~Bw^+&33SqլY.x˲zzUXX.LcժU *..>mߢE4qD=^xA=X'ϒ%KpB[Zp$uWhѢE\r%^wKK@l!C0 UVVj޽JMMUJJJ5+ @kiionIqqٶFeffݺur]Wϗ:DkŊ2eJWJ$ʕ+*--M۷oF5rH͞=;3Ƕ3sNIC&NxZw;wj]:u_u?߿_@@Æ Ӝ9s!IzW4uT߿_UUU[UPP qc8p@4j(;Pff^yM4I'NmڶmJKKԤtM>766jglsڵk5rHĉԜ9s4lذs.vZbV\~>qTYYT_kz5gmڴ)^Z˗/tAaeYϗP4U}}%Iah̘1}"ڲe-[&0Oh̙. z݆ 4tPvy A^|G#G^WTTHRBƍU__{Wwe˖X۳+4}t3F>iO(RSS9Nꪎ{O҂ 77,KoevڵkUTT/}Kc֭:|.\;S`0Te)33Sv~?^ׯɓ'XÇ'?[ohtV|`0۷kC=!Ch͚5m ;uk~_$رc:m8Uaa?.5ill7 ͞=[~^{n?77Wcƌa,M>]3gΔUW]ӧ+++K rrrσUWz_>|Gx<򗿬)S^|E[N'N5 V 9|f͚`0O?TRD#FP8־}tu+--M3gΌ ]Jcc$uӿ6l:mOz 4H馛UZZ; 4yd(jϞ=7orrry杵K/TTffM ;vO<իEHD~a6{(I)))7o "߯iӦ)'աCOOԾFiiim̌og~#{Zf}Q?֭[hر2 Cuuu<ѣGUWW/a466wߍ=+_R֫{G999Syy Ç _?O>DTYY̙'Ou]78$u+mCbӧM)SHjs.ש8zy^ :TmCpzḶI0ԁTUUV:LaYpX%%%ڴi#Gѣ=LFF^"YAUU/_LVVVAb<}_{"zOo# 4HƍUYYPh4:vX 4ۯ!X }رCpX;v/5̐={hΜ94iR\4M5JEEEzu!䨨Heee***aȑ#w^7NMMM>|xluVA9x^edd4X%˲b:hTq1mǟmn!q亮\2ZyW5zh]yJOOתUb_W|>LC"}9g Ztz)I=G-Z$˲NyyyUCC;FUUUpM_*`+57x{1=czG裏jɚ2e}n 3MS0HUTT$I1bu4MeddqHWWۜmӧk׮]zu;ms]WgK}nN^uuj 8P>O'N8mBΜ{ݓO>>@3W^^\߯{NT\\k8w}761i5k6lzU,V2MSwVIIJJJ{؏mmoGqQmܸQ媯W]]}UWWǖPFFXx&LwyG ڸq~Y'|?~y;vLg+k޽jii-~|mٶ;BG>k]]Ϲ Nj|{衇|rm޼Yzꩧx:,hpkժUZj?~[֭ӗ5Hj]Hmj׫FBm-[hZ`orЏ1 0چHmܸQx<|X/tw0 vmڷo>#{2MSٺ4vsu][jrGWےo񆒒4f̘3W_;vh*,,<06{ў={$7999Zpa;s.s!kmu]r]W+VPmmN>6ԺO?^xA˗/WQQ{x<>TQQh4'K&^lV^_u=g~f'۷1g{o#3TKyyy~a i5Dt|477g?u a߾}JMMU~~iSmJuuu=2Br-hСUTT(--M^WeņH͒T/)HrOy{vn۩v;s$.뛕Eƍ#Ft9eY5~8Tvv/Vnn *`+OɓS жm4ux@گy!mz  Bڹs֭[tMu5{ >x5eM8QF%IO|^8mZ|N\'|k׮Unn{7_Z|CXB亮fΜo}[JNN8UYYYyyyƍ+</^2MS?xA?FuHDӧO״ib ÈcEtAvܩzr-=r 9w 0@@ӦMs=aقgђ%KTPP+W֪U$IW577kʕjhhг>o}[Z|yޏ㧦F:IMMM4k,]6e@D,Rͩ}A0TZZRRRfѢE8qxI /{LW_}$iɒ%Zpz--\PZ~~XZ`:u߯*z:~xuSu]1{\iYCqTYYUZZÇ믏z3g6mڤ \YYYK/֭[5jhhne)??_T]]h4zKjYmٲE˖-az'4sx~"?hӦMJII%\J~G裏>7,߯JȲ,effn~z 2D u=(##C;vК5k|Ee_b:W\qYFmݺUG… z{žJƍ uq[ڲeΝCV^ٳgk̘1jjjscusj֬Y0` :=jm۶ýzF ڵkqF%''k„ zG4zhIiկ~k1eee6P~$)++KuuujllTzz9vڥQFuk2 C}\UVVcC$骫R(UWW rrrkҥ:q$iٲeZzu+B2^wu?oQǎoqگ{qܹSsUnn4f̘XK/TTffM ;v,v|JJ͛!Ckڴi ;ZѨ٣y)''GYYY7o^l8־}tu+--M3g|Nojj81b4p@ ZfVX!ǣ~NUSSӶgff> 4j(}WMMjkk*??Ï%''GcǎaSeeim='/ :4ggg+//O/4qX739oIWwuUTT{K_6lؠ{YYY8MMMΖkgҥKuwhz%}r 1h 7NWeec?DQ9rD4vX 4GjX } 233 B$u(W_ѣuW*==]V8=R8r]Wv~uk>i0twBիny]nYг^FN檡A#ӟñ<򈮻[RlUmm>|>pM_*`+&BtLjA]}8p|>N8 mgER.탩 |.|mt7~{\]՞%YO>Qaa ckZ~}c}Cȑ#*)) 7cevޭhݱ8WAmذAjnnѣGfźd9RNOǏ;CcǎY[n7MSSN֭[U^^.q!:[ZZTRRB^7#c/O=WWwuOk:vJKK}Omo:k IDATkmN63衇˵yfUWW멧k?:v6mڤGyD?p$mlljllmkӗlٲEׂ }x~!`^庮,cK5J3fkxڸq^{5ٶ\ 4Hٺꫵcm߾]9r]kܸq:|^~eoﰿm97xCIII3fL3f̐ƍ(߯+"lB_m۶) );;[ ,Mٱ;;WWz&L 9q+WB2e+ois]wu]XB:u؜;PH{ /p8b}_p(//OÆ :F!`'NPVVg0n81J˲ǡ[xrss5dVC\-8ɓ'@ m۶iԩ. >˲niX }q sN[Nyk*77y7_Z|neee7n\\Xx~4M=.WW^QAAn&%%%ѣ.-n^|E9rDK.w)4m4=s~z=3Zd rJ=Zj&Nܬf&555}ЬYvxzן' 2D_}lۀX+ *--M)))glh"M8Q<9 /W_-IZd.\zK .[ZZ  b?2DaR{UjjRRRb{ @*))rm۶rJr]WsՖ-[b qիuI]zZh &uXj͚5ڳgy͘15:k+%%E/k_B{ե^_|Q;;зmIҞ={vZ8p@ÇעEteŮ3{lرCTaaj޽zUUUiӦilЏ 㨲Э)--Ç;z5gmڴ[|?jnn͛cnvy*..> 5kJJJ$I裏tמ&Ml=COuIRVVx ?^ٺ%I_WTPP-\Pw; _^}UYF+VW Z瘚v\ffrrr4vX:UVVѣ}2 @i LUXX$5J&MRhرmmGFhҤI:|plɓ֩mt5h˖-͛7kƌ]NVbχ N/**G5)**ҨQb-]T~_6ldeeņZԤAVT$FHƎŸŋ+77WC a0$''4M >*ѨǑ8o[ݶ}>_ bЦM4o޼>GjH|^WGVuu>&77W @UUU%mYFW]uUA?FUEEE$IvtD;kԨQ|YfB|vuh4z+O>Qaa$u]-~c5x`_Cw}ݭm/4{nDw/}Ykjj_WK/~zZlJJJTSS~zꩧ~ߔ+tg_ak׮]:z_ 6O?6oެcǎTd۶nFIEsrruǘzH˗/͛U]]zJGs{i-  بP(ԡM_e͟?_ ,]1VaÆn{ァ۷k[5hРEs_222:|ZWO~o~F1c/_mCn?,Ya m6}ݚ:u~u8ʕ+UQQtM2E?~]?z]w%ub jԩzcfp(//OÆ :"h_*`+zjr~f'۷1g{o#3o;{ ϸvẮ$桉D"jjj ]BOu7k۶m2OW/Y6ltpfSjjt`۶TWWI&ũr-hСUTT(--M^We~b@͒T/)HrOy{vn۩vl?o [}z%7j?|ƍӈ#N $ɲ,kqX }CÇUVVSO?Պ+tׯ_;S׮@",[Ux#zO(77Wwu^#GtA͞=WG7&M^z).Ν;rm9@#Hp@  $8 G@#Hp@  $8 wPYY)۶]Sǻ>?w HBxX_@Çw !`  $8 G@#Hp@  $8O [4pGĻ bLӔ^D /3m!V4m3MS>OIIIzqG@ׄB!H8ZZZ"ǣ%%%Ż,OD/DQ566* *55AKSJ֪F)2$I!ȑ#C!redʕ#W\Iapm!0$r S#+q%LC$Z/e0\$C2du0d\Ǒ뺒ʕ!8ӐJJregm$ɑ K$pemmz 'Ǒv\ynA/555%eIhTJNNVZZZ ̈y;ou6fv۞{m{dmq/Pý!Gc˰!lJ#Maɔ8ɰe9H@i dYrGm/Kar Ed$}2%E$אkr"d,7*telӑẲP4+a%Ǒ א\ÑeXrݐLãh[crG'*udYr 5ȶmyɖ'%FDsxd7KRh־ퟻ힫kvk:v>0K;K&*l5ʵ[dȔix]ɮ^5'K-ɐ\Sr%,2=#vDrMF\m^Gar]>Dvk/E%Ô\v,);b+)+ÐdF$Ee50[Q:\'*]fk"r Q(.6QEW(ǥ*;Quߠ_j| @2.*hTuuuȐw9 ]7ޔkxdzCovT2k i 5\mۺOBîCav#ru]9-5u ȕGfko T$Z&iu+Ƕd=58bďݍS]I)C|%Ӕ\#IѤAYwe0r$NrꍵdKהDe=O؊m%}ͨ?T7Jx| H鸎֩,9Y';TIXvnzm{`Oիtb!MK''*.T 5o\&Ǩ־_z̐)-iI\3t7] d2|i2Cn0$Qն\[j8"4}rl# Ӓiy%Öa ӯ;=ڵ31<@05@hŅ2 (Shi׍j#Oa0a( B IpNgS㚼@ @Ywk׮S$kߩGmW,˲v'I?o4MIdW7ò,˲w)1>`c@m<(X}OJVo<');TEZx2J3ZG^\r]c5s|6-@iyHBOq0{?-1^r{4֍~L)d!ڑh#1QA"cFOYev씤s˲,˲(cuhp@#  !sCe,Pǩ ,I3'5){_t8vY9uHa@8B34ȏg֤iRβ,˲co1tH$A@-| Qf&A:ehԩVjlLB(>8Jr8#{P' ,bH$ ϲ%ݔZ v'h`D?zǍ7[gym#4a5ġ;RDSx00}oS40:|\cɦ hӼ&˲x_\$Wnu˿gy3ӧ̙393p]u,˲,z0H°4Nљ@,S .I:0:F0&I0F 7[gkљRÑGv0lT s:$$)¿O0ZR(PAgǚ6F̓|/S1IҔ}fR45!/p0HaP*D)z@C|W:! w`4eYOpW|7] :oﻻϝw_qZfYeY; 0s.qBJ 2G1 Mmdڠ"M34ƑLeJ4q#LJ1h4btfPnF|*Nzz 45ȅ.ADfذa{!r3C##(HL^hL(x^H#shnJKOJ-pM%C dcR ,?oB@i\Ox(Am@y $iYwdYe+Wr50V :;W^_Νwg?Y&OS,˲,Ah֚ a2p$ H*/\I&!pT@>i>q+@#4$:bʸ!;EtmX6 &Sh8NG9PhC:Q<lj*Rb" 4(ZzWIFY6I&Q1ZH\z F;h IœdYύ7wAe;ng}s9O<|3-˲,zgP,HcU)YjHW@HNJQhi0"!<$Eh*H1r2#YJ 5a!FDT@g1+7 @ IqLF @J>*Ґ0qODQ1IbB(|C45т4HuQC 9кu)W~,ls7STޒkЮV֚9s0o<>O *?eYS׉]?W)ab MS\P Mc &\ףQ8#=1aF4K.y8&/XGcZʘѭNsK061fP:ZB)90]+IqG9AǑq !b.RՎ"+R(} YTMl\ÈCЦAZhiqH>E Z88i0bdb%_h#I# IjH*YP*G*DRH:dY1ER.#R>R24"$q"$Iq@LD$q4vB>ґJ)O~yyqQGqWP*)Q_.287um˲z5j[:zo* [YeY z=,MS664(OzA 3zzzʣ_eMVA9̘1z{Xd-SYBB8BP10S;uq| JԼ[n{ ?aQR*!$rF m4q !3!0tH*IRe ̮H F;i%xBڸ(;i3fy{/_Wyc裏\wư7Jϥ^÷{O?^}Qr3gSNT}===tMnaeY;뺜y晜|oYh) I-˲ޛ{ME64v Id1Z%=l2rH&zN.{Cm}ٳg3j(z{{馛[z5zS[?p?|F(8Xx1^z)O?6s=xA`YTK/g?6ٝBX[nmDz,=֬)v6GM'x豵 iB#KsA9!7ٿ~=[~G/ Y!/{SƐ!>*(J {9ȌXFh Rd !hD 70O]t o ! 1z7Sz-ܻk\oBg.J2#=t&Êkx<콴CKzB|HDŽD(*y  |ͱ=Zl ^}\|tttp3~mߜu{7֗{/cǎEJŋY|9Ǐ:69E(B񊹷57!]]]c l1bgY|P6:3lhy3}?-oYeY;?Ơ$Tj5ϧIh50GS8c8Mn~Cfw4cԈz#׋aI)4@ƔuX# MSLEJ\ N; 5W\qW`n=#[^1P!'ORpwnɟ'ڶ۲]O)eRJ|,˲, wbhЈ K4_d)deS|(7{Z }p#NjͨSJ!H'O$F>NpGŗ׿~2-:5l-aABk#Ƹ`@ W;M"ɿ~/IGʥшp2B L-ki:sF+3gJN8/6(2xʡD&0;׾ͰOs=^uSSp }ٜr)u]|OZƕW^m;oxGB0sL 6 HƜ$ ,qLSO=ŹaƲe˸ g}P[ߨ. xbOwauDX.HiͦvcR2C&Јk7֨#5}'H:v M! ?@OΧ/$EиT=t({z+!Hp]36|3(?8?3˚8n40A*ɤQ+acK>s/=/}kqeQ!I3NEVvl)y1w-^ziN?tNfϞ%̫Khkk㮻bɒ%|碋.qn6.\HsT*^{1|Fw-t׬sE)}ǔ)S^X&'|/===[O~>O1uT^z%{9:::{U׾5N=Tj=ӦMoto?~q!j*}YNmV|,]݄ݎs˲,˲ި׫w{V7yuyr盷V7?8~دW, zW_v[3y>e=V62~F͒p* KA@[s{ЭJsSO=QA$Zd%jzQ/`Æ.Qkz%`#d'C? Uk1$, 6 P$'Σ 6:LS&C9ݿȂE)rqd7z.M Ji>Ўt;Ό3hmme֬Y)eYN:A{wyRj+8ZeYf7nMx[Pytꯆ6[msf/;}$4B@ pC i45($sFAEJcRi$.'b`(J 2eBB.ಯ8->̞=}>6XKHƌjGjA1.'xN@4?/X|F0dH+j0ɲC[X(FJ&_Nd9[Yt_B2疔XD__@CDT,˲wJn\-˲,z3le23nD;*1wr&z%mu;t+^E>1#[mTZ/&giCS(5̧>ȳ 71r4ma ?sD=(⨟K*ZYb /\6"4k1y !K#} *KW1!J>MX'0eβ1?}ia2AX(L񏚰%˲,k}z^ӿ,˲wN:ɓ'sWztmm6g}6gu֛i64FۄeL*7dGhb衭 jJB1#SL² AKko^{hmR$ C_QGOBD*aP}dE.4s:$ͨVj5 p#=V.վ R|PBoYPi8F cpԡk}̚TҨ&dq*"#]H2iH0q &e=Yft$ٰqj0aL@I~/O85@1)2h42)!R$SF,M|ZZ=O@n%>qtnW$nHD:.H)9ڔVw=M5i5xM>S)7p1#h.e8_̦z_<gY"0:pf6 IDATE zDiL 4,˲voJ)J) RɎ,˲ޑ/^I_韈&bѴ7I c2T#&UI/=j qr&u3BO`2!CqH+?&3'fNWw=Gצc8hz7RiWBMS111SB1AFYJ ʕ"Q=qۖpm %+_ Jڨ!K/},a^FO?o08!I @2TuqBboeYybrV,%) ugdQ-)%j՜x@S*x " =*|SJ,}~%:1rx?;M GEchAOW_Wyo~8z[z ˲ݝy477)L;@)Ess XeYwed |A+2T+UG:5LBt\5Hu7˲nBA%<%sCxɿ/Dx2wR6k֕9cc#pB9i{:BTiQUYN_T⾇z!A>z˒><]D&PJjCj֭˄ICpCWtox9H(q ;SO=O}S{; s1o,˲vWJe.nMlYeY[TWZr~H3a$rA /;60tXi˨)J5h.: = ƍS)QJqGCٷ 2@mE P$“[]z{Ek[e SVItW7E)E>u]˲,˲A2oA~Mn@@.4DƠ8C 477‡>p Gفtca=Zh*F󙇱fcʚYjӌ>M$2~i>Hfp8 ՞Q!i{^i!cii Fvc Mf ^ZC[K ,^ڋ/]$!q})vG)IN?t98 ̙M;'\x̘1s=E_:3f/}mzyOS.bf̘g͂ ϲ|SN{vk֬@k-g '?y:;;wzXeKss3bN c S,inn˲,˲64PJMBFF.#5.J)FR׆0'M4DuE%Kx$34%j&c0i\;^`CǞ,Ӕ+ѹֶ|OA*Wh>IiHS$T*4r>q̚Uut9i)L#)g*3L`U|V"*eŔ-hOQO঍ǠRC^hJEI\#٠3I6_뺌=o?O+䥗^Rn~̚51cpyj*oq-zjWmOoo/_=\r fbڴi|+_!IZqp׷%p72w- &7@zTxGHz>Z? pcMKs#k>O4kBa3tt:d8[Ʃp<} 5XbKӐ=yj{@*ϊ=AȺΕ94Iy\+7W 2nB{M+=TkZ⨁  o<̰vjƈ9r62iB+B. 4wwܱ;뮻8eO;-sgf…3f=\sO:,~;w\ǴiӶ\fՌ1Yfq 70yd.-q~3:&NW\?a͛nj3/eYu|Itz? H)RaYeY;As ݊4  *ZJ}x9(#ɓs5Ō|HbTFEX 1詺1>loo/w ,\.f(ڦֿ?ze߸qy=[1|p0VvZ$޺ڵkIta{rAF˲ݝ XeYe  |$ވq5= X F0QP %m9bb^9B(-#d#FҚ*DY Y#-CykPI-+1Æb2JBP(xI.mm%Z˖m#[g+˴zx3Mu;6RK)䪌•<:{&T zDKK>dڣzqJW& -qvzu>Orr0l0.Bl`T48Ze6=ϳZeYeY)0gxfQ.SF,xхOc =(@Ј=UZXAc#0&#_ (57j$q&t$_DԈhjn߮"J37tu,{̊Rk6Tʚrϯ'WPJ~t=ᴐ$4 d{N!R5eS؛sjH᠔KSOK6RA$1u vP>.ƏO.cɒ%_~_Ռ9~zGZk-ZeJeYeYeY֮;^`@a9R !8Jc|c59: msH}C)CZJM>|dB+td!M.AKwoH*SGSuZZ}zŌ]$7KJ/N>DsΘQzP%DQ {a{G׳ǔ}ZQ}CFGl)@7vZW777f1RT;`Ĉ;z'|{7`Ї͢Eꫯ;mkeYeYeYa!" ]݌wCk{:\YZ?c(cǤC4MEU 78@ mjT48(W zkhBjqLMfj}k%?L4kO}e]رcKg?r/|:/| |ӟ >s/3gRTk3˲,˲,˲X,'@J)nƻ[ qvo]Fnum͏8݁ Wu}IF14LcFdFŠn ^kb##0fFQ< ٝ(%QAH<;dzǟXƬts'xFQ!JI2mJr ˓Ϭ9}˓kY&͔#7 e8ś.9Vf)c5sA-uSDBH굘8P2OQk,;ҭZ6mO桇y~,˲,˲,zרDQ 75#>4[Հyٶjվ?7[moRۃ rLAgAf\2Mº5y֖j%MCIc]Zcz:p8]s!hz2y`*ɄhDޏvCJhkڊ. bVnUC:\>S(xM1y,{_DT_{w$]y}Ow\1,ْlckC.YRIlHLBr¸8L¤isX %٣kg~?[iF}^U]c(;}F'f 2T\| ˇP8Hۛ$!WnyU?b;ulu-bm!}{\;?C,b򇯹d')3=Q,ib$x6J|vw籧f]ǵȺ_#|;؁(mqq_L6H["2y";FWˑ sxASGMi=kon'WcIB/ڑY \{X=lD)B92212%} ܊CະӠT* xnLs\v"==M!\3xzݲq ,<$pnK.\iSP3 &ɱe[(Cٹ!ӑ R΍  6U W_ma[DDDDDDDd ttxÌO:Xa;HX"hE*aaG]- s}7_fLRv,p*87Kdwi߰g%DQlDwG6o`Fd.ȓX N|*FSw]nQ͑YƦ _Љ53DcBK213 ֞ u1=~vm[E˚LL nS?GM!_-l۩4T_ 7T,m/O4c˴luc#`*ݑb<]/CcyPS 2mA"eoyLLf )ʮt=e04X\{dg;^L[[PĴʘV  *͕Dlbc{i|cjr(p Q k.v(Y7U}tItUWa}g;?/ٴ9]0&o}V BX$+}\xe`C7E`tJ"""""""J@M0LJcd3mf(DُPv\ pŮ vxb,Oog,>Pb.O߂)ruaJ%L#;]Oۥ^n c L@\3>Fy|GSquEёgٲJsy;6ḬM>bDɩ RLM`O$4Ǎ/A\rٹ>289\>?4)B%K>Bd#`Ex{/~/G' arYbCxجSʌ қ(q`oNjf OxFP4Wĭ8Oz6M:dl|)\}/@*U$䡇` >umbbl/L|CH>qq<4 A(u DDDDD֎u~=nlޛ kǘ53fz_%yh -|.88ePĵPtp[i~x-[/`axk.H٬mTغ5Hzơ$SLg1e0Ndtb/儣Eܲ^lJJ>Ogo믹'M""sn|zN224Ei•%7 \;w\H&;D/?~;NTG9@(J=G \*"gL6bP>oJRD.#I$HDDDD֤`0x=0 Tjn^ͽ[u;5l_kk-VEUj8^{Aӳ98P>4( PNsUI2sϏ3enf@(K8yD&u=;dl+ ._ e qnI2a7B22MGgi:: /b˶6vL.ڱK_uY cOy087^  lmgp8yӤR)䒟L&OTU{\![P1MƧ PM 3ټuXfvzT"o1} Q*tذx!&y~tߓM)R"Y.B.`L:#7 ٴ5NȎdo/獯x,a$182gdD1&&MЙ<;J|e;q`#e1g*n:R=q+3 dz%8:PHK}󘝝% VSL& ByDDDDDV1@MlƣZ&eDžIl3Þ_gx"M" 7Wd|-f|b)d LCLMWJp]ēqL;s䘚, Dl[ͶˇGqv?Izl-IJ#!B!u[M<8iLf=xclKqccG2\%<׾GypמrkfߧRN<}vvvNT*'/""r* sx;[xk^>}Rx^<|Ui5-언]IcdyC#&J e)cљ4<,˦%i#g 1IcG`8:h  h#_PYڻ,r#C(:L;o~}E_F}l#GCtt 06,])2iFf2.s}ϖyШcOQvB$av瑇sv|/HɈc Wpx^uk$rZ^>Ormqw x;IT9?0o}[n8P(pUW[wwJ p<r$ɦz,ƶm$\NᏈ,49x x;׾Ƈ>!r~|R}c؂""-jE~x o{韰+E<2J:BKTa(H%J Q+lu1>OcF Lw10p|0=m|oögc9c>|'n&v_zq&"ɿhձNnPDdN,;ioB|e?'k.Om۶ֱ.q-k׮:.HN H$=}o ox݌qwgg|_k/T-3Mۿy6|r/񊈬fc #"˜͝=qF޲e \pD۷я~h4~߻n c`024R*0MS:tկfϞ=;o~'?pl3###|I&}\"r^8~ܶzP}U;HDZ[OOsssΞ#qxxe}@ mۚm#pu;p8H6,40qظq#}}}A,R Y6aíy馛NE<'\}/eo}ןA}ҡjZn7_Dέ۷}wby8`}n֦?/<8,0 BtzN B }DDdM뿃?ȯ~+C=C=Ν;y衇btj@g&j!"imo3 ===\xu]ض}⇤atww{|ke y|+WTjhGׇmW*ظqGrw󲗽\e޽/| |o4iT`jЙjrL P$"o}fffx_>W N|z]o(\~qD=0qθz@@Ꮘ,X,F2ӟ4###Av>)o~b\wp3"").3Z-5ؾ77׎Wo۪7 [ׯ_?r2""}JlڴGP(ti""""r>[l*@ぐ x5PNͶ{Y"ӹʭu_gED*00M˲mT*\&''9x T ۶O?LԼ`MO ;@cS~oUߪ@mD"oX).O\ \.8lIظq=* G=񜶶6 @տjU(L&?dyFSj` f U@ ?Q0T C7xnDDDV`lYHY۹s燗p>""-jjEPPq\D`H$r(b߾}˾??ՊV 1: [gi`A ߢ"jTTNy'V ) 8?MZ @c {Nx!@'xժ6Agz_]V#""""??nԫՆ; _ot_< V,o#ŸF_?C}\sM8\1j昦yROuW 8i{u>jU(Coy[xS_SԆ f- rrpT DDDDDDDTCjи[\Nj^oE+29Ư[8UYMkDDDDDDDu6WU{>͞km[ӿ5 t 'A~Q3ۨV}JګxՇ?UYP3yP P*}jzCf/;5˵DDDDDDDWS?Sn`[Vboh*^v'JOm?!i-r5SmX89SUly50X`jkV7{ntEF&"""""""Fm ]e?ը3l[gxԪ@K T ^r5qk_ MS $"""""" IMmFa|WZj8ӒBTT?tn[2>&""""""""O|OuL}?KwVЙ\}7j]O}G>"""""""6PuGjFN}J 7~*m UU7 |)i]MZ_ TT4Zo@CrM]9ݪ>yj^7"Nrgckge%ؙoB=~+9^Y~4PN3( [g˴7Q4㍎GDDDDDDDZbz`o|Zsٜgͷ\dz)bʴDDDDDDDdA ]Q8)^?܆@?iMn},i87SK `>> MZlbC"""""""rv4 NYf-<߱g@KyfF5ۧ~5|^Iȩ#io1 j6Y?P>>__f*DDDDDDD,Bgb+,u8=Fk5z|6v94{3bZn[ș[,Yl}}q&P<>X="""""""BbM Z9o 8~AUAHko\k9e7δc^}|fNgjPcBǚqg2FDDDDDDDL3JAP3*-_\‹bQ+O"""""""rf>Tl,gT;YbSoи9j!rT,V{DDDDDDDdOj{qεb!PZ2nj;f%BVVj 1XW9X]"""""""r&bj A4KDDDDDDDU59Xc_n%ÙUTlZxDDDDDDD֊ƬjxxL"""""""V<%Yk!Z;9wV}S|n"""""""2LS|I·s3&-9WDDDDDDD淦CZ{ r |)9 |)h'֥g 6S3PGDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDξs1_IENDB`07070100000021000081A400000000000000000000000166968E4E00019EC8000000000000000000000000000000000000003400000000gnome-music-46.1/data/screenshots/gnome-music-4.pngPNG  IHDR>sBIT|dtEXtSoftwaregnome-screenshot> IDATxwXSg;0'/UDmu@EZZGZ_[-=ZuתjUԪֺj"UV\*2М&!$\W$<'9y@DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDV9S""""""9 }"""""""r] `""""""҃?zQ_?QYRfKDDDDDDD@,"e5Q04#c $0&:\ODDDDDDDCWMJCHQ4_DDDDDDDEq3%:*Ɂ#.r1tplXS"r8b쓈\,QAPI !""""""*BĄ@%))l_E&yl"""""""r{}qؕ`0}7}IxJk[C\:r׎ň\[Aú g lFaŸ-()l,<ί*rՀ0X.g;"""""""rK 3p`(CW|J [{ {${Q\-w*{-<{EDDDDDDDckdo5˄@jSucmc.ıvHODDDDDDD/ӹeKdO [k~ ~,IQ<-7|^P'pᏵ5> ȹ칪WAAA&r8sm@DDDDDDDa\@RBaKVô`(DDDDDDDTrR飳tm>̵)H2)ꧠǚ!"""""""r=TX`bP: eMS0YSyDDDDDDDDek# 6"džr?ք?b3m ۙn+6Yoږ\K~<ø,YhorVQᏥ韛 }L0!""""""r]ù̅5ژVн!\=o=ؤmlW *00ߛ>M+~l ;P@ΘAH~s.3Wci>1 1tb cL峬0-ȕ'em LsA`DDDDDDD:LKidi?b)hRhs۸5=]m-UH`>o["""""""r=Ꭵ!_6m ְC ̵-\d1@Rn.- rT԰ho zӊ"j í 01 } x޽]˖-t:oNʼnD"H$JWTOH$܋DG~ѳg2oP0{bq-C\n@n.272*~  )rzt:>DDDDDDD?!v֬Y3@j@Z3 yfSf kße.1 +$I%'&""""""Bh4GT ~̅@A&冬*qdДͅAa`^^ZMbb,^0?5>>Z*<==CאS@n$ S d q~ütB>ˋo)Y,6.c?ީǴ9ӧOc8qIIInqrJǏ;d'OիW/rʟ@h]vYlӫW/DFFjHHHÇmW~}TXz4 Ҋt>>>6{X ??PTkh u<67w L.3}lNp+ĈܹseƍqoߎǣM6N!9Jºuo>D"tCHNNTR=)=:wlU;'d}qqq޽{֧T{B!qwwJ*ѣG8x 6oތ;w>bVիWHjժRJBBGSHRjA,K咵gL9NQTۧ\./.C8JC@ll,f̘3331}tL6ͦh˖-Xz5`֬Yhժ={[n`ƍvWtt4{-[]+[Z OOOŹ o6,>q mۆÇ(Wԩ_tvFcƌ[~S]re4j] |> F XvU?Y"w%!?>u5jѬY3;;wDN}8XBB!РAxyy/Wʕ+tCff,_꽨)Jh4U%!2Ml}NDT"<}s7j7o5jdp?Cxku@7>|:t+WD`` 9 ֭+>ϟ /y !ɜܻs9˗GVV&N$}:`u w!( "2Fχ ڵk#22@pCo;v̪#==111x"6mv ӧOǙ3gPR%*ɓ'x7%K/_3f@hh(z쉎;B&!66Zh׮-[+WrѸqc'aܹs^^^]6L[Nl]t};vߚ޳gOkժU޽{QZ5T\$ ~7L&Ï?Zx}s=T*CFb˖-ؿ?=zZjaСhѢF3XT*C( ,_Ǐ\.Gxx8lق~ 92e ._ hԨf̘xyy!,, }޽g}zz:n݊#55*T@hh(777L05kPzjݻ3g̳A ֭9s[nݻw鉀;VBll,`ѐH$ضm[r*c<UʕkwB$!00LZSbԩHHHi pmTZ}YM \ƽ{#22SNNìYe`///4iAlllPZZ޽^z ǏW_}___nץpEYk֬AHHpm̚5 7nǏC.GAJJJh}@֞w5k"00/޴iAAAfC}f6d W^ŰaСCtk,YwFzK/رc/_.Tơ7v)5k@&aݺuظq#BCCoΝ;{.=zZƍcJ]ϔ㹹wޱ{=[ϻiбcG:tC 8ϝ;w,vڙG~۔'O두`XޜJ*a֬YXbn޼۶mCXX>T*Ϩ]6-[T{b…غuѹݴi֬Y .e˖HJJ±cPJDEEA*bƌ9.zZoƾ} J~`Ċ+>Ddd$Ν;'@1 tڵaIIIPhذ!l4UVh۶-bccѿa!E&Mp!>>6@b~~~mPܴZN^/s,3}L!M3"""rqOƂ 0zhh4Fɞ4iN>K W sE Je˖a8q"Zh@* >|4dggC,ިZj ru999y Wrn6e5r@e7$""*b͛7ǖ-[ "/_~!!!}6Ν;͛tCj5?L!*<==QNgw幻C;5<==mJ\n@ռ={>|EV8w233ѼyJOOOb+)US~9 nFTri4( (Jd2xzzj0̚6c9D"\.FRJZ6j#Jƫ} """"*$ 4ADD"''v qMJ6QzY4@JRH" ҭd )"""""H.3*Eu8 >>>FNN*$ YCDd#@DDDDTxxx0< "2CJ9@DDDDDDDD """""""RQ)+WwT*ADDDDDDD]p2կ_] *3ܹZj9DDDDDDer J9@DDDDDDDD """""""RQ)cDDDDDDDDT1""""""""*r J9@DDDDDDDD """""""RNhT*VVj"bRR2 =&""""""egg#;;jbNFFdffB*["""""""*9ANNh^V### ^^^pww/Qiedd ;;Hh3T*"'> VEzzzýF z1@"--!ᏞZFZZZÎADDDDDDD%bn|?h4HOOwqda`1 Hل϶FNNN\ *&"""""""A 5OJJ ?~l)GDDDDDDDz9Ha×X=zԩ} """"""ҁh4BOcǎjjX>FDDDDDDDMFJP?yW\H$Bzz: OOOO2˳SNgw? c޽;  5iZxxxص^'ODjj* /`ԨQz\ (lϑ#Gj'OD.]/{Fdd2yTP~}ڵk3gڼ/R>Xp!|||#?r(MDDDDDD29@a ù=ZL&s0+}]zIIIذa$ (`"""""""*m9z ;-[lrD"@FFĉ֭v9r$Ë/PTBll,=z*U/w w;>3ahajذaكOI&;v,W6l|Mݻ/^ė_~-Z`ذaݻ7z쉍7bڵ"""ƍJŠ+p}e4 J%}+Vȑ#? $$'OGEEĉ7ow1av¼yбcG-9Y@@kK2G$W^X`ʕ?cǎF .zF:t(W˗/Zn F#MNNFBBڶm RM6aĉ D50uTdeeȑ#±{_AAAVO򜙙]vaԨQE*U0bi+7ߠزe """0eUP&MbСHMMERRrrr?`ҤI B@@&N(?%%jFzlY"""""""9H$ >6l/lO?m۶/0`>>}~ .\gp]}aaaAӦMmo߆Z6k5BBB\OAܹVi4dffmc8rlقÇoUNWOOOdee޽{jFS5k7|mڴk͛l 0o 777벲/( >=»ヒ9s ((Fh/r'_ݰ-[# կ֭[~ ?vڅ滝T*Eǎl2TZMVCZ{I,cɒ%?>d2&NrldտbQ d8bիW#GnݺB||<>|(i֬q9ǣe˖r)jC``}1Yje4+W{g9/"Lo111f""""""""** ERĉʕ+cΜ9BݺuΝ ( ___ddd`HKKÁ5jڈbc֬Yh׮P5兞={bܹǏpBTXQUjU矸> R)z-DEEԩSh4x!l{%,\NoW^ExxxW^ys+W%Kӱg$'' A'*T`{@DDDDDDd 23={h۶->caXŋzjܹOFXX})*kȑ#7`Ŋhݺ5:t萧/m۶4f,]&LZF-h")޽;;A_o .ÇQbE 2$>>> @ ZjI?ǎEaر(_0 N,###²eːڵk_'_nlÆ  rNA||ԩڵk \ L&k 5Й<>>HOOJA gԨQXd3 s`]%K`ǎF333q};v {Ŝ9sPR%[nZgϞEǎe111FǑԩ]Ǵ䯿ݻq)aYNNZmuΝk׮ضm^ٳҥѣF\2Zhpݻwg!..hqy_;X *8\P"Wh,&&ǎzsO?oXte|W^{-O'O=7C[n<`Ӝ[?zM6w<~ׯǁWT VI&h4ذa',3ޚF[nZ{[V' A1(_MD"|󇨘 >\7|(=r~7eڵ'|-[-?p0$*00F D$$$Z2 6iիWUVhժ^y,[,O2dmP7\`n͛7G*U믅AAA 2ZiݻwT' n߾y 77|_+8 ldgg<,L*!DDdFq ݻ 6f͚n?=oذ!͛ݻ7u놬,a+Wɑ{eT-r}$%%! OOst /222RVڷo}ڴMݺu?FDFV\itU@nX`aִ'$$uP_5V,cܹh۶-J%><畈9>h4P*PPj7"bRR2H>ڵCˢ1lذ|q+W`ٲesooo֭[Ν;㫯BNNԩS3ODDDӜ~a7z- 0y&>+WݻHMMEzzzn]bFN>}l ޚ-[D۶mVU19@.@" "+5 'OB(J\btY~zIaɓ'/ ݅ {Lsڵkz[HRT^jBpp0gU ={3fXi>>>h߾@Ŋj;eӧ9d߿+WY^ren:rTݻ;VbE :Xĉ->TSf<TzW2d{+1sLnj֬LDDDDd V7>C̘1^^^7n|Ml۶ HLLDrr2r9*T?h֬Ufv={syvY(l.? 11RR QFشi[\|ɨR 4i~ bdgϞpѲ`ԭ[l¼/vZ\t wA*Uz 矑`FDDDDdL[/2XynFl^Q*ƟaܹZj9D:u>#eGF~#""""rL@Mkp3y3x 0Xf\gPA<Ѩ83X,FxxzCDDDDTQÇ-k֬#""""ʼݻw]i ^~e'1""2MbǎF=@DDT?~<0Zֺuk/_I="""""*z <imڴ' """""bQ)0hT*VVj"bRR2 =&""""""egg#;;;ϥ t:h4h4 33R(QI rrrFcjP(򂻻{J@,##E/FgϞARA.>aTLZ-e/02oooŜכ1-(Ziii j5Ҡjv """""""*tFAzzÏCDDDDDDD%  ph)DDDDDDDDz (''&|Evv6rrrDDDDDDD9PVVV<6@]dddd`̘13f t:Uh4Ta Eddd`ɸ|2233"""""""*٤@ihѣGϰrJdffO?/"}jh4H$BTV}عsѲի㧟~_~K,իWQn]hڴ`8y$RSS^xFC_  P*vm & !!0i$\v ;w.ޗ)S`РA]~Zm9J2J)SUVhժڶmᅦV 6 w.JTUV{SOP(oСCmD|hӦ ֯_6mO>A|||})J|GPTXp!v؁ٳg~ cSSL<+̙cWco_n޼Xk.Ϻhaڵk3gZlӻwoDFFBPԩSX` |||iv͛Ѷm[ 00tP\v 7oԩS^zIIIذaP;ҘP IDATE`.oKƛVl۶ pss+/_ׯ%&&?dxW3[9LVV<)S-ҥ kZDGG7@.]0fܿ_Xq 6 :t@>}l2ƍvZ۷mڴy?OԽJ¢Eзo_7/"0k,m6l؀ /Y޽;Kh4,_:^{5,\Ъ>Sɒs",, :fϞǏ k>}mjժ<.CBB{6l@rrr^ٳ LHT*+Vȑ#? $$'OGEEĉ7o& KLOODŽ гgOڵ Cǎ=#""""" RW_~( ::Z699111ضmmf~8z(fϞ OOO,Yغu+ &LO>;wFJJ rrrFfffCLRJf+PfM̝;طofΜԪU 7ot:0vLL X`Ұfj̜9QQQ7n`ٲe8}4Ν OOO^\ѣQB1~xZJʕ+g~2紴42 | oߎ͛7cǐ!CRM6a L:8r:u *FHH!g;v@RRjԨ~+WDPP`ĉ_jۛNQra [JJÏݷo_\t ׮]lڴ =zQuĉ D50uTdeeȑ#y>|֫WvIX|9 d]>}P^=ԨQCEqe@hh( \x1_v!33v¨Q*U`Ĉ^m0i$! 'N뵐kkܸ1j֬ oooK={6.]xg ==hL@Ŋ Ν;_ 99ÇG||<ݻZm4''5j$Lb񿿮WOOOdee?{wU5#!&j.fjf"*RZޯduii5[jQ[mjf)u]J!h(cΝaf99a8,8<$I*ylлwo; ,Cyur@AP( bO=|ɄѣG㭷œ9s}v;u󚔔$|0wuSXӑB֭[cر5jTbΝQRR\בNnݺ!++ }EXXN< I"%|c[65]mڴAxx8ХKFdggSN1ϟGdd$z}j|HLL}݇ݻw[n$IEjj$A*_J_駟F޽b .] R Q]Oxxx@b׽ދoXr%вeJ8o^q9bL> 1Pz?oѪU+x<o %%HNNyfDFFVtxMMŋQRRk.$%%|׵[GRe˖t\BG$ɓ}Xѣn 7tx;/^DLLL%""""b@}^=κu`6 :SL4$XTÇ/<}(\`^udddxMk2 `?@EEEx'бcGF>}yyy1 ٳgqQy+Fn+5=-[~.]_<34h;v,/b۶moe=;v Wq;wo~g$''h4;Ċ+pI`hѢ3^шaÆa8q󑚚*/../fᅦ`6&.Ipkʕ+qWڷo3g駟; T<#xWЮ]*yu٪U+=z.\j+Fٌ\\.DEE}{n@ll|VŠAj* & @?~<֯_BEɓr[kѦrA`ɒ%=z4-Z^zaѢE1;w/ ;;wDjj*:tP>woիWcر}z8p/":w˗#-- DQDa#Ge2220{l<쳸;. 駟"//-Z 6MLj#GaݺuP򖝝-':a1bDQZE/U16Up7m3g~wt Vu=j&RDdddP{jDFFB䏔1[@J%fsPV0LQ8 t3Lh4X,^"^Rh4rg"""""""@!`` Bʫj&""""""" r'qDQ $r J%j5j5ZmL(MDDDDDDDM@J`uDDDDDDDDq`"""""""& """""""& """""""& """""""& """""""& """""""& """""""& """""""&N+ AB QV`0B @&~j AnGxx8T*UC""""""pXL՞ ()) uDDDDDD{yZLՑ ZrttBP(P(PTPh4h4P(!vz2&"""" 5q\E(ojt: j`eee6 (",,AGDDDDԜ1Vy5A l0 Xf5yV+\.L&SPGDDDD)C@sSVV&]_(eeeSVV䈛f j0$8(KvCMlU$MSocH.-JJJ" A>!r]HSo@ PC|q #hÒSSo@AVVV֠h (p:M}DDDDD r8!Dؚz@AʉUäD+ 6%bM}DDDDDT@Ab:{,|I<8{_uaD~VOl߁0n8?XπrP|9{,/^sܹsXh~9s\}2tP9(** `d\.Wշ}]tRSSV#""""1(5;SRR"o+++Ò%KJ Шy5Ff/>MOq\N5vL?7-yl6L8o&^u7/~Dzl25 aٲeu!X-[CbС1bRRRm6H$3uTܹ3$9N :.\?L:XV!%%׭1$Oh`ԩ """"a(~ŋQZZÇdBdd$.(--ŋ'b+Rr0b|زe a˖-xB]yry 3gΜ9z5ӧ[ow;? """" ˰+$%%/^E$?C ÇСCu.4 pWnÄ G:,s?'x/ ]?^NB/X;uh< =;={B!os'.\:,O1114i֭[^{ :N'lق v$$$`0 Xlt:fΜ)uV:u ,,P>tkصkN8㦛n{nP\\ *o ??-[رc Xt)zWN|A_TbڴiOpJ- v؁G}fј0a$I8~8 ??ΝC~|u1|ptԩ^Hn(_͛NtW^y%^j o߾lB믈'|iӦSNŴijwC@Px镶L&u,ԩnYWڗIODQbP&!!}z}_~t8uTeݮz1~㏡P(ЪU+5 #Fb|8vpvVE~p\wuؿ?n&F1?. \sa=Z}֗dرcqw]?@oXf JeW/"""""P(ZM^ڡC,\/FII׾1cTY&,, ͫ?Xcܸq9ekkȐ!HIIVFX͆iӦa?~"""""f RDDDDP6t:DDD0CzQLn02VSoG ,,, Vկ%=T* NLdaaap\l!9^Ш>"""""b($Z-Z-v;v;ASyZ NljRdBjm I45wL;#"N'A($ . P(T*RVhdBi",,, * r>Ԡâz3&JŤeBCV N3(h4 ɄM}DDDDD&"#ZHvX,zR`4C>9bȃZ|>=Zh0kp@$zyۤI0j(y~y!m݆ŋ<bb">CiӦ}oy >LQsNxd h eԨQ2e DQٳgrJ,\An6mڄعs'uoZ6`u咿ODDDDy&z _@Ap'Z-L&gϞ9s&L2:Đr:ػw/֮]iӦaHLL uXb%~;EQ$IBDDDDDM;٣T*RVRL1$:Y bh4tʓ&7nݻaۑiӦh4eӱm6G5kZnI0x`8p ڴiYfgϞHKKæM_5Fz+Cc~bŊJmۿ?"""еkW 8|WHEk/!"﫽SL踓l3>NP>!ᅬgy^{-ڶm~Z.k*O 3#IAb^G-!""""VѢE zX, 8Ofc; Ku=y=jӧXjԨQ>}:?ِ$ )))( pyX,tڵRʺ@֭a0`XjNnݺ!++ }rL kVp 7`߿?rss!ItReljp*c2V#""""rFJ0 r/ +&@TBPVVE^5k+6oތJeKKKϝR*[HNNoddd=|*ڵk p-T3tB$HTuW{}'IDQf``򇈈z^3m/d1 o,SL?LW^ (?(66$WYBBrssqY=z_%%%ؿ?6oތ_;vRm=Zy|^_a{__Mm;""""`p,ܛPƈ hJ mbXv-AZ~zjܟ^DDD:""""FDDl6[ CUc(4塇Baa!>C>cո[c_~;w.j஻»ヒZ;@=`;w@999rxWE޽{!If͚޽{c֬Yx֭[﫽SpyqOVU7FZ-O^@SfeUoUߕU<}0C>\.KFՃrjQTTucM4W$z*X IR5Ю]0jwQjܫaWq0ƃw:Ad4C-''Or/) ?5Oc!`At:az:A٘m ut'""""׍{djej5!Hnj 2JBDDDCDDDDDDD&RDdddP{jDFFr["""""""قT*a62^lf򇈈IdFb(KRh46 7&B@AffA:WAMDDDDDDDDM@!N∢A $IgNW(P*PPj 245L5* !aQY|(++CYYY)33Æ ño߾PC@DDDDDDD>dgg#;;;atR\xyyyXlYáFCj`X'PXXX#";"""?/_~k׮[o~A>5&wƴi0l0$&&bܸq裏BV8!''' =䓘9sfK.E\\,l3f 6o,0a>䓀Es=oA^Z@_/ŋ-sqL>~;nV̛7+**ŋ1zh 4&L@VVV0#Ǎ+s u8Ԉ 7܀@سgN'<"q-Z#GGt:?d2:߿?֭[IT3F-"o?|0v튈$%%k𘛫wy$}]$O,]-š5k 0qD 4/hO?(񓟟/noԽ ۷: j""zQTttapС%;wHOOǿs!q߿?^|E:uJp8p]w!33R)S$3RMZ0L5r<{lt&LZƿo9Ү];̜9SNVl޼qqq={\Ofbjjb'~+P(~ aaa0 hԨ1DDDզMdddtBr8q, bccq7#"" "ۇSNA\}N>ݻ{@5W_})))~t:L\xZ#֦M\uU8r䈜0`$%%aɒ%r 1c=z4*kML$lٲ}/gFlll U?M6^oŋdɓ'=zt:ذavݎ$̘1CN^Uzׯ ##[lA~~>w~W]u\V]=Y, $!771116^%T> b:upvJv PTTP(ҥKHeffbٲeP(7oB5%Z(qi >cǎJ|Q{AQQ~<(**Bff& ..}E.]0uT&(l6Ν;=zT{FAvrJ{;ssGc֬Y뮻}vZJ~]״WPXX 6`ԩضmw9st֭[}aժUxWaZ+?w\ <:zYzǑ#G~- ~bĉ3gnx-j.kaXbҠj裏u]j>S<|z|饗z rss+W|sw^,\鈊ɓa٪zj~Y,l߾2df̘ӧOJ%y̚5:=;ƊQRRF3gb{<t `6ѷo_$$$@Bբ۷/f3%ZlxU:LQ@H/oE޽{$''#::p8p8;v III00LHHHU˅-ZxꫯF6m0i$K.A 8q^&e޼y޽;?Ĺsp8uV̛7;wFv0o޼J}=z4:w,x:ᅦ$Il駟Я_?t:ON:t}Jyk.iii;w.i-BYY222|^^-0gïVcYYmۆYf!** 111xGgsTzEcǎō7ވX,\ _}UVȑ#?֭ZFJJ/6 7om.]ߏ?SNŚ5k2 t˖-quAPp ]&FDD?~DFFW^'EEE$ɫFA֭QPP\.lݺUM$8oA GEII rrr;vD\\ƌbȑsEll, , rrr I\哺ץ=nԩStvp{k_j.]=zٳg}^{$Ix UzСj6xߪb=}P:u$?ҥKq=૯}/֭[{ 5uOLLD>}8rv!zڵ+N8\kN,  /@Tr0KnݐZ]|A1T*j5t:vul6#** }] Պ|r RRRpWG<*JlذGg}z qqqXjU|[ͳ$IV5 qxݔ 4K, p̘1V1t]$I(^rӨPN!22^?xPF^<Ǿ»W\޽۷Ƿ~؀=_F^>** ZC>1*`TF#"zj*2Ɵ?^rhDDD@&7[lr8P>naa!NN:h4ԩSn|z{o&݋/ָV=q^ms?n-Z@=ol6M6uRU$I‰'p5ԩ~PWMIsغukFݻq_^S\.?+QH~ ۷P3?~|ew؁7b^=D* ;{sxdfftz ʇm۶ 5l6#77.b4qw_ĉ'PPP+W"**9~zO>.\@nn.^xZzT՘8q"RSSq3H s_~PسgJJJ`4VZv튳gF۶m]&!j+غu+vڅ 6@TSN5j:t耩SW_ņ uYRR֭Cii):t˗CҥKUom̞=Wƌ3;gɟv= <k׮9رctR9s3f̨SO=kb֬YCjj*yٴiӰh"{hӦ n:MCAaʕ?'8P7?Ooī n=_O˖-+ ''ի^{5F}YHٳg{mc(cl׿Tt Wj wrGVm۶kɁ 2tRye˖> qDX/zگ1JrJjHD%;;;;tm۶ qdDDDD;v aaah׮]$(8< ѣGEX;CNnݺA@9990Lh4PTwy&@qqԅ((..yPOE ܘ " fn7yqb(,K<75.\,Hl6[$ YYYػw/~d2K.HJJ€P(jU(lODDDDDDDM@ARס_yyyXd N>jҥKB׮]1o!"""""" Qc%IŋQXX~aÆ  Rh 6 7nD޽Kr<X`㮻ҥK_թ`q8zWM4 }Ylqc֭$u@||w[?c7*z뭀ODDDDDD0uI|7:N&Mɓ''.]G}cƌ*XܴZ-L&"##ѳgO̜9FYYYjmmٲ%ɓ'#===a !D:u ЧOFٳxb{غu+ϟ믿_~%TGC@N'6n܈ݻwn#11ӦMhˤc۶m(((@=0k,ngI&a8p~ifBϞ=M6k9O=Wχ^mo6bŊ>ڳgObx#++ .]BLL z!q:^{ _~%DQDBBBFDDDDDDD5a <PRRRHy 7܀~}WZh(..x,U=<6l؀aÆA.Z ϟǛo-[X~\.-- _|{9olUBlܸO<>t s΅ĸq0i$vmo+% 99jwFFnZ9??ѕ?@yr]vXbcĈXx1kun_m߰a;X6lJrDDDDDDDa(!Ip زeW<sDDDbJOOG||<0et3gO?Ō3L<{l޼su] 2gY0xgЭ[7DEEaĉ?S`Zq @AAN:AXNE:u xj=z4:uXL8[}W}<3kѶm[<ӵj3/ =o:wСC|a@.]jK]5 ӧO#99Z I"/}XV<øZBJJϺsj$I$"""""" 8i{HLL5\\,[LMRj /<\x,U2e ~dffJFyE$ ?s}֖gѣ52L0L>??O<:vшӧO#//}m۶G(juJ%,XiӦa2e ^!** 8|0+ܹsk+ mbXv-ZcA޽tHJJK/%K ::GA޽a4k,[Z¶mpf frAP@bРAXjzw=뎊Bii)>#$''bcc;f41l0,_-BLL lw=!]*ƅ j浩IVf 8uV^]q]vży]X롇{Ń>NիW#//-Z $ܹs)))p:k?{wU5 0"")) V f]MsʸYk.KV-iZn׺5ezhX  ,g~A|CDDDV=11WFbb"6m#Fuַ?9]v=Ώ\?ִ]bSZò>RrG3Nw‰s"]Ǐw}]vŠAx8r\~ngy@wZݞ(77!!!@ h4BףTGDDDDDχ/ M29)H T9,a%{3G96EJ8 R)Uo1ܭ;^z%κjA]DTL&@vxT7QMr!JuWnpB5ƺla0^VmzJ%NOҶm[uu@.{S;C.s"""""""Pkd2\^YjR͚5siK \f͚1[@R)]23R??DDDDDDDT#|}}Fx[ed2Tzg""""""" 77Z-Z- Sr(J&"""""""Ƈ 72'qF#t:  AdH$HRrr(P&i$4o%u \?cGq"$$111qwhtׯۇmvy/2L&VZe>)) {Ejj*T*>77ƍ÷~Çɓqqq;v,F}qQu˳/믿ޠ;&L:`07+dٳq}:fϞ ^ݡUDD֭[A ('{  p!lܸ6Xv-pu{b&t|ᇸx"Zh3f̨u#aРAqymCϞ=T&?C:tF=..8x ~'X?zڴidff 'O"22 o-2'L ][ڮ ؾ};8 =zyu!~'hӦu:t(z- ιs0uTޏzׯÇQQQAaΜ9bO>Tl߾  "gy*^|?* ~~~*_jڪkF5q"HvZ %%%[9d2]b1v#@iiiXt)$ ^}U!` #b`DT_d25k#GB.#''| Zje56PJJ HqK.'cҤINc0jpZyyy޽}d(J|7Xx1uvڡx饗0dܸqP6{@QQ֯_m۶!((~!ϟ ֭ӧrJ`ӦM_p!^y̘1!!!ko߾ij> 8qѧOh4dgg#,, /^DEEEҬ6mDZb `͚5>}: xyyٽ.T ֭[ѦMޏ.c ,^k׮}ޯl|G 1m4۷Ϫ;qB V_-TZ;FAJJ ;(Jt ԩSD_& ܹU+爈TTT ''EEEbe˖ oMp ҥKq7GD zC|ޫW//zU[nxeшL?-ZPM/ d2|)S/DVVڵk7n`0P6{?L0ɓw^m۶OG^}U|WVu=cǎu^Kx!t:~g,[ ӧ~zL&Zڻ.:;wĦMбcGc41xj.:t[ݪy戋t^۹ʰo>>>޽;ׅjg9[][]˗/CL:@RqXj_۷ozK.ٌj9^ȶaÆ'7pA ĠAj2燤$DGGoO?@Q[kѢBCC Z``gڵ[T,`d Ɉ%z=ك2#GD˖-řgl1 0Ld8y}1ydܸqHNNFΝa4T~z{P(;w.^~ekg^A=|||гgOdff"==jܔ~CAA233ѷo_bt:P-BQLBιhNܹ:̔u}5D@>>urQT1b.],b͚5vK}EZZzUWؾ}ZdT*=˖-Cvv6n޼d8ˆG/QPPZwyc{\.ǤIvZ:u F׮]Cvvݲ^ݻw̙3y&֬YA裏:|nu}P8III8y$\<ܹǎgH$hٲ,_z*.^ŋh4twGO>831Eпa0ЧO]ݼ\l֬YXd z)iCDq瞃7qU`ҤIT}x{AVgϞظq]z!͚5Ú5kp( >X-[Ć M⡇¦MRϟ#G !C ))%cNrmV\| Lq0U[vzOi ˖H-Z,-~t: '΅nCnnGΐgnn;Bףm۶usdDDDD ~4iՒFW\AQQ8[6ljݺu& ///d2quOL+H T9,a%{fWv#"""""""44w_-d2Js^{ hժg#+FDDDDDDTL&}y0ccc h4B`0`0@qjDT \\BbȍZ-Z- }L&F#F#***PVV\R Rـѝ 7Fh(//Jw=GHDDDDDDD @ Z^2uz=|}}L"""""""j|j ^ueFz5f  (..vI`0 """""""31JJJ<ޏ3F#JJJ\^YrR<@4@.TQQQo>;Cբ%""""""" i4n""""""",LVmql1ni}DDDDDDDD '@DDDDDDD VHDDDDDDD1tNO8ߡC_u>| 1c`Jo/_ JmCDDDDDDDa|ou놐_GBBѻwoYuw}& cvDuծ];w@DDDDtGwwT F6F`Æ xgŦ/ IDATcǎEI&uʲ:vȑFNlܯ_?#;;pM`;)""""""[D"q卣-z+ܲ{={ HкukL8111"|駟p-jTTTXڭѭ[7?~{F&MlcR)Fcui#FٳP(P(cԩxG /{E|||xS9DDDDDDDd@. ˝N4W_}3(..ƌ3u.\k*dÛo?gϞŋj1\uڍe˖n, ػw/q@PPc^={(//P9rJ~*͛7oFJDDDDDDD!~ʭibe}I-?͏f:R'EEEպ;54\<<38t[5B qw՘[ ^Rm͑ݙ ///d2qLںLNj "@1C)0UynxeXlxnQ,vs[Sm18رcի?DDDDDDD.(Jd2/ÇFFDDDDDDDcȅT*]Y3q 0ݡ5Zڅj^R ooڶmtwADDDDDDԨT쵑K0d< L???CDDDDDDDw&T*Ef\H.Yf4{DDDDDDDDf4T ̥T*Ո@70___xyyAh4VY2 *𙈈܃ 77Z-Z- Sr(J&"""""""Ƈ 72'qF#t:  AdH$HRrr(P&j}nn.zCN<#G0k, >QQQ޽{St:Ñ_/x饗OJJBxx84z룤&L3 .._~eEEGG>xh/Ҙ?~C8zz^uaȑ0`L WB._,>V@ѪU+,\,`DD*// ,@xx8^z%t!Uc41w\BRK.999^b@vv6 y2gϞXl۶ cǎJlݺ >>=6"K,Aff&OٳgCuwhnuAHygdd 44~~~4hv1߭vAwӧzjq=1zzªU+JǚL&曨mƍHKKÛo͛c߾}3g݋-[[5)++CaafnԤI[WHIIqw䁘""pO<ٳg# !vڅT 0K,@?yo–,Y`x\fΝ1b߿?1uT\r)))h׮F]믑={X}mCeː#}%t:5 iii@*[QñLx{{C&5 LkW^^__Z7og_k|OMKKSO=z@/GŹs5jhP^^rh4WV HV?I&*_Gc0"; HIIALL v)~sNF7oF&MoJ6? -[`񈊊B\\N8aOZZaÆ!!!%%%*?X&''cԨQxGK/ʕ+QQQXx16mڄÇ矯9O>AII mш3f@&9T͛7)SVZp;vNAkƍ^ǪUHT6==qqq߿?ƌc6GʍÖ-[0m4+ٳgF|FÇ#99| fΜԩSk֦M 33S\wIDFFbРA8qe2}umk&n݊<裘={{BO]CsЯ_?qvG^5k`ĈwyǪaMYjj*bbb:U5[؋lh4&AAZ%LVcݺuX`wR@@~Wq֭[())A-v())Avv6.^`0@&!88m۶\.`@qq1^K.ܹs(--Xꊳ-LAJKKzj۷ݡ // ǭXׯ\.G߾}믿b֬Y;w. AGL0-X}:w(#11*)vAlڴ >>>una/ΪZhI&+WāGsYZ-н{wxyy!880rH,^X;5jRRRrJULm EEEX~=fΜ}!,, χ^[Xr%6nXT .yfáz-*t DFFO>h4\x^Kڮ lڴ G+sN( L>]#G`۶m޽{cVenZ|~0:-8\>9'OẔT^^ɓ'cGVϋST#33ܹs+Wֺ^0zPm.{={Dff8ـo3gC1v]t:Ah:/s7 [ׅsќ4ܹsg Gyyyz?TU :uµkjܾyfh4$%%aٲe*Λ72 _|L&<snN/2>#us2ߋ^^^͛7TGP(}< g#[FDz]v7PeZn L&t:L&tIܿe˖5kۇI&AdddT*ѼyskN|8G2͉ I\&Mll,on۹sPTT3gCPTɩ#<ŋc˖-8v`5ms\[RoDD222̚7oݻ??ڴiT,5]KdggcǎNO֪^ouPTuz4LrK G#K.]v*'ix ddd~Sp)<XbN:m֭['!tbnnu&JqYdee!++ gϞc2ȓ1DDBBBl2lذIWKHH@.]z qqq9s& &~7obÆ hݺ5ZXX|9 uO?+W?xuFII &OM6wީ8]QvrL4 V3ېM8g}8tRSSR|(..<[`~:Z-233Z+J#F`ҥBaa!֬Yc۷o_A[u*۷OjLZJѣl2dgg͛HNNF@@:_~% V;8<@Q.cҤIXv-N:шk׮իؽ{7Μ97ob͚5j@ۍj|rիx"/^ (v{H$hٲScv !!!X`p :t{?Ss}9s&6n܈h|wVx޺u GEll,}ڶ+Cxx8̙ӧ#00n.g{Gm8p gĉ8tΝ[u*D<Ӹu֮]n^.6k,lO=㏣I&o~|0i$$''cРA6mΟ?oP7ƍ\lܸQ{⣚ -[bÆ ?~ދDDGGc6mbbb\q*/#Ѿ}{ zB{@lq_F{ִ]bSZò>RrG3Nw‰sq9NAd$ R)r9r9 C3fyz>_c#z=JKKѶm[JÇ#>>,CDDDDZ 4ijIDш+WݻwwS56lnܸK| 2LG "@1C)0UynxeXlxn޷&8[iZhZ L&FFTTT rJR|,]&!88#[kxw J9 Ya ***h<ˋ`@ii)ˡR]yች38 P+--VF#nݺ^__z)& ())W]},̘-h %3b`g"""""""0JJJ<ޏ3F#JJJ\^YrR<@4@.TQQQo>;Cբ%""""""" i4n""""""",LVmql1ni}DDDDDDDD '@DDDDDDD VHDDDDDDD1tNO8ߡCx=~Cii)1c`ʔ)ȑ#k}SuZQTT۷>}^ oԹ|""""""rAX6oތnk~ x?mʔ)8p@ݽ{7&M$& q!|I>ϟGTT`Νغu+>Hu1` 0LNS@rCĢjݻ׺_QQ<>AAAشi.\}*--ō7V={d2!77>f(++c0"""""""YP0Lu?̝;aaaI"??zX~MT*PXXx[m$ӭmXA} ??ZU(֭[ƩتjѢڵkhڴi:hӦmCDDDDDDta Jﲞ>}T*Jz%WU]fd#""""""jlMR5ѲeKOk׮4i>s\xyyy믑t@eB5-[zg닩Sq~G̞=%%%2eo=~ʕ+Xt)z{ٳgQPP:NDDDDDD ( 9u}fϞիWC"`֬Yur֭ÿ/|!Jq}a̘1NT&-[K.aՖ-T*lٲ7oƍVѮ];=̘1o6}YaȐ!VQ6 xg#99N$n[5mX7ְl8ŲLӝp\ꤨݏr\-77!!!s 4A`4QZZmۺ92"""";S~~>|}}L&I[c7B !X<7Y<2,U]6YO>$y&Ennð+)) ׯ_ǵkװtRwCDG1gΜyΙ3Wse񹧷zVZCw"":t?P^~:Μ9___<$%%-oРAڵ=tpqt:( oHKKCTTTm[nungy%K 33ӧOٳqy[EDD`ݺuR}h _dm׮]{n>}WT*wrd›o>gϞ qaСnPXX(zt+H; @LQ;wyyyؽ{7d2 3<+z`ƌ8y$hsMb۶m@8sLj_###{߹sg7F"""l2.]NèQV-=2I`^k8׿P^^^y8JQsr׸Z-4 Q^^F#ܪU+H$jhҤ |||ćJOCTh4Bӡ;vo}T6o0sL 8Nj_ZZ &`*:k֬# N%N~x <gƕ+Wm?1p@L8gϞ5fj7nD||o}@?-qqq߿?ƌuHqqqزe Mjh|#GbHNNv|צ#i!!!םh4\x^Kڮ lڴ G+sN( L>]_ߒ<;v -ž={iӦ:[M8zq=֭[RvBbbTu|;vlҥ $ {F~P(P(޽{ HХKlٲ F0DDDuP(e<3ؽ{7F "''Gرcѹsg(JL&X-P߾}HLLD@@1}jc#--MLEDD@~5 &Ο?عs'F??j??ڴi)S ((YYY66زe ^y"00C[5oGɓ'?g*? xy )HI njҒ?1i6p]uox UC[Y@j((-̀!r`~ >׋̜3眙yN^^јud2 :C"T*5 ]t0x`L _DEEaȐ!MڍRѣG///xzz"**IMKw`` n޼ Fjܾ}pvvF@@7nX(J$$$ 22֯_J$%%2GsګZFhh(|}}k.\0kr=^H'NƟV{͉'0j( fՋRFZ/0 Cx?ƽ{l2+W|+V@R! y_*<<<0qD&6=7cΝŞ={he5 ORǎË/N:pDi;ի!ɠRe(::EEEM6/h㈨hwFS[nyo{=cu kvl[UT^`_rss hKnڹ#jkkQQQѤ1>ر#<==$j5QZZ 6P_|QH&d2:u'''888_ǤH$ o F5 s5!SfWk#""""""jۃ&{5k =z]H5bΝ:ͽĻ!DDDDDDDDd""""""""qL8&l@DDDDDDDD6 """"""""c1DDDDDDDDd""""""""qL8&l@DDDDDDDD6 """"""""c1DDDDDDDDd""""""""qL8&lc[@DԞuDDDDDImQ}i~d2Y[@Fpc1DDDDDDDDd""""""""qL8&l@DDDDDDDD6 """"""""c1DDDDDDDDd""""""""qL8&l@DDDDDDDD6 """"""""c1DDDDDDDDd""""""""qLPYYʶädL4 /^P; m0LFaa!>|M6u8Ԏ8uDDDDDDDB@qq1@;vl㈈,@DDdHÇǤIѣGVT*LffϞX}K,Yz{ؽ{Y儅ԩSSsE;4i1w\l,bX6y>::~~~P(:eeeM[kƌ¹TONNT{4-}ز/Ro*,,lk4 >sL0ׯ_o]ё#{Ynnnѣ)@DD, ,YZllݺQQQo3 jm76a@TB$ +J\rߟHd_iiiXh.]ZOԩS[֦F{|ǨǸqSSS.]<㖀CA>ׯc׮]rDV:֧P(0|pرC:45)))عs'jkkQRRҲAPYYbV\\ܮ{ٳmCLQD"+V@xxx}02ŋ6 3f q  pqqX,d;w8rNjèڇ@l޼YYYvvv6J%N& @x-&xI`*t b:V!CfkꐐPL<&Lh UUUB&~ѣ qmtbXH$Fq: Z޽'OqF j~!LI&!&&Yk?226lYO>ʕ+͊-,, ϟGDDBBBSV.]oVK.c̘1AAA9sk-gϞ=74}UaԨQ>}:L.3ܰ0߿ .Dpp0BCC.,7uk_iiis׮]CPPƌ+WNꐚ#F66lXi4|'9s&ƎK"??z!~#$$IM8QgΝ;w0rHqscsIII9s&xb:+Mg hD@. 2;;;bԩ:= [CYY233q=PTppp'zGGGT*<~<@vv6ܹV\ :raptdm6r|8tr9bccիؾ};كfm'"))IoVTl@})$$СClc„ :PHJJNNNDLL ;)S`ݺu:s b,C]]~bbS]]<\ +VԩSqYl߾]cl9񈈈ɓ'1d^;wK#t@W\APPP( wjjj֥z{ŋغu+ h"aM #>}K,nq5=Z{~Cbb"֮]#G@*b…6r}odٳg &`ٲe矅8tVXak$777<3#GH$H$B`` >A3յMbnw#C""f9|0p*++qIXRnnnXh._ ~G"** ^^^DTTklȑP·΅>Fm26iӦ_ BBBPQQ~Ν;[Xg֬Y0`<<<ofկ8PUU%WRR6|2L&C]]uft=c"T*5 ]tƖ*H!C J1|3X-iy&4 qmHNNܸqÇz7V/J ףIII& ֭V^ 99gZPk׮.\`0XD1}t9rgΜA\\.A^Ӛ\]]1h ١r:(--mw"c85+w}?#-Z^9''oMJd2h4 9Mu6Ɯ0vX$&&˗1zhtFczgөS'1~-?ŋM&(--W_}tC&6!SuѣG#99C ARRĔeݻwPndݯ_?ap&LqwwX,B0X-i~~~AVVΝ;O9ro?\J_b>>>A~ IDATz![7kۣ󞖾ڷo_ 0@g|}}m0XDѿ.] ::3f kkZ[Lrxzz @}{&C $?k֬ƍaooϻ&Yݡ{9;;wȥKHH@׮]]ݞ>/6n܈e˖oŜ9s̊ǏG||<.]˗/ S1n8GX`jYeo>HLLQrqqT*ŵk &L4|Xr%}vˬmGڋgk5s1X ___A&aԨQ²ѣGGAAҰl2b0V/JjZg CBin[ `=4fB999駟Ç[5A$}L*B$AT ' 3%K͛Ћ={B" 11Q[nCUUҐ%L:k*6K_!Htu"""D"AVVj͉3((2 ٸusz uaHLLԙ U߲#k5kTanݺ1\\\aQ,E~i4dffbOMz4S9Gݻ:1edd0in|dFl@_orwci+^gHOOGFF222.$4L#jϘ""Yfa׮]PTpttļyj<|PV"`شi222P\\ݻw[=}1~xlذ!!!·bD"APPm֤T*EEEN8Ǐ P 븸@. O H$Bpp0mۆ{ws; ooo̝;ǎݻwIII&eee8}4 Q]]4b]fN;2c͚1ɨ'KO<)$b ix DiӦaDII bbb JMngС8u ˱qF'6s~~>7owFرc޷7mٲIIIxݻuAV ã*LlkڊvcMM ˅@娩Y=]#"`9sǏǜ9so111xR)͛' Yjv؁e˖K.2e /Gb6Iسg1r&"ƽ{9q?˗/orKxjY裏pQ|7=3gҥKCEE-[@$2sڑ)klWnذaM>09Oc`ٲeV\>+VJB@@bcc9̫;X~=^}Uxxx`ĉMm=Z{~sNrbϞ=zٜH?FWWW|Gdܹ3?`޽H$z {իWŋŋgttt6^z m ??2 *]&QTTشi6ڋzg4Uv : ^go?]J !77{n0Q[[ ի##Nnn.fϞ .Q ѱcGxzz6I"j磴>>>m~/ٳMd2t NNNpppjIyH1UMuk7}:""""$L!FDDDDDDDd""""""""qL8&l@DDDDDDDD6 """"""""c1DDDDDDDDd""""""""qL8&l@DDDDDDDD6 """"""""c1DDDDDDDDd""""""""qL8&l@DDDDDDD&TVV0)99&MK/Wu8Ԏ0DDDDDDDdBnn.rss: QXXbӦMm#mQ{P(P\\ 'Pǎ8""˱5ۅ I&aј5kvBaQ93f̀ʋk:7o޴\CfϞHYԾ]x&M`̝;?:,(JA&Hy˗/ǻh59eeeM0:uE⢦9>AKGSq[{nB&aԨQtu5 >sL0ׯ_or[J К5k=z 22áv=juuuDVVHL[nCw!h4ÇquڵKX.H,_~Arr2,O,.Ϙ1c`РA-Z&?ׯGZZ-ZK?:u֡@A?1j1n8Tx{{K. @ЃÇc֬Y7nN-Y'ٳŎ;0c a̙Mz*0j(L>qqq&SnXXߏ "88HOOj|ᇘ2e &M&?<"""޽{#--Mxڵk ˜1cpI]]RSS1baƆ3Sǒz!~#$$IM8QgΝ;w0rHqsۣsU+)) 3gDpp0/^3\q[3T8\82F\Bbcc1uTރRʐ{?J<==ѫW/8::BRxqTTTJL]&*eee(,,u݋/b֭HHHH$¢EP[[kv--C UXX˗/W^im 駟СC刍P?!Ocԩz駟̙3ذa9_|ݺuk:'yyy1<==cǎaʔ)Xn0wDYYVXSٳؾ}+2S@ii)'ObȐ!XzЦpUl߾{AUUU###}aСfm#F$\ @P 33p=K-c>L #>}K,nq5=;k5nD]GT*… Q]]m0V}s~!Z/r{{{:t+Vhr[y\\\#GB$A$!00pqqPzgjqYw#C"""hk؃f޽:P*HHH@dd$_HJJh֖5{l_O?HHHԩSѥK*++qIXRnnnXh._ "<** {w}3g **J6j5ߏ{pssĉ![Nɑdx̚5  x ###PTTJQFK.0`lrr( 2Rǯ<(J=zQQQ򂧧޶;m42݆qMh4TWW3 qn7ŜcXaݺuիcU5=:kkj;֮] ;;;\p`1x!N8ӟ~AM)((@iiiK9*m^ϟ?[ﮭRt&-ڦeu f3gѣMɁF[o%|R0tP Xt)֯_777* ݻOj⫯Bzz:!ɄfϞ- gΗelrpwwX,BL&FisZ<Oc~~~AVVΝ;BBBp:b^= xn7Khι^샯/ ٸsj*??Xlv5{Fff&r9<===j ڋ5k`ƍ]H@DDdDwww$'' ]k4j 5Wsʚ3gO-[`ܸqz^&$$)JDy4M^-Y'丸@*ڵk@UUU?>ƍp ,捲G||<_`ʕۍ.3U!ڋZh4&w2b"--MMѣiiiXlY1k%me[oGsrrrjB}P(͛7j*888>C^Mhۢ;IRD"(Jaw#CxF#""?a׊'֭[s8pEkNYRSLsw={B" 11`99998~8"""uV]wi5w\BTWW#-- b...F*Dɓ'cӦM@qq1vmulwĈHNNFmmP~ɓ'MsrKmgС8u ˱qF'6My>7owFرc7k2\]] 3ǚ =QSSN{»!FDDVػw/ѷo_X/`ʕb T* 66֪)k׮x献o111xR)͛#!!UUUoիꫯ^Û111X`jkk內~E넞GGG|G8z(̙3ѷo_DDD`Ϟ=ȑ#u.moL&k#"""""""qL8&l@DDDDDDDD6 """"""""c1DDDDDDDDd""""""""qL8&l@DDDDDDDD6 """"""""c1DDDDDDDDd""""""""qL8&l@DDDDDDDD6 """""""*++QYYaI&ᥗ^իW:jG"""""""2!77mI(,,ÇiӦǶ=S((..Pcǎm;vJ%|rM 󹹹GYYY éS .W*L&k,22~~~C@@N]vATZKqq11uT9SLڵkφ5 *62ŋ;`ҤIܹsòvogƁeYj3f=whrrrڣ5sb˾Kkaܸqxw_]]L4 /"rrr{/5k =z@ddd[C{Q㏑&F{|cܸq󩩩F.]Z?pf͚(Jdffbh4z/vQ*ӟoooڵ ...(,,͛7ѩS'b{Wd*̳~zaѢEXt)jkkO?Y?9njA=:F8|0_]v %I[ZBu :|uVlذ{G} pvvG}2l۶ +WDlllP㧸X8^@AAA8{l[A@DDDb>|gggCTbԩHNNnrqVprrX,X,F`` ^}U\xrܹ<>|XHHf]D}I:wRSSq^^^mUМc|mU3~7WUUN:A,\gժU2dKbԨQ 6`ԩ8wN?wUU IDAT| v ؾ};^z%dee9 UUUB&~ѣ qmtQ| !H7Q[0""j~)>c?زeriiis׮]CPPƌ+WH!55#Fh4|'9s&ƎK"??_(gĉ~Ν;9rXj5>CL2&MBLLEZXXkkk{nL<Ǐƍ wnWT`٦رcf̘ ̜97W^EXXFӧ#..{aÆ :}I\XRp-hnnnxg`gg'l#GH$H$B`` 3<WWZ =1y&4 qmHNNܸqÇJ%ׯGee%,ATѣ<==e5ҥK|r|嗨g}~^'ObŊJpssâEp&D"߿sÇ1ydDFF"++K}=~8FpxڬY0`xxx7ހ;222EEEPT5jt`-))o[V6D&ݺu3unlr( 2Rǯ}:93g ..Xqq!]vEii)w8p %%%ضm<==WWW 4vvv(--\.oNAAJKK]DDDOjjj"x{{s9ro r*JgX ܿd24Ny ''44TYPԩSؾ}; WWWh4[·*J/1D0")) q899Y cӧ_}Q^^L&|ޯ_?a=2dn'|w 5L4fm\mb vZ?Ysb^=?2N$ [SoֶǜΫk߾}uD"";;`˱}]tAtt4f̘ .^k$NEER)߶m1sLt `|r޽; \OOO899odAb͚5ظq#y03=1bHKKիW`_PPP4anR F# kvöTmm-40$ ̙#6!!OӧqY1n8ٳ=z Z|_0|!<<111ʷG||}m⽼SO:ou&n,//?~|Ůufootddd ##BBP_ ""j1O=nݺf1ɨ9yNDiӦaDII bbb JSNr7nԙruuuH$$gfԨQ3dȐr=8;Ƽy6mg2|*Ю\+W%RFEE1o<חۇzooo͛ǩS aܸqSz|||7p2ZݱoժUZܲݻl2ڴiĉYlK.O>߳drssiӦ /Rfʔ)\Je6yoYt)Fv1bĈK󴴴JUWnM\ljy{vUӋ}Hݨ[cMϫ狎s,XdbbbXlf}EJz4k֌_$5jĵ^smWԽދdɒ%dddн{w/_s[oaZbD4c6pl 2:ܹs/4r+Zo(Xg,}魱jz"" !!VZ; vS/;\"""HÒȑ#HDD(ߟ v233ڵ"حJlM%%%&5zCL[,@`+ssw;psN^}Uz???wVWLL 7n,pp2dȐJ[~=/2/Z_GaժUx{{cxx2e gϞ%..ٳgpz>?s[zzzԷo_֮]0RHDD.bi_|ԩS?~?|7޽>(7F0ݛ_|#G`?~w-[.H@?X7&Ajkh4^ЖJ7|kٴiҥ cǎ୷bҤI^x;o;0w}7}eĈ"m6ƎK~뮻Xd >,/Bm{=LR oooav^{Ç3l0͛wA .og̙3cDz~z&NȀرcG+F.[˖-c{)mu5)wر;<ߟѣGo>|Em&[*<L>}\/=^9x͌1㏗s~[ⓚ[r%wu^^^@{6995رc8q\ˋi&ײ= BBBp:J]&>>cǎJVV6 Ddd$fl6YYY:uǏsarss4U2J%)..vJVz@H͛ʕ+>|8frfԩq]t^kӦM 4xN',YoήK,a۶mgٲe[+|@rr2/.0`o&\sU\v ILLk׮ns)muՕ ҥK8q"WK.<3շyMuիW֭[۷/|+**.KUU/˗/gÆ ˬX„ \]]HΝ;ǚ5kx'..=ȦMx裏 GX+*&^JJ ?skh>`ԩ:u [`G۶mӘCCCر# zI>}X,X,zMϞ= `0бcG5kVԖ&QHDD.ɪU6lZ}Ѿ}{LXX -- F~ }t(^PP6##_WLJ~H=ٳ'Ǐk׮Z|̘1("##1ck}^^Wfԩʄ .;{!**?JÓ$88jZW]P%eƌt҅|AΞ=KbbbmTEm-wݻAaa! 66ooobccٲe v믯|aUՋjeŊL>pfϞM^^7o^r<3tڵVv)RvѣGCXX=X/'|B~h޼yۤW8qdffVOaa!.<@ZVfԩL/&55K2z S*33}CRRضmңGFѳgOd^n-[ХK6oLlllCo^z)<Ȅ 4hPs$%%p8MZkɓ'q8<î_m6kRݺuA hڴ)P~&fW6_պ-UK~~~mTEm&[Gq҈QF 0>{?թ^lח]rĉjEVZzm{sp6mh߾}cy~95}HլV+W_r .XKHHH⋴lْaÆIiڴ)ǓLddkfs%C;uP̜99s`4u0)Gg27<1~x͛GTTkhdҥ,XO?]nz T7[u]Y`Ap8*7 +Xf k֬aڵre "$$۷WͥUWneJLiŹzi{sEM\n:.44 @)));wn_u-zyyEFFfW*ݦ!) ؗ_~Yd\zsa2338q"ڵϏ#GpruޝYf;i&ט}+u'x{Ve!22-[ϯ"cƌޫp8\zl]M˭Lum2y޽{{n?ڵ+o6AAA_T,KEp8窫^ЫmUsst!ڵkW2j~VZ}wAt0|*͛7gm?C$o0|BCCJ{FǡC8ts=D2%DDT4 jJБ'|BVVk0dr5kp ٳgI- W^뮫e###xWlogܹ:tt.\Zo67n/fǎvN>V\G&::1cưrJ~wXn7o6_պʭNum2y^ze Ła`WOPP8*Ϗ;3_|x2227o!!!5a$s5矓Jrr2s̩y>u~!{%## p88p`r n  5k_o4yYx17o*T) IDATӼ⋘ro޼{YfѡCgнtcQQ999@999ۦ!U2HDD.ɪUXjUeݻwgٲeiӆ'l2.]J>}}gɒ%ҦM^zr]̔)S.$|uyKVZiӦ1|&OL`` Ç/ۛyq)BBB7n\s3ͼ||,]Hv1b%JUWnMT+R׍J0`-vHѣرcL}ÑD=DDyILL$..ݡ\`ٳ &0i$_pwhnջwo,YhoOOtMw&::@nF:u|p8|ܹW_}յ];e49z(Ǐm۶=z>z>Nq: 呞:7^@}eڵC %DDDDjoa|G>GEE1w޼9rXVlrAw|zb*`Rz|r~G^~e|}}Yp!&L(((`ԩOt҅cǎQTTTe]^sW";wk֬]o_y233yl̚5ŋ3ϸ9$&&[oEhh(K.GeTkE"s8r.]s=j7F¡]U5tPz=44$(((]ݛ"9Bff&;ҬYzbőܹs/4$""ujb OUW]Exx8g&//͛7f_~Ҿ}{:wE$88>ڷoOxx8 СCUU Č3ҥ !!!<={DV+13f **Hf̘qAwy'sQQQ/սnY{f޽/r 66ooobccٲe v믯/UKuE*3| _U_a4k֌N:a0$99mRSSdG*$""u.99VnM___vʉ'8p =z`ȑ!={tc"kڴ)P*a_;}!))uUmVZW]N/$%%p8ʽ'n[[nu<ѣW4iԨ ࣏>+7Ou5ՋTbצjO<`0%W*TEM6o߾1pJ<_rz+C%--/W^yPnZ퓒ŋHZZǏg޼yDEE UUWneJ<p8\sž/111ٳm۶ѯ_?׺nGʞ={\Tz\SzsVX4\bk֬a͚5]իbyyyUWg0 u]޽&y7'..XbccgڴiƒT/P"## fMnӐ^/q] JHv-s8sUWuޝYf;iӦrBl?.`3f ^d"L&NHvȑ#>}vUմTڼn޽ٽ{7[no߾tڕ~ /*ꥦ{q:5ڷزeKشiEu9~r1:tvոھ_r5`5gڵ;vc:w/̎;K{FǡC8ts%4&Ґ)$""r7N^|E`޼yЫW/Yf gΜ={KPP͛7&557ȿ=hƌʕ+IHH`ݺul޼rssOr;Peۯj]uVϏosr!Ypau{Ŗ-[(...7J^?AAA$''t:??*5R>sRSSINNfΜ9hڣlfܸq,^;v`9}4Ֆ})>CKFF .p0p[m/ ű}vRRRHLLdŊlڴaÆ%|5k_}ܥtcQQ999@999pR]L*9DD||}<,ZSbوe rrrYd iӆ^z՝nc֭5ݻ`wf3:1~-K.h4Ү];FA6m8q"˖-cҥӧϪ~ZZZ+&MRm^7** (shѢj$=8;ɓ<_TuO2{lFExx8C k=̛7SN¸q㪽`@tt4;wf$''òe0/kOm/4nܘ b!::^{un>P1DDD@JJ IIIlU2r+Zo(Xg,}魱jz"" !!uIՆz[b߸{v'01)͚5}6!Mi&ࠦuҺuJ \g剈嫨wq***d2'H=PĿe6'pOTa~gcmքEpqZX ضG wKAsE2Z~9E6m PPDDfӰ:MPPzHe0q,F9FO jDΝ0LO@@_? mڶ"ySBCCvmh4)F_˝?vnӴj={.3{ EEE\{]g\3ghҴ16{1{v[Ш1}||Yfl6ZnI^~Npմ#bW'\վ9k& 懢 L!_B'IIA؊ٗn`4Ӯ5Κ['-""wp(((PHDDDjM 08N"}hπ]d%IG9|7k恱#0L$>̙Y>dذaip 7nY39? 'I9OӦMٷ $$"Y&o^~iS=kZKːf;ARdX@c ;{hwvۓq?I% ny n|""ٸ~*_DDbl6øbl65ԊML=Dn&rkkIKK_HYI{0:|c7Әf M<}6Ef^^&Gӎppèȕ!\qT"""R[TNdۯp6j? Zg4BHpS%FV<0{r6-$oGڙ4_^Y!L<BVn-8sSgiܸ1I'wC,X~kY/1f]l=ݮˌbo7nѯ' fat@$0nK@S_zЋk9qsqlN'~Aٻ\FQFat~֮(?ہ3SOH_oh6s=iMXp{&% N֭?hnt? &hep*={`oر -ܻ7GQA111lܼ!COy}ZDޱ4m֔n;”)a1جt FvN;.a %˲3D]0ki+Zԅԅ^zO?U]qq1VbŊdddT}e ͭվJ X|||jo^ a̘1w}'Tv%""r@5RO閑 X^I iD@?!!t:I&[ߦT)4 [d#4i҄Գk7~~~}7>~> yX88 =n6meێ|S~W^>tԞڶaas:S,FY4:8 jN3~e afa(ɸ XD۵kcǎeѢEddd\RY>Z,Z￟ 6QT"""i$?[%gX vڶoIbo\{]WKv@999ZTDFi#L* ~!ΞM0o\1`+.f`2

fo߶V::?y/&/ػo?' I,Y6I)$$&giO?\6dn?fɠif>,᯼i)px.NDDegg3|F]@Q]={7ngϾa"""pE٭&<68͘MF2Ξqpk#8Nv;M6%A~U"""X;xЭC$7@AAgӰm7 ^7oɱ_~4ף0Q :L,|z@NҦM+N`0tc0Hqۄ!sL#@ݏt>w׶KQ:;So(>Q-[Ch~ PTTt5x{{P.+J]0^z5xY.,Ihh(V[Io, NGJڙsѸqcyϣI?Nn^&ݻs//mud3LHRR.F>YI een$$%rSXwHƁEf8ӏaNfl%3tqɾk֯_ѣG#<<3vXn&|}}ꫯ/pwp̙J׏;_®]_Ÿ'DFEpp0|Nh"R+>swreѢE$&&3ϸ;#v>Sfa(**QFLRJՀygÌY{ePHDR)W$TժM~"DB!`03fƌYܹg1LSbH[xr>}޽{r{HJtz,) ځ!cXepHA|y;/Z*Pv/iAqq1Ophbbjv$ s|r}O|~عM7:&'?Jg- @.8YשpY_#u]gҤI_I 0 4:tm{ԩ{MVN:\q6lsΥ8Nz- nAΛ$^| 3$W Ti%%%DGG_Oʐ4|XX#J.݉L7)2QQ.4Zܻw/PtEA$.R֭[L;DI*ē/25v;,33)))wYj%-&6*SHǶ 4[ '=n2Ҹqcо3n"_Q}֯_ϥ^ʔ)SRσߖU{4iRԩSYlGUV]fO>|8|$''ӷo QuA>.`_.& 5d4MJ@WbjDPYW_6@MC Fه4ME!** %4NZa^zUt;/`#pX.Gp}<Jκ/ữRf"NX7M;HJ6DdV|Ku9srxGʃ?P?X0x뭷8p ݻwglܸ'lذÇӽ{ww]>}:gϞ<dgg۽{wNٳׯ~y_eYј1cp8x<~mt]gرYPP@jj*F*_7c RSSYny , f…tMKZ|!*h{Yꪫ裏j׮[o,Yzw}-[rQ4Me˖;Ucƍi߾=>,@իWERRRf͢e˖un/\f"owW\qAAM|W &/0'y핻$͛6dحxn^za.ω?`s#a٧+8WʡȲD(aUd'pT,hQn|&\dH0fx焂p"7PP#00_|.NJ¤㈌qo`wXV53}h0pTۧVYYY>СCAjjj o=8|0 6$225kpW##GoIMM%55իWwl)RzΈ#HMMIηLA_Ӯ];Ν˸q~sDž B}ll,ƍAAwo !YdTSL 8uʤh٪^@ hڛ70caݷ $&&-񑝝M]޴4MBB-bЛ)../b潼:C0 ͆MO2{p8L͎"33>^D||<O}Ӱpy嵧s; 2 ==ڵk_v [< "IRA111|]/իW3g/=T  i>_Ajq$%%⴫k CFy d [CܞNSz$bZq:Ȓnƍ#|sF9Ͼ\mLab&Ţ2jĭ(ɰ+|*<@l]֔x ks\yU'5WaJb۹0 )SN6l@(T6ڦM0M'cTVロ?Cb[nVZȲ&99aV_eTӁ#G#A#*dY7AA΋"0q U6p8f)VZȢZ6n7i q9aSr(}/Z 5>_-e}i&$''{"MEVAzI?fa='RXd a̗g6!3W]s\Ţڱ_| 99Ç1| NG$Nʥs(6ļf$Mw3f ;v SY{p8hذ!gĈİe˖ v^ gbZ + AA^Ow PPZ)AI0MBj%""Mt:$ Mx57邬iа=E49.egvUV{"4jJniEge>_w^7z>>( api56m2 X26o9cHo˕pcat֙zQPPpAro2vX5jıcسg5jԠYfu]TREO<_cƍ4mڔٳgeʕ̛7Y?~<;v`„ 3EQ7own׵V߫{&Mpqt]硇#pV6bWoG  KHv/\8jӏP(9 ƒydRbǐǨ]'3b J<a(xKVrOҭǵJ`Jv߇(e[WHf4$55"0#=(y' `BNxK1MI$S'3{=,1~<8n8߮byq4"vˁqᨪJAAnw/q48fAݻR}下AUsISA/vUV=Vkg*< esBU\6+,S5Yae$\،DP?e۳CDIvN8Ld׮]l6 @$~O=9zuڐR+M=g ߤJ5-©ZiaVnHbb"Ȳԫ_\$IvӻwoEbU\RE)ȑ#³OMyѷo_hÎMYf-7 H*U(**"**TQ;^A 'ZABT 2o?f/_)?K)ӴPJ׈#w?8߬_gC׋[%F%3bCG# aWl )T&ԈƮ(((D J<>n@DD,˄|Cb+o䔇xrڋhz`Ġə;-[!%%TdJ] Ov&11ۍ頤̬g3i&AAl?E_ ѻwoׯԩS+:o<͛W}-[(T 0 |1~. ѱS11)Rn>[4秿JNWq-1VYkd/\7ޘ fMtR|FU.':Y :EEl6+EEEN-8U6 GINNkN6}z^AJR2[4滭ۈfow]$%c-۸! F߯gw[p L`M7o.C\GIll4`LAX,:#glv;bWCAӧ^zGg%66Z&А!CDw$@`A*∰U $h*,Ia`XeАeոm@ P8MNF&M$PO #2v'$ ͅAǃ"ɄO/N5X+rgCO0}#1Cy;w/>eYS Jw(^{iժUZ_gɒta8CASrh&]`vsA?7IRlp7z,Z IDATD2LH&`1@Ve<leԠ@c;Y%f-ZbKж>)JIb ~jV à=^.u5''ߏrj6=vf0cD-|h!VZʭ#oDzaV?)5&11@؉iQIBqMD  ]4prDGA#-[R7PV-ysrȐ!XVx"J$PjUG$ޜ4C~( ֔)}^QNn~yt])-,0B|jչ (*cG׃LwÉ$Avv6 IҠN-?YH'_nƤ~=RVI VF) p-vju٧'0tp6mX¡Y8HII$'sXǞADEC4hЀk0Z)uk'S/*!;$˖~]fAYV"""())U AAsPcKoT)j|&L&i5M𡣤ΦȃI@Ȇծqi*41 P;9x0CP3x=%ٹ ӊ8ܹ󈋫J(D$M+ҎhF6߫FaG+ٿw/뮢qUfBv<#mӷ^Ao6ȋ]YbwAA.8$_n!o]ӟ lbd >XD~~y Y'}~/f1 isr)."a( (Ȫq#F|D25xۼBbbOskvM<]`؃ZЃ-Z6㆛s߃SxaluKffyի?~<{ 6O>˻Bde;T4qDxZ3ϐ :uaРA̝;|Yt ZDGG.L@UUE   GB,S>},Wԥˮ]34^#>,:,]D$(((@7 pM O`ʔ)$&{:uDnn.IIIdgg~rss0 B K!V3ҳ8S(Dj9/Y5_Nc4EiSNe̙ٓ_|^{uec,}l|7?YuV5jDdd$]vaÆX]A*t@n_v0Aw%@`JabyC4 RйkG\.!mH6Tj&%")NTR0 ! C79wQOFFpp8LLժde2JIM9W(famdedRF2kW&MaA1量k~?>Dk}NlBW_fjcUdl yТy[V݄|ϭ\m۶1o<*jժEkzIKK+_wB\s 6l[n%551cСC? v_*QQQb/AA~w"T 󞚁iĴ[{àMVnd6k~AGƅSDIiiEEE,2ҼYss OMy)チ? bza]~믿ΨQp\=3c nFvʀ~ϦM>|8ݺunW^9ʔ;|pz-wСCٱcǏWMyW߿?cuU+o+%$$Ķmm޼;ҵkW6mTd&[n-י0 ~m @Ϟ=0aٕnAʰX,DGG!A~"""b AA M܁Ud-C 3Ѭe3I6j_ҐeCl$Uys1KƐ$فԇHv;F8dx<ԩS@ %0n=äB~1/u|]RPd?X†7¿Bs0|~;e4O}nY7o@$ҏCX,6jT$*IYZ7捘3g>|v dffr%>$MngժUL:M{G θl1k,̙C||<ɓOX,+lٲiӦp8={Gdر$%%U}+С۶mcРAlܸkػw/M6%==`0Hfgjٳg_3p89s&cǎ壏>b]A΅ff BW%r OAAh"Td~pٍj~~fϼĶS3x8UYs۲-?-KBPr B:E!!܎l6{٘?iGVvaУgWn9h vmDC\R#> ߡa:DGGuPeqY5v8_-)7r_WP&2GAuVFңU?p4 W=++ 4>~7pu!!!aÆݻOy>ѩS'"##S7>붳 C=DӦMeذa֯_vA8_Mll,Ѹnv{yu3uv;nhbccq"# E!2*A2Ż/+~nNZc;,]ѧ$%',4$PLY6QR,?INMot:˶md?iH,DGG#^.#?XsO05b01#G,dޜόɨQfw0=v(^2$uwGʺS&̞Ɗ'**'rK=s;VR( izࢢ"VX;())!++hvŁ J|~M6AˣQFDDDХK>Cns6gj>OpЬY3=zvATUAA~g?B |=z %l IW]Փbȁ(*8V ˿LGz$L@  C||]v)EcٰZ(Bq"$ EQ0 }'ÇrS_HlXZlBf 1~^xuFÏOes9un-tfd瞠[f0nh !& 5qٜlX4't^yų_?OjK~?#G$//ng}6&23gj2i$&Nxmg+HRYV80spp8hѢ۶mcӦMtܹ|[Ν9tl۶҃>]Nwy}V!>.   ~d; @`JPA}UQMry;:I7IPTM jy,gH7|ç~ |rn7xb 8ahiٽP(DǎӫMƑȲ%VЩ'fތq;`˸aN<ݯg(-Cn& O.QZZJ0~8??=ij;q}(..殻v8N~[G_gݺu8q*[ILL`\ϧTnƍԩS5kƛoITT T_j_:/0ػw/u=AAAl 9^"T Vo? C66TǴ4%~i2' LSW竵hٺ5:.,{!??3gy:a4MN:?֥K,Yr1.N}2m4KAAӧO'&&FL+/  /!*bWU.O G0-Waa!@Yϙ$8IN ‚)8xVEN*$&0ü5JJKNnba(yg1!O-FU dYF4n6ny<mR{sMctӽ{'9x8cDz4 E:ΝcZlsP,BRm*/F/`ь9 zIIIᮻ_g[nݺzYf z+W^y%/橧jqʭ￟6mpswG||9_>Ps]t8?dŊL40a:vȃ>Ȑ!Cz̘1CtAAdHU1S᝭_.UXY+'Wx}zY| >s_xkiiݲ6PNeoo&oiv{ϿDe4vMLL,[nE‚,ATIDrrr -ŋ B#b5}*:cxu[~4]îXn2_|`c(o62e]њ5k3FBVO<͜W]p:"pkۙ@Wed wRv"UrյCΥYAAA?' iŮo*67eX@1Ux ٲYa Һs~z!߁b@maٳ/wi `ŧkWWvoʨ7`eY(̌s(.ClL@`m8z;k.\v)V棅P,*a_Ri٢ 11<> E%dt&-q C*˄Mx7eIl{J)=m>Y j)蚁H8N玝/?UJ{5N/   PiCt]*AS`] _|QlwXb%V`0ȳOa?L4M~?7ofǎ:tURvm~?QQQ4hЀzEtt4M6%''P(B!, ^*i&RjfĭVR5? EQX,5A ]!P&jLl]^^n|#ѱUlted!-9~. 4ۭ{"7xb]AAAAB*A2wp] 7 udSgάwekCiYR8ӟ}pDͲt :uQZ,kT%Ӷ]+ڵoEdȦem uhV,BZPUYӢyم/sޤqFE`)( lپ&y9hF|8nƏ5Qp$CRxb$y[|Gdd$ ]1|0Li<ɣ%]$   ¯ʐ`ǚq&fB,AGY9޽{8z()a;(-QRRly|PR#GANtڅI$$UNnЏĤbbRbSeΠA|~&>a qr atONn.o~IRk?[}%ԫWRo` L8>]&1&`"VLI"8kroejVd\ $   ™P%H45,f|pdׯO}7M&&Expx3xV'OVZbdE&)&).dYpˆeђeDF 2,:k׮%""-3p`bD{^^ޕĚ51tUQPU+VdT#fƉyHZA%Ȉ{AAAAUbJP ȉI,]̄Iwt:5Ǻ ٟv+{]I-**Ͽ0U+6Х[[cq:e;& --AUU.4-CAInE')Sv {!IW*^_)-}kxyXTm.qIn٧g.ڶkE00 <Z w}rfJU!RS!3   p J0$5i|xt8e3{9LDe\.GZԭW EyᅙجN7իW'reÁDUU|>q4|{v \4nGUU6mڄiHJL5:ns=i>t`MkX-*`jc}1M@ Dn> 4$1ƱsNlV+֒aRRRg+lJyyVo%Agy1/    g 2*A1 &r  '=|ӐYr5VBLL,/8Mѫו5?Sօ @Q$IBQ a`;8uwsoasרl6ZhE +svV@qj323gӏ?_;+""vρHF(* 4Zmb;Yb}#&nR\\J6C r=11Q <^7;YFv/UAAA׈P%ČqiE+T9$0zp#1t8I4dp1zБ4i[>zaa!v8vbbb8|0mv܌W]>0 &Wtʊkhּ6zXI&ln7 *Uv̝999lOyw'lV/EQØAcؿ? b?ZH5}ngnڵW_zKZ4w+z\˜W_䛯]$   ¯.R] +#W8NZ#* }}炿8 | jX>N Qd ǎfJbA JK}X*dt:QPغu+ɧ_`WNDZI8v"""ر}ԩSv[zQˉiH|e=iz#˗EǎI}{&h@dzw+{v0eтE2E$Yg횯.b9A#Dl\y.bCL 5RZK yAA᧬VkgDŇ(IDAT*< `l٬LTXf|3L*!Pyah7iba( ,i$ h,]P(Hj6v'I8SPPUQ9_LK,/k7%9>=.'S5K(hW_՗9DFFq4lЄ,:>8Wtmu}IHJuCQUM0MUU H$`ZY8U2j Sohݺ5#FރFӭGj7cYҬ A]|B!BQ,XVVkyD0HAA*?#$ S{/Ơ16].&r@В$a&`b<$Ԍ'  ts1<Z0DQ_;O l*lFH捨\UUIHJ`;v Ԙb]ށ{ EQ:Iݺuϧ⻯7ѹkMx=0CX,VL4+RZ˖ծŊ%sqGEtJ'X?@IS#5`.*9:x())vrleeAJKKzDDD$I"$  CH tHV 7=bp$ X C04LSjU^*ϴ =zG38Br󊘿`1w7-EVhXq1DGGasIWvBLt F9,_5),(& RHp }HK؋j)Tu]?iiZYK ~4=iJ,tf؈;(. IN]ivE; B8q4INN&..UPUE\\ɘɉ'}  $@M[@4Dbrٯ,c3i* 3EJl.g$PiG9t6"[\䓒PW^IbxVF741.""l6LS/'&sh&OenOQapz_ݍ*v,pH' IV0g&X,Q24oڌDYW^/|waX8|0đR*2 p:` #22}~I^^P'e  !@U_CBr x +l&QU .̌,B|N%&=$^lM5޾M4[DjRz J}h~[Ġ[vpljKHp&q`aoQXXDK‘}H #i`Y6@/Gt˜df@UULٔy|z]/7vS'<_A2 bcc:㣢o\AA1P%5B?ONoTN{U}q3܀$0pi@Q>յjZւϮ<^*][޻e"VDUBP5k rp&3I~=<9o92|}Xuߟ!>|XoڬlH//yUCGۗ_5<}hi ei&u-oZ-|cf61z?#ˮƍw~jڿ|SE~y<E[*-(/#. jmmaje*Y?Oo{%UPU _H8lQ4|no߾}!{"0 @@ihiLF4W/t| UUy76U[?ܮõm6=gpI$]| *)3:]ހOG^Wuuu*))O?OÃe>*]y7_;РϾW,M o}P`Plޤ9+O2t wgݬk u q+V dmh=h nh_? Вoo^]uo\#OG\E^֠a3@V\EV;TVVp֭[siD":un6f47{ BUEEEZӾ O5j(|>C7xC㯽Z Z]wu3g.P(gyFVRCC***4sLyYzPϝO@:5j/<.L5iR^~@yyy|nm߾]^OkXD|%(SEE )'[UQQHD iRM94~y}ϡ r{\ ES/iDpf0MǎQl$)Ҹ/?KUhui]znFў$W$vfV4U$ћ3}:UVV^ȑ#=X Ј#r޽{rQ跖.]?pO~Ç WccJJJ6 wl-ZH/.}M#NQ(Ք)gh_?S'M2oPKsT{ #@=***Vkk6EQ]׫E>O[lQMphŊU*6JE'^z;VF[@ѨKv|[;v2TTlV~~@ԡC5~8+(??_n[Oa7\>l\>ޥ+.T+NRkkklF(믾˯_HkU:XE5_ Ӧ?mI3_e R€wIڽ{x =c}Qlȑ#:rƍg0ob{+s<~ΛwΛwo؃?+8~lcyYZ?~k݆O履m74gَ65@wݻW*,,p|رڲe g…Iϳyf7NyyyL C kd?;'8a:tP+VwQ^^N=T?Є $`͛K.Dzj~{߮UVV_׬YT^^@/` ǫHc+dҢ ֘c2+B/-[G}T^WfR]]]׼+̙395}tXBנAtE 'bĿz>fȐ!:|pǎSIIIZ稪҈#t饗vkL*?//1K{eQkkn7)`]1~xUTTh8qΝ[qٳG?n 2$y͛7꥗^Ғ%KTTTkF}Y>'^7;} WP ta566vb{n ><-Zui…x3IǷ.ַ%G"iϞ3 M9r~ӄ o߾?jjj`IR$ѝw)ǣŋ0 -_\˗/СC%Isٳk޼y=v="9:T@no>L8QÇիcǢѨ~Xch0t7g?Y׮\RO?TVV .K@@ A@0`DQhر:g{a_^֭Ӻu4i$=ZnF#G{`<ӞO8k͚5ڷo,X  \.c[f>s=0aܬP(јrrTPP})wpXSAAA7UUUZfݫ͝;WhT_%ΐʄ T^^K[nՁrJ-[>@@T#SӾmw۞sy3Ou3ǎ{%MK.o~:tHSLwܑ?_Ռ3t7=Їaˋ沫vܩA~y^+hT .իU[[Aiɚ9sFyf̘ӧ~$ zꩧqF9rDGW_+2 Bк%<"GD!Zeٗml[ r95tٷB 3I*Q5Fc}Z[[{n3&w SڵkN:$Xi@n>:~$)O,R@H8"o=Une~_.s\rx_l/B $Ϳ2d^ sG'!3nl޼R*852 3I?m D+TʟmPU˽'owGrHn#dOg~'wHZ=u`Z[[?>p>x`I!{U?CJGlWDt#>@T؛Aۃ T0m+ȯ,1C3iS>۶ӿ崒ț˓g3sQ7m?fh2e lyY}Y~7{wOLYVgeG]ck3Y+uxßD?b{dA d>֪{hN,ǥ۲m-'Q%5?)\d;s̱AN 2a!t"1=*k?!,rc{I6V I>Bl&^z̺o=f7{Xz5r-%ӿ5~Vcɪm'pɩ@VrJ5u+Y)q5TۏG O!Yi`mkOWv9~ 78j^[L ؏˶/I+[rQb'ѱd=^? t>/Ⱦt@$Is"9Grfo\*D˴'/J|#լ)u#%It<Ѭ!460Pm{TSRQeZ d˶ 2*z:z7O%89Mm?Q#u/q|;S2yLC )qdӺRMJU=zF$Tϥ?(vϖH2ytxϥ'y5|}"0l!M1&YtC>Q#9?7!D}ҩ0ΒiNb2!P> $:W  2ylt_'~G;X&'K@ߓ,J4:UQ&ϧ2` !xw Sf͟$;ݱYd v2m| t|tl?]UN 5YKgL&3tO:JAP:2 Rť^"JB#''Q{~H 6yY:RM 7>vq]9wrZϓ*Tuڽ>Y3j2;>_d3HNPN .Z|J4|" pH ue2+9z9/{t n85 &!£K!F>k_f lZ];XCsL8uXG.?{_/ t gTcAGO^C_=_ '^?NĠʼn)#-ozO~L90r߄>V!$_? j"HLcGc>v>\=)ld#=miIENDB`07070100000022000081A400000000000000000000000166968E4E000006AC000000000000000000000000000000000000002000000000gnome-music-46.1/data/style.css/* AlbumCover */ .albumcover-title-label { color: @theme_fg_color; } .albumcover-artist-label { font-size: smaller; color: @theme_fg_color; } /* AlbumsView */ #albums gridview { padding: 18px; } #albums gridview > child { margin: 9px; padding: 6px; } /* By default in Adwaita dark this is not transparent */ .tile { background-color: transparent; } .playlist-icon { padding: 10px; border-radius: 50%; background-color: alpha(@theme_fg_color, 0.1); } .disc-label { color: alpha(@theme_fg_color, 0.8); padding: 12px 0; } /* PlayerToolbar */ .smooth-scale { padding-top: 0px; padding-bottom: 0px; } .grey-image { color: alpha(@theme_fg_color, 0.3); } /* Used in AlbumWidget and ArtistAlbumsWidget */ .playing-song-label { font-weight: bold; } /* TwoLineTip */ .tooltip-title { font-weight: bold; } .playlistdialog-row:selected { color: @theme_fg_color; background-color: @theme_insensitive_bg_color; } .playlistdialog-row:selected label { color: @theme_text_color; } /* SearchView */ .search-header { font-weight: bold; } /* dnd icon for SongWidget */ .drag-handle { color: alpha(@theme_fg_color, 0.4); } .drag-handle:backdrop { color: alpha(@theme_unfocused_fg_color, 0.4); } /* SongWidget rows */ .songwidget { padding: 12px; } /* Starring */ button.star:hover { opacity: 1; } @keyframes rotate_star { from { -gtk-icon-transform: rotate(-72deg); } to {} } @keyframes rotate_unstar { from { -gtk-icon-transform: rotate(72deg); } to {} } button.star.interacted.starred image { animation: rotate_star 0.4s ease; } button.star.interacted:not(.starred) image { animation: rotate_unstar 0.4s ease; } 07070100000023000041ED00000000000000000000000266968E4E00000000000000000000000000000000000000000000001900000000gnome-music-46.1/data/ui07070100000024000081A400000000000000000000000166968E4E000006A8000000000000000000000000000000000000002700000000gnome-music-46.1/data/ui/AlbumCover.ui 07070100000025000081A400000000000000000000000166968E4E000004D6000000000000000000000000000000000000002F00000000gnome-music-46.1/data/ui/AlbumCoverListItem.ui True start vertical 6 True center center center True middle 20 1 middle 20 07070100000026000081A400000000000000000000000166968E4E00000394000000000000000000000000000000000000003000000000gnome-music-46.1/data/ui/AlbumNavigationPage.ui 07070100000027000081A400000000000000000000000166968E4E000019E4000000000000000000000000000000000000002800000000gnome-music-46.1/data/ui/AlbumWidget.ui

_Play album.play Add to _Favorite Songs album.add_favorites _Add to Playlist… album.add_playlist 07070100000028000081A400000000000000000000000166968E4E000009D5000000000000000000000000000000000000003700000000gnome-music-46.1/data/ui/AlbumsSearchNavigationPage.ui 07070100000029000081A400000000000000000000000166968E4E000001F1000000000000000000000000000000000000002700000000gnome-music-46.1/data/ui/AlbumsView.ui 0707010000002A000081A400000000000000000000000166968E4E00000256000000000000000000000000000000000000002F00000000gnome-music-46.1/data/ui/ArtistAlbumsWidget.ui 0707010000002B000081A400000000000000000000000166968E4E00000310000000000000000000000000000000000000003100000000gnome-music-46.1/data/ui/ArtistNavigationPage.ui 0707010000002C000081A400000000000000000000000166968E4E00000410000000000000000000000000000000000000002D00000000gnome-music-46.1/data/ui/ArtistSearchTile.ui 0707010000002D000081A400000000000000000000000166968E4E00000422000000000000000000000000000000000000002700000000gnome-music-46.1/data/ui/ArtistTile.ui 0707010000002E000081A400000000000000000000000166968E4E000009D9000000000000000000000000000000000000003800000000gnome-music-46.1/data/ui/ArtistsSearchNavigationPage.ui 0707010000002F000081A400000000000000000000000166968E4E000003E4000000000000000000000000000000000000002800000000gnome-music-46.1/data/ui/ArtistsView.ui 07070100000030000081A400000000000000000000000166968E4E00000501000000000000000000000000000000000000002400000000gnome-music-46.1/data/ui/DiscBox.ui 07070100000031000081A400000000000000000000000166968E4E0000037F000000000000000000000000000000000000002900000000gnome-music-46.1/data/ui/DiscListItem.ui 07070100000032000081A400000000000000000000000166968E4E0000074A000000000000000000000000000000000000002600000000gnome-music-46.1/data/ui/HeaderBar.ui
Preferences app.preferences Keyboard Shortcuts win.show-help-overlay Help app.help About Music app.about
07070100000033000081A400000000000000000000000166968E4E000023BB000000000000000000000000000000000000002A00000000gnome-music-46.1/data/ui/PlayerToolbar.ui 07070100000034000081A400000000000000000000000166968E4E00001513000000000000000000000000000000000000002D00000000gnome-music-46.1/data/ui/PlaylistControls.ui _Play win.playlist_play _Delete win.playlist_delete _Rename… win.playlist_rename 07070100000035000081A400000000000000000000000166968E4E00002A2C000000000000000000000000000000000000002B00000000gnome-music-46.1/data/ui/PlaylistDialog.ui 07070100000036000081A400000000000000000000000166968E4E000003AB000000000000000000000000000000000000002E00000000gnome-music-46.1/data/ui/PlaylistDialogRow.ui 07070100000037000081A400000000000000000000000166968E4E00000484000000000000000000000000000000000000002900000000gnome-music-46.1/data/ui/PlaylistTile.ui 07070100000038000081A400000000000000000000000166968E4E000003A9000000000000000000000000000000000000002A00000000gnome-music-46.1/data/ui/PlaylistsView.ui 07070100000039000081A400000000000000000000000166968E4E000004B4000000000000000000000000000000000000002C00000000gnome-music-46.1/data/ui/PlaylistsWidget.ui 0707010000003A000081A400000000000000000000000166968E4E000007C2000000000000000000000000000000000000002E00000000gnome-music-46.1/data/ui/PreferencesDialog.ui 0707010000003B000081A400000000000000000000000166968E4E0000029C000000000000000000000000000000000000002C00000000gnome-music-46.1/data/ui/SearchHeaderBar.ui 0707010000003C000081A400000000000000000000000166968E4E00002B81000000000000000000000000000000000000002700000000gnome-music-46.1/data/ui/SearchView.ui 0707010000003D000081A400000000000000000000000166968E4E00001838000000000000000000000000000000000000002700000000gnome-music-46.1/data/ui/SongWidget.ui horizontal 0707010000003E000081A400000000000000000000000166968E4E0000035D000000000000000000000000000000000000002B00000000gnome-music-46.1/data/ui/SongWidgetMenu.ui _Play songwidget.play _Add to Playlist… songwidget.add_playlist _Remove from Playlist songwidget.remove_playlist 0707010000003F000081A400000000000000000000000166968E4E000007D6000000000000000000000000000000000000003100000000gnome-music-46.1/data/ui/StatusNavigationPage.ui 620 500 start vertical true true resource:///org/gnome/Music/icons/welcome-music.svg center Welcome to Music center True 07070100000040000081A400000000000000000000000166968E4E000002DD000000000000000000000000000000000000002700000000gnome-music-46.1/data/ui/TwoLineTip.ui 07070100000041000081A400000000000000000000000166968E4E00000AC2000000000000000000000000000000000000002300000000gnome-music-46.1/data/ui/Window.ui 07070100000042000081A400000000000000000000000166968E4E000012AF000000000000000000000000000000000000002900000000gnome-music-46.1/data/ui/help-overlay.ui True shortcuts 17 General Close window app.quit Search <Primary>F Help app.help Shortcuts win.show-help-overlay Playback Play/Pause <Ctrl>space Next song <Ctrl>N Previous song <Ctrl>B Toggle repeat <Ctrl>R Toggle shuffle <Ctrl>S Navigation Go to Albums <Alt>1 Go to Artists <Alt>2 Go to Playlists <Alt>3 Go back <Alt>Left 07070100000043000081A400000000000000000000000166968E4E00000500000000000000000000000000000000000000002200000000gnome-music-46.1/gnome-music.doap gnome-music Music player and management application Music is the new GNOME music playing application. Python Marinus Schraal mschraal Jean Felder jfelder 07070100000044000081ED00000000000000000000000166968E4E00000E28000000000000000000000000000000000000002000000000gnome-music-46.1/gnome-music.in#!/usr/bin/env python3 # Copyright © 2018 The GNOME Music Developers # # GNOME Music 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. # # GNOME Music 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 GNOME Music; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # # The GNOME Music authors hereby grant permission for non-GPL compatible # GStreamer plugins to be used and distributed together with GStreamer # and GNOME Music. This permission is above and beyond the permissions # granted by the GPL license by which GNOME Music is covered. If you # modify this code, you may extend this exception to your version of the # code, but you are not obligated to do so. If you do not wish to do so, # delete this exception statement from your version. import gettext import locale import os import signal import sys _LOCAL = @local_build@ if _LOCAL: # In the local use case, use gnomemusic module from the sourcetree sys.path.insert(1, '@pythondir@') # In the local use case the installed schemas go in /data os.environ["XDG_DATA_DIRS"] = '@schemasdir@:' + os.environ.get("XDG_DATA_DIRS", "") import gi gi.require_version("Adw", "1") gi.require_version('Gtk', '4.0') gi.require_version('GIRepository', '2.0') gi.require_version('Gst', '1.0') from gi.repository import Adw, GIRepository, Gio, Gtk, Gst Gst.init(None) Adw.init() LOCALE_DIR = '@localedir@' PKGDATA_DIR = '@pkgdatadir@' VERSION = '@version@' def set_exception_hook(): """Configures sys.excepthook to enforce Gtk application exiting.""" def new_hook(etype, evalue, etb): old_hook(etype, evalue, etb) while Gtk.main_level(): Gtk.main_quit() sys.exit() old_hook = sys.excepthook sys.excepthook = new_hook def set_internationalization(): """Sets application internationalization.""" try: locale.bindtextdomain('@application_id@', LOCALE_DIR) locale.textdomain('@application_id@') except AttributeError as e: # Python built without gettext support does not have # bindtextdomain() and textdomain(). print( "Could not bind the gettext translation domain. Some" " translations will not work. Error:\n{}".format(e)) gettext.bindtextdomain('@application_id@', LOCALE_DIR) gettext.textdomain('@application_id@') def set_resources(): """Sets application ressource file.""" resource = Gio.resource_load( os.path.join(PKGDATA_DIR, '@rdnn_name@.gresource')) Gio.Resource._register(resource) # nopep8 def run_application(): """Runs GNOME Music application and returns its exit code.""" from gnomemusic.application import Application app = Application('@application_id@', VERSION) signal.signal(signal.SIGINT, signal.SIG_DFL) return app.run(sys.argv) def main(): """Sets environment and runs GNOME Music.""" # set_exception_hook() set_internationalization() set_resources() return run_application() if __name__ == '__main__': if _LOCAL: print('Running from source tree, using local files.') sys.exit(main()) 07070100000045000041ED00000000000000000000000266968E4E00000000000000000000000000000000000000000000001C00000000gnome-music-46.1/gnomemusic07070100000046000081A400000000000000000000000166968E4E00000000000000000000000000000000000000000000002800000000gnome-music-46.1/gnomemusic/__init__.py07070100000047000081A400000000000000000000000166968E4E00001163000000000000000000000000000000000000002500000000gnome-music-46.1/gnomemusic/about.py# aboutwindow.py # # Copyright 2022 Christopher Davis # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # # SPDX-License-Identifier: GPL-2.0-or-later from gettext import gettext as _ from gi.repository import Adw, Gtk def show_about(app_id, version, parent): developers = [ "Abhinav Singh", "Adam Blanchet", "Adrian Solom", "Alberto Fanjul", "Alexander Mikhaylenko", "Andre Klapper", "Andreas Nilsson", "Apostol Bakalov", "Arnel A. Borja", "Ashwani Singh Tanwar", "Ashwin Mohan", "Atharva Veer", "Automeris Naranja", "Benoît Legat", "Bilal Elmoussaoui", "Billy Barrow", "Bruce Cowan", "Carlos Garnacho", "Carlos Soriano", "Chinmay Gurjar", "Christophe van den Abbeele", "Christopher Davis", "Clayton G. Hobbs", "Debanga Sarma", "Divyanshu Vishwakarma", "Eslam Mostafa", "Elias Entrup", "Erik Inkinen", "Evan Nehring", "Evandro Giovanini", "Ezike Ebuka", "Fabiano Fidêncio", "Feliks Weber", "Felipe Borges", "Florian Darfeuille", "Gaurav Narula", "Georges Basile Stavracas Neto", "Guillaume Quintard", "Gyanesh Malhotra", "Harry Xie", "Hugo Posnic", "Ishaan Shah", "Islam Bahnasy", "Jakub Steiner", "James A. Baker", "Jan Alexander Steffens", "Janne Körkkö", "Jan-Michael Brummer", "Jean Felder", "Jeremy Bicha", "Jesus Bermudez Velazquez", "Jordan Petridis", "Juan José González", "Juan Suarez", "Kainaat Singh", "Kalev Lember", "Kevin Haller", "Konstantin Pospelov", "Koushik Sahu", "Lucy Coleclough", "Marinus Schraal", "Michael Catanzaro", "Mohanna Datta Yelugoti", "Mpho Jele", "Nick Richards", "Niels De Graef", "Nikolay Yanchuk", "Nils Reuße", "Pablo Palácios", "Phil Dawson", "Piotr Drąg", "Prashant Tyagi", "Rafael Coelho", "Rashi Sah", "Rasmus Thomsen", "Reuben Dsouza", "Robert Greener", "Sabri Ünal", "Sagar Lakhani", "Sai Suman Prayaga", "Sam Hewitt", "Sam Thursfield", "Sambhav Kothari", "Seif Lotfy", "Shema Angelo Verlain", "Shivani Poddar", "Shivansh Handa", "Simon McVittie", "Sophie Herold", "Subhadip Jana", "Sumaid Syed", "Suyash Garg", "Tapasweni Pathak", "Taylor Garcia", "Tjipke van der Heide", "Vadim Rutkovsky", "Vaishnavi Nawghare", "Veerasamy Sevagen", "Vincent Cottineau", "Vineet Reddy", "Weifang Lai", "Yann Delaby", "Yash Singh", "Yosef Or Boczko" ] designers = [ "Allan Day", "Jakub Steiner", "William Jon McCann" ] about = Adw.AboutDialog( application_name=_("Music"), application_icon=app_id, developer_name=_("The GNOME Project"), developers=developers, designers=designers, # Translators should localize the following string which # will be displayed at the bottom of the about box to give # credit to the translator(s). translator_credits=_("translator-credits"), version=version, website="https://apps.gnome.org/Music/", issue_url="https://gitlab.gnome.org/GNOME/gnome-music/-/issues/", copyright=_("© The GNOME Music Developers"), license_type=Gtk.License.GPL_2_0) about.present(parent) 07070100000048000081A400000000000000000000000166968E4E00000C30000000000000000000000000000000000000002800000000gnome-music-46.1/gnomemusic/albumart.py# Copyright 2020 The GNOME Music developers # # GNOME Music 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. # # GNOME Music 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 GNOME Music; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # # The GNOME Music authors hereby grant permission for non-GPL compatible # GStreamer plugins to be used and distributed together with GStreamer # and GNOME Music. This permission is above and beyond the permissions # granted by the GPL license by which GNOME Music is covered. If you # modify this code, you may extend this exception to your version of the # code, but you are not obligated to do so. If you do not wish to do so, # delete this exception statement from your version. import gi gi.require_version("MediaArt", "2.0") from gi.repository import GObject, MediaArt from gnomemusic.asyncqueue import AsyncQueue from gnomemusic.embeddedart import EmbeddedArt from gnomemusic.fileexistsasync import FileExistsAsync from gnomemusic.griloartqueue import GriloArtQueue from gnomemusic.utils import CoreObjectType class AlbumArt(GObject.GObject): """AlbumArt retrieval object """ _async_queue = AsyncQueue("AlbumArt") def __init__(self, application, corealbum): """Initialize AlbumArt :param Application application: The application object :param CoreAlbum corealbum: The corealbum to use """ super().__init__() self._corealbum = corealbum self._coregrilo = application.props.coregrilo self._album = self._corealbum.props.title self._artist = self._corealbum.props.artist self._grilo_art_queue = GriloArtQueue(application) self._in_cache() def _on_embedded_art_found(self, embeddedart, found): if found: self._in_cache() else: self._grilo_art_queue.queue(self._corealbum, CoreObjectType.ALBUM) def _in_cache(self): success, thumb_file = MediaArt.get_file( self._artist, self._album, "album") if not success: return def on_file_exists_async_finished(obj, result): if result: self._corealbum.props.thumbnail = thumb_file.get_uri() else: embedded = EmbeddedArt() embedded.connect("art-found", self._on_embedded_art_found) embedded.query(self._corealbum, self._album) file_exists_async = FileExistsAsync() file_exists_async.connect( "finished", on_file_exists_async_finished) self._async_queue.queue(file_exists_async, thumb_file) 07070100000049000081A400000000000000000000000166968E4E00001D80000000000000000000000000000000000000002B00000000gnome-music-46.1/gnomemusic/application.py# Copyright (c) 2013 Arnel A. Borja # Copyright (c) 2013 Vadim Rutkovsky # Copyright (c) 2013 Lubosz Sarnecki # Copyright (c) 2013 Guillaume Quintard # Copyright (c) 2013 Felipe Borges # Copyright (c) 2013 Eslam Mostafa # Copyright (c) 2013 Shivani Poddar # Copyright (c) 2013 Sai Suman Prayaga # Copyright (c) 2013 Seif Lotfy # # GNOME Music 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. # # GNOME Music 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 GNOME Music; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # # The GNOME Music authors hereby grant permission for non-GPL compatible # GStreamer plugins to be used and distributed together with GStreamer # and GNOME Music. This permission is above and beyond the permissions # granted by the GPL license by which GNOME Music is covered. If you # modify this code, you may extend this exception to your version of the # code, but you are not obligated to do so. If you do not wish to do so, # delete this exception statement from your version. from typing import Optional from gettext import gettext as _ from gi.repository import Adw, Gtk, Gio, GLib, Gdk, GObject from gnomemusic.about import show_about from gnomemusic.coregrilo import CoreGrilo from gnomemusic.coremodel import CoreModel from gnomemusic.inhibitsuspend import InhibitSuspend from gnomemusic.mpris import MPRIS from gnomemusic.musiclogger import MusicLogger from gnomemusic.notificationmanager import NotificationManager from gnomemusic.pauseonsuspend import PauseOnSuspend from gnomemusic.player import Player from gnomemusic.search import Search from gnomemusic.widgets.preferencesdialog import PreferencesDialog from gnomemusic.window import Window class Application(Adw.Application): def __init__(self, application_id, version): super().__init__( application_id=application_id, flags=Gio.ApplicationFlags.FLAGS_NONE) self.props.resource_base_path = "/org/gnome/Music" GLib.set_application_name(_("Music")) GLib.set_prgname(application_id) GLib.setenv("PULSE_PROP_media.role", "music", True) self._version = version self._window = None self._log = MusicLogger() self._search = Search() self._notificationmanager = NotificationManager(self) self._coremodel = CoreModel(self) # Order is important: CoreGrilo initializes the Grilo sources, # which in turn uses CoreModel extensively. self._coregrilo = CoreGrilo(self) self._settings = Gio.Settings.new('org.gnome.Music') self._player = Player(self) InhibitSuspend(self) PauseOnSuspend(self._player) @GObject.Property( type=CoreGrilo, default=None, flags=GObject.ParamFlags.READABLE) def coregrilo(self): """Get application-wide CoreGrilo instance. :returns: The grilo wrapper :rtype: CoreGrilo """ return self._coregrilo @GObject.Property( type=MusicLogger, default=None, flags=GObject.ParamFlags.READABLE) def log(self): """Get application-wide logging facility. :returns: the logger :rtype: MusicLogger """ return self._log @GObject.Property( type=Player, default=None, flags=GObject.ParamFlags.READABLE) def player(self): """Get application-wide music player. :returns: the player :rtype: Player """ return self._player @GObject.Property( type=Gio.Settings, flags=GObject.ParamFlags.READABLE) def settings(self): """Get application-wide settings. :returns: settings :rtype: Gio.settings """ return self._settings @GObject.Property( type=CoreModel, flags=GObject.ParamFlags.READABLE) def coremodel(self): """Get class providing all listmodels. :returns: List model provider class :rtype: CoreModel """ return self._coremodel @GObject.Property(type=Window, flags=GObject.ParamFlags.READABLE) def window(self): """Get main window. :returns: Main window. :rtype: Window """ return self._window @GObject.Property( type=Search, flags=GObject.ParamFlags.READABLE) def search(self): """Get class providing search logic. :returns: List model provider class :rtype: Search """ return self._search @GObject.Property( type=NotificationManager, flags=GObject.ParamFlags.READABLE) def notificationmanager(self): """Get notification manager :returns: notification manager :rtype: NotificationManager """ return self._notificationmanager def _set_actions(self): action_entries = [ ("about", self._about, None), ("preferences", self._preferences_dialog, ("app.preferences", ["comma"])), ("help", self._help, ("app.help", ["F1"])), ("quit", self._quit, ("app.quit", ["Q"])) ] for action, callback, accel in action_entries: simple_action = Gio.SimpleAction.new(action, None) simple_action.connect('activate', callback) self.add_action(simple_action) if accel is not None: self.set_accels_for_action(*accel) def _help(self, action: Gio.Action, param: Optional[GLib.Variant]) -> None: def show_uri_cb(parent: Gtk.Window, result: Gio.AsyncResult) -> None: try: Gtk.show_uri_full_finish(parent, result) except GLib.Error: self._log.message("Help handler not available.") Gtk.show_uri_full( self._window, "help:gnome-music", Gdk.CURRENT_TIME, None, show_uri_cb) def _preferences_dialog( self, action: Gio.SimpleAction, param_type: GLib.VariantType) -> None: pref_dialog = PreferencesDialog(self) pref_dialog.present(self._window) def _about(self, action, param): show_about(self.props.application_id, self._version, self._window) def do_startup(self): Adw.Application.do_startup(self) Adw.StyleManager.get_default().set_color_scheme( Adw.ColorScheme.PREFER_LIGHT) self._set_actions() def _quit(self, action=None, param=None): self._window.destroy() def do_activate(self): if not self._window: self._window = Window(self) self.notify("window") self._window.set_default_icon_name(self.props.application_id) if self.props.application_id == "org.gnome.Music.Devel": self._window.get_style_context().add_class('devel') MPRIS(self) self._window.present() 0707010000004A000081A400000000000000000000000166968E4E00000AB3000000000000000000000000000000000000002900000000gnome-music-46.1/gnomemusic/artistart.py# Copyright 2019 The GNOME Music developers # # GNOME Music 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. # # GNOME Music 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 GNOME Music; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # # The GNOME Music authors hereby grant permission for non-GPL compatible # GStreamer plugins to be used and distributed together with GStreamer # and GNOME Music. This permission is above and beyond the permissions # granted by the GPL license by which GNOME Music is covered. If you # modify this code, you may extend this exception to your version of the # code, but you are not obligated to do so. If you do not wish to do so, # delete this exception statement from your version. import gi gi.require_version("MediaArt", "2.0") from gi.repository import GObject, MediaArt from gnomemusic.asyncqueue import AsyncQueue from gnomemusic.fileexistsasync import FileExistsAsync from gnomemusic.griloartqueue import GriloArtQueue from gnomemusic.utils import CoreObjectType class ArtistArt(GObject.GObject): """Artist art retrieval object """ _async_queue = AsyncQueue("ArtistArt") def __init__(self, application, coreartist): """Initialize. :param Application application: The application object :param CoreArtist coreartist: The coreartist to use """ super().__init__() self._coreartist = coreartist self._coregrilo = application.props.coregrilo self._artist = self._coreartist.props.artist self._grilo_art_queue = GriloArtQueue(application) self._in_cache() def _in_cache(self): success, thumb_file = MediaArt.get_file(self._artist, None, "artist") if not success: return def on_file_exists_async_finished(obj, result): if result: self._coreartist.props.thumbnail = thumb_file.get_uri() else: self._grilo_art_queue.queue( self._coreartist, CoreObjectType.ARTIST) file_exists_async = FileExistsAsync() file_exists_async.connect( "finished", on_file_exists_async_finished) self._async_queue.queue(file_exists_async, thumb_file) 0707010000004B000081A400000000000000000000000166968E4E0000134A000000000000000000000000000000000000002A00000000gnome-music-46.1/gnomemusic/asyncqueue.py# Copyright 2021 The GNOME Music developers # # GNOME Music 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. # # GNOME Music 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 GNOME Music; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # # The GNOME Music authors hereby grant permission for non-GPL compatible # GStreamer plugins to be used and distributed together with GStreamer # and GNOME Music. This permission is above and beyond the permissions # granted by the GPL license by which GNOME Music is covered. If you # modify this code, you may extend this exception to your version of the # code, but you are not obligated to do so. If you do not wish to do so, # delete this exception statement from your version. from typing import Any, Dict, Optional, Tuple import time from gi.repository import GObject, GLib from gnomemusic.musiclogger import MusicLogger class AsyncQueue(GObject.GObject): """Queue async classes Allows for queueing async class calls and limit the amount of concurrent async operations ongoing. This to alleviate the pressure of having numerous ongoing async tasks that do IO or networking. A queued class must have a `start` function which starts the async task and a `finished` signal, which indicates it is done. The signal may be used by the caller and have an arbitrary number and type of arguments. The query function's first argument should be the async class and may have an arbitrary number of arguments following. """ def __init__(self, queue_name: Optional[str] = None) -> None: """Initialize AsyncQueue :param str queue_name: The user facing name of this queue or None for the generic class identifier """ super().__init__() self._async_pool: Dict[int, Tuple] = {} self._async_active_pool: Dict[int, Tuple] = {} self._async_data: Dict[object, Tuple[int, float]] = {} self._log = MusicLogger() self._max_async = 40 self._queue_name = queue_name if queue_name else self self._timeout_id = 0 def queue(self, *args: Any) -> None: """Queue an async call :param *args: The first item should be an async class, the following arbitrary numbers of arguments are to be passed to the `start` call of the given class. See the class doc for more information. """ async_obj_id = id(args[0]) if async_obj_id in self._async_active_pool: obj = args[0] handler_id, _ = self._async_data.pop(obj) obj.disconnect(handler_id) self._async_active_pool.pop(id(obj)) elif async_obj_id in self._async_pool: self._async_pool.pop(async_obj_id) self._async_pool[async_obj_id] = (args) if self._timeout_id == 0: self._timeout_id = GLib.timeout_add(100, self._dispatch) def queue_remove(self, obj: Any) -> None: """Remove an async call from the queue :param obj: The async class to remove from the queue. """ async_obj_id = id(obj) if async_obj_id in self._async_pool: self._async_pool.pop(async_obj_id) def _dispatch(self) -> bool: tick = time.time() while len(self._async_active_pool) < self._max_async: if len(self._async_pool) == 0: self._timeout_id = 0 return GLib.SOURCE_REMOVE async_obj_id = list(self._async_pool.keys())[0] async_task_args = self._async_pool.pop(async_obj_id) async_obj = async_task_args[0] self._async_active_pool[async_obj_id] = async_task_args self._async_data[async_obj] = ( async_obj.connect("finished", self._on_async_finished), tick) async_obj.start(*async_task_args[1:]) self._log.debug( f"{self._queue_name}: " f"{len(self._async_active_pool)} active task(s)" f"with {len(self._async_pool)} remaining") return GLib.SOURCE_CONTINUE def _on_async_finished( self, obj: Any, *signal_args: Any) -> None: handler_id, tick = self._async_data.pop(obj) t = (time.time() - tick) * 1000 self._log.debug(f"{self._queue_name}: {t:.2f} ms task") obj.disconnect(handler_id) self._async_active_pool.pop(id(obj)) 0707010000004C000081A400000000000000000000000166968E4E0000131C000000000000000000000000000000000000002900000000gnome-music-46.1/gnomemusic/corealbum.py# Copyright 2019 The GNOME Music developers # # GNOME Music 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. # # GNOME Music 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 GNOME Music; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # # The GNOME Music authors hereby grant permission for non-GPL compatible # GStreamer plugins to be used and distributed together with GStreamer # and GNOME Music. This permission is above and beyond the permissions # granted by the GPL license by which GNOME Music is covered. If you # modify this code, you may extend this exception to your version of the # code, but you are not obligated to do so. If you do not wish to do so, # delete this exception statement from your version. from __future__ import annotations import gi gi.require_versions({"Grl": "0.3"}) from gi.repository import Gio, Grl, Gtk, GObject import gnomemusic.utils as utils from gnomemusic.albumart import AlbumArt from gnomemusic.coredisc import CoreDisc class CoreAlbum(GObject.GObject): """Exposes a Grl.Media with relevant data as properties """ __gtype_name__ = "CoreAlbum" artist = GObject.Property(type=str) composer = GObject.Property(type=str, default=None) duration = GObject.Property(type=int, default=0) media = GObject.Property(type=Grl.Media) title = GObject.Property(type=str) url = GObject.Property(type=str) year = GObject.Property(type=str, default=None) def __init__(self, application, media): """Initiate the CoreAlbum object :param Application application: The application object :param Grl.Media media: A media object """ super().__init__() self._application = application self._coregrilo = application.props.coregrilo self._model = None self._thumbnail = None self.update(media) def update(self, media): """Update the CoreAlbum object with new info :param Grl.Media media: A media object """ self.props.media = media self.props.artist = utils.get_artist_name(media) self.props.composer = media.get_composer() self.props.title = utils.get_media_title(media) self.props.url = media.get_url() self.props.year = utils.get_media_year(media) def _get_album_model(self): disc_model = Gio.ListStore() disc_no_exp = Gtk.PropertyExpression.new(CoreDisc, None, "disc_nr") disc_sorter = Gtk.NumericSorter.new(disc_no_exp) disc_model_sort = Gtk.SortListModel.new(disc_model, disc_sorter) self._coregrilo.get_album_discs(self.props.media, disc_model) return disc_model_sort @GObject.Property( type=Gtk.SortListModel, default=None, flags=GObject.ParamFlags.READABLE) def model(self): if self._model is None: self._model = self._get_album_model() self._model.connect("items-changed", self._on_list_items_changed) self._model.items_changed(0, 0, self._model.get_n_items()) return self._model def _on_list_items_changed(self, model, position, removed, added): with self.freeze_notify(): if added > 0: for i in range(added): coredisc = model[position + i] coredisc.connect( "notify::duration", self._on_duration_changed) def _on_duration_changed(self, coredisc, duration): duration = 0 for coredisc in self.props.model: duration += coredisc.props.duration self.props.duration = duration @GObject.Property(type=str, default=None) def thumbnail(self): """Album art thumbnail retrieval :return: The album art uri or "generic" :rtype: string """ if self._thumbnail is None: self._thumbnail = "generic" AlbumArt(self._application, self) return self._thumbnail @thumbnail.setter # type: ignore def thumbnail(self, value): """Album art thumbnail setter :param string value: uri or "generic" """ self._thumbnail = value if self._thumbnail != "generic": self.props.media.set_thumbnail(self._thumbnail) @GObject.Property(type=object, flags=GObject.ParamFlags.READABLE) def corealbum(self) -> CoreAlbum: return self 0707010000004D000081A400000000000000000000000166968E4E00000E3F000000000000000000000000000000000000002A00000000gnome-music-46.1/gnomemusic/coreartist.py# Copyright 2019 The GNOME Music developers # # GNOME Music 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. # # GNOME Music 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 GNOME Music; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # # The GNOME Music authors hereby grant permission for non-GPL compatible # GStreamer plugins to be used and distributed together with GStreamer # and GNOME Music. This permission is above and beyond the permissions # granted by the GPL license by which GNOME Music is covered. If you # modify this code, you may extend this exception to your version of the # code, but you are not obligated to do so. If you do not wish to do so, # delete this exception statement from your version. import gi gi.require_versions({"Grl": "0.3"}) from gi.repository import Grl, Gtk, GObject from gnomemusic.artistart import ArtistArt from gnomemusic.corealbum import CoreAlbum import gnomemusic.utils as utils class CoreArtist(GObject.GObject): """Exposes a Grl.Media with relevant data as properties """ artist = GObject.Property(type=str) media = GObject.Property(type=Grl.Media) def __init__(self, application, media): """Initiate the CoreArtist object :param Application application: The application object :param Grl.Media media: A media object """ super().__init__() self._application = application self._coregrilo = application.props.coregrilo self._coremodel = application.props.coremodel self._model = None self._thumbnail = None self.update(media) def update(self, media): self.props.media = media self.props.artist = utils.get_artist_name(media) def _get_artist_album_model(self): albums_model_filter = Gtk.FilterListModel.new( self._coremodel.props.albums) albums_model_filter.set_filter(Gtk.AnyFilter()) albums_sort_exp = Gtk.PropertyExpression.new(CoreAlbum, None, "year") albums_sorter = Gtk.StringSorter.new(albums_sort_exp) albums_model_sort = Gtk.SortListModel.new( albums_model_filter, albums_sorter) self._coregrilo.get_artist_albums( self.props.media, albums_model_filter) return albums_model_sort @GObject.Property(type=Gtk.SortListModel, default=None) def model(self): if self._model is None: self._model = self._get_artist_album_model() return self._model @GObject.Property(type=str, default=None) def thumbnail(self): """Artist art thumbnail retrieval :return: The artist art uri or "generic" :rtype: string """ if self._thumbnail is None: self._thumbnail = "generic" ArtistArt(self._application, self) return self._thumbnail @thumbnail.setter # type: ignore def thumbnail(self, value): """Artist art thumbnail setter :param string value: uri or "generic" """ self._thumbnail = value if self._thumbnail != "generic": self.props.media.set_thumbnail(self._thumbnail) 0707010000004E000081A400000000000000000000000166968E4E00000C4D000000000000000000000000000000000000002800000000gnome-music-46.1/gnomemusic/coredisc.py# Copyright 2019 The GNOME Music developers # # GNOME Music 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. # # GNOME Music 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 GNOME Music; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # # The GNOME Music authors hereby grant permission for non-GPL compatible # GStreamer plugins to be used and distributed together with GStreamer # and GNOME Music. This permission is above and beyond the permissions # granted by the GPL license by which GNOME Music is covered. If you # modify this code, you may extend this exception to your version of the # code, but you are not obligated to do so. If you do not wish to do so, # delete this exception statement from your version. from gi.repository import GObject, Grl, Gtk from gnomemusic.coresong import CoreSong class CoreDisc(GObject.GObject): __gtype_name__ = "CoreDisc" disc_nr = GObject.Property(type=int, default=0) duration = GObject.Property(type=int, default=None) media = GObject.Property(type=Grl.Media, default=None) def __init__(self, application, media, nr): """Initialize a CoreDisc object :param Application application: The application object :param Grl.Media media: A media object :param int nr: The disc number to create an object for """ super().__init__() self._coregrilo = application.props.coregrilo self._coremodel = application.props.coremodel self._log = application.props.log self._model = None self.update(media) self.props.disc_nr = nr def update(self, media): self.props.media = media @GObject.Property(type=Gtk.SortListModel, default=None) def model(self) -> Gtk.SortListModel: if self._model is None: filter_model = Gtk.FilterListModel.new( self._coremodel.props.songs) filter_model.set_filter(Gtk.AnyFilter()) song_exp = Gtk.PropertyExpression.new( CoreSong, None, "track-number") song_sorter = Gtk.NumericSorter.new(song_exp) self._model = Gtk.SortListModel.new(filter_model, song_sorter) self._model.connect("items-changed", self._on_disc_changed) self._coregrilo.get_album_disc( self.props.media, self.props.disc_nr, filter_model) return self._model def _on_disc_changed(self, model, position, removed, added): with self.freeze_notify(): duration = 0 for coresong in model: duration += coresong.props.duration self.props.duration = duration 0707010000004F000081A400000000000000000000000166968E4E00002F7F000000000000000000000000000000000000002900000000gnome-music-46.1/gnomemusic/coregrilo.py# Copyright 2019 The GNOME Music developers # # GNOME Music 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. # # GNOME Music 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 GNOME Music; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # # The GNOME Music authors hereby grant permission for non-GPL compatible # GStreamer plugins to be used and distributed together with GStreamer # and GNOME Music. This permission is above and beyond the permissions # granted by the GPL license by which GNOME Music is covered. If you # modify this code, you may extend this exception to your version of the # code, but you are not obligated to do so. If you do not wish to do so, # delete this exception statement from your version. import weakref import gi gi.require_version("Grl", "0.3") from gi.repository import Grl, GLib, GObject, Gtk from gnomemusic.grilowrappers.grlsearchwrapper import GrlSearchWrapper from gnomemusic.grilowrappers.grltrackerwrapper import GrlTrackerWrapper from gnomemusic.trackerwrapper import TrackerState, TrackerWrapper class CoreGrilo(GObject.GObject): _blocklist = [ 'grl-bookmarks', 'grl-filesystem', 'grl-itunes-podcast', 'grl-metadata-store', 'grl-podcasts' ] _grl_plugin_ranks = ("grl-musicbrainz-coverart:3," "grl-lastfm-cover:2," "grl-theaudiodb-cover:1") _theaudiodb_api_key = "195003" cover_sources = GObject.Property(type=bool, default=False) tracker_available = GObject.Property(type=int) def __init__(self, application): """Initiate the CoreGrilo object :param Application application: The Application instance to use """ super().__init__() self._application = application self._coremodel = self._application.props.coremodel self._log = application.props.log self._search_wrappers = {} self._thumbnail_sources = [] self._thumbnail_sources_timeout = None self._wrappers = {} self._tracker_wrapper = TrackerWrapper(application) self._tracker_wrapper.bind_property( "tracker-available", self, "tracker-available", GObject.BindingFlags.SYNC_CREATE) GLib.setenv("GRL_PLUGIN_RANKS", self._grl_plugin_ranks, True) Grl.init(None) self._registry = Grl.Registry.get_default() config = Grl.Config.new("grl-lua-factory", "grl-theaudiodb-cover") config.set_api_key(self._theaudiodb_api_key) self._registry.add_config(config) self._registry.connect('source-added', self._on_source_added) self._registry.connect('source-removed', self._on_source_removed) self._registry.load_all_plugins(False) tracker_available_state = self._tracker_wrapper.props.tracker_available if tracker_available_state != TrackerState.AVAILABLE: self._tracker_wrapper.connect( "notify::tracker-available", self._on_tracker_available_changed) else: self._on_tracker_available_changed(None, None) for plugin in self._registry.get_plugins(False): plugin_id = plugin.get_id() # Activate the Tracker plugin only when TrackerWrapper # is available by listening to the tracker-available # property, so skip it here. if plugin_id != "grl-tracker3": try: self._registry.activate_plugin_by_id(plugin_id) except GLib.GError: self._log.debug( "Failed to activate {} plugin.".format(plugin_id)) weakref.finalize(self, Grl.deinit) def _on_tracker_available_changed(self, klass, value): # FIXME:No removal support yet. new_state = self._tracker_wrapper.props.tracker_available if new_state == TrackerState.AVAILABLE: config = Grl.Config.new("grl-tracker3", "grl-tracker3-source") config.set_string( "miner-service", self._tracker_wrapper.props.miner_fs_busname) config.set_string( "store-path", self._tracker_wrapper.cache_directory()) self._registry.add_config(config) self._registry.activate_plugin_by_id("grl-tracker3") def _on_source_added(self, registry, source): def _trigger_art_update(): self._thumbnail_sources_timeout = None if len(self._thumbnail_sources) > 0: self.props.cover_sources = True return GLib.SOURCE_REMOVE if ("net:plaintext" in source.get_tags() or source.props.source_id in self._blocklist): try: registry.unregister_source(source) except GLib.GError: self._log.warning( "Failed to unregister {}".format(source.props.source_id)) return if Grl.METADATA_KEY_THUMBNAIL in source.supported_keys(): self._thumbnail_sources.append(source) if not self._thumbnail_sources_timeout: # Aggregate sources being added, for example when the # network comes online. self._thumbnail_sources_timeout = GLib.timeout_add_seconds( 5, _trigger_art_update) if (source.props.source_id == "grl-tracker3-source" and self._tracker_wrapper.location_filter() is not None): new_wrapper = GrlTrackerWrapper( source, self._application, self._tracker_wrapper) self._wrappers[source.props.source_id] = new_wrapper self._log.debug("Adding wrapper {}".format(new_wrapper)) music_dir = GLib.get_user_special_dir( GLib.UserDirectory.DIRECTORY_MUSIC) self._log.debug("XDG Music dir is: {}".format(music_dir)) elif (source.props.source_id not in self._search_wrappers.keys() and source.props.source_id not in self._wrappers.keys() and source.props.source_id != "grl-tracker3-source" and source.get_supported_media() & Grl.MediaType.AUDIO and source.supported_operations() & Grl.SupportedOps.SEARCH and "net:internet" not in source.props.source_tags): self._search_wrappers[source.props.source_id] = GrlSearchWrapper( source, self._application) self._log.debug("Adding search source {}".format(source)) def _on_source_removed(self, registry, source): # FIXME: Handle removing sources. self._log.debug("Removed source {}".format(source.props.source_id)) # FIXME: Only removes search sources atm. self._search_wrappers.pop(source.props.source_id, None) def get_artist_albums(self, media, filter_model): """Get all album by an artist :param Grl.Media media: A Grilo Media item that represents Artist :param Gtk.FilterListModel filter_model: The model to fill """ source = media.get_source() self._wrappers[source].get_artist_albums(media, filter_model) def get_album_discs(self, media, disc_model): """Get all discs from an album :param Grl.Media media: A Grilo Media item that represents Album :param Gtk.SortListModel disc_model: The model to fill """ source = media.get_source() self._wrappers[source].get_album_discs(media, disc_model) def get_album_disc( self, media: Grl.Media, discnr: int, model: Gtk.FilterListModel) -> None: """Get all songs from an album disc :param Grl.Media media: An album :param int discnr: The disc number :param Gtk.FilterListModel model: The model to fill """ source = media.get_source() self._wrappers[source].get_album_disc(media, discnr, model) def writeback(self, media, key): """Store the values associated with the key. :param Grl.Media media: A Grilo media item :param int key: a Grilo metadata key """ def _store_metadata_cb(source, media, failed_keys, data, error): if error is not None: self._log.warning( "Error {}: {}".format(error.domain, error.message)) if failed_keys: self._log.warning("Unable to update {}".format(failed_keys)) for wrapper in self._wrappers.values(): if media.get_source() == wrapper.source.props.source_id: wrapper.props.source.store_metadata( media, [key], Grl.WriteFlags.NORMAL, _store_metadata_cb, None) break def writeback_tracker(self, media, tag): """Use Tracker queries to update tags. The tags are associated with a Tracker resource (song, album, artist or external resource), so they can cannot be updated with grilo writeback support. :param Grl.Media media: A Grilo media item :param str tag: tag to update """ self._tracker_wrapper.update_tag(media, tag) def search(self, text): for wrapper in self._wrappers.values(): wrapper.search(text) for wrapper in self._search_wrappers.values(): wrapper.search(text) def get_song_art(self, coresong, storeart=None): """Retrieve song art for the given CoreSong :param CoreSong coresong: CoreSong to retrieve art for :param StoreArt storeart: StoreArt instance or None """ if "grl-tracker3-source" in self._wrappers: self._wrappers["grl-tracker3-source"].get_song_art( coresong, storeart) def get_album_art(self, corealbum, storeart=None): """Retrieve album art for the given CoreAlbum :param CoreAlbum corealbum: CoreAlbum to retrieve art for :param StoreArt storeart: StoreArt instance or None """ if "grl-tracker3-source" in self._wrappers: self._wrappers["grl-tracker3-source"].get_album_art( corealbum, storeart) def get_artist_art(self, coreartist, storeart=None): """Retrieve artist art for the given CoreArtist :param CoreArtist coreartist: CoreArtist to retrieve art for :param StoreArt storeart: StoreArt instance or None """ if "grl-tracker3-source" in self._wrappers: self._wrappers["grl-tracker3-source"].get_artist_art( coreartist, storeart) def stage_playlist_deletion(self, playlist): """Prepares playlist deletion. :param Playlist playlist: playlist """ if "grl-tracker3-source" in self._wrappers: self._wrappers["grl-tracker3-source"].stage_playlist_deletion( playlist) def finish_playlist_deletion(self, playlist, deleted): """Finishes playlist deletion. :param Playlist playlist: playlist :param bool deleted: indicates if the playlist has been deleted """ if "grl-tracker3-source" in self._wrappers: self._wrappers["grl-tracker3-source"].finish_playlist_deletion( playlist, deleted) def create_playlist(self, playlist_title, callback): """Creates a new user playlist. :param str playlist_title: playlist title :param callback: function to perform once, the playlist is created """ if "grl-tracker3-source" in self._wrappers: self._wrappers["grl-tracker3-source"].create_playlist( playlist_title, callback) 07070100000050000081A400000000000000000000000166968E4E00004E16000000000000000000000000000000000000002900000000gnome-music-46.1/gnomemusic/coremodel.py# Copyright 2019 The GNOME Music developers # # GNOME Music 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. # # GNOME Music 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 GNOME Music; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # # The GNOME Music authors hereby grant permission for non-GPL compatible # GStreamer plugins to be used and distributed together with GStreamer # and GNOME Music. This permission is above and beyond the permissions # granted by the GPL license by which GNOME Music is covered. If you # modify this code, you may extend this exception to your version of the # code, but you are not obligated to do so. If you do not wish to do so, # delete this exception statement from your version. from __future__ import annotations from typing import Any, Optional, Union import typing from gi.repository import GLib, GObject, Gio, Gtk from gnomemusic.corealbum import CoreAlbum from gnomemusic.coreartist import CoreArtist from gnomemusic.coresong import CoreSong from gnomemusic.grilowrappers.grltrackerplaylists import Playlist from gnomemusic.player import PlayerPlaylist from gnomemusic.widgets.songwidget import SongWidget if typing.TYPE_CHECKING: from gnomemusic.application import Application from gnomemusic.search import Search import gnomemusic.utils as utils class CoreModel(GObject.GObject): """Provides all the global list models used in Music Music is using a hierarchy of data objects with list models to contain the information about the users available music. This hierarchy is filled mainly through Grilo, with the exception of playlists which are a Tracker only feature. There are three main models: one for artists, one for albums and one for songs. The data objects within these are CoreArtist, CoreAlbum and CoreSong respectively. These models are flattened list models filled by the wrappers. The object hierarchy is as follows. CoreArtist -> CoreAlbum -> CoreDisc -> CoreSong Playlists are a Tracker only feature and do not use the three main models directly. GrlTrackerPlaylists -> Playlist -> CoreSong The Player playlist is a copy of the relevant playlist, built by using the components described above as needed. """ __gsignals__ = { "playlist-loaded": (GObject.SignalFlags.RUN_FIRST, None, (int,)), "smart-playlist-change": (GObject.SignalFlags.RUN_FIRST, None, ()) } songs_available = GObject.Property(type=bool, default=False) _recent_size = 21 def __init__(self, application: Application) -> None: """Initiate the CoreModel object :param Application application: The Application instance to use """ super().__init__() self._application = application self._flatten_model: Optional[Gtk.FlattenListModel] = None self._player_signal_id = 0 self._current_playlist_model: Optional[Union[ Gtk.FlattenListModel, Gtk.SortListModel, Gio.ListModel]] = None self._previous_playlist_model: Optional[Union[ Gtk.FlattenListModel, Gtk.SortListModel, Gio.ListModel]] = None self._songs_model_proxy: Gio.ListStore = Gio.ListStore.new( Gio.ListModel) self._flatten_songs_model = Gtk.FlattenListModel.new( self._songs_model_proxy) self._songs_model = Gtk.SortListModel.new(self._flatten_songs_model) sorter = Gtk.CustomSorter() sorter.set_sort_func(self._songs_sort) self._songs_model.props.incremental = True self._songs_model.set_sorter(sorter) self._albums_model_proxy: Gio.ListStore = Gio.ListStore.new( Gio.ListModel) self._albums_model: Gtk.FlattenListModel = Gtk.FlattenListModel.new( self._albums_model_proxy) album_sort_exp = Gtk.PropertyExpression.new(CoreAlbum, None, "title") albums_sorter = Gtk.StringSorter.new(album_sort_exp) self._albums_model_sort: Gtk.SortListModel = Gtk.SortListModel.new( self._albums_model, albums_sorter) self._artists_model_proxy: Gio.ListStore = Gio.ListStore.new( Gio.ListModel) self._artists_model: Gtk.FlattenListModel = Gtk.FlattenListModel.new( self._artists_model_proxy) artists_sort_exp = Gtk.PropertyExpression.new( CoreArtist, None, "artist") artists_sorter = Gtk.StringSorter.new(artists_sort_exp) self._artists_model_sort: Gtk.SortListModel = Gtk.SortListModel.new( self._artists_model, artists_sorter) self._playlist_model: Gio.ListStore = Gio.ListStore.new(CoreSong) self._playlist_model_sort: Gtk.SortListModel = Gtk.SortListModel.new( self._playlist_model) self._playlist_model_recent: Gtk.SliceListModel = ( Gtk.SliceListModel.new( self._playlist_model_sort, 0, self._recent_size)) self._active_core_object: Optional[Union[ CoreAlbum, CoreArtist, Playlist]] = None self._songs_search_proxy: Gio.ListStore = Gio.ListStore.new( Gtk.FilterListModel) self._songs_search_flatten: Gtk.FlattenListModel = ( Gtk.FlattenListModel()) self._songs_search_flatten.set_model(self._songs_search_proxy) self._albums_search_proxy: Gio.Liststore = Gio.ListStore.new( Gtk.FilterListModel) self._albums_search_flatten: Gtk.FlattenListModel = ( Gtk.FlattenListModel()) self._albums_search_flatten.set_model(self._albums_search_proxy) self._albums_search_filter: Gtk.FilterListModel = ( Gtk.FilterListModel.new(Gtk.AnyFilter())) self._artists_search_proxy: Gio.Liststore = Gio.ListStore.new( Gtk.FilterListModel) self._artists_search_flatten: Gtk.FlattenListModel = ( Gtk.FlattenListModel()) self._artists_search_flatten.set_model(self._artists_search_proxy) self._artists_search_filter: Gtk.FilterListModel = ( Gtk.FilterListModel.new(Gtk.AnyFilter())) self._playlists_model: Gio.ListStore = Gio.ListStore.new(Playlist) self._playlists_model_filter: Gtk.FilterListModel = ( Gtk.FilterListModel.new(self._playlists_model)) self._playlists_model_sort: Gtk.SortListModel = Gtk.SortListModel.new( self._playlists_model_filter) playlists_sorter = Gtk.CustomSorter() playlists_sorter.set_sort_func(self._playlists_sort) self._playlists_model_sort.set_sorter(playlists_sorter) self._user_playlists_model_filter: Gtk.FilterListModel = ( Gtk.FilterListModel.new(self._playlists_model)) self._user_playlists_model_sort: Gtk.SortListModel = ( Gtk.SortListModel.new(self._user_playlists_model_filter)) user_playlists_sorter = Gtk.CustomSorter() user_playlists_sorter.set_sort_func(self._playlists_sort) self._user_playlists_model_sort.set_sorter(user_playlists_sorter) self._search: Search = application.props.search self._songs_model.connect( "items-changed", self._on_songs_items_changed) def _on_songs_items_changed(self, model, position, removed, added): available = self.props.songs_available now_available = model.get_n_items() > 0 if available == now_available: return if model.get_n_items() > 0: self.props.songs_available = True else: self.props.songs_available = False def _songs_sort( self, song_a: CoreSong, song_b: CoreSong, data: Any = None) -> int: title_a = song_a.props.title title_b = song_b.props.title song_cmp = (utils.normalize_caseless(title_a) == utils.normalize_caseless(title_b)) if not song_cmp: return utils.natural_sort_names(title_a, title_b) artist_a = song_a.props.artist artist_b = song_b.props.artist artist_cmp = (utils.normalize_caseless(artist_a) == utils.normalize_caseless(artist_b)) if not artist_cmp: return utils.natural_sort_names(artist_a, artist_b) return utils.natural_sort_names(song_a.props.album, song_b.props.album) def _playlists_sort(self, playlist_a, playlist_b, data=None): if playlist_a.props.is_smart: if not playlist_b.props.is_smart: return Gtk.Ordering.SMALLER return utils.natural_sort_names( playlist_a.props.title, playlist_b.props.title) if playlist_b.props.is_smart: return Gtk.Ordering.LARGER date_compare = GLib.DateTime.compare( playlist_b.props.creation_date, playlist_a.props.creation_date) if date_compare == -1: return Gtk.Ordering.SMALLER elif date_compare == 1: return Gtk.Ordering.LARGER else: return Gtk.Ordering.EQUAL def _set_player_model(self, playlist_type, model): """Set the model for PlayerPlaylist to use This fills playlist model based on the playlist type and model given. This builds a separate model to stay alive and play while the user navigates other views. :param PlaylistType playlist_type: The type of the playlist :param Gio.ListStore model: The base model for the player model """ if model is self._previous_playlist_model: for song in self._playlist_model: if song.props.state == SongWidget.State.PLAYING: song.props.state = SongWidget.State.PLAYED self.emit("playlist-loaded", playlist_type) return def _bind_song_properties(model_song, player_song): model_song.bind_property( "state", player_song, "state", GObject.BindingFlags.BIDIRECTIONAL | GObject.BindingFlags.SYNC_CREATE) def _on_items_changed(model, position, removed, added): songs_list = [] if added > 0: for i in list(range(added)): coresong = model[position + i] song = CoreSong(self._application, coresong.props.media) _bind_song_properties(coresong, song) songs_list.append(song) self._playlist_model.splice(position, removed, songs_list) played_states = [SongWidget.State.PLAYING, SongWidget.State.PLAYED] for song in self._playlist_model: if song.props.state in played_states: song.props.state = SongWidget.State.UNPLAYED if self._player_signal_id != 0: self._current_playlist_model.disconnect(self._player_signal_id) self._player_signal_id = 0 self._current_playlist_model = None songs_added = [] if playlist_type == PlayerPlaylist.Type.ALBUM: proxy_model = Gio.ListStore.new(Gio.ListModel) for disc in model: proxy_model.append(disc.props.model) self._flatten_model = Gtk.FlattenListModel.new(proxy_model) self._current_playlist_model = self._flatten_model for model_song in self._flatten_model: song = CoreSong(self._application, model_song.props.media) _bind_song_properties(model_song, song) songs_added.append(song) elif playlist_type == PlayerPlaylist.Type.ARTIST: proxy_model = Gio.ListStore.new(Gio.ListModel) for artist_album in model: for disc in artist_album.model: proxy_model.append(disc.props.model) self._flatten_model = Gtk.FlattenListModel.new(proxy_model) self._current_playlist_model = self._flatten_model for model_song in self._flatten_model: song = CoreSong(self._application, model_song.props.media) _bind_song_properties(model_song, song) songs_added.append(song) elif playlist_type == PlayerPlaylist.Type.SONGS: self._current_playlist_model = self._songs_model for song in self._songs_model: songs_added.append(song) if song.props.state == SongWidget.State.PLAYING: song.props.state = SongWidget.State.PLAYED elif playlist_type == PlayerPlaylist.Type.SEARCH_RESULT: self._current_playlist_model = self._songs_search_flatten for song in self._songs_search_flatten: songs_added.append(song) elif playlist_type == PlayerPlaylist.Type.PLAYLIST: self._current_playlist_model = model for model_song in model: song = CoreSong(self._application, model_song.props.media) _bind_song_properties(model_song, song) songs_added.append(song) self._playlist_model.splice( 0, self._playlist_model.get_n_items(), songs_added) if self._current_playlist_model is not None: self._player_signal_id = self._current_playlist_model.connect( "items-changed", _on_items_changed) self._previous_playlist_model = model self.emit("playlist-loaded", playlist_type) @GObject.Property(default=None) def active_core_object(self): """Get the current playing core object (album, artist, playlist, search result or song). :returns: current media :rtype: CoreObject """ return self._active_core_object @active_core_object.setter # type: ignore def active_core_object(self, value): """Set the current playing core object (album, artist, playlist, search result or song). :param CoreObject value: new core object to play """ self._active_core_object = value if isinstance(value, CoreAlbum): playlist_type = PlayerPlaylist.Type.ALBUM model = value.props.model elif isinstance(value, CoreArtist): playlist_type = PlayerPlaylist.Type.ARTIST model = value.props.model elif isinstance(value, Playlist): playlist_type = PlayerPlaylist.Type.PLAYLIST model = value.props.model # If the search is active, it means that the search view is visible, # so the player playlist is a list of songs from the search result. # Otherwise, it's a list of songs from the songs view. elif self._search.props.search_mode_active: playlist_type = PlayerPlaylist.Type.SEARCH_RESULT model = self._songs_search_flatten else: playlist_type = PlayerPlaylist.Type.SONGS model = self._songs_model self._set_player_model(playlist_type, model) @GObject.Property( type=Gio.ListStore, default=None, flags=GObject.ParamFlags.READABLE) def songs(self): return self._songs_model @GObject.Property( type=Gtk.FlattenListModel, default=None, flags=GObject.ParamFlags.READABLE) def songs_proxy(self): return self._songs_model_proxy @GObject.Property( type=Gio.ListStore, default=None, flags=GObject.ParamFlags.READABLE) def albums(self): return self._albums_model @GObject.Property( type=Gtk.FlattenListModel, default=None, flags=GObject.ParamFlags.READABLE) def albums_proxy(self): return self._albums_model_proxy @GObject.Property( type=Gio.ListStore, default=None, flags=GObject.ParamFlags.READABLE) def artists(self): return self._artists_model @GObject.Property( type=Gtk.FlattenListModel, default=None, flags=GObject.ParamFlags.READABLE) def artists_proxy(self): return self._artists_model_proxy @GObject.Property( type=Gio.ListStore, default=None, flags=GObject.ParamFlags.READABLE) def playlist(self): return self._playlist_model @GObject.Property( type=Gtk.SortListModel, default=None, flags=GObject.ParamFlags.READABLE) def albums_sort(self): return self._albums_model_sort @GObject.Property( type=Gtk.SortListModel, default=None, flags=GObject.ParamFlags.READABLE) def artists_sort(self): return self._artists_model_sort @GObject.Property( type=Gtk.SortListModel, default=None, flags=GObject.ParamFlags.READABLE) def playlist_sort(self): return self._playlist_model_sort @GObject.Property( type=Gtk.SliceListModel, default=None, flags=GObject.ParamFlags.READABLE) def recent_playlist(self): return self._playlist_model_recent @GObject.Property( type=int, default=None, flags=GObject.ParamFlags.READABLE) def recent_playlist_size(self): return self._recent_size // 2 @GObject.Property( type=Gtk.FilterListModel, default=None, flags=GObject.ParamFlags.READABLE) def songs_search(self): return self._songs_search_flatten @GObject.Property( type=Gio.ListStore, default=None, flags=GObject.ParamFlags.READABLE) def songs_search_proxy(self): return self._songs_search_proxy @GObject.Property( type=Gtk.FlattenListModel, default=None, flags=GObject.ParamFlags.READABLE) def albums_search(self) -> Gtk.FlattenListModel: return self._albums_search_flatten @GObject.Property( type=Gtk.FilterListModel, default=None, flags=GObject.ParamFlags.READABLE) def albums_search_filter(self): return self._albums_search_filter @GObject.Property( type=Gio.ListStore, default=None, flags=GObject.ParamFlags.READABLE) def albums_search_proxy(self) -> Gio.ListStore: return self._albums_search_proxy @GObject.Property( type=Gtk.FlattenListModel, default=None, flags=GObject.ParamFlags.READABLE) def artists_search(self) -> Gtk.FlattenListModel: return self._artists_search_flatten @GObject.Property( type=Gtk.FilterListModel, default=None, flags=GObject.ParamFlags.READABLE) def artists_search_filter(self): return self._artists_search_filter @GObject.Property( type=Gio.ListStore, default=None, flags=GObject.ParamFlags.READABLE) def artists_search_proxy(self) -> Gio.ListStore: return self._artists_search_proxy @GObject.Property( type=Gio.ListStore, default=None, flags=GObject.ParamFlags.READABLE) def playlists(self): return self._playlists_model @GObject.Property( type=Gtk.SortListModel, default=None, flags=GObject.ParamFlags.READABLE) def playlists_sort(self): return self._playlists_model_sort @GObject.Property( type=Gtk.SortListModel, default=None, flags=GObject.ParamFlags.READABLE) def playlists_filter(self): return self._playlists_model_filter @GObject.Property( type=Gtk.SortListModel, default=None, flags=GObject.ParamFlags.READABLE) def user_playlists_sort(self): return self._user_playlists_model_sort @GObject.Property( type=Gtk.SortListModel, default=None, flags=GObject.ParamFlags.READABLE) def user_playlists_filter(self): return self._user_playlists_model_filter 07070100000051000081A400000000000000000000000166968E4E00001A36000000000000000000000000000000000000002800000000gnome-music-46.1/gnomemusic/coresong.py# Copyright 2019 The GNOME Music developers # # GNOME Music 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. # # GNOME Music 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 GNOME Music; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # # The GNOME Music authors hereby grant permission for non-GPL compatible # GStreamer plugins to be used and distributed together with GStreamer # and GNOME Music. This permission is above and beyond the permissions # granted by the GPL license by which GNOME Music is covered. If you # modify this code, you may extend this exception to your version of the # code, but you are not obligated to do so. If you do not wish to do so, # delete this exception statement from your version. from __future__ import annotations from enum import IntEnum from random import randint from typing import Optional import typing import gi gi.require_version('Grl', '0.3') from gi.repository import Grl, GLib, GObject from gnomemusic.songart import SongArt if typing.TYPE_CHECKING: from gnomemusic.application import Application from gnomemusic.coregrilo import CoreGrilo import gnomemusic.utils as utils class CoreSong(GObject.GObject): """Exposes a Grl.Media with relevant data as properties """ __gtype_name__ = "CoreSong" album = GObject.Property(type=str) album_disc_number = GObject.Property(type=int) artist = GObject.Property(type=str) duration = GObject.Property(type=int) media = GObject.Property(type=Grl.Media) grlid = GObject.Property(type=str, default=None) play_count = GObject.Property(type=int) shuffle_pos = GObject.Property(type=int) state = GObject.Property() # FIXME: How to set an IntEnum type? title = GObject.Property(type=str) track_number = GObject.Property(type=int) url = GObject.Property(type=str) validation = GObject.Property() # FIXME: How to set an IntEnum type? class Validation(IntEnum): """Enum for song validation""" PENDING: int = 0 IN_PROGRESS: int = 1 FAILED: int = 2 SUCCEEDED: int = 3 def __init__(self, application: Application, media: Grl.Media) -> None: """Initiate the CoreSong object :param Application application: The application object :param Grl.Media media: A media object """ super().__init__() self._application: Application = application self._coregrilo: CoreGrilo = application.props.coregrilo self._favorite: bool = False self._thumbnail: Optional[str] = None self.props.grlid = media.get_source() + media.get_id() self._is_tracker: bool = media.get_source() == "grl-tracker3-source" self.props.validation = CoreSong.Validation.PENDING self.update(media) self.update_shuffle_pos() def __eq__(self, other: object) -> bool: return (isinstance(other, CoreSong) and other.props.media.get_id() == self.props.media.get_id()) @GObject.Property( type=bool, default=False, flags=GObject.ParamFlags.READABLE) def is_tracker(self) -> bool: return self._is_tracker @GObject.Property(type=bool, default=False) def favorite(self) -> bool: return self._favorite @favorite.setter # type: ignore def favorite(self, favorite: bool) -> None: if not self._is_tracker: return self._favorite = favorite # FIXME: Circular trigger, can probably be solved more neatly. old_fav: bool = self.props.media.get_favourite() if old_fav == self._favorite: return self.props.media.set_favourite(self._favorite) self._coregrilo.writeback_tracker( self.props.media, "favorite") @GObject.Property(type=GLib.DateTime, default=None) def last_played(self) -> Optional[GLib.DateTime]: """Get last played time :returns: Last played date time if available :rtype: GLib.DateTime or None """ return self.props.media.get_last_played() @last_played.setter # type: ignore def last_played(self, value: Optional[GLib.DateTime]) -> None: """Set last played time :param GLib.DateTime value: The datetime to set """ if value is None: return self.props.media.set_last_played(value) if self._is_tracker: self._coregrilo.writeback_tracker(self.props.media, "last-played") @GObject.Property(type=str, default=None) def thumbnail(self) -> str: """Song art thumbnail retrieval :return: The song art uri or "generic" :rtype: string """ if self._thumbnail is None: self._thumbnail = "generic" SongArt(self._application, self) return self._thumbnail @thumbnail.setter # type: ignore def thumbnail(self, value: str) -> None: """Song art thumbnail setter :param string value: uri or "generic" """ self._thumbnail = value if self._thumbnail != "generic": self.props.media.set_thumbnail(self._thumbnail) def update(self, media: Grl.Media) -> None: self.props.media = media self.props.album = utils.get_album_title(media) self.props.album_disc_number = media.get_album_disc_number() self.props.artist = utils.get_artist_name(media) self.props.duration = media.get_duration() self.props.favorite = media.get_favourite() self.props.last_played = media.get_last_played() self.props.play_count = media.get_play_count() self.props.title = utils.get_media_title(media) self.props.track_number = media.get_track_number() self.props.url = media.get_url() def bump_play_count(self) -> None: if not self._is_tracker: return self.props.media.set_play_count(self.props.play_count + 1) self.update(self.props.media) self._coregrilo.writeback_tracker( self.props.media, "play-count") def update_shuffle_pos(self) -> None: """Randomizes the shuffle position of this song""" self.props.shuffle_pos = randint(1, 1_000_000) 07070100000052000081A400000000000000000000000166968E4E00001D71000000000000000000000000000000000000002E00000000gnome-music-46.1/gnomemusic/coverpaintable.py# Copyright 2022 The GNOME Music developers # # GNOME Music 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. # # GNOME Music 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 GNOME Music; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # # The GNOME Music authors hereby grant permission for non-GPL compatible # GStreamer plugins to be used and distributed together with GStreamer # and GNOME Music. This permission is above and beyond the permissions # granted by the GPL license by which GNOME Music is covered. If you # modify this code, you may extend this exception to your version of the # code, but you are not obligated to do so. If you do not wish to do so, # delete this exception statement from your version. from __future__ import annotations from typing import Optional, Union import typing import gi gi.require_versions({"Gdk": "4.0", "Gtk": "4.0", "Gsk": "4.0"}) from gi.repository import Adw, Gsk, Gtk, GObject, Graphene, Gdk from gnomemusic.texturecache import TextureCache from gnomemusic.utils import ArtSize, DefaultIconType if typing.TYPE_CHECKING: from gnomemusic.corealbum import CoreAlbum from gnomemusic.coreartist import CoreArtist from gnomemusic.coresong import CoreSong if typing.TYPE_CHECKING: CoreObject = Union[CoreAlbum, CoreArtist, CoreSong] class CoverPaintable(GObject.GObject, Gdk.Paintable): """An album/artist cover or placeholder Provides the full looks. Rounded corners for albums and round for artists. """ __gtype_name__ = "CoverPaintable" def __init__( self, widget: Gtk.Widget, art_size: ArtSize, icon_type: DefaultIconType) -> None: """Initiliaze CoverPaintable :param Gtk.Widget widget: Widget using the cover :param ArtSize art_size: Size of the cover :param DefaultIconType icon_type: Type of cover """ super().__init__() self._art_size = art_size self._coreobject: Optional[CoreObject] = None self._icon_theme = Gtk.IconTheme.new().get_for_display( widget.get_display()) self._icon_type = icon_type self._style_manager = Adw.StyleManager.get_default() self._texture = None self._texture_cache = TextureCache() self._thumbnail_id = 0 self._widget = widget self._style_manager.connect("notify::dark", self._on_dark_changed) def do_snapshot(self, snapshot: Gtk.Snapshot, w: int, h: int) -> None: if self._icon_type == DefaultIconType.ARTIST: radius = 90.0 elif self._art_size == ArtSize.SMALL: radius = 4.5 else: radius = 9.0 w_s = w h_s = h if self._texture is not None: ratio = self._texture.get_height() / self._texture.get_width() # Scale down the image according to the biggest axis if ratio > 1: w = int(w / ratio) else: h = int(h * ratio) rect = Graphene.Rect().init((w_s - w) / 2, (h_s - h) / 2, w, h) rounded_rect = Gsk.RoundedRect() rounded_rect.init_from_rect(rect, radius) snapshot.push_rounded_clip(rounded_rect) if self._texture is not None: snapshot.append_scaled_texture( self._texture, Gsk.ScalingFilter.TRILINEAR, rect) else: i_s = 1 / 3 # Icon scale icon_pt = self._icon_theme.lookup_icon( self._icon_type.value, None, w * i_s, self._widget.props.scale_factor, 0, 0) bg_color = Gdk.RGBA() bg_color.parse("rgba(95%, 95%, 95%, 1)") if self._style_manager.props.dark: bg_color.parse("rgba(30%, 30%, 30%, 1)") snapshot.append_color(bg_color, Graphene.Rect().init(0, 0, w, h)) snapshot.translate( Graphene.Point().init( (w / 2) - (w * (i_s / 2)), (h / 2) - (h * (i_s / 2)))) snapshot.push_opacity(0.7) icon_pt.snapshot(snapshot, w * i_s, h * i_s) snapshot.pop() snapshot.pop() def _on_dark_changed( self, style_manager: Adw.StyleManager, pspec: GObject.ParamSpecBoolean) -> None: if self._texture is not None: return self.invalidate_contents() @GObject.Property(type=object, default=None) def coreobject(self) -> Optional[CoreObject]: """Get the current core object in use :returns: The corrent coreobject :rtype: Union[CoreAlbum, CoreArtist, CoreSong] or None """ return self._coreobject @coreobject.setter # type: ignore def coreobject(self, coreobject: CoreObject) -> None: """Update the coreobject used for CoverPaintable :param Union[CoreAlbum, CoreArtist, CoreSong] coreobject: The coreobject to set """ if coreobject is self._coreobject: return self._texture_cache.clear_pending_lookup_callback() if self._texture: self._texture = None self.invalidate_contents() if self._thumbnail_id != 0: self._coreobject.disconnect(self._thumbnail_id) self._thumbnail_id = 0 self._coreobject = coreobject self._thumbnail_id = self._coreobject.connect( "notify::thumbnail", self._on_thumbnail_changed) if self._coreobject.props.thumbnail is not None: self._on_thumbnail_changed(self._coreobject, None) def _on_thumbnail_changed( self, coreobject: CoreObject, uri: GObject.ParamSpecString) -> None: thumbnail_uri = coreobject.props.thumbnail if thumbnail_uri == "generic": self._texture = None self.invalidate_contents() return self._texture_cache.connect("texture", self._on_texture_cache) self._texture_cache.lookup(thumbnail_uri) def _on_texture_cache( self, texture_cache: TextureCache, texture: Gdk.Texture) -> None: if texture == self._texture: return self._texture = texture self.invalidate_contents() @GObject.Property(type=object, flags=GObject.ParamFlags.READWRITE) def icon_type(self) -> DefaultIconType: """Icon type of the cover :returns: The type of the default icon :rtype: DefaultIconType """ return self._icon_type @icon_type.setter # type: ignore def icon_type(self, value: DefaultIconType) -> None: """Set the cover icon type :param DefaultIconType value: The default icon type for the cover """ self._icon_type = value self.invalidate_contents() def do_get_flags(self) -> Gdk.PaintableFlags: return Gdk.PaintableFlags.SIZE def do_get_intrinsic_height(self) -> int: return self._art_size.height def do_get_intrinsic_width(self) -> int: return self._art_size.width 07070100000053000081A400000000000000000000000166968E4E00002009000000000000000000000000000000000000002B00000000gnome-music-46.1/gnomemusic/embeddedart.py# Copyright 2020 The GNOME Music developers # # GNOME Music 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. # # GNOME Music 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 GNOME Music; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # # The GNOME Music authors hereby grant permission for non-GPL compatible # GStreamer plugins to be used and distributed together with GStreamer # and GNOME Music. This permission is above and beyond the permissions # granted by the GPL license by which GNOME Music is covered. If you # modify this code, you may extend this exception to your version of the # code, but you are not obligated to do so. If you do not wish to do so, # delete this exception statement from your version. import gi gi.require_versions({"GstPbutils": "1.0", "GstTag": "1.0", "MediaArt": "2.0"}) from gi.repository import ( GLib, GObject, MediaArt, GdkPixbuf, Gio, Gst, GstTag, GstPbutils) from gnomemusic.musiclogger import MusicLogger class EmbeddedArt(GObject.GObject): """Lookup local art 1. Embedded art using GStreamer 2. Available in the directory using MediaArt """ _log = MusicLogger() __gsignals__ = { "art-found": (GObject.SignalFlags.RUN_FIRST, None, (bool, )) } def __init__(self): """Initialize EmbeddedArt """ super().__init__() try: Gst.init(None) GstPbutils.pb_utils_init() except GLib.Error as error: self._log.warning( "Error: {}, {}".format(error.domain, error.message)) return self._media_art = MediaArt.Process.new() self._album = None self._artist = None self._coreobject = None self._file = None def query(self, coreobject, title): """Start the local query :param coreobject: The CoreAlbum or CoreSong to search art for :param str title: The album title for the CoreAlbum or CoreSong """ self._album = title self._artist = coreobject.props.artist self._coreobject = coreobject try: if coreobject.props.url is None: self.emit("art-found", False) return except AttributeError: self.emit("art-found", False) return try: discoverer = GstPbutils.Discoverer.new(Gst.SECOND) except GLib.Error as error: self._log.warning( "Error: {}, {}".format(error.domain, error.message)) self._lookup_cover_in_directory() return discoverer.connect("discovered", self._discovered) discoverer.start() success, file = MediaArt.get_file(self._artist, self._album, "album") if not success: self.emit("art-found", False) discoverer.stop() return self._file = file success = discoverer.discover_uri_async(self._coreobject.props.url) if not success: self._log.warning("Could not add url to discoverer.") self.emit("art-found", False) discoverer.stop() return def _discovered(self, discoverer, info, error): tags = info.get_tags() index = 0 if (error is not None or tags is None): if error: self._log.warning("Discoverer error: {}, {}".format( Gst.CoreError(error.code), error.message)) discoverer.stop() self.emit("art-found", False) return while True: success, sample = tags.get_sample_index(Gst.TAG_IMAGE, index) if not success: break index += 1 struct = sample.get_info() if struct is None: break success, image_type = struct.get_enum( "image-type", GstTag.TagImageType) if not success: continue if image_type not in [ GstTag.TagImageType.UNDEFINED, GstTag.TagImageType.FRONT_COVER]: continue buf = sample.get_buffer() success, map_info = buf.map(Gst.MapFlags.READ) if not success: continue istream = Gio.MemoryInputStream.new_from_data(map_info.data) GdkPixbuf.Pixbuf.new_from_stream_async( istream, None, self._pixbuf_from_stream_finished) discoverer.stop() return discoverer.stop() self._lookup_cover_in_directory() def _pixbuf_from_stream_finished( self, stream: Gio.MemoryInputStream, result: Gio.AsyncResult) -> None: try: pixbuf = GdkPixbuf.Pixbuf.new_from_stream_finish(result) except GLib.Error as error: self._log.warning(f"Error: {error.domain}, {error.message}") self._lookup_cover_in_directory() else: self._file.create_async( Gio.FileCreateFlags.NONE, GLib.PRIORITY_DEFAULT_IDLE, None, self._output_stream_created, pixbuf) finally: stream.close_async( GLib.PRIORITY_DEFAULT_IDLE, None, self._stream_closed) def _output_stream_created( self, stream: Gio.FileOutputStream, result: Gio.AsyncResult, pixbuf: GdkPixbuf.Pixbuf) -> None: try: output_stream = stream.create_finish(result) except GLib.Error as error: # File already exists. self._log.info(f"Error: {error.domain}, {error.message}") self.emit("art-found", True) else: pixbuf.save_to_streamv_async( output_stream, "jpeg", None, None, None, self._output_stream_saved, output_stream) def _output_stream_saved( self, pixbuf: GdkPixbuf.Pixbuf, result: Gio.AsyncResult, output_stream: Gio.FileOutputStream) -> None: try: pixbuf.save_to_stream_finish(result) except GLib.Error as error: self._log.warning(f"Error: {error.domain}, {error.message}") self._lookup_cover_in_directory() else: self.emit("art-found", True) finally: output_stream.close_async( GLib.PRIORITY_DEFAULT_IDLE, None, self._stream_closed) def _stream_closed( self, stream: Gio.OutputStream, result: Gio.AsyncResult) -> None: try: stream.close_finish(result) except GLib.Error as error: self._log.warning(f"Error: {error.domain}, {error.message}") def _lookup_cover_in_directory(self): # Find local art in cover.jpeg files. self._media_art.uri_async( MediaArt.Type.ALBUM, MediaArt.ProcessFlags.NONE, self._coreobject.props.url, self._artist, self._album, GLib.PRIORITY_DEFAULT_IDLE, None, self._uri_async_cb, None) def _uri_async_cb(self, src, result, data): try: success = self._media_art.uri_finish(result) if success: self.emit("art-found", True) return except GLib.Error as error: if MediaArt.Error(error.code) == MediaArt.Error.SYMLINK_FAILED: # This error indicates that the coverart has already # been linked by another concurrent lookup. self.emit("art-found", True) return else: self._log.warning("Error: {}, {}".format( MediaArt.Error(error.code), error.message)) self.emit("art-found", False) 07070100000054000081A400000000000000000000000166968E4E0000093C000000000000000000000000000000000000002F00000000gnome-music-46.1/gnomemusic/fileexistsasync.py# Copyright 2021 The GNOME Music developers # # GNOME Music 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. # # GNOME Music 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 GNOME Music; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # # The GNOME Music authors hereby grant permission for non-GPL compatible # GStreamer plugins to be used and distributed together with GStreamer # and GNOME Music. This permission is above and beyond the permissions # granted by the GPL license by which GNOME Music is covered. If you # modify this code, you may extend this exception to your version of the # code, but you are not obligated to do so. If you do not wish to do so, # delete this exception statement from your version. from gi.repository import GLib, GObject, Gio class FileExistsAsync(GObject.GObject): """Gio.File.file_exists async variant """ __gtype_name__ = "FileExistsAsync" __gsignals__ = { "finished": (GObject.SignalFlags.RUN_FIRST, None, (bool, )) } def __init__(self) -> None: """Initialize FileExistsAsync """ super().__init__() def start(self, thumb_file: Gio.File) -> None: """Start async file_exists lookup :param Gio.File thumb_file: File to check """ thumb_file.query_info_async( Gio.FILE_ATTRIBUTE_STANDARD_TYPE, Gio.FileQueryInfoFlags.NONE, GLib.PRIORITY_DEFAULT_IDLE, None, self._on_query_info_finished) def _on_query_info_finished( self, thumb_file: Gio.File, res: Gio.AsyncResult) -> None: exists = True try: thumb_file.query_info_finish(res) except GLib.Error: # This indicates that the file has not been created, so # there is no art in the MediaArt cache. exists = False self.emit("finished", exists) 07070100000055000081A400000000000000000000000166968E4E00000F28000000000000000000000000000000000000002D00000000gnome-music-46.1/gnomemusic/griloartqueue.py# Copyright 2022 The GNOME Music developers # # GNOME Music 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. # # GNOME Music 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 GNOME Music; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # # The GNOME Music authors hereby grant permission for non-GPL compatible # GStreamer plugins to be used and distributed together with GStreamer # and GNOME Music. This permission is above and beyond the permissions # granted by the GPL license by which GNOME Music is covered. If you # modify this code, you may extend this exception to your version of the # code, but you are not obligated to do so. If you do not wish to do so, # delete this exception statement from your version. from __future__ import annotations from typing import Dict, List, Union import typing from gi.repository import GLib, GObject from gnomemusic.storeart import StoreArt from gnomemusic.utils import CoreObjectType if typing.TYPE_CHECKING: from gnomemusic.application import Application from gnomemusic.corealbum import CoreAlbum from gnomemusic.coreartist import CoreArtist from gnomemusic.coresong import CoreSong CoreObject = Union[CoreAlbum, CoreArtist, CoreSong] class GriloArtQueue(GObject.GObject): """Queue for Grilo art lookup Grilo remote art lookup is quite taxing when done in parallel. This class runs the lookup queries serialized. """ __gtype_name__ = "GriloArtQueue" _queue: Dict[CoreObject, CoreObjectType] = {} _active_queue: List[CoreObject] = [] def __init__(self, application: Application) -> None: """Initialize GriloArtQueue :param Application application: The application instance """ super().__init__() self._coregrilo = application.props.coregrilo self._timeout_id = 0 def queue( self, coreobject: CoreObject, coreobjecttype: CoreObjectType) -> None: """Queue Grilo art lookup for the coreobject :param coreobject: Core object to retrieve art for :param CoreObjectType coreobjecttype: The CoreObjectType """ if coreobject not in [self._queue.keys(), self._active_queue]: self._queue[coreobject] = coreobjecttype if self._timeout_id == 0: self._timeout_id = GLib.timeout_add(100, self._dispatch) def _dispatch(self) -> bool: if len(self._queue) == 0: self._timeout_id = 0 return GLib.SOURCE_REMOVE if len(self._active_queue) > 0: return GLib.SOURCE_CONTINUE coreobject, coreobjecttype = self._queue.popitem() storeart = StoreArt() storeart.connect("finished", self._on_async_finished, coreobject) if coreobjecttype == CoreObjectType.ARTIST: self._coregrilo.get_artist_art(coreobject, storeart) elif coreobjecttype == CoreObjectType.ALBUM: self._coregrilo.get_album_art(coreobject, storeart) elif coreobjecttype == CoreObjectType.SONG: self._coregrilo.get_song_art(coreobject, storeart) self._active_queue.append(coreobject) return GLib.SOURCE_CONTINUE def _on_async_finished( self, storeart: StoreArt, coreobject: CoreObject) -> None: if coreobject in self._active_queue: self._active_queue.remove(coreobject) 07070100000056000041ED00000000000000000000000266968E4E00000000000000000000000000000000000000000000002A00000000gnome-music-46.1/gnomemusic/grilowrappers07070100000057000081A400000000000000000000000166968E4E00000000000000000000000000000000000000000000003600000000gnome-music-46.1/gnomemusic/grilowrappers/__init__.py07070100000058000081A400000000000000000000000166968E4E00000FE7000000000000000000000000000000000000003E00000000gnome-music-46.1/gnomemusic/grilowrappers/grlsearchwrapper.py# Copyright 2019 The GNOME Music developers # # GNOME Music 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. # # GNOME Music 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 GNOME Music; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # # The GNOME Music authors hereby grant permission for non-GPL compatible # GStreamer plugins to be used and distributed together with GStreamer # and GNOME Music. This permission is above and beyond the permissions # granted by the GPL license by which GNOME Music is covered. If you # modify this code, you may extend this exception to your version of the # code, but you are not obligated to do so. If you do not wish to do so, # delete this exception statement from your version. import gi gi.require_versions({"Grl": "0.3"}) from gi.repository import Gio, Grl, Gtk, GObject from gnomemusic.coresong import CoreSong class GrlSearchWrapper(GObject.GObject): """Wrapper for a generic Grilo source search. Grilo has -besides source specific queries- an option to do a generic source search, if the source supports it. This class wraps such a search. """ METADATA_KEYS = [ Grl.METADATA_KEY_ALBUM, Grl.METADATA_KEY_ALBUM_ARTIST, Grl.METADATA_KEY_ALBUM_DISC_NUMBER, Grl.METADATA_KEY_ARTIST, Grl.METADATA_KEY_COMPOSER, Grl.METADATA_KEY_DURATION, Grl.METADATA_KEY_FAVOURITE, Grl.METADATA_KEY_ID, Grl.METADATA_KEY_PLAY_COUNT, Grl.METADATA_KEY_PUBLICATION_DATE, Grl.METADATA_KEY_THUMBNAIL, Grl.METADATA_KEY_TITLE, Grl.METADATA_KEY_TRACK_NUMBER, Grl.METADATA_KEY_URL ] def __init__(self, source, application): """Initialize a search wrapper Initialize a generic Grilo source search wrapper. :param Grl.Source source: The Grilo source to wrap :param Application application: Application instance """ super().__init__() self._application = application self._log = application.props.log self._source = source coremodel = application.props.coremodel self._song_search_proxy = coremodel.props.songs_search_proxy self._song_search_store = Gio.ListStore.new(CoreSong) # FIXME: Workaround for adding the right list type to the proxy # list model. self._song_search_model = Gtk.FilterListModel.new( self._song_search_store) self._song_search_model.set_filter(Gtk.AnyFilter()) self._song_search_proxy.append(self._song_search_model) self._fast_options = Grl.OperationOptions() self._fast_options.set_count(25) self._fast_options.set_resolution_flags( Grl.ResolutionFlags.FAST_ONLY | Grl.ResolutionFlags.IDLE_RELAY) def search(self, text): """Initiate a search :param str text: The text to search """ with self._song_search_store.freeze_notify(): self._song_search_store.remove_all() def _search_result_cb(source, op_id, media, remaining, error): if error: self._log.warning("Error: {}".format(error)) return if not media: return coresong = CoreSong(self._application, media) coresong.props.title = ( coresong.props.title + " (" + source.props.source_name + ")") self._song_search_store.append(coresong) self._source.search( text, self.METADATA_KEYS, self._fast_options, _search_result_cb) 07070100000059000081A400000000000000000000000166968E4E0000AA2B000000000000000000000000000000000000004100000000gnome-music-46.1/gnomemusic/grilowrappers/grltrackerplaylists.py# Copyright 2019 The GNOME Music developers # # GNOME Music 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. # # GNOME Music 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 GNOME Music; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # # The GNOME Music authors hereby grant permission for non-GPL compatible # GStreamer plugins to be used and distributed together with GStreamer # and GNOME Music. This permission is above and beyond the permissions # granted by the GPL license by which GNOME Music is covered. If you # modify this code, you may extend this exception to your version of the # code, but you are not obligated to do so. If you do not wish to do so, # delete this exception statement from your version. import time from gettext import gettext as _ import gi gi.require_versions({"Grl": "0.3", "Tracker": "3.0"}) from gi.repository import Gio, Grl, Gtk, GLib, GObject, Tracker from gnomemusic.coresong import CoreSong import gnomemusic.utils as utils class GrlTrackerPlaylists(GObject.GObject): _METADATA_PLAYLIST_KEYS = [ Grl.METADATA_KEY_CHILDCOUNT, Grl.METADATA_KEY_CREATION_DATE, Grl.METADATA_KEY_ID, Grl.METADATA_KEY_TITLE ] def __init__(self, source, application, tracker_wrapper, songs_hash): """Initialize GrlTrackerPlaylists. :param Grl.TrackerSource source: The Tracker source to wrap :param Application application: Application instance :param TrackerWrapper tracker_wrapper: The TrackerWrapper instance :param dict songs_hash: The songs hash table """ super().__init__() self._application = application self._coremodel = application.props.coremodel self._log = application.props.log self._source = source self._model = self._coremodel.props.playlists self._model_filter = self._coremodel.props.playlists_filter self._user_model_filter = self._coremodel.props.user_playlists_filter self._pls_todelete = [] self._songs_hash = songs_hash self._tracker = tracker_wrapper.props.local_db self._tracker_wrapper = tracker_wrapper self._notificationmanager = application.props.notificationmanager self._window = application.props.window user_playlists_filter = Gtk.CustomFilter() user_playlists_filter.set_filter_func(self._user_playlists_filter) self._user_model_filter.set_filter(user_playlists_filter) self._fast_options = Grl.OperationOptions() self._fast_options.set_resolution_flags( Grl.ResolutionFlags.FAST_ONLY | Grl.ResolutionFlags.IDLE_RELAY) self._initial_playlists_fill() def _initial_playlists_fill(self): args = { "source": self._source, "application": self._application, "tracker_wrapper": self._tracker_wrapper, "songs_hash": self._songs_hash } smart_playlists = { "MostPlayed": MostPlayed(**args), "NeverPlayed": NeverPlayed(**args), "RecentlyPlayed": RecentlyPlayed(**args), "RecentlyAdded": RecentlyAdded(**args), "Favorites": Favorites(**args), "InsufficientTagged": InsufficientTagged(**args), } for playlist in smart_playlists.values(): self._model.append(playlist) self._notificationmanager.push_loading() query = """ SELECT DISTINCT %(media_type)s AS ?type ?playlist AS ?id nie:title(?playlist) AS ?title nrl:added(?playlist) AS ?creationDate nfo:entryCounter(?playlist) AS ?childCount WHERE { ?playlist a nmm:Playlist . } """.replace("\n", " ").strip() % { "media_type": int(Grl.MediaType.CONTAINER), } self._source.query( query, self._METADATA_PLAYLIST_KEYS, self._fast_options, self._add_user_playlist) def _add_user_playlist( self, source, op_id, media, remaining, data=None, error=None): if error: self._log.warning("Error: {}".format(error)) self._notificationmanager.pop_loading() return if not media: self._notificationmanager.pop_loading() return playlist = Playlist( media=media, source=self._source, application=self._application, tracker_wrapper=self._tracker_wrapper, songs_hash=self._songs_hash) self._model.append(playlist) callback = data if callback is not None: callback(playlist) def _playlists_filter(self, playlist): return playlist not in self._pls_todelete def _user_playlists_filter(self, playlist): return (playlist not in self._pls_todelete and playlist.props.is_smart is False) def stage_playlist_deletion(self, playlist): """Adds playlist to the list of playlists to delete :param Playlist playlist: playlist """ self._pls_todelete.append(playlist) playlists_filter = Gtk.CustomFilter() playlists_filter.set_filter_func(self._playlists_filter) self._model_filter.set_filter(playlists_filter) def finish_playlist_deletion(self, playlist, deleted): """Removes playlist from the list of playlists to delete :param Playlist playlist: playlist :param bool deleted: indicates if the playlist has been deleted """ playlists_filter = Gtk.CustomFilter() playlists_filter.set_filter_func(self._playlists_filter) user_playlists_filter = Gtk.CustomFilter() user_playlists_filter.set_filter_func(self._playlists_filter) self._pls_todelete.remove(playlist) if deleted is False: self._model_filter.set_filter(playlists_filter) self._user_model_filter.set_filter(user_playlists_filter) return def _delete_cb(conn, res, data): try: conn.update_finish(res) except GLib.Error as error: self._log.warning("Unable to delete playlist {}: {}".format( playlist.props.title, error.message)) else: for idx, playlist_model in enumerate(self._model): if playlist_model is playlist: self._model.remove(idx) break playlists_filter = Gtk.CustomFilter() playlists_filter.set_filter_func(self._playlists_filter) self._model_filter.set_filter(playlists_filter) self._notificationmanager.pop_loading() self._notificationmanager.push_loading() query = """ DELETE { ?playlist a rdfs:Resource . } WHERE { ?playlist a nmm:Playlist ; a nfo:MediaList . FILTER ( ?playlist = <%(playlist_id)s> ) } """.replace("\n", " ").strip() % { "playlist_id": playlist.props.pl_id } self._tracker.update_async(query, None, _delete_cb, None) def create_playlist(self, playlist_title, callback): """Creates a new user playlist. :param str playlist_title: playlist title :param callback: function to perform once, the playlist is created """ def _create_cb(conn, res, data): try: result = conn.update_blank_finish(res) except GLib.Error as error: self._log.warning( "Unable to create playlist {}: {}".format( playlist_title, error.message)) self._notificationmanager.pop_loading() if callback is not None: callback(None) return playlist_urn = result[0][0]['playlist'] query = """ SELECT %(media_type)s AS ?type ?playlist AS ?id nie:title(?playlist) AS ?title nrl:added(?playlist) AS ?creationDate nfo:entryCounter(?playlist) AS ?childCount WHERE { BIND ( <%(playlist_urn)s> AS ?playlist ) } """.replace("\n", " ").strip() % { "media_type": int(Grl.MediaType.CONTAINER), "playlist_urn": playlist_urn } self._source.query( query, self._METADATA_PLAYLIST_KEYS, self._fast_options, self._add_user_playlist, callback) self._notificationmanager.push_loading() query = """ INSERT { _:playlist a nmm:Playlist ; a nfo:MediaList ; nie:title "%(title)s" ; nfo:entryCounter 0 . } """.replace("\n", " ").strip() % { "title": Tracker.sparql_escape_string(playlist_title) } self._tracker.update_blank_async(query, None, _create_cb, None) def check_smart_playlist_change(self): """Check if smart playlists need to be updated. A smart playlist needs to be updated in two cases: * it is being played (active_playlist) * it is visible in PlaylistsView """ active_core_object = self._coremodel.props.active_core_object if (isinstance(active_core_object, Playlist) and active_core_object.props.is_smart): active_core_object.update() else: self._coremodel.emit("smart-playlist-change") class Playlist(GObject.GObject): """ Base class of all playlists """ __gsignals__ = { "playlist-loaded": (GObject.SignalFlags.RUN_FIRST, None, ()), } _METADATA_PLAYLIST_KEYS = [ Grl.METADATA_KEY_ALBUM, Grl.METADATA_KEY_ARTIST, Grl.METADATA_KEY_DURATION, Grl.METADATA_KEY_FAVOURITE, Grl.METADATA_KEY_ID, Grl.METADATA_KEY_LAST_PLAYED, Grl.METADATA_KEY_PLAY_COUNT, Grl.METADATA_KEY_TITLE, Grl.METADATA_KEY_URL ] count = GObject.Property(type=int, default=0) creation_date = GObject.Property(type=GLib.DateTime, default=None) icon_name = GObject.Property(type=str, default="music-playlist-symbolic") is_smart = GObject.Property(type=bool, default=False) pl_id = GObject.Property(type=str, default=None) query = GObject.Property(type=str, default=None) tag_text = GObject.Property(type=str, default=None) def __init__( self, media=None, query=None, tag_text=None, source=None, application=None, tracker_wrapper=None, songs_hash=None): super().__init__() """Initialize a playlist :param Grl.Media media: A media object :param string query: Tracker query that returns the playlist :param string tag_text: The non translatable unique identifier of the playlist :param Grl.Source source: The Grilo Tracker source object :param Application application: The Application instance :param TrackerWrapper tracker_wrapper: The TrackerWrapper instance :param dict songs_hash: The songs hash table """ if media: self.props.pl_id = media.get_id() self._title = utils.get_media_title(media) self.props.count = media.get_childcount() self.props.creation_date = media.get_creation_date() else: self._title = None self.props.query = query self.props.tag_text = tag_text self._application = application self._model = None self._source = source self._coremodel = application.props.coremodel self._log = application.props.log self._songs_hash = songs_hash self._tracker = tracker_wrapper.props.local_db self._tracker_wrapper = tracker_wrapper self._notificationmanager = application.props.notificationmanager self._fast_options = Grl.OperationOptions() self._fast_options.set_resolution_flags( Grl.ResolutionFlags.FAST_ONLY | Grl.ResolutionFlags.IDLE_RELAY) self._songs_todelete = [] @GObject.Property(type=Gio.ListStore, default=None) def model(self): if self._model is None: self._model = Gio.ListStore() self._populate_model() return self._model @model.setter # type: ignore def model(self, value): self._model = value def _populate_model(self): self._notificationmanager.push_loading() query = """ SELECT %(media_type)s AS ?type ?song AS ?id ?url ?title ?artist ?album ?duration ?tag AS ?favorite nie:contentAccessed(?song) AS ?lastPlayed nie:usageCounter(?song) AS ?playCount WHERE { ?playlist a nmm:Playlist ; a nfo:MediaList ; nfo:hasMediaFileListEntry ?entry . ?entry a nfo:MediaFileListEntry ; nfo:entryUrl ?url . SERVICE { GRAPH tracker:Audio { SELECT ?song nie:title(?song) AS ?title nmm:artistName(nmm:artist(?song)) AS ?artist nie:title(nmm:musicAlbum(?song)) AS ?album nfo:duration(?song) AS ?duration ?url WHERE { ?song a nmm:MusicPiece ; nie:isStoredAs ?url . %(location_filter)s } } } OPTIONAL { ?song nao:hasTag ?tag . FILTER( ?tag = nao:predefined-tag-favorite ) } FILTER ( %(filter_clause)s ) } ORDER BY nfo:listPosition(?entry) """.replace('\n', ' ').strip() % { "media_type": int(Grl.MediaType.AUDIO), "filter_clause": f"?playlist = <{self.props.pl_id}>", "location_filter": self._tracker_wrapper.location_filter(), "miner_fs_busname": self._tracker_wrapper.props.miner_fs_busname, } def _add_to_playlist_cb( source, op_id, media, remaining, user_data, error): if not media: self.props.count = self._model.get_n_items() self.emit("playlist-loaded") self._notificationmanager.pop_loading() return coresong = CoreSong(self._application, media) self._bind_to_main_song(coresong) if coresong not in self._songs_todelete: self._model.append(coresong) options = Grl.OperationOptions() options.set_resolution_flags( Grl.ResolutionFlags.FAST_ONLY | Grl.ResolutionFlags.IDLE_RELAY) self._source.query( query, self._METADATA_PLAYLIST_KEYS, options, _add_to_playlist_cb, None) def _bind_to_main_song(self, coresong): main_coresong = self._songs_hash[coresong.props.media.get_id()] # It is not necessary to bind all the CoreSong properties: # selected property is linked to a view # validation is a short-lived playability check for local songs bidirectional_properties = [ "album", "album_disc_number", "artist", "duration", "media", "grlid", "play_count", "title", "track_number", "url", "favorite"] for prop in bidirectional_properties: main_coresong.bind_property( prop, coresong, prop, GObject.BindingFlags.BIDIRECTIONAL | GObject.BindingFlags.SYNC_CREATE) # There is no need for the "state" property to be bidirectional coresong.bind_property( prop, main_coresong, "state", GObject.BindingFlags.DEFAULT) @GObject.Property(type=str, default=None) def title(self): """Playlist title :returns: playlist title :rtype: str """ return self._title @title.setter # type: ignore def title(self, new_name): """Rename a playlist :param str new_name: new playlist name """ self._notificationmanager.push_loading() def update_cb(conn, res, data): try: conn.update_finish(res) except GLib.Error as e: self._log.warning( "Unable to rename playlist from {} to {}: {}".format( self._title, new_name, e.message)) else: self._title = new_name finally: self._notificationmanager.pop_loading() self.thaw_notify() query = """ INSERT OR REPLACE { ?playlist nie:title "%(title)s" } WHERE { ?playlist a nmm:Playlist ; a nfo:MediaList . OPTIONAL { ?playlist nfo:hasMediaFileListEntry ?entry . } FILTER ( ?playlist = <%(playlist_id)s> ) } """.replace("\n", " ").strip() % { 'title': Tracker.sparql_escape_string(new_name), 'playlist_id': self.props.pl_id } self.freeze_notify() self._tracker.update_async(query, None, update_cb, None) def stage_song_deletion(self, coresong, index): """Adds a song to the list of songs to delete :param CoreSong coresong: song to delete :param int position: Song position in the playlist """ self._songs_todelete.append(coresong) self._model.remove(index) self.props.count -= 1 def undo_pending_song_deletion(self, coresong, position): """Removes song from the list of songs to delete :param CoreSong coresong: song to delete :param int position: Song position in the playlist """ self._songs_todelete.remove(coresong) self._model.insert(position, coresong) self.props.count += 1 def finish_song_deletion(self, coresong: CoreSong, position: int) -> None: """Removes a song from the playlist :param CoreSong coresong: song to remove :param int position: Song position in the playlist, starts from zero """ def update_cb(conn, res): try: conn.update_finish(res) except GLib.Error as e: self._log.warning( "Unable to remove song from playlist {}: {}".format( self.props.title, e.message)) self._notificationmanager.pop_loading() def entry_retrieved_cb(source, op_id, media, remaining, error): if error: self._log.warning("Error: {}".format(error)) return if not media: return self._notificationmanager.push_loading() update_query = """ INSERT OR REPLACE { ?entry nfo:listPosition ?position . } WHERE { SELECT ?entry (?old_position - 1) AS ?position WHERE { ?entry a nfo:MediaFileListEntry ; nfo:listPosition ?old_position . ?playlist nfo:hasMediaFileListEntry ?entry . FILTER (?old_position > ?removed_position) { SELECT ?playlist ?removed_position WHERE { ?playlist a nmm:Playlist ; a nfo:MediaList ; nfo:hasMediaFileListEntry ?removed_entry . ?removed_entry nfo:listPosition ?removed_position . FILTER ( ?playlist = <%(playlist_id)s> && ?removed_entry = <%(entry_id)s> ) } } } }; INSERT OR REPLACE { ?playlist nfo:entryCounter ?new_counter . } WHERE { SELECT ?playlist (?counter - 1) AS ?new_counter WHERE { ?playlist a nmm:Playlist ; a nfo:MediaList ; nfo:entryCounter ?counter . FILTER ( ?playlist = <%(playlist_id)s> ) } }; DELETE { ?playlist nfo:hasMediaFileListEntry ?entry . ?entry a rdfs:Resource . } WHERE { ?playlist a nmm:Playlist ; a nfo:MediaList ; nfo:hasMediaFileListEntry ?entry . FILTER ( ?playlist = <%(playlist_id)s> && ?entry = <%(entry_id)s> ) } """.replace("\n", " ").strip() % { "playlist_id": self.props.pl_id, "entry_id": media.get_id() } self._tracker.update_async(update_query, None, update_cb) entry_query = """ SELECT %(media_type)s AS ?type ?entry AS ?id WHERE { ?playlist a nmm:Playlist ; a nfo:MediaList ; nfo:hasMediaFileListEntry ?entry . ?entry a nfo:MediaFileListEntry . FILTER ( %(filter_clause_pl)s && nfo:listPosition(?entry) = %(position)s ) } """.replace("\n", " ").strip() % { "media_type": int(Grl.MediaType.AUDIO), "position": position + 1, "filter_clause_pl": f"?playlist = <{self.props.pl_id}>", } self._source.query( entry_query, [Grl.METADATA_KEY_ID], self._fast_options, entry_retrieved_cb) def add_songs(self, coresongs): """Adds songs to the playlist :param list coresongs: list of Coresong """ def _add_to_model( connection: Tracker.SparqlConnection, result: Gio.AsyncResult, coresong: CoreSong) -> None: if self._model is None: return try: connection.update_finish(result) except GLib.Error as error: self._log.warning( "Unable to add to playlist {} song {}: {}".format( self.props.title, coresong.props.title, error.message)) else: media = coresong.props.media coresong_copy = CoreSong(self._application, media) self._bind_to_main_song(coresong_copy) self._model.append(coresong_copy) self.props.count = self._model.get_n_items() for coresong in coresongs: query = """ INSERT OR REPLACE { _:entry a nfo:MediaFileListEntry ; nfo:entryUrl "%(song_uri)s" ; nfo:listPosition ?position . ?playlist nfo:entryCounter ?position ; nfo:hasMediaFileListEntry _:entry . } WHERE { SELECT ?playlist (?counter + 1) AS ?position WHERE { ?playlist a nmm:Playlist ; a nfo:MediaList ; nfo:entryCounter ?counter . FILTER ( ?playlist = <%(playlist_id)s> ) } } """.replace("\n", " ").strip() % { "playlist_id": self.props.pl_id, "song_uri": coresong.props.media.get_url()} self._tracker.update_blank_async( query, None, _add_to_model, coresong) def reorder(self, previous_position, new_position): """Changes the order of a songs in the playlist. :param int previous_position: preivous song position :param int new_position: new song position """ def _position_changed_cb(conn, res, position): # FIXME: Check for failure. conn.update_finish(res) coresong = self._model.get_item(previous_position) self._model.remove(previous_position) self._model.insert(new_position, coresong) main_query = """ INSERT OR REPLACE { ?entry nfo:listPosition %(position)s } WHERE { ?playlist a nmm:Playlist ; a nfo:MediaList ; nfo:hasMediaFileListEntry ?entry . FILTER ( ?playlist = <%(playlist_id)s> && ?entry = <%(song_id)s> ) } """.replace("\n", " ").strip() first_pos = min(previous_position, new_position) last_pos = max(previous_position, new_position) for position in range(first_pos, last_pos + 1): coresong = self._model.get_item(position) query = main_query % { "playlist_id": self.props.pl_id, "song_id": coresong.props.media.get_id(), "position": position } self._tracker.update_async( query, None, _position_changed_cb, position) class SmartPlaylist(Playlist): """Base class for smart playlists""" _METADATA_SMART_PLAYLIST_KEYS = [ Grl.METADATA_KEY_ALBUM, Grl.METADATA_KEY_ALBUM_DISC_NUMBER, Grl.METADATA_KEY_ARTIST, Grl.METADATA_KEY_DURATION, Grl.METADATA_KEY_FAVOURITE, Grl.METADATA_KEY_ID, Grl.METADATA_KEY_PLAY_COUNT, Grl.METADATA_KEY_URL, Grl.METADATA_KEY_TITLE, Grl.METADATA_KEY_TRACK_NUMBER, ] def __init__(self, **args): super().__init__(**args) self.props.is_smart = True @GObject.Property(type=Gio.ListStore, default=None) def model(self): if self._model is None: self._model = Gio.ListStore.new(CoreSong) self._notificationmanager.push_loading() def _add_to_model(source, op_id, media, remaining, error): if error: self._log.warning("Error: {}".format(error)) self._notificationmanager.pop_loading() self.emit("playlist-loaded") return if not media: self.props.count = self._model.get_n_items() self._notificationmanager.pop_loading() self.emit("playlist-loaded") return coresong = CoreSong(self._application, media) self._bind_to_main_song(coresong) self._model.append(coresong) self._source.query( self.props.query, self._METADATA_SMART_PLAYLIST_KEYS, self._fast_options, _add_to_model) return self._model def update(self): """Updates playlist model.""" if self._model is None: return new_model_medias = [] def _fill_new_model(source, op_id, media, remaining, error): if error: return if not media: self._finish_update(new_model_medias) return new_model_medias.append(media) self._source.query( self.props.query, self._METADATA_SMART_PLAYLIST_KEYS, self._fast_options, _fill_new_model) def _finish_update(self, new_model_medias): if not new_model_medias: self._model.remove_all() self.props.count = 0 return current_models_ids = [coresong.props.media.get_id() for coresong in self._model] new_model_ids = [media.get_id() for media in new_model_medias] idx_to_delete = [] for idx, media_id in enumerate(current_models_ids): if media_id not in new_model_ids: idx_to_delete.insert(0, idx) for idx in idx_to_delete: self._model.remove(idx) self.props.count -= 1 for idx, media in enumerate(new_model_medias): if media.get_id() not in current_models_ids: coresong = CoreSong(self._application, media) self._bind_to_main_song(coresong) self._model.append(coresong) self.props.count += 1 class MostPlayed(SmartPlaylist): """Most Played smart playlist""" def __init__(self, **args): super().__init__(**args) self.props.tag_text = "MOST_PLAYED" # TRANSLATORS: this is a playlist name self._title = _("Most Played") self.props.icon_name = "audio-speakers-symbolic" self.props.query = """ SELECT %(media_type)s AS ?type ?song AS ?id ?title ?url ?artist ?album ?duration ?trackNumber ?albumDiscNumber ?playCount ?tag AS ?favorite WHERE { SERVICE { GRAPH tracker:Audio { SELECT ?song nie:title(?song) AS ?title nie:isStoredAs(?song) AS ?url nmm:artistName(nmm:artist(?song)) AS ?artist nie:title(nmm:musicAlbum(?song)) AS ?album nfo:duration(?song) AS ?duration nmm:trackNumber(?song) AS ?trackNumber nmm:setNumber(nmm:musicAlbumDisc(?song)) AS ?albumDiscNumber WHERE { ?song a nmm:MusicPiece . %(location_filter)s } } } ?song nie:usageCounter ?playCount OPTIONAL { ?song nao:hasTag ?tag . FILTER (?tag = nao:predefined-tag-favorite) } } ORDER BY DESC(?playCount) LIMIT 50 """.replace('\n', ' ').strip() % { "media_type": int(Grl.MediaType.AUDIO), "location_filter": self._tracker_wrapper.location_filter(), "miner_fs_busname": self._tracker_wrapper.props.miner_fs_busname, } class NeverPlayed(SmartPlaylist): """Never Played smart playlist""" def __init__(self, **args): super().__init__(**args) self.props.tag_text = "NEVER_PLAYED" # TRANSLATORS: this is a playlist name self._title = _("Never Played") self.props.icon_name = "deaf-symbolic" self.props.query = """ SELECT %(media_type)s AS ?type ?song AS ?id ?title ?url ?artist ?album ?duration ?trackNumber ?albumDiscNumber nie:usageCounter(?song) AS ?playCount ?tag AS ?favorite WHERE { SERVICE { GRAPH tracker:Audio { SELECT ?song nie:title(?song) AS ?title nie:isStoredAs(?song) AS ?url nmm:artistName(nmm:artist(?song)) AS ?artist nie:title(nmm:musicAlbum(?song)) AS ?album nfo:duration(?song) AS ?duration nmm:trackNumber(?song) AS ?trackNumber nmm:setNumber(nmm:musicAlbumDisc(?song)) AS ?albumDiscNumber WHERE { ?song a nmm:MusicPiece . %(location_filter)s } } } FILTER ( NOT EXISTS { ?song nie:usageCounter ?count .} ) OPTIONAL { ?song nao:hasTag ?tag . FILTER (?tag = nao:predefined-tag-favorite) } } ORDER BY nfo:fileLastAccessed(?song) LIMIT 50 """.replace('\n', ' ').strip() % { "media_type": int(Grl.MediaType.AUDIO), "location_filter": self._tracker_wrapper.location_filter(), "miner_fs_busname": self._tracker_wrapper.props.miner_fs_busname, } class RecentlyPlayed(SmartPlaylist): """Recently Played smart playlist""" def __init__(self, **args): super().__init__(**args) self.props.tag_text = "RECENTLY_PLAYED" # TRANSLATORS: this is a playlist name self._title = _("Recently Played") self.props.icon_name = "document-open-recent-symbolic" sparql_midnight_dateTime_format = "%Y-%m-%dT00:00:00Z" days_difference = 7 seconds_difference = days_difference * 86400 compare_date = time.strftime( sparql_midnight_dateTime_format, time.gmtime(time.time() - seconds_difference)) self.props.query = """ SELECT %(media_type)s AS ?type ?song AS ?id ?title ?url ?artist ?album ?duration ?trackNumber ?albumDiscNumber nie:usageCounter(?song) AS ?playCount ?tag AS ?favorite WHERE { { SELECT ?song ?title ?url ?artist ?album ?duration ?trackNumber ?albumDiscNumber ?playCount ?tag ?lastPlayed WHERE { SERVICE { GRAPH tracker:Audio { SELECT ?song nie:title(?song) AS ?title nie:isStoredAs(?song) AS ?url nmm:artistName(nmm:artist(?song)) AS ?artist nie:title(nmm:musicAlbum(?song)) AS ?album nfo:duration(?song) AS ?duration nmm:trackNumber(?song) AS ?trackNumber nmm:setNumber(nmm:musicAlbumDisc(?song)) AS ?albumDiscNumber WHERE { ?song a nmm:MusicPiece . %(location_filter)s } } } ?song nie:contentAccessed ?lastPlayed ; nie:usageCounter ?playCount . OPTIONAL { ?song nao:hasTag ?tag . FILTER (?tag = nao:predefined-tag-favorite) } } ORDER BY DESC(?lastPlayed) LIMIT 50 } FILTER (?lastPlayed > '%(compare_date)s'^^xsd:dateTime) } """.replace('\n', ' ').strip() % { "media_type": int(Grl.MediaType.AUDIO), 'compare_date': compare_date, "location_filter": self._tracker_wrapper.location_filter(), "miner_fs_busname": self._tracker_wrapper.props.miner_fs_busname, } class RecentlyAdded(SmartPlaylist): """Recently Added smart playlist""" def __init__(self, **args): super().__init__(**args) self.props.tag_text = "RECENTLY_ADDED" # TRANSLATORS: this is a playlist name self._title = _("Recently Added") self.props.icon_name = "list-add-symbolic" sparql_midnight_dateTime_format = "%Y-%m-%dT00:00:00Z" days_difference = 7 seconds_difference = days_difference * 86400 compare_date = time.strftime( sparql_midnight_dateTime_format, time.gmtime(time.time() - seconds_difference)) self.props.query = """ SELECT %(media_type)s AS ?type ?song AS ?id ?title ?url ?artist ?album ?duration ?trackNumber ?albumDiscNumber nie:usageCounter(?song) AS ?playCount ?tag AS ?favorite WHERE { SERVICE { GRAPH tracker:Audio { SELECT ?song nie:title(?song) AS ?title nie:isStoredAs(?song) AS ?url nmm:artistName(nmm:artist(?song)) AS ?artist nie:title(nmm:musicAlbum(?song)) AS ?album nfo:duration(?song) AS ?duration nmm:trackNumber(?song) AS ?trackNumber nmm:setNumber(nmm:musicAlbumDisc(?song)) AS ?albumDiscNumber ?added WHERE { ?song a nmm:MusicPiece ; nrl:added ?added . %(location_filter)s FILTER ( ?added > '%(compare_date)s'^^xsd:dateTime ) } } } OPTIONAL { ?song nao:hasTag ?tag . FILTER (?tag = nao:predefined-tag-favorite) } } ORDER BY DESC(nrl:added(?song)) LIMIT 50 """.replace('\n', ' ').strip() % { "media_type": int(Grl.MediaType.AUDIO), 'compare_date': compare_date, "location_filter": self._tracker_wrapper.location_filter(), "miner_fs_busname": self._tracker_wrapper.props.miner_fs_busname, } class Favorites(SmartPlaylist): """Favorites smart playlist""" def __init__(self, **args): super().__init__(**args) self.props.tag_text = "FAVORITES" # TRANSLATORS: this is a playlist name self._title = _("Favorite Songs") self.props.icon_name = "starred-symbolic" self.props.query = """ SELECT %(media_type)s AS ?type ?song AS ?id ?title ?url ?artist ?album ?duration ?trackNumber ?albumDiscNumber nie:usageCounter(?song) AS ?playCount nao:predefined-tag-favorite AS ?favorite WHERE { SERVICE { GRAPH tracker:Audio { SELECT ?song nie:title(?song) AS ?title nie:isStoredAs(?song) AS ?url nmm:artistName(nmm:artist(?song)) AS ?artist nie:title(nmm:musicAlbum(?song)) AS ?album nfo:duration(?song) AS ?duration nmm:trackNumber(?song) AS ?trackNumber nmm:setNumber(nmm:musicAlbumDisc(?song)) AS ?albumDiscNumber nrl:added(?song) AS ?added WHERE { ?song a nmm:MusicPiece . %(location_filter)s } } } ?song nao:hasTag nao:predefined-tag-favorite . } ORDER BY DESC(?added) """.replace('\n', ' ').strip() % { "media_type": int(Grl.MediaType.AUDIO), "location_filter": self._tracker_wrapper.location_filter(), "miner_fs_busname": self._tracker_wrapper.props.miner_fs_busname, } class InsufficientTagged(SmartPlaylist): """Lacking tags to be displayed in the artist/album views""" def __init__(self, **args): super().__init__(**args) self.props.tag_text = "INSUFFICIENT_TAGGED" # TRANSLATORS: this is a playlist name indicating that the # files are not tagged enough to be displayed in the albums # or artists views. self._title = _("Insufficiently Tagged") self.props.icon_name = "question-round-symbolic" self.props.query = """ SELECT %(media_type)s AS ?type ?song AS ?id ?title ?url ?artist ?album ?duration ?trackNumber ?albumDiscNumber nie:usageCounter(?song) AS ?playCount ?tag AS ?favorite WHERE { SERVICE { GRAPH tracker:Audio { SELECT ?song nie:title(?song) AS ?title nie:isStoredAs(?song) AS ?url nmm:artistName(nmm:artist(?song)) AS ?artist nie:title(nmm:musicAlbum(?song)) AS ?album nfo:duration(?song) AS ?duration nmm:trackNumber(?song) AS ?trackNumber nmm:setNumber(nmm:musicAlbumDisc(?song)) AS ?albumDiscNumber WHERE { { ?song a nmm:MusicPiece . %(location_filter)s FILTER NOT EXISTS { ?song nmm:musicAlbum ?album } } UNION { ?song a nmm:MusicPiece . %(location_filter)s FILTER NOT EXISTS { ?song nmm:artist ?artist } } } } } OPTIONAL { ?song nao:hasTag ?tag . FILTER (?tag = nao:predefined-tag-favorite) } } """.replace('\n', ' ').strip() % { "media_type": int(Grl.MediaType.AUDIO), "location_filter": self._tracker_wrapper.location_filter(), "miner_fs_busname": self._tracker_wrapper.props.miner_fs_busname, } 0707010000005A000081A400000000000000000000000166968E4E0000CE92000000000000000000000000000000000000003F00000000gnome-music-46.1/gnomemusic/grilowrappers/grltrackerwrapper.py# Copyright 2019 The GNOME Music developers # # GNOME Music 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. # # GNOME Music 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 GNOME Music; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # # The GNOME Music authors hereby grant permission for non-GPL compatible # GStreamer plugins to be used and distributed together with GStreamer # and GNOME Music. This permission is above and beyond the permissions # granted by the GPL license by which GNOME Music is covered. If you # modify this code, you may extend this exception to your version of the # code, but you are not obligated to do so. If you do not wish to do so, # delete this exception statement from your version. from __future__ import annotations from typing import Callable, Dict, List, Optional import typing import gi gi.require_versions({"Grl": "0.3", "Tracker": "3.0"}) from gi.repository import Grl, Gio, Gtk, GLib, GObject, Tracker from gnomemusic.asyncqueue import AsyncQueue from gnomemusic.corealbum import CoreAlbum from gnomemusic.coreartist import CoreArtist from gnomemusic.coredisc import CoreDisc from gnomemusic.coresong import CoreSong from gnomemusic.grilowrappers.grltrackerplaylists import ( GrlTrackerPlaylists, Playlist) from gnomemusic.trackerwrapper import TrackerWrapper from gnomemusic.utils import CoreObjectType if typing.TYPE_CHECKING: from gnomemusic.application import Application from gnomemusic.coremodel import CoreModel from gnomemusic.musiclogger import MusicLogger from gnomemusic.notificationmanager import NotificationManager from gnomemusic.storeart import StoreArt class GrlTrackerWrapper(GObject.GObject): """Wrapper for the Grilo Tracker source. """ _SPLICE_SIZE: int = 100 _METADATA_ALBUM_CHANGED_KEYS: List[int] = [ Grl.METADATA_KEY_ARTIST, Grl.METADATA_KEY_ALBUM_ARTIST, Grl.METADATA_KEY_COMPOSER, Grl.METADATA_KEY_ID, Grl.METADATA_KEY_PUBLICATION_DATE, Grl.METADATA_KEY_TITLE, Grl.METADATA_KEY_URL ] _METADATA_SONG_FILL_KEYS: List[int] = [ Grl.METADATA_KEY_ALBUM, Grl.METADATA_KEY_ALBUM_DISC_NUMBER, Grl.METADATA_KEY_ARTIST, Grl.METADATA_KEY_DURATION, Grl.METADATA_KEY_FAVOURITE, Grl.METADATA_KEY_ID, Grl.METADATA_KEY_PLAY_COUNT, Grl.METADATA_KEY_TITLE, Grl.METADATA_KEY_TRACK_NUMBER, Grl.METADATA_KEY_URL ] _METADATA_SONG_MEDIA_QUERY_KEYS: List[int] = [ Grl.METADATA_KEY_ALBUM, Grl.METADATA_KEY_ALBUM_DISC_NUMBER, Grl.METADATA_KEY_ARTIST, Grl.METADATA_KEY_DURATION, Grl.METADATA_KEY_FAVOURITE, Grl.METADATA_KEY_ID, Grl.METADATA_KEY_PLAY_COUNT, Grl.METADATA_KEY_TITLE, Grl.METADATA_KEY_TRACK_NUMBER, Grl.METADATA_KEY_URL ] _METADATA_THUMBNAIL_KEYS: List[int] = [ Grl.METADATA_KEY_ID, Grl.METADATA_KEY_THUMBNAIL ] def __init__( self, source: Grl.Source, application: Application, tracker_wrapper: TrackerWrapper) -> None: """Initialize the Tracker wrapper :param Grl.TrackerSource source: The Tracker source to wrap :param Application application: Application instance :param TrackerWrapper tracker_wrapper: The TrackerWrapper instance """ super().__init__() self._async_queue = AsyncQueue("GrlTrackerWrapper") self._application: Application = application cm: CoreModel = application.props.coremodel self._log: MusicLogger = application.props.log self._songs_model = Gio.ListStore.new(CoreSong) cm.props.songs_proxy.append(self._songs_model) self._source: Optional[Grl.Source] = None self._albums_model = Gio.ListStore.new(CoreAlbum) cm.props.albums_proxy.append(self._albums_model) self._album_ids: Dict[str, CoreAlbum] = {} self._artists_model = Gio.ListStore.new(CoreArtist) cm.props.artists_proxy.append(self._artists_model) self._artist_ids: Dict[str, CoreArtist] = {} self._hash: Dict[str, CoreSong] = {} self._batch_changed_media_ids: Dict[ Grl.SourceChangeType, List[str]] = {} self._content_changed_timeout: int = 0 self._tracker_playlists: Optional[GrlTrackerPlaylists] = None self._tracker_wrapper: TrackerWrapper = tracker_wrapper self._notificationmanager: NotificationManager = ( application.props.notificationmanager) self._songs_search: Gtk.FilterListModel = Gtk.FilterListModel.new( self._songs_model) self._songs_search.set_filter(Gtk.AnyFilter()) cm.props.songs_search_proxy.append(self._songs_search) self._albums_search: Gtk.FilterListModel = Gtk.FilterListModel.new( self._albums_model) self._albums_search.set_filter(Gtk.AnyFilter()) cm.props.albums_search_proxy.append(self._albums_search) self._artists_search: Gtk.FilterListModel = Gtk.FilterListModel.new( self._artists_model) self._artists_search.set_filter(Gtk.AnyFilter()) cm.props.artists_search_proxy.append(self._artists_search) self._fast_options: Grl.OperationOptions = Grl.OperationOptions() self._fast_options.set_type_filter(Grl.TypeFilter.AUDIO) self._fast_options.set_resolution_flags( Grl.ResolutionFlags.FAST_ONLY) self._fast_options_lprio = Grl.OperationOptions() self._fast_options_lprio.set_type_filter(Grl.TypeFilter.AUDIO) self._fast_options_lprio.set_resolution_flags( Grl.ResolutionFlags.FAST_ONLY | Grl.ResolutionFlags.IDLE_RELAY) self._full_options: Grl.OperationOptions = Grl.OperationOptions() self._full_options.set_type_filter(Grl.TypeFilter.AUDIO) self._full_options.set_resolution_flags( Grl.ResolutionFlags.FULL) self._full_options_lprio = Grl.OperationOptions() self._full_options_lprio.set_type_filter(Grl.TypeFilter.AUDIO) self._full_options_lprio.set_resolution_flags( Grl.ResolutionFlags.FULL | Grl.ResolutionFlags.IDLE_RELAY) self._content_changed_id: int = 0 self.props.source = source self._initial_songs_fill() self._initial_albums_fill() self._initial_artists_fill() @GObject.Property(type=Grl.Source, default=None) def source(self) -> Grl.Source: return self._source @source.setter # type: ignore def source(self, new_source: Grl.Source): """Set a new grilo tracker source Everytime, the tracker plugin is loaded, a new source is created. The source needs to be updated to get notifications. :param Grl.Source new_source: new grilo tracker source """ if self._content_changed_id != 0: self._source.disconnect(self._content_changed_id) self._content_changed_id = 0 self._source = new_source self._source.notify_change_start() self._content_changed_id = self._source.connect( "content-changed", self._batch_content_changed) def _batch_content_changed( self, source: Grl.Source, medias: List[Grl.Media], change_type: Grl.SourceChangeType, loc_unknown: bool) -> None: if medias == []: return if change_type not in self._batch_changed_media_ids.keys(): self._batch_changed_media_ids[change_type] = [] # Remove notifications contain two events for the same file. # One event as a file uri and the other one as a # nie:InformationElement. Only the nie:InformationElement event # needs to be kept because it is saved in the hash. changed_medias = [ media.get_id() for media in medias if ((media.is_audio() or media.is_container()) and media.get_id().startswith("urn:"))] self._batch_changed_media_ids[change_type].extend(changed_medias) if self._content_changed_timeout == 0: self._content_changed_timeout = GLib.timeout_add( 250, self._on_content_changed) def _on_content_changed(self) -> bool: for change_type in self._batch_changed_media_ids.keys(): media_ids: List[str] = self._batch_changed_media_ids[change_type] # The Tracker indexed paths may differ from Music's paths. # In that case Tracker will report it as 'changed', while # it means 'added' to Music. if (change_type == Grl.SourceChangeType.CHANGED or change_type == Grl.SourceChangeType.ADDED): self._log.debug( "Added/Changed media(s): {}".format(media_ids)) self._changed_media(media_ids) elif change_type == Grl.SourceChangeType.REMOVED: self._log.debug( "Removed media(s): {}".format(media_ids)) self._remove_media(media_ids) self._check_album_change() self._check_artist_change() if self._tracker_playlists is not None: self._tracker_playlists.check_smart_playlist_change() self._batch_changed_media_ids = {} self._content_changed_timeout = 0 return GLib.SOURCE_REMOVE def _check_album_change(self) -> None: album_ids: Dict[str, CoreAlbum] = {} query = """ SELECT ?type ?id ?title ?composer ?albumArtist ?artist ?url ?publicationDate WHERE { SERVICE { GRAPH tracker:Audio { SELECT %(media_type)s AS ?type ?album AS ?id nie:title(?album) AS ?title ?composer ?albumArtist nmm:artistName(?artist) AS ?artist nie:isStoredAs(?song) AS ?url YEAR(MAX(nie:contentCreated(?song))) AS ?publicationDate WHERE { ?album a nmm:MusicAlbum . ?song a nmm:MusicPiece ; nmm:musicAlbum ?album ; nmm:artist ?artist . OPTIONAL { ?song nmm:composer/ nmm:artistName ?composer . } OPTIONAL { ?album nmm:albumArtist/ nmm:artistName ?albumArtist . } %(location_filter)s } GROUP BY ?album } } } """.replace('\n', ' ').strip() % { "miner_fs_busname": self._tracker_wrapper.props.miner_fs_busname, "media_type": int(Grl.MediaType.CONTAINER), 'location_filter': self._tracker_wrapper.location_filter() } def check_album_cb( source: Grl.Source, op_id: int, media: Optional[Grl.Media], remaining: int, error: str) -> None: if error: self._log.warning("Error: {}".format(error)) return if not media: changed_ids = set( album_ids.keys()) ^ set(self._album_ids.keys()) self._log.debug( "Albums changed ID's: {}".format(changed_ids)) for key in changed_ids: if key in album_ids: self._albums_model.append(album_ids[key]) elif key in self._album_ids: for idx, corealbum in enumerate(self._albums_model): if corealbum.media.get_id() == key: self._albums_model.remove(idx) break self._album_ids = album_ids return if media.get_id() in self._album_ids.keys(): album = self._album_ids[media.get_id()] else: album = CoreAlbum(self._application, media) album_ids[media.get_id()] = album self.props.source.query( query, self._METADATA_ALBUM_CHANGED_KEYS, self._fast_options, check_album_cb) def _check_artist_change(self) -> None: artist_ids: Dict[str, CoreArtist] = {} query = """ SELECT ?type ?id ?artist WHERE { SERVICE { GRAPH tracker:Audio { SELECT %(media_type)s AS ?type (COALESCE(?album_artist, ?artist) AS ?id) ?artist_bind AS ?artist WHERE { ?song a nmm:MusicPiece; nmm:musicAlbum ?album; nmm:artist ?artist . OPTIONAL { ?album a nmm:MusicAlbum; nmm:albumArtist ?album_artist . } BIND(COALESCE(nmm:artistName(?album_artist), nmm:artistName(?artist)) AS ?artist_bind) %(location_filter)s } GROUP BY ?artist_bind } } } """.replace('\n', ' ').strip() % { "miner_fs_busname": self._tracker_wrapper.props.miner_fs_busname, "media_type": int(Grl.MediaType.CONTAINER), 'location_filter': self._tracker_wrapper.location_filter() } metadata_keys = [ Grl.METADATA_KEY_ALBUM_ARTIST, Grl.METADATA_KEY_ARTIST, Grl.METADATA_KEY_ID ] def check_artist_cb( source: Grl.Source, op_id: int, media: Optional[Grl.Media], remaining: int, error: Optional[GLib.Error]) -> None: if error: self._log.warning("Error: {}".format(error)) return if not media: changed_ids = set( artist_ids.keys()) ^ set(self._artist_ids.keys()) self._log.debug( "Artists changed ID's: {}".format(changed_ids)) for key in changed_ids: if key in artist_ids: self._artists_model.append(artist_ids[key]) elif key in self._artist_ids: for idx, coreartist in enumerate(self._artists_model): if coreartist.media.get_id() == key: self._artists_model.remove(idx) break self._artist_ids = artist_ids return if media.get_id() in self._artist_ids.keys(): artist = self._artist_ids[media.get_id()] else: artist = CoreArtist(self._application, media) artist_ids[media.get_id()] = artist self.props.source.query( query, metadata_keys, self._fast_options, check_artist_cb) def _remove_media(self, media_ids: List[str]) -> None: for media_id in media_ids: try: coresong = self._hash.pop(media_id) except KeyError: self._log.warning("Removal KeyError.") return for idx, coresong_model in enumerate(self._songs_model): if coresong_model is coresong: self._log.debug("Removing: {}, {}".format( coresong.props.media.get_id(), coresong.props.title)) self._songs_model.remove(idx) break def _song_media_query(self, ids: Optional[List[str]] = None) -> str: """Returns a songs query string :param list ids: List of Media ids to filter by or None """ songs_filter = "" if ids is not None: media_ids = ", ".join([f"<{media_id}>" for media_id in ids]) songs_filter = f"FILTER ( ?song in ( {media_ids} ) )" location_filter = self._tracker_wrapper.location_filter() media_type = int(Grl.MediaType.AUDIO) miner_fs_busname = self._tracker_wrapper.props.miner_fs_busname query = " ".join(f""" SELECT ?type ?urn ?title ?id ?url ?artist ?album ?duration ?trackNumber ?albumDiscNumber nie:contentAccessed(?urn) AS ?lastPlayed nie:usageCounter(?urn) AS ?playCount ?tag AS ?favorite WHERE {{ SERVICE {{ GRAPH tracker:Audio {{ SELECT DISTINCT {media_type} AS ?type ?song AS ?urn nie:title(?song) AS ?title ?song AS ?id nie:isStoredAs(?song) AS ?url nmm:artistName(nmm:artist(?song)) AS ?artist nie:title(nmm:musicAlbum(?song)) AS ?album nfo:duration(?song) AS ?duration nmm:trackNumber(?song) AS ?trackNumber nmm:setNumber(nmm:musicAlbumDisc(?song)) AS ?albumDiscNumber WHERE {{ ?song a nmm:MusicPiece . {songs_filter} {location_filter} }} }} }} OPTIONAL {{ ?urn nao:hasTag ?tag . FILTER (?tag = nao:predefined-tag-favorite) }} }} ORDER BY ?title ?artist """.split()) return query def _changed_media(self, media_ids: List[str]) -> None: def _update_changed_media( source: Grl.Source, op_id: int, media: Optional[Grl.Media], remaining: int, error: Optional[GLib.Error]) -> None: if error: self._log.warning("Error: {}".format(error)) return if not media: self._remove_media(media_ids) return media_id: str = media.get_id() if media_id not in self._hash: song = CoreSong(self._application, media) self._songs_model.append(song) self._hash[media_id] = song self._log.debug( "Adding: {}, {}".format(media_id, song.props.title)) else: self._hash[media_id].update(media) media_ids.remove(media_id) self.props.source.query( self._song_media_query(media_ids), self._METADATA_SONG_MEDIA_QUERY_KEYS, self._fast_options, _update_changed_media) def _initial_songs_fill(self) -> None: self._notificationmanager.push_loading() songs_added: List[int] = [] def _add_to_model( source: Grl.Source, op_id: int, media: Optional[Grl.Media], remaining: int, error: Optional[GLib.Error]) -> None: if error: self._log.warning("Error: {}".format(error)) self._notificationmanager.pop_loading() return if not media: self._songs_model.splice( self._songs_model.get_n_items(), 0, songs_added) self._notificationmanager.pop_loading() # Initialize the playlists subwrapper after the initial # songs model fill, the playlists expect a filled songs # hashtable. self._tracker_playlists = GrlTrackerPlaylists( self.props.source, self._application, self._tracker_wrapper, self._hash) return song = CoreSong(self._application, media) songs_added.append(song) self._hash[media.get_id()] = song if len(songs_added) == self._SPLICE_SIZE: self._songs_model.splice( self._songs_model.get_n_items(), 0, songs_added) songs_added.clear() self.props.source.query( self._song_media_query(), self._METADATA_SONG_FILL_KEYS, self._fast_options, _add_to_model) def _initial_albums_fill(self) -> None: self._notificationmanager.push_loading() albums_added: List[int] = [] def _add_to_albums_model( source: Grl.Source, op_id: int, media: Optional[Grl.Media], remaining: int, error: Optional[GLib.Error]) -> None: if error: self._log.warning("Error: {}".format(error)) self._notificationmanager.pop_loading() return if not media: self._albums_model.splice( self._albums_model.get_n_items(), 0, albums_added) self._notificationmanager.pop_loading() return album = CoreAlbum(self._application, media) self._album_ids[media.get_id()] = album albums_added.append(album) if len(albums_added) == self._SPLICE_SIZE: self._albums_model.splice( self._albums_model.get_n_items(), 0, albums_added) albums_added.clear() query = """ SELECT ?type ?id ?title ?composer ?albumArtist ?artist ?url ?publicationDate WHERE { SERVICE { GRAPH tracker:Audio { SELECT %(media_type)s AS ?type ?album AS ?id nie:title(?album) AS ?title ?composer ?albumArtist nmm:artistName(?artist) AS ?artist nie:isStoredAs(?song) AS ?url YEAR(MAX(nie:contentCreated(?song))) AS ?publicationDate WHERE { ?album a nmm:MusicAlbum . ?song a nmm:MusicPiece ; nmm:musicAlbum ?album ; nmm:artist ?artist . OPTIONAL { ?song nmm:composer/ nmm:artistName ?composer . } OPTIONAL { ?album nmm:albumArtist/ nmm:artistName ?albumArtist . } %(location_filter)s } GROUP BY ?album ORDER BY ?title ?albumArtist ?artist ?publicationDate } } } """.replace('\n', ' ').strip() % { "miner_fs_busname": self._tracker_wrapper.props.miner_fs_busname, "media_type": int(Grl.MediaType.CONTAINER), 'location_filter': self._tracker_wrapper.location_filter() } self.props.source.query( query, self._METADATA_ALBUM_CHANGED_KEYS, self._fast_options, _add_to_albums_model) def _initial_artists_fill(self) -> None: self._notificationmanager.push_loading() artists_added: List[int] = [] def _add_to_artists_model( source: Grl.Source, op_id: int, media: Optional[Grl.Media], remaining: int, error: Optional[GLib.Error]) -> None: if error: self._log.warning("Error: {}".format(error)) self._notificationmanager.pop_loading() return if not media: self._artists_model.splice( self._artists_model.get_n_items(), 0, artists_added) self._notificationmanager.pop_loading() return artist = CoreArtist(self._application, media) self._artist_ids[media.get_id()] = artist artists_added.append(artist) if len(artists_added) == self._SPLICE_SIZE: self._artists_model.splice( self._artists_model.get_n_items(), 0, artists_added) artists_added.clear() query = """ SELECT ?type ?id ?artist WHERE { SERVICE { GRAPH tracker:Audio { SELECT %(media_type)s AS ?type (COALESCE(?album_artist, ?artist) AS ?id) ?artist_bind AS ?artist WHERE { ?song a nmm:MusicPiece; nmm:musicAlbum ?album; nmm:artist ?artist . OPTIONAL { ?album a nmm:MusicAlbum; nmm:albumArtist ?album_artist . } BIND(COALESCE(nmm:artistName(?album_artist), nmm:artistName(?artist)) AS ?artist_bind) %(location_filter)s } GROUP BY ?artist_bind ORDER BY ?artist_bind } } } """.replace('\n', ' ').strip() % { "miner_fs_busname": self._tracker_wrapper.props.miner_fs_busname, "media_type": int(Grl.MediaType.CONTAINER), 'location_filter': self._tracker_wrapper.location_filter() } metadata_keys: List[int] = [ Grl.METADATA_KEY_ARTIST, Grl.METADATA_KEY_ID ] self.props.source.query( query, metadata_keys, self._fast_options, _add_to_artists_model) def get_artist_albums( self, media: Grl.Source, model: Gtk.FilterListModel) -> None: """Get all albums by an artist :param Grl.Media media: The media with the artist id :param Gtk.FilterListModel model: The model to fill """ self._notificationmanager.push_loading() artist_id = media.get_id() query = """ SELECT ?type ?id ?title ?publicationDate WHERE { SERVICE { GRAPH tracker:Audio { SELECT DISTINCT %(media_type)s AS ?type ?album AS ?id nie:title(?album) AS ?title nie:contentCreated(?song) AS ?publicationDate WHERE { ?album a nmm:MusicAlbum . OPTIONAL { ?album nmm:albumArtist ?album_artist . } ?song a nmm:MusicPiece; nmm:musicAlbum ?album; nmm:artist ?artist . FILTER ( ?album_artist = <%(artist_id)s> || ?artist = <%(artist_id)s> ) %(location_filter)s } GROUP BY ?album ORDER BY ?publicationDate ?album } } } """.replace('\n', ' ').strip() % { "miner_fs_busname": self._tracker_wrapper.props.miner_fs_busname, "media_type": int(Grl.MediaType.CONTAINER), "artist_id": artist_id, 'location_filter': self._tracker_wrapper.location_filter() } albums: List[str] = [] def query_cb( source: Grl.Source, op_id: int, media: Optional[Grl.Media], remaining: int, error: Optional[GLib.Error]) -> None: if error: self._log.warning("Error: {}".format(error)) self._notificationmanager.pop_loading() return if not media: custom_filter = Gtk.CustomFilter() custom_filter.set_filter_func(albums_filter, albums) model.set_filter(custom_filter) self._notificationmanager.pop_loading() return albums.append(media.get_id()) def albums_filter(corealbum: CoreAlbum, albums: List[str]) -> bool: return corealbum.props.media.get_id() in albums self.props.source.query( query, [Grl.METADATA_KEY_TITLE], self._fast_options, query_cb) def get_album_discs( self, media: Grl.Media, disc_model: Gtk.SortListModel) -> None: """Get all discs of an album :param Grl.Media media: The media with the album id :param Gtk.SortListModel disc_model: The model to fill """ self._notificationmanager.push_loading() album_id = media.get_id() query = """ SELECT ?type ?id ?albumDiscNumber WHERE { SERVICE { GRAPH tracker:Audio { SELECT DISTINCT %(media_type)s AS ?type ?album AS ?id nmm:setNumber(nmm:musicAlbumDisc(?song)) AS ?albumDiscNumber WHERE { ?song a nmm:MusicPiece; nmm:musicAlbum ?album . FILTER ( ?album = <%(album_id)s> ) %(location_filter)s } ORDER BY ?albumDiscNumber } } } """.replace('\n', ' ').strip() % { "miner_fs_busname": self._tracker_wrapper.props.miner_fs_busname, "media_type": int(Grl.MediaType.CONTAINER), "album_id": album_id, 'location_filter': self._tracker_wrapper.location_filter() } def _disc_nr_cb( source: Grl.Source, op_id: int, media: Optional[Grl.Media], remaining: int, error: Optional[GLib.Error]) -> None: if error: self._log.warning("Error: {}".format(error)) self._notificationmanager.pop_loading() return if not media: self._notificationmanager.pop_loading() return disc_nr = media.get_album_disc_number() coredisc = CoreDisc(self._application, media, disc_nr) disc_model.append(coredisc) self.props.source.query( query, [Grl.METADATA_KEY_ALBUM_DISC_NUMBER], self._fast_options, _disc_nr_cb) def get_album_disc( self, media: Grl.Media, disc_nr: int, model: Gtk.FilterListModel) -> None: """Get all songs of an album disc :param Grl.Media media: The media with the album id :param int disc_nr: The disc number :param Gtk.FilterListModel model: The model to fill """ album_id = media.get_id() query = """ SELECT ?type ?id ?url ?title ?artist ?album ?duration ?trackNumber ?albumDiscNumber ?publicationDate nie:usageCounter(?id) AS ?playCount ?tag AS ?favorite WHERE { SERVICE { GRAPH tracker:Audio { SELECT DISTINCT %(media_type)s AS ?type ?song AS ?id nie:isStoredAs(?song) AS ?url nie:title(?song) AS ?title nmm:artistName(nmm:artist(?song)) AS ?artist nie:title(nmm:musicAlbum(?song)) AS ?album nfo:duration(?song) AS ?duration nmm:trackNumber(?song) AS ?trackNumber nmm:setNumber(nmm:musicAlbumDisc(?song)) AS ?albumDiscNumber YEAR(?date) AS ?publicationDate WHERE { ?song a nmm:MusicPiece ; nmm:musicAlbum ?album . OPTIONAL { ?song nie:contentCreated ?date . } FILTER ( ?album = <%(album_id)s> && nmm:setNumber(nmm:musicAlbumDisc(?song)) = %(disc_nr)s ) %(location_filter)s } ORDER BY ?trackNumber } } OPTIONAL { ?id nao:hasTag ?tag . FILTER (?tag = nao:predefined-tag-favorite) } } """.replace('\n', ' ').strip() % { "media_type": int(Grl.MediaType.AUDIO), 'album_id': album_id, 'disc_nr': disc_nr, 'location_filter': self._tracker_wrapper.location_filter(), 'miner_fs_busname': self._tracker_wrapper.props.miner_fs_busname } metadata_keys: List[int] = [ Grl.METADATA_KEY_ALBUM, Grl.METADATA_KEY_ALBUM_DISC_NUMBER, Grl.METADATA_KEY_ARTIST, Grl.METADATA_KEY_DURATION, Grl.METADATA_KEY_FAVOURITE, Grl.METADATA_KEY_ID, Grl.METADATA_KEY_PLAY_COUNT, Grl.METADATA_KEY_TITLE, Grl.METADATA_KEY_URL ] disc_song_ids: List[str] = [] def _filter_func(coresong: CoreSong) -> bool: return coresong.props.grlid in disc_song_ids def _callback( source: Grl.Source, op_id: int, media: Grl.Media, remaining: int, error: GLib.Error) -> None: if error: self._log.warning(f"Error: {error.domain}, {error.message}") return if media is None: custom_filter = Gtk.CustomFilter() custom_filter.set_filter_func(_filter_func) model.set_filter(custom_filter) return disc_song_ids.append(media.get_source() + media.get_id()) self.props.source.query( query, metadata_keys, self._fast_options, _callback) def search(self, text: str) -> None: # FIXME: Searches are limited to not bog down the UI with # widget creation ({List,Flow}Box limitations). The limit is # arbitrarily set to 50 and set in the Tracker query. It should # be possible to set it through Grilo options instead. This # does not work as expected and needs further investigation. term: str = Tracker.sparql_escape_string( GLib.utf8_normalize( GLib.utf8_casefold(text, -1), -1, GLib.NormalizeMode.NFKD)) # Artist search self._notificationmanager.push_loading() query = """ SELECT ?type ?id WHERE { SERVICE { GRAPH tracker:Audio { SELECT DISTINCT %(media_type)s AS ?type COALESCE(?album_artist, ?artist) AS ?id WHERE { ?song a nmm:MusicPiece ; nmm:musicAlbum ?album ; nmm:artist ?artist . OPTIONAL { ?album a nmm:MusicAlbum ; nmm:albumArtist ?album_artist . } BIND(COALESCE(nmm:artistName(?album_artist), nmm:artistName(?artist)) AS ?artist_bind) BIND(tracker:normalize(nmm:artistName( nmm:albumArtist(?artist_bind)), 'nfkd') AS ?match1) . BIND(tracker:normalize( nmm:artistName(nmm:artist(?song)), 'nfkd') AS ?match2) . BIND(tracker:normalize(nmm:composer(?song), 'nfkd') AS ?match4) . FILTER ( CONTAINS(tracker:case-fold( tracker:unaccent(?match1)), "%(name)s") || CONTAINS(tracker:case-fold(?match1), "%(name)s") || CONTAINS(tracker:case-fold( tracker:unaccent(?match2)), "%(name)s") || CONTAINS(tracker:case-fold(?match2), "%(name)s") || CONTAINS(tracker:case-fold( tracker:unaccent(?match4)), "%(name)s") || CONTAINS(tracker:case-fold(?match4), "%(name)s") ) %(location_filter)s } LIMIT 50 } } } """.replace('\n', ' ').strip() % { "miner_fs_busname": self._tracker_wrapper.props.miner_fs_busname, "media_type": int(Grl.MediaType.AUDIO), 'location_filter': self._tracker_wrapper.location_filter(), 'name': term } artist_filter_ids: List[str] = [] def artist_filter(coreartist: CoreArtist) -> bool: return coreartist.media.get_id() in artist_filter_ids def artist_search_cb( source: Grl.Source, op_id: int, media: Optional[Grl.Media], remaining: int, error: Optional[GLib.Error]) -> None: if error: self._log.warning("Error: {}".format(error)) self._notificationmanager.pop_loading() return if not media: custom_filter = Gtk.CustomFilter() custom_filter.set_filter_func(artist_filter) self._artists_search.set_filter(custom_filter) self._notificationmanager.pop_loading() return artist_filter_ids.append(media.get_id()) self.props.source.query( query, [Grl.METADATA_KEY_ID], self._fast_options, artist_search_cb) # Album search self._notificationmanager.push_loading() query = """ SELECT ?type ?id WHERE { SERVICE { GRAPH tracker:Audio { SELECT DISTINCT %(media_type)s AS ?type nmm:musicAlbum(?song) AS ?id WHERE { ?song a nmm:MusicPiece . BIND(tracker:normalize( nie:title(nmm:musicAlbum(?song)), 'nfkd') AS ?match1) . BIND(tracker:normalize( nmm:artistName(nmm:artist(?song)), 'nfkd') AS ?match2) . BIND(tracker:normalize(nmm:composer(?song), 'nfkd') AS ?match4) . FILTER ( CONTAINS(tracker:case-fold( tracker:unaccent(?match1)), "%(name)s") || CONTAINS(tracker:case-fold(?match1), "%(name)s") || CONTAINS(tracker:case-fold( tracker:unaccent(?match2)), "%(name)s") || CONTAINS(tracker:case-fold(?match2), "%(name)s") || CONTAINS(tracker:case-fold( tracker:unaccent(?match4)), "%(name)s") || CONTAINS(tracker:case-fold(?match4), "%(name)s") ) %(location_filter)s } LIMIT 50 } } } """.replace('\n', ' ').strip() % { "miner_fs_busname": self._tracker_wrapper.props.miner_fs_busname, "media_type": int(Grl.MediaType.CONTAINER), 'location_filter': self._tracker_wrapper.location_filter(), 'name': term } album_filter_ids: List[str] = [] def album_filter(corealbum: CoreAlbum) -> bool: return corealbum.media.get_id() in album_filter_ids def albums_search_cb( source: Grl.Source, op_id: int, media: Optional[Grl.Media], remaining: int, error: Optional[GLib.Error]) -> None: if error: self._log.warning("Error: {}".format(error)) self._notificationmanager.pop_loading() return if not media: custom_filter = Gtk.CustomFilter() custom_filter.set_filter_func(album_filter) self._albums_search.set_filter(custom_filter) self._notificationmanager.pop_loading() return album_filter_ids.append(media.get_id()) self.props.source.query( query, [Grl.METADATA_KEY_ID], self._fast_options, albums_search_cb) # Song search self._notificationmanager.push_loading() query = """ SELECT ?type ?id WHERE { SERVICE { GRAPH tracker:Audio { SELECT DISTINCT %(media_type)s AS ?type ?song AS ?id WHERE { ?song a nmm:MusicPiece . BIND(tracker:normalize( nie:title(nmm:musicAlbum(?song)), 'nfkd') AS ?match1) . BIND(tracker:normalize( nmm:artistName(nmm:artist(?song)), 'nfkd') AS ?match2) . BIND(tracker:normalize( nie:title(?song), 'nfkd') AS ?match3) . BIND(tracker:normalize(nmm:composer(?song), 'nfkd') AS ?match4) . FILTER ( CONTAINS(tracker:case-fold( tracker:unaccent(?match1)), "%(name)s") || CONTAINS(tracker:case-fold(?match1), "%(name)s") || CONTAINS(tracker:case-fold( tracker:unaccent(?match2)), "%(name)s") || CONTAINS(tracker:case-fold(?match2), "%(name)s") || CONTAINS(tracker:case-fold( tracker:unaccent(?match3)), "%(name)s") || CONTAINS(tracker:case-fold(?match3), "%(name)s") || CONTAINS(tracker:case-fold( tracker:unaccent(?match4)), "%(name)s") || CONTAINS(tracker:case-fold(?match4), "%(name)s") ) %(location_filter)s } LIMIT 50 } } } """.replace('\n', ' ').strip() % { "miner_fs_busname": self._tracker_wrapper.props.miner_fs_busname, "media_type": int(Grl.MediaType.AUDIO), 'location_filter': self._tracker_wrapper.location_filter(), 'name': term } filter_ids: List[str] = [] def songs_filter(coresong: CoreSong) -> bool: return coresong.media.get_id() in filter_ids def songs_search_cb( source: Grl.Source, op_id: int, media: Optional[Grl.Media], remaining: int, error: Optional[GLib.Error]) -> None: if error: self._log.warning("Error: {}".format(error)) self._notificationmanager.pop_loading() return if not media: custom_filter = Gtk.CustomFilter() custom_filter.set_filter_func(songs_filter) self._songs_search.set_filter(custom_filter) self._notificationmanager.pop_loading() return filter_ids.append(media.get_id()) self.props.source.query( query, [Grl.METADATA_KEY_ID], self._fast_options, songs_search_cb) def _get_album_for_media_id_query( self, media_id: str, song: bool = True) -> str: # Even though we check for the album_artist, we fill # the artist key, since Grilo coverart plugins use # only that key for retrieval. if song: filter_clause = "?song = <{}>".format(str(media_id)) else: filter_clause = "?album = <{}>".format(str(media_id)) query = """ SELECT ?type ?id ?mbReleaseGroup ?mbRelease ?artist ?album WHERE { SERVICE { GRAPH tracker:Audio { SELECT DISTINCT %(media_type)s AS ?type ?album AS ?id tracker:referenceIdentifier(?release_group_id) AS ?mbReleaseGroup tracker:referenceIdentifier(?release_id) AS ?mbRelease tracker:coalesce(nmm:artistName(?album_artist), nmm:artistName(?song_artist)) AS ?artist nie:title(?album) AS ?album WHERE { ?album a nmm:MusicAlbum . ?song a nmm:MusicPiece ; nmm:musicAlbum ?album ; nmm:artist ?song_artist . OPTIONAL { ?album tracker:hasExternalReference ?release_group_id . ?release_group_id tracker:referenceSource "https://musicbrainz.org/doc/Release_Group" . } OPTIONAL { ?album tracker:hasExternalReference ?release_id . ?release_id tracker:referenceSource "https://musicbrainz.org/doc/Release" . } OPTIONAL { ?album nmm:albumArtist ?album_artist . } FILTER ( %(filter_clause)s ) %(location_filter)s } } } } """.replace("\n", " ").strip() % { "miner_fs_busname": self._tracker_wrapper.props.miner_fs_busname, "media_type": int(Grl.MediaType.CONTAINER), "filter_clause": filter_clause, "location_filter": self._tracker_wrapper.location_filter() } return query def get_song_art(self, coresong: CoreSong, storeart: StoreArt) -> None: """Retrieve song art for the given CoreSong Since MediaArt does not really support per-song art this uses the songs album information as base to retrieve relevant art and store it. :param CoreSong coresong: CoreSong to get art for :param StoreArt storeart: StoreArt instance to use """ media: Grl.Media = coresong.props.media # If there is no album and artist do not go through with the # query, it will not give any results. if (media.get_album() is None and (media.get_album_artist() is None or media.get_artist() is None)): return def art_retrieved_cb( source: Grl.Source, op_id: int, queried_media: Optional[Grl.Media], remaining: int, error: Optional[GLib.Error]) -> None: if error: self._log.warning("Error: {}".format(error)) self.emit("finished") return if queried_media is None: return self._async_queue.queue( storeart, coresong, queried_media.get_thumbnail(), CoreObjectType.SONG) song_id: str = media.get_id() query: str = self._get_album_for_media_id_query(song_id) self.props.source.query( query, self._METADATA_THUMBNAIL_KEYS, self._full_options_lprio, art_retrieved_cb) def get_album_art(self, corealbum: CoreAlbum, storeart: StoreArt) -> None: """Retrieve album art for the given CoreAlbum :param CoreAlbum corealbum: CoreAlbum to get art for :param StoreArt storeart: StoreArt instance to use """ media: Grl.Media = corealbum.props.media def art_retrieved_cb( source: Grl.Source, op_id: int, queried_media: Optional[Grl.Media], remaining: int, error: Optional[GLib.Error]) -> None: if error: self._log.warning("Error: {}".format(error)) storeart.emit("finished") return if queried_media is None: return self._async_queue.queue( storeart, corealbum, queried_media.get_thumbnail(), CoreObjectType.ALBUM) album_id: str = media.get_id() query: str = self._get_album_for_media_id_query(album_id, False) self.props.source.query( query, self._METADATA_THUMBNAIL_KEYS, self._full_options_lprio, art_retrieved_cb) def get_artist_art( self, coreartist: CoreArtist, storeart: StoreArt) -> None: """Retrieve artist art for the given CoreArtist This retrieves art through Grilo online services only. :param CoreArtist coreartist: CoreArtist to get art for :param StoreArt storeart: StoreArt instance to use """ media: Grl.Media = coreartist.props.media def art_resolved_cb( source: Grl.Source, op_id: int, resolved_media: Optional[Grl.Media], error: Optional[GLib.Error]) -> None: if error: storeart.emit("finished") self._log.warning("Error: {}".format(error)) return if resolved_media is None: storeart.emit("finished") return thumbnail = resolved_media.get_thumbnail() if thumbnail is None: storeart.emit("finished") return self._async_queue.queue( storeart, coreartist, resolved_media.get_thumbnail(), CoreObjectType.ARTIST) self.props.source.resolve( media, [Grl.METADATA_KEY_THUMBNAIL], self._full_options_lprio, art_resolved_cb) def stage_playlist_deletion(self, playlist: Optional[Playlist]) -> None: """Prepares playlist deletion. :param Playlist playlist: playlist """ if self._tracker_playlists is None: return self._tracker_playlists.stage_playlist_deletion(playlist) def finish_playlist_deletion( self, playlist: Optional[Playlist], deleted: bool) -> None: """Finishes playlist deletion. :param Playlist playlist: playlist :param bool deleted: indicates if the playlist has been deleted """ if self._tracker_playlists is None: return self._tracker_playlists.finish_playlist_deletion(playlist, deleted) def create_playlist( self, playlist_title: str, callback: Callable[[Playlist], None]) -> None: """Creates a new user playlist. :param str playlist_title: playlist title :param callback: function to perform once, the playlist is created """ if self._tracker_playlists is None: return self._tracker_playlists.create_playlist(playlist_title, callback) 0707010000005B000081A400000000000000000000000166968E4E00003D05000000000000000000000000000000000000002900000000gnome-music-46.1/gnomemusic/gstplayer.py# Copyright © 2018 The GNOME Music developers # # GNOME Music 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. # # GNOME Music 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 GNOME Music; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # # The GNOME Music authors hereby grant permission for non-GPL compatible # GStreamer plugins to be used and distributed together with GStreamer # and GNOME Music. This permission is above and beyond the permissions # granted by the GPL license by which GNOME Music is covered. If you # modify this code, you may extend this exception to your version of the # code, but you are not obligated to do so. If you do not wish to do so, # delete this exception statement from your version. from __future__ import annotations from typing import List, Optional from enum import IntEnum import typing from gettext import gettext as _, ngettext import gi gi.require_version('Gst', '1.0') gi.require_version('GstPbutils', '1.0') from gi.repository import Gtk, Gio, GObject, Gst, GstPbutils if typing.TYPE_CHECKING: from gnomemusic.application import Application class Playback(IntEnum): """Playback status enumerator""" STOPPED = 0 LOADING = 1 PAUSED = 2 PLAYING = 3 class GstPlayer(GObject.GObject): """Contains GStreamer logic for Player Handles GStreamer interaction for Player and SmoothScale. """ __gsignals__ = { "about-to-finish": (GObject.SignalFlags.RUN_FIRST, None, ()), "clock-tick": (GObject.SignalFlags.RUN_FIRST, None, (int, )), 'eos': (GObject.SignalFlags.RUN_FIRST, None, ()), "error": (GObject.SignalFlags.RUN_FIRST, None, ()), 'seek-finished': (GObject.SignalFlags.RUN_FIRST, None, ()), "stream-start": (GObject.SignalFlags.RUN_FIRST, None, ()) } def __init__(self, application: Application) -> None: """Initialize the GStreamer player :param Application application: Application object """ super().__init__() Gst.init(None) self._application = application self._duration = -1. self._known_duration = False self._log = application.props.log self._seek = False self._tick = 0 self._clock_id = 0 self._clock: Optional[Gst.Clock] = None self._missing_plugin_messages: List[Gst.Message] = [] self._settings = application.props.settings self._player = Gst.ElementFactory.make('playbin3', 'player') self._bus = self._player.get_bus() self._bus.add_signal_watch() self._setup_replaygain() self._settings.connect( "changed::replaygain", self._on_replaygain_setting_changed) self._settings.emit("changed", "replaygain") self._bus.connect('message::async-done', self._on_async_done) self._bus.connect( "message::duration-changed", self._on_duration_changed) self._bus.connect('message::error', self._on_bus_error) self._bus.connect('message::element', self._on_bus_element) self._bus.connect('message::eos', self._on_bus_eos) self._bus.connect('message::new-clock', self._on_new_clock) self._bus.connect("message::state-changed", self._on_state_changed) self._bus.connect("message::stream-start", self._on_bus_stream_start) self._player.connect("about-to-finish", self._on_about_to_finish) self._state = Playback.STOPPED def _setup_replaygain(self): """Set up replaygain""" self._rg_volume = Gst.ElementFactory.make("rgvolume", "rg volume") self._rg_limiter = Gst.ElementFactory.make("rglimiter", "rg limiter") self._filter_bin = Gst.ElementFactory.make("bin", "filter bin") self._filter_bin.add(self._rg_volume) self._filter_bin.add(self._rg_limiter) self._rg_volume.link(self._rg_limiter) pad_src = self._rg_limiter.get_static_pad('src') ghost_src = Gst.GhostPad.new('src', pad_src) self._filter_bin.add_pad(ghost_src) pad_sink = self._rg_volume.get_static_pad('sink') ghost_sink = Gst.GhostPad.new('sink', pad_sink) self._filter_bin.add_pad(ghost_sink) if (not self._filter_bin or not self._rg_volume or not self._rg_limiter): self._log.message("Replay Gain is not available") return def _on_replaygain_setting_changed( self, settings: Gio.Settings, key: str) -> None: value = settings.get_value(key) if value: self._player.set_property("audio-filter", self._filter_bin) else: self._player.set_property("audio-filter", None) def _on_about_to_finish(self, klass): self.emit("about-to-finish") def _on_async_done(self, bus, message): if self._seek: self._seek = False self.emit("seek-finished") if not self._known_duration: self._query_duration() def _on_duration_changed(self, bus: Gst.Bus, message: Gst.Message) -> None: self._query_duration() def _query_duration(self) -> None: self._known_duration, duration = self._player.query_duration( Gst.Format.TIME) if self._known_duration: self.props.duration = duration / Gst.SECOND self._log.debug("duration changed: {}".format(self.props.duration)) else: self.props.duration = duration def _create_clock_tick(self): if self._clock_id > 0: return self._clock_id = self._clock.new_periodic_id( self._clock.get_time(), 1 * Gst.SECOND) self._clock.id_wait_async(self._clock_id, self._on_clock_tick, None) def _destroy_clock_tick(self) -> None: if (self._clock_id > 0 and self._clock is not None): self._clock.id_unschedule(self._clock_id) self._clock_id = 0 def _on_new_clock(self, bus, message): self._clock_id = 0 self._clock = message.parse_new_clock() self._create_clock_tick() def _on_clock_tick(self, clock, time, id, data): self.emit("clock-tick", self._tick) self._tick += 1 def _on_bus_element(self, bus, message): if GstPbutils.is_missing_plugin_message(message): self._missing_plugin_messages.append(message) def _on_bus_stream_start(self, bus, message): self._query_duration() self._tick = 0 self.emit("stream-start") def _on_state_changed(self, bus, message): if message.src != self._player: return old_state, new_state, _ = message.parse_state_changed() self._log.debug( "Player state changed: {} -> {}".format(old_state, new_state)) if new_state == Gst.State.PAUSED: self._state = Playback.PAUSED self._destroy_clock_tick() elif new_state == Gst.State.PLAYING: self._state = Playback.PLAYING self._create_clock_tick() elif new_state == Gst.State.READY: self._state = Playback.LOADING else: self._state = Playback.STOPPED self.notify("state") def _on_bus_error(self, bus, message): if self._is_missing_plugin_message(message): self.props.state = Playback.PAUSED self._handle_missing_plugins() return True error, debug = message.parse_error() debug = debug.split('\n') debug = [(' ') + line.lstrip() for line in debug] debug = '\n'.join(debug) self._log.warning("URI: {}".format(self.props.url)) self._log.warning( "Error from element {}: {}".format( message.src.get_name(), error.message)) self._log.warning("Debugging info:\n{}".format(debug)) self.emit("error") return True def _on_bus_eos(self, bus, message): self.emit('eos') @GObject.Property( type=int, flags=GObject.ParamFlags.READWRITE | GObject.ParamFlags.EXPLICIT_NOTIFY) def state(self): """Current state of the player :return: state :rtype: Playback (enum) """ return self._state @state.setter # type: ignore def state(self, state): """Set state of the player :param Playback state: The state to set """ if state == Playback.PAUSED: self._player.set_state(Gst.State.PAUSED) if state == Playback.STOPPED: # Changing the state to NULL flushes the pipeline. # Thus, the change message never arrives. self._player.set_state(Gst.State.NULL) self._state = Playback.STOPPED self.notify("state") self._destroy_clock_tick() if state == Playback.LOADING: self._player.set_state(Gst.State.READY) if state == Playback.PLAYING: self._player.set_state(Gst.State.PLAYING) @GObject.Property def url(self): """Current url loaded :return: url :rtype: string """ return self._player.props.current_uri @url.setter # type: ignore def url(self, url_): """url to load next :param string url: url to load """ self._player.set_property('uri', url_) @GObject.Property def position(self): """Current player position Player position in seconds :return: position :rtype: float """ position = self._player.query_position(Gst.Format.TIME)[1] / Gst.SECOND return position @GObject.Property( type=float, flags=GObject.ParamFlags.READWRITE | GObject.ParamFlags.EXPLICIT_NOTIFY) def duration(self): """Total duration of current media Total duration in seconds or -1. if not available :return: duration :rtype: float """ if self.props.state == Playback.STOPPED: return -1. return self._duration # Setter provided to trigger a property signal. # For internal use only. @duration.setter # type: ignore def duration(self, duration): """Set duration of current media (internal) For internal use only. """ if duration != self._duration: self._duration = duration self.notify("duration") def seek(self, seconds): """Seek to position :param float seconds: Position in seconds to seek """ self._seek = self._player.seek_simple( Gst.Format.TIME, Gst.SeekFlags.FLUSH | Gst.SeekFlags.KEY_UNIT, seconds * Gst.SECOND) def _start_plugin_installation( self, missing_plugin_messages, confirm_search): install_ctx = GstPbutils.InstallPluginsContext.new() application_id = self._application.props.application_id install_ctx.set_desktop_id(application_id + '.desktop') install_ctx.set_confirm_search(confirm_search) startup_id = "_TIME{}".format(Gtk.get_current_event_time()) install_ctx.set_startup_notification_id(startup_id) installer_details = [] get_details = GstPbutils.missing_plugin_message_get_installer_detail for message in missing_plugin_messages: installer_detail = get_details(message) installer_details.append(installer_detail) def on_install_done(res): # We get the callback too soon, before the installation has # actually finished. Do nothing for now. pass GstPbutils.install_plugins_async( installer_details, install_ctx, on_install_done) def _show_codec_confirmation_dialog( self, install_helper_name, missing_plugin_messages): active_window = self._application.props.active_window dialog = MissingCodecsDialog(active_window, install_helper_name) def on_dialog_response(dialog, response_type): if response_type == Gtk.ResponseType.ACCEPT: self._start_plugin_installation(missing_plugin_messages, False) dialog.destroy() descriptions = [] get_description = GstPbutils.missing_plugin_message_get_description for message in missing_plugin_messages: description = get_description(message) descriptions.append(description) dialog.set_codec_names(descriptions) dialog.connect('response', on_dialog_response) dialog.present() def _handle_missing_plugins(self): if not self._missing_plugin_messages: return missing_plugin_messages = self._missing_plugin_messages self._missing_plugin_messages = [] proxy = Gio.DBusProxy.new_sync( Gio.bus_get_sync(Gio.BusType.SESSION, None), Gio.DBusProxyFlags.NONE, None, 'org.freedesktop.PackageKit', '/org/freedesktop/PackageKit', 'org.freedesktop.PackageKit.Modify2', None) prop = Gio.DBusProxy.get_cached_property(proxy, 'DisplayName') if prop: display_name = prop.get_string() if display_name: self._show_codec_confirmation_dialog( display_name, missing_plugin_messages) return # If the above failed, fall back to immediately starting the # codec installation. self._start_plugin_installation(missing_plugin_messages, True) def _is_missing_plugin_message(self, message): error, debug = message.parse_error() if error.matches(Gst.CoreError.quark(), Gst.CoreError.MISSING_PLUGIN): return True return False class MissingCodecsDialog(Gtk.MessageDialog): def __init__(self, parent_window, install_helper_name): super().__init__( transient_for=parent_window, modal=True, destroy_with_parent=True, message_type=Gtk.MessageType.ERROR, buttons=Gtk.ButtonsType.CANCEL, text=_("Unable to play the file")) # TRANSLATORS: this is a button to launch a codec installer. # {} will be replaced with the software installer's name, e.g. # 'Software' in case of gnome-software. self.find_button = self.add_button( _("_Find in {}").format(install_helper_name), Gtk.ResponseType.ACCEPT) self.set_default_response(Gtk.ResponseType.ACCEPT) Gtk.StyleContext.add_class( self.find_button.get_style_context(), 'suggested-action') def set_codec_names(self, codec_names): n_codecs = len(codec_names) if n_codecs == 2: # TRANSLATORS: separator for two codecs text = _(" and ").join(codec_names) else: # TRANSLATORS: separator for a list of codecs text = _(", ").join(codec_names) self.format_secondary_text(ngettext( "{} is required to play the file, but is not installed.", "{} are required to play the file, but are not installed.", n_codecs).format(text)) 0707010000005C000081A400000000000000000000000166968E4E00000DDC000000000000000000000000000000000000002E00000000gnome-music-46.1/gnomemusic/inhibitsuspend.py# Copyright © 2018 The GNOME Music developers # GNOME Music 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. # # GNOME Music 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 GNOME Music; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # # The GNOME Music authors hereby grant permission for non-GPL compatible # GStreamer plugins to be used and distributed together with GStreamer # and GNOME Music. This permission is above and beyond the permissions # granted by the GPL license by which GNOME Music is covered. If you # modify this code, you may extend this exception to your version of the # code, but you are not obligated to do so. If you do not wish to do so, # delete this exception statement from your version. from __future__ import annotations import typing from gettext import gettext as _ from gi.repository import Gtk, GObject from gnomemusic.gstplayer import Playback if typing.TYPE_CHECKING: from gi.repository import Gio class InhibitSuspend(GObject.GObject): """InhibitSuspend object Contains the logic to postpone automatic system suspend until the application has played all the songs in the playlist. """ def __init__(self, application): """Initialize supend inhibitor :param Application application: Application object """ super().__init__() self._application = application self._log = application.props.log self._player = application.props.player self._inhibit_cookie = 0 self._player.connect('notify::state', self._on_player_state_changed) self._settings = application.props.settings self._should_inhibit = self._settings.get_boolean('inhibit-suspend') self._settings.connect( 'changed::inhibit-suspend', self._on_inhibit_suspend_changed) def _inhibit_suspend(self): if (self._inhibit_cookie == 0 and self._should_inhibit): active_window = self._application.props.active_window self._inhibit_cookie = self._application.inhibit( active_window, Gtk.ApplicationInhibitFlags.SUSPEND, _("Playing music")) if self._inhibit_cookie == 0: self._log.warning("Unable to inhibit automatic system suspend") def _uninhibit_suspend(self): if self._inhibit_cookie != 0: self._application.uninhibit(self._inhibit_cookie) self._inhibit_cookie = 0 def _on_inhibit_suspend_changed( self, settings: Gio.Settings, key: str) -> None: self._should_inhibit = settings.get_value(key) self._on_player_state_changed(None, None) def _on_player_state_changed(self, klass, arguments): if (self._player.props.state == Playback.PLAYING or self._player.props.state == Playback.LOADING): self._inhibit_suspend() if (self._player.props.state == Playback.PAUSED or self._player.props.state == Playback.STOPPED): self._uninhibit_suspend() 0707010000005D000081A400000000000000000000000166968E4E0000119C000000000000000000000000000000000000002E00000000gnome-music-46.1/gnomemusic/mediaartloader.py# Copyright 2022 The GNOME Music developers # # GNOME Music 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. # # GNOME Music 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 GNOME Music; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # # The GNOME Music authors hereby grant permission for non-GPL compatible # GStreamer plugins to be used and distributed together with GStreamer # and GNOME Music. This permission is above and beyond the permissions # granted by the GPL license by which GNOME Music is covered. If you # modify this code, you may extend this exception to your version of the # code, but you are not obligated to do so. If you do not wish to do so, # delete this exception statement from your version. from __future__ import annotations from typing import Optional from gi.repository import Gdk, Gio, GLib, GObject from gnomemusic.musiclogger import MusicLogger class MediaArtLoader(GObject.GObject): """Handles retrieval of MediaArt cache art Signals when the media is loaded and passes a texture or None. """ __gtype_name__ = "MediaArtLoader" __gsignals__ = { "finished": (GObject.SignalFlags.RUN_FIRST, None, (object, )) } _chunksize = 32768 _log = MusicLogger() def __init__(self) -> None: """Intialize MediaArtLoader """ super().__init__() self._bytearray = bytearray() self._texture: Optional[Gdk.Texture] = None def start(self, uri: str) -> None: """Start the cache query :param str uri: The MediaArt uri """ thumb_file = Gio.File.new_for_uri(uri) if thumb_file: thumb_file.read_async( GLib.PRIORITY_DEFAULT_IDLE, None, self._open_stream) else: self.emit("finished", self._texture) def _open_stream( self, thumb_file: Gio.File, result: Gio.AsyncResult) -> None: try: stream = thumb_file.read_finish(result) except GLib.Error as error: self._log.warning( "Error: {}, {}".format(error.domain, error.message)) self.emit("finished", self._texture) else: stream.read_bytes_async( self._chunksize, GLib.PRIORITY_DEFAULT_IDLE, None, self._read_bytes_async_cb, thumb_file) def _read_bytes_async_cb( self, stream: Gio.FileInputStream, result: Gio.AsyncResult, thumb_file: Gio.File) -> None: try: gbytes = stream.read_bytes_finish(result) except GLib.Error as error: self._log.warning( "Error: {}, {}".format(error.domain, error.message)) stream.close_async( GLib.PRIORITY_DEFAULT_IDLE, None, self._close_stream) return gbytes_size = gbytes.get_size() if gbytes_size > 0: self._bytearray += gbytes.unref_to_data() stream.read_bytes_async( self._chunksize, GLib.PRIORITY_DEFAULT_IDLE, None, self._read_bytes_async_cb, thumb_file) else: # FIXME: Use GTask to load textures async. try: # See pygobject#114 for bytes conversion. self._texture = Gdk.Texture.new_from_bytes( GLib.Bytes(bytes(self._bytearray))) except GLib.Error as error: self._log.warning("Error: {}, {} in file: {}".format( error.domain, error.message, thumb_file.get_uri())) self._bytearray = bytearray() stream.close_async( GLib.PRIORITY_DEFAULT_IDLE, None, self._close_stream) def _close_stream( self, stream: Gio.InputStream, result: Gio.AsyncResult) -> None: try: stream.close_finish(result) except GLib.Error as error: self._log.warning( "Error: {}, {}".format(error.domain, error.message)) self.emit("finished", self._texture) 0707010000005E000081A400000000000000000000000166968E4E000089D8000000000000000000000000000000000000002500000000gnome-music-46.1/gnomemusic/mpris.py# Copyright 2019 The GNOME Music developers # # GNOME Music 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. # # GNOME Music 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 GNOME Music; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # # The GNOME Music authors hereby grant permission for non-GPL compatible # GStreamer plugins to be used and distributed together with GStreamer # and GNOME Music. This permission is above and beyond the permissions # granted by the GPL license by which GNOME Music is covered. If you # modify this code, you may extend this exception to your version of the # code, but you are not obligated to do so. If you do not wish to do so, # delete this exception statement from your version. import re from gi.repository import Gio, GLib from gnomemusic.grilowrappers.grltrackerplaylists import Playlist from gnomemusic.gstplayer import Playback from gnomemusic.player import RepeatMode from gnomemusic.widgets.songwidget import SongWidget class DBusInterface: def __init__(self, name, path, application): """Etablish a D-Bus session connection :param str name: interface name :param str path: object path :param GtkApplication application: The Application object """ self._log = application.props.log self._path = path self._signals = None Gio.bus_get(Gio.BusType.SESSION, None, self._bus_get_sync, name) def _bus_get_sync(self, source, res, name): try: self._con = Gio.bus_get_finish(res) except GLib.Error as e: self._log.warning( "Unable to connect to to session bus: {}".format(e.message)) return Gio.bus_own_name_on_connection( self._con, name, Gio.BusNameOwnerFlags.NONE, None, None) method_outargs = {} method_inargs = {} signals = {} for interface in Gio.DBusNodeInfo.new_for_xml(self.__doc__).interfaces: for method in interface.methods: method_outargs[method.name] = "(" + "".join( [arg.signature for arg in method.out_args]) + ")" method_inargs[method.name] = tuple( arg.signature for arg in method.in_args) for signal in interface.signals: args = {arg.name: arg.signature for arg in signal.args} signals[signal.name] = { 'interface': interface.name, 'args': args} self._con.register_object( self._path, interface, self._on_method_call, None, None) self._method_inargs = method_inargs self._method_outargs = method_outargs self._signals = signals def _on_method_call( self, connection, sender, object_path, interface_name, method_name, parameters, invocation): """GObject.Closure to handle incoming method calls. :param Gio.DBusConnection connection: D-Bus connection :param str sender: bus name that invoked the method :param srt object_path: object path the method was invoked on :param str interface_name: name of the D-Bus interface :param str method_name: name of the method that was invoked :param GLib.Variant parameters: parameters of the method invocation :param Gio.DBusMethodInvocation invocation: invocation """ args = list(parameters.unpack()) for i, sig in enumerate(self._method_inargs[method_name]): if sig == 'h': msg = invocation.get_message() fd_list = msg.get_unix_fd_list() args[i] = fd_list.get(args[i]) method_snake_name = DBusInterface.camelcase_to_snake_case(method_name) try: result = getattr(self, method_snake_name)(*args) except ValueError as e: invocation.return_dbus_error(interface_name, str(e)) return # out_args is at least (signature1). We therefore always wrap the # result as a tuple. # Reference: # https://bugzilla.gnome.org/show_bug.cgi?id=765603 result = (result,) out_args = self._method_outargs[method_name] if out_args != '()': variant = GLib.Variant(out_args, result) invocation.return_value(variant) else: invocation.return_value(None) def _dbus_emit_signal(self, signal_name, values): if self._signals is None: return signal = self._signals[signal_name] parameters = [] for arg_name, arg_signature in signal['args'].items(): value = values[arg_name] parameters.append(GLib.Variant(arg_signature, value)) variant = GLib.Variant.new_tuple(*parameters) self._con.emit_signal( None, self._path, signal['interface'], signal_name, variant) @staticmethod def camelcase_to_snake_case(name): s1 = re.sub('(.)([A-Z][a-z]+)', r'\1_\2', name) return '_' + re.sub('([a-z0-9])([A-Z])', r'\1_\2', s1).lower() class MPRIS(DBusInterface): """ """ MEDIA_PLAYER2_IFACE = 'org.mpris.MediaPlayer2' MEDIA_PLAYER2_PLAYER_IFACE = 'org.mpris.MediaPlayer2.Player' MEDIA_PLAYER2_TRACKLIST_IFACE = 'org.mpris.MediaPlayer2.TrackList' MEDIA_PLAYER2_PLAYLISTS_IFACE = 'org.mpris.MediaPlayer2.Playlists' _playlist_nb_songs = 10 def __init__(self, app): name = "org.mpris.MediaPlayer2.{}".format(app.props.application_id) path = '/org/mpris/MediaPlayer2' super().__init__(name, path, app) self._app = app self._log = app.props.log self._player = app.props.player self._player.connect( 'song-changed', self._on_current_song_changed) self._player.connect('notify::state', self._on_player_state_changed) self._player.connect( 'notify::repeat-mode', self._on_repeat_mode_changed) self._player.connect('seek-finished', self._on_seek_finished) self._coremodel = app.props.coremodel self._player_model = self._coremodel.props.playlist_sort self._player_model_changed_id = None self._coremodel.connect( "playlist-loaded", self._on_player_playlist_changed) self._playlists_model = self._coremodel.props.playlists_sort n_items = self._playlists_model.get_n_items() self._on_playlists_items_changed( self._playlists_model, 0, n_items, n_items) self._playlists_model.connect( "items-changed", self._on_playlists_items_changed) self._recent_playlist = self._coremodel.props.recent_playlist self._recent_playlist.connect( "items-changed", self._on_recent_playlist_changed) self._player_playlist_type = None self._path_list = [] self._metadata_list = [] self._previous_can_go_next = False self._previous_can_go_previous = False self._previous_can_play = False self._previous_is_shuffled = None self._previous_loop_status = "" self._previous_mpris_playlist = self._get_active_playlist() self._previous_playback_status = "Stopped" def _get_playback_status(self): state = self._player.props.state if state == Playback.STOPPED: return 'Stopped' elif state == Playback.PAUSED: return 'Paused' else: return 'Playing' def _get_loop_status(self): if self._player.props.repeat_mode == RepeatMode.ALL: return "Playlist" elif self._player.props.repeat_mode == RepeatMode.SONG: return "Track" else: return "None" def _get_metadata(self, coresong=None, index=None): song_dbus_path = self._get_song_dbus_path(coresong, index) if not self._player.props.current_song: return { 'mpris:trackid': GLib.Variant('o', song_dbus_path) } if not coresong: coresong = self._player.props.current_song length = coresong.props.duration * 1e6 user_rating = 1.0 if coresong.props.favorite else 0.0 artist = coresong.props.artist metadata = { 'mpris:trackid': GLib.Variant('o', song_dbus_path), 'xesam:url': GLib.Variant('s', coresong.props.url), 'mpris:length': GLib.Variant('x', length), 'xesam:useCount': GLib.Variant('i', coresong.props.play_count), 'xesam:userRating': GLib.Variant('d', user_rating), 'xesam:title': GLib.Variant('s', coresong.props.title), 'xesam:album': GLib.Variant('s', coresong.props.album), 'xesam:artist': GLib.Variant('as', [artist]), 'xesam:albumArtist': GLib.Variant('as', [artist]) } genre = coresong.props.media.get_genre() if genre is not None: metadata['xesam:genre'] = GLib.Variant('as', [genre]) last_played = coresong.props.media.get_last_played() if last_played is not None: last_played_str = last_played.format("%FT%T%:z") metadata['xesam:lastUsed'] = GLib.Variant('s', last_played_str) track_nr = coresong.props.track_number if track_nr > 0: metadata['xesam:trackNumber'] = GLib.Variant('i', track_nr) art_url = coresong.props.thumbnail if art_url != "generic": metadata['mpris:artUrl'] = GLib.Variant('s', art_url) return metadata def _get_song_dbus_path(self, coresong=None, index=None): """Convert a Grilo media to a D-Bus path The hex encoding is used to remove any possible invalid character. Use player index to make the path truly unique in case the same song is present multiple times in a playlist. If coresong is None, it means that the current song path is requested. :param CoreSong coresong: The CoreSong object :param int index: The media position in the current playlist :return: a D-Bus id to uniquely identify the song :rtype: str """ if not self._player.props.current_song: return "/org/mpris/MediaPlayer2/TrackList/NoTrack" if not coresong: coresong = self._player.props.current_song index = self._player.props.position id_hex = coresong.props.grlid.encode('ascii').hex() path = "/org/gnome/GnomeMusic/TrackList/{}_{}".format( id_hex, index) return path def _on_recent_playlist_changed(self, model, position, removed, added): self._path_list = [] self._metadata_list = [] offset = self._recent_playlist.get_offset() for position, coresong in enumerate(self._recent_playlist): offset_position = position + offset self._path_list.append( self._get_song_dbus_path(coresong, offset_position)) self._metadata_list.append( self._get_metadata(coresong, offset_position)) current_song_path = self._get_song_dbus_path() self._track_list_replaced(self._path_list, current_song_path) def _get_playlist_dbus_path(self, playlist): """Convert a playlist to a D-Bus path :param Playlist playlist: The playlist object :return: a D-Bus id to uniquely identify the playlist :rtype: str """ if not playlist: return "/" # Smart Playlists do not have an id pl_id = playlist.props.pl_id or playlist.props.tag_text pl_id = pl_id.rsplit(":")[-1].replace("-", "") return "/org/gnome/GnomeMusic/Playlist/{}".format(pl_id) def _get_mpris_playlist_from_playlist(self, playlist): playlist_name = playlist.props.title path = self._get_playlist_dbus_path(playlist) return (path, playlist_name, "") def _get_active_playlist(self): """Get Active Maybe_Playlist Maybe_Playlist is a structure describing a playlist, or nothing according to MPRIS specifications. If a playlist is active, return True and its description (path, name and icon). If no playlist is active, return False and an undefined structure. :returns: playlist existence and its structure :rtype: tuple """ current_core_object = self._coremodel.props.active_core_object if not isinstance(current_core_object, Playlist): return (False, ("/", "", "")) mpris_playlist = self._get_mpris_playlist_from_playlist( current_core_object) return (True, mpris_playlist) def _on_current_song_changed(self, player): # In repeat song mode, no metadata has changed if the # player was already started if self._player.props.repeat_mode == RepeatMode.SONG: self._seeked(0) if self._previous_can_play is True: return if self._player_model_changed_id is None: self._player_model_changed_id = self._player_model.connect_after( "items-changed", self._on_player_model_changed) self._on_player_model_changed(self._player_model, 0, 0, 0) def _on_player_model_changed(self, model, pos, removed, added): # Do no update the properties if the model has completely changed. # These changes will be applied once a new song starts playing. if added == model.get_n_items(): return properties = {} properties["Metadata"] = GLib.Variant("a{sv}", self._get_metadata()) has_next = self._player.props.has_next if has_next != self._previous_can_go_next: properties["CanGoNext"] = GLib.Variant("b", has_next) self._previous_can_go_next = has_next has_previous = self._player.props.has_previous if has_previous != self._previous_can_go_previous: properties["CanGoPrevious"] = GLib.Variant("b", has_previous) self._previous_can_go_previous = has_previous if self._previous_can_play is not True: properties["CanPause"] = GLib.Variant("b", True) properties["CanPlay"] = GLib.Variant("b", True) self._previous_can_play = True self._properties_changed( MPRIS.MEDIA_PLAYER2_PLAYER_IFACE, properties, []) def _on_player_state_changed(self, klass, args): playback_status = self._get_playback_status() if playback_status == self._previous_playback_status: return self._previous_playback_status = playback_status self._properties_changed( MPRIS.MEDIA_PLAYER2_PLAYER_IFACE, {'PlaybackStatus': GLib.Variant('s', playback_status), }, []) def _on_repeat_mode_changed(self, player, param): properties = {} is_shuffled = self._player.props.repeat_mode == RepeatMode.SHUFFLE if is_shuffled != self._previous_is_shuffled: properties["Shuffle"] = GLib.Variant("b", is_shuffled) self._previous_is_shuffled = is_shuffled loop_status = self._get_loop_status() if loop_status != self._previous_loop_status: properties["LoopStatus"] = GLib.Variant("s", loop_status) self._previous_loop_status = loop_status if not properties: return self._properties_changed( MPRIS.MEDIA_PLAYER2_PLAYER_IFACE, properties, []) def _on_seek_finished(self, player): position_second = self._player.get_position() self._seeked(int(position_second * 1e6)) def _on_player_playlist_changed(self, coremodel, playlist_type): self._player_playlist_type = playlist_type mpris_playlist = self._get_active_playlist() if mpris_playlist == self._previous_mpris_playlist: return self._previous_mpris_playlist = mpris_playlist properties = { "ActivePlaylist": GLib.Variant("(b(oss))", mpris_playlist)} self._properties_changed( MPRIS.MEDIA_PLAYER2_PLAYLISTS_IFACE, properties, []) def _on_playlists_items_changed(self, model, position, removed, added): if added > 0: for i in range(added): playlist = model[position + i] playlist.connect("notify::title", self._on_playlist_renamed) playlist.connect( "notify::active", self._on_player_playlist_changed) playlist_count = model.get_n_items() properties = {"PlaylistCount": GLib.Variant("u", playlist_count)} self._properties_changed( MPRIS.MEDIA_PLAYER2_PLAYLISTS_IFACE, properties, []) def _on_playlist_renamed(self, playlist, param): mpris_playlist = self._get_mpris_playlist_from_playlist(playlist) self._dbus_emit_signal('PlaylistChanged', {'Playlist': mpris_playlist}) def _raise(self): """Brings user interface to the front (MPRIS Method).""" self._app.do_activate() def _quit(self): """Causes the media player to stop running (MPRIS Method).""" self._app.quit() def _next(self): """Skips to the next track in the tracklist (MPRIS Method).""" self._player.next() def _previous(self): """Skips to the previous track in the tracklist. (MPRIS Method) """ self._player.previous() def _pause(self): """Pauses playback (MPRIS Method).""" self._player.pause() def _play_pause(self): """Play or Pauses playback (MPRIS Method).""" self._player.play_pause() def _stop(self): """Stop playback (MPRIS Method).""" self._player.stop() def _play(self): """Start or resume playback (MPRIS Method). If there is no track to play, this has no effect. """ self._player.play() def _seek(self, offset_msecond): """Seek forward in the current track (MPRIS Method). Seek is relative to the current player position. If the value passed in would mean seeking beyond the end of the track, acts like a call to Next. :param int offset_msecond: number of microseconds """ current_position_second = self._player.get_position() new_position_second = current_position_second + offset_msecond / 1e6 duration_second = self._player.props.duration if new_position_second <= duration_second: self._player.set_position(new_position_second) else: self._player.next() def _set_position(self, track_id, position_msecond): """Set the current track position in microseconds (MPRIS Method) :param str track_id: The currently playing track's identifier :param int position_msecond: new position in microseconds """ metadata = self._get_metadata() current_track_id = metadata["mpris:trackid"].get_string() if track_id != current_track_id: return self._player.set_position(position_msecond / 1e6) def _open_uri(self, uri): """Opens the Uri given as an argument (MPRIS Method). Not implemented. :param str uri: Uri of the track to load. """ pass def _seeked(self, position_msecond): """Indicate that the track position has changed. :param int position_msecond: new position in microseconds. """ self._dbus_emit_signal("Seeked", {"Position": position_msecond}) def _get_tracks_metadata(self, track_paths): """Gets all the metadata available for a set of tracks. (MPRIS Method) :param list track_paths: list of track ids :returns: Metadata of the set of tracks given as input. :rtype: list """ metadata = [] for path in track_paths: index = self._path_list.index(path) metadata.append(self._metadata_list[index]) return metadata def _add_track(self, uri, after_track, set_as_current): """Adds a URI in the TrackList. (MPRIS Method). This is not implemented (CanEditTracks is set to False). """ pass def _remove_track(self, path): """Removes an item from the TrackList. (MPRIS Method). This is not implemented (CanEditTracks is set to False). """ pass def _go_to(self, path): """Skip to the specified TrackId (MPRIS Method). :param str path: Identifier of the track to skip to """ current_index = self._path_list.index(self._get_song_dbus_path()) current_coresong = self._player.props.current_song goto_index = self._path_list.index(path) new_position = self._player.props.position + goto_index - current_index new_coresong = self._player_model[new_position] self._player.play(new_coresong) current_coresong.props.state = SongWidget.State.PLAYED new_coresong.props.state = SongWidget.State.PLAYING def _track_list_replaced(self, track_paths, current_song_path): """Indicate that the entire tracklist has been replaced. (MPRIS Method) :param list track_paths: the new list of tracks :param current_song_path: the id of the current song """ parameters = { "Tracks": track_paths, "CurrentTrack": current_song_path} self._dbus_emit_signal("TrackListReplaced", parameters) def _load_player_playlist(self, playlist): def _on_playlist_loaded(klass, playlist_type): self._player.play() self._coremodel.disconnect(loaded_id) loaded_id = self._coremodel.connect( "playlist-loaded", _on_playlist_loaded) self._coremodel.props.active_core_object = playlist def _activate_playlist(self, playlist_path): """Starts playing the given playlist (MPRIS Method). :param str playlist_path: The id of the playlist to activate. """ selected_playlist = None for playlist in self._playlists_model: if playlist_path == self._get_playlist_dbus_path(playlist): selected_playlist = playlist break if selected_playlist is None: return def _on_playlist_model_loaded(playlist): playlist.disconnect(signal_id) self._load_player_playlist(playlist) if selected_playlist.props.model.get_n_items() > 0: self._load_player_playlist(selected_playlist) else: signal_id = selected_playlist.connect( "playlist-loaded", _on_playlist_model_loaded) def _get_playlists(self, index, max_count, order, reverse): """Gets a set of playlists (MPRIS Method). GNOME Music only handles playlists with the Alphabetical order. :param int index: the index of the first playlist to be fetched :param int max_count: the maximum number of playlists to fetch. :param str order: the ordering that should be used. :param bool reverse: whether the order should be reversed. """ if order != 'Alphabetical': return [] mpris_playlists = [self._get_mpris_playlist_from_playlist(playlist) for playlist in self._playlists_model] if not reverse: return mpris_playlists[index:index + max_count] first_index = index - 1 if first_index < 0: first_index = None return mpris_playlists[index + max_count - 1:first_index:-1] def _get(self, interface_name, property_name): # Some clients (for example GSConnect) try to acesss the volume # property. This results in a crash at startup. # Return nothing to prevent it. try: return self._get_all(interface_name)[property_name] except KeyError: msg = "MPRIS does not handle {} property from {} interface".format( property_name, interface_name) self._log.warning(msg) raise ValueError(msg) def _get_all(self, interface_name): if interface_name == MPRIS.MEDIA_PLAYER2_IFACE: application_id = self._app.props.application_id return { 'CanQuit': GLib.Variant('b', True), 'Fullscreen': GLib.Variant('b', False), 'CanSetFullscreen': GLib.Variant('b', False), 'CanRaise': GLib.Variant('b', True), 'HasTrackList': GLib.Variant('b', True), 'Identity': GLib.Variant('s', 'Music'), 'DesktopEntry': GLib.Variant('s', application_id), 'SupportedUriSchemes': GLib.Variant('as', [ 'file' ]), 'SupportedMimeTypes': GLib.Variant('as', [ 'application/ogg', 'audio/x-vorbis+ogg', 'audio/x-flac', 'audio/mpeg' ]), } elif interface_name == MPRIS.MEDIA_PLAYER2_PLAYER_IFACE: position_msecond = int(self._player.get_position() * 1e6) playback_status = self._get_playback_status() is_shuffle = (self._player.props.repeat_mode == RepeatMode.SHUFFLE) can_play = (self._player.props.current_song is not None) has_previous = (self._player.props.has_previous) return { 'PlaybackStatus': GLib.Variant('s', playback_status), 'LoopStatus': GLib.Variant('s', self._get_loop_status()), 'Rate': GLib.Variant('d', 1.0), 'Shuffle': GLib.Variant('b', is_shuffle), 'Metadata': GLib.Variant('a{sv}', self._get_metadata()), 'Position': GLib.Variant('x', position_msecond), 'MinimumRate': GLib.Variant('d', 1.0), 'MaximumRate': GLib.Variant('d', 1.0), 'CanGoNext': GLib.Variant('b', self._player.props.has_next), 'CanGoPrevious': GLib.Variant('b', has_previous), 'CanPlay': GLib.Variant('b', can_play), 'CanPause': GLib.Variant('b', can_play), 'CanSeek': GLib.Variant('b', True), 'CanControl': GLib.Variant('b', True), } elif interface_name == MPRIS.MEDIA_PLAYER2_TRACKLIST_IFACE: return { 'Tracks': GLib.Variant('ao', self._path_list), 'CanEditTracks': GLib.Variant('b', False) } elif interface_name == MPRIS.MEDIA_PLAYER2_PLAYLISTS_IFACE: playlist_count = self._playlists_model.get_n_items() active_playlist = self._get_active_playlist() return { 'PlaylistCount': GLib.Variant('u', playlist_count), 'Orderings': GLib.Variant('as', ['Alphabetical']), 'ActivePlaylist': GLib.Variant('(b(oss))', active_playlist), } elif interface_name == 'org.freedesktop.DBus.Properties': return {} elif interface_name == 'org.freedesktop.DBus.Introspectable': return {} else: self._log.warning( "MPRIS does not implement {} interface".format(interface_name)) def _set(self, interface_name, property_name, new_value): if interface_name == MPRIS.MEDIA_PLAYER2_IFACE: if property_name == 'Fullscreen': pass elif interface_name == MPRIS.MEDIA_PLAYER2_PLAYER_IFACE: if property_name in ['Rate', 'Volume']: pass elif property_name == 'LoopStatus': if new_value == 'None': self._player.props.repeat_mode = RepeatMode.NONE elif new_value == 'Track': self._player.props.repeat_mode = RepeatMode.SONG elif new_value == 'Playlist': self._player.props.repeat_mode = RepeatMode.ALL elif property_name == 'Shuffle': if new_value: self._player.props.repeat_mode = RepeatMode.SHUFFLE else: self._player.props.repeat_mode = RepeatMode.NONE else: self._log.warning( "MPRIS does not implement {} interface".format(interface_name)) def _properties_changed(self, interface_name, changed_properties, invalidated_properties): parameters = { 'interface_name': interface_name, 'changed_properties': changed_properties, 'invalidated_properties': invalidated_properties } self._dbus_emit_signal('PropertiesChanged', parameters) def _introspect(self): return self.__doc__ 0707010000005F000081A400000000000000000000000166968E4E00000D69000000000000000000000000000000000000002B00000000gnome-music-46.1/gnomemusic/musiclogger.py# Copyright 2020 The GNOME Music developers # # GNOME Music 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. # # GNOME Music 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 GNOME Music; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # # The GNOME Music authors hereby grant permission for non-GPL compatible # GStreamer plugins to be used and distributed together with GStreamer # and GNOME Music. This permission is above and beyond the permissions # granted by the GPL license by which GNOME Music is covered. If you # modify this code, you may extend this exception to your version of the # code, but you are not obligated to do so. If you do not wish to do so, # delete this exception statement from your version. import inspect import os from gi.repository import GLib, GObject class MusicLogger(GObject.GObject): """GLib logging wrapper A tiny wrapper around the default GLib logger. * Message is for user facing warnings, which ideally should be in the application. * Warning is for logging non-fatal errors during execution. * Debug is for developer use as a way to get more runtime info. """ _DOMAIN = "org.gnome.Music" def _log(self, message, level): stack = inspect.stack() filename = os.path.basename(stack[2][1]) line = stack[2][2] function = stack[2][3] if level in [GLib.LogLevelFlags.LEVEL_DEBUG, GLib.LogLevelFlags.LEVEL_INFO, GLib.LogLevelFlags.LEVEL_WARNING]: message = "({}, {}, {}) {}".format( filename, function, line, message) variant_message = GLib.Variant("s", message) variant_file = GLib.Variant("s", filename) variant_line = GLib.Variant("i", line) variant_func = GLib.Variant("s", function) variant_dict = GLib.Variant("a{sv}", { "MESSAGE": variant_message, "CODE_FILE": variant_file, "CODE_LINE": variant_line, "CODE_FUNC": variant_func }) GLib.log_variant(self._DOMAIN, level, variant_dict) def message(self, message): """The default user facing message Wraps g_message. :param string message: Message """ self._log(message, GLib.LogLevelFlags.LEVEL_MESSAGE) def warning(self, message): """Warning message Wraps g_warning. :param string message: Warning message """ self._log(message, GLib.LogLevelFlags.LEVEL_WARNING) def info(self, message): """Informational message Wraps g_info. :param string message: Informational message """ self._log(message, GLib.LogLevelFlags.LEVEL_INFO) def debug(self, message): """Debug message Wraps g_debug. :param string message: Debug message """ self._log(message, GLib.LogLevelFlags.LEVEL_DEBUG) 07070100000060000081A400000000000000000000000166968E4E00000A40000000000000000000000000000000000000003300000000gnome-music-46.1/gnomemusic/notificationmanager.py# Copyright 2020 The GNOME Music Developers # # GNOME Music 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. # # GNOME Music 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 GNOME Music; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # # The GNOME Music authors hereby grant permission for non-GPL compatible # GStreamer plugins to be used and distributed together with GStreamer # and GNOME Music. This permission is above and beyond the permissions # granted by the GPL license by which GNOME Music is covered. If you # modify this code, you may extend this exception to your version of the # code, but you are not obligated to do so. If you do not wish to do so, # delete this exception statement from your version. from gi.repository import GLib, GObject class NotificationManager(GObject.Object): """Managing wrapper around the notification widgets """ _pulse_id = 0 _loading_counter = 0 def __init__(self, application): """Initialize the notification manager :param Application application: The Application instance """ super().__init__() self._application = application self._window = application.props.window if self._window is None: application.connect( "notify::window", self._on_window_changed) def _on_window_changed(self, klass, value): self._window = self._application.props.window if self._loading_counter > 0: self._window.loading_visible(True) def push_loading(self): """Push a loading notifcation.""" self._loading_counter += 1 if (self._pulse_id == 0 and self._window): self._window.loading_visible(True) self._pulse_id = GLib.timeout_add(100, self._window.loading_pulse) def pop_loading(self): self._loading_counter -= 1 if (self._loading_counter == 0 and self._pulse_id != 0): GLib.Source.remove(self._pulse_id) self._pulse_id = 0 if self._window: self._window.loading_visible(False) 07070100000061000081A400000000000000000000000166968E4E000011CC000000000000000000000000000000000000002E00000000gnome-music-46.1/gnomemusic/pauseonsuspend.py# Copyright 2019 The GNOME Music developers # GNOME Music 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. # # GNOME Music 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 GNOME Music; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # # The GNOME Music authors hereby grant permission for non-GPL compatible # GStreamer plugins to be used and distributed together with GStreamer # and GNOME Music. This permission is above and beyond the permissions # granted by the GPL license by which GNOME Music is covered. If you # modify this code, you may extend this exception to your version of the # code, but you are not obligated to do so. If you do not wish to do so, # delete this exception statement from your version. import os from gi.repository import GLib, Gio, GObject from gnomemusic.gstplayer import Playback from gnomemusic.musiclogger import MusicLogger class PauseOnSuspend(GObject.GObject): """PauseOnSuspend object Contains logic to pause music on system suspend and inhibit suspend before pause. """ def __init__(self, player): """Initialize pause on supend handling :param Player player: Player object """ super().__init__() self._log = MusicLogger() self._player = player self._init_pause_on_suspend() self._connection = None self._file_descriptor = -1 self._suspend_proxy = None self._previous_state = self._player.props.state self._player.connect("notify::state", self._on_player_state_changed) def _on_player_state_changed(self, klass, arguments): new_state = self._player.props.state if self._previous_state == new_state: return if (new_state == Playback.PLAYING and self._file_descriptor == -1): self._take_lock() if (self._previous_state == Playback.PLAYING and new_state != Playback.LOADING): self._release_lock() self._previous_state = new_state def _take_lock(self): variant = GLib.Variant( "(ssss)", ( "sleep", "GNOME Music", "GNOME Music is pausing", "delay" ) ) self._suspend_proxy.call( "Inhibit", variant, Gio.DBusCallFlags.NONE, -1, None, self._on_inhibit) def _on_inhibit(self, proxy, task, data=None): if not self._suspend_proxy: return try: var = self._suspend_proxy.call_with_unix_fd_list_finish(task) self._file_descriptor = var.out_fd_list.get(0) self._connection = self._suspend_proxy.connect( "g-signal", self._pause_playing) except GLib.Error as e: self._log.warning( "Error: Failed to finish proxy call: {}".format(e.message)) def _release_lock(self): if self._file_descriptor >= 0: os.close(self._file_descriptor) self._file_descriptor = -1 self._suspend_proxy.disconnect(self._connection) def _init_pause_on_suspend(self): Gio.DBusProxy.new_for_bus( Gio.BusType.SYSTEM, Gio.DBusProxyFlags.DO_NOT_LOAD_PROPERTIES, None, "org.freedesktop.login1", "/org/freedesktop/login1", "org.freedesktop.login1.Manager", None, self._suspend_proxy_ready) def _suspend_proxy_ready(self, proxy, result, data=None): try: self._suspend_proxy = proxy.new_finish(result) except GLib.Error as e: self._log.warning( "Error: Failed to contact logind daemon: {}".format(e.message)) return def _pause_playing(self, proxy, sender, signal, parameters): if signal != "PrepareForSleep": return (going_to_sleep, ) = parameters if going_to_sleep is True: self._player.pause() self._release_lock() else: self._take_lock() 07070100000062000081A400000000000000000000000166968E4E000056AA000000000000000000000000000000000000002600000000gnome-music-46.1/gnomemusic/player.py# Copyright © 2018 The GNOME Music developers # # GNOME Music 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. # # GNOME Music 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 GNOME Music; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # # The GNOME Music authors hereby grant permission for non-GPL compatible # GStreamer plugins to be used and distributed together with GStreamer # and GNOME Music. This permission is above and beyond the permissions # granted by the GPL license by which GNOME Music is covered. If you # modify this code, you may extend this exception to your version of the # code, but you are not obligated to do so. If you do not wish to do so, # delete this exception statement from your version. from __future__ import annotations from enum import Enum, IntEnum from gettext import gettext as _ from random import randrange import time import typing import gi gi.require_version('GstPbutils', '1.0') from gi.repository import GLib, GObject, GstPbutils, Gtk from gnomemusic.coresong import CoreSong from gnomemusic.gstplayer import GstPlayer, Playback from gnomemusic.widgets.songwidget import SongWidget if typing.TYPE_CHECKING: from gi.repository import Gio class RepeatMode(Enum): """Enum for player repeat mode""" # Translators: "shuffle" causes tracks to play in random order. NONE = 0, "media-playlist-consecutive-symbolic", _("Shuffle/Repeat Off") SONG = 1, "media-playlist-repeat-song-symbolic", _("Repeat Song") ALL = 2, "media-playlist-repeat-symbolic", _("Repeat All") SHUFFLE = 3, "media-playlist-shuffle-symbolic", _("Shuffle") # The type checking is necessary to avoid false positives # See: https://github.com/python/mypy/issues/1021 if typing.TYPE_CHECKING: icon: str label: str def __new__( cls, value: int, icon: str = "", label: str = "") -> "RepeatMode": obj = object.__new__(cls) obj._value_ = value obj.icon = icon obj.label = label return obj class PlayerPlaylist(GObject.GObject): """PlayerPlaylist object Contains the logic to validate a song, handle RepeatMode and the list of songs being played. """ class Type(IntEnum): """Type of playlist.""" SONGS = 0 ALBUM = 1 ARTIST = 2 PLAYLIST = 3 SEARCH_RESULT = 4 repeat_mode = GObject.Property(type=object) def __init__(self, application): super().__init__() GstPbutils.pb_utils_init() self._app = application self._log = application.props.log self._position = 0 self._validation_songs = {} self._discoverer = GstPbutils.Discoverer() self._discoverer.connect("discovered", self._on_discovered) self._discoverer.start() self._coremodel = self._app.props.coremodel self._model = self._coremodel.props.playlist_sort self._model_recent = self._coremodel.props.recent_playlist self.connect("notify::repeat-mode", self._on_repeat_mode_changed) def has_next(self): """Test if there is a song after the current one. :return: True if there is a song. False otherwise. :rtype: bool """ if (self.props.repeat_mode == RepeatMode.SONG or self.props.repeat_mode == RepeatMode.ALL or self.props.position < self._model.get_n_items() - 1): return True return False def has_previous(self): """Test if there is a song before the current one. :return: True if there is a song. False otherwise. :rtype: bool """ if (self.props.repeat_mode == RepeatMode.SONG or self.props.repeat_mode == RepeatMode.ALL or (self.props.position <= self._model.get_n_items() - 1 and self.props.position > 0)): return True return False def get_next(self): """Get the next song in the playlist. :return: The next CoreSong or None. :rtype: CoreSong """ if not self.has_next(): return None if self.props.repeat_mode == RepeatMode.SONG: next_position = self.props.position elif (self.props.repeat_mode == RepeatMode.ALL and self.props.position == self._model.get_n_items() - 1): next_position = 0 else: next_position = self.props.position + 1 return self._model[next_position] def next(self): """Go to the next song in the playlist. :return: True if the operation succeeded. False otherwise. :rtype: bool """ if not self.has_next(): return False if self.props.repeat_mode == RepeatMode.SONG: next_position = self.props.position elif (self.props.repeat_mode == RepeatMode.ALL and self.props.position == self._model.get_n_items() - 1): next_position = 0 else: next_position = self.props.position + 1 self._model[self.props.position].props.state = SongWidget.State.PLAYED self._position = next_position next_song = self._model[next_position] if next_song.props.validation == CoreSong.Validation.FAILED: return self.next() self._update_model_recent() next_song.props.state = SongWidget.State.PLAYING self._validate_next_song() return True def previous(self): """Go to the previous song in the playlist. :return: True if the operation succeeded. False otherwise. :rtype: bool """ if not self.has_previous(): return False if self.props.repeat_mode == RepeatMode.SONG: previous_position = self.props.position elif (self.props.repeat_mode == RepeatMode.ALL and self.props.position == 0): previous_position = self._model.get_n_items() - 1 else: previous_position = self.props.position - 1 self._model[self.props.position].props.state = SongWidget.State.PLAYED self._position = previous_position previous_song = self._model[previous_position] if previous_song.props.validation == CoreSong.Validation.FAILED: return self.previous() self._update_model_recent() self._model[previous_position].props.state = SongWidget.State.PLAYING self._validate_previous_song() return True @GObject.Property(type=int, default=0, flags=GObject.ParamFlags.READABLE) def position(self): """Gets current song index. :returns: position of the current song in the playlist. :rtype: int """ return self._position @GObject.Property( type=CoreSong, default=None, flags=GObject.ParamFlags.READABLE) def current_song(self): """Get current song. :returns: the song being played or None if there are no songs :rtype: CoreSong """ n_items = self._model.get_n_items() if (n_items != 0 and n_items > self._position): current_song = self._model[self._position] if current_song.props.state == SongWidget.State.PLAYING: return current_song for idx, coresong in enumerate(self._model): if coresong.props.state == SongWidget.State.PLAYING: self._position = idx self._update_model_recent() return coresong return None def set_song(self, song): """Sets current song. If no song is provided, a song is automatically selected. :param CoreSong song: song to set :returns: The selected song :rtype: CoreSong """ if self._model.get_n_items() == 0: return None if song is None: if self.props.repeat_mode == RepeatMode.SHUFFLE: position = randrange(0, self._model.get_n_items()) else: position = 0 song = self._model.get_item(position) song.props.state = SongWidget.State.PLAYING self._position = position self._validate_song(song) self._validate_next_song() self._update_model_recent() return song for idx, coresong in enumerate(self._model): if coresong == song: coresong.props.state = SongWidget.State.PLAYING self._position = idx self._validate_song(song) self._validate_next_song() self._update_model_recent() return song return None def _update_model_recent(self): recent_size = self._coremodel.props.recent_playlist_size offset = max(0, self._position - recent_size) self._model_recent.set_offset(offset) def _on_repeat_mode_changed(self, klass, param): if self.props.repeat_mode == RepeatMode.SHUFFLE: for idx, coresong in enumerate(self._model): coresong.update_shuffle_pos() song_sorter_exp = Gtk.PropertyExpression.new( CoreSong, None, "shuffle-pos") songs_sorter = Gtk.NumericSorter.new(song_sorter_exp) self._model.set_sorter(songs_sorter) elif self.props.repeat_mode in [RepeatMode.NONE, RepeatMode.ALL]: self._model.set_sorter(None) def _validate_song(self, coresong): # Song is being processed or has already been processed. # Nothing to do. if coresong.props.validation > CoreSong.Validation.PENDING: return url = coresong.props.url if not url: self._log.warning( "The item {} doesn't have a URL set.".format(coresong)) return if not url.startswith("file://"): self._log.debug( "Skipping validation of {} as not a local file".format(url)) return coresong.props.validation = CoreSong.Validation.IN_PROGRESS self._validation_songs[url] = coresong self._discoverer.discover_uri_async(url) def _validate_next_song(self): if self.props.repeat_mode == RepeatMode.SONG: return current_position = self.props.position next_position = current_position + 1 if next_position == self._model.get_n_items(): if self.props.repeat_mode != RepeatMode.ALL: return next_position = 0 self._validate_song(self._model[next_position]) def _validate_previous_song(self): if self.props.repeat_mode == RepeatMode.SONG: return current_position = self.props.position previous_position = current_position - 1 if previous_position < 0: if self.props.repeat_mode != RepeatMode.ALL: return previous_position = self._model.get_n_items() - 1 self._validate_song(self._model[previous_position]) def _on_discovered(self, discoverer, info, error): url = info.get_uri() coresong = self._validation_songs[url] if error: self._log.warning("Info {}: error: {}".format(info, error)) coresong.props.validation = CoreSong.Validation.FAILED else: coresong.props.validation = CoreSong.Validation.SUCCEEDED class Player(GObject.GObject): """Main Player object Contains the logic of playing a song with Music. """ __gsignals__ = { 'seek-finished': (GObject.SignalFlags.RUN_FIRST, None, ()), 'song-changed': (GObject.SignalFlags.RUN_FIRST, None, ()) } state = GObject.Property(type=int, default=Playback.STOPPED) duration = GObject.Property(type=float, default=-1.) def __init__(self, application): """Initialize the player :param Application application: Application object """ super().__init__() self._app = application # In the case of gapless playback, both 'about-to-finish' # and 'eos' can occur during the same stream. 'about-to-finish' # already sets self._playlist to the next song, so doing it # again on eos would skip a song. # TODO: Improve playlist handling so this hack is no longer # needed. self._gapless_set = False self._log = application.props.log self._playlist = PlayerPlaylist(self._app) self._playlist_model = self._app.props.coremodel.props.playlist_sort self._playlist_model.connect( "items-changed", self._on_playlist_model_items_changed) self._settings = application.props.settings self._settings.connect("changed::repeat", self._on_repeat_mode_changed) self._repeat = RepeatMode(self._settings.get_enum("repeat")) self.bind_property( 'repeat-mode', self._playlist, 'repeat-mode', GObject.BindingFlags.SYNC_CREATE) self._new_clock = True self._gst_player = GstPlayer(application) self._gst_player.connect("about-to-finish", self._on_about_to_finish) self._gst_player.connect('clock-tick', self._on_clock_tick) self._gst_player.connect('eos', self._on_eos) self._gst_player.connect("error", self._on_error) self._gst_player.connect('seek-finished', self._on_seek_finished) self._gst_player.connect("stream-start", self._on_stream_start) self._gst_player.bind_property( 'duration', self, 'duration', GObject.BindingFlags.SYNC_CREATE) self._gst_player.bind_property( 'state', self, 'state', GObject.BindingFlags.SYNC_CREATE) @GObject.Property( type=bool, default=False, flags=GObject.ParamFlags.READABLE) def has_next(self): """Test if the playlist has a next song. :returns: True if the current song is not the last one. :rtype: bool """ return self._playlist.has_next() @GObject.Property( type=bool, default=False, flags=GObject.ParamFlags.READABLE) def has_previous(self): """Test if the playlist has a previous song. :returns: True if the current song is not the first one. :rtype: bool """ return self._playlist.has_previous() @GObject.Property( type=bool, default=False, flags=GObject.ParamFlags.READABLE) def playing(self): """Test if a song is currently played. :returns: True if a song is currently played. :rtype: bool """ return self.props.state == Playback.PLAYING def _on_playlist_model_items_changed(self, model, pos, removed, added): if (removed > 0 and model.get_n_items() == 0): self.stop() def _on_repeat_mode_changed( self, settings: Gio.Settings, key: str) -> None: repeat_mode = settings.get_enum(key) self.props.repeat_mode = RepeatMode(repeat_mode) def _on_about_to_finish(self, klass): if self.props.has_next: self._log.debug("Song is about to finish, loading the next one.") next_coresong = self._playlist.get_next() new_url = next_coresong.props.url self._gst_player.props.url = new_url self._gapless_set = True def _on_eos(self, klass): self._playlist.next() if self._gapless_set: # After 'eos' in the gapless case, the pipeline needs to be # hard reset. self._log.debug("Song finished, loading the next one.") self.stop() self.play(self.props.current_song) else: self._log.debug("End of the playlist, stopping the player.") self.stop() self._gapless_set = False def _on_error(self, klass=None): self.stop() self._gapless_set = False current_song = self.props.current_song current_song.props.validation = CoreSong.Validation.FAILED if (self.has_next and self.props.repeat_mode != RepeatMode.SONG): self.next() def _on_stream_start(self, klass): if self._gapless_set: self._playlist.next() self._gapless_set = False self._time_stamp = int(time.time()) self.emit("song-changed") def _load(self, coresong): self._log.debug("Loading song {}".format(coresong.props.title)) self._gst_player.props.state = Playback.LOADING self._time_stamp = int(time.time()) self._gst_player.props.url = coresong.props.url def play(self, coresong=None): """Play a song. Start playing a song, a specific CoreSong if supplied and available or a song in the playlist decided by the play mode. If a song is paused, a subsequent play call without a CoreSong supplied will continue playing the paused song. :param CoreSong coresong: The CoreSong to play or None. """ if self.props.current_song is None: coresong = self._playlist.set_song(coresong) if (coresong is not None and coresong.props.validation == CoreSong.Validation.FAILED and self.props.repeat_mode != RepeatMode.SONG): self._on_error() return if coresong is not None: self._load(coresong) if self.props.current_song is not None: self._gst_player.props.state = Playback.PLAYING def pause(self): """Pause""" self._gst_player.props.state = Playback.PAUSED def stop(self): """Stop""" self._gst_player.props.state = Playback.STOPPED def next(self): """"Play next song Play the next song of the playlist, if any. """ if self._gapless_set: self.set_position(0.0) elif self._playlist.next(): self.play(self._playlist.props.current_song) def previous(self): """Play previous song Play the previous song of the playlist, if any. """ position = self._gst_player.props.position if self._gapless_set: self.stop() if (position < 5 and self._playlist.has_previous()): self._playlist.previous() self._gapless_set = False self.play(self._playlist.props.current_song) # This is a special case for a song that is very short and the # first song in the playlist. It can trigger gapless, but # has_previous will return False. elif (position < 5 and self._playlist.props.position == 0): self.set_position(0.0) self._gapless_set = False self.play(self._playlist.props.current_song) else: self.set_position(0.0) def play_pause(self): """Toggle play/pause state""" if self.props.state == Playback.PLAYING: self.pause() else: self.play() def _on_clock_tick(self, klass, tick): self._log.debug("Clock tick {}, player at {} seconds".format( tick, self._gst_player.props.position)) current_song = self._playlist.props.current_song if tick == 0: self._new_clock = True if self.props.duration == -1.: return position = self._gst_player.props.position if position > 0: percentage = tick / self.props.duration if (percentage > 0.5 and self._new_clock): self._new_clock = False current_song.bump_play_count() current_song.props.last_played = GLib.DateTime.new_now_utc() @GObject.Property(type=object) def repeat_mode(self) -> RepeatMode: """Gets current repeat mode. :returns: current repeat mode :rtype: RepeatMode """ return self._repeat @repeat_mode.setter # type: ignore def repeat_mode(self, mode): if mode == self._repeat: return self._repeat = mode self._settings.set_enum("repeat", mode.value) @GObject.Property(type=int, default=0, flags=GObject.ParamFlags.READABLE) def position(self): """Gets current song index. :returns: position of the current song in the playlist. :rtype: int """ return self._playlist.props.position @GObject.Property( type=CoreSong, default=None, flags=GObject.ParamFlags.READABLE) def current_song(self): """Get the current song. :returns: The song being played. None if there is no playlist. :rtype: CoreSong """ return self._playlist.props.current_song def get_position(self): """Get player position. Player position in seconds. :returns: position :rtype: float """ return self._gst_player.props.position # TODO: used by MPRIS def set_position(self, position_second): """Change GstPlayer position. If the position if negative, set it to zero. If the position if greater than song duration, do nothing :param float position_second: requested position in second """ if position_second < 0.0: position_second = 0.0 duration_second = self._gst_player.props.duration if position_second <= duration_second: self._gst_player.seek(position_second) def _on_seek_finished(self, klass): # FIXME: Just a proxy self.emit('seek-finished') 07070100000063000081A400000000000000000000000166968E4E00000B9B000000000000000000000000000000000000002D00000000gnome-music-46.1/gnomemusic/playlisttoast.py# Copyright 2022 The GNOME Music Developers # # GNOME Music 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. # # GNOME Music 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 GNOME Music; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # # The GNOME Music authors hereby grant permission for non-GPL compatible # GStreamer plugins to be used and distributed together with GStreamer # and GNOME Music. This permission is above and beyond the permissions # granted by the GPL license by which GNOME Music is covered. If you # modify this code, you may extend this exception to your version of the # code, but you are not obligated to do so. If you do not wish to do so, # delete this exception statement from your version. from __future__ import annotations from typing import Optional import typing from gettext import gettext as _ from gi.repository import Adw, GLib, GObject, Gio, Gtk if typing.TYPE_CHECKING: from gnomemusic.application import Application from gnomemusic.grilowrappers.grltrackerplaylists import Playlist class PlaylistToast(GObject.Object): """Toast for playlist deletion, including undo """ __gtype_name__ = "PlaylistToast" def __init__(self, application: Application, playlist: Playlist) -> None: """Initialize the toast for song deletion :param Application application: Application object :param Playlist playlist: The playlist that contains the song """ super().__init__() self._coregrilo = application.props.coregrilo self._playlist = playlist self._undo = False toast = Adw.Toast.new( _("Playlist {} removed".format(self._playlist.props.title))) toast.set_button_label(_("Undo")) toast.set_action_name("toast.undo") application.props.window.install_action( "toast.undo", None, self._toast_undo_cb) toast.connect("dismissed", self._on_dismissed) self._coregrilo.stage_playlist_deletion(self._playlist) application.props.window._toast_overlay.add_toast(toast) def _toast_undo_cb( self, widget: Gtk.Widget, action: Gio.Action, param: Optional[GLib.Variant]) -> None: self._undo = True self._coregrilo.finish_playlist_deletion(self._playlist, False) def _on_dismissed(self, widget: Gtk.Widget) -> None: if not self._undo: self._coregrilo.finish_playlist_deletion(self._playlist, True) 07070100000064000081A400000000000000000000000166968E4E000006DC000000000000000000000000000000000000002600000000gnome-music-46.1/gnomemusic/search.py# Copyright 2018 The GNOME Music developers # # GNOME Music 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. # # GNOME Music 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 GNOME Music; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # # The GNOME Music authors hereby grant permission for non-GPL compatible # GStreamer plugins to be used and distributed together with GStreamer # and GNOME Music. This permission is above and beyond the permissions # granted by the GPL license by which GNOME Music is covered. If you # modify this code, you may extend this exception to your version of the # code, but you are not obligated to do so. If you do not wish to do so, # delete this exception statement from your version. from enum import IntEnum from gi.repository import GObject class Search(GObject.GObject): class State(IntEnum): """States the Search can have NONE: No ongoing search. RESULT: Search with result. NO_RESULT: Search without result. """ NONE = 0 RESULT = 1 NO_RESULT = 2 search_mode_active = GObject.Property(type=bool, default=False) state = GObject.Property(type=int, default=0) def __init__(self): super().__init__() 07070100000065000081A400000000000000000000000166968E4E00000BA6000000000000000000000000000000000000002700000000gnome-music-46.1/gnomemusic/songart.py# Copyright 2020 The GNOME Music developers # # GNOME Music 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. # # GNOME Music 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 GNOME Music; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # # The GNOME Music authors hereby grant permission for non-GPL compatible # GStreamer plugins to be used and distributed together with GStreamer # and GNOME Music. This permission is above and beyond the permissions # granted by the GPL license by which GNOME Music is covered. If you # modify this code, you may extend this exception to your version of the # code, but you are not obligated to do so. If you do not wish to do so, # delete this exception statement from your version. import gi gi.require_version("MediaArt", "2.0") from gi.repository import GObject, MediaArt from gnomemusic.asyncqueue import AsyncQueue from gnomemusic.embeddedart import EmbeddedArt from gnomemusic.fileexistsasync import FileExistsAsync from gnomemusic.storeart import StoreArt class SongArt(GObject.GObject): """SongArt retrieval object """ _async_queue = AsyncQueue("SongArt") def __init__(self, application, coresong): """Initialize SongArt :param Application application: The application object :param CoreSong coresong: The coresong to use """ super().__init__() self._coresong = coresong self._coregrilo = application.props.coregrilo self._album = self._coresong.props.album self._artist = self._coresong.props.artist self._in_cache() def _on_embedded_art_found(self, embeddedart, found): if found: self._in_cache() else: self._coregrilo.get_song_art(self._coresong, StoreArt()) def _in_cache(self): success, thumb_file = MediaArt.get_file( self._artist, self._album, "album") if not success: return def on_file_exists_async_finished(obj, result): if result: self._coresong.props.thumbnail = thumb_file.get_uri() else: embedded = EmbeddedArt() embedded.connect("art-found", self._on_embedded_art_found) embedded.query(self._coresong, self._album) file_exists_async = FileExistsAsync() file_exists_async.connect( "finished", on_file_exists_async_finished) self._async_queue.queue(file_exists_async, thumb_file) 07070100000066000081A400000000000000000000000166968E4E00000D36000000000000000000000000000000000000002900000000gnome-music-46.1/gnomemusic/songtoast.py# Copyright 2022 The GNOME Music Developers # # GNOME Music 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. # # GNOME Music 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 GNOME Music; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # # The GNOME Music authors hereby grant permission for non-GPL compatible # GStreamer plugins to be used and distributed together with GStreamer # and GNOME Music. This permission is above and beyond the permissions # granted by the GPL license by which GNOME Music is covered. If you # modify this code, you may extend this exception to your version of the # code, but you are not obligated to do so. If you do not wish to do so, # delete this exception statement from your version. from __future__ import annotations from typing import Optional import typing from gettext import gettext as _ from gi.repository import Adw, GLib, GObject, Gio, Gtk if typing.TYPE_CHECKING: from gnomemusic.application import Application from gnomemusic.grilowrappers.grltrackerplaylists import Playlist from gnomemusic.coresong import CoreSong class SongToast(GObject.Object): """Toast for song deletion, including undo """ __gtype_name__ = "SongToast" def __init__( self, application: Application, playlist: Playlist, position: int, coresong: CoreSong) -> None: """Initialize the toast for song deletion :param Application application: Application object :param Playlist playlist: The playlist that contains the song :param int position: The song position in the playlist :param CoreSong coresong: The coresong to be deleted """ super().__init__() self._coregrilo = application.props.coregrilo self._coresong = coresong self._playlist = playlist self._position = position self._undo = False playlist_title = self._playlist.props.title song_title = self._coresong.props.title toast = Adw.Toast.new( _("{} removed from {}".format(song_title, playlist_title))) toast.set_button_label(_("Undo")) toast.set_action_name("toast.undo") application.props.window.install_action( "toast.undo", None, self._toast_undo_cb) toast.connect("dismissed", self._on_dismissed) playlist.stage_song_deletion(self._coresong, position) application.props.window._toast_overlay.add_toast(toast) def _toast_undo_cb( self, widget: Gtk.Widget, action: Gio.Action, param: Optional[GLib.Variant]) -> None: self._undo = True self._playlist.undo_pending_song_deletion( self._coresong, self._position) def _on_dismissed(self, widget: Gtk.Widget) -> None: if not self._undo: self._playlist.finish_song_deletion(self._coresong, self._position) 07070100000067000081A400000000000000000000000166968E4E00001945000000000000000000000000000000000000002800000000gnome-music-46.1/gnomemusic/storeart.py# Copyright 2020 The GNOME Music developers # # GNOME Music 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. # # GNOME Music 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 GNOME Music; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # # The GNOME Music authors hereby grant permission for non-GPL compatible # GStreamer plugins to be used and distributed together with GStreamer # and GNOME Music. This permission is above and beyond the permissions # granted by the GPL license by which GNOME Music is covered. If you # modify this code, you may extend this exception to your version of the # code, but you are not obligated to do so. If you do not wish to do so, # delete this exception statement from your version. import gi gi.require_versions({"MediaArt": "2.0", "Soup": "3.0"}) from gi.repository import Gio, GLib, GObject, MediaArt, Soup, GdkPixbuf from gnomemusic.musiclogger import MusicLogger from gnomemusic.utils import CoreObjectType class StoreArt(GObject.Object): """Stores Art in the MediaArt cache. """ __gsignals__ = { "finished": (GObject.SignalFlags.RUN_FIRST, None, ()) } def __init__(self): """Initialize StoreArtistArt :param coreobject: The CoreArtist or CoreAlbum to store art for :param string uri: The art uri """ super().__init__() self._coreobject = None self._file = None self._log = MusicLogger() self._soup_session = Soup.Session.new() def start(self, coreobject, uri, coreobjecttype): self._coreobject = coreobject if (uri is None or uri == ""): self.emit("finished") return if coreobjecttype == CoreObjectType.ARTIST: success, self._file = MediaArt.get_file( self._coreobject.props.artist, None, "artist") elif coreobjecttype == CoreObjectType.ALBUM: success, self._file = MediaArt.get_file( self._coreobject.props.artist, self._coreobject.props.title, "album") elif coreobjecttype == CoreObjectType.SONG: success, self._file = MediaArt.get_file( self._coreobject.props.artist, self._coreobject.props.album, "album") else: success = False if not success: self.emit("finished") return cache_dir = GLib.build_filenamev( [GLib.get_user_cache_dir(), "media-art"]) cache_dir_file = Gio.File.new_for_path(cache_dir) cache_dir_file.query_info_async( Gio.FILE_ATTRIBUTE_ACCESS_CAN_READ, Gio.FileQueryInfoFlags.NONE, GLib.PRIORITY_DEFAULT_IDLE, None, self._cache_dir_info_read, uri) def _cache_dir_info_read(self, cache_dir_file, res, uri): try: cache_dir_file.query_info_finish(res) except GLib.Error: # directory does not exist yet try: cache_dir_file.make_directory(None) except GLib.Error as error: self._log.warning( "Error: {}, {}".format(error.domain, error.message)) self.emit("finished") return msg = Soup.Message.new("GET", uri) self._soup_session.send_and_read_async( msg, GLib.PRIORITY_DEFAULT, None, self._read_callback) def _read_callback( self, session: Soup.Session, result: Gio.AsyncResult) -> None: try: bytes = session.send_and_read_finish(result) except GLib.Error as error: self._log.debug( f"Failed to get remote art: {error.domain}, {error.message}") self.emit("finished") istream = Gio.MemoryInputStream.new_from_bytes(bytes) GdkPixbuf.Pixbuf.new_from_stream_async( istream, None, self._pixbuf_from_stream_finished) def _pixbuf_from_stream_finished( self, stream: Gio.MemoryInputStream, result: Gio.AsyncResult) -> None: try: pixbuf = GdkPixbuf.Pixbuf.new_from_stream_finish(result) except GLib.Error as error: self._log.warning(f"Error: {error.domain}, {error.message}") self.emit("finished") else: self._file.create_async( Gio.FileCreateFlags.NONE, GLib.PRIORITY_DEFAULT_IDLE, None, self._output_stream_created, pixbuf) finally: stream.close_async( GLib.PRIORITY_DEFAULT_IDLE, None, self._stream_closed) def _output_stream_created( self, stream: Gio.FileOutputStream, result: Gio.AsyncResult, pixbuf: GdkPixbuf.Pixbuf) -> None: try: output_stream = stream.create_finish(result) except GLib.Error as error: # File already exists. self._log.info(f"Error: {error.domain}, {error.message}") self.emit("finished") else: pixbuf.save_to_streamv_async( output_stream, "jpeg", None, None, None, self._output_stream_saved, output_stream) def _output_stream_saved( self, pixbuf: GdkPixbuf.Pixbuf, result: Gio.AsyncResult, output_stream: Gio.FileOutputStream) -> None: try: pixbuf.save_to_stream_finish(result) except GLib.Error as error: self._log.warning(f"Error: {error.domain}, {error.message}") else: self._coreobject.props.thumbnail = self._file.get_uri() finally: self.emit("finished") output_stream.close_async( GLib.PRIORITY_DEFAULT_IDLE, None, self._stream_closed) def _stream_closed( self, stream: Gio.OutputStream, result: Gio.AsyncResult) -> None: try: stream.close_finish(result) except GLib.Error as error: self._log.warning(f"Error: {error.domain}, {error.message}") 07070100000068000081A400000000000000000000000166968E4E00001A32000000000000000000000000000000000000002C00000000gnome-music-46.1/gnomemusic/texturecache.py# Copyright 2022 The GNOME Music developers # # GNOME Music 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. # # GNOME Music 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 GNOME Music; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # # The GNOME Music authors hereby grant permission for non-GPL compatible # GStreamer plugins to be used and distributed together with GStreamer # and GNOME Music. This permission is above and beyond the permissions # granted by the GPL license by which GNOME Music is covered. If you # modify this code, you may extend this exception to your version of the # code, but you are not obligated to do so. If you do not wish to do so, # delete this exception statement from your version. from __future__ import annotations from enum import IntEnum from typing import Dict, Optional, Tuple, Union import time import typing from gi.repository import GLib, GObject, Gdk, Gio from gnomemusic.asyncqueue import AsyncQueue from gnomemusic.musiclogger import MusicLogger from gnomemusic.mediaartloader import MediaArtLoader if typing.TYPE_CHECKING: from gnomemusic.corealbum import CoreAlbum from gnomemusic.coreartist import CoreArtist from gnomemusic.coresong import CoreSong if typing.TYPE_CHECKING: CoreObject = Union[CoreAlbum, CoreArtist, CoreSong] class TextureCache(GObject.GObject): """Retrieval and cache for artwork textures """ class LoadingState(IntEnum): """The loading status of the URI AVAILABLE: The texture is currently cached UNAVAILABLE: No texture is available for the URI CLEARED: The texture was available, has been cleared and should be available on lookup """ AVAILABLE = 0 UNAVAILABLE = 1 CLEARED = 2 __gtype_name__ = "TextureCache" __gsignals__ = { "texture": (GObject.SignalFlags.RUN_FIRST, None, (object, )) } # Music has two main cycling views (AlbumsView and ArtistsView), # both have around 200 cycling items each when fully used. For # the cache to be useful it needs to be larger than the given # numbers combined. _MAX_CACHE_SIZE = 800 _async_queue = AsyncQueue("TextureCache") _cleanup_id = 0 _log = MusicLogger() _memory_monitor = Gio.MemoryMonitor.dup_default() _size = _MAX_CACHE_SIZE _textures: Dict[str, Tuple[ TextureCache.LoadingState, float, Optional[Gdk.Texture]]] = {} def __init__(self) -> None: """Initialize Texturecache """ super().__init__() self._art_loader: MediaArtLoader self._art_loading_id = 0 if TextureCache._cleanup_id == 0: TextureCache._cleanup_id = GLib.timeout_add_seconds( 10, TextureCache._cache_cleanup) TextureCache._memory_monitor.connect( "low-memory-warning", TextureCache._low_memory_warning) def clear_pending_lookup_callback(self) -> None: """Disconnect ongoing lookup callback """ if self._art_loading_id != 0: # FIXME: It would be better to have AsyncQueue handle # this transparently, but this lookup creates a new # MediaArtLoader every time even for the same URI. # AQ has no way to find out if it is for the same URI # currently. self._async_queue.queue_remove(self._art_loader) self._art_loader.disconnect(self._art_loading_id) self._art_loading_id = 0 def lookup(self, uri: str) -> None: """Look up a texture for the given MediaArt uri :param str uri: The MediaArt uri """ self.clear_pending_lookup_callback() if uri in TextureCache._textures.keys(): state, _, texture = TextureCache._textures[uri] if state in [ TextureCache.LoadingState.AVAILABLE, TextureCache.LoadingState.UNAVAILABLE]: self.emit("texture", texture) TextureCache._textures[uri] = (state, time.time(), texture) return self._art_loader = MediaArtLoader() self._art_loading_id = self._art_loader.connect( "finished", self._on_art_loading_finished, uri) self._async_queue.queue(self._art_loader, uri) @classmethod def _low_memory_warning( cls, mm: Gio.MemoryMonitor, level: Gio.MemoryMonitorWarningLevel) -> None: if level < Gio.MemoryMonitorWarningLevel.LOW: TextureCache._size = TextureCache._MAX_CACHE_SIZE else: # List slicing with 0 gives an empty list in # _cache_cleanup. TextureCache._size = 1 @classmethod def _cache_cleanup(cls) -> None: """Sorts the available cache entries by recency and evicts the oldest items to match the maximum cache size. """ sorted_available = { k: (state, t, texture) for k, (state, t, texture) in sorted( TextureCache._textures.items(), key=lambda item: item[1][1]) if state in [TextureCache.LoadingState.AVAILABLE]} sorted_available_l = len(sorted_available) if sorted_available_l < TextureCache._size: return GLib.SOURCE_CONTINUE keys_to_clear = list(sorted_available.keys())[:-TextureCache._size] for key in keys_to_clear: state, t, texture = TextureCache._textures[key] TextureCache._textures[key] = ( TextureCache.LoadingState.CLEARED, t, None) keys_l = len(keys_to_clear) TextureCache._log.info( f"Cleared {keys_l} items, texture cache contains" f" {sorted_available_l-keys_l} available items.") # noqa: E226 return GLib.SOURCE_CONTINUE def _on_art_loading_finished( self, art_loader: MediaArtLoader, texture: Gdk.Texture, uri: str) -> None: if texture: state = TextureCache.LoadingState.AVAILABLE else: state = TextureCache.LoadingState.UNAVAILABLE TextureCache._textures[uri] = (state, time.time(), texture) self.emit("texture", texture) 07070100000069000081A400000000000000000000000166968E4E00002B45000000000000000000000000000000000000002E00000000gnome-music-46.1/gnomemusic/trackerwrapper.py# Copyright 2019 The GNOME Music developers # GNOME Music 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. # # GNOME Music 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 GNOME Music; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # # The GNOME Music authors hereby grant permission for non-GPL compatible # GStreamer plugins to be used and distributed together with GStreamer # and GNOME Music. This permission is above and beyond the permissions # granted by the GPL license by which GNOME Music is covered. If you # modify this code, you may extend this exception to your version of the # code, but you are not obligated to do so. If you do not wish to do so, # delete this exception statement from your version. from __future__ import annotations import os import typing from enum import IntEnum from typing import Optional from gi.repository import Gio, GLib, GObject, Tracker if typing.TYPE_CHECKING: from gi.repository import Grl from gnomemusic.application import Application class TrackerState(IntEnum): """Tracker Status """ AVAILABLE = 0 UNAVAILABLE = 1 OUTDATED = 2 class TrackerWrapper(GObject.GObject): def __init__(self, application: Application) -> None: """Create a connection to an instance of Tracker :param Application application: The application object """ super().__init__() self._log = application.props.log self._application_id = application.props.application_id self._local_db: Tracker.SparqlConnection = None self._local_db_available = TrackerState.UNAVAILABLE self._miner_fs: Tracker.SparqlConnection = None self._miner_fs_busname = "" self._miner_fs_available = TrackerState.UNAVAILABLE self._setup_local_db() self._setup_host_miner_fs() @staticmethod def _in_flatpak() -> bool: """Indicates if Music is running as flatpak :returns: True if running as flatpak. :rtype: bool """ return os.path.exists("/.flatpak-info") def _setup_host_miner_fs(self) -> None: self._miner_fs_busname = "org.freedesktop.Tracker3.Miner.Files" self._log.debug( "Connecting to session-wide Tracker indexer at {}".format( self._miner_fs_busname)) try: self._miner_fs = Tracker.SparqlConnection.bus_new( self._miner_fs_busname, None, None) self._log.info("Using session-wide tracker-miner-fs-3") self._miner_fs_available = TrackerState.AVAILABLE self.notify("tracker-available") except GLib.Error as error: self._log.warning( "Could not connect to host Tracker miner-fs at {}: {}".format( self._miner_fs_busname, error)) if self._in_flatpak(): self._setup_local_miner_fs() else: self._miner_fs_busname = "" self.notify("tracker-available") def _setup_local_miner_fs(self) -> None: self._miner_fs_busname = self._application_id + ".Tracker3.Miner.Files" self._log.debug( "Connecting to bundled Tracker indexer at {}".format( self._miner_fs_busname)) # Calling self._application.get_dbus_connection() seems to return None # here, so get the bus directly from Gio. Gio.bus_get(Gio.BusType.SESSION, None, self._setup_local_bus_connection_cb) def _setup_local_bus_connection_cb(self, klass, result): # Query callback for _setup_local_miner_fs() to connect to session bus bus = Gio.bus_get_finish(result) miner_fs_startup_timeout_msec = 30 * 1000 miner_fs_object_path = "/org/freedesktop/Tracker3/Miner/Files" bus.call( self._miner_fs_busname, miner_fs_object_path, "org.freedesktop.DBus.Peer", "Ping", None, None, Gio.DBusCallFlags.NONE, miner_fs_startup_timeout_msec, None, self._setup_local_miner_fs_ping_cb) def _setup_local_miner_fs_ping_cb( self, klass: Gio.DBusProxy, result: Gio.AsyncResult) -> None: try: klass.call_finish(result) self._log.info("Using bundled tracker-miner-fs-3") self._miner_fs = Tracker.SparqlConnection.bus_new( self._miner_fs_busname, None, None) self._miner_fs_available = TrackerState.AVAILABLE self.notify("tracker-available") except GLib.Error as error: self._log.warning( "Could not start local Tracker miner-fs at {}: {}".format( self._miner_fs_busname, error)) self._miner_fs_busname = "" self.notify("tracker-available") def _setup_local_db(self) -> None: # Open a local Tracker database. try: self._local_db = Tracker.SparqlConnection.new( Tracker.SparqlConnectionFlags.NONE, Gio.File.new_for_path(self.cache_directory()), Tracker.sparql_get_ontology_nepomuk(), None) except GLib.Error as error: self._log.warning( "Error: {}, {}".format(error.domain, error.message)) self.notify("tracker-available") return # Version checks against the local version of Tracker can be done # here, set `self._tracker_available = TrackerState.OUTDATED` if the # checks fail. self._local_db_available = TrackerState.AVAILABLE self.notify("tracker-available") def cache_directory(self) -> str: """Get directory which contains Music private data. :returns: private store path :rtype: str """ return GLib.build_pathv( GLib.DIR_SEPARATOR_S, [GLib.get_user_cache_dir(), "gnome-music", "db"]) @GObject.Property(type=str, flags=GObject.ParamFlags.READABLE) def miner_fs_busname(self) -> str: return self._miner_fs_busname @GObject.Property(type=object, flags=GObject.ParamFlags.READABLE) def local_db(self) -> Tracker.SparqlConnection: return self._local_db @GObject.Property( type=int, default=TrackerState.UNAVAILABLE, flags=GObject.ParamFlags.READABLE) def tracker_available(self) -> TrackerState: """Get Tracker availability. :returns: tracker availability :rtype: TrackerState """ if (self._local_db_available == TrackerState.AVAILABLE and self._miner_fs_available == TrackerState.AVAILABLE): return TrackerState.AVAILABLE elif (self._local_db_available == TrackerState.OUTDATED or self._miner_fs_available == TrackerState.OUTDATED): return TrackerState.OUTDATED else: return TrackerState.UNAVAILABLE def location_filter(self) -> Optional[str]: try: music_dir = GLib.get_user_special_dir( GLib.UserDirectory.DIRECTORY_MUSIC) assert music_dir is not None except (TypeError, AssertionError): self._log.message("XDG Music dir is not set") return None music_dir = Tracker.sparql_escape_string( GLib.filename_to_uri(music_dir)) query = "FILTER (STRSTARTS(nie:isStoredAs(?song), '{}/'))".format( music_dir) return query def _update_favorite(self, media: Grl.Media) -> None: """Update favorite state of a song :param Grl.Media media: media which contains updated favorite state """ if (media.get_favourite()): update = """ INSERT DATA { <%(urn)s> a nmm:MusicPiece ; nao:hasTag nao:predefined-tag-favorite . } """.replace("\n", "").strip() % { "urn": media.get_id(), } else: update = """ DELETE DATA { <%(urn)s> nao:hasTag nao:predefined-tag-favorite . } """.replace("\n", "").strip() % { "urn": media.get_id(), } def _update_favorite_cb(conn, res): try: conn.update_finish(res) except GLib.Error as e: self._log.warning("Unable to update favorite: {}".format( e.message)) self._local_db.update_async(update, None, _update_favorite_cb) def _update_play_count(self, media: Grl.Media) -> None: update = """ DELETE WHERE { <%(urn)s> nie:usageCounter ?count . }; INSERT DATA { <%(urn)s> a nmm:MusicPiece ; nie:usageCounter %(count)d . } """.replace("\n", "").strip() % { "urn": media.get_id(), "count": media.get_play_count(), } def _update_play_count_cb(conn, res): try: conn.update_finish(res) except GLib.Error as e: self._log.warning("Unable to update play count: {}".format( e.message)) self._local_db.update_async(update, None, _update_play_count_cb) def _update_last_played(self, media: Grl.Media) -> None: last_played = media.get_last_played().format_iso8601() update = """ DELETE WHERE { <%(urn)s> nie:contentAccessed ?accessed }; INSERT DATA { <%(urn)s> a nmm:MusicPiece ; nie:contentAccessed "%(last_played)s" } """.replace("\n", "").strip() % { "urn": media.get_id(), "last_played": last_played, } def _update_last_played_cb(conn, res): try: conn.update_finish(res) except GLib.Error as e: self._log.warning(f"Unable to update last played: {e.message}") self._local_db.update_async(update, None, _update_last_played_cb) def update_tag(self, media: Grl.Media, tag: str) -> None: """Update property of a resource. :param Grl.Media media: media which contains updated tag :param str tag: tag to update """ if tag == "favorite": self._update_favorite(media) elif tag == "last-played": self._update_last_played(media) elif tag == "play-count": self._update_play_count(media) else: self._log.warning("Unknown tag: '{}'".format(tag)) 0707010000006A000081A400000000000000000000000166968E4E0000185C000000000000000000000000000000000000002500000000gnome-music-46.1/gnomemusic/utils.py# Copyright (c) 2016 Marinus Schraal # # GNOME Music 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. # # GNOME Music 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 GNOME Music; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # # The GNOME Music authors hereby grant permission for non-GPL compatible # GStreamer plugins to be used and distributed together with GStreamer # and GNOME Music. This permission is above and beyond the permissions # granted by the GPL license by which GNOME Music is covered. If you # modify this code, you may extend this exception to your version of the # code, but you are not obligated to do so. If you do not wish to do so, # delete this exception statement from your version. from enum import Enum, IntEnum from typing import List, Union import re import unicodedata from gettext import gettext as _ from gi.repository import Gio, GLib, Gtk from gnomemusic.musiclogger import MusicLogger class ArtSize(Enum): """Enum for icon sizes""" XSMALL = (42, 42) SMALL = (74, 74) MEDIUM = (192, 192) LARGE = (256, 256) def __init__(self, width, height): """Intialize width and height""" self.width = width self.height = height class CoreObjectType(Enum): """Indicates the type of the CoreObject passed""" ALBUM = 0 ARTIST = 1 SONG = 2 class DefaultIconType(Enum): ALBUM = "folder-music-symbolic" ARTIST = "music-artist-symbolic" class SongStateIcon(Enum): """Enum for icons used in song playing and validation""" ERROR = "dialog-error-symbolic" PLAYING = "media-playback-start-symbolic" class View(IntEnum): """Enum for views""" ALBUM = 0 ARTIST = 1 PLAYLIST = 2 def get_album_title(item): """Returns the album title associated with the media item In case of an audio file the get_album call returns the album title and in case of a container we are looking for the title. :param Grl.Media item: A Grilo Media object :return: The album title :rtype: str """ if item.is_container(): album = get_media_title(item) else: album = (item.get_album() or _("Unknown album")) return album def get_artist_name(item): """Returns the preferred artist for a media item. The artist name for a particular media item can be either the main artist of the full album (album artist), the artist of the song (artist) or possibly it is not known at all. The first is preferred in most cases, because it is the most accurate in an album setting. :param Grl.Media item: A Grilo Media object :return: The artist name :rtype: str """ return (item.get_album_artist() or item.get_artist() or _("Unknown Artist")) def get_media_title(item): """Returns the title of the media item. :param Grl.Media item: A Grilo Media object :return: The title :rtype: str """ title = item.get_title() if not title: url = item.get_url() # FIXME: This and the later occurance are user facing strings, # but they ideally should never be seen. A media should always # contain a URL or we can not play it, in that case it should # be removed. if url is None: return "NO URL" file_ = Gio.File.new_for_uri(url) try: # FIXME: query_info is not async. fileinfo = file_.query_info( "standard::display-name", Gio.FileQueryInfoFlags.NONE, None) except GLib.Error as error: MusicLogger().warning( "Error: {}, {}".format(error.domain, error.message)) return "NO URL" title = fileinfo.get_display_name() title = title.replace("_", " ") return title def get_media_year(item): """Returns the year when the media was published. :param Grl.Media item: A Grilo Media object :return: The publication year or None if not defined :rtype: str or None """ date = item.get_publication_date() if not date: return None return str(date.get_year()) def seconds_to_string(duration): """Convert a time in seconds to a mm:ss string :param int duration: Time in seconds :return: Time in mm:ss format :rtype: str """ seconds = duration minutes = seconds // 60 seconds %= 60 return '{:d}:{:02d}'.format(minutes, seconds) def normalize_caseless(text): """Get a normalized casefolded version of a string. :param str text: string to normalize :returns: normalized casefolded string :rtype: str """ return unicodedata.normalize("NFKD", text.casefold()) def natural_sort_names(name_a: str, name_b: str) -> int: """Natural order comparison of two strings. A natural order is an alphabetical order which takes into account digit numbers. For example, it returns ["Album 3", "Album 10"] instead of ["Album 10", "Album 3"] for an alphabetical order. The names are also normalized to properly take into account names which contain accents. :param str name_a: first string to compare :param str name_b: second string to compare :returns: Gtk Ordering :rtype: int """ def _extract_numbers(text: str) -> List[Union[int, str]]: return [int(tmp) if tmp.isdigit() else tmp for tmp in re.split(r"(\d+)", normalize_caseless(text))] extract_a = _extract_numbers(name_a) extract_b = _extract_numbers(name_b) if extract_a < extract_b: return Gtk.Ordering.SMALLER elif extract_a > extract_b: return Gtk.Ordering.LARGER else: return Gtk.Ordering.EQUAL 0707010000006B000041ED00000000000000000000000266968E4E00000000000000000000000000000000000000000000002200000000gnome-music-46.1/gnomemusic/views0707010000006C000081A400000000000000000000000166968E4E00000000000000000000000000000000000000000000002E00000000gnome-music-46.1/gnomemusic/views/__init__.py0707010000006D000081A400000000000000000000000166968E4E00001418000000000000000000000000000000000000003000000000gnome-music-46.1/gnomemusic/views/albumsview.py# Copyright 2019 The GNOME Music Developers # # GNOME Music 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. # # GNOME Music 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 GNOME Music; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # # The GNOME Music authors hereby grant permission for non-GPL compatible # GStreamer plugins to be used and distributed together with GStreamer # and GNOME Music. This permission is above and beyond the permissions # granted by the GPL license by which GNOME Music is covered. If you # modify this code, you may extend this exception to your version of the # code, but you are not obligated to do so. If you do not wish to do so, # delete this exception statement from your version. from __future__ import annotations import typing from gettext import gettext as _ from gi.repository import Adw, GObject, Gtk from typing import Dict, List from gnomemusic.coverpaintable import CoverPaintable from gnomemusic.utils import ArtSize, DefaultIconType from gnomemusic.widgets.albumnavigationpage import AlbumNavigationPage if typing.TYPE_CHECKING: from gnomemusic.application import Application @Gtk.Template(resource_path="/org/gnome/Music/ui/AlbumsView.ui") class AlbumsView(Adw.Bin): """Gridlike view of all albums Album activation switches to AlbumWidget. """ __gtype_name__ = "AlbumsView" icon_name = GObject.Property( type=str, default="media-optical-cd-audio-symbolic", flags=GObject.ParamFlags.READABLE) title = GObject.Property( type=str, default=_("Albums"), flags=GObject.ParamFlags.READABLE) _gridview = Gtk.Template.Child() def __init__(self, application: Application) -> None: """Initialize AlbumsView :param application: The Application object """ super().__init__() self.props.name = "albums" self._application = application self._window = application.props.window self._navigation_view = self._window.props.navigation_view self._list_item_bindings: Dict[ Gtk.ListItem, List[GObject.Binding]] = {} self._list_item_star_controllers: Dict[ Gtk.ListItem, List[GObject.Binding]] = {} list_item_factory = Gtk.SignalListItemFactory() list_item_factory.connect("setup", self._setup_list_item) list_item_factory.connect("bind", self._bind_list_item) list_item_factory.connect("unbind", self._unbind_list_item) self._gridview.props.factory = list_item_factory selection_model = Gtk.MultiSelection.new( self._application.props.coremodel.props.albums_sort) self._gridview.props.model = selection_model self._gridview.connect("activate", self._on_album_activated) def _on_album_activated(self, widget, position): corealbum = widget.props.model[position] album_page = AlbumNavigationPage(self._application, corealbum) self._navigation_view.push(album_page) def _setup_list_item( self, factory: Gtk.SignalListItemFactory, list_item: Gtk.ListItem) -> None: builder = Gtk.Builder.new_from_resource( "/org/gnome/Music/ui/AlbumCoverListItem.ui") list_item.props.child = builder.get_object("_album_cover") cover_image = list_item.props.child.get_first_child() cover_image.set_size_request( ArtSize.MEDIUM.width, ArtSize.MEDIUM.height) cover_image.props.paintable = CoverPaintable( self, ArtSize.MEDIUM, icon_type=DefaultIconType.ALBUM) def _bind_list_item( self, factory: Gtk.SignalListItemFactory, list_item: Gtk.ListItem) -> None: album_cover = list_item.props.child corealbum = list_item.props.item cover_image = album_cover.get_first_child() album_label = album_cover.get_first_child().get_next_sibling() artist_label = album_label.get_next_sibling() b1 = corealbum.bind_property( "corealbum", cover_image.props.paintable, "coreobject", GObject.BindingFlags.SYNC_CREATE) b2 = corealbum.bind_property( "title", album_label, "label", GObject.BindingFlags.SYNC_CREATE) b3 = corealbum.bind_property( "artist", artist_label, "label", GObject.BindingFlags.SYNC_CREATE) self._list_item_bindings[list_item] = [b1, b2, b3] def _unbind_list_item( self, factory: Gtk.SignalListItemFactory, list_item: Gtk.ListItem) -> None: bindings = self._list_item_bindings.pop(list_item) [binding.unbind() for binding in bindings] 0707010000006E000081A400000000000000000000000166968E4E000011A1000000000000000000000000000000000000003100000000gnome-music-46.1/gnomemusic/views/artistsview.py# Copyright (c) 2016 The GNOME Music Developers # # GNOME Music 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. # # GNOME Music 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 GNOME Music; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # # The GNOME Music authors hereby grant permission for non-GPL compatible # GStreamer plugins to be used and distributed together with GStreamer # and GNOME Music. This permission is above and beyond the permissions # granted by the GPL license by which GNOME Music is covered. If you # modify this code, you may extend this exception to your version of the # code, but you are not obligated to do so. If you do not wish to do so, # delete this exception statement from your version. from __future__ import annotations import typing from gettext import gettext as _ from gi.repository import Adw, GObject, Gtk from gnomemusic.widgets.artistalbumswidget import ArtistAlbumsWidget from gnomemusic.widgets.artisttile import ArtistTile if typing.TYPE_CHECKING: from gnomemusic.application import Application @Gtk.Template(resource_path="/org/gnome/Music/ui/ArtistsView.ui") class ArtistsView(Adw.Bin): """Main view of all available artists Consists of a list of artists on the left side and an overview of all albums by this artist on the right side. """ __gtype_name__ = "ArtistsView" icon_name = GObject.Property( type=str, default="music-artist-symbolic", flags=GObject.ParamFlags.READABLE) title = GObject.Property( type=str, default=_("Artists"), flags=GObject.ParamFlags.READABLE) _artist_view = Gtk.Template.Child() _sidebar = Gtk.Template.Child() def __init__(self, application: Application) -> None: """Initialize :param GtkApplication application: The application object """ super().__init__() self.props.name = "artists" # This indicates if the current list has been empty and has # had no user interaction since. self._untouched_list = True self._window = application.props.window self._coremodel = application.props.coremodel self._model = self._coremodel.props.artists_sort self._selection_model = Gtk.SingleSelection.new(self._model) self._sidebar.props.model = self._selection_model artist_item_factory = Gtk.SignalListItemFactory() artist_item_factory.connect("setup", self._on_list_view_setup) artist_item_factory.connect("bind", self._on_list_view_bind) self._sidebar.props.factory = artist_item_factory self._artist_album = ArtistAlbumsWidget(application) self._artist_view.props.child = self._artist_album self._selection_model.connect_after( "items-changed", self._on_model_items_changed) self._on_model_items_changed(self._selection_model, 0, 0, 0) def _on_list_view_setup( self, factory: Gtk.SignalListItemFactory, list_item: Gtk.ListItem) -> None: list_item.props.child = ArtistTile() def _on_list_view_bind( self, factory: Gtk.SignalListItemFactory, list_item: Gtk.ListItem) -> None: coreartist = list_item.props.item artist_tile = list_item.props.child artist_tile.props.coreartist = coreartist def _on_model_items_changed( self, model: Gtk.SingleSelection, position: int, removed: int, added: int) -> None: if model.get_n_items() == 0: self._untouched_list = True # FIXME: Add an empty state. elif self._untouched_list is True: self._untouched_list = False self._sidebar.emit("activate", 0) @Gtk.Template.Callback() def _on_artist_activated( self, sidebar: Gtk.ListView, position: int) -> None: """Initializes new artist album widgets""" coreartist = self._selection_model.get_item(position) self._artist_album.props.coreartist = coreartist 0707010000006F000081A400000000000000000000000166968E4E000017C5000000000000000000000000000000000000003300000000gnome-music-46.1/gnomemusic/views/playlistsview.py# Copyright 2020 The GNOME Music Developers # # GNOME Music 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. # # GNOME Music 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 GNOME Music; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # # The GNOME Music authors hereby grant permission for non-GPL compatible # GStreamer plugins to be used and distributed together with GStreamer # and GNOME Music. This permission is above and beyond the permissions # granted by the GPL license by which GNOME Music is covered. If you # modify this code, you may extend this exception to your version of the # code, but you are not obligated to do so. If you do not wish to do so, # delete this exception statement from your version. from gettext import gettext as _ from typing import Optional from gi.repository import Adw, GObject, Gtk from gnomemusic.grilowrappers.grltrackerplaylists import Playlist from gnomemusic.widgets.playlistswidget import PlaylistsWidget from gnomemusic.widgets.playlisttile import PlaylistTile @Gtk.Template(resource_path="/org/gnome/Music/ui/PlaylistsView.ui") class PlaylistsView(Adw.Bin): """Main view for playlists""" __gtype_name__ = "PlaylistsView" icon_name = GObject.Property( type=str, default="view-list-symbolic", flags=GObject.ParamFlags.READABLE) title = GObject.Property( type=str, default=_("Playlists"), flags=GObject.ParamFlags.READABLE) _playlist_page = Gtk.Template.Child() _sidebar = Gtk.Template.Child() def __init__(self, application): """Initialize :param GtkApplication application: The application object """ super().__init__() self.props.name = "playlists" self._coremodel = application.props.coremodel self._model = self._coremodel.props.playlists_sort # This indicates if the current list has been empty and has # had no user interaction since. self._untouched_list = True self._playlist_widget = PlaylistsWidget(application, self) self._playlist_page.props.child = self._playlist_widget self._sidebar.set_header_func(self._sidebar_header_func) self._sidebar.bind_model(self._model, self._add_playlist_to_sidebar) self._coremodel.connect( "notify::active-core-object", self._on_active_core_object_changed) self._model.connect("items-changed", self._on_playlists_model_changed) self._on_playlists_model_changed(self._model, 0, 0, 0) def _sidebar_header_func( self, row: Gtk.ListBoxRow, before: Optional[Gtk.ListBoxRow]) -> None: if (before and before.props.playlist.props.is_smart and not row.props.playlist.props.is_smart): separator = Gtk.Separator(orientation=Gtk.Orientation.HORIZONTAL) separator.props.height_request = 2 separator.props.margin_end = 16 separator.props.margin_start = 16 row.set_header(separator) else: row.set_header(None) def _add_playlist_to_sidebar(self, playlist): """Add a playlist to sidebar :param GrlMedia playlist: playlist to add :param int index: position """ row = PlaylistTile(playlist) return row def _on_playlists_model_changed(self, model, position, removed, added): if model.get_n_items() == 0: self._untouched_list = True return elif self._untouched_list is True: first_row = self._sidebar.get_row_at_index(0) self._sidebar.select_row(first_row) self._on_playlist_activated(self._sidebar, first_row, True) return if removed == 0: return row_next = (self._sidebar.get_row_at_index(position) or self._sidebar.get_row_at_index(position - 1)) if row_next: self._sidebar.select_row(row_next) self._on_playlist_activated(self._sidebar, row_next, True) @GObject.Property( type=Playlist, default=None, flags=GObject.ParamFlags.READABLE) def current_playlist(self): selection = self._sidebar.get_selected_row() if selection is None: return None return selection.props.playlist @Gtk.Template.Callback() def _on_playlist_activated(self, sidebar, row, untouched=False): """Update view with content from selected playlist""" if untouched is False: self._untouched_list = False self.notify("current-playlist") def _on_active_core_object_changed(self, klass, val): """Selects the active playlist when an MPRIS client has changed it. """ active_core_object = self._coremodel.props.active_core_object selection = self._sidebar.get_selected_row() if (not isinstance(active_core_object, Playlist) or active_core_object == selection.props.playlist): return playlist_row = None for row in self._sidebar: if row.props.playlist == active_core_object: playlist_row = row break if not playlist_row: return self._sidebar.select_row(playlist_row) self._on_playlist_activated(self._sidebar, playlist_row) @GObject.Property( type=bool, default=False, flags=GObject.ParamFlags.READABLE) def rename_active(self): """Indicate if renaming dialog is active""" return self._playlist_widget.props.rename_active 07070100000070000081A400000000000000000000000166968E4E00002BF6000000000000000000000000000000000000003000000000gnome-music-46.1/gnomemusic/views/searchview.py# Copyright (c) 2016 The GNOME Music Developers # # GNOME Music 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. # # GNOME Music 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 GNOME Music; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # # The GNOME Music authors hereby grant permission for non-GPL compatible # GStreamer plugins to be used and distributed together with GStreamer # and GNOME Music. This permission is above and beyond the permissions # granted by the GPL license by which GNOME Music is covered. If you # modify this code, you may extend this exception to your version of the # code, but you are not obligated to do so. If you do not wish to do so, # delete this exception statement from your version. from __future__ import annotations from enum import IntEnum from typing import Optional import typing from gi.repository import Adw, GObject, Gtk from gettext import gettext as _ from gnomemusic.search import Search from gnomemusic.utils import ArtSize from gnomemusic.widgets.albumcover import AlbumCover from gnomemusic.widgets.albumnavigationpage import AlbumNavigationPage from gnomemusic.widgets.albumssearchnavigationpage import ( AlbumsSearchNavigationPage) from gnomemusic.widgets.artistnavigationpage import ArtistNavigationPage from gnomemusic.widgets.artistsearchtile import ArtistSearchTile from gnomemusic.widgets.artistssearchnavigationpage import ( ArtistsSearchNavigationPage) from gnomemusic.widgets.searchheaderbar import SearchHeaderBar from gnomemusic.widgets.songwidget import SongWidget from gnomemusic.widgets.songwidgetmenu import SongWidgetMenu if typing.TYPE_CHECKING: from gnomemusic.application import Application from gnomemusic.corealbum import CoreAlbum from gnomemusic.coresong import CoreSong @Gtk.Template(resource_path="/org/gnome/Music/ui/SearchView.ui") class SearchView(Adw.NavigationPage): """Gridlike view of search results. Three sections: artists, albums, songs. """ __gtype_name__ = "SearchView" class State(IntEnum): """The different states of SearchView """ MAIN = 0 ALL_ALBUMS = 1 ALL_ARTISTS = 2 ALBUM = 3 ARTIST = 4 search_mode_active = GObject.Property(type=bool, default=False) search_state = GObject.Property(type=int, default=Search.State.NONE) search_text = GObject.Property(type=str) _album_header = Gtk.Template.Child() _album_flowbox = Gtk.Template.Child() _artist_header = Gtk.Template.Child() _artist_flowbox = Gtk.Template.Child() _search_results = Gtk.Template.Child() _search_toolbar_view = Gtk.Template.Child() _songs_header = Gtk.Template.Child() _songs_listbox = Gtk.Template.Child() _stack = Gtk.Template.Child() _status_page = Gtk.Template.Child() _view_all_albums = Gtk.Template.Child() _view_all_artists = Gtk.Template.Child() def __init__(self, application: Application) -> None: """Initialize SearchView :param GtkApplication application: The Application object """ super().__init__() self.props.name = "search" self._application = application self._coremodel = application.props.coremodel self._model = self._coremodel.props.songs_search self._player = self._application.props.player self._window = application.props.window self._navigation_view = self._window.props.navigation_view self._headerbar = self._window.props.headerbar self._search_headerbar = SearchHeaderBar(self._application) self._search_toolbar_view.add_top_bar(self._search_headerbar) self.bind_property( "search-text", self._search_headerbar, "search-text") self.bind_property( "search-state", self._search_headerbar, "search-state", GObject.BindingFlags.BIDIRECTIONAL | GObject.BindingFlags.SYNC_CREATE) self.connect( "notify::search-state", self._on_search_state_changed) self._navigation_view.connect( "replaced", self._on_navigation_view_replaced) self._album_model = self._coremodel.props.albums_search self._artist_model = self._coremodel.props.artists_search self._album_slice = Gtk.SliceListModel.new(self._album_model, 0, 8) self._artist_slice = Gtk.SliceListModel.new(self._artist_model, 0, 6) self._model.connect_after( "items-changed", self._on_model_items_changed) self._songs_listbox.bind_model(self._model, self._create_song_widget) self._on_model_items_changed(self._model, 0, 0, 0) self.bind_property( "search_mode_active", self._search_headerbar, "search_mode_active", GObject.BindingFlags.BIDIRECTIONAL | GObject.BindingFlags.SYNC_CREATE) self._album_slice.connect_after( "items-changed", self._on_album_model_items_changed) self._album_flowbox.bind_model( self._album_slice, self._create_album_cover) self._application.props.window.connect( "notify::default-width", self._on_window_width_change) self._artist_slice.connect_after( "items-changed", self._on_artist_model_items_changed) self._artist_flowbox.bind_model( self._artist_slice, self._create_artist_widget) self._scrolled_artist_window: Optional[Gtk.ScrolledWindow] = None self._set_empty_status_page() self._stack.props.visible_child_name = "status" def _core_filter(self, coreitem, coremodel, nr_items): if coremodel.get_n_items() <= 5: return True for i in range(nr_items): if coremodel.get_item(i) == coreitem: return True return False def _create_song_widget(self, coresong: CoreSong) -> Gtk.ListBoxRow: song_widget = SongWidget(coresong, False, True) song_widget.props.show_song_number = False song_widget.props.menu = SongWidgetMenu( self._application, song_widget, coresong) return song_widget def _create_album_cover(self, corealbum: CoreAlbum) -> AlbumCover: album_cover = AlbumCover(corealbum) album_cover.retrieve() return album_cover def _create_artist_widget(self, coreartist): artist_tile = ArtistSearchTile(coreartist) return artist_tile def _on_album_model_items_changed(self, model, position, removed, added): items_found = model.get_n_items() > 0 self._album_header.props.visible = items_found self._album_flowbox.props.visible = items_found self._check_visibility() nr_albums = self._album_model.get_n_items() self._view_all_albums.props.visible = (nr_albums > model.get_n_items()) def _on_artist_model_items_changed(self, model, position, removed, added): items_found = model.get_n_items() > 0 self._artist_header.props.visible = items_found self._artist_flowbox.props.visible = items_found self._check_visibility() nr_artists = self._artist_model.get_n_items() self._view_all_artists.props.visible = ( nr_artists > model.get_n_items()) def _on_model_items_changed(self, model, position, removed, added): items_found = model.get_n_items() > 0 self._songs_header.props.visible = items_found self._songs_listbox.props.visible = items_found self._check_visibility() def _on_navigation_view_replaced(self, view: Adw.NavigationView) -> None: self._search_headerbar.clear_entry() def _on_search_state_changed( self, searchview: SearchView, state: GObject.GParamInt) -> None: state = self.props.search_state if state == Search.State.RESULT: self._stack.props.visible_child_name = "main" elif state == Search.State.NONE: self._set_empty_status_page() self._stack.props.visible_child_name = "status" elif state == Search.State.NO_RESULT: self._set_no_result_status_page() self._stack.props.visible_child_name = "status" def _set_empty_status_page(self) -> None: self._status_page.props.title = _("No Search Started") self._status_page.props.description = _( "Use the searchbar to start searching for " "albums, artists or songs") def _set_no_result_status_page(self) -> None: self._status_page.props.title = _("No Results Found") self._status_page.props.description = _( "Try a different search") def _check_visibility(self): if not self.props.search_mode_active: return items_found = (self._model.get_n_items() > 0 or self._artist_model.get_n_items() > 0 or self._album_model.get_n_items() > 0) if items_found: self.props.search_state = Search.State.RESULT else: self.props.search_state = Search.State.NO_RESULT @Gtk.Template.Callback() def _song_activated( self, list_box: Gtk.ListBox, song_widget: SongWidget) -> bool: coresong = song_widget.props.coresong self._coremodel.props.active_core_object = coresong self._player.play(coresong) return True def _on_window_width_change(self, widget, value): allocation = self._album_flowbox.get_allocation() # FIXME: Just a bit of guesswork here. padding = 32 items_per_row = allocation.width // (ArtSize.MEDIUM.width + padding) self._album_slice.props.size = 2 * items_per_row self._artist_slice.props.size = items_per_row @Gtk.Template.Callback() def _on_album_activated(self, widget, child, user_data=None): corealbum = child.props.corealbum album_page = AlbumNavigationPage(self._application, corealbum) self._navigation_view.push(album_page) @Gtk.Template.Callback() def _on_artist_activated(self, widget, child, user_data=None): coreartist = child.props.coreartist artist_page = ArtistNavigationPage(self._application, coreartist) self._navigation_view.push(artist_page) @Gtk.Template.Callback() def _on_all_artists_clicked(self, widget, user_data=None): all_artists_page = ArtistsSearchNavigationPage( self._application, self._artist_model) self._navigation_view.push(all_artists_page) @Gtk.Template.Callback() def _on_all_albums_clicked(self, widget, user_data=None): all_albums_page = AlbumsSearchNavigationPage( self._application, self._album_model) self._navigation_view.push(all_albums_page) 07070100000071000041ED00000000000000000000000266968E4E00000000000000000000000000000000000000000000002400000000gnome-music-46.1/gnomemusic/widgets07070100000072000081A400000000000000000000000166968E4E00000000000000000000000000000000000000000000003000000000gnome-music-46.1/gnomemusic/widgets/__init__.py07070100000073000081A400000000000000000000000166968E4E00000DA3000000000000000000000000000000000000003200000000gnome-music-46.1/gnomemusic/widgets/albumcover.py# Copyright 2018 The GNOME Music developers # # GNOME Music 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. # # GNOME Music 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 GNOME Music; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # # The GNOME Music authors hereby grant permission for non-GPL compatible # GStreamer plugins to be used and distributed together with GStreamer # and GNOME Music. This permission is above and beyond the permissions # granted by the GPL license by which GNOME Music is covered. If you # modify this code, you may extend this exception to your version of the # code, but you are not obligated to do so. If you do not wish to do so, # delete this exception statement from your version. import gi gi.require_version('Grl', '0.3') from gi.repository import GObject, Gtk from gnomemusic.corealbum import CoreAlbum from gnomemusic.coverpaintable import CoverPaintable from gnomemusic.utils import ArtSize, DefaultIconType from gnomemusic.widgets.twolinetip import TwoLineTip @Gtk.Template(resource_path='/org/gnome/Music/ui/AlbumCover.ui') class AlbumCover(Gtk.FlowBoxChild): """Cover tile as used in AlbumsView Includes cover, album title and artist name. """ __gtype_name__ = 'AlbumCover' _cover_image = Gtk.Template.Child() _title_label = Gtk.Template.Child() _artist_label = Gtk.Template.Child() def __init__(self, corealbum): """Initialize the AlbumCover :param Grl.Media media: The media object to use """ super().__init__() self._corealbum = corealbum self._retrieved = False self._tooltip = TwoLineTip() artist = self._corealbum.props.artist title = self._corealbum.props.title self._tooltip.props.title = artist self._tooltip.props.subtitle = title self._artist_label.props.label = artist self._title_label.props.label = title self.connect('query-tooltip', self._on_tooltip_query) self._cover_image.set_size_request( ArtSize.MEDIUM.width, ArtSize.MEDIUM.height) self._cover_image.props.paintable = CoverPaintable( self, ArtSize.MEDIUM, DefaultIconType.ALBUM) def retrieve(self): """Start retrieving the actual album cover Cover retrieval is an expensive operation, so use this call to start the retrieval process when needed. """ if self._retrieved: return self._retrieved = True self._cover_image.props.paintable.props.coreobject = self._corealbum @GObject.Property(type=CoreAlbum, flags=GObject.ParamFlags.READABLE) def corealbum(self): """CoreAlbum object used in AlbumCover :returns: The album used :rtype: CoreAlbum """ return self._corealbum @Gtk.Template.Callback() def _on_tooltip_query(self, widget, x, y, kb, tooltip, data=None): tooltip.set_custom(self._tooltip) return True 07070100000074000081A400000000000000000000000166968E4E00000597000000000000000000000000000000000000003B00000000gnome-music-46.1/gnomemusic/widgets/albumnavigationpage.py# Copyright 2024 The GNOME Music developers # # SPDX-License-Identifier: GPL-2.0-or-later WITH GStreamer-exception-2008 from __future__ import annotations import typing from gi.repository import Adw, GObject, Gtk from gnomemusic.corealbum import CoreAlbum from gnomemusic.widgets.albumwidget import AlbumWidget if typing.TYPE_CHECKING: from gnomemusic.application import Application @Gtk.Template(resource_path='/org/gnome/Music/ui/AlbumNavigationPage.ui') class AlbumNavigationPage(Adw.NavigationPage): """AlbumNavigationPage """ __gtype_name__ = "AlbumNavigationPage" _album_scrolled_window = Gtk.Template.Child() _page_title = Gtk.Template.Child() show_artist_label = GObject.Property(type=bool, default=True) def __init__(self, application: Application, corealbum: CoreAlbum) -> None: """Initialize the AlbumNavigationPage. :param GtkApplication application: The application object :param CoreAlbum corealbum: The CoreAlbum to show """ super().__init__() self._application = application self._corealbum = corealbum self._page_title.props.title = self._corealbum.props.title self._page_title.props.subtitle = self._corealbum.props.artist album_widget = AlbumWidget(self._application) album_widget.props.corealbum = self._corealbum self._album_scrolled_window.props.child = album_widget 07070100000075000081A400000000000000000000000166968E4E0000072E000000000000000000000000000000000000004200000000gnome-music-46.1/gnomemusic/widgets/albumssearchnavigationpage.py# Copyright 2024 The GNOME Music developers # # SPDX-License-Identifier: GPL-2.0-or-later WITH GStreamer-exception-2008 from __future__ import annotations from typing import Any import typing from gi.repository import Adw, Gtk from gnomemusic.corealbum import CoreAlbum from gnomemusic.widgets.albumcover import AlbumCover from gnomemusic.widgets.albumnavigationpage import AlbumNavigationPage if typing.TYPE_CHECKING: from gnomemusic.application import Application @Gtk.Template( resource_path="/org/gnome/Music/ui/AlbumsSearchNavigationPage.ui") class AlbumsSearchNavigationPage(Adw.NavigationPage): """ArtistsSearchNavigationPage """ __gtype_name__ = "AlbumsSearchNavigationPage" _all_albums_flowbox = Gtk.Template.Child() def __init__( self, application: Application, model: Gtk.FlattenListModel) -> None: """Initialize the AlbumsSearchNavigationPage. :param Application application: The application object :param model Gtk.FlattenListModel: The model to show """ super().__init__() self._application = application window = self._application.props.window self._navigation_view = window.props.navigation_view self._all_albums_flowbox.bind_model( model, self._create_album_cover) def _create_album_cover(self, corealbum: CoreAlbum) -> AlbumCover: album_cover = AlbumCover(corealbum) album_cover.retrieve() return album_cover @Gtk.Template.Callback() def _on_album_activated( self, flowbox: Gtk.FlowBox, album_cover: AlbumCover, user_data: Any = None) -> None: corealbum = album_cover.props.corealbum album_page = AlbumNavigationPage(self._application, corealbum) self._navigation_view.push(album_page) 07070100000076000081A400000000000000000000000166968E4E00002B38000000000000000000000000000000000000003300000000gnome-music-46.1/gnomemusic/widgets/albumwidget.py# Copyright 2020 The GNOME Music developers # # GNOME Music 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. # # GNOME Music 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 GNOME Music; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # # The GNOME Music authors hereby grant permission for non-GPL compatible # GStreamer plugins to be used and distributed together with GStreamer # and GNOME Music. This permission is above and beyond the permissions # granted by the GPL license by which GNOME Music is covered. If you # modify this code, you may extend this exception to your version of the # code, but you are not obligated to do so. If you do not wish to do so, # delete this exception statement from your version. from __future__ import annotations from gettext import ngettext from typing import Optional, Union import typing from gi.repository import Adw, Gio, GLib, GObject, Gtk from gnomemusic.corealbum import CoreAlbum from gnomemusic.coverpaintable import CoverPaintable from gnomemusic.utils import ArtSize, DefaultIconType from gnomemusic.widgets.discbox import DiscBox from gnomemusic.widgets.playlistdialog import PlaylistDialog if typing.TYPE_CHECKING: from gnomemusic.application import Application from gnomemusic.coreartist import CoreArtist from gnomemusic.coredisc import CoreDisc from gnomemusic.coresong import CoreSong from gnomemusic.widgets.songwidget import SongWidget @Gtk.Template(resource_path='/org/gnome/Music/ui/AlbumWidget.ui') class AlbumWidget(Adw.Bin): """Album widget. The album widget consists of an image with the album art on the left and a list of songs on the right. """ __gtype_name__ = 'AlbumWidget' _artist_label = Gtk.Template.Child() _composer_label = Gtk.Template.Child() _cover_image = Gtk.Template.Child() _disc_list_box = Gtk.Template.Child() _menu_button = Gtk.Template.Child() _play_button = Gtk.Template.Child() _released_label = Gtk.Template.Child() _title_label = Gtk.Template.Child() show_artist_label = GObject.Property(type=bool, default=True) def __init__(self, application: Application) -> None: """Initialize the AlbumWidget. :param GtkApplication application: The application object """ super().__init__() self._album_model = None self._application = application self._corealbum: CoreAlbum self._active_coreobject: Union[CoreAlbum, CoreArtist] self._coremodel = self._application.props.coremodel self._duration_signal_id = 0 self._year_signal_id = 0 self._model_signal_id = 0 self._playlist_dialog: Optional[PlaylistDialog] = None self._cover_image.set_size_request( ArtSize.LARGE.width, ArtSize.LARGE.height) self._cover_image.props.paintable = CoverPaintable( self, ArtSize.LARGE, DefaultIconType.ALBUM) self._player = self._application.props.player self.bind_property( "show-artist-label", self._artist_label, "visible", GObject.BindingFlags.SYNC_CREATE) action_group = Gio.SimpleActionGroup() actions = ( ("play", self._on_play_action), ("add_favorites", self._on_add_favorites_action), ("add_playlist", self._on_add_playlist_action) ) for (name, callback) in actions: action = Gio.SimpleAction.new(name, None) action.connect("activate", callback) action_group.add_action(action) self.insert_action_group("album", action_group) @GObject.Property( type=CoreAlbum, default=None, flags=GObject.ParamFlags.READWRITE) def corealbum(self) -> Optional[CoreAlbum]: """Get the current CoreAlbum. :returns: The current CoreAlbum :rtype: CoreAlbum or None """ try: return self._corealbum except AttributeError: return None @corealbum.setter # type:ignore def corealbum(self, corealbum: CoreAlbum) -> None: """Update CoreAlbum used for AlbumWidget. :param CoreAlbum corealbum: The CoreAlbum object """ if (self._duration_signal_id != 0 or self._year_signal_id != 0 or self._model_signal_id != 0): self._corealbum.disconnect(self._duration_signal_id) self._corealbum.disconnect(self._year_signal_id) self._corealbum.props.model.disconnect(self._model_signal_id) self._corealbum = corealbum self._cover_image.props.paintable.props.coreobject = self._corealbum album_name = self._corealbum.props.title artist = self._corealbum.props.artist self._title_label.props.label = album_name self._title_label.props.tooltip_text = album_name self._artist_label.props.label = artist self._artist_label.props.tooltip_text = artist self._duration_signal_id = self._corealbum.connect( "notify::duration", self._on_release_info_changed) self._year_signal_id = self._corealbum.connect( "notify::year", self._on_release_info_changed) self._set_composer_label() # In case the duration is no longer changing, make sure it is # displayed. self._corealbum.notify("duration") self._album_model = self._corealbum.props.model self._model_signal_id = self._album_model.connect_after( "items-changed", self._on_model_items_changed) self._disc_list_box.bind_model(self._album_model, self._create_widget) self._album_model.items_changed(0, 0, 0) @GObject.Property( type=object, default=None, flags=GObject.ParamFlags.READWRITE) def active_coreobject(self) -> Optional[Union[CoreAlbum, CoreArtist]]: """Get the current CoreObject. active_coreobject is used to set the Player playlist AlbumWidget can be used to display an Album in AlbumsView or ArtistsView. In the former case, there is no need to set it: it's already the corealbum. In the later case, the active_coreobject is an artist. It needs to be set. :returns: The current CoreObject :rtype: Union[CoreAlbum, CoreArtist] """ try: return self._active_coreobject except AttributeError: return self.props.corealbum @active_coreobject.setter # type:ignore def active_coreobject( self, coreobject: Union[CoreAlbum, CoreArtist]) -> None: """Update CoreOject used for AlbumWidget. :param CoreAlbum corealbum: The CoreAlbum object """ self._active_coreobject = coreobject def _create_widget(self, disc: CoreDisc) -> DiscBox: disc_box = DiscBox(self._application, self._corealbum, disc) disc_box.connect('song-activated', self._song_activated) return disc_box def _on_model_items_changed( self, model: Gtk.SortListModel, position: int, removed: int, added: int) -> None: n_items: int = model.get_n_items() if n_items == 1: discbox = self._disc_list_box.get_row_at_index(0) discbox.props.show_disc_label = False else: for i in range(n_items): discbox = self._disc_list_box.get_row_at_index(i) discbox.props.show_disc_label = True empty_album = (n_items == 0) self._play_button.props.sensitive = not empty_album self._menu_button.props.sensitive = not empty_album def _set_composer_label(self) -> None: composer = self._corealbum.props.composer show = False if composer: self._composer_label.props.label = composer self._composer_label.props.tooltip_text = composer show = True self._composer_label.props.visible = show def _on_release_info_changed( self, klass: CoreAlbum, value: Optional[GObject.ParamSpecString]) -> None: if not self._corealbum: return mins = (self._corealbum.props.duration // 60) + 1 mins_text = ngettext("{} minute", "{} minutes", mins).format(mins) year = self._corealbum.props.year if year is None: label = mins_text else: label = f"{year}, {mins_text}" self._released_label.props.label = label def _play(self, coresong: Optional[CoreSong] = None) -> None: signal_id = 0 def _on_playlist_loaded(klass, playlist_type): self._player.play(coresong) self._coremodel.disconnect(signal_id) signal_id = self._coremodel.connect( "playlist-loaded", _on_playlist_loaded) self._coremodel.props.active_core_object = self.props.active_coreobject def _song_activated( self, widget: Gtk.Widget, song_widget: SongWidget) -> None: self._play(song_widget.props.coresong) def _on_add_favorites_action( self, action: Gio.SimpleAction, data: Optional[GLib.Variant]) -> None: if self._corealbum: for coredisc in self._corealbum.props.model: for coresong in coredisc.props.model: if not coresong.props.favorite: coresong.props.favorite = True def _on_add_playlist_action( self, action: Gio.SimpleAction, data: Optional[GLib.Variant]) -> None: if not self._corealbum: return selected_songs = [ song for disc in self._corealbum.props.model for song in disc.props.model] self._playlist_dialog = PlaylistDialog( self._application, selected_songs) active_window = self._application.props.active_window self._playlist_dialog.present(active_window) def _on_play_action( self, action: Gio.SimpleAction, data: Optional[GLib.Variant]) -> None: self._play() @Gtk.Template.Callback() def _on_play_button_clicked(self, button: Gtk.Button) -> None: # When the coreobject is an artist, the first song of the album # needs to be loaded. Otherwise, the first album of the artist # is played. coresong: Optional[CoreSong] = None if self.props.active_coreobject != self.props.corealbum: coredisc = self.props.corealbum.props.model[0] coresong = coredisc.props.model[0] self._play(coresong) 07070100000077000081A400000000000000000000000166968E4E00000D9D000000000000000000000000000000000000003A00000000gnome-music-46.1/gnomemusic/widgets/artistalbumswidget.py# Copyright (c) 2016 The GNOME Music Developers # # GNOME Music 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. # # GNOME Music 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 GNOME Music; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # # The GNOME Music authors hereby grant permission for non-GPL compatible # GStreamer plugins to be used and distributed together with GStreamer # and GNOME Music. This permission is above and beyond the permissions # granted by the GPL license by which GNOME Music is covered. If you # modify this code, you may extend this exception to your version of the # code, but you are not obligated to do so. If you do not wish to do so, # delete this exception statement from your version. from __future__ import annotations from typing import Optional import typing from gi.repository import GObject, Gtk from gnomemusic.coreartist import CoreArtist from gnomemusic.widgets.albumwidget import AlbumWidget if typing.TYPE_CHECKING: from gnomemusic.application import Application @Gtk.Template(resource_path="/org/gnome/Music/ui/ArtistAlbumsWidget.ui") class ArtistAlbumsWidget(Gtk.Box): """Widget containing all albums by an artist A vertical list of AlbumWidget, containing all the albums by one artist. Contains the model for all the song widgets of the album(s). """ __gtype_name__ = 'ArtistAlbumsWidget' _listbox = Gtk.Template.Child() def __init__(self, application: Application) -> None: """Initialize the ArtistAlbumsWidget :param Aplication application: The Application object """ super().__init__() self._application = application self._coreartist: Optional[CoreArtist] = None def _update_model(self) -> None: if self._coreartist is not None: self._listbox.bind_model( self._coreartist.props.model, self._add_album) def _add_album(self, corealbum): row = Gtk.ListBoxRow() row.props.selectable = False row.props.activatable = False row.props.focusable = False widget = AlbumWidget(self._application) widget.props.corealbum = corealbum widget.props.active_coreobject = self._coreartist widget.props.show_artist_label = False row.set_child(widget) return row @GObject.Property( type=CoreArtist, flags=GObject.ParamFlags.READWRITE, default=None) def coreartist(self) -> CoreArtist: """Current CoreArtist object :param CoreArtist coreartist: The CoreArtist object :rtype: CoreArtist """ return self._coreartist @coreartist.setter # type: ignore def coreartist(self, coreartist: CoreArtist) -> None: """Sets the CoreArtist for the widget :param CoreArtist coreartist: The CoreArtist to use """ if self._coreartist is not coreartist: self._coreartist = coreartist self._update_model() 07070100000078000081A400000000000000000000000166968E4E00000564000000000000000000000000000000000000003C00000000gnome-music-46.1/gnomemusic/widgets/artistnavigationpage.py# Copyright 2024 The GNOME Music developers # # SPDX-License-Identifier: GPL-2.0-or-later WITH GStreamer-exception-2008 from __future__ import annotations import typing from gi.repository import Adw, GObject, Gtk from gnomemusic.coreartist import CoreArtist from gnomemusic.widgets.artistalbumswidget import ArtistAlbumsWidget if typing.TYPE_CHECKING: from gnomemusic.application import Application @Gtk.Template(resource_path='/org/gnome/Music/ui/ArtistNavigationPage.ui') class ArtistNavigationPage(Adw.NavigationPage): """ArtistNavigationPage """ __gtype_name__ = "ArtistNavigationPage" _artist_scrolled_window = Gtk.Template.Child() show_artist_label = GObject.Property(type=bool, default=True) def __init__( self, application: Application, coreartist: CoreArtist) -> None: """Initialize the AlbumNavigationPage. :param GtkApplication application: The application object :param CoreArtist coreartist: The artist albums to show """ super().__init__() self._application = application self._coreartist = coreartist self.props.title = self._coreartist.props.artist artist_albums = ArtistAlbumsWidget(self._application) artist_albums.props.coreartist = self._coreartist self._artist_scrolled_window.props.child = artist_albums 07070100000079000081A400000000000000000000000166968E4E00000AFD000000000000000000000000000000000000003800000000gnome-music-46.1/gnomemusic/widgets/artistsearchtile.py# Copyright 2019 The GNOME Music developers # # GNOME Music 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. # # GNOME Music 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 GNOME Music; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # # The GNOME Music authors hereby grant permission for non-GPL compatible # GStreamer plugins to be used and distributed together with GStreamer # and GNOME Music. This permission is above and beyond the permissions # granted by the GPL license by which GNOME Music is covered. If you # modify this code, you may extend this exception to your version of the # code, but you are not obligated to do so. If you do not wish to do so, # delete this exception statement from your version. from gi.repository import GObject, Gtk from gnomemusic.coreartist import CoreArtist from gnomemusic.coverpaintable import CoverPaintable from gnomemusic.utils import ArtSize, DefaultIconType from gnomemusic.widgets.twolinetip import TwoLineTip @Gtk.Template(resource_path="/org/gnome/Music/ui/ArtistSearchTile.ui") class ArtistSearchTile(Gtk.FlowBoxChild): """Artist search tile Contains artist art and name """ __gtype_name__ = "ArtistSearchTile" _artist_label = Gtk.Template.Child() _cover_image = Gtk.Template.Child() coreartist = GObject.Property( type=CoreArtist, default=None, flags=GObject.ParamFlags.READWRITE) def __init__(self, coreartist): """Initialize the ArtistSearchTile :param CoreArtist coreartist: The coreartist to use """ super().__init__() self.props.coreartist = coreartist self._cover_image.set_size_request( ArtSize.MEDIUM.width, ArtSize.MEDIUM.height) self._cover_image.props.paintable = CoverPaintable( self, ArtSize.MEDIUM, DefaultIconType.ARTIST) self._cover_image.props.paintable.props.coreobject = coreartist self._tooltip = TwoLineTip() self._tooltip.props.subtitle_visible = False artist = self.props.coreartist.props.artist self._artist_label.props.label = artist self._tooltip.props.title = artist @Gtk.Template.Callback() def _on_tooltip_query(self, widget, x, y, kb, tooltip, data=None): tooltip.set_custom(self._tooltip) return True 0707010000007A000081A400000000000000000000000166968E4E00000749000000000000000000000000000000000000004300000000gnome-music-46.1/gnomemusic/widgets/artistssearchnavigationpage.py# Copyright 2024 The GNOME Music developers # # SPDX-License-Identifier: GPL-2.0-or-later WITH GStreamer-exception-2008 from __future__ import annotations from typing import Any import typing from gi.repository import Adw, Gtk from gnomemusic.widgets.artistnavigationpage import ArtistNavigationPage from gnomemusic.widgets.artistsearchtile import ArtistSearchTile if typing.TYPE_CHECKING: from gnomemusic.coreartist import CoreArtist from gnomemusic.application import Application @Gtk.Template( resource_path="/org/gnome/Music/ui/ArtistsSearchNavigationPage.ui") class ArtistsSearchNavigationPage(Adw.NavigationPage): """ArtistsSearchNavigationPage """ __gtype_name__ = "ArtistsSearchNavigationPage" _all_artists_flowbox = Gtk.Template.Child() def __init__( self, application: Application, model: Gtk.FlattenListModel) -> None: """Initialize the ArtistsSearchNavigationPage. :param Application application: The application object :param Gtk.FlattenListModel model: The model to show """ super().__init__() self._application = application window = self._application.props.window self._navigation_view = window.props.navigation_view self._all_artists_flowbox.bind_model( model, self._create_artist_widget) def _create_artist_widget( self, coreartist: CoreArtist) -> ArtistSearchTile: artist_tile = ArtistSearchTile(coreartist) return artist_tile @Gtk.Template.Callback() def _on_artist_activated( self, flowbox: Gtk.FlowBox, tile: ArtistSearchTile, user_data: Any = None) -> None: coreartist = tile.props.coreartist artist_page = ArtistNavigationPage(self._application, coreartist) self._navigation_view.push(artist_page) 0707010000007B000081A400000000000000000000000166968E4E00000B9C000000000000000000000000000000000000003200000000gnome-music-46.1/gnomemusic/widgets/artisttile.py# Copyright 2019 The GNOME Music developers # # GNOME Music 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. # # GNOME Music 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 GNOME Music; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # # The GNOME Music authors hereby grant permission for non-GPL compatible # GStreamer plugins to be used and distributed together with GStreamer # and GNOME Music. This permission is above and beyond the permissions # granted by the GPL license by which GNOME Music is covered. If you # modify this code, you may extend this exception to your version of the # code, but you are not obligated to do so. If you do not wish to do so, # delete this exception statement from your version. from __future__ import annotations from typing import Optional from gi.repository import GObject, Gtk from gnomemusic.coreartist import CoreArtist from gnomemusic.coverpaintable import CoverPaintable from gnomemusic.utils import ArtSize, DefaultIconType @Gtk.Template(resource_path='/org/gnome/Music/ui/ArtistTile.ui') class ArtistTile(Gtk.Box): """Row for sidebars Contains a label and an optional checkbox. """ __gtype_name__ = 'ArtistTile' _cover_image = Gtk.Template.Child() _label = Gtk.Template.Child() text = GObject.Property(type=str, default='') def __init__(self) -> None: """Initialise ArtistTile""" super().__init__() self._coreartist: Optional[CoreArtist] = None self._cover_image.set_size_request( ArtSize.XSMALL.width, ArtSize.XSMALL.height) self._cover_image.props.paintable = CoverPaintable( self, ArtSize.XSMALL, DefaultIconType.ARTIST) self.bind_property('text', self._label, 'label') self.bind_property('text', self._label, 'tooltip-text') @GObject.Property( type=CoreArtist, flags=GObject.ParamFlags.READWRITE, default=None) def coreartist(self) -> CoreArtist: """CoreArtist to use for ArtistTile :returns: The artist object :rtype: CoreArtist """ return self._coreartist @coreartist.setter # type: ignore def coreartist(self, coreartist: CoreArtist) -> None: """CoreArtist setter :param CoreArtist coreartist: The coreartist to use """ self._coreartist = coreartist self._cover_image.props.paintable.props.coreobject = coreartist self.props.text = coreartist.props.artist 0707010000007C000081A400000000000000000000000166968E4E00000D8E000000000000000000000000000000000000002F00000000gnome-music-46.1/gnomemusic/widgets/discbox.py# Copyright (c) 2021 The GNOME Music Developers # # GNOME Music 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. # # GNOME Music 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 GNOME Music; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # # The GNOME Music authors hereby grant permission for non-GPL compatible # GStreamer plugins to be used and distributed together with GStreamer # and GNOME Music. This permission is above and beyond the permissions # granted by the GPL license by which GNOME Music is covered. If you # modify this code, you may extend this exception to your version of the # code, but you are not obligated to do so. If you do not wish to do so, # delete this exception statement from your version. from __future__ import annotations from gettext import gettext as _ import typing from gi.repository import Gdk, Gio, GObject, Gtk from gnomemusic.widgets.songwidget import SongWidget from gnomemusic.widgets.songwidgetmenu import SongWidgetMenu if typing.TYPE_CHECKING: from gnomemusic.application import Application from gnomemusic.corealbum import CoreAlbum from gnomemusic.coredisc import CoreDisc @Gtk.Template(resource_path='/org/gnome/Music/ui/DiscBox.ui') class DiscBox(Gtk.ListBoxRow): """A widget which compromises one disc DiscBox contains a disc label for the disc number on top with a GtkListBox beneath. """ __gtype_name__ = 'DiscBox' _disc_label = Gtk.Template.Child() _list_box = Gtk.Template.Child() __gsignals__ = { 'song-activated': (GObject.SignalFlags.RUN_FIRST, None, (Gtk.Widget,)) } show_disc_label = GObject.Property(type=bool, default=False) def __init__( self, application: Application, corealbum: CoreAlbum, coredisc: CoreDisc) -> None: """Initialize :param Application coredisc: The Application object :param CoreAlbum corealbum: The corealbum of the coredisc :param CoreDisc coredisc: The CoreDisc object to use """ super().__init__() self._application = application self._corealbum = corealbum self._coredisc = coredisc self._model: Gio.ListModel = coredisc.props.model disc_nr: int = coredisc.props.disc_nr self._disc_label.props.label = _("Disc {}").format(disc_nr) self.bind_property( 'show-disc-label', self._disc_label, 'visible', GObject.BindingFlags.SYNC_CREATE) self._list_box.bind_model(self._model, self._create_widget) def _create_widget(self, coresong): song_widget = SongWidget(coresong) song_widget.props.menu = SongWidgetMenu( self._application, song_widget, self._corealbum) return song_widget @Gtk.Template.Callback() def _song_activated( self, list_box: Gtk.ListBox, song_widget: SongWidget) -> bool: self.emit("song-activated", song_widget) return Gdk.EVENT_STOP 0707010000007D000081A400000000000000000000000166968E4E00000E87000000000000000000000000000000000000003100000000gnome-music-46.1/gnomemusic/widgets/headerbar.py# Copyright 2018 The GNOME Music developers # # GNOME Music 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. # # GNOME Music 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 GNOME Music; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # # The GNOME Music authors hereby grant permission for non-GPL compatible # GStreamer plugins to be used and distributed together with GStreamer # and GNOME Music. This permission is above and beyond the permissions # granted by the GPL license by which GNOME Music is covered. If you # modify this code, you may extend this exception to your version of the # code, but you are not obligated to do so. If you do not wish to do so, # delete this exception statement from your version. from enum import IntEnum from gi.repository import Adw, GObject, Gtk @Gtk.Template(resource_path="/org/gnome/Music/ui/HeaderBar.ui") class HeaderBar(Adw.Bin): """Headerbar of the application""" class State(IntEnum): """States the Headerbar can have""" MAIN = 0 CHILD = 1 SEARCH = 2 EMPTY = 3 __gtype_name__ = "HeaderBar" _search_button = Gtk.Template.Child() _headerbar = Gtk.Template.Child() _menu_button = Gtk.Template.Child() search_mode_active = GObject.Property(type=bool, default=False) stack = GObject.Property(type=Adw.ViewStack) def __init__(self, application): """Initialize Headerbar :param Application application: Application object """ super().__init__() self._stack_switcher = Adw.ViewSwitcher( focusable=False, halign="center", policy=Adw.ViewSwitcherPolicy.WIDE) self.bind_property( "stack", self._stack_switcher, "stack", GObject.BindingFlags.BIDIRECTIONAL | GObject.BindingFlags.SYNC_CREATE) self.bind_property( "search-mode-active", self._search_button, "active", GObject.BindingFlags.BIDIRECTIONAL | GObject.BindingFlags.SYNC_CREATE) @GObject.Property def state(self): """State of the widget :returns: Widget state :rtype: HeaderBar.State """ return self._state @state.setter # type: ignore def state(self, value): """Set state of the of widget This influences the look and functionality of the headerbar. :param HeaderBar.State value: Widget state """ self._state = value self._update() search_visible = self.props.state != HeaderBar.State.SEARCH self._search_button.props.visible = search_visible if value == HeaderBar.State.EMPTY: self._search_button.props.sensitive = False self._stack_switcher.hide() else: self._search_button.props.sensitive = True self._stack_switcher.show() def _update(self): if self.props.state != HeaderBar.State.MAIN: self._headerbar.props.title_widget = None else: self._headerbar.props.title_widget = self._stack_switcher self._menu_button.props.visible = ( self.props.state in [HeaderBar.State.MAIN, HeaderBar.State.EMPTY] ) 0707010000007E000081A400000000000000000000000166968E4E00001EA7000000000000000000000000000000000000003500000000gnome-music-46.1/gnomemusic/widgets/playertoolbar.py# Copyright © 2018 The GNOME Music Developers # # GNOME Music 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. # # GNOME Music 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 GNOME Music; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # # The GNOME Music authors hereby grant permission for non-GPL compatible # GStreamer plugins to be used and distributed together with GStreamer # and GNOME Music. This permission is above and beyond the permissions # granted by the GPL license by which GNOME Music is covered. If you # modify this code, you may extend this exception to your version of the # code, but you are not obligated to do so. If you do not wish to do so, # delete this exception statement from your version. from gettext import gettext as _ from gi.repository import Gio, GLib, GObject, Gtk from gnomemusic.coverpaintable import CoverPaintable from gnomemusic.gstplayer import Playback from gnomemusic.utils import ArtSize, DefaultIconType from gnomemusic.player import Player, RepeatMode from gnomemusic.widgets.smoothscale import SmoothScale # noqa: F401 from gnomemusic.widgets.twolinetip import TwoLineTip import gnomemusic.utils as utils @Gtk.Template(resource_path='/org/gnome/Music/ui/PlayerToolbar.ui') class PlayerToolbar(Gtk.ActionBar): """Main Player widget object Contains the ui of playing a song with Music. """ __gtype_name__ = 'PlayerToolbar' _artist_label = Gtk.Template.Child() _cover_image = Gtk.Template.Child() _duration_label = Gtk.Template.Child() _next_button = Gtk.Template.Child() _play_button = Gtk.Template.Child() _play_pause_image = Gtk.Template.Child() _prev_button = Gtk.Template.Child() _progress_scale = Gtk.Template.Child() _progress_time_label = Gtk.Template.Child() _repeat_menu_button = Gtk.Template.Child() _repeat_image = Gtk.Template.Child() _song_info_box = Gtk.Template.Child() _title_label = Gtk.Template.Child() def __init__(self): super().__init__() self._player = None self._cover_image.set_size_request( ArtSize.SMALL.width, ArtSize.SMALL.height) self._cover_image.props.paintable = CoverPaintable( self, ArtSize.SMALL, DefaultIconType.ALBUM) self._tooltip = TwoLineTip() repeat_menu = Gio.Menu.new() for mode in RepeatMode: item = Gio.MenuItem.new() item.set_label(mode.label) item.set_action_and_target_value( "playertoolbar.repeat", GLib.Variant("s", str(mode.value))) repeat_menu.append_item(item) self._repeat_menu_button.props.menu_model = repeat_menu self._repeat_action: Gio.SimpleAction = Gio.SimpleAction.new_stateful( "repeat", GLib.VariantType.new("s"), GLib.Variant("s", "")) action_group = Gio.SimpleActionGroup() action_group.add_action(self._repeat_action) self.insert_action_group("playertoolbar", action_group) # FIXME: This is a workaround for not being able to pass the player # object via init when using Gtk.Builder. @GObject.Property(type=Player, default=None) def player(self): """The GstPlayer object used :return: player object :rtype: GstPlayer """ return self._player @player.setter # type: ignore def player(self, player): """Set the GstPlayer object used :param GstPlayer player: The GstPlayer to use """ if (player is None or (self._player is not None and self._player != player)): return self._player = player self._progress_scale.props.player = self._player self._player.connect('song-changed', self._update_view) self._player.connect( 'notify::repeat-mode', self._on_repeat_mode_changed) self._player.connect('notify::state', self._sync_playing) repeat_mode = self._player.props.repeat_mode self._repeat_action.set_state( GLib.Variant("s", str(repeat_mode.value))) self._repeat_action.connect("activate", self._repeat_menu_changed) self._sync_repeat_image() def _repeat_menu_changed( self, action: Gio.SimpleAction, new_state: GLib.Variant) -> None: self._repeat_action.set_state(new_state) new_mode = new_state.get_string() self._player.props.repeat_mode = RepeatMode(int(new_mode)) @Gtk.Template.Callback() def _on_progress_value_changed(self, progress_scale): seconds = int(progress_scale.get_value() / 60) self._progress_time_label.set_label(utils.seconds_to_string(seconds)) @Gtk.Template.Callback() def _on_prev_button_clicked(self, button): self._player.previous() @Gtk.Template.Callback() def _on_play_button_clicked(self, button): self._player.play_pause() @Gtk.Template.Callback() def _on_next_button_clicked(self, button): self._player.next() def _on_repeat_mode_changed(self, klass, param): self._sync_repeat_image() self._sync_repeat_action() self._sync_prev_next() def _sync_repeat_image(self) -> None: self._repeat_image.set_from_icon_name( self._player.props.repeat_mode.icon) def _sync_repeat_action(self) -> None: new_state = self._player.props.repeat_mode.value self._repeat_action.set_state( GLib.Variant("s", str(new_state))) def _sync_playing(self, player, state): if (self._player.props.state == Playback.STOPPED and not self._player.props.has_next and not self._player.props.has_previous): self.props.revealed = False return self.props.revealed = True if self._player.props.state == Playback.PLAYING: icon_name = "media-playback-pause-symbolic" tooltip = _("Pause") else: icon_name = "media-playback-start-symbolic" tooltip = _("Play") if self._play_pause_image.props.icon_name != icon_name: self._play_pause_image.props.icon_name = icon_name self._play_button.set_tooltip_text(tooltip) def _sync_prev_next(self): self._next_button.props.sensitive = self._player.props.has_next self._prev_button.props.sensitive = self._player.props.has_previous def _update_view(self, player): """Update all visual elements on song change :param Player player: The main player object """ coresong = player.props.current_song self._duration_label.props.label = utils.seconds_to_string( coresong.props.duration) self._progress_time_label.props.label = "0:00" self._play_button.set_sensitive(True) self._sync_prev_next() artist = coresong.props.artist title = coresong.props.title self._title_label.props.label = title self._artist_label.props.label = artist self._tooltip.props.title = title self._tooltip.props.subtitle = artist self._cover_image.props.paintable.props.coreobject = coresong @Gtk.Template.Callback() def _on_tooltip_query(self, widget, x, y, kb, tooltip, data=None): tooltip.set_custom(self._tooltip) return True 0707010000007F000081A400000000000000000000000166968E4E00001AF5000000000000000000000000000000000000003800000000gnome-music-46.1/gnomemusic/widgets/playlistcontrols.py# Copyright 2018 The GNOME Music Developers # # GNOME Music 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. # # GNOME Music 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 GNOME Music; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # # The GNOME Music authors hereby grant permission for non-GPL compatible # GStreamer plugins to be used and distributed together with GStreamer # and GNOME Music. This permission is above and beyond the permissions # granted by the GPL license by which GNOME Music is covered. If you # modify this code, you may extend this exception to your version of the # code, but you are not obligated to do so. If you do not wish to do so, # delete this exception statement from your version. import gettext from gi.repository import Gdk, GObject, Gio, Gtk from gnomemusic.grilowrappers.grltrackerplaylists import Playlist from gnomemusic.playlisttoast import PlaylistToast @Gtk.Template(resource_path='/org/gnome/Music/ui/PlaylistControls.ui') class PlaylistControls(Gtk.Box): """Widget holding the playlist controls""" __gtype_name__ = "PlaylistControls" _name_stack = Gtk.Template.Child() _name_label = Gtk.Template.Child() _play_button = Gtk.Template.Child() _rename_controller = Gtk.Template.Child() _rename_entry = Gtk.Template.Child() _rename_done_button = Gtk.Template.Child() _songs_count_label = Gtk.Template.Child() def __init__(self): super().__init__() self._application = None self._playlist = None self._count_id = 0 self._binding_count = None self._delete_action = Gio.SimpleAction.new("playlist_delete", None) self._delete_action.connect("activate", self._on_delete_action) self._play_action = Gio.SimpleAction.new("playlist_play", None) self._rename_action = Gio.SimpleAction.new("playlist_rename", None) self._rename_action.connect("activate", self._enable_rename_playlist) # FIXME: This is a workaround for not being able to pass the application # object via init when using Gtk.Builder. @GObject.Property(default=None) def application(self): """The Application object used :return: application object :rtype: Application """ return self._application @application.setter # type: ignore def application(self, application): """Set the Application object used :param Application application: The Application to use """ if (application is None or (self._application is not None and self._application != application)): return self._application = application self._coremodel = application.props.coremodel self._player = application.props.player self._window = application.props.window self._window.add_action(self._delete_action) self._window.add_action(self._play_action) self._window.add_action(self._rename_action) def _on_delete_action(self, menutime, data=None): active_core_object = self._coremodel.props.active_core_object if (active_core_object is not None and active_core_object == self.props.playlist): self._player.stop() self._window.set_player_visible(False) PlaylistToast(self._application, self.props.playlist) @Gtk.Template.Callback() def _on_play_button_clicked(self, button: Gtk.Button) -> None: self._play_action.activate() @Gtk.Template.Callback() def _on_rename_entry_changed(self, selection): selection_length = selection.props.text_length self._rename_done_button.props.sensitive = selection_length > 0 @Gtk.Template.Callback() def _on_rename_entry_key_pressed(self, controller, keyval, keycode, state): if keyval == Gdk.KEY_Escape: self._disable_rename_playlist() @Gtk.Template.Callback() def _on_playlist_renamed(self, widget): new_name = self._rename_entry.props.text if not new_name: return self.props.playlist.props.title = new_name self._disable_rename_playlist() def _on_songs_count_changed(self, klass, data=None): self._songs_count_label.props.label = gettext.ngettext( "{} Song", "{} Songs", self.props.playlist.count).format( self.props.playlist.count) empty_pl = (self.props.playlist.props.count == 0) self._play_button.props.sensitive = not empty_pl self._play_action.props.enabled = not empty_pl def _enable_rename_playlist(self, menuitem, data=None): self._name_stack.props.visible_child_name = "renaming_dialog" self._rename_entry.props.text = self.props.playlist.props.title self._rename_entry.grab_focus() def _disable_rename_playlist(self): """Disables rename button and entry""" self._name_stack.props.visible_child = self._name_label @GObject.Property(type=bool, default=False) def rename_active(self): """Indicate if renaming dialog is active :return: Renaming dialog active :rtype: bool """ return self._name_stack.props.visible_child_name == "renaming_dialog" @GObject.Property( type=Playlist, default=None, flags=GObject.ParamFlags.READWRITE) def playlist(self): """Playlist property getter. :returns: current playlist :rtype: Playlist """ return self._playlist @playlist.setter # type: ignore def playlist(self, new_playlist): """Playlist property setter. :param Playlist new_playlist: new playlist """ if self._count_id > 0: self._playlist.disconnect(self._count_id) self._count_id = 0 self._binding_count.unbind() self._playlist = new_playlist self._disable_rename_playlist() self._delete_action.props.enabled = not self._playlist.props.is_smart self._rename_action.props.enabled = not self._playlist.props.is_smart self._binding_count = self._playlist.bind_property( "title", self._name_label, "label", GObject.BindingFlags.SYNC_CREATE) self._count_id = self._playlist.connect( "notify::count", self._on_songs_count_changed) self._on_songs_count_changed(None) 07070100000080000081A400000000000000000000000166968E4E00001702000000000000000000000000000000000000003600000000gnome-music-46.1/gnomemusic/widgets/playlistdialog.py# Copyright 2019 The GNOME Music Developers # # GNOME Music 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. # # GNOME Music 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 GNOME Music; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # # The GNOME Music authors hereby grant permission for non-GPL compatible # GStreamer plugins to be used and distributed together with GStreamer # and GNOME Music. This permission is above and beyond the permissions # granted by the GPL license by which GNOME Music is covered. If you # modify this code, you may extend this exception to your version of the # code, but you are not obligated to do so. If you do not wish to do so, # delete this exception statement from your version. from __future__ import annotations from typing import List, Optional import typing from gi.repository import Adw, Gtk from gnomemusic.grilowrappers.grltrackerplaylists import Playlist from gnomemusic.widgets.playlistdialogrow import PlaylistDialogRow if typing.TYPE_CHECKING: from gnomemusic.application import Application from gnomemusic.coregrilo import CoreGrilo from gnomemusic.coresong import CoreSong @Gtk.Template(resource_path="/org/gnome/Music/ui/PlaylistDialog.ui") class PlaylistDialog(Adw.Dialog): """Dialog for adding items to a playlist""" __gtype_name__ = 'PlaylistDialog' _add_playlist_stack = Gtk.Template.Child() _bottom_bar = Gtk.Template.Child() _normal_box = Gtk.Template.Child() _empty_box = Gtk.Template.Child() _listbox = Gtk.Template.Child() _cancel_button = Gtk.Template.Child() _select_button = Gtk.Template.Child() _toolbar_view = Gtk.Template.Child() _new_playlist_button = Gtk.Template.Child() _new_playlist_entry = Gtk.Template.Child() _first_playlist_button = Gtk.Template.Child() _first_playlist_entry = Gtk.Template.Child() def __init__( self, application: Application, selected_songs: List[CoreSong]) -> None: """Initialize PlaylistDialog :param Application application: The application object :param List[CoreSong] selected_songs: A list of songs to be added """ super().__init__() self._coregrilo: CoreGrilo = application.props.coregrilo self._selected_playlist: Optional[Playlist] = None self._selected_songs = selected_songs self._add_playlist_button = None self._add_playlist_entry = None self._user_playlists_available = False coremodel = application.props.coremodel self._listbox.bind_model( coremodel.props.user_playlists_sort, self._create_playlist_row) self._set_view() def _set_view(self): if self._user_playlists_available: self._normal_box.show() self._add_playlist_stack.props.visible_child = self._normal_box self._add_playlist_button = self._new_playlist_button self._add_playlist_entry = self._new_playlist_entry self._toolbar_view.props.reveal_bottom_bars = True else: self._empty_box.show() self._add_playlist_stack.props.visible_child = self._empty_box self._add_playlist_button = self._first_playlist_button self._add_playlist_entry = self._first_playlist_entry self._toolbar_view.props.reveal_bottom_bars = False def _create_playlist_row(self, playlist): """Adds (non-smart only) playlists to the model""" self._user_playlists_available = True self._set_view() row = PlaylistDialogRow(playlist) return row @Gtk.Template.Callback() def _on_selection(self, select_button): self._selected_playlist.add_songs(self._selected_songs) self.force_close() @Gtk.Template.Callback() def _on_cancel_button_clicked(self, cancel_button): self.force_close() @Gtk.Template.Callback() def _on_selected_rows_changed(self, klass): self._add_playlist_entry.props.text = "" self._add_playlist_button.props.sensitive = False selected_row = self._listbox.get_selected_row() if selected_row is not None: self._selected_playlist = selected_row.props.playlist self._select_button.props.sensitive = selected_row is not None for row in self._listbox: row.props.selected = (row == selected_row) @Gtk.Template.Callback() def _on_editing_done(self, sender, data=None): def select_and_close_dialog(playlist): for row in self._listbox: if row.props.playlist == playlist: self._listbox.select_row(row) break self._selected_playlist.add_songs(self._selected_songs) self.force_close() text = self._add_playlist_entry.props.text if text: self._coregrilo.create_playlist(text, select_and_close_dialog) @Gtk.Template.Callback() def _on_add_playlist_entry_changed(self, editable, data=None): if editable.props.text: self._add_playlist_button.props.sensitive = True else: self._add_playlist_button.props.sensitive = False @Gtk.Template.Callback() def _on_add_playlist_entry_focused( self, controller: Gtk.EventControllerFocus) -> None: self._listbox.unselect_all() 07070100000081000081A400000000000000000000000166968E4E00000837000000000000000000000000000000000000003900000000gnome-music-46.1/gnomemusic/widgets/playlistdialogrow.py# Copyright 2019 The GNOME Music Developers # # GNOME Music 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. # # GNOME Music 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 GNOME Music; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # # The GNOME Music authors hereby grant permission for non-GPL compatible # GStreamer plugins to be used and distributed together with GStreamer # and GNOME Music. This permission is above and beyond the permissions # granted by the GPL license by which GNOME Music is covered. If you # modify this code, you may extend this exception to your version of the # code, but you are not obligated to do so. If you do not wish to do so, # delete this exception statement from your version. from gi.repository import GObject, Gtk from gnomemusic.grilowrappers.grltrackerplaylists import Playlist @Gtk.Template(resource_path="/org/gnome/Music/ui/PlaylistDialogRow.ui") class PlaylistDialogRow(Gtk.ListBoxRow): __gtype_name__ = "PlaylistDialogRow" playlist = GObject.Property(type=Playlist, default=None) selected = GObject.Property(type=bool, default=False) _label = Gtk.Template.Child() _selection_icon = Gtk.Template.Child() def __init__(self, playlist): """Create a row of the PlaylistDialog :param Playlist playlist: the associated playlist """ super().__init__() self.props.playlist = playlist self._label.props.label = playlist.props.title self.bind_property( "selected", self._selection_icon, "visible", GObject.BindingFlags.SYNC_CREATE) 07070100000082000081A400000000000000000000000166968E4E0000152F000000000000000000000000000000000000003700000000gnome-music-46.1/gnomemusic/widgets/playlistswidget.py# Copyright 2020 The GNOME Music developers # # GNOME Music 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. # # GNOME Music 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 GNOME Music; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # # The GNOME Music authors hereby grant permission for non-GPL compatible # GStreamer plugins to be used and distributed together with GStreamer # and GNOME Music. This permission is above and beyond the permissions # granted by the GPL license by which GNOME Music is covered. If you # modify this code, you may extend this exception to your version of the # code, but you are not obligated to do so. If you do not wish to do so, # delete this exception statement from your version. from __future__ import annotations import typing from gi.repository import GObject, Gtk from gnomemusic.widgets.playlistcontrols import PlaylistControls # noqa: F401 from gnomemusic.widgets.songwidget import SongWidget from gnomemusic.widgets.songwidgetmenu import SongWidgetMenu if typing.TYPE_CHECKING: from gnomemusic.application import Application from gnomemusic.coresong import CoreSong from gnomemusic.grilowrappers.grltrackerplaylists import Playlist from gnomemusic.views.playlistsview import PlaylistsView @Gtk.Template(resource_path="/org/gnome/Music/ui/PlaylistsWidget.ui") class PlaylistsWidget(Gtk.Box): """Widget to display the playlist controls and list""" __gtype_name__ = "PlaylistsWidget" _pl_ctrls = Gtk.Template.Child() _songs_list = Gtk.Template.Child() def __init__( self, application: Application, playlists_view: PlaylistsView) -> None: """Initialize the PlaylistsWidget. :param Application application: The application object :param PlaylistsView playlists_view: The parent view """ super().__init__() self._application = application self._window = application.props.window self._coremodel = application.props.coremodel self._player = application.props.player self._playlists_view = playlists_view self._playlists_view.connect( "notify::current-playlist", self._on_current_playlist_changed) self._pl_ctrls.props.application = application playlist_play_action = self._window.lookup_action("playlist_play") playlist_play_action.connect("activate", self._on_play_playlist) self._coremodel.connect( "smart-playlist-change", self._on_smart_playlist_change) def _on_current_playlist_changed(self, playlists_view, value): """Update view with content from selected playlist""" playlist = self._playlists_view.props.current_playlist self._songs_list.bind_model( playlist.props.model, self._create_song_widget, playlist) if playlist.props.is_smart: playlist.update() self._pl_ctrls.props.playlist = playlist def _create_song_widget( self, coresong: CoreSong, playlist: Playlist) -> Gtk.ListBoxRow: can_dnd = not playlist.props.is_smart song_widget = SongWidget(coresong, can_dnd, True) song_widget.props.show_song_number = False song_widget.props.menu = SongWidgetMenu( self._application, song_widget, playlist) if can_dnd is True: song_widget.connect("widget_moved", self._on_song_widget_moved) return song_widget @Gtk.Template.Callback() def _on_song_activated( self, list_box: Gtk.ListBox, song_widget: SongWidget) -> bool: coresong = song_widget.props.coresong self._play(coresong) return True def _play(self, coresong=None): signal_id = None def _on_playlist_loaded(klass, playlist_type): self._player.play(coresong) self._coremodel.disconnect(signal_id) current_playlist = self._playlists_view.props.current_playlist signal_id = self._coremodel.connect( "playlist-loaded", _on_playlist_loaded) self._coremodel.props.active_core_object = current_playlist def _on_song_widget_moved(self, target, source_position): target_position = target.get_index() current_playlist = self._playlists_view.props.current_playlist current_playlist.reorder(source_position, target_position) def _on_smart_playlist_change(self, coremodel): current_playlist = self._playlists_view.props.current_playlist if (current_playlist is not None and current_playlist.props.is_smart): current_playlist.update() def _on_play_playlist(self, menuitem, data=None): self._play() @GObject.Property( type=bool, default=False, flags=GObject.ParamFlags.READABLE) def rename_active(self): """Indicate if renaming dialog is active""" return self._pl_ctrls.props.rename_active 07070100000083000081A400000000000000000000000166968E4E00000879000000000000000000000000000000000000003400000000gnome-music-46.1/gnomemusic/widgets/playlisttile.py# Copyright 2019 The GNOME Music developers # # GNOME Music 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. # # GNOME Music 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 GNOME Music; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # # The GNOME Music authors hereby grant permission for non-GPL compatible # GStreamer plugins to be used and distributed together with GStreamer # and GNOME Music. This permission is above and beyond the permissions # granted by the GPL license by which GNOME Music is covered. If you # modify this code, you may extend this exception to your version of the # code, but you are not obligated to do so. If you do not wish to do so, # delete this exception statement from your version. from gi.repository import GObject, Gtk from gnomemusic.grilowrappers.grltrackerplaylists import Playlist @Gtk.Template(resource_path="/org/gnome/Music/ui/PlaylistTile.ui") class PlaylistTile(Gtk.ListBoxRow): """Row for sidebars Contains a label and an optional checkbox. """ __gtype_name__ = "PlaylistTile" _icon = Gtk.Template.Child() _label = Gtk.Template.Child() playlist = GObject.Property(type=Playlist, default=None) text = GObject.Property(type=str, default='') def __init__(self, playlist): super().__init__() self.props.playlist = playlist self._icon.props.icon_name = playlist.props.icon_name self.props.playlist.bind_property( "title", self._label, "label", GObject.BindingFlags.SYNC_CREATE) self.props.playlist.bind_property( "title", self._label, "tooltip-text", GObject.BindingFlags.SYNC_CREATE) 07070100000084000081A400000000000000000000000166968E4E000005F6000000000000000000000000000000000000003900000000gnome-music-46.1/gnomemusic/widgets/preferencesdialog.py# Copyright 2024 The GNOME Music developers # # SPDX-License-Identifier: GPL-2.0-or-later WITH GStreamer-exception-2008 from __future__ import annotations import typing from gi.repository import GObject, Gio, Gtk, Adw if typing.TYPE_CHECKING: from gnomemusic.application import Application @Gtk.Template(resource_path='/org/gnome/Music/ui/PreferencesDialog.ui') class PreferencesDialog(Adw.PreferencesDialog): """Main menu preferences dialog """ __gtype_name__ = "PreferencesDialog" _inhibit_suspend_row = Gtk.Template.Child() _repeatmode_row = Gtk.Template.Child() _replay_gain_row = Gtk.Template.Child() def __init__(self, application: Application) -> None: """Initialize the application settings dialog. :param Application application: Application object """ super().__init__() self._settings = application.props.settings self._repeatmode_row.props.selected = self._settings.get_enum("repeat") self._repeatmode_row.connect( "notify::selected", self._update_repeate_mode) self._settings.bind( "replaygain", self._replay_gain_row, "active", Gio.SettingsBindFlags.DEFAULT) self._settings.bind( "inhibit-suspend", self._inhibit_suspend_row, "active", Gio.SettingsBindFlags.DEFAULT) def _update_repeate_mode( self, row: Adw.ComboRow, value: GObject.ParamSpecInt) -> None: self._settings.set_enum("repeat", row.props.selected) 07070100000085000081A400000000000000000000000166968E4E00001118000000000000000000000000000000000000003700000000gnome-music-46.1/gnomemusic/widgets/searchheaderbar.py# Copyright 2019 The GNOME Music developers # # GNOME Music 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. # # GNOME Music 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 GNOME Music; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # # The GNOME Music authors hereby grant permission for non-GPL compatible # GStreamer plugins to be used and distributed together with GStreamer # and GNOME Music. This permission is above and beyond the permissions # granted by the GPL license by which GNOME Music is covered. If you # modify this code, you may extend this exception to your version of the # code, but you are not obligated to do so. If you do not wish to do so, # delete this exception statement from your version. from __future__ import annotations from typing import Any from gettext import gettext as _ from gi.repository import Adw, GObject, Gtk from gnomemusic.search import Search @Gtk.Template(resource_path="/org/gnome/Music/ui/SearchHeaderBar.ui") class SearchHeaderBar(Adw.Bin): """SearcnHeaderbar of the application""" __gtype_name__ = "SearchHeaderBar" _search_header_bar = Gtk.Template.Child() _search_button = Gtk.Template.Child() search_mode_active = GObject.Property(type=bool, default=False) search_state = GObject.Property(type=int, default=0) search_text = GObject.Property(type=str) def __init__(self, application): super().__init__() self._coregrilo = application.props.coregrilo self._entry = Gtk.SearchEntry() self._entry.props.placeholder_text = _( "Search songs, artists and albums") self._entry.props.halign = Gtk.Align.CENTER self._entry.props.visible = True self._entry.props.width_request = 500 self._entry.props.search_delay = 250 self._search_header_bar.props.title_widget = self._entry self.bind_property( "search-mode-active", self._search_button, "active", GObject.BindingFlags.BIDIRECTIONAL | GObject.BindingFlags.SYNC_CREATE) self.bind_property("search-text", self._entry, "text") self.connect("notify::search-text", self._on_search_text_changed) self.connect( "notify::search-mode-active", self._on_search_mode_changed) self.connect("notify::search-state", self._search_state_changed) self._entry.connect("search-changed", self._search_entry_changed) def clear_entry(self) -> None: """Empty the search entry""" self._entry.props.text = "" def _search_entry_changed(self, widget: Gtk.SearchEntry) -> bool: search_term = self._entry.get_text() if search_term != "": self._coregrilo.search(search_term) else: self._set_error_style(False) self.props.search_state = Search.State.NONE return False def _on_search_mode_changed(self, klass, data): if self.props.search_mode_active: self._entry.grab_focus() def _search_state_changed(self, klass, data): search_state = self.props.search_state if search_state == Search.State.NO_RESULT: self._set_error_style(True) elif search_state == Search.State.RESULT: self._set_error_style(False) elif search_state == Search.State.NONE: self._entry.props.text = "" def _set_error_style(self, error): """Adds error state to the search entry. :param bool error: Whether to add error state """ style_context = self._entry.get_style_context() if error: style_context.add_class("error") else: style_context.remove_class("error") def _on_search_text_changed( self, searchheaderbar: SearchHeaderBar, data: Any) -> None: self._entry.set_position(len(self._entry.props.text)) 07070100000086000081A400000000000000000000000166968E4E0000192A000000000000000000000000000000000000003300000000gnome-music-46.1/gnomemusic/widgets/smoothscale.py# Copyright © 2018 The GNOME Music developers # # GNOME Music 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. # # GNOME Music 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 GNOME Music; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # # The GNOME Music authors hereby grant permission for non-GPL compatible # GStreamer plugins to be used and distributed together with GStreamer # and GNOME Music. This permission is above and beyond the permissions # granted by the GPL license by which GNOME Music is covered. If you # modify this code, you may extend this exception to your version of the # code, but you are not obligated to do so. If you do not wish to do so, # delete this exception statement from your version. from gi.repository import GLib, GObject, Gtk from gnomemusic.gstplayer import Playback class SmoothScale(Gtk.Scale): """Progressbar UI element The progressbar Gtk.Scale, extended with smoothing capabilities, so the indicator updates every pixel available. """ __gtype_name__ = 'SmoothScale' def __init__(self): super().__init__() self._player = None self._old_smooth_scale_value = 0.0 self._seek_timeout = None self._previous_state = None self._timeout = None ctrl = Gtk.GestureClick() ctrl.connect("pressed", self._on_button_pressed) ctrl.connect("released", self._on_button_released) self.add_controller(ctrl) self.connect('change-value', self._on_smooth_scale_seek) # FIXME: This is a workaround for not being able to pass the player # object via init when using Gtk.Builder. @GObject.Property def player(self): """The Player object used :return: player object :rtype: Player """ return self._player @player.setter # type: ignore def player(self, player): """Set the Player object used :param Player player: The Player to use """ if (player is None or (self._player is not None and self._player != player)): return self._player = player self._player.connect('notify::state', self._on_state_change) self._player.connect('notify::duration', self._on_duration_changed) def _on_state_change(self, klass, arguments): state = self._player.props.state self._previous_state = state if (state == Playback.STOPPED or state == Playback.LOADING): self.set_value(0) self.props.sensitive = False else: self.props.sensitive = True if state == Playback.PLAYING: self._update_position_callback() else: self._remove_timeout() return True def _on_duration_changed(self, klass, arguments): duration = self._player.props.duration if duration != -1.: self.set_value(0) self.set_range(0.0, duration * 60) self.set_increments(300, 600) def _on_smooth_scale_seek_finish(self, value): """Prevent stutters when seeking with infinitesimal amounts""" self._seek_timeout = None round_digits = self.props.round_digits if self._old_smooth_scale_value != round(value, round_digits): self._on_smooth_scale_change_value(self) self._old_smooth_scale_value = round(value, round_digits) return False def _on_smooth_scale_seek(self, scale, scroll_type, value): """Smooths out the seeking process Called every time progress scale is moved. Only after a seek has been stable for 100ms, play the song from its location. """ if self._seek_timeout: GLib.source_remove(self._seek_timeout) Gtk.Range.do_change_value(scale, scroll_type, value) if scroll_type == Gtk.ScrollType.JUMP: self._seek_timeout = GLib.timeout_add( 100, self._on_smooth_scale_seek_finish, value) else: # Scroll with keys, hence no smoothing. self._on_smooth_scale_seek_finish(value) self._update_position_callback() return True def _on_button_released(self, gesture, n_press, x, y): if self._seek_timeout: GLib.source_remove(self._seek_timeout) self._on_smooth_scale_seek_finish( self.get_value()) self._update_position_callback() return False def _on_button_pressed(self, gesture, n_press, x, y): self._remove_timeout() self._old_smooth_scale_value = self.get_value() return False def _update_timeout(self): """Update the duration for self._timeout Sets the period of self._timeout to a value small enough to make the slider SmoothScale move smoothly based on the current song duration and scale length. """ duration = abs(self._player.props.duration) style_context = self.get_style_context() width = self.get_allocated_width() padding = style_context.get_padding() width = max(width - (padding.left + padding.right), 1) timeout_period = min(1000 * duration // width, 200) if self._timeout: GLib.source_remove(self._timeout) self._timeout = GLib.timeout_add( timeout_period, self._update_position_callback) def _remove_timeout(self): if self._timeout: GLib.source_remove(self._timeout) self._timeout = None def _on_smooth_scale_change_value(self, scroll): seconds = scroll.get_value() / 60 self._player.set_position(seconds) return True def _update_position_callback(self): position = self._player.get_position() if position > 0: self.set_value(position * 60) self._update_timeout() return False 07070100000087000081A400000000000000000000000166968E4E000024F8000000000000000000000000000000000000003200000000gnome-music-46.1/gnomemusic/widgets/songwidget.py# Copyright © 2018 The GNOME Music developers # # GNOME Music 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. # # GNOME Music 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 GNOME Music; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # # The GNOME Music authors hereby grant permission for non-GPL compatible # GStreamer plugins to be used and distributed together with GStreamer # and GNOME Music. This permission is above and beyond the permissions # granted by the GPL license by which GNOME Music is covered. If you # modify this code, you may extend this exception to your version of the # code, but you are not obligated to do so. If you do not wish to do so, # delete this exception statement from your version. from __future__ import annotations from enum import IntEnum from typing import Optional from gi.repository import Gdk, GObject, Gtk from gnomemusic import utils from gnomemusic.coresong import CoreSong from gnomemusic.utils import SongStateIcon from gnomemusic.widgets.startoggle import StarToggle # noqa: F401 @Gtk.Template(resource_path='/org/gnome/Music/ui/SongWidget.ui') class SongWidget(Gtk.ListBoxRow): """The single song widget used in DiscBox Contains * play icon (depending on state) * song number on disc (optional) * song title * song duration (optional) * favorite/star picker (optional) """ __gtype_name__ = 'SongWidget' __gsignals__ = { "widget-moved": (GObject.SignalFlags.RUN_FIRST, None, (int,)) } coresong = GObject.Property(type=CoreSong, default=None) show_song_number = GObject.Property(type=bool, default=True) _album_label = Gtk.Template.Child() _album_duration_box = Gtk.Template.Child() _artist_box = Gtk.Template.Child() _artist_label = Gtk.Template.Child() _dnd_icon = Gtk.Template.Child() _drag_source = Gtk.Template.Child() _menu_button = Gtk.Template.Child() _number_label = Gtk.Template.Child() _title_label = Gtk.Template.Child() _duration_label = Gtk.Template.Child() _star_toggle = Gtk.Template.Child() _play_icon = Gtk.Template.Child() _size_group = Gtk.Template.Child() class State(IntEnum): """The state of the SongWidget """ PLAYED = 0 PLAYING = 1 UNPLAYED = 2 def __init__(self, coresong, can_dnd=False, show_artist_and_album=False): """Instanciates a SongWidget :param Corsong coresong: song associated with the widget :param bool can_dnd: allow drag and drop operations :param bool show_artist_and_album: display artist and album """ super().__init__() self.props.coresong = coresong self._state = SongWidget.State.UNPLAYED self.props.coresong.bind_property( "track-number", self, "song-number", GObject.BindingFlags.SYNC_CREATE) self._title_label.set_max_width_chars(50) self.props.coresong.bind_property( "title", self._title_label, "label", GObject.BindingFlags.SYNC_CREATE) self.props.coresong.bind_property( "title", self._title_label, "tooltip-text", GObject.BindingFlags.SYNC_CREATE) time = utils.seconds_to_string(self.props.coresong.props.duration) self._duration_label.props.label = time if show_artist_and_album is True: self.props.coresong.bind_property( "album", self._album_label, "label", GObject.BindingFlags.SYNC_CREATE) self._album_label.props.visible = True self.props.coresong.bind_property( "artist", self._artist_label, "label", GObject.BindingFlags.SYNC_CREATE) self._artist_box.props.visible = True else: self._size_group.remove_widget(self._album_duration_box) self._play_icon.set_from_icon_name("media-playback-start-symbolic") self.bind_property( 'show-song-number', self._number_label, 'visible', GObject.BindingFlags.SYNC_CREATE) self.props.coresong.bind_property( "favorite", self._star_toggle, "active", GObject.BindingFlags.BIDIRECTIONAL | GObject.BindingFlags.SYNC_CREATE) self.props.coresong.bind_property( "state", self, "state", GObject.BindingFlags.SYNC_CREATE) self.props.coresong.connect( "notify::validation", self._on_validation_changed) if not self.props.coresong.props.is_tracker: self._star_toggle.props.visible = False self._drag_x = 0. self._drag_y = 0. self._drag_widget: Optional[Gtk.ListBox] = None if can_dnd: capture_phase = Gtk.PropagationPhase.CAPTURE self._drag_source.props.propagation_phase = capture_phase self._dnd_icon.props.visible = True @Gtk.Template.Callback() def _on_drag_prepare( self, drag_source: Gtk.DragSource, x: float, y: float) -> Gdk.ContentProvider: self._drag_x = x self._drag_y = y return Gdk.ContentProvider.new_for_value(self) @Gtk.Template.Callback() def _on_drag_begin( self, drag_source: Gtk.DragSource, drag: Gdk.Drag) -> None: allocation = self.get_allocation() self._drag_widget = Gtk.ListBox() self._drag_widget.set_size_request(allocation.width, allocation.height) drag_row = SongWidget(self.props.coresong, False, True) drag_row.props.show_song_number = self.props.show_song_number self._drag_widget.append(drag_row) self._drag_widget.drag_highlight_row(drag_row) drag_icon = Gtk.DragIcon.get_for_drag(drag) drag_icon.props.child = self._drag_widget drag.set_hotspot(self._drag_x, self._drag_y) @Gtk.Template.Callback() def _on_drop( self, target: Gtk.DropTarget, source_widget: SongWidget, x: float, y: float) -> bool: self._drag_widget = None self._drag_x = 0. self._drag_y = 0. source_position = source_widget.get_index() target_position = self.get_index() if source_position == target_position: return False self.emit("widget-moved", source_position) return True @GObject.Property def state(self): """State of the widget :returns: Widget state :rtype: SongWidget.State """ return self._state @state.setter # type: ignore def state(self, value): """Set state of the of widget This influences the look of the widgets label and if there is a song play indicator being shown. :param SongWidget.State value: Widget state """ self._state = value style_ctx = self._title_label.get_style_context() style_ctx.remove_class('dim-label') style_ctx.remove_class('playing-song-label') self._play_icon.set_visible(False) coresong = self.props.coresong if coresong.props.validation == CoreSong.Validation.FAILED: self._play_icon.set_visible(True) style_ctx.add_class("dim-label") return if value == SongWidget.State.PLAYED: style_ctx.add_class('dim-label') elif value == SongWidget.State.PLAYING: self._play_icon.set_visible(True) style_ctx.add_class('playing-song-label') def _on_validation_changed(self, coresong, sate): validation_status = coresong.props.validation if validation_status == CoreSong.Validation.FAILED: self._play_icon.props.icon_name = SongStateIcon.ERROR.value self._play_icon.set_visible(True) else: self._play_icon.props.icon_name = SongStateIcon.PLAYING.value @GObject.Property(type=str, default="") def song_number(self): """Get song number label :returns: the song number :rtype: str """ return self._number_label.props.label @song_number.setter # type: ignore def song_number(self, new_nr): """Set song number label from an integer :param int new_nr: new song number """ if new_nr == 0: new_nr = "" self._number_label.props.label = str(new_nr) @GObject.Property(type=Gtk.Popover, default=None) def menu(self) -> Optional[Gtk.Popover]: """Get the song menu. If no menu is set, the menu button is not displayed. :returns: song menu :rtype: Gtk.PopoverMenu """ return self._menu_button.props.popover @menu.setter # type: ignore def menu(self, menu: Optional[Gtk.PopoverMenu]) -> None: """Set song menu. :param Gtk.PopoverMenu menu: new song menu """ self._menu_button.props.popover = menu self._menu_button.props.visible = (menu is not None) 07070100000088000081A400000000000000000000000166968E4E000014C9000000000000000000000000000000000000003600000000gnome-music-46.1/gnomemusic/widgets/songwidgetmenu.py# Copyright 2021 The GNOME Music developers # # GNOME Music 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. # # GNOME Music 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 GNOME Music; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # # The GNOME Music authors hereby grant permission for non-GPL compatible # GStreamer plugins to be used and distributed together with GStreamer # and GNOME Music. This permission is above and beyond the permissions # granted by the GPL license by which GNOME Music is covered. If you # modify this code, you may extend this exception to your version of the # code, but you are not obligated to do so. If you do not wish to do so, # delete this exception statement from your version. from __future__ import annotations from typing import Any, Optional, Union, cast import typing from gettext import gettext as _ from gi.repository import Gio, GObject, Gtk from gnomemusic.grilowrappers.grltrackerplaylists import Playlist from gnomemusic.songtoast import SongToast from gnomemusic.widgets.playlistdialog import PlaylistDialog from gnomemusic.widgets.songwidget import SongWidget if typing.TYPE_CHECKING: from gnomemusic.application import Application from gnomemusic.corealbum import CoreAlbum from gnomemusic.coresong import CoreSong CoreObject = Union[CoreAlbum, CoreSong, Playlist] @Gtk.Template(resource_path="/org/gnome/Music/ui/SongWidgetMenu.ui") class SongWidgetMenu(Gtk.PopoverMenu): __gtype_name__ = "SongWidgetMenu" def __init__( self, application: Application, song_widget: Union[SongWidget, Gtk.ListItem], coreobject: Optional[CoreObject]) -> None: """Menu to interact with the song of a SongWidget. :param Application application: The application object :param SongWidget song_widget: The songwidget associated with the menu :param Union[CoreAlbum, CoreSong, Playlist] coreobject: The coreobject associated with the menu """ super().__init__() self._application = application self._coremodel = application.props.coremodel self._player = application.props.player self._window = application.props.window self._coreobject = coreobject self._coresong: CoreSong self._song_widget = song_widget self.props.coreobject = coreobject self._playlist_dialog: Optional[PlaylistDialog] = None action_group = Gio.SimpleActionGroup() action_entries = [ ("play", self._play_song), ("add_playlist", self._add_to_playlist), ("open_location", self._open_location) ] if (isinstance(self._coreobject, Playlist) and not self._coreobject.props.is_smart): action_entries.append( ("remove_playlist", self._remove_from_playlist)) elif not isinstance(self._coreobject, Playlist): self.props.menu_model.remove(2) for name, callback in action_entries: action = Gio.SimpleAction.new(name, None) action.connect("activate", callback) action_group.add_action(action) self.insert_action_group("songwidget", action_group) open_menu_item = Gio.MenuItem.new( # noqa: F841 _("_Open Location"), "songwidget.open_location") def _open_location(self, action: Gio.SimpleAction, param: Any) -> None: pass def _play_song(self, action: Gio.Simple, param: Any) -> None: self.popdown() signal_id = 0 def _on_playlist_loaded(klass, playlist_type): self._player.play(self._coresong) self._coremodel.disconnect(signal_id) signal_id = self._coremodel.connect( "playlist-loaded", _on_playlist_loaded) self._coremodel.props.active_core_object = self._coreobject def _add_to_playlist(self, action: Gio.Simple, param: Any) -> None: self.popdown() self._playlist_dialog = PlaylistDialog( self._application, [self._coresong]) self._playlist_dialog.present(self._window) def _remove_from_playlist(self, action: Gio.Simple, param: Any) -> None: self.popdown() position = self._song_widget.get_index() SongToast( self._application, cast(Playlist, self._coreobject), position, self._coresong) @GObject.Property(type=GObject.GObject) def coreobject(self) -> CoreObject: return self._coreobject @coreobject.setter # type: ignore def coreobject(self, coreobject: CoreObject) -> None: self._coreobject = coreobject if isinstance(self._song_widget, SongWidget): self._coresong = self._song_widget.props.coresong else: self._coresong = coreobject 07070100000089000081A400000000000000000000000166968E4E00000513000000000000000000000000000000000000003200000000gnome-music-46.1/gnomemusic/widgets/startoggle.py# Copyright 2024 The GNOME Music developers # # SPDX-License-Identifier: GPL-2.0-or-later WITH GStreamer-exception-2008 from gettext import gettext as _ from gi.repository import Gtk class StarToggle(Gtk.ToggleButton): """GtkToggleButton for marking elements as favorite Shows an animation when toggled. """ __gtype_name__ = "StarToggle" def __init__(self) -> None: super().__init__() self.add_css_class("star") self.add_css_class("flat") self.add_css_class("circular") self.connect("toggled", self._update) self.connect("clicked", self._on_clicked) self._update(self) def _update(self, _widget: Gtk.ToggleButton) -> None: """Update the widget depending on the state.""" starred: bool = self.props.active self.props.icon_name = ( "starred-symbolic" if starred else "non-starred-symbolic") # TRANSLATORS: These are verbs, to (un)mark something as a # favorite. self.props.tooltip_text = _("Unstar") if starred else _("Star") if starred: self.add_css_class("starred") else: self.remove_css_class("starred") def _on_clicked(self, _widget: Gtk.ToggleButton) -> None: self.add_css_class("interacted") 0707010000008A000081A400000000000000000000000166968E4E0000125D000000000000000000000000000000000000003C00000000gnome-music-46.1/gnomemusic/widgets/statusnavigationpage.py# Copyright 2024 The GNOME Music developers # # SPDX-License-Identifier: GPL-2.0-or-later WITH GStreamer-exception-2008 from __future__ import annotations from enum import IntEnum import typing from gettext import gettext as _ from gi.repository import Adw, GLib, GObject, Gtk, Tracker from gnomemusic.widgets.headerbar import HeaderBar if typing.TYPE_CHECKING: from gnomemusic.application import Application @Gtk.Template(resource_path="/org/gnome/Music/ui/StatusNavigationPage.ui") class StatusNavigationPage(Adw.NavigationPage): """Status page when there is no music or an issue with Tracker This view can have several states EMPTY: No music has been found at startup (default) NO_TRACKER: Tracker is unavailable TRACKER_OUTDATED: Tracker version is too old """ class State(IntEnum): """Enum for StatusNavigationPage state.""" EMPTY = 0 SEARCH = 1 NO_TRACKER = 2 TRACKER_OUTDATED = 3 __gtype_name__ = "StatusNavigationPage" _description_label = Gtk.Template.Child() _initial_state = Gtk.Template.Child() _status_page = Gtk.Template.Child() _toolbar = Gtk.Template.Child() def __init__(self, application: Application) -> None: super().__init__() # FIXME: This is now duplicated here and in GrlTrackerWrapper. try: music_folder = GLib.get_user_special_dir( GLib.UserDirectory.DIRECTORY_MUSIC) assert music_folder is not None except (TypeError, AssertionError): self._content_text = _("Your XDG Music directory is not set.") return music_folder = Tracker.sparql_escape_string( GLib.filename_to_uri(music_folder)) href_text = "{}".format( music_folder, _("Music Folder")) self._headerbar = HeaderBar(application) self._headerbar.props.state = HeaderBar.State.EMPTY self._toolbar.add_top_bar(self._headerbar) # TRANSLATORS: This is a label to display a link to open user's music # folder. {} will be replaced with the translated text 'Music folder' folder_text = _("The contents of your {} will appear here.") self._content_text = folder_text.format(href_text) # Hack to get to AdwClamp, so it can be hidden for the # initial state. child_of_child = self._status_page.get_first_child().get_first_child() self._adw_clamp = child_of_child.get_first_child().get_first_child() self._status_page.set_child(self._initial_state) self.props.state = StatusNavigationPage.State.EMPTY @GObject.Property(type=int, default=0, minimum=0, maximum=2) def state(self) -> int: """Get the state of the empty view :returns: The view state :rtype: int """ return self._state @state.setter # type: ignore def state(self, value: int) -> None: """Set the state of the empty view :param int value: new state """ self._state = value self._adw_clamp.props.visible = True self._initial_state.props.visible = False if self._state == StatusNavigationPage.State.EMPTY: self._set_empty_state() elif self._state == StatusNavigationPage.State.SEARCH: self._set_search_state() elif self._state == StatusNavigationPage.State.NO_TRACKER: self._set_no_tracker_state() elif self._state == StatusNavigationPage.State.TRACKER_OUTDATED: self._set_tracker_outdated_state() self._headerbar.props.state = HeaderBar.State.EMPTY def _set_empty_state(self) -> None: self._adw_clamp.props.visible = False self._initial_state.props.visible = True self._description_label.props.label = self._content_text def _set_search_state(self) -> None: self._status_page.props.title = _("No Music Found") self._status_page.props.description = _("Try a Different Search") def _set_no_tracker_state(self) -> None: self._status_page.props.title = _( "GNOME Music could not connect to Tracker.") self._status_page.props.description = _( "Your music files cannot be indexed without Tracker running.") self._status_page.props.icon_name = "dialog-error-symbolic" def _set_tracker_outdated_state(self) -> None: self._status_page.props.title = _( "Your system Tracker version seems outdated.") self._status_page.props.description = _( "Music needs Tracker version 3.0.0 or higher.") self._status_page.props.icon_name = "dialog-error-symbolic" 0707010000008B000081A400000000000000000000000166968E4E000007C8000000000000000000000000000000000000003200000000gnome-music-46.1/gnomemusic/widgets/twolinetip.py# Copyright 2018 The GNOME Music developers # # GNOME Music 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. # # GNOME Music 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 GNOME Music; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # # The GNOME Music authors hereby grant permission for non-GPL compatible # GStreamer plugins to be used and distributed together with GStreamer # and GNOME Music. This permission is above and beyond the permissions # granted by the GPL license by which GNOME Music is covered. If you # modify this code, you may extend this exception to your version of the # code, but you are not obligated to do so. If you do not wish to do so, # delete this exception statement from your version. from gi.repository import GObject, Gtk @Gtk.Template(resource_path='/org/gnome/Music/ui/TwoLineTip.ui') class TwoLineTip(Gtk.Box): """Tooltip with two lines of text A bolded title and a regular subtitle. """ __gtype_name__ = 'TwoLineTip' _title_label = Gtk.Template.Child() _subtitle_label = Gtk.Template.Child() title = GObject.Property(type=str) subtitle = GObject.Property(type=str) subtitle_visible = GObject.Property(type=bool, default=True) def __init__(self): super().__init__() self.bind_property('title', self._title_label, 'label') self.bind_property('subtitle', self._subtitle_label, 'label') self.bind_property('subtitle-visible', self._subtitle_label, 'visible') 0707010000008C000081A400000000000000000000000166968E4E000032D8000000000000000000000000000000000000002600000000gnome-music-46.1/gnomemusic/window.py# Copyright 2019 The GNOME Music developers # # GNOME Music 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. # # GNOME Music 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 GNOME Music; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # # The GNOME Music authors hereby grant permission for non-GPL compatible # GStreamer plugins to be used and distributed together with GStreamer # and GNOME Music. This permission is above and beyond the permissions # granted by the GPL license by which GNOME Music is covered. If you # modify this code, you may extend this exception to your version of the # code, but you are not obligated to do so. If you do not wish to do so, # delete this exception statement from your version. from typing import Optional from gi.repository import Adw, Gtk, Gdk, GLib, GObject from gettext import gettext as _ from gnomemusic.player import RepeatMode from gnomemusic.trackerwrapper import TrackerState from gnomemusic.utils import View from gnomemusic.views.albumsview import AlbumsView from gnomemusic.views.artistsview import ArtistsView from gnomemusic.views.searchview import SearchView from gnomemusic.views.playlistsview import PlaylistsView from gnomemusic.widgets.statusnavigationpage import StatusNavigationPage from gnomemusic.widgets.headerbar import HeaderBar from gnomemusic.widgets.playertoolbar import PlayerToolbar # noqa: F401 from gnomemusic.widgets.playlistdialog import PlaylistDialog from gnomemusic.windowplacement import WindowPlacement @Gtk.Template(resource_path="/org/gnome/Music/ui/Window.ui") class Window(Adw.ApplicationWindow): __gtype_name__ = "Window" active_view = GObject.Property(type=GObject.GObject, default=None) _loading_progress = Gtk.Template.Child() _main_navigation_page = Gtk.Template.Child() _main_toolbar_view = Gtk.Template.Child() _navigation_view = Gtk.Template.Child() _overlay = Gtk.Template.Child() _player_toolbar = Gtk.Template.Child() _stack = Gtk.Template.Child() _toast_overlay = Gtk.Template.Child() def __init__(self, app): """Initialize the main window. :param Gtk.Application app: Application object """ super().__init__(application=app, title=_("Music")) self._app = app self.set_size_request(360, 294) WindowPlacement(self) self._headerbar = HeaderBar(self._app) self._status_navpage = StatusNavigationPage(app) self._playlist_dialog: Optional[PlaylistDialog] = None self._player = app.props.player self._search = app.props.search self._startup_timeout_id = 0 self._setup_view() def _setup_view(self): self._headerbar.props.stack = self._stack self._main_toolbar_view.add_top_bar(self._headerbar) self._search.bind_property( "search-mode-active", self._headerbar, "search-mode-active", GObject.BindingFlags.BIDIRECTIONAL | GObject.BindingFlags.SYNC_CREATE) self._search.connect( "notify::search-mode-active", self._on_search_mode_changed) self._player_toolbar.props.player = self._player self.views = [None] * len(View) self._navigation_view.add(self._status_navpage) self._stack.connect( "notify::visible-child", self._on_stack_visible_child_changed) self._headerbar.props.state = HeaderBar.State.MAIN self._app.props.coremodel.connect( "notify::songs-available", self._on_songs_available) self._app.props.coregrilo.connect( "notify::tracker-available", self._on_tracker_available) def notify() -> bool: self._startup_timeout_id = 0 self._app.props.coremodel.notify("songs-available") return GLib.SOURCE_REMOVE self._startup_timeout_id = GLib.timeout_add(1000, notify) def _switch_to_empty_view(self) -> None: tracker_state = self._app.props.coregrilo.props.tracker_available statusnp = self._status_navpage if tracker_state == TrackerState.UNAVAILABLE: statusnp.props.state = StatusNavigationPage.State.NO_TRACKER elif tracker_state == TrackerState.OUTDATED: statusnp.props.state = StatusNavigationPage.State.TRACKER_OUTDATED else: statusnp.props.state = StatusNavigationPage.State.EMPTY def _on_search_mode_changed(self, search, value): if self._search.props.search_mode_active: self._navigation_view.replace_with_tags(["searchview"]) else: self._navigation_view.replace_with_tags(["mainview"]) def _on_songs_available(self, klass, value): if self._startup_timeout_id > 0: GLib.source_remove(self._startup_timeout_id) self._startup_timeout_id = 0 if self._app.props.coremodel.props.songs_available: self._navigation_view.replace_with_tags(["mainview"]) self._switch_to_player_view() else: self._navigation_view.replace_with_tags(["status"]) self._switch_to_empty_view() def _on_stack_visible_child_changed(self, klass, value): self.props.active_view = self._stack.props.visible_child def _on_tracker_available(self, klass, value): new_state = self._app.props.coregrilo.props.tracker_available if new_state != TrackerState.AVAILABLE: self._switch_to_empty_view() self._app.props.coremodel.notify("songs-available") def _switch_to_player_view(self): # All views are created together, so if the album view is # already initialized, assume the rest are as well. if self.views[View.ALBUM] is not None: return self._headerbar.props.state = HeaderBar.State.MAIN self.views[View.ALBUM] = AlbumsView(self._app) self.views[View.ARTIST] = ArtistsView(self._app) self.views[View.PLAYLIST] = PlaylistsView(self._app) self._search_view = SearchView(self._app) self._search.bind_property( "state", self._search_view, "search-state", GObject.BindingFlags.BIDIRECTIONAL | GObject.BindingFlags.SYNC_CREATE) self._navigation_view.add(self._search_view) self._search.bind_property( "search-mode-active", self._search_view, "search-mode-active", GObject.BindingFlags.BIDIRECTIONAL | GObject.BindingFlags.SYNC_CREATE) for i in self.views[View.ALBUM:]: if i.props.title: stackpage = self._stack.add_titled( i, i.props.name, i.props.title) stackpage.props.icon_name = i.props.icon_name else: self._stack.add_named(i, i.props.name) @GObject.Property( type=HeaderBar, default=None, flags=GObject.ParamFlags.READABLE) def headerbar(self) -> HeaderBar: """Get headerbar instance. :returns: The headerbar :rtype: HeaderBar """ return self._headerbar @GObject.Property( type=Adw.NavigationView, default=None, flags=GObject.ParamFlags.READABLE) def navigation_view(self) -> Adw.NavigationView: """Get NavigationView instance. :returns: The navigation view :rtype: Adw.NavigationView """ return self._navigation_view @Gtk.Template.Callback() def _on_key_press( self, controller: Gtk.EventControllerKey, keyval: int, keycode: int, state: Gdk.ModifierType) -> bool: modifiers = state & Gtk.accelerator_get_default_mod_mask() control_mask = Gdk.ModifierType.CONTROL_MASK shift_mask = Gdk.ModifierType.SHIFT_MASK alt_mask = Gdk.ModifierType.ALT_MASK search_active = self._search.props.search_mode_active rename_active = (self.views[View.PLAYLIST] is not None and self.views[View.PLAYLIST].rename_active) unicode_char = chr(Gdk.keyval_to_unicode(keyval)) active_view_stack_name = self._stack.props.visible_child_name # Ctrl + F: Open search bar if (modifiers == control_mask and keyval == Gdk.KEY_f and not rename_active and not search_active): self._search.props.search_mode_active = True # Ctrl + Space: Play / Pause elif (modifiers == control_mask and keyval == Gdk.KEY_space): self._player.play_pause() # Ctrl + B: Previous elif (modifiers == control_mask and keyval == Gdk.KEY_b): self._player.previous() # Ctrl + N: Next elif (modifiers == control_mask and keyval == Gdk.KEY_n): self._player.next() # Ctrl + R: Toggle repeat elif (modifiers == control_mask and keyval == Gdk.KEY_r): if self._player.props.repeat_mode == RepeatMode.SONG: self._player.props.repeat_mode = RepeatMode.NONE else: self._player.props.repeat_mode = RepeatMode.SONG # Ctrl + S: Toggle shuffle elif (modifiers == control_mask and keyval == Gdk.KEY_s): if self._player.props.repeat_mode == RepeatMode.SHUFFLE: self._player.props.repeat_mode = RepeatMode.NONE else: self._player.props.repeat_mode = RepeatMode.SHUFFLE # Alt + 1 : Switch to albums view elif (modifiers == alt_mask and keyval in [Gdk.KEY_1, Gdk.KEY_KP_1]): self._switch_to_view("albums") # Alt + 2 : Switch to artists view elif (modifiers == alt_mask and keyval in [Gdk.KEY_2, Gdk.KEY_KP_2]): self._switch_to_view("artists") # Alt + 3 : Switch to playlists view elif (modifiers == alt_mask and keyval in [Gdk.KEY_3, Gdk.KEY_KP_3]): self._switch_to_view("playlists") elif (keyval == Gdk.KEY_AudioPlay or keyval == Gdk.KEY_AudioPause): self._player.play_pause() elif keyval == Gdk.KEY_AudioStop: self._player.stop() elif keyval == Gdk.KEY_AudioPrev: self._player.previous() elif keyval == Gdk.KEY_AudioNext: self._player.next() elif (keyval == Gdk.KEY_Delete and self._is_main_view_active() and active_view_stack_name == "playlists" and not rename_active): self.activate_action("playlist_delete", None) # Close the search bar after Esc is pressed elif (keyval == Gdk.KEY_Escape and search_active): self._search.props.search_mode_active = False # Open the search bar when typing printable chars. elif ((not search_active and self._is_main_view_active() and not keyval == Gdk.KEY_space) and GLib.unichar_isprint(unicode_char) and (modifiers == shift_mask or modifiers == 0) and not rename_active): self._search.props.search_mode_active = True self._search_view.props.search_text = unicode_char else: return Gdk.EVENT_PROPAGATE return Gdk.EVENT_STOP def _switch_to_view(self, view_name: str) -> None: """Switch the view switcher to another page""" if self._is_main_view_active(): self._stack.props.visible_child_name = view_name def _is_main_view_active(self) -> bool: """Returns True if the main (view switcher) navigation page is active """ visible_page = self._navigation_view.props.visible_page return visible_page == self._main_navigation_page def set_player_visible(self, visible): """Set PlayWidget action visibility :param bool visible: actionbar visibility """ self._player_toolbar.props.revealed = visible def loading_pulse(self) -> bool: """Pulse the loading progress bar :returns: GLib.SOURCE_CONTINUE :rtype: bool """ self._loading_progress.pulse() return GLib.SOURCE_CONTINUE def loading_visible(self, show: bool) -> None: """Sets visibility of the loading progressbar :param bool show: Wheter to show the loading bar """ self._loading_progress.props.visible = show 0707010000008D000081A400000000000000000000000166968E4E00000D5F000000000000000000000000000000000000002F00000000gnome-music-46.1/gnomemusic/windowplacement.py# Copyright 2018 The GNOME Music developers # # GNOME Music 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. # # GNOME Music 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 GNOME Music; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # # The GNOME Music authors hereby grant permission for non-GPL compatible # GStreamer plugins to be used and distributed together with GStreamer # and GNOME Music. This permission is above and beyond the permissions # granted by the GPL license by which GNOME Music is covered. If you # modify this code, you may extend this exception to your version of the # code, but you are not obligated to do so. If you do not wish to do so, # delete this exception statement from your version. from __future__ import annotations import typing from gi.repository import GLib, GObject if typing.TYPE_CHECKING: from gnomemusic.window import Window class WindowPlacement(GObject.GObject): """Main window placement Restores and saves the main window placement, success may vary depending on the underlying window manager. """ __gtype_name__ = 'WindowPlacement' def __init__(self, window): """Initialize WindowPlacement :param Gtk.Window window: Main window """ super().__init__() self._window = window application = window.props.application self._settings = application.props.settings self._restore_window_state() self._window_placement_update_timeout = 0 self._window.connect("notify::maximized", self._on_maximized) self._window.connect("notify::default-height", self._on_size_change) self._window.connect("notify::default-width", self._on_size_change) def _restore_window_state(self): size_setting = self._settings.get_value('window-size') if (len(size_setting) == 2 and isinstance(size_setting[0], int) and isinstance(size_setting[1], int)): self._window.set_default_size(size_setting[0], size_setting[1]) if self._settings.get_value('window-maximized'): self._window.maximize() def _on_size_change( self, window: Window, size: GObject.ParamSpecInt) -> None: if self._window_placement_update_timeout == 0: self._window_placement_update_timeout = GLib.timeout_add( 500, self._store_size, window) def _store_size(self, window: Window) -> bool: width = window.get_width() height = window.get_height() self._settings.set_value( "window-size", GLib.Variant("ai", [width, height])) GLib.source_remove(self._window_placement_update_timeout) self._window_placement_update_timeout = 0 return False def _on_maximized(self, klass, value, data=None): self._settings.set_boolean( 'window-maximized', self._window.is_maximized()) 0707010000008E000041ED00000000000000000000000266968E4E00000000000000000000000000000000000000000000001600000000gnome-music-46.1/help0707010000008F000041ED00000000000000000000000266968E4E00000000000000000000000000000000000000000000001800000000gnome-music-46.1/help/C07070100000090000041ED00000000000000000000000266968E4E00000000000000000000000000000000000000000000002000000000gnome-music-46.1/help/C/figures07070100000091000081A400000000000000000000000166968E4E00000B85000000000000000000000000000000000000003400000000gnome-music-46.1/help/C/figures/org.gnome.Music.svg 07070100000092000081A400000000000000000000000166968E4E000003DB000000000000000000000000000000000000002300000000gnome-music-46.1/help/C/index.page Music Music Music Shobha Tyagi tyagishobha@gmail.com 2014 <media type="image" width="48px" height="48px" its:translate="no" src="figures/org.gnome.Music.svg" /> Music
Create playlist
Play a song
Remove songs and playlist
07070100000093000081A400000000000000000000000166968E4E0000031E000000000000000000000000000000000000002A00000000gnome-music-46.1/help/C/introduction.page Shobha Tyagi tyagishobha@gmail.com 2014 A simple and elegant replacement for using Files to show the music directory. Introduction to Music

A simple and elegant replacement for using Files to show the music directory.

07070100000094000081A400000000000000000000000166968E4E00000129000000000000000000000000000000000000002200000000gnome-music-46.1/help/C/legal.xml

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.

07070100000095000081A400000000000000000000000166968E4E000003F0000000000000000000000000000000000000002800000000gnome-music-46.1/help/C/play-music.page Shobha Tyagi tyagishobha@gmail.com 2014 Play your favorite songs. Play music

You can play your favorite music by creating a playlist or by simply clicking on the song of your choice from any view.

While in <em>Playlists</em>:

Select a playlist.

Click on the gear button on the right hand side.

Click on Play.

07070100000096000081A400000000000000000000000166968E4E000008A9000000000000000000000000000000000000003400000000gnome-music-46.1/help/C/playlist-create-albums.page Shobha Tyagi tyagishobha@gmail.com 2014 Add songs to playlists using albums. Create a playlist using albums

You can view all your albums by clicking on the Albums button.

To add all the songs in an album:

Click on the check button in the top-right of the window.

Select albums.

Click on the Add to Playlist button.

Click on New Playlist and type a name for your playlist.

Click on Select.

You can also create a playlist from specific songs.

To add selected songs from an album:

Click on an album.

Click on the check button.

Select songs.

Click on the Add to Playlist button.

Click on New Playlist and type a name for your playlist.

Click on Select.

To select all the songs click Click on items to select themSelect All in the toolbar or press CtrlA.

To clear the selection click Click on items to select themSelect None in the toolbar.

07070100000097000081A400000000000000000000000166968E4E000006B9000000000000000000000000000000000000003500000000gnome-music-46.1/help/C/playlist-create-artists.page Shobha Tyagi tyagishobha@gmail.com 2014 Create playlist by selecting your favorite artists. Create playlists using artists

You can view all the artists and their songs by clicking on the Artists button.

To create a new playlist while in <em>Artists</em> view:

Click on the check button in the top-right of the window.

Select all the artists whose songs you want to add to the playlist.

Click on the Add to Playlist button.

Click on New Playlist and type a name for your playlist.

Click on Select.

To select all the songs click Click on items to select themSelect All in the toolbar or press CtrlA.

To clear the selection click Click on items to select themSelect None in the toolbar.

07070100000098000081A400000000000000000000000166968E4E000006A6000000000000000000000000000000000000003300000000gnome-music-46.1/help/C/playlist-create-songs.page Shobha Tyagi tyagishobha@gmail.com 2014 Create playlist by selecting your favorite songs. Create playlists using songs

You can view all the songs by clicking on the Songs button.

To create a new playlist while in <em>Songs</em> view:

Click on the check button in the top-right of the window.

Select all the songs you want to add to the playlist.

Click on the Add to Playlist button.

Click on New Playlist and type a name for your playlist.

Click on Select.

To select all the songs click Click on items to select themSelect All in the toolbar or press CtrlA.

To clear the selection click Click on items to select themSelect None in the toolbar.

07070100000099000081A400000000000000000000000166968E4E000003D2000000000000000000000000000000000000002D00000000gnome-music-46.1/help/C/playlist-delete.page Shobha Tyagi tyagishobha@gmail.com 2014 Remove an unwanted playlist. Delete a playlist

You can remove an old and unwanted playlist.

While in <em>Playlists</em>:

Select the playlist which you want to delete.

Click on the gear button on the right hand side.

Click on Delete.

0707010000009A000081A400000000000000000000000166968E4E00000450000000000000000000000000000000000000003300000000gnome-music-46.1/help/C/playlist-remove-songs.page Shobha Tyagi tyagishobha@gmail.com 2014 Delete songs from the playlist. Remove songs

You can remove any unwanted songs from a playlist.

While in <em>Playlists</em>:

Select the playlist from which you want to remove songs.

Click on the check button on the toolbar.

Select all the songs which you want to remove.

Click on Remove from Playlist.

0707010000009B000081A400000000000000000000000166968E4E000003BE000000000000000000000000000000000000002D00000000gnome-music-46.1/help/C/playlist-repeat.page Shobha Tyagi tyagishobha@gmail.com 2014 Repeat all songs in the playlist or only the current song. How do I play songs on repeat? In the taskbar, click on the button on the right side:

Select Repeat Song to repeat a single song.

Select Repeat All to repeat all the song in the playlist.

0707010000009C000081A400000000000000000000000166968E4E000002D9000000000000000000000000000000000000002E00000000gnome-music-46.1/help/C/playlist-shuffle.page Shobha Tyagi tyagishobha@gmail.com 2014 Shuffle songs in the playlist. How do I shuffle my songs?

In the taskbar, click on the button on right hand side and select Shuffle.

0707010000009D000081A400000000000000000000000166968E4E00000313000000000000000000000000000000000000002400000000gnome-music-46.1/help/C/search.page Shobha Tyagi tyagishobha@gmail.com 2014 Search through your music collection. Find music

You can search your albums, artists, songs and playlists. Select what you want to search through then click the Search button and start searching.

0707010000009E000081A400000000000000000000000166968E4E0000004B000000000000000000000000000000000000001E00000000gnome-music-46.1/help/LINGUASca cs da de el es eu fr gl hr hu id it ko nl pl pt_BR ro ru sv tr uk zh_CN 0707010000009F000041ED00000000000000000000000266968E4E00000000000000000000000000000000000000000000001900000000gnome-music-46.1/help/ca070701000000A0000081A400000000000000000000000166968E4E00003AD1000000000000000000000000000000000000001F00000000gnome-music-46.1/help/ca/ca.po# msgid "" msgstr "" "Project-Id-Version: gnome-music master\n" "POT-Creation-Date: 2022-07-25 15:45+0000\n" "PO-Revision-Date: 2022-08-09 19:52+0000\n" "Last-Translator: Jordi Mas i Herǹandez \n" "Language-Team: Catalan (http://www.transifex.com/softcatala/gnome-" "documentation-catalan/language/ca/)\n" "Language: ca\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. Put one translator per line, in the form NAME , YEAR1, YEAR2 msgctxt "_" msgid "translator-credits" msgstr "Jaume Jorba , 2018" #. (itstool) path: credit/name #: C/introduction.page:11 C/index.page:12 C/play-music.page:11 #: C/playlist-create-albums.page:11 C/playlist-create-songs.page:11 #: C/playlist-create-artists.page:11 C/playlist-delete.page:11 #: C/playlist-remove-songs.page:11 C/playlist-repeat.page:11 #: C/playlist-shuffle.page:11 C/search.page:11 msgid "Shobha Tyagi" msgstr "Shobha Tyagi" #. (itstool) path: credit/years #: C/introduction.page:13 C/index.page:14 C/play-music.page:13 #: C/playlist-create-albums.page:13 C/playlist-create-songs.page:13 #: C/playlist-create-artists.page:13 C/playlist-delete.page:13 #: C/playlist-remove-songs.page:13 C/playlist-repeat.page:13 #: C/playlist-shuffle.page:13 C/search.page:13 msgid "2014" msgstr "2014" #. (itstool) path: info/desc #. (itstool) path: page/p #: C/introduction.page:18 C/introduction.page:23 msgid "" "A simple and elegant replacement for using Files to show the " "music directory." msgstr "" "Un senzill i elegant reemplaçament del Fitxers com a eina per " "a mostrar el directori de música." #. (itstool) path: page/title #: C/introduction.page:22 msgid "Introduction to Music" msgstr "Introducció al Música" #. (itstool) path: info/title #: C/index.page:6 msgctxt "link:trail" msgid "Music" msgstr "Música" #. (itstool) path: info/title #: C/index.page:7 msgctxt "link" msgid "Music" msgstr "Música" #. (itstool) path: info/title #: C/index.page:8 msgctxt "text" msgid "Music" msgstr "Música" #. (itstool) path: page/title #: C/index.page:19 msgid "<_:media-1/> Music" msgstr "<_:media-1/> Música" #. (itstool) path: section/title #: C/index.page:25 msgid "Create playlist" msgstr "Crear una llista de reproducció" #. (itstool) path: section/title #: C/index.page:28 msgid "Play a song" msgstr "Reproduir una cançó" #. (itstool) path: section/title #: C/index.page:31 msgid "Remove songs and playlist" msgstr "Suprimir cançons i llista de reproducció" #. (itstool) path: info/desc #: C/play-music.page:18 msgid "Play your favorite songs." msgstr "Reproduir les cançons favorites." #. (itstool) path: page/title #: C/play-music.page:22 msgid "Play music" msgstr "Reproduir música" #. (itstool) path: page/p #: C/play-music.page:24 msgid "" "You can play your favorite music by creating a playlist or by simply " "clicking on the song of your choice from any view." msgstr "" "Podeu reproduir la vostra música preferida creant una llista de reproducció " "o simplement fent clic sobre la cançó escollida des de qualsevol vista." #. (itstool) path: steps/title #: C/play-music.page:28 C/playlist-delete.page:27 #: C/playlist-remove-songs.page:27 msgid "While in Playlists:" msgstr "Mentre s'estigui a les llistes de reproducció:" #. (itstool) path: item/p #: C/play-music.page:30 msgid "Select a playlist." msgstr "Seleccionar una llista de reproducció." #. (itstool) path: item/p #: C/play-music.page:33 C/playlist-delete.page:32 msgid "Click on the gear button on the right hand side." msgstr "Feu clic al botó de configuració del costat dret." #. (itstool) path: item/p #: C/play-music.page:36 msgid "Click on Play." msgstr "Feu clic a Reprodueix." #. (itstool) path: info/desc #: C/playlist-create-albums.page:18 msgid "Add songs to playlists using albums." msgstr "Afegir cançons a la llista de reproducció utilitzant àlbums." #. (itstool) path: page/title #: C/playlist-create-albums.page:21 msgid "Create a playlist using albums" msgstr "Crear una llista de reproducció utilitzant àlbums" #. (itstool) path: page/p #: C/playlist-create-albums.page:23 msgid "" "You can view all your albums by clicking on the Albums button." msgstr "" "Es poden veure tots els àlbums propis fent clic al botó Àlbums." #. (itstool) path: steps/title #: C/playlist-create-albums.page:27 msgid "To add all the songs in an album:" msgstr "Per a afegir totes les cançons a un àlbum:" #. (itstool) path: item/p #: C/playlist-create-albums.page:29 C/playlist-create-songs.page:29 #: C/playlist-create-artists.page:30 msgid "Click on the check button in the top-right of the window." msgstr "Feu clic al botó de selecció a la part superior dreta de la finestra." #. (itstool) path: item/p #: C/playlist-create-albums.page:32 msgid "Select albums." msgstr "Seleccionar àlbums." #. (itstool) path: item/p #: C/playlist-create-albums.page:35 C/playlist-create-albums.page:60 #: C/playlist-create-songs.page:35 C/playlist-create-artists.page:37 msgid "Click on the Add to Playlist button." msgstr "" "Feu clic al botó Afegeix a la llista de reproducció." #. (itstool) path: item/p #: C/playlist-create-albums.page:38 C/playlist-create-albums.page:63 #: C/playlist-create-artists.page:40 msgid "Click on New Playlist and type a name for your playlist." msgstr "" "Feu clic a Llista de reproducció nova i escriviu un nom per a la " "llista." #. (itstool) path: item/p #: C/playlist-create-albums.page:42 C/playlist-create-albums.page:67 #: C/playlist-create-songs.page:42 msgid "Click on Select." msgstr "Feu clic a Selecciona." #. (itstool) path: page/p #: C/playlist-create-albums.page:46 msgid "You can also create a playlist from specific songs." msgstr "" "Es pot crear una llista de reproducció a partir de cançons específiques." #. (itstool) path: steps/title #: C/playlist-create-albums.page:49 msgid "To add selected songs from an album:" msgstr "Per a afegir les cançons seleccionades d'un àlbum:" #. (itstool) path: item/p #: C/playlist-create-albums.page:51 msgid "Click on an album." msgstr "Feu clic a un àlbum." #. (itstool) path: item/p #: C/playlist-create-albums.page:54 msgid "Click on the check button." msgstr "Feu clic a la casella de selecció." #. (itstool) path: item/p #: C/playlist-create-albums.page:57 msgid "Select songs." msgstr "Seleccioneu cançons." #. (itstool) path: note/p #: C/playlist-create-albums.page:72 C/playlist-create-songs.page:47 #: C/playlist-create-artists.page:49 msgid "" "To select all the songs click Click on items to select themSelect All in the toolbar or press " "CtrlA." msgstr "" "Per a seleccionar totes les cançons feu clic a Feu clic als " "elements per a seleccionar-losSelecciona-ho tot a " "la barra d'eines o premeu CtrlA." #. (itstool) path: note/p #: C/playlist-create-albums.page:76 C/playlist-create-songs.page:51 #: C/playlist-create-artists.page:53 msgid "" "To clear the selection click Click on items to select themSelect None in the toolbar." msgstr "" "Per a netejar la selecció actual feu clic a Feu clic als " "elements per a seleccionar-losNo en seleccionis cap a la barra d'eines." #. (itstool) path: info/desc #: C/playlist-create-songs.page:18 msgid "Create playlist by selecting your favorite songs." msgstr "Crear una llista de reproducció seleccionant les cançons preferides." #. (itstool) path: page/title #: C/playlist-create-songs.page:21 msgid "Create playlists using songs" msgstr "Crear una llista de reproducció utilitzant cançons" #. (itstool) path: page/p #: C/playlist-create-songs.page:23 msgid "" "You can view all the songs by clicking on the Songs button." msgstr "" "Es poden veure totes les cançons fent clic al botó Cançons." #. (itstool) path: steps/title #: C/playlist-create-songs.page:27 msgid "To create a new playlist while in Songs view:" msgstr "" "Per a crear una nova llista de reproducció a la vista Cançons:" #. (itstool) path: item/p #: C/playlist-create-songs.page:32 msgid "Select all the songs you want to add to the playlist." msgstr "" "Seleccioneu totes les cançons que es vulguin afegir a la llista de " "reproducció." #. (itstool) path: item/p #: C/playlist-create-songs.page:38 msgid "" "Click on New Playlist and type a name for your " "playlist." msgstr "" "Feu clic a Llista de reproducció nova i escriure " "el nom de la llista." #. (itstool) path: info/desc #: C/playlist-create-artists.page:18 msgid "Create playlist by selecting your favorite artists." msgstr "Crear una llista de reproducció seleccionant els artistes preferits." #. (itstool) path: page/title #: C/playlist-create-artists.page:22 msgid "Create playlists using artists" msgstr "Crear una llista de reproducció utilitzant artistes" #. (itstool) path: page/p #: C/playlist-create-artists.page:24 msgid "" "You can view all the artists and their songs by clicking on the Artists button." msgstr "" "Es poden veure tots els artistes i les seves cançons fent clic al botó Artistes." #. (itstool) path: steps/title #: C/playlist-create-artists.page:28 msgid "To create a new playlist while in Artists view:" msgstr "" "Per a crear una nova llista de reproducció mentre s'està a la vista " "Artistes:" #. (itstool) path: item/p #: C/playlist-create-artists.page:33 msgid "Select all the artists whose songs you want to add to the playlist." msgstr "" "Seleccioneu tots els artistes les cançons dels quals vulgueu afegir a la " "llista de reproducció." #. (itstool) path: item/p #: C/playlist-create-artists.page:44 msgid "Click on Select." msgstr "Feu clic a Selecciona." #. (itstool) path: info/desc #: C/playlist-delete.page:18 msgid "Remove an unwanted playlist." msgstr "Suprimir una llista de reproducció no desitjada." #. (itstool) path: page/title #: C/playlist-delete.page:22 msgid "Delete a playlist" msgstr "Suprimir una llista de reproducció" #. (itstool) path: page/p #: C/playlist-delete.page:24 msgid "You can remove an old and unwanted playlist." msgstr "Es pot eliminar una llista de reproducció antiga i no desitjada." #. (itstool) path: item/p #: C/playlist-delete.page:29 msgid "Select the playlist which you want to delete." msgstr "Seleccioneu la llista de reproducció que es vulgui esborrar." #. (itstool) path: item/p #: C/playlist-delete.page:35 msgid "Click on Delete." msgstr "Feu clic a Suprimeix." #. (itstool) path: info/desc #: C/playlist-remove-songs.page:18 msgid "Delete songs from the playlist." msgstr "Esborrar cançons de la llista de reproducció." #. (itstool) path: page/title #: C/playlist-remove-songs.page:22 msgid "Remove songs" msgstr "Eliminar cançons" #. (itstool) path: page/p #: C/playlist-remove-songs.page:24 msgid "You can remove any unwanted songs from a playlist." msgstr "" "Es poden eliminar totes les cançons no desitjades d'una llista de " "reproducció." #. (itstool) path: item/p #: C/playlist-remove-songs.page:29 msgid "Select the playlist from which you want to remove songs." msgstr "" "Seleccioneu la llista de reproducció de la qual es volen eliminar cançons." #. (itstool) path: item/p #: C/playlist-remove-songs.page:32 msgid "Click on the check button on the toolbar." msgstr "Feu clic sobre la casella de verificació a la barra d'eines." #. (itstool) path: item/p #: C/playlist-remove-songs.page:35 msgid "Select all the songs which you want to remove." msgstr "Seleccioneu totes les cançons que es vulguin eliminar." #. (itstool) path: item/p #: C/playlist-remove-songs.page:38 msgid "Click on Remove from Playlist." msgstr "" "Feu clic a Suprimeix de la llista de reproducció." #. (itstool) path: info/desc #: C/playlist-repeat.page:18 msgid "Repeat all songs in the playlist or only the current song." msgstr "" "Repetir totes les cançons de la llista de reproducció o només la cançó " "actual." #. (itstool) path: page/title #: C/playlist-repeat.page:22 msgid "How do I play songs on repeat?" msgstr "Com es poden reproduir cançons en repetició?" #. (itstool) path: list/title #: C/playlist-repeat.page:25 msgid "In the taskbar, click on the button on the right side:" msgstr "A la barra de tasques, feu clic al botó del costat dret:" #. (itstool) path: item/p #: C/playlist-repeat.page:27 msgid "Select Repeat Song to repeat a single song." msgstr "" "Seleccioneu Repeteix la cançó per a repetir una única cançó." #. (itstool) path: item/p #: C/playlist-repeat.page:30 msgid "Select Repeat All to repeat all the song in the playlist." msgstr "" "Seleccioneu Repeteix-ho tot per a repetir totes les cançons de la " "llista de reproducció." #. (itstool) path: info/desc #: C/playlist-shuffle.page:18 msgid "Shuffle songs in the playlist." msgstr "Mesclar les cançons a la llista de reproducció." #. (itstool) path: page/title #: C/playlist-shuffle.page:22 msgid "How do I shuffle my songs?" msgstr "Com mesclar les cançons?" #. (itstool) path: page/p #: C/playlist-shuffle.page:24 msgid "" "In the taskbar, click on the button on right hand side and select " "Shuffle." msgstr "" "A la barra de tasques, fer clic al botó de la banda dreta i seleccioneu " "Mescla." #. (itstool) path: info/desc #: C/search.page:18 msgid "Search through your music collection." msgstr "Cercar a través de la col·lecció de música." #. (itstool) path: page/title #: C/search.page:22 msgid "Find music" msgstr "Trobar música" #. (itstool) path: page/p #: C/search.page:24 msgid "" "You can search your albums, artists, songs and playlists. Select what you " "want to search through then click the Search button and start " "searching." msgstr "" "Es poden cercar àlbums, artistes, cançons i llistes de reproducció. " "Seleccioneu el que voleu cercar i aleshores feu clic al botó Cerca i comenceu la cerca." #. (itstool) path: p/link #: C/legal.xml:5 msgid "Creative Commons Attribution-ShareAlike 3.0 Unported License" msgstr "Llicència Reconeixement-CompartirIgual 3.0 No adaptada" #. (itstool) path: license/p #: C/legal.xml:4 msgid "This work is licensed under a <_:link-1/>." msgstr "Aquesta obra està llicenciada sota una <_:link-1/>." 070701000000A1000041ED00000000000000000000000266968E4E00000000000000000000000000000000000000000000001900000000gnome-music-46.1/help/cs070701000000A2000081A400000000000000000000000166968E4E00003B1F000000000000000000000000000000000000001F00000000gnome-music-46.1/help/cs/cs.po# Czech translation for gnome-music. # Copyright (C) 2014 gnome-music's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-music package. # # Marek Černocký , 2014, 2015, 2016, 2021. # msgid "" msgstr "" "Project-Id-Version: gnome-music\n" "POT-Creation-Date: 2021-04-10 19:23+0000\n" "PO-Revision-Date: 2021-08-27 00:47+0200\n" "Last-Translator: Marek Černocký \n" "Language-Team: Czech \n" "Language: cs\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" "X-Generator: Gtranslator 2.91.6\n" #. Put one translator per line, in the form NAME , YEAR1, YEAR2 msgctxt "_" msgid "translator-credits" msgstr "Marek Černocký " #. (itstool) path: credit/name #: C/introduction.page:11 C/index.page:12 C/play-music.page:11 #: C/playlist-create-albums.page:11 C/playlist-create-songs.page:11 #: C/playlist-create-artists.page:11 C/playlist-delete.page:11 #: C/playlist-remove-songs.page:11 C/playlist-repeat.page:11 #: C/playlist-shuffle.page:11 C/search.page:11 msgid "Shobha Tyagi" msgstr "Shobha Tyagi" #. (itstool) path: credit/years #: C/introduction.page:13 C/index.page:14 C/play-music.page:13 #: C/playlist-create-albums.page:13 C/playlist-create-songs.page:13 #: C/playlist-create-artists.page:13 C/playlist-delete.page:13 #: C/playlist-remove-songs.page:13 C/playlist-repeat.page:13 #: C/playlist-shuffle.page:13 C/search.page:13 msgid "2014" msgstr "2014" #. (itstool) path: info/desc #. (itstool) path: page/p #: C/introduction.page:18 C/introduction.page:23 msgid "" "A simple and elegant replacement for using Files to show the " "music directory." msgstr "" "Jednoduchá a vytříbená náhrada za aplikaci Soubory pro zobrazení " "složky s hudbou." #. (itstool) path: page/title #: C/introduction.page:22 msgid "Introduction to Music" msgstr "Úvod do aplikace Hudba" #. (itstool) path: info/title #: C/index.page:6 msgctxt "link:trail" msgid "Music" msgstr "Hudba" #. (itstool) path: info/title #: C/index.page:7 msgctxt "link" msgid "Music" msgstr "Hudba" #. (itstool) path: info/title #: C/index.page:8 msgctxt "text" msgid "Music" msgstr "Hudba" #. (itstool) path: page/title #: C/index.page:19 msgid "<_:media-1/> Music" msgstr "<_:media-1/> Hudba" #. (itstool) path: section/title #: C/index.page:25 msgid "Create playlist" msgstr "Jak vytvořit seznam k přehrání" #. (itstool) path: section/title #: C/index.page:28 msgid "Play a song" msgstr "Jak přehrát skladbu" #. (itstool) path: section/title #: C/index.page:31 msgid "Remove songs and playlist" msgstr "Jak odstranit skladbu a seznam k přehrání" #. (itstool) path: info/desc #: C/play-music.page:18 msgid "Play your favorite songs." msgstr "Jak přehrát své oblíbené skladby." #. (itstool) path: page/title #: C/play-music.page:22 msgid "Play music" msgstr "Přehrávání hudby" #. (itstool) path: page/p #: C/play-music.page:24 msgid "" "You can play your favorite music by creating a playlist or by simply " "clicking on the song of your choice from any view." msgstr "" "Svoji oblíbenou hudbu si můžete přehrávat tak, že si vytvoříte seznamy k " "přehrání, nebo jednoduše jen kliknete na skladbu v libovolném výpisu." #. (itstool) path: steps/title #: C/play-music.page:28 C/playlist-delete.page:27 #: C/playlist-remove-songs.page:27 msgid "While in Playlists:" msgstr "Když jste v Seznamech k přehrání:" #. (itstool) path: item/p #: C/play-music.page:30 msgid "Select a playlist." msgstr "Vyberte seznam k přehrání." #. (itstool) path: item/p #: C/play-music.page:33 C/playlist-delete.page:32 msgid "Click on the gear button on the right hand side." msgstr "Klikněte na tlačítko s ozubeným kolem na pravé straně." #. (itstool) path: item/p #: C/play-music.page:36 msgid "Click on Play." msgstr "Klikněte na Přehrát." #. (itstool) path: info/desc #: C/playlist-create-albums.page:18 msgid "Add songs to playlists using albums." msgstr "Jak pomocí alb přidat skladby do seznamů k přehrání." #. (itstool) path: page/title #: C/playlist-create-albums.page:21 msgid "Create a playlist using albums" msgstr "Vytvoření seznamu k přehrání pomocí alb" #. (itstool) path: page/p #: C/playlist-create-albums.page:23 msgid "" "You can view all your albums by clicking on the Albums button." msgstr "" "Všechna svá alba si můžete zobrazit kliknutím na tlačítko Alba." #. (itstool) path: steps/title #: C/playlist-create-albums.page:27 msgid "To add all the songs in an album:" msgstr "Abyste přidali všechny skladby z alba:" #. (itstool) path: item/p #: C/playlist-create-albums.page:29 C/playlist-create-songs.page:29 #: C/playlist-create-artists.page:30 msgid "Click on the check button in the top-right of the window." msgstr "Klikněte na tlačítko se zaškrtávátkem v pravé horní části okna." #. (itstool) path: item/p #: C/playlist-create-albums.page:32 msgid "Select albums." msgstr "Vyberte alba." #. (itstool) path: item/p #: C/playlist-create-albums.page:35 C/playlist-create-albums.page:60 #: C/playlist-create-songs.page:35 C/playlist-create-artists.page:37 msgid "Click on the Add to Playlist button." msgstr "" "Klikněte na tlačítko Přidat do seznamu k přehrání." #. (itstool) path: item/p #: C/playlist-create-albums.page:38 C/playlist-create-albums.page:63 #: C/playlist-create-artists.page:40 msgid "Click on New Playlist and type a name for your playlist." msgstr "Klikněte na Nový seznam k přehrání a napište pro něj název." #. (itstool) path: item/p #: C/playlist-create-albums.page:42 C/playlist-create-albums.page:67 #: C/playlist-create-songs.page:42 msgid "Click on Select." msgstr "Klikněte na Vybrat." #. (itstool) path: page/p #: C/playlist-create-albums.page:46 msgid "You can also create a playlist from specific songs." msgstr "Seznam k přehrání můžete vytvořit také jen z konkrétních skladeb." #. (itstool) path: steps/title #: C/playlist-create-albums.page:49 msgid "To add selected songs from an album:" msgstr "Pro přidání vybraných skladeb z alba:" #. (itstool) path: item/p #: C/playlist-create-albums.page:51 msgid "Click on an album." msgstr "Klikněte na album." #. (itstool) path: item/p #: C/playlist-create-albums.page:54 msgid "Click on the check button." msgstr "Klikněte na tlačítko se zaškrtávátkem." #. (itstool) path: item/p #: C/playlist-create-albums.page:57 msgid "Select songs." msgstr "Vyberte skladby." #. (itstool) path: note/p #: C/playlist-create-albums.page:72 C/playlist-create-songs.page:47 #: C/playlist-create-artists.page:49 msgid "" "To select all the songs click Click on items to select themSelect All in the toolbar or press " "CtrlA." msgstr "" "Abyste vybrali všechny skladby, klikněte na Klikáním vyberte " "položkyVybrat vše na nástrojové liště nebo " "zmáčkněte CtrlA." #. (itstool) path: note/p #: C/playlist-create-albums.page:76 C/playlist-create-songs.page:51 #: C/playlist-create-artists.page:53 msgid "" "To clear the selection click Click on items to select themSelect None in the toolbar." msgstr "" "Pro zrušení výběru stačí kliknout na Klikáním vyberte položkyZrušit výběr na nástrojové liště." #. (itstool) path: info/desc #: C/playlist-create-songs.page:18 msgid "Create playlist by selecting your favorite songs." msgstr "Jak pomocí výběru svých oblíbených skladeb vytvořit seznam k přehrání." #. (itstool) path: page/title #: C/playlist-create-songs.page:21 msgid "Create playlists using songs" msgstr "Vytvoření seznamu k přehrání pomocí skladeb" #. (itstool) path: page/p #: C/playlist-create-songs.page:23 msgid "" "You can view all the songs by clicking on the Songs button." msgstr "" "Všechny své skladby si můžete zobrazit kliknutím na tlačítko Skladby." #. (itstool) path: steps/title #: C/playlist-create-songs.page:27 msgid "To create a new playlist while in Songs view:" msgstr "" "Když máte zobrazeny Skladby, nový seznam k přehrání vytvoříte " "následovně:" #. (itstool) path: item/p #: C/playlist-create-songs.page:32 msgid "Select all the songs you want to add to the playlist." msgstr "Vyberte všechny skladby, které chcete přidat do seznamu k přehrání." #. (itstool) path: item/p #: C/playlist-create-songs.page:38 msgid "" "Click on New Playlist and type a name for your " "playlist." msgstr "" "Klikněte na Nový seznam k přehrání a napište pro " "něj název." #. (itstool) path: info/desc #: C/playlist-create-artists.page:18 msgid "Create playlist by selecting your favorite artists." msgstr "Jak pomocí výběru svých oblíbených umělců vytvořit seznam k přehrání." #. (itstool) path: page/title #: C/playlist-create-artists.page:22 msgid "Create playlists using artists" msgstr "Vytvoření seznamu k přehrání pomocí umělců" #. (itstool) path: page/p #: C/playlist-create-artists.page:24 msgid "" "You can view all the artists and their songs by clicking on the Artists button." msgstr "" "Všechny své umělce si můžete zobrazit kliknutím na tlačítko Umělci." #. (itstool) path: steps/title #: C/playlist-create-artists.page:28 msgid "To create a new playlist while in Artists view:" msgstr "" "Když máte zobrazeny Umělce, nový seznam k přehrání vytvoříte " "následovně:" #. (itstool) path: item/p #: C/playlist-create-artists.page:33 msgid "Select all the artists whose songs you want to add to the playlist." msgstr "" "Vyberte všechny umělce, jejichž skladby chcete přidat do seznamu k přehrání." #. (itstool) path: item/p #: C/playlist-create-artists.page:44 msgid "Click on Select." msgstr "Klikněte na Vybrat." #. (itstool) path: info/desc #: C/playlist-delete.page:18 msgid "Remove an unwanted playlist." msgstr "Jak odstranit nepotřebný seznam k přehrání." #. (itstool) path: page/title #: C/playlist-delete.page:22 msgid "Delete a playlist" msgstr "Mazání seznamů k přehrání" #. (itstool) path: page/p #: C/playlist-delete.page:24 msgid "You can remove an old and unwanted playlist." msgstr "Staré a nepotřebné seznamy k přehrání můžete odstranit." #. (itstool) path: item/p #: C/playlist-delete.page:29 msgid "Select the playlist which you want to delete." msgstr "Vyberte seznam k přehrání, který chcete smazat." #. (itstool) path: item/p #: C/playlist-delete.page:35 msgid "Click on Delete." msgstr "Klikněte na Smazat." #. (itstool) path: info/desc #: C/playlist-remove-songs.page:18 msgid "Delete songs from the playlist." msgstr "Jak smazat skladbu ze seznamu k přehrání." #. (itstool) path: page/title #: C/playlist-remove-songs.page:22 msgid "Remove songs" msgstr "Odebrání skladby" #. (itstool) path: page/p #: C/playlist-remove-songs.page:24 msgid "You can remove any unwanted songs from a playlist." msgstr "Skladby, které už v seznamu k přehrání nechcete, můžete odebrat." #. (itstool) path: item/p #: C/playlist-remove-songs.page:29 msgid "Select the playlist from which you want to remove songs." msgstr "Vyberte seznam k přehrání, ze kterého chcete skladby odebrat." #. (itstool) path: item/p #: C/playlist-remove-songs.page:32 msgid "Click on the check button on the toolbar." msgstr "Klikněte na tlačítko se zaškrtávátkem na nástrojové liště." #. (itstool) path: item/p #: C/playlist-remove-songs.page:35 msgid "Select all the songs which you want to remove." msgstr "Vyberte skladby, které chcete odebrat." #. (itstool) path: item/p #: C/playlist-remove-songs.page:38 msgid "Click on Remove from Playlist." msgstr "Klikněte na Odebrat ze seznamu k přehrání." #. (itstool) path: info/desc #: C/playlist-repeat.page:18 msgid "Repeat all songs in the playlist or only the current song." msgstr "Opakování všech nebo jen jedné skladby stále dokola." #. (itstool) path: page/title #: C/playlist-repeat.page:22 msgid "How do I play songs on repeat?" msgstr "Jak mohu přehrávat sklady opakovaně dokola?" #. (itstool) path: list/title #: C/playlist-repeat.page:25 msgid "In the taskbar, click on the button on the right side:" msgstr "Na liště úloh klikněte na tlačítko na pravé straně:" #. (itstool) path: item/p #: C/playlist-repeat.page:27 msgid "Select Repeat Song to repeat a single song." msgstr "" "Aby se jedna skladba opakovat stále dokola, vyberte Opakovat skladbu." #. (itstool) path: item/p #: C/playlist-repeat.page:30 msgid "Select Repeat All to repeat all the song in the playlist." msgstr "" "Aby se opakovaly dokola všechny skladby v seznam k přehrání, vyberte " "Opakovat vše." #. (itstool) path: info/desc #: C/playlist-shuffle.page:18 msgid "Shuffle songs in the playlist." msgstr "Promíchání skladeb v seznamu k přehrání." #. (itstool) path: page/title #: C/playlist-shuffle.page:22 msgid "How do I shuffle my songs?" msgstr "Jak mohu skladby přehrávat v náhodném pořadí?" #. (itstool) path: page/p #: C/playlist-shuffle.page:24 msgid "" "In the taskbar, click on the button on right hand side and select " "Shuffle." msgstr "" "Na liště úloh klikněte na tlačítko na pravé straně a vyberte Náhodně " "zamíchat." #. (itstool) path: info/desc #: C/search.page:18 msgid "Search through your music collection." msgstr "Jak vyhledávat ve své sbírce hudby." #. (itstool) path: page/title #: C/search.page:22 msgid "Find music" msgstr "Hledání hudby" #. (itstool) path: page/p #: C/search.page:24 msgid "" "You can search your albums, artists, songs and playlists. Select what you " "want to search through then click the Search button and start " "searching." msgstr "" "Je možné vyhledávat svá alba, umělce, skladby a seznamy k přehrání. Co " "chcete hledat zvolte kliknutím na tlačítko Hledat a můžete s " "hledáním začít." #. (itstool) path: p/link #: C/legal.xml:5 msgid "Creative Commons Attribution-ShareAlike 3.0 Unported License" msgstr "Creative Commons Attribution-ShareAlike 3.0 Unported License" #. (itstool) path: license/p #: C/legal.xml:4 msgid "This work is licensed under a <_:link-1/>." msgstr "Tato práce ji licencována pod <_:link-1/>" 070701000000A3000041ED00000000000000000000000266968E4E00000000000000000000000000000000000000000000001900000000gnome-music-46.1/help/da070701000000A4000081A400000000000000000000000166968E4E000038CF000000000000000000000000000000000000001F00000000gnome-music-46.1/help/da/da.po# Danish translation for gnome-music. # Copyright (C) 2015 gnome-music's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-music package. # scootergrisen, 2015, 2020. # msgid "" msgstr "" "Project-Id-Version: gnome-music master\n" "POT-Creation-Date: 2021-04-29 10:20+0000\n" "PO-Revision-Date: 2022-01-26 19:41+0100\n" "Last-Translator: Alan Mortensen \n" "Language-Team: Danish \n" "Language: da\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Poedit 2.3\n" #. Put one translator per line, in the form NAME , YEAR1, YEAR2 msgctxt "_" msgid "translator-credits" msgstr "" "scootergrisen <>, 2015, 2020\n" "\n" "Dansk-gruppen\n" "Websted http://dansk-gruppen.dk\n" "E-mail " #. (itstool) path: credit/name #: C/introduction.page:11 C/index.page:12 C/play-music.page:11 #: C/playlist-create-albums.page:11 C/playlist-create-songs.page:11 #: C/playlist-create-artists.page:11 C/playlist-delete.page:11 #: C/playlist-remove-songs.page:11 C/playlist-repeat.page:11 #: C/playlist-shuffle.page:11 C/search.page:11 msgid "Shobha Tyagi" msgstr "Shobha Tyagi" #. (itstool) path: credit/years #: C/introduction.page:13 C/index.page:14 C/play-music.page:13 #: C/playlist-create-albums.page:13 C/playlist-create-songs.page:13 #: C/playlist-create-artists.page:13 C/playlist-delete.page:13 #: C/playlist-remove-songs.page:13 C/playlist-repeat.page:13 #: C/playlist-shuffle.page:13 C/search.page:13 msgid "2014" msgstr "2014" #. (itstool) path: info/desc #. (itstool) path: page/p #: C/introduction.page:18 C/introduction.page:23 msgid "" "A simple and elegant replacement for using Files to show the " "music directory." msgstr "" "En enkel og elegant erstatning for Filer til at vise musikmappen." #. (itstool) path: page/title #: C/introduction.page:22 msgid "Introduction to Music" msgstr "Introduktion til Musik" #. (itstool) path: info/title #: C/index.page:6 msgctxt "link:trail" msgid "Music" msgstr "Musik" #. (itstool) path: info/title #: C/index.page:7 msgctxt "link" msgid "Music" msgstr "Musik" #. (itstool) path: info/title #: C/index.page:8 msgctxt "text" msgid "Music" msgstr "Musik" #. (itstool) path: page/title #: C/index.page:19 msgid "<_:media-1/> Music" msgstr "<_:media-1/> Musik" #. (itstool) path: section/title #: C/index.page:25 msgid "Create playlist" msgstr "Opret afspilningsliste" #. (itstool) path: section/title #: C/index.page:28 msgid "Play a song" msgstr "Afspil en sang" #. (itstool) path: section/title #: C/index.page:31 msgid "Remove songs and playlist" msgstr "Fjern sange og afspilningsliste" #. (itstool) path: info/desc #: C/play-music.page:18 msgid "Play your favorite songs." msgstr "Afspil dine favoritsange." #. (itstool) path: page/title #: C/play-music.page:22 msgid "Play music" msgstr "Afspil musik" #. (itstool) path: page/p #: C/play-music.page:24 msgid "" "You can play your favorite music by creating a playlist or by simply " "clicking on the song of your choice from any view." msgstr "" "Du kan afspille din favoritmusik ved at oprette en afspilningsliste eller " "blot ved at klikke på en sang efter eget valg i enhver visning." #. (itstool) path: steps/title #: C/play-music.page:28 C/playlist-delete.page:27 #: C/playlist-remove-songs.page:27 msgid "While in Playlists:" msgstr "I Afspilningslister:" #. (itstool) path: item/p #: C/play-music.page:30 msgid "Select a playlist." msgstr "Vælg en afspilningsliste." #. (itstool) path: item/p #: C/play-music.page:33 C/playlist-delete.page:32 msgid "Click on the gear button on the right hand side." msgstr "Klik på tandhjulsknappen i højre side." #. (itstool) path: item/p #: C/play-music.page:36 msgid "Click on Play." msgstr "Klik på Afspil." #. (itstool) path: info/desc #: C/playlist-create-albums.page:18 msgid "Add songs to playlists using albums." msgstr "Tilføj sange til afspilningslister ved brug af album." #. (itstool) path: page/title #: C/playlist-create-albums.page:21 msgid "Create a playlist using albums" msgstr "Opret en afspilningsliste ved brug af album" #. (itstool) path: page/p #: C/playlist-create-albums.page:23 msgid "" "You can view all your albums by clicking on the Albums button." msgstr "" "Du kan vise alle dine album ved at klikke på knappen Album." #. (itstool) path: steps/title #: C/playlist-create-albums.page:27 msgid "To add all the songs in an album:" msgstr "Sådan tilføjes alle sangene i et album:" #. (itstool) path: item/p #: C/playlist-create-albums.page:29 C/playlist-create-songs.page:29 #: C/playlist-create-artists.page:30 msgid "Click on the check button in the top-right of the window." msgstr "Klik på afkrydsningsknappen i øverste højre hjørne af vinduet." #. (itstool) path: item/p #: C/playlist-create-albums.page:32 msgid "Select albums." msgstr "Vælg album." #. (itstool) path: item/p #: C/playlist-create-albums.page:35 C/playlist-create-albums.page:60 #: C/playlist-create-songs.page:35 C/playlist-create-artists.page:37 msgid "Click on the Add to Playlist button." msgstr "Klik på knappen Føj til afspilningsliste." #. (itstool) path: item/p #: C/playlist-create-albums.page:38 C/playlist-create-albums.page:63 #: C/playlist-create-artists.page:40 msgid "Click on New Playlist and type a name for your playlist." msgstr "" "Klik på Ny afspilningsliste og skriv et navn til din " "afspilningsliste." #. (itstool) path: item/p #: C/playlist-create-albums.page:42 C/playlist-create-albums.page:67 #: C/playlist-create-songs.page:42 msgid "Click on Select." msgstr "Klik på Vælg." #. (itstool) path: page/p #: C/playlist-create-albums.page:46 msgid "You can also create a playlist from specific songs." msgstr "Du kan også oprette en afspilningsliste ud fra bestemte sange." #. (itstool) path: steps/title #: C/playlist-create-albums.page:49 msgid "To add selected songs from an album:" msgstr "Sådan tilføjes valgte sange fra et album:" #. (itstool) path: item/p #: C/playlist-create-albums.page:51 msgid "Click on an album." msgstr "Klik på et album." #. (itstool) path: item/p #: C/playlist-create-albums.page:54 msgid "Click on the check button." msgstr "Klik på afkrydsningsknappen." #. (itstool) path: item/p #: C/playlist-create-albums.page:57 msgid "Select songs." msgstr "Vælg sange." #. (itstool) path: note/p #: C/playlist-create-albums.page:72 C/playlist-create-songs.page:47 #: C/playlist-create-artists.page:49 msgid "" "To select all the songs click Click on items to select themSelect All in the toolbar or press " "CtrlA." msgstr "" "For at vælge alle sange klikkes Klik på elementerne for at " "vælge demVælg alle i værktøjslinjen, eller med " "tastaturet CtrlA." #. (itstool) path: note/p #: C/playlist-create-albums.page:76 C/playlist-create-songs.page:51 #: C/playlist-create-artists.page:53 msgid "" "To clear the selection click Click on items to select themSelect None in the toolbar." msgstr "" "For at rydde valget klikkes på Klik på elementerne for at vælge " "demVælg ingen i værktøjslinjen." #. (itstool) path: info/desc #: C/playlist-create-songs.page:18 msgid "Create playlist by selecting your favorite songs." msgstr "Opret afspilningsliste ved at vælge dine favoritsange." #. (itstool) path: page/title #: C/playlist-create-songs.page:21 msgid "Create playlists using songs" msgstr "Opret afspilningslister ved brug af sange" #. (itstool) path: page/p #: C/playlist-create-songs.page:23 msgid "" "You can view all the songs by clicking on the Songs button." msgstr "" "Du kan vise alle dine sange ved at klikke på knappen Sange." #. (itstool) path: steps/title #: C/playlist-create-songs.page:27 msgid "To create a new playlist while in Songs view:" msgstr "" "Sådan oprettes en ny afspilningsliste mens du er i visningen Sange:" #. (itstool) path: item/p #: C/playlist-create-songs.page:32 msgid "Select all the songs you want to add to the playlist." msgstr "Vælg alle de sange, du vil tilføje til afspilningslisten." #. (itstool) path: item/p #: C/playlist-create-songs.page:38 msgid "" "Click on New Playlist and type a name for your " "playlist." msgstr "" "Klik på Ny afspilningsliste og skriv et navn til " "din afspilningsliste." #. (itstool) path: info/desc #: C/playlist-create-artists.page:18 msgid "Create playlist by selecting your favorite artists." msgstr "Opret afspilningsliste ved at vælge dine favoritkunstnere." #. (itstool) path: page/title #: C/playlist-create-artists.page:22 msgid "Create playlists using artists" msgstr "Opret afspilningslister ved brug af kunstnere" #. (itstool) path: page/p #: C/playlist-create-artists.page:24 msgid "" "You can view all the artists and their songs by clicking on the Artists button." msgstr "" "Du kan vise alle dine kunstnere og deres sange, ved at klikke på knappen " "Kunstnere." #. (itstool) path: steps/title #: C/playlist-create-artists.page:28 msgid "To create a new playlist while in Artists view:" msgstr "" "Sådan oprettes en ny afspilningsliste mens du er i visningen Kunstnere:" #. (itstool) path: item/p #: C/playlist-create-artists.page:33 msgid "Select all the artists whose songs you want to add to the playlist." msgstr "" "Vælg alle de kunstnere, hvis sange du vil tilføje til afspilningslisten." #. (itstool) path: item/p #: C/playlist-create-artists.page:44 msgid "Click on Select." msgstr "Klik på Vælg." #. (itstool) path: info/desc #: C/playlist-delete.page:18 msgid "Remove an unwanted playlist." msgstr "Fjern en uønsket afspilningsliste." #. (itstool) path: page/title #: C/playlist-delete.page:22 msgid "Delete a playlist" msgstr "Slet en afspilningsliste" #. (itstool) path: page/p #: C/playlist-delete.page:24 msgid "You can remove an old and unwanted playlist." msgstr "Du kan fjerne en gammel eller uønsket afspilningsliste." #. (itstool) path: item/p #: C/playlist-delete.page:29 msgid "Select the playlist which you want to delete." msgstr "Vælg den afspilningsliste du vil slette." #. (itstool) path: item/p #: C/playlist-delete.page:35 msgid "Click on Delete." msgstr "Klik på Slet." #. (itstool) path: info/desc #: C/playlist-remove-songs.page:18 msgid "Delete songs from the playlist." msgstr "Slet sange fra afspilningslisten." #. (itstool) path: page/title #: C/playlist-remove-songs.page:22 msgid "Remove songs" msgstr "Fjern sange" #. (itstool) path: page/p #: C/playlist-remove-songs.page:24 msgid "You can remove any unwanted songs from a playlist." msgstr "Du kan fjerne uønskede sange fra en afspilningsliste." #. (itstool) path: item/p #: C/playlist-remove-songs.page:29 msgid "Select the playlist from which you want to remove songs." msgstr "Vælg den afspilningsliste, hvorfra du vil fjerne sange." #. (itstool) path: item/p #: C/playlist-remove-songs.page:32 msgid "Click on the check button on the toolbar." msgstr "Klik på afkrydsningsknappen på værktøjslinjen." #. (itstool) path: item/p #: C/playlist-remove-songs.page:35 msgid "Select all the songs which you want to remove." msgstr "Vælg alle de sange du vil fjerne." #. (itstool) path: item/p #: C/playlist-remove-songs.page:38 msgid "Click on Remove from Playlist." msgstr "Klik på Fjern fra afspilningsliste." #. (itstool) path: info/desc #: C/playlist-repeat.page:18 msgid "Repeat all songs in the playlist or only the current song." msgstr "Gentag alle sange i afspilningslisten eller kun den aktuelle sang." #. (itstool) path: page/title #: C/playlist-repeat.page:22 msgid "How do I play songs on repeat?" msgstr "Hvordan gentager jeg sange?" #. (itstool) path: list/title #: C/playlist-repeat.page:25 msgid "In the taskbar, click on the button on the right side:" msgstr "Klik på knappen i højre side af opgavelinjen:" #. (itstool) path: item/p #: C/playlist-repeat.page:27 msgid "Select Repeat Song to repeat a single song." msgstr "Vælg Gentag sang for at gentage en enkelt sang." #. (itstool) path: item/p #: C/playlist-repeat.page:30 msgid "Select Repeat All to repeat all the song in the playlist." msgstr "" "Vælg Gentag alle for at gentage alle sange i afspilningslisten." #. (itstool) path: info/desc #: C/playlist-shuffle.page:18 msgid "Shuffle songs in the playlist." msgstr "Bland sange i afspilningslisten." #. (itstool) path: page/title #: C/playlist-shuffle.page:22 msgid "How do I shuffle my songs?" msgstr "Hvordan blander jeg mine sange?" #. (itstool) path: page/p #: C/playlist-shuffle.page:24 msgid "" "In the taskbar, click on the button on right hand side and select " "Shuffle." msgstr "Klik på knappen i højre side af opgavelinjen og vælg Bland." #. (itstool) path: info/desc #: C/search.page:18 msgid "Search through your music collection." msgstr "Søg i din musiksamling." #. (itstool) path: page/title #: C/search.page:22 msgid "Find music" msgstr "Find musik" #. (itstool) path: page/p #: C/search.page:24 msgid "" "You can search your albums, artists, songs and playlists. Select what you " "want to search through then click the Search button and start " "searching." msgstr "" "Du kan søge i dine album, kunstnere, sange og afspilningslister. Vælg hvad " "du vil søge i og klik så på knappen Søg og start søgningen." #. (itstool) path: p/link #: C/legal.xml:5 msgid "Creative Commons Attribution-ShareAlike 3.0 Unported License" msgstr "" "Creative Commons Kreditering-Deling på samme vilkår 3.0 Ikke porteret-licens" #. (itstool) path: license/p #: C/legal.xml:4 msgid "This work is licensed under a <_:link-1/>." msgstr "Værket er licenseret under en <_:link-1/>." 070701000000A5000041ED00000000000000000000000266968E4E00000000000000000000000000000000000000000000001900000000gnome-music-46.1/help/de070701000000A6000081A400000000000000000000000166968E4E00003BC1000000000000000000000000000000000000001F00000000gnome-music-46.1/help/de/de.po# German translation for gnome-music. # Copyright (C) 2014 gnome-music's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-music package. # Christian Kirbach , 2014-2015. # Mario Blättermann , 2016. # msgid "" msgstr "" "Project-Id-Version: gnome-music gnome-3-14\n" "POT-Creation-Date: 2021-04-10 19:23+0000\n" "PO-Revision-Date: 2021-09-14 20:11+0200\n" "Last-Translator: Tim Sabsch \n" "Language-Team: German \n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Poedit 3.0\n" #. Put one translator per line, in the form NAME , YEAR1, YEAR2 msgctxt "_" msgid "translator-credits" msgstr "" "Christian Kirbach , 2014, 2015\n" "Mario Blättermann , 2016" #. (itstool) path: credit/name #: C/introduction.page:11 C/index.page:12 C/play-music.page:11 #: C/playlist-create-albums.page:11 C/playlist-create-songs.page:11 #: C/playlist-create-artists.page:11 C/playlist-delete.page:11 #: C/playlist-remove-songs.page:11 C/playlist-repeat.page:11 #: C/playlist-shuffle.page:11 C/search.page:11 msgid "Shobha Tyagi" msgstr "Shobha Tyagi" #. (itstool) path: credit/years #: C/introduction.page:13 C/index.page:14 C/play-music.page:13 #: C/playlist-create-albums.page:13 C/playlist-create-songs.page:13 #: C/playlist-create-artists.page:13 C/playlist-delete.page:13 #: C/playlist-remove-songs.page:13 C/playlist-repeat.page:13 #: C/playlist-shuffle.page:13 C/search.page:13 msgid "2014" msgstr "2014" #. (itstool) path: info/desc #. (itstool) path: page/p #: C/introduction.page:18 C/introduction.page:23 msgid "" "A simple and elegant replacement for using Files to show the " "music directory." msgstr "" "Eine einfache und elegante Alternative zum Anzeigen des Musikordners mit " "Dateien." #. (itstool) path: page/title #: C/introduction.page:22 msgid "Introduction to Music" msgstr "Einführung in Musik" #. (itstool) path: info/title #: C/index.page:6 msgctxt "link:trail" msgid "Music" msgstr "Musik" #. (itstool) path: info/title #: C/index.page:7 msgctxt "link" msgid "Music" msgstr "Musik" #. (itstool) path: info/title #: C/index.page:8 msgctxt "text" msgid "Music" msgstr "Musik" #. (itstool) path: page/title #: C/index.page:19 msgid "<_:media-1/> Music" msgstr "<_:media-1/> Musik" #. (itstool) path: section/title #: C/index.page:25 msgid "Create playlist" msgstr "Wiedergabeliste anlegen" #. (itstool) path: section/title #: C/index.page:28 msgid "Play a song" msgstr "Titel wiedergeben" #. (itstool) path: section/title #: C/index.page:31 msgid "Remove songs and playlist" msgstr "Titel und Wiedergabeliste entfernen" #. (itstool) path: info/desc #: C/play-music.page:18 msgid "Play your favorite songs." msgstr "Geben Sie Ihre Lieblingsmusik wieder." #. (itstool) path: page/title #: C/play-music.page:22 msgid "Play music" msgstr "Musik abspielen" #. (itstool) path: page/p #: C/play-music.page:24 msgid "" "You can play your favorite music by creating a playlist or by simply " "clicking on the song of your choice from any view." msgstr "" "Erstellen Sie Wiedergabelisten und geben Sie Ihre Lieblingsmusik wieder, " "oder klicken Sie einfach zur Wiedergabe auf einen Musiktitel Ihrer Wahl in " "einer beliebigen Ansicht." #. (itstool) path: steps/title #: C/play-music.page:28 C/playlist-delete.page:27 #: C/playlist-remove-songs.page:27 msgid "While in Playlists:" msgstr "In den Wiedergabelisten:" #. (itstool) path: item/p #: C/play-music.page:30 msgid "Select a playlist." msgstr "Wählen Sie eine Wiedergabeliste." #. (itstool) path: item/p #: C/play-music.page:33 C/playlist-delete.page:32 msgid "Click on the gear button on the right hand side." msgstr "Klicken Sie auf den Knopf mit dem Zahnrad auf der rechten Seite." #. (itstool) path: item/p #: C/play-music.page:36 msgid "Click on Play." msgstr "Klicken Sie auf Wiedergabe." #. (itstool) path: info/desc #: C/playlist-create-albums.page:18 msgid "Add songs to playlists using albums." msgstr "Lieder zu Wiedergabelisten mit Hilfe von Alben hinzufügen." #. (itstool) path: page/title #: C/playlist-create-albums.page:21 msgid "Create a playlist using albums" msgstr "Eine Wiedergabeliste mit Hilfe von Alben anlegen" #. (itstool) path: page/p #: C/playlist-create-albums.page:23 msgid "" "You can view all your albums by clicking on the Albums button." msgstr "" "Schauen Sie sich alle Ihre Alben an, indem Sie auf den Knopf Alben klicken." #. (itstool) path: steps/title #: C/playlist-create-albums.page:27 msgid "To add all the songs in an album:" msgstr "So fügen Sie alle Titel eines Albums hinzu:" #. (itstool) path: item/p #: C/playlist-create-albums.page:29 C/playlist-create-songs.page:29 #: C/playlist-create-artists.page:30 msgid "Click on the check button in the top-right of the window." msgstr "" "Klicken Sie auf das Ankreuzfeld in der rechten oberen Ecke des Fensters." #. (itstool) path: item/p #: C/playlist-create-albums.page:32 msgid "Select albums." msgstr "Wählen Sie Alben." #. (itstool) path: item/p #: C/playlist-create-albums.page:35 C/playlist-create-albums.page:60 #: C/playlist-create-songs.page:35 C/playlist-create-artists.page:37 msgid "Click on the Add to Playlist button." msgstr "" "Klicken Sie auf Zur Wiedergabeliste hinzufügen." #. (itstool) path: item/p #: C/playlist-create-albums.page:38 C/playlist-create-albums.page:63 #: C/playlist-create-artists.page:40 msgid "Click on New Playlist and type a name for your playlist." msgstr "" "Klicken Sie auf Neue Wiedergabeliste und geben Sie einen Namen " "für Ihre Wiedergabeliste ein." #. (itstool) path: item/p #: C/playlist-create-albums.page:42 C/playlist-create-albums.page:67 #: C/playlist-create-songs.page:42 msgid "Click on Select." msgstr "Klicken Sie auf Wählen." #. (itstool) path: page/p #: C/playlist-create-albums.page:46 msgid "You can also create a playlist from specific songs." msgstr "Sie können auch eine Wiedergabeliste anhand bestimmter Titel anlegen." #. (itstool) path: steps/title #: C/playlist-create-albums.page:49 msgid "To add selected songs from an album:" msgstr "So fügen Sie ausgewählte Titel eines Albums hinzu:" #. (itstool) path: item/p #: C/playlist-create-albums.page:51 msgid "Click on an album." msgstr "Klicken Sie auf ein Album." #. (itstool) path: item/p #: C/playlist-create-albums.page:54 msgid "Click on the check button." msgstr "Klicken Sie auf den Ankreuzknopf." #. (itstool) path: item/p #: C/playlist-create-albums.page:57 msgid "Select songs." msgstr "Wählen Sie einige Titel." #. (itstool) path: note/p #: C/playlist-create-albums.page:72 C/playlist-create-songs.page:47 #: C/playlist-create-artists.page:49 msgid "" "To select all the songs click Click on items to select themSelect All in the toolbar or press " "CtrlA." msgstr "" "Klicken Sie auf Objekte per Klick auswählenAlle " "auswählen in der Werkzeugleiste, um alle Titel auszuwählen, " "oder drücken Sie StrgA." #. (itstool) path: note/p #: C/playlist-create-albums.page:76 C/playlist-create-songs.page:51 #: C/playlist-create-artists.page:53 msgid "" "To clear the selection click Click on items to select themSelect None in the toolbar." msgstr "" "Klicken Sie auf Objekte per Klick auswählenKeine " "auswählen in der Werkzeugleiste, um die Auswahl aufzuheben." #. (itstool) path: info/desc #: C/playlist-create-songs.page:18 msgid "Create playlist by selecting your favorite songs." msgstr "Eine Wiedergabeliste durch Wählen Ihrer Lieblingstitel anlegen." #. (itstool) path: page/title #: C/playlist-create-songs.page:21 msgid "Create playlists using songs" msgstr "Wiedergabelisten mit Hilfe von Titeln anlegen" #. (itstool) path: page/p #: C/playlist-create-songs.page:23 msgid "" "You can view all the songs by clicking on the Songs button." msgstr "" "Schauen Sie sich alle Titel an, indem Sie auf den Knopf Titel klicken." #. (itstool) path: steps/title #: C/playlist-create-songs.page:27 msgid "To create a new playlist while in Songs view:" msgstr "" "So erstellen Sie eine neue Wiedergabeliste in der Titel-Ansicht:" #. (itstool) path: item/p #: C/playlist-create-songs.page:32 msgid "Select all the songs you want to add to the playlist." msgstr "Wählen Sie alle Titel, die Sie zur Wiedergabeliste hinzufügen wollen." #. (itstool) path: item/p #: C/playlist-create-songs.page:38 msgid "" "Click on New Playlist and type a name for your " "playlist." msgstr "" "Klicken Sie auf Neue Wiedergabeliste und geben " "Sie einen Namen für Ihre Wiedergabeliste ein." #. (itstool) path: info/desc #: C/playlist-create-artists.page:18 msgid "Create playlist by selecting your favorite artists." msgstr "Eine Wiedergabeliste durch Wählen Ihrer Lieblingskünstler anlegen." #. (itstool) path: page/title #: C/playlist-create-artists.page:22 msgid "Create playlists using artists" msgstr "Wiedergabelisten mit Hilfe von Künstlern anlegen" #. (itstool) path: page/p #: C/playlist-create-artists.page:24 msgid "" "You can view all the artists and their songs by clicking on the Artists button." msgstr "" "Schauen Sie sich alle Künstler und deren Titel an, indem Sie auf den Knopf " "Künstler klicken." #. (itstool) path: steps/title #: C/playlist-create-artists.page:28 msgid "To create a new playlist while in Artists view:" msgstr "" "So erstellen Sie eine neue Wiedergabeliste in der Künstler-Ansicht:" #. (itstool) path: item/p #: C/playlist-create-artists.page:33 msgid "Select all the artists whose songs you want to add to the playlist." msgstr "" "Wählen Sie alle Künstler, deren Titel Sie zur Wiedergabeliste hinzufügen " "möchten." #. (itstool) path: item/p #: C/playlist-create-artists.page:44 msgid "Click on Select." msgstr "Klicken Sie auf Wählen." #. (itstool) path: info/desc #: C/playlist-delete.page:18 msgid "Remove an unwanted playlist." msgstr "Eine unerwünschte Wiedergabeliste entfernen." #. (itstool) path: page/title #: C/playlist-delete.page:22 msgid "Delete a playlist" msgstr "Eine Wiedergabeliste löschen" #. (itstool) path: page/p #: C/playlist-delete.page:24 msgid "You can remove an old and unwanted playlist." msgstr "Sie können eine alte und unerwünschte Wiedergabeliste löschen." #. (itstool) path: item/p #: C/playlist-delete.page:29 msgid "Select the playlist which you want to delete." msgstr "Wählen Sie die Wiedergabeliste aus, die Sie löschen wollen." #. (itstool) path: item/p #: C/playlist-delete.page:35 msgid "Click on Delete." msgstr "Klicken Sie auf Löschen." #. (itstool) path: info/desc #: C/playlist-remove-songs.page:18 msgid "Delete songs from the playlist." msgstr "So löschen Sie Titel aus der Wiedergabeliste." #. (itstool) path: page/title #: C/playlist-remove-songs.page:22 msgid "Remove songs" msgstr "Titel entfernen" #. (itstool) path: page/p #: C/playlist-remove-songs.page:24 msgid "You can remove any unwanted songs from a playlist." msgstr "Sie können unerwünschte Titel aus einer Wiedergabeliste entfernen." #. (itstool) path: item/p #: C/playlist-remove-songs.page:29 msgid "Select the playlist from which you want to remove songs." msgstr "Wählen Sie die Wiedergabeliste, aus der Sie Titel löschen wollen." #. (itstool) path: item/p #: C/playlist-remove-songs.page:32 msgid "Click on the check button on the toolbar." msgstr "Klicken Sie auf den Ankreuzknopf in der Werkzeugleiste." #. (itstool) path: item/p #: C/playlist-remove-songs.page:35 msgid "Select all the songs which you want to remove." msgstr "Wählen Sie alle Titel, die Sie entfernen wollen." #. (itstool) path: item/p #: C/playlist-remove-songs.page:38 msgid "Click on Remove from Playlist." msgstr "" "Klicken Sie auf Aus der Wiedergabeliste entfernen." #. (itstool) path: info/desc #: C/playlist-repeat.page:18 msgid "Repeat all songs in the playlist or only the current song." msgstr "" "Alle Titel der Wiedergabeliste oder nur den aktuellen Titel wiederholen." #. (itstool) path: page/title #: C/playlist-repeat.page:22 msgid "How do I play songs on repeat?" msgstr "Wie werden Titel wiederholt wiedergegeben?" #. (itstool) path: list/title #: C/playlist-repeat.page:25 msgid "In the taskbar, click on the button on the right side:" msgstr "Klicken Sie in der Programmleiste auf den Knopf auf der rechten Seite:" #. (itstool) path: item/p #: C/playlist-repeat.page:27 msgid "Select Repeat Song to repeat a single song." msgstr "" "Wählen Sie Titel wiederholen, um einen einzelnen Titel zu " "wiederholen." #. (itstool) path: item/p #: C/playlist-repeat.page:30 msgid "Select Repeat All to repeat all the song in the playlist." msgstr "" "Wählen Sie Alle wiederholen, um alle Titel in der Wiedergabeliste " "zu wiederholen." #. (itstool) path: info/desc #: C/playlist-shuffle.page:18 msgid "Shuffle songs in the playlist." msgstr "So mischen Sie die Titel der Wiedergabeliste." #. (itstool) path: page/title #: C/playlist-shuffle.page:22 msgid "How do I shuffle my songs?" msgstr "Wie mischt man eigene Titel?" #. (itstool) path: page/p #: C/playlist-shuffle.page:24 msgid "" "In the taskbar, click on the button on right hand side and select " "Shuffle." msgstr "" "Klicken Sie in der Programmleiste auf den Knopf auf der rechten Seite und " "wählen Sie Mischen." #. (itstool) path: info/desc #: C/search.page:18 msgid "Search through your music collection." msgstr "Durchsuchen Sie Ihre Musiksammlung." #. (itstool) path: page/title #: C/search.page:22 msgid "Find music" msgstr "Musik suchen" #. (itstool) path: page/p #: C/search.page:24 msgid "" "You can search your albums, artists, songs and playlists. Select what you " "want to search through then click the Search button and start " "searching." msgstr "" "Durchsuchen Sie Ihre Alben, Künstler, Titel und Wiedergabelisten. Wählen " "Sie, wo Sie überall suchen möchten und klicken Sie dann auf den Knopf " "Suchen." #. (itstool) path: p/link #: C/legal.xml:5 msgid "Creative Commons Attribution-ShareAlike 3.0 Unported License" msgstr "" "Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 " "nicht angepasst" #. (itstool) path: license/p #: C/legal.xml:4 msgid "This work is licensed under a <_:link-1/>." msgstr "Dieses Werk ist unter <_:link-1/> lizenziert." 070701000000A7000041ED00000000000000000000000266968E4E00000000000000000000000000000000000000000000001900000000gnome-music-46.1/help/el070701000000A8000081A400000000000000000000000166968E4E000049AC000000000000000000000000000000000000001F00000000gnome-music-46.1/help/el/el.po# Greek translation for gnome-music. # Copyright (C) 2014 gnome-music's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-music package. # Dimitris Spingos , 2014. # Dimitris Spingos (Δημήτρης Σπίγγος) , 2014. msgid "" msgstr "" "Project-Id-Version: gnome-music gnome-3-12\n" "POT-Creation-Date: 2015-10-10 07:53+0000\n" "PO-Revision-Date: 2015-10-10 18:17+0300\n" "Last-Translator: Tom Tryfonidis \n" "Language-Team: www.gnome.gr\n" "Language: el\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Poedit 1.8.5\n" "X-Project-Style: gnome\n" #. Put one translator per line, in the form NAME , YEAR1, YEAR2 msgctxt "_" msgid "translator-credits" msgstr "" "Ελληνική μεταφραστική ομάδα GNOME , 2014-2015\n" "Μαρία Μαυρίδου , 2014\n" "Δημήτρης Σπίγγος , 2014\n" "Θάνος Τρυφωνίδης , 2015" #. (itstool) path: credit/name #: C/introduction.page:11 C/index.page:11 C/play-music.page:11 #: C/playlist-create-albums.page:11 C/playlist-create-songs.page:11 #: C/playlist-create-artists.page:11 C/playlist-delete.page:11 #: C/playlist-remove-songs.page:11 C/playlist-repeat.page:11 #: C/playlist-shuffle.page:11 C/search.page:11 msgid "Shobha Tyagi" msgstr "Shobha Tyagi" #. (itstool) path: credit/years #: C/introduction.page:13 C/index.page:13 C/play-music.page:13 #: C/playlist-create-albums.page:13 C/playlist-create-songs.page:13 #: C/playlist-create-artists.page:13 C/playlist-delete.page:13 #: C/playlist-remove-songs.page:13 C/playlist-repeat.page:13 #: C/playlist-shuffle.page:13 C/search.page:13 msgid "2014" msgstr "2014" #. (itstool) path: info/desc #. (itstool) path: page/p #: C/introduction.page:18 C/introduction.page:23 msgid "" "A simple and elegant replacement for using files to show the music directory." msgstr "" "Μια απλή και κομψή αντικατάσταση για χρήση αρχείων που εμφανίζουν τον " "κατάλογο μουσικής." #. (itstool) path: page/title #: C/introduction.page:22 msgid "Introduction to Music" msgstr "Εισαγωγή στη μουσική" #. (itstool) path: info/title #: C/index.page:6 msgctxt "link" msgid "Music" msgstr "Μουσική" #. (itstool) path: info/title #: C/index.page:7 msgctxt "text" msgid "Music" msgstr "Μουσική" #. (itstool) path: page/title #: C/index.page:18 msgid "<_:media-1/> Music" msgstr "<_:media-1/> Μουσική" #. (itstool) path: section/title #: C/index.page:25 msgid "Create playlist" msgstr "Δημιουργία λίστας αναπαραγωγής" #. (itstool) path: section/title #: C/index.page:28 msgid "Play a song" msgstr "Αναπαραγωγή τραγουδιού" #. (itstool) path: section/title #: C/index.page:31 msgid "Remove songs and playlist" msgstr "Αφαίρεση τραγουδιών και λίστας αναπαραγωγής" #. (itstool) path: info/desc #: C/play-music.page:18 msgid "Play your favorite songs." msgstr "Αναπαράξτε τα αγαπημένα σας τραγούδια." #. (itstool) path: page/title #: C/play-music.page:22 msgid "Play music" msgstr "Αναπαραγωγή μουσικής" #. (itstool) path: page/p #: C/play-music.page:24 msgid "" "You can play your favorite music by creating a playlist or by simply " "clicking on the song of your choice from any view." msgstr "" "Μπορείτε να παίξετε την αγαπημένη μουσική σας δημιουργώντας μια λίστα " "αναπαραγωγής ή πατώντας απλά στο τραγούδι της επιλογής σας από οποιαδήποτε " "προβολή." #. (itstool) path: steps/title #: C/play-music.page:28 C/playlist-delete.page:27 #: C/playlist-remove-songs.page:27 msgid "While in Playlists:" msgstr "Ενώ βρίσκεστε στις Λίστες αναπαραγωγής:" #. (itstool) path: item/p #: C/play-music.page:30 msgid "Select a playlist." msgstr "Επιλέξτε μια λίστα αναπαραγωγής." #. (itstool) path: item/p #: C/play-music.page:33 C/playlist-delete.page:32 msgid "Click on the gear button on the right hand side." msgstr "Κάντε κλικ στο πλήκτρο γραναζιού στα δεξιά." #. (itstool) path: item/p #: C/play-music.page:36 msgid "Click on Play." msgstr "Κάντε κλικ στην Αναπαραγωγή." #. (itstool) path: info/desc #: C/playlist-create-albums.page:18 msgid "Add songs to playlists using albums." msgstr "Προσθέστε τραγούδια στις λίστες αναπαραγωγής χρησιμοποιώντας δίσκους." #. (itstool) path: page/title #: C/playlist-create-albums.page:21 msgid "Create a playlist using albums" msgstr "Δημιουργήστε μια λίστα αναπαραγωγής χρησιμοποιώντας δίσκους" #. (itstool) path: page/p #: C/playlist-create-albums.page:23 msgid "" "You can view all your albums by clicking on the Albums button." msgstr "" "Μπορείτε να προβάλετε όλους τους δίσκους σας κάνοντας κλικ στο πλήκτρο Δίσκοι." #. (itstool) path: steps/title #: C/playlist-create-albums.page:27 msgid "To add all the songs in an album:" msgstr "Για να προσθέσετε όλα τα τραγούδια σε έναν δίσκο:" #. (itstool) path: item/p #: C/playlist-create-albums.page:29 C/playlist-create-songs.page:29 #: C/playlist-create-artists.page:30 msgid "Click on the check button in the top-right of the window." msgstr "Κάντε κλικ στο κουμπί ελέγχου στα πάνω δεξιά του παραθύρου." #. (itstool) path: item/p #: C/playlist-create-albums.page:32 msgid "Select albums." msgstr "Επιλέξτε τους δίσκους." #. (itstool) path: item/p #: C/playlist-create-albums.page:35 C/playlist-create-albums.page:60 #: C/playlist-create-songs.page:35 C/playlist-create-artists.page:37 msgid "Click on the Add to Playlist button." msgstr "" "Κάντε κλικ στο κουμπί Προσθήκη στην λίστα " "αναπαραγωγής." #. (itstool) path: item/p #: C/playlist-create-albums.page:38 C/playlist-create-albums.page:63 #: C/playlist-create-artists.page:40 msgid "Click on New Playlist and type a name for your playlist." msgstr "" "Κάντε κλικ στο Νέα λίστα αναπαραγωγής και πληκτρολογήστε ένα " "όνομα για την λίστα αναπαραγωγής." #. (itstool) path: item/p #: C/playlist-create-albums.page:42 C/playlist-create-albums.page:67 #: C/playlist-create-songs.page:42 msgid "Click on Select." msgstr "Κάντε κλικ στο Επιλογή." #. (itstool) path: page/p #: C/playlist-create-albums.page:46 msgid "You can also create a playlist from specific songs." msgstr "" "Μπορείτε επίσης να δημιουργήσετε μια λίστα αναπαραγωγής από συγκεκριμένα " "τραγούδια." #. (itstool) path: steps/title #: C/playlist-create-albums.page:49 msgid "To add selected songs from an album:" msgstr "Για να προσθέσετε επιλεγμένα τραγούδια από έναν δίσκο:" #. (itstool) path: item/p #: C/playlist-create-albums.page:51 msgid "Click on an album." msgstr "Κάντε κλικ σε έναν δίσκο." #. (itstool) path: item/p #: C/playlist-create-albums.page:54 msgid "Click on the check button." msgstr "Κάντε κλικ στο πλήκτρο ελέγχου." #. (itstool) path: item/p #: C/playlist-create-albums.page:57 msgid "Select songs." msgstr "Επιλέξτε τα τραγούδια." #. (itstool) path: note/p #: C/playlist-create-albums.page:72 C/playlist-create-songs.page:47 #: C/playlist-create-artists.page:49 msgid "" "To select all the songs click Click on items to select themSelect All in the toolbar or press " "CtrlA." msgstr "" "Για να επιλέξετε όλα τα τραγούδια κάντε κλικ στο Πατήστε σε " "αντικείμενα για να τα επιλέξετεΕπιλογή όλων στην " "εργαλειοθήκη ή πατήστε CtrlA." #. (itstool) path: note/p #: C/playlist-create-albums.page:76 C/playlist-create-songs.page:51 #: C/playlist-create-artists.page:53 msgid "" "To clear the selection click Click on items to select themSelect None in the toolbar." msgstr "" "Για να σβήσετε την επιλογή πατήστε Πάτημα στα στοιχεία για να " "τα επιλέξετεΚαμία επιλογή στην εργαλειοθήκη." #. (itstool) path: info/desc #: C/playlist-create-songs.page:18 msgid "Create playlist by selecting your favorite songs." msgstr "" "Δημιουργήστε λίστες αναπαραγωγής επιλέγοντας τα αγαπημένα σας τραγούδια." #. (itstool) path: page/title #: C/playlist-create-songs.page:21 msgid "Create playlists using songs" msgstr "Δημιουργία λιστών αναπαραγωγής χρησιμοποιώντας τραγούδια" #. (itstool) path: page/p #: C/playlist-create-songs.page:23 msgid "" "You can view all the songs by clicking on the Songs button." msgstr "" "Μπορείτε να προβάλετε όλα τα τραγούδια πατώντας το κουμπί Τραγούδια." #. (itstool) path: steps/title #: C/playlist-create-songs.page:27 msgid "To create a new playlist while in Songs view:" msgstr "" "Για να δημιουργήσετε μια νέα λίστα αναπαραγωγής ενώ είστε στην προβολή " "Τραγούδια:" #. (itstool) path: item/p #: C/playlist-create-songs.page:32 msgid "Select all the songs you want to add to the playlist." msgstr "" "Επιλέξτε όλα τα τραγούδια που θέλετε να προσθέσετε στη λίστα αναπαραγωγής." #. (itstool) path: item/p #: C/playlist-create-songs.page:38 msgid "" "Click on New Playlist and type a name for your " "playlist." msgstr "" "Κάντε κλικ στο Νέα λίστα αναπαραγωγής και " "πληκτρολογήστε ένα όνομα για την λίστα αναπαραγωγής." #. (itstool) path: info/desc #: C/playlist-create-artists.page:18 msgid "Create playlist by selecting your favorite artists." msgstr "" "Δημιουργήστε λίστες αναπαραγωγής επιλέγοντας τους αγαπημένους σας " "καλλιτέχνες." #. (itstool) path: page/title #: C/playlist-create-artists.page:22 msgid "Create playlists using artists" msgstr "Δημιουργία λιστών αναπαραγωγής χρησιμοποιώντας καλλιτέχνες" #. (itstool) path: page/p #: C/playlist-create-artists.page:24 msgid "" "You can view all the artists and their songs by clicking on the Artists button." msgstr "" "Μπορείτε να προβάλετε όλους τους καλλιτέχνες και τα τραγούδια τους κάνοντας " "κλικ στο κουμπί Καλλιτέχνες." #. (itstool) path: steps/title #: C/playlist-create-artists.page:28 msgid "To create a new playlist while in Artists view:" msgstr "" "Για να δημιουργήσετε μια νέα λίστα αναπαραγωγής ενώ είσαστε στην προβολή " "Καλλιτέχνες:" #. (itstool) path: item/p #: C/playlist-create-artists.page:33 msgid "Select all the artists whose songs you want to add to the playlist." msgstr "" "Επιλέξτε όλους τους καλλιτέχνες των οποίων τα τραγούδια θέλετε να προσθέσετε " "στη λίστα αναπαραγωγής." #. (itstool) path: item/p #: C/playlist-create-artists.page:44 msgid "Click on Select." msgstr "Κάντε κλικ στο Επιλογή." #. (itstool) path: info/desc #: C/playlist-delete.page:18 msgid "Remove an unwanted playlist." msgstr "Αφαιρέστε μια ανεπιθύμητη λίστα αναπαραγωγής." #. (itstool) path: page/title #: C/playlist-delete.page:22 msgid "Delete a playlist" msgstr "Διαγραφή λίστας αναπαραγωγής" #. (itstool) path: page/p #: C/playlist-delete.page:24 msgid "You can remove an old and unwanted playlist." msgstr "Μπορείτε να αφαιρέσετε μια παλιά και ανεπιθύμητη λίστα αναπαραγωγής." #. (itstool) path: item/p #: C/playlist-delete.page:29 msgid "Select the playlist which you want to delete." msgstr "Επιλέξτε τη λίστα αναπαραγωγής που θέλετε να διαγράψετε." #. (itstool) path: item/p #: C/playlist-delete.page:35 msgid "Click on Delete." msgstr "Κάντε κλικ στο Διαγραφή." #. (itstool) path: info/desc #: C/playlist-remove-songs.page:18 msgid "Delete songs from the playlist." msgstr "Διαγράψτε τραγούδια από τη λίστα αναπαραγωγής." #. (itstool) path: page/title #: C/playlist-remove-songs.page:22 msgid "Remove songs" msgstr "Αφαίρεση τραγουδιών" #. (itstool) path: page/p #: C/playlist-remove-songs.page:24 msgid "You can remove any unwanted songs from a playlist." msgstr "" "Μπορείτε να αφαιρέσετε οποιαδήποτε ανεπιθύμητα τραγούδια από μια λίστα " "αναπαραγωγής." #. (itstool) path: item/p #: C/playlist-remove-songs.page:29 msgid "Select the playlist from which you want to remove songs." msgstr "" "Επιλέξτε μια λίστα αναπαραγωγής από την οποία θέλετε να αφαιρέσετε τραγούδια." #. (itstool) path: item/p #: C/playlist-remove-songs.page:32 msgid "Click on the check button on the toolbar." msgstr "Κάντε κλικ στο κουμπί ελέγχου στην εργαλειοθήκη." #. (itstool) path: item/p #: C/playlist-remove-songs.page:35 msgid "Select all the songs which you want to remove." msgstr "Επιλέξτε όλα τα τραγούδια που θέλετε να αφαιρέσετε." #. (itstool) path: item/p #: C/playlist-remove-songs.page:38 msgid "Click on Remove from Playlist." msgstr "" "Πατήστε το Αφαίρεση από την λίστα αναπαραγωγής." #. (itstool) path: info/desc #: C/playlist-repeat.page:18 msgid "Repeat all songs in the playlist or only the current song." msgstr "" "Αναπαράξτε όλα τα τραγούδια της λίστας αναπαραγωγής ή μόνο του τρέχοντος " "τραγουδιού." #. (itstool) path: page/title #: C/playlist-repeat.page:22 msgid "How do I play songs on repeat?" msgstr "Πώς παίζω τραγούδια σε επανάληψη;" #. (itstool) path: list/title #: C/playlist-repeat.page:25 msgid "In the taskbar, click on the button on the right side:" msgstr "Στην γραμμή εργασιών, κάντε κλικ στο κουμπί στα δεξιά:" #. (itstool) path: item/p #: C/playlist-repeat.page:27 msgid "Select Repeat Song to repeat a single song." msgstr "" "Επιλέξτε Επανάληψη τραγουδιού για να επαναλάβετε ένα μεμονωμένο " "τραγούδι." #. (itstool) path: item/p #: C/playlist-repeat.page:30 msgid "Select Repeat All to repeat all the song in the playlist." msgstr "" "Επιλέξτε Επανάληψη όλων για να επαναλάβετε όλα τα τραγούδια στην " "λίστα αναπαραγωγής." #. (itstool) path: info/desc #: C/playlist-shuffle.page:18 msgid "Shuffle songs in the playlist." msgstr "Παίξτε τυχαία τα τραγούδια σας στην λίστα αναπαραγωγής." #. (itstool) path: page/title #: C/playlist-shuffle.page:22 msgid "How do I shuffle my songs?" msgstr "Πώς παίζω τυχαία τα τραγούδια μου;" #. (itstool) path: page/p #: C/playlist-shuffle.page:24 msgid "" "In the taskbar, click on the button on right hand side and select " "Shuffle." msgstr "" "Στην γραμμή εργασιών, κάντε κλικ στο κουμπί στα δεξιά και επιλέξτε " "Τυχαία σειρά." #. (itstool) path: info/desc #: C/search.page:18 msgid "Search through your music collection." msgstr "Αναζήτηση μέσα από τη μουσική συλλογή σας." #. (itstool) path: page/title #: C/search.page:22 msgid "Find music" msgstr "Ααναζήτηση μουσικής" #. (itstool) path: page/p #: C/search.page:24 msgid "" "You can search your albums, artists, songs and playlists. Select what you " "want to search through then click the Search button and start " "searching." msgstr "" "Μπορείτε να αναζητήσετε τους δίσκους σας, τους καλλιτέχνες, τα τραγούδια και " "τις λίστες αναπαραγωγής. Επιλέξτε τι θέλετε να αναζητήστε και έπειτα πατήστε " "το κουμπί Αναζήτηση για να ξεκινήσετε την αναζήτηση." #. (itstool) path: p/link #: C/legal.xml:5 msgid "Creative Commons Attribution-ShareAlike 3.0 Unported License" msgstr "Άδεια Creative Commons Attribution-ShareAlike 3.0 Unported" #. (itstool) path: license/p #: C/legal.xml:4 msgid "This work is licensed under a <_:link-1/>." msgstr "Αυτό το έργο κυκλοφορεί υπό την <_:link-1/>." 070701000000A9000041ED00000000000000000000000266968E4E00000000000000000000000000000000000000000000001900000000gnome-music-46.1/help/es070701000000AA000081A400000000000000000000000166968E4E00003C23000000000000000000000000000000000000001F00000000gnome-music-46.1/help/es/es.po# Spanish translation for gnome-music. # Copyright (C) 2014 gnome-music's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-music package. # FIRST AUTHOR , YEAR. # Daniel Mustieles , 2014, 2015, 2016. # msgid "" msgstr "" "Project-Id-Version: gnome-music master\n" "POT-Creation-Date: 2021-09-10 15:42+0000\n" "PO-Revision-Date: 2021-09-10 17:41+0200\n" "Last-Translator: Daniel Mustieles \n" "Language-Team: es \n" "Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Poedit 3.0\n" #. Put one translator per line, in the form NAME , YEAR1, YEAR2 msgctxt "_" msgid "translator-credits" msgstr "Daniel Mustieles , 2014 - 2016" #. (itstool) path: credit/name #: C/introduction.page:11 C/index.page:12 C/play-music.page:11 #: C/playlist-create-albums.page:11 C/playlist-create-songs.page:11 #: C/playlist-create-artists.page:11 C/playlist-delete.page:11 #: C/playlist-remove-songs.page:11 C/playlist-repeat.page:11 #: C/playlist-shuffle.page:11 C/search.page:11 msgid "Shobha Tyagi" msgstr "Shobha Tyagi" #. (itstool) path: credit/years #: C/introduction.page:13 C/index.page:14 C/play-music.page:13 #: C/playlist-create-albums.page:13 C/playlist-create-songs.page:13 #: C/playlist-create-artists.page:13 C/playlist-delete.page:13 #: C/playlist-remove-songs.page:13 C/playlist-repeat.page:13 #: C/playlist-shuffle.page:13 C/search.page:13 msgid "2014" msgstr "2014" #. (itstool) path: info/desc #. (itstool) path: page/p #: C/introduction.page:18 C/introduction.page:23 msgid "" "A simple and elegant replacement for using Files to show the " "music directory." msgstr "" "Un reemplazo sencillo y elegante para usar Archivos para mostrar " "la carpeta de música." #. (itstool) path: page/title #: C/introduction.page:22 msgid "Introduction to Music" msgstr "Introducción a Música" #. (itstool) path: info/title #: C/index.page:6 msgctxt "link:trail" msgid "Music" msgstr "Música" #. (itstool) path: info/title #: C/index.page:7 msgctxt "link" msgid "Music" msgstr "Música" #. (itstool) path: info/title #: C/index.page:8 msgctxt "text" msgid "Music" msgstr "Música" #. (itstool) path: page/title #: C/index.page:19 msgid "<_:media-1/> Music" msgstr "<_:media-1/> Música" #. (itstool) path: section/title #: C/index.page:25 msgid "Create playlist" msgstr "Crear una lista de reproducción" #. (itstool) path: section/title #: C/index.page:28 msgid "Play a song" msgstr "Reproducir una canción" #. (itstool) path: section/title #: C/index.page:31 msgid "Remove songs and playlist" msgstr "Quitar canciones y lista de reproducción" #. (itstool) path: info/desc #: C/play-music.page:18 msgid "Play your favorite songs." msgstr "Reproducir sus canciones favoritas." #. (itstool) path: page/title #: C/play-music.page:22 msgid "Play music" msgstr "Reproducir música" #. (itstool) path: page/p #: C/play-music.page:24 msgid "" "You can play your favorite music by creating a playlist or by simply " "clicking on the song of your choice from any view." msgstr "" "Puede reproducir su música favorita creando una lista de reproducción o " "simplemente pulsando en la canción que quiera desde cualquier vista." #. (itstool) path: steps/title #: C/play-music.page:28 C/playlist-delete.page:27 #: C/playlist-remove-songs.page:27 msgid "While in Playlists:" msgstr "Estando en Listas de reproducción:" #. (itstool) path: item/p #: C/play-music.page:30 msgid "Select a playlist." msgstr "Seleccionar una lista de reproducción." #. (itstool) path: item/p #: C/play-music.page:33 C/playlist-delete.page:32 msgid "Click on the gear button on the right hand side." msgstr "Pulse en el icono de la rueda dentada en la parte de la derecha." #. (itstool) path: item/p #: C/play-music.page:36 msgid "Click on Play." msgstr "Pulse en Reproducir." #. (itstool) path: info/desc #: C/playlist-create-albums.page:18 msgid "Add songs to playlists using albums." msgstr "Añadir canciones a las listas de reproducción usando álbumes." #. (itstool) path: page/title #: C/playlist-create-albums.page:21 msgid "Create a playlist using albums" msgstr "Crear una lista de reproducción usando álbumes" #. (itstool) path: page/p #: C/playlist-create-albums.page:23 msgid "" "You can view all your albums by clicking on the Albums button." msgstr "" "Puede ver todos sus álbumes pulsando el botón Álbumes." #. (itstool) path: steps/title #: C/playlist-create-albums.page:27 msgid "To add all the songs in an album:" msgstr "Para añadir todas las canciones de un álbum:" #. (itstool) path: item/p #: C/playlist-create-albums.page:29 C/playlist-create-songs.page:29 #: C/playlist-create-artists.page:30 msgid "Click on the check button in the top-right of the window." msgstr "Pulse el botón «Marcar» en la parte superior derecha de la ventana." #. (itstool) path: item/p #: C/playlist-create-albums.page:32 msgid "Select albums." msgstr "Seleccione los álbumes." #. (itstool) path: item/p #: C/playlist-create-albums.page:35 C/playlist-create-albums.page:60 #: C/playlist-create-songs.page:35 C/playlist-create-artists.page:37 msgid "Click on the Add to Playlist button." msgstr "" "Pulse en el botón Añadir a la lista de reproducción." #. (itstool) path: item/p #: C/playlist-create-albums.page:38 C/playlist-create-albums.page:63 #: C/playlist-create-artists.page:40 msgid "Click on New Playlist and type a name for your playlist." msgstr "" "Pulse en Nueva lista de reproducción y escriba el nombre de la " "lista." #. (itstool) path: item/p #: C/playlist-create-albums.page:42 C/playlist-create-albums.page:67 #: C/playlist-create-songs.page:42 msgid "Click on Select." msgstr "Pulse en Seleccionar." #. (itstool) path: page/p #: C/playlist-create-albums.page:46 msgid "You can also create a playlist from specific songs." msgstr "" "También puede crear una lista de reproducción con canciones específicas." #. (itstool) path: steps/title #: C/playlist-create-albums.page:49 msgid "To add selected songs from an album:" msgstr "Para añadir las canciones seleccionadas de un álbum:" #. (itstool) path: item/p #: C/playlist-create-albums.page:51 msgid "Click on an album." msgstr "Pulse sobre un álbum." #. (itstool) path: item/p #: C/playlist-create-albums.page:54 msgid "Click on the check button." msgstr "Pulse el botón «Marcar»." #. (itstool) path: item/p #: C/playlist-create-albums.page:57 msgid "Select songs." msgstr "Seleccionar canciones." #. (itstool) path: note/p #: C/playlist-create-albums.page:72 C/playlist-create-songs.page:47 #: C/playlist-create-artists.page:49 msgid "" "To select all the songs click Click on items to select themSelect All in the toolbar or press " "CtrlA." msgstr "" "Para seleccionar todas las canciones, pulse en Pulse sobre los " "elementos para seleccionarlosSeleccionar todo en " "la barra de herramientas o pulse CtrlA." #. (itstool) path: note/p #: C/playlist-create-albums.page:76 C/playlist-create-songs.page:51 #: C/playlist-create-artists.page:53 msgid "" "To clear the selection click Click on items to select themSelect None in the toolbar." msgstr "" "Para limpiar la selección, pulse en Pulse sobre los elementos " "para seleccionarlosSeleccionar ninguno en la barra " "de herramientas." #. (itstool) path: info/desc #: C/playlist-create-songs.page:18 msgid "Create playlist by selecting your favorite songs." msgstr "Crear listas de reproducción seleccionando sus canciones favoritas." #. (itstool) path: page/title #: C/playlist-create-songs.page:21 msgid "Create playlists using songs" msgstr "Crear una lista de reproducción usando canciones" #. (itstool) path: page/p #: C/playlist-create-songs.page:23 msgid "" "You can view all the songs by clicking on the Songs button." msgstr "" "Puede ver todas las canciones pulsando el botón Canciones." #. (itstool) path: steps/title #: C/playlist-create-songs.page:27 msgid "To create a new playlist while in Songs view:" msgstr "" "Para crear una lista de reproducción nueva estando en la vista de " "Canciones:" #. (itstool) path: item/p #: C/playlist-create-songs.page:32 msgid "Select all the songs you want to add to the playlist." msgstr "" "Seleccione todas las canciones que quiere añadir a la lista de reproducción." #. (itstool) path: item/p #: C/playlist-create-songs.page:38 msgid "" "Click on New Playlist and type a name for your " "playlist." msgstr "" "Pulse en Nueva lista de reproducción y escriba " "un nombre para la lista." #. (itstool) path: info/desc #: C/playlist-create-artists.page:18 msgid "Create playlist by selecting your favorite artists." msgstr "Crear una lista de reproducción seleccionando sus artistas favoritos." #. (itstool) path: page/title #: C/playlist-create-artists.page:22 msgid "Create playlists using artists" msgstr "Crear listas de reproducción usando artistas" #. (itstool) path: page/p #: C/playlist-create-artists.page:24 msgid "" "You can view all the artists and their songs by clicking on the Artists button." msgstr "" "Puede ver todos los artistas y sus canciones pulsando el botón Artistas." #. (itstool) path: steps/title #: C/playlist-create-artists.page:28 msgid "To create a new playlist while in Artists view:" msgstr "" "Para crear una lista de reproducción nueva estando en la vista de " "Artistas:" #. (itstool) path: item/p #: C/playlist-create-artists.page:33 msgid "Select all the artists whose songs you want to add to the playlist." msgstr "" "Seleccione todos los artistas cuyas canciones quiere añadir a la lista de " "reproducción." #. (itstool) path: item/p #: C/playlist-create-artists.page:44 msgid "Click on Select." msgstr "Pulse en Seleccionar." #. (itstool) path: info/desc #: C/playlist-delete.page:18 msgid "Remove an unwanted playlist." msgstr "Quitar una lista de reproducción." #. (itstool) path: page/title #: C/playlist-delete.page:22 msgid "Delete a playlist" msgstr "Eliminar una lista de reproducción" #. (itstool) path: page/p #: C/playlist-delete.page:24 msgid "You can remove an old and unwanted playlist." msgstr "" "Puede quitar una canción antigua o una lista de reproducción que no quiera." #. (itstool) path: item/p #: C/playlist-delete.page:29 msgid "Select the playlist which you want to delete." msgstr "Seleccione la lista de reproducción que quiere eliminar." #. (itstool) path: item/p #: C/playlist-delete.page:35 msgid "Click on Delete." msgstr "Pulse en Eliminar." #. (itstool) path: info/desc #: C/playlist-remove-songs.page:18 msgid "Delete songs from the playlist." msgstr "Quitar canciones de la lista de reproducción." #. (itstool) path: page/title #: C/playlist-remove-songs.page:22 msgid "Remove songs" msgstr "Quitar canciones" #. (itstool) path: page/p #: C/playlist-remove-songs.page:24 msgid "You can remove any unwanted songs from a playlist." msgstr "" "Puede quitar cualquier canción que no quiera de una lista de reproducción." #. (itstool) path: item/p #: C/playlist-remove-songs.page:29 msgid "Select the playlist from which you want to remove songs." msgstr "" "Seleccione la lista de reproducción de la que quiere quitar las canciones." #. (itstool) path: item/p #: C/playlist-remove-songs.page:32 msgid "Click on the check button on the toolbar." msgstr "Pulse el botón «Marcar» en la barra de herramientas." #. (itstool) path: item/p #: C/playlist-remove-songs.page:35 msgid "Select all the songs which you want to remove." msgstr "Seleccione todas las canciones que quiere eliminar." #. (itstool) path: item/p #: C/playlist-remove-songs.page:38 msgid "Click on Remove from Playlist." msgstr "" "Pulse en Quitar de la lista de reproducción." #. (itstool) path: info/desc #: C/playlist-repeat.page:18 msgid "Repeat all songs in the playlist or only the current song." msgstr "" "Repetir todas las canciones de la lista de reproducción o sólo la canción " "actual." #. (itstool) path: page/title #: C/playlist-repeat.page:22 msgid "How do I play songs on repeat?" msgstr "¿Cómo repito canciones?" #. (itstool) path: list/title #: C/playlist-repeat.page:25 msgid "In the taskbar, click on the button on the right side:" msgstr "En la barra de tareas, pulse el botón en la parte de la derecha:" #. (itstool) path: item/p #: C/playlist-repeat.page:27 msgid "Select Repeat Song to repeat a single song." msgstr "Seleccione Repetir canción para repetir una sola canción." #. (itstool) path: item/p #: C/playlist-repeat.page:30 msgid "Select Repeat All to repeat all the song in the playlist." msgstr "" "Seleccione Repetir todas para repetir todas las canciones de la " "lista de reproducción." #. (itstool) path: info/desc #: C/playlist-shuffle.page:18 msgid "Shuffle songs in the playlist." msgstr "Mezclar canciones en la lista de reproducción." #. (itstool) path: page/title #: C/playlist-shuffle.page:22 msgid "How do I shuffle my songs?" msgstr "¿Cómo mezclo mis canciones?" #. (itstool) path: page/p #: C/playlist-shuffle.page:24 msgid "" "In the taskbar, click on the button on right hand side and select " "Shuffle." msgstr "" "En la barra de tareas, pulse el botón en la parte derecha y elija " "Mezclar." #. (itstool) path: info/desc #: C/search.page:18 msgid "Search through your music collection." msgstr "Buscar en su colección de música." #. (itstool) path: page/title #: C/search.page:22 msgid "Find music" msgstr "Buscar música" #. (itstool) path: page/p #: C/search.page:24 msgid "" "You can search your albums, artists, songs and playlists. Select what you " "want to search through then click the Search button and start " "searching." msgstr "" "Buscar en sus álbumes, artistas, canciones y listas de reproducción. " "Seleccione lo que quiere buscar y pulse el botón Buscar para " "empezar a buscar." #. (itstool) path: p/link #: C/legal.xml:5 msgid "Creative Commons Attribution-ShareAlike 3.0 Unported License" msgstr "Creative Commons de Atribución-Compartir Igual 3.0 no portada" #. (itstool) path: license/p #: C/legal.xml:4 msgid "This work is licensed under a <_:link-1/>." msgstr "Este trabajo está licenciado bajo la <_:link-1/>." #~| msgid "Click on Remove from Playlist." #~ msgid "Click on Select." #~ msgstr "Pulse en Seleccionar." 070701000000AB000041ED00000000000000000000000266968E4E00000000000000000000000000000000000000000000001900000000gnome-music-46.1/help/eu070701000000AC000081A400000000000000000000000166968E4E000039AD000000000000000000000000000000000000001F00000000gnome-music-46.1/help/eu/eu.po# Basque translation for gnome-music. # Copyright (C) 2019 gnome-music's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-music package. # # Asier Sarasua Garmendia , 2019, 2023. # msgid "" msgstr "Project-Id-Version: gnome-music master\n" "POT-Creation-Date: 2023-01-25 19:12+0000\n" "PO-Revision-Date: 2019-12-10 10:00+0100\n" "Last-Translator: Asier Sarasua Garmendia \n" "Language-Team: Basque \n" "Language: eu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. Put one translator per line, in the form NAME , YEAR1, YEAR2 msgctxt "_" msgid "translator-credits" msgstr " Asier Sarasua Garmendia , 2019, 2023." #. (itstool) path: credit/name #: C/introduction.page:11 C/index.page:12 C/play-music.page:11 #: C/playlist-create-albums.page:11 C/playlist-create-songs.page:11 #: C/playlist-create-artists.page:11 C/playlist-delete.page:11 #: C/playlist-remove-songs.page:11 C/playlist-repeat.page:11 #: C/playlist-shuffle.page:11 C/search.page:11 msgid "Shobha Tyagi" msgstr "Shobha Tyagi" #. (itstool) path: credit/years #: C/introduction.page:13 C/index.page:14 C/play-music.page:13 #: C/playlist-create-albums.page:13 C/playlist-create-songs.page:13 #: C/playlist-create-artists.page:13 C/playlist-delete.page:13 #: C/playlist-remove-songs.page:13 C/playlist-repeat.page:13 #: C/playlist-shuffle.page:13 C/search.page:13 msgid "2014" msgstr "2014" #. (itstool) path: info/desc #. (itstool) path: page/p #: C/introduction.page:18 C/introduction.page:23 msgid "" "A simple and elegant replacement for using Files to show the " "music directory." msgstr "Fitxategiak aplikazioaren ordezko sinple eta dotorea musikaren direktorioa erakusteko." #. (itstool) path: page/title #: C/introduction.page:22 msgid "Introduction to Music" msgstr "Musika aplikazioaren sarrera" #. (itstool) path: info/title #: C/index.page:6 msgctxt "link:trail" msgid "Music" msgstr "Musika" #. (itstool) path: info/title #: C/index.page:7 msgctxt "link" msgid "Music" msgstr "Musika" #. (itstool) path: info/title #: C/index.page:8 msgctxt "text" msgid "Music" msgstr "Musika" #. (itstool) path: page/title #: C/index.page:19 msgid "<_:media-1/> Music" msgstr "<_:media-1/> Musika" #. (itstool) path: section/title #: C/index.page:25 msgid "Create playlist" msgstr "Sortu erreprodukzio-zerrenda" #. (itstool) path: section/title #: C/index.page:28 msgid "Play a song" msgstr "Erreproduzitu abesti bat" #. (itstool) path: section/title #: C/index.page:31 msgid "Remove songs and playlist" msgstr "Kendu abestiak eta erreprodukzio-zerrenda" #. (itstool) path: info/desc #: C/play-music.page:18 msgid "Play your favorite songs." msgstr "Erreproduzitu zure abesti gogokoenak." #. (itstool) path: page/title #: C/play-music.page:22 msgid "Play music" msgstr "Erreproduzitu musika" #. (itstool) path: page/p #: C/play-music.page:24 msgid "" "You can play your favorite music by creating a playlist or by simply " "clicking on the song of your choice from any view." msgstr "Zure musikarik gogokoena erreproduzitu dezakezu bai zerrenda bat sortuta bai nahi duzun abestian klik eginda." #. (itstool) path: steps/title #: C/play-music.page:28 C/playlist-delete.page:27 #: C/playlist-remove-songs.page:27 msgid "While in Playlists:" msgstr "Erreprodukzio-zerrendetan:" #. (itstool) path: item/p #: C/play-music.page:30 msgid "Select a playlist." msgstr "Hautatu erreprodukzio-zerrenda bat." #. (itstool) path: item/p #: C/play-music.page:33 C/playlist-delete.page:32 msgid "Click on the gear button on the right hand side." msgstr "Egin klik eskuinaldeko gurpil-botoian." #. (itstool) path: item/p #: C/play-music.page:36 msgid "Click on Play." msgstr "Egin klik Erreproduzitu aukeran." #. (itstool) path: info/desc #: C/playlist-create-albums.page:18 msgid "Add songs to playlists using albums." msgstr "Gehitu abestiak erreprodukzio-zerrendei albumak erabilita." #. (itstool) path: page/title #: C/playlist-create-albums.page:21 msgid "Create a playlist using albums" msgstr "Sortu erreprodukzio-zerrenda bat albumak erabilita" #. (itstool) path: page/p #: C/playlist-create-albums.page:23 msgid "" "You can view all your albums by clicking on the Albums button." msgstr "Zure albumak ikus ditzakezu Albumak botoian klik eginez." #. (itstool) path: steps/title #: C/playlist-create-albums.page:27 msgid "To add all the songs in an album:" msgstr "Abesti guztiak album bati gehitzeko:" #. (itstool) path: item/p #: C/playlist-create-albums.page:29 C/playlist-create-songs.page:29 #: C/playlist-create-artists.page:30 msgid "Click on the check button in the top-right of the window." msgstr "Egin klik leihoko goi eskuineko kontrol-botoian." #. (itstool) path: item/p #: C/playlist-create-albums.page:32 msgid "Select albums." msgstr "Hautatu albumak." #. (itstool) path: item/p #: C/playlist-create-albums.page:35 C/playlist-create-albums.page:60 #: C/playlist-create-songs.page:35 C/playlist-create-artists.page:37 msgid "Click on the Add to Playlist button." msgstr "Egin klik Gehitu erreprodukzio-zerrendari botoian." #. (itstool) path: item/p #: C/playlist-create-albums.page:38 C/playlist-create-albums.page:63 #: C/playlist-create-artists.page:40 msgid "Click on New Playlist and type a name for your playlist." msgstr "Egin klik Erreprodukzio-zerrenda berria aukeran eta idatzi zure zerrendaren izena." #. (itstool) path: item/p #: C/playlist-create-albums.page:42 C/playlist-create-albums.page:67 #: C/playlist-create-songs.page:42 msgid "Click on Select." msgstr "Egin klik Hautatu botoian." #. (itstool) path: page/p #: C/playlist-create-albums.page:46 msgid "You can also create a playlist from specific songs." msgstr "Abesti jakin batzuetarako erreprodukzio-zerrenda bat ere sortu dezakezu." #. (itstool) path: steps/title #: C/playlist-create-albums.page:49 msgid "To add selected songs from an album:" msgstr "Album bateko abesti hautatuak gehitzeko:" #. (itstool) path: item/p #: C/playlist-create-albums.page:51 msgid "Click on an album." msgstr "Egin klik album batean." #. (itstool) path: item/p #: C/playlist-create-albums.page:54 msgid "Click on the check button." msgstr "Egin klik kontrol-botoian." #. (itstool) path: item/p #: C/playlist-create-albums.page:57 msgid "Select songs." msgstr "Hautatu abestiak." #. (itstool) path: note/p #: C/playlist-create-albums.page:72 C/playlist-create-songs.page:47 #: C/playlist-create-artists.page:49 msgid "" "To select all the songs click Click on items to select themSelect All in the toolbar or press " "CtrlA." msgstr "Abesti guztiak hautatzeko, egin klik tresna-barrako Egin klik elementuen gainean hautatzekoHautatu dena aukeran, edo sakatu CtrlA." #. (itstool) path: note/p #: C/playlist-create-albums.page:76 C/playlist-create-songs.page:51 #: C/playlist-create-artists.page:53 msgid "" "To clear the selection click Click on items to select themSelect None in the toolbar." msgstr "Hautapena garbitzeko, egin klik tresna-barrako Egin klik elementuen gainean hautatzekoEz hautatu ezer." #. (itstool) path: info/desc #: C/playlist-create-songs.page:18 msgid "Create playlist by selecting your favorite songs." msgstr "Sortu erreprodukzio-zerrenda zure abestirik gogokoenak hautatuta." #. (itstool) path: page/title #: C/playlist-create-songs.page:21 msgid "Create playlists using songs" msgstr "Sortu erreprodukzio-zerrendak abestiak erabilita" #. (itstool) path: page/p #: C/playlist-create-songs.page:23 msgid "" "You can view all the songs by clicking on the Songs button." msgstr "Abesti guztiak bistaratu daitezke Abestiak botoia erabilita." #. (itstool) path: steps/title #: C/playlist-create-songs.page:27 msgid "To create a new playlist while in Songs view:" msgstr "Erreprodukzio-zerrenda berria sortzeko Abestiak bistan zauden bitartean:" #. (itstool) path: item/p #: C/playlist-create-songs.page:32 msgid "Select all the songs you want to add to the playlist." msgstr "Hautatu erreprodukzio-zerrendari gehitu nahi dizkiozun abesti guztiak." #. (itstool) path: item/p #: C/playlist-create-songs.page:38 msgid "" "Click on New Playlist and type a name for your " "playlist." msgstr "Egin klik Erreprodukzio-zerrenda berria aukeran eta idatzi izen bat zure zerrendarako." #. (itstool) path: info/desc #: C/playlist-create-artists.page:18 msgid "Create playlist by selecting your favorite artists." msgstr "Sortu erreprodukzio-zerrenda zure artistarik gogokoenak hautatuta." #. (itstool) path: page/title #: C/playlist-create-artists.page:22 msgid "Create playlists using artists" msgstr "Sortu erreprodukzio-zerrendak artistak erabilita" #. (itstool) path: page/p #: C/playlist-create-artists.page:24 msgid "" "You can view all the artists and their songs by clicking on the Artists button." msgstr "Artista guztiak eta beren abestiak bistaratu daitezke Artistak botoia erabilita." #. (itstool) path: steps/title #: C/playlist-create-artists.page:28 msgid "To create a new playlist while in Artists view:" msgstr "Erreprodukzio-zerrenda berria sortzeko Artistak bistan zauden bitartean:" #. (itstool) path: item/p #: C/playlist-create-artists.page:33 msgid "Select all the artists whose songs you want to add to the playlist." msgstr "Hautatu erreprodukzio-zerrendari gehitu nahi dizkiozun artista guztiak." #. (itstool) path: item/p #: C/playlist-create-artists.page:44 msgid "Click on Select." msgstr "Egin klik Hautatu aukeran." #. (itstool) path: info/desc #: C/playlist-delete.page:18 msgid "Remove an unwanted playlist." msgstr "Kendu gehiago nahi ez duzun erreprodukzio-zerrenda bat." #. (itstool) path: page/title #: C/playlist-delete.page:22 msgid "Delete a playlist" msgstr "Ezabatu erreprodukzio-zerrenda bat" #. (itstool) path: page/p #: C/playlist-delete.page:24 msgid "You can remove an old and unwanted playlist." msgstr "Gehiago nahi ez duzun erreprodukzio-zerrenda bat kendu dezakezu." #. (itstool) path: item/p #: C/playlist-delete.page:29 msgid "Select the playlist which you want to delete." msgstr "Hautatu ezabatu nahi duzun erreprodukzio-zerrenda." #. (itstool) path: item/p #: C/playlist-delete.page:35 msgid "Click on Delete." msgstr "Egin klik Ezabatu aukeran." #. (itstool) path: info/desc #: C/playlist-remove-songs.page:18 msgid "Delete songs from the playlist." msgstr "Ezabatu abestiak erreprodukzio-zerrendatik." #. (itstool) path: page/title #: C/playlist-remove-songs.page:22 msgid "Remove songs" msgstr "Kendu abestiak" #. (itstool) path: page/p #: C/playlist-remove-songs.page:24 msgid "You can remove any unwanted songs from a playlist." msgstr "Gehiago nahi ez dituzun abestiak kendu ditzakezu erreprodukzio-zerrenda batetik." #. (itstool) path: item/p #: C/playlist-remove-songs.page:29 msgid "Select the playlist from which you want to remove songs." msgstr "Hautatu abestiak ezabatu nahi dizkiozun erreprodukzio-zerrenda." #. (itstool) path: item/p #: C/playlist-remove-songs.page:32 msgid "Click on the check button on the toolbar." msgstr "Egin klik tresna-barrako kontrol-botoian." #. (itstool) path: item/p #: C/playlist-remove-songs.page:35 msgid "Select all the songs which you want to remove." msgstr "Hautatu ezabatu nahi dituzun abesti guztiak." #. (itstool) path: item/p #: C/playlist-remove-songs.page:38 msgid "Click on Remove from Playlist." msgstr "Egin klik Kendu erreprodukzio-zerrendatik aukeran." #. (itstool) path: info/desc #: C/playlist-repeat.page:18 msgid "Repeat all songs in the playlist or only the current song." msgstr "Errepikatu erreprodukzio-zerrendako abesti guztiak edo uneko abestia soilik." #. (itstool) path: page/title #: C/playlist-repeat.page:22 msgid "How do I play songs on repeat?" msgstr "Nola erreproduzitu ditzaket abestiak modu errepikatuan?" #. (itstool) path: list/title #: C/playlist-repeat.page:25 msgid "In the taskbar, click on the button on the right side:" msgstr "Ataza-barran, egin klik eskuinaldeko botoian:" #. (itstool) path: item/p #: C/playlist-repeat.page:27 msgid "Select Repeat Song to repeat a single song." msgstr "Hautatu Errepikatu abestia abesti bakar bat errepikatzeko." #. (itstool) path: item/p #: C/playlist-repeat.page:30 msgid "Select Repeat All to repeat all the song in the playlist." msgstr "Hautatu Errepikatu dena erreprodukzio-zerrendako abesti guztiak errepikatzeko." #. (itstool) path: info/desc #: C/playlist-shuffle.page:18 msgid "Shuffle songs in the playlist." msgstr "Erreproduzitu erreprodukzio-zerrendako abestiak ausaz." #. (itstool) path: page/title #: C/playlist-shuffle.page:22 msgid "How do I shuffle my songs?" msgstr "Nola erreproduzitu ditzaket abestiak ausaz?" #. (itstool) path: page/p #: C/playlist-shuffle.page:24 msgid "" "In the taskbar, click on the button on right hand side and select " "Shuffle." msgstr "Ataza-barran, egin klik eskuinaldeko botoian eta hautatu Ausaz." #. (itstool) path: info/desc #: C/search.page:18 msgid "Search through your music collection." msgstr "Egin bilaketak zure musika-bilduman." #. (itstool) path: page/title #: C/search.page:22 msgid "Find music" msgstr "Aurkitu musika" #. (itstool) path: page/p #: C/search.page:24 msgid "" "You can search your albums, artists, songs and playlists. Select what you " "want to search through then click the Search button and start " "searching." msgstr "Albumetan, artistetan, abestietan eta erreprodukzio-zerrendetan egin ditzakezu bilaketan. Hautatu zer bilatu nahi duzun eta egin klik Bilatu botoian bilaketa hasteko." #. (itstool) path: p/link #: C/legal.xml:5 msgid "Creative Commons Attribution-ShareAlike 3.0 Unported License" msgstr "Creative Commons Attribution-ShareAlike 3.0 Unported lizentzia" #. (itstool) path: license/p #: C/legal.xml:4 msgid "This work is licensed under a <_:link-1/>." msgstr "Lan honen lizentzia <_:link-1/> da." 070701000000AD000041ED00000000000000000000000266968E4E00000000000000000000000000000000000000000000001900000000gnome-music-46.1/help/fr070701000000AE000081A400000000000000000000000166968E4E00003CC6000000000000000000000000000000000000001F00000000gnome-music-46.1/help/fr/fr.po# French translation for gnome-music. # Copyright (C) 2014 gnome-music's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-music package. # Alain Lojewski , 2014. # Julien Hardelin , 2014. # Charles Monzat , 2017-2022. # msgid "" msgstr "" "Project-Id-Version: gnome-music master\n" "POT-Creation-Date: 2021-12-25 18:25+0000\n" "PO-Revision-Date: 2022-04-11 22:35+0200\n" "Last-Translator: Charles Monzat \n" "Language-Team: GNOME French Team \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "X-Generator: Gtranslator 40.0\n" #. Put one translator per line, in the form NAME , YEAR1, YEAR2 msgctxt "_" msgid "translator-credits" msgstr "" "Alain Lojewski , 2014\n" "Julien Hardelin , 2014\n" "Charles Monzat , 2017-2022" #. (itstool) path: credit/name #: C/introduction.page:11 C/index.page:12 C/play-music.page:11 #: C/playlist-create-albums.page:11 C/playlist-create-songs.page:11 #: C/playlist-create-artists.page:11 C/playlist-delete.page:11 #: C/playlist-remove-songs.page:11 C/playlist-repeat.page:11 #: C/playlist-shuffle.page:11 C/search.page:11 msgid "Shobha Tyagi" msgstr "Shobha Tyagi" #. (itstool) path: credit/years #: C/introduction.page:13 C/index.page:14 C/play-music.page:13 #: C/playlist-create-albums.page:13 C/playlist-create-songs.page:13 #: C/playlist-create-artists.page:13 C/playlist-delete.page:13 #: C/playlist-remove-songs.page:13 C/playlist-repeat.page:13 #: C/playlist-shuffle.page:13 C/search.page:13 msgid "2014" msgstr "2014" #. (itstool) path: info/desc #. (itstool) path: page/p #: C/introduction.page:18 C/introduction.page:23 msgid "" "A simple and elegant replacement for using Files to show the " "music directory." msgstr "" "Une alternative simple et élégante à Fichiers pour l’affichage du " "répertoire de Musique." #. (itstool) path: page/title #: C/introduction.page:22 msgid "Introduction to Music" msgstr "Introduction à Musique" #. (itstool) path: info/title #: C/index.page:6 msgctxt "link:trail" msgid "Music" msgstr "Musique" #. (itstool) path: info/title #: C/index.page:7 msgctxt "link" msgid "Music" msgstr "Musique" #. (itstool) path: info/title #: C/index.page:8 msgctxt "text" msgid "Music" msgstr "Musique" #. (itstool) path: page/title #: C/index.page:19 msgid "<_:media-1/> Music" msgstr "<_:media-1/> Musique" #. (itstool) path: section/title #: C/index.page:25 msgid "Create playlist" msgstr "Création d’une liste de lecture" #. (itstool) path: section/title #: C/index.page:28 msgid "Play a song" msgstr "Lecture d’un morceau" #. (itstool) path: section/title #: C/index.page:31 msgid "Remove songs and playlist" msgstr "Suppression des morceaux et de la liste de lecture" #. (itstool) path: info/desc #: C/play-music.page:18 msgid "Play your favorite songs." msgstr "Lire vos morceaux préférés." #. (itstool) path: page/title #: C/play-music.page:22 msgid "Play music" msgstr "Lecture d’un morceau" #. (itstool) path: page/p #: C/play-music.page:24 msgid "" "You can play your favorite music by creating a playlist or by simply " "clicking on the song of your choice from any view." msgstr "" "Pour lire votre musique préférée, créez une liste de lecture ou cliquez " "seulement sur le morceau de votre choix depuis n’importe quelle vue." #. (itstool) path: steps/title #: C/play-music.page:28 C/playlist-delete.page:27 #: C/playlist-remove-songs.page:27 msgid "While in Playlists:" msgstr "Une fois dans Listes de lecture :" #. (itstool) path: item/p #: C/play-music.page:30 msgid "Select a playlist." msgstr "Sélectionnez une liste de lecture." #. (itstool) path: item/p #: C/play-music.page:33 C/playlist-delete.page:32 msgid "Click on the gear button on the right hand side." msgstr "Cliquez sur le bouton ⚙ situé à droite." #. (itstool) path: item/p #: C/play-music.page:36 msgid "Click on Play." msgstr "Cliquez sur Lire." #. (itstool) path: info/desc #: C/playlist-create-albums.page:18 msgid "Add songs to playlists using albums." msgstr "Ajouter des morceaux aux listes de lecture à partir d’albums." #. (itstool) path: page/title #: C/playlist-create-albums.page:21 msgid "Create a playlist using albums" msgstr "Création d’une liste de lecture à partir d’un album" #. (itstool) path: page/p #: C/playlist-create-albums.page:23 msgid "" "You can view all your albums by clicking on the Albums button." msgstr "" "Pour afficher tous vos albums, cliquez sur le bouton Albums." #. (itstool) path: steps/title #: C/playlist-create-albums.page:27 msgid "To add all the songs in an album:" msgstr "Pour ajouter tous les morceaux d’un album :" #. (itstool) path: item/p #: C/playlist-create-albums.page:29 C/playlist-create-songs.page:29 #: C/playlist-create-artists.page:30 msgid "Click on the check button in the top-right of the window." msgstr "" "Cliquez sur le bouton de sélection dans le coin supérieur droit de la " "fenêtre." #. (itstool) path: item/p #: C/playlist-create-albums.page:32 msgid "Select albums." msgstr "Sélectionnez les albums." #. (itstool) path: item/p #: C/playlist-create-albums.page:35 C/playlist-create-albums.page:60 #: C/playlist-create-songs.page:35 C/playlist-create-artists.page:37 msgid "Click on the Add to Playlist button." msgstr "" "Cliquez sur le bouton Ajouter à la liste de lecture." #. (itstool) path: item/p #: C/playlist-create-albums.page:38 C/playlist-create-albums.page:63 #: C/playlist-create-artists.page:40 msgid "Click on New Playlist and type a name for your playlist." msgstr "Cliquez sur Nouvelle liste de lecture et donnez-lui un nom." #. (itstool) path: item/p #: C/playlist-create-albums.page:42 C/playlist-create-albums.page:67 #: C/playlist-create-songs.page:42 msgid "Click on Select." msgstr "Cliquez sur Sélectionner." #. (itstool) path: page/p #: C/playlist-create-albums.page:46 msgid "You can also create a playlist from specific songs." msgstr "" "Vous pouvez aussi créer une liste de lecture avec des morceaux particuliers." #. (itstool) path: steps/title #: C/playlist-create-albums.page:49 msgid "To add selected songs from an album:" msgstr "Pour ajouter des morceaux choisis dans un album :" #. (itstool) path: item/p #: C/playlist-create-albums.page:51 msgid "Click on an album." msgstr "Cliquez sur l’album." #. (itstool) path: item/p #: C/playlist-create-albums.page:54 msgid "Click on the check button." msgstr "Cliquez sur le bouton de sélection." #. (itstool) path: item/p #: C/playlist-create-albums.page:57 msgid "Select songs." msgstr "Sélectionnez les morceaux." #. (itstool) path: note/p #: C/playlist-create-albums.page:72 C/playlist-create-songs.page:47 #: C/playlist-create-artists.page:49 msgid "" "To select all the songs click Click on items to select themSelect All in the toolbar or press " "CtrlA." msgstr "" "Pour sélectionner tous les morceaux, cliquez sur Cliquez sur " "les éléments pour les sélectionnerTout sélectionner dans la barre d’outils, ou bien appuyez sur CtrlA." #. (itstool) path: note/p #: C/playlist-create-albums.page:76 C/playlist-create-songs.page:51 #: C/playlist-create-artists.page:53 msgid "" "To clear the selection click Click on items to select themSelect None in the toolbar." msgstr "" "Pour annuler la sélection, cliquez sur Cliquez sur les éléments " "pour les sélectionnerTout désélectionner dans la " "barre d’outils." #. (itstool) path: info/desc #: C/playlist-create-songs.page:18 msgid "Create playlist by selecting your favorite songs." msgstr "Créer une liste de lecture en choisissant vos morceaux préférés." #. (itstool) path: page/title #: C/playlist-create-songs.page:21 msgid "Create playlists using songs" msgstr "Création de listes de lecture avec des morceaux" #. (itstool) path: page/p #: C/playlist-create-songs.page:23 msgid "" "You can view all the songs by clicking on the Songs button." msgstr "" "Pour afficher tous les morceaux, cliquez sur le bouton Morceaux." #. (itstool) path: steps/title #: C/playlist-create-songs.page:27 msgid "To create a new playlist while in Songs view:" msgstr "" "Pour créer une nouvelle liste de lecture en étant dans la fenêtre " "Morceaux :" #. (itstool) path: item/p #: C/playlist-create-songs.page:32 msgid "Select all the songs you want to add to the playlist." msgstr "" "Sélectionnez tous les morceaux que vous voulez ajouter à la liste de lecture." #. (itstool) path: item/p #: C/playlist-create-songs.page:38 msgid "" "Click on New Playlist and type a name for your " "playlist." msgstr "" "Cliquez sur Nouvelle liste de lecture et donnez-" "lui un nom." #. (itstool) path: info/desc #: C/playlist-create-artists.page:18 msgid "Create playlist by selecting your favorite artists." msgstr "Créer une liste de lecture en choisissant vos artistes préférés." #. (itstool) path: page/title #: C/playlist-create-artists.page:22 msgid "Create playlists using artists" msgstr "Création de listes de lecture par artiste" #. (itstool) path: page/p #: C/playlist-create-artists.page:24 msgid "" "You can view all the artists and their songs by clicking on the Artists button." msgstr "" "Pour afficher tous les artistes et leurs morceaux, cliquez sur le bouton " "Artistes." #. (itstool) path: steps/title #: C/playlist-create-artists.page:28 msgid "To create a new playlist while in Artists view:" msgstr "" "Pour créer une nouvelle liste de lecture en étant dans la fenêtre " "Artistes :" #. (itstool) path: item/p #: C/playlist-create-artists.page:33 msgid "Select all the artists whose songs you want to add to the playlist." msgstr "" "Sélectionnez tous les artistes dont vous voulez regrouper les morceaux dans " "la liste de lecture." #. (itstool) path: item/p #: C/playlist-create-artists.page:44 msgid "Click on Select." msgstr "Cliquez sur Sélectionner." #. (itstool) path: info/desc #: C/playlist-delete.page:18 msgid "Remove an unwanted playlist." msgstr "Supprimer une liste de lecture superflue." #. (itstool) path: page/title #: C/playlist-delete.page:22 msgid "Delete a playlist" msgstr "Suppression d’une liste de lecture" #. (itstool) path: page/p #: C/playlist-delete.page:24 msgid "You can remove an old and unwanted playlist." msgstr "Pour supprimer une ancienne liste de lecture :" #. (itstool) path: item/p #: C/playlist-delete.page:29 msgid "Select the playlist which you want to delete." msgstr "Sélectionnez la liste de lecture à supprimer." #. (itstool) path: item/p #: C/playlist-delete.page:35 msgid "Click on Delete." msgstr "Cliquez sur Supprimer." #. (itstool) path: info/desc #: C/playlist-remove-songs.page:18 msgid "Delete songs from the playlist." msgstr "Supprimer des titres de la liste de lecture." #. (itstool) path: page/title #: C/playlist-remove-songs.page:22 msgid "Remove songs" msgstr "Suppression de morceaux" #. (itstool) path: page/p #: C/playlist-remove-songs.page:24 msgid "You can remove any unwanted songs from a playlist." msgstr "Pour supprimer des morceaux obsolètes d’une liste de lecture :" #. (itstool) path: item/p #: C/playlist-remove-songs.page:29 msgid "Select the playlist from which you want to remove songs." msgstr "Sélectionnez la liste de lecture à nettoyer." #. (itstool) path: item/p #: C/playlist-remove-songs.page:32 msgid "Click on the check button on the toolbar." msgstr "Cliquez sur le bouton de sélection dans la barre d’outils." #. (itstool) path: item/p #: C/playlist-remove-songs.page:35 msgid "Select all the songs which you want to remove." msgstr "Sélectionnez tous les morceaux à supprimer." #. (itstool) path: item/p #: C/playlist-remove-songs.page:38 msgid "Click on Remove from Playlist." msgstr "" "Cliquez sur Supprimer de la liste de lecture." #. (itstool) path: info/desc #: C/playlist-repeat.page:18 msgid "Repeat all songs in the playlist or only the current song." msgstr "" "Répéter tous les titres d’une liste de lecture ou seulement la chanson en " "cours de lecture." #. (itstool) path: page/title #: C/playlist-repeat.page:22 msgid "How do I play songs on repeat?" msgstr "Répétition de pistes" #. (itstool) path: list/title #: C/playlist-repeat.page:25 msgid "In the taskbar, click on the button on the right side:" msgstr "Dans la barre des tâches, cliquez sur le bouton situé à droite, puis :" #. (itstool) path: item/p #: C/playlist-repeat.page:27 msgid "Select Repeat Song to repeat a single song." msgstr "Sélectionnez Répéter le morceau pour répéter un seul titre." #. (itstool) path: item/p #: C/playlist-repeat.page:30 msgid "Select Repeat All to repeat all the song in the playlist." msgstr "" "Sélectionnez Tout répéter pour répéter tous les morceaux de la " "liste de lecture." #. (itstool) path: info/desc #: C/playlist-shuffle.page:18 msgid "Shuffle songs in the playlist." msgstr "Mélanger des titres de la liste de lecture." #. (itstool) path: page/title #: C/playlist-shuffle.page:22 msgid "How do I shuffle my songs?" msgstr "Lecture aléatoire de titres" #. (itstool) path: page/p #: C/playlist-shuffle.page:24 msgid "" "In the taskbar, click on the button on right hand side and select " "Shuffle." msgstr "" "Dans la barre des tâches, cliquez sur le bouton situé à droite et " "sélectionnez Mélanger." #. (itstool) path: info/desc #: C/search.page:18 msgid "Search through your music collection." msgstr "Effectuer une recherche dans votre discothèque." #. (itstool) path: page/title #: C/search.page:22 msgid "Find music" msgstr "Recherche de musique" #. (itstool) path: page/p #: C/search.page:24 msgid "" "You can search your albums, artists, songs and playlists. Select what you " "want to search through then click the Search button and start " "searching." msgstr "" "Vous pouvez faire une recherche sur un artiste, sur un morceau ou sur une " "liste de lecture. Sélectionnez votre choix et appuyez sur Rechercher pour lancer l’opération." #. (itstool) path: p/link #: C/legal.xml:5 msgid "Creative Commons Attribution-ShareAlike 3.0 Unported License" msgstr "" "Licence Creative Commons Attribution - Partage dans les Mêmes Conditions 3.0 " "non transposé" #. (itstool) path: license/p #: C/legal.xml:4 msgid "This work is licensed under a <_:link-1/>." msgstr "Cette œuvre est distribuée sous <_:link-1/>." #~ msgid "Click on Select." #~ msgstr "Cliquez sur Sélectionner." 070701000000AF000041ED00000000000000000000000266968E4E00000000000000000000000000000000000000000000001900000000gnome-music-46.1/help/gl070701000000B0000081A400000000000000000000000166968E4E00003B88000000000000000000000000000000000000001F00000000gnome-music-46.1/help/gl/gl.po# Galician translation for gnome-music. # Copyright (C) 2014 gnome-music's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-music package. # Fran Dieguez , 2014-2021. # msgid "" msgstr "" "Project-Id-Version: gnome-music master\n" "POT-Creation-Date: 2021-04-10 19:23+0000\n" "PO-Revision-Date: 2021-08-30 11:06+0200\n" "Last-Translator: Fran Dieguez \n" "Language-Team: Galician >\n" "Language: gl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" "X-Generator: Gtranslator 40.0\n" "X-Project-Style: gnome\n" "X-DL-Team: gl\n" "X-DL-Module: gnome-music\n" "X-DL-Branch: master\n" "X-DL-Domain: help\n" "X-DL-State: Translating\n" #. Put one translator per line, in the form NAME , YEAR1, YEAR2 msgctxt "_" msgid "translator-credits" msgstr "Fran Diéguez , 2014-2021." #. (itstool) path: credit/name #: C/introduction.page:11 C/index.page:12 C/play-music.page:11 #: C/playlist-create-albums.page:11 C/playlist-create-songs.page:11 #: C/playlist-create-artists.page:11 C/playlist-delete.page:11 #: C/playlist-remove-songs.page:11 C/playlist-repeat.page:11 #: C/playlist-shuffle.page:11 C/search.page:11 msgid "Shobha Tyagi" msgstr "Shobha Tyagi" #. (itstool) path: credit/years #: C/introduction.page:13 C/index.page:14 C/play-music.page:13 #: C/playlist-create-albums.page:13 C/playlist-create-songs.page:13 #: C/playlist-create-artists.page:13 C/playlist-delete.page:13 #: C/playlist-remove-songs.page:13 C/playlist-repeat.page:13 #: C/playlist-shuffle.page:13 C/search.page:13 msgid "2014" msgstr "2014" #. (itstool) path: info/desc #. (itstool) path: page/p #: C/introduction.page:18 C/introduction.page:23 msgid "" "A simple and elegant replacement for using Files to show the " "music directory." msgstr "" "Un substituto simple e elegante para usar Ficheiros para mostrar " "o cartafol de música." #. (itstool) path: page/title #: C/introduction.page:22 msgid "Introduction to Music" msgstr "Introdución a Música" #. (itstool) path: info/title #: C/index.page:6 #| msgctxt "link" #| msgid "Music" msgctxt "link:trail" msgid "Music" msgstr "Música" #. (itstool) path: info/title #: C/index.page:7 msgctxt "link" msgid "Music" msgstr "Música" #. (itstool) path: info/title #: C/index.page:8 msgctxt "text" msgid "Music" msgstr "Música" #. (itstool) path: page/title #: C/index.page:19 msgid "<_:media-1/> Music" msgstr "<_:media-1/> Música" #. (itstool) path: section/title #: C/index.page:25 msgid "Create playlist" msgstr "Crear lista de reprodución" #. (itstool) path: section/title #: C/index.page:28 msgid "Play a song" msgstr "Reproducir unha canción" #. (itstool) path: section/title #: C/index.page:31 msgid "Remove songs and playlist" msgstr "Quitar cancións da lista de reprodución" #. (itstool) path: info/desc #: C/play-music.page:18 msgid "Play your favorite songs." msgstr "Reproducir as súas cancións favoritas." #. (itstool) path: page/title #: C/play-music.page:22 msgid "Play music" msgstr "Reproducir música" #. (itstool) path: page/p #: C/play-music.page:24 msgid "" "You can play your favorite music by creating a playlist or by simply " "clicking on the song of your choice from any view." msgstr "" "Vostede pode reproducir a súa música favorita creando unha lista de " "reprodución ou simplemente premendo na canción que desexe desde calquera " "vista." #. (itstool) path: steps/title #: C/play-music.page:28 C/playlist-delete.page:27 #: C/playlist-remove-songs.page:27 msgid "While in Playlists:" msgstr "Mentres nas Listas de reproducións:" #. (itstool) path: item/p #: C/play-music.page:30 msgid "Select a playlist." msgstr "Seleccione unha lista de reprodución." #. (itstool) path: item/p #: C/play-music.page:33 C/playlist-delete.page:32 msgid "Click on the gear button on the right hand side." msgstr "Prema no botón do engranaxe na parte dereita." #. (itstool) path: item/p #: C/play-music.page:36 msgid "Click on Play." msgstr "Prema en Reproducir." #. (itstool) path: info/desc #: C/playlist-create-albums.page:18 msgid "Add songs to playlists using albums." msgstr "Engadir cancións ás listas de reprodución usando álbums." #. (itstool) path: page/title #: C/playlist-create-albums.page:21 msgid "Create a playlist using albums" msgstr "Crear unha lista de reprodución usando álbums" #. (itstool) path: page/p #: C/playlist-create-albums.page:23 msgid "" "You can view all your albums by clicking on the Albums button." msgstr "" "Pode ver todo os álbums premendo sobre o botón Álbums." #. (itstool) path: steps/title #: C/playlist-create-albums.page:27 msgid "To add all the songs in an album:" msgstr "Para engadir todas as cancións nun álbum:" #. (itstool) path: item/p #: C/playlist-create-albums.page:29 C/playlist-create-songs.page:29 #: C/playlist-create-artists.page:30 msgid "Click on the check button in the top-right of the window." msgstr "Prema no botón de comprobación na parte superior dereita da xanela." #. (itstool) path: item/p #: C/playlist-create-albums.page:32 msgid "Select albums." msgstr "Seleccione os álbums." #. (itstool) path: item/p #: C/playlist-create-albums.page:35 C/playlist-create-albums.page:60 #: C/playlist-create-songs.page:35 C/playlist-create-artists.page:37 msgid "Click on the Add to Playlist button." msgstr "" "Prema no botón Engadir á lista de reprodución." #. (itstool) path: item/p #: C/playlist-create-albums.page:38 C/playlist-create-albums.page:63 #: C/playlist-create-artists.page:40 msgid "Click on New Playlist and type a name for your playlist." msgstr "" "Prema en Nova lista de reprodución e escriba un nome para a súa " "lista de reprodución." #. (itstool) path: item/p #: C/playlist-create-albums.page:42 C/playlist-create-albums.page:67 #: C/playlist-create-songs.page:42 msgid "Click on Select." msgstr "Prema en Seleccionar." #. (itstool) path: page/p #: C/playlist-create-albums.page:46 msgid "You can also create a playlist from specific songs." msgstr "Amén pode crear unha lista de reprodución desde cancións específicas." #. (itstool) path: steps/title #: C/playlist-create-albums.page:49 msgid "To add selected songs from an album:" msgstr "Para engadir as cancións seleccionadas desde un álbum:" #. (itstool) path: item/p #: C/playlist-create-albums.page:51 msgid "Click on an album." msgstr "Prema no álbum." #. (itstool) path: item/p #: C/playlist-create-albums.page:54 msgid "Click on the check button." msgstr "Prema no botón de comprobación." #. (itstool) path: item/p #: C/playlist-create-albums.page:57 msgid "Select songs." msgstr "Seleccione as cancións." #. (itstool) path: note/p #: C/playlist-create-albums.page:72 C/playlist-create-songs.page:47 #: C/playlist-create-artists.page:49 msgid "" "To select all the songs click Click on items to select themSelect All in the toolbar or press " "CtrlA." msgstr "" "Para seleccionar todas as cancións prema Prema nos elementos " "para seleccionalosSeleccionar todos desde a barra " "de ferramentas ou prema CtrlA." #. (itstool) path: note/p #: C/playlist-create-albums.page:76 C/playlist-create-songs.page:51 #: C/playlist-create-artists.page:53 msgid "" "To clear the selection click Click on items to select themSelect None in the toolbar." msgstr "" "Para limpar a selección prema Prema nos elementos para " "seleccionalosDeseleccionar todos na barra de " "ferramentas." #. (itstool) path: info/desc #: C/playlist-create-songs.page:18 msgid "Create playlist by selecting your favorite songs." msgstr "" "Crear unha lista de reprodución seleccionando as súas cancións favoritas." #. (itstool) path: page/title #: C/playlist-create-songs.page:21 msgid "Create playlists using songs" msgstr "Crear listas de reproducións usando cancións" #. (itstool) path: page/p #: C/playlist-create-songs.page:23 msgid "" "You can view all the songs by clicking on the Songs button." msgstr "" "Pode ver todas as canciónsemendo sobre o botón Cancións." #. (itstool) path: steps/title #: C/playlist-create-songs.page:27 msgid "To create a new playlist while in Songs view:" msgstr "" "Para crear unha nova lista de reprodución mentres están a vista " "Cancións:" #. (itstool) path: item/p #: C/playlist-create-songs.page:32 msgid "Select all the songs you want to add to the playlist." msgstr "Seleccione todas as cancións que quere engadir á lista de reprodución." #. (itstool) path: item/p #: C/playlist-create-songs.page:38 msgid "" "Click on New Playlist and type a name for your " "playlist." msgstr "" "Prema en Nova lista de reprodución e escriba un " "nome da súa lista de reprodución." #. (itstool) path: info/desc #: C/playlist-create-artists.page:18 msgid "Create playlist by selecting your favorite artists." msgstr "Crear unha lista de reprodución seleccionando os seus artistas." #. (itstool) path: page/title #: C/playlist-create-artists.page:22 msgid "Create playlists using artists" msgstr "Crear listas de reproducións usando artistas" #. (itstool) path: page/p #: C/playlist-create-artists.page:24 msgid "" "You can view all the artists and their songs by clicking on the Artists button." msgstr "" "Pode ver todos os artistas e as súas cancións premendo sobre o botón Artistas." #. (itstool) path: steps/title #: C/playlist-create-artists.page:28 msgid "To create a new playlist while in Artists view:" msgstr "" "Para crear unha nova lista de reprodución mentres están a vista " "Artistas:" #. (itstool) path: item/p #: C/playlist-create-artists.page:33 msgid "Select all the artists whose songs you want to add to the playlist." msgstr "" "Seleccione todos os artistas cuxas cancións quere engadir á lista de " "reprodución." #. (itstool) path: item/p #: C/playlist-create-artists.page:44 msgid "Click on Select." msgstr "Prema en Seleccionar." #. (itstool) path: info/desc #: C/playlist-delete.page:18 msgid "Remove an unwanted playlist." msgstr "Quitar unha lista de reprodución non desexada." #. (itstool) path: page/title #: C/playlist-delete.page:22 msgid "Delete a playlist" msgstr "Eliminar unha lista de reprodución" #. (itstool) path: page/p #: C/playlist-delete.page:24 msgid "You can remove an old and unwanted playlist." msgstr "Pode eliminar unha lista de reprodución antiga ou non desexada." #. (itstool) path: item/p #: C/playlist-delete.page:29 msgid "Select the playlist which you want to delete." msgstr "Seleccione a lista que quere eliminar." #. (itstool) path: item/p #: C/playlist-delete.page:35 msgid "Click on Delete." msgstr "Prema en Eliminar." #. (itstool) path: info/desc #: C/playlist-remove-songs.page:18 msgid "Delete songs from the playlist." msgstr "Eliminar cancións dunha lista de reprodución." #. (itstool) path: page/title #: C/playlist-remove-songs.page:22 msgid "Remove songs" msgstr "Eliminar cancións" #. (itstool) path: page/p #: C/playlist-remove-songs.page:24 msgid "You can remove any unwanted songs from a playlist." msgstr "Pode quitar cancións que non desexe dunha lista de reprodución." #. (itstool) path: item/p #: C/playlist-remove-songs.page:29 msgid "Select the playlist from which you want to remove songs." msgstr "Seleccione a lista de reprodución da que quere quitar cancións." #. (itstool) path: item/p #: C/playlist-remove-songs.page:32 msgid "Click on the check button on the toolbar." msgstr "Prema no botón de marcar na barra de ferramentas." #. (itstool) path: item/p #: C/playlist-remove-songs.page:35 msgid "Select all the songs which you want to remove." msgstr "Seleccione todas as cancións que quere eliminar." #. (itstool) path: item/p #: C/playlist-remove-songs.page:38 msgid "Click on Remove from Playlist." msgstr "Prema en Quitar da lista de reprodución." #. (itstool) path: info/desc #: C/playlist-repeat.page:18 msgid "Repeat all songs in the playlist or only the current song." msgstr "" "Repetir todas as cancións nunha lista de reprodución ou só a canción actual." #. (itstool) path: page/title #: C/playlist-repeat.page:22 msgid "How do I play songs on repeat?" msgstr "Como reproduzo cancións en bucle?" #. (itstool) path: list/title #: C/playlist-repeat.page:25 msgid "In the taskbar, click on the button on the right side:" msgstr "Na barra de tarefas, prema no botón da parte dereita:" #. (itstool) path: item/p #: C/playlist-repeat.page:27 msgid "Select Repeat Song to repeat a single song." msgstr "Seleccione Repetir canción para repetir unha soa canción." #. (itstool) path: item/p #: C/playlist-repeat.page:30 msgid "Select Repeat All to repeat all the song in the playlist." msgstr "" "Seleccione Repetir todas para repetir todas as cancións na lista " "de reprodución." #. (itstool) path: info/desc #: C/playlist-shuffle.page:18 msgid "Shuffle songs in the playlist." msgstr "Desordenar cancións na lista de reprodución." #. (itstool) path: page/title #: C/playlist-shuffle.page:22 msgid "How do I shuffle my songs?" msgstr "Como desordenar as miñas cancións?" #. (itstool) path: page/p #: C/playlist-shuffle.page:24 msgid "" "In the taskbar, click on the button on right hand side and select " "Shuffle." msgstr "" "Na barra de tarefas, prema no botón da parte dereita e seleccione " "Desordenar." #. (itstool) path: info/desc #: C/search.page:18 msgid "Search through your music collection." msgstr "Buscar na súa colección de música." #. (itstool) path: page/title #: C/search.page:22 msgid "Find music" msgstr "Buscar música" #. (itstool) path: page/p #: C/search.page:24 msgid "" "You can search your albums, artists, songs and playlists. Select what you " "want to search through then click the Search button and start " "searching." msgstr "" "Pode buscar nos seus álbums, artistas, cancións ou listas de reprodución. " "Seleccione que quere buscar logo prema no botón Buscar e iniciar " "a busca." #. (itstool) path: p/link #: C/legal.xml:5 msgid "Creative Commons Attribution-ShareAlike 3.0 Unported License" msgstr "Creative Commons Atribución-CompartirIgual 3.0 Licenza non portada" #. (itstool) path: license/p #: C/legal.xml:4 msgid "This work is licensed under a <_:link-1/>." msgstr "Este traballa ten a licenza <_:link-1/>." 070701000000B1000041ED00000000000000000000000266968E4E00000000000000000000000000000000000000000000001900000000gnome-music-46.1/help/hr070701000000B2000081A400000000000000000000000166968E4E00003997000000000000000000000000000000000000001F00000000gnome-music-46.1/help/hr/hr.po# Croatian translation for gnome-music. # Copyright (C) 2017 gnome-music's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-music package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: gnome-music master\n" "POT-Creation-Date: 2022-07-25 15:45+0000\n" "PO-Revision-Date: 2022-08-17 23:18+0200\n" "Last-Translator: gogo \n" "Language-Team: Croatian \n" "Language: hr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Generator: Poedit 3.1.1\n" #. Put one translator per line, in the form NAME , YEAR1, YEAR2 msgctxt "_" msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " gogo https://launchpad.net/~trebelnik-stefina" #. (itstool) path: credit/name #: C/introduction.page:11 C/index.page:12 C/play-music.page:11 #: C/playlist-create-albums.page:11 C/playlist-create-songs.page:11 #: C/playlist-create-artists.page:11 C/playlist-delete.page:11 #: C/playlist-remove-songs.page:11 C/playlist-repeat.page:11 #: C/playlist-shuffle.page:11 C/search.page:11 msgid "Shobha Tyagi" msgstr "Shobha Tyagi" #. (itstool) path: credit/years #: C/introduction.page:13 C/index.page:14 C/play-music.page:13 #: C/playlist-create-albums.page:13 C/playlist-create-songs.page:13 #: C/playlist-create-artists.page:13 C/playlist-delete.page:13 #: C/playlist-remove-songs.page:13 C/playlist-repeat.page:13 #: C/playlist-shuffle.page:13 C/search.page:13 msgid "2014" msgstr "2014" #. (itstool) path: info/desc #. (itstool) path: page/p #: C/introduction.page:18 C/introduction.page:23 msgid "" "A simple and elegant replacement for using Files to show the " "music directory." msgstr "" "Jednostavna i elegantna zamjena za korištenje Datoteka za prikaz " "glazbene mape." #. (itstool) path: page/title #: C/introduction.page:22 msgid "Introduction to Music" msgstr "Uvod u Glazbu" #. (itstool) path: info/title #: C/index.page:6 msgctxt "link:trail" msgid "Music" msgstr "Glazba" #. (itstool) path: info/title #: C/index.page:7 msgctxt "link" msgid "Music" msgstr "Glazba" #. (itstool) path: info/title #: C/index.page:8 msgctxt "text" msgid "Music" msgstr "Glazba" #. (itstool) path: page/title #: C/index.page:19 msgid "<_:media-1/> Music" msgstr "<_:media-1/> Glazba" #. (itstool) path: section/title #: C/index.page:25 msgid "Create playlist" msgstr "Stvaranje popisa izvođenja" #. (itstool) path: section/title #: C/index.page:28 msgid "Play a song" msgstr "Reprodukcija pjesme" #. (itstool) path: section/title #: C/index.page:31 msgid "Remove songs and playlist" msgstr "Uklanjanje pjesma i popisa izvođenja" #. (itstool) path: info/desc #: C/play-music.page:18 msgid "Play your favorite songs." msgstr "Slušajte svoje omiljene pjesme." #. (itstool) path: page/title #: C/play-music.page:22 msgid "Play music" msgstr "Reprodukcija glazbe" #. (itstool) path: page/p #: C/play-music.page:24 msgid "" "You can play your favorite music by creating a playlist or by simply " "clicking on the song of your choice from any view." msgstr "" "Možete slušati svoju omiljenu glazbu stvaranjem popisa izvođenja ili " "jednostavno klikom na vašu odabranu pjesmu u bilo kojem prikazu." #. (itstool) path: steps/title #: C/play-music.page:28 C/playlist-delete.page:27 #: C/playlist-remove-songs.page:27 msgid "While in Playlists:" msgstr "U Popisu izvođenja:" #. (itstool) path: item/p #: C/play-music.page:30 msgid "Select a playlist." msgstr "Odaberite popis izvođenja." #. (itstool) path: item/p #: C/play-music.page:33 C/playlist-delete.page:32 msgid "Click on the gear button on the right hand side." msgstr "Kliknite na tipku zupčanika s lijeve strane." #. (itstool) path: item/p #: C/play-music.page:36 msgid "Click on Play." msgstr "Kliknite na Sviraj." #. (itstool) path: info/desc #: C/playlist-create-albums.page:18 msgid "Add songs to playlists using albums." msgstr "Dodajte pjesme na popis izvođenja koristeći albume." #. (itstool) path: page/title #: C/playlist-create-albums.page:21 msgid "Create a playlist using albums" msgstr "Stvaranje popisa izvođenja pomoću albuma" #. (itstool) path: page/p #: C/playlist-create-albums.page:23 msgid "" "You can view all your albums by clicking on the Albums button." msgstr "" "Možete vidjeti sve svoje albume klikom na Albumi " "tipku." #. (itstool) path: steps/title #: C/playlist-create-albums.page:27 msgid "To add all the songs in an album:" msgstr "Kako bi dodali sve pjesme u albumu:" #. (itstool) path: item/p #: C/playlist-create-albums.page:29 C/playlist-create-songs.page:29 #: C/playlist-create-artists.page:30 msgid "Click on the check button in the top-right of the window." msgstr "Kliknite na tipku odabira gore desno u prozoru." #. (itstool) path: item/p #: C/playlist-create-albums.page:32 msgid "Select albums." msgstr "Odaberite albume." #. (itstool) path: item/p #: C/playlist-create-albums.page:35 C/playlist-create-albums.page:60 #: C/playlist-create-songs.page:35 C/playlist-create-artists.page:37 msgid "Click on the Add to Playlist button." msgstr "Kliknite na Dodaj u popis izvođenja tipku." #. (itstool) path: item/p #: C/playlist-create-albums.page:38 C/playlist-create-albums.page:63 #: C/playlist-create-artists.page:40 msgid "Click on New Playlist and type a name for your playlist." msgstr "" "Kliknite na Novi popis izvođenja i upišite naziv vašeg popisa " "izvođenja." #. (itstool) path: item/p #: C/playlist-create-albums.page:42 C/playlist-create-albums.page:67 #: C/playlist-create-songs.page:42 msgid "Click on Select." msgstr "Kliknite na Odaberi." #. (itstool) path: page/p #: C/playlist-create-albums.page:46 msgid "You can also create a playlist from specific songs." msgstr "Isto tako možete stvoriti popis izvođenja od određenih pjesama." #. (itstool) path: steps/title #: C/playlist-create-albums.page:49 msgid "To add selected songs from an album:" msgstr "Kako bi dodali određene pjesme iz albuma:" #. (itstool) path: item/p #: C/playlist-create-albums.page:51 msgid "Click on an album." msgstr "Kliknite na album." #. (itstool) path: item/p #: C/playlist-create-albums.page:54 msgid "Click on the check button." msgstr "Kliknite na tipku odabira." #. (itstool) path: item/p #: C/playlist-create-albums.page:57 msgid "Select songs." msgstr "Odaberite pjesme." #. (itstool) path: note/p #: C/playlist-create-albums.page:72 C/playlist-create-songs.page:47 #: C/playlist-create-artists.page:49 msgid "" "To select all the songs click Click on items to select themSelect All in the toolbar or press " "CtrlA." msgstr "" "Kako bi odabrali sve pjesme kliknite na Klikni na stavku za " "odabirOdaberi sve u alatnoj traci ili pritisnite " "CtrlA." #. (itstool) path: note/p #: C/playlist-create-albums.page:76 C/playlist-create-songs.page:51 #: C/playlist-create-artists.page:53 msgid "" "To clear the selection click Click on items to select themSelect None in the toolbar." msgstr "" "Kako bi uklonili odabir kliknite na Klikni na stavku za odabirUkloni odabir u alatnoj traci." #. (itstool) path: info/desc #: C/playlist-create-songs.page:18 msgid "Create playlist by selecting your favorite songs." msgstr "Stvorite popis izvođenja odabirom svojih omiljenih pjesama." #. (itstool) path: page/title #: C/playlist-create-songs.page:21 msgid "Create playlists using songs" msgstr "Stvaranje popisa izvođenja pomoću pjesama" #. (itstool) path: page/p #: C/playlist-create-songs.page:23 msgid "" "You can view all the songs by clicking on the Songs button." msgstr "" "Možete vidjeti sve pjesme klikom na Pjesme tipku." #. (itstool) path: steps/title #: C/playlist-create-songs.page:27 msgid "To create a new playlist while in Songs view:" msgstr "" "Kako bi stvorili novi popis izvođenja dok ste u Pjesme prikazu:" #. (itstool) path: item/p #: C/playlist-create-songs.page:32 msgid "Select all the songs you want to add to the playlist." msgstr "Odaberite sve pjesme koje želite dodati na popis izvođenja." #. (itstool) path: item/p #: C/playlist-create-songs.page:38 msgid "" "Click on New Playlist and type a name for your " "playlist." msgstr "" "Kliknite na Novi popis izvođenja i upišite naziv " "vašeg popisa izvođenja." #. (itstool) path: info/desc #: C/playlist-create-artists.page:18 msgid "Create playlist by selecting your favorite artists." msgstr "Stvorite popis izvođenja odabirom vašeg omiljenog izvođača." #. (itstool) path: page/title #: C/playlist-create-artists.page:22 msgid "Create playlists using artists" msgstr "Stvaranje popisa izvođenja pomoću izvođača" #. (itstool) path: page/p #: C/playlist-create-artists.page:24 msgid "" "You can view all the artists and their songs by clicking on the Artists button." msgstr "" "Možete vidjeti sve izvođače i njihove pjesme klikom na Izvođači tipku." #. (itstool) path: steps/title #: C/playlist-create-artists.page:28 msgid "To create a new playlist while in Artists view:" msgstr "" "Kako bi stvorili novi popis izvođenja dok ste u Izvođači prikazu:" #. (itstool) path: item/p #: C/playlist-create-artists.page:33 msgid "Select all the artists whose songs you want to add to the playlist." msgstr "Odaberite sve izvođače čije pjesme želite dodati na popis izvođenja." #. (itstool) path: item/p #: C/playlist-create-artists.page:44 msgid "Click on Select." msgstr "Kliknite na Odaberi." #. (itstool) path: info/desc #: C/playlist-delete.page:18 msgid "Remove an unwanted playlist." msgstr "Uklonite neželjeni popisa izvođenja." #. (itstool) path: page/title #: C/playlist-delete.page:22 msgid "Delete a playlist" msgstr "Brisanje popisa izvođenja" #. (itstool) path: page/p #: C/playlist-delete.page:24 msgid "You can remove an old and unwanted playlist." msgstr "Možete ukloniti stari ili neželjeni popis izvođenja." #. (itstool) path: item/p #: C/playlist-delete.page:29 msgid "Select the playlist which you want to delete." msgstr "Odaberite popis izvođenja koji želite obrisati." #. (itstool) path: item/p #: C/playlist-delete.page:35 msgid "Click on Delete." msgstr "Kliknite na Obriši." #. (itstool) path: info/desc #: C/playlist-remove-songs.page:18 msgid "Delete songs from the playlist." msgstr "Obrišite pjesme iz popisa izvođenja." #. (itstool) path: page/title #: C/playlist-remove-songs.page:22 msgid "Remove songs" msgstr "Uklanjanje pjesama" #. (itstool) path: page/p #: C/playlist-remove-songs.page:24 msgid "You can remove any unwanted songs from a playlist." msgstr "Možete ukloniti sve neželjene pjesme iz popisa izvođenja." #. (itstool) path: item/p #: C/playlist-remove-songs.page:29 msgid "Select the playlist from which you want to remove songs." msgstr "Odaberite popis izvođenja iz kojeg želite ukloniti pjesme." #. (itstool) path: item/p #: C/playlist-remove-songs.page:32 msgid "Click on the check button on the toolbar." msgstr "Kliknite na tipku odabira u alatnoj traci." #. (itstool) path: item/p #: C/playlist-remove-songs.page:35 msgid "Select all the songs which you want to remove." msgstr "Odaberite sve pjesme koje želite ukloniti." #. (itstool) path: item/p #: C/playlist-remove-songs.page:38 msgid "Click on Remove from Playlist." msgstr "Kliknite na Ukloni s popisa izvođenja." #. (itstool) path: info/desc #: C/playlist-repeat.page:18 msgid "Repeat all songs in the playlist or only the current song." msgstr "Ponovite sve pjesme u popisu izvođenja ili samo trenutnu pjesmu." #. (itstool) path: page/title #: C/playlist-repeat.page:22 msgid "How do I play songs on repeat?" msgstr "Kako reproducirati ili ponoviti pjesmu?" #. (itstool) path: list/title #: C/playlist-repeat.page:25 msgid "In the taskbar, click on the button on the right side:" msgstr "U alatnoj traci, kliknite tipku na desnoj strani:" #. (itstool) path: item/p #: C/playlist-repeat.page:27 msgid "Select Repeat Song to repeat a single song." msgstr "Odaberite Ponovi pjesmu za ponavljanje jedne pjesme." #. (itstool) path: item/p #: C/playlist-repeat.page:30 msgid "Select Repeat All to repeat all the song in the playlist." msgstr "" "Odaberite Ponovni sve za ponavljanje svih pjesama na popisu " "izvođenja." #. (itstool) path: info/desc #: C/playlist-shuffle.page:18 msgid "Shuffle songs in the playlist." msgstr "Pokrenite naizmjeničnu reprodukciju pjesama na popisu izvođenja." #. (itstool) path: page/title #: C/playlist-shuffle.page:22 msgid "How do I shuffle my songs?" msgstr "Kako pokrenuti naizmjeničnu reprodukciju pjesama?" #. (itstool) path: page/p #: C/playlist-shuffle.page:24 msgid "" "In the taskbar, click on the button on right hand side and select " "Shuffle." msgstr "" "U alatnoj traci, kliknite tipku na desnoj strani i odaberite " "Naizmjenično." #. (itstool) path: info/desc #: C/search.page:18 msgid "Search through your music collection." msgstr "Pretražujte svoju glazbenu kolekciju." #. (itstool) path: page/title #: C/search.page:22 msgid "Find music" msgstr "Pretraga glazbe" #. (itstool) path: page/p #: C/search.page:24 msgid "" "You can search your albums, artists, songs and playlists. Select what you " "want to search through then click the Search button and start " "searching." msgstr "" "Možete pretraživati svoje albume, izvođače, pjesme i popise izvođenja. " "Odaberite što želite pretraživati zatim kliknite na Pretraži " "tipku za pokretanje pretraživanja." #. (itstool) path: p/link #: C/legal.xml:5 msgid "Creative Commons Attribution-ShareAlike 3.0 Unported License" msgstr "Creative Commons Imenovanje-Dijeli pod istim uvjetima 3.0 Hrvatska" #. (itstool) path: license/p #: C/legal.xml:4 msgid "This work is licensed under a <_:link-1/>." msgstr "Ovaj rad je licenciran pod <_:link-1/>." 070701000000B3000041ED00000000000000000000000266968E4E00000000000000000000000000000000000000000000001900000000gnome-music-46.1/help/hu070701000000B4000081A400000000000000000000000166968E4E00003C5B000000000000000000000000000000000000001F00000000gnome-music-46.1/help/hu/hu.po# Hungarian translation for gnome-music. # Copyright (C) 2014, 2015, 2017, 2019, 2021 Free Software Foundation, Inc. # This file is distributed under the same license as the gnome-music package. # # Balázs Úr , 2014, 2019, 2021. # Gabor Kelemen , 2014, 2015, 2017. msgid "" msgstr "" "Project-Id-Version: gnome-music master\n" "POT-Creation-Date: 2021-04-10 19:23+0000\n" "PO-Revision-Date: 2021-09-12 08:48+0200\n" "Last-Translator: Balázs Úr \n" "Language-Team: Hungarian \n" "Language: hu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Lokalize 19.12.3\n" #. Put one translator per line, in the form NAME , YEAR1, YEAR2 msgctxt "_" msgid "translator-credits" msgstr "" "Kelemen Gábor , 2014.\n" "Úr Balázs , 2014.\n" "Hammer Attila , 2014." #. (itstool) path: credit/name #: C/introduction.page:11 C/index.page:12 C/play-music.page:11 #: C/playlist-create-albums.page:11 C/playlist-create-songs.page:11 #: C/playlist-create-artists.page:11 C/playlist-delete.page:11 #: C/playlist-remove-songs.page:11 C/playlist-repeat.page:11 #: C/playlist-shuffle.page:11 C/search.page:11 msgid "Shobha Tyagi" msgstr "Shobha Tyagi" #. (itstool) path: credit/years #: C/introduction.page:13 C/index.page:14 C/play-music.page:13 #: C/playlist-create-albums.page:13 C/playlist-create-songs.page:13 #: C/playlist-create-artists.page:13 C/playlist-delete.page:13 #: C/playlist-remove-songs.page:13 C/playlist-repeat.page:13 #: C/playlist-shuffle.page:13 C/search.page:13 msgid "2014" msgstr "2014" #. (itstool) path: info/desc #. (itstool) path: page/p #: C/introduction.page:18 C/introduction.page:23 msgid "" "A simple and elegant replacement for using Files to show the " "music directory." msgstr "" "Egyszerű és elegáns eszköz a zenegyűjtemény megjelenítésére a Fájlok alkalmazással." #. (itstool) path: page/title #: C/introduction.page:22 msgid "Introduction to Music" msgstr "A Zene bemutatása" #. (itstool) path: info/title #: C/index.page:6 #| msgctxt "link" #| msgid "Music" msgctxt "link:trail" msgid "Music" msgstr "Zene" #. (itstool) path: info/title #: C/index.page:7 msgctxt "link" msgid "Music" msgstr "Zene" #. (itstool) path: info/title #: C/index.page:8 msgctxt "text" msgid "Music" msgstr "Zene" #. (itstool) path: page/title #: C/index.page:19 msgid "<_:media-1/> Music" msgstr "<_:media-1/> Zene" #. (itstool) path: section/title #: C/index.page:25 msgid "Create playlist" msgstr "Lejátszólista létrehozása" #. (itstool) path: section/title #: C/index.page:28 msgid "Play a song" msgstr "Szám lejátszása" #. (itstool) path: section/title #: C/index.page:31 msgid "Remove songs and playlist" msgstr "Számok és lejátszólista eltávolítása" #. (itstool) path: info/desc #: C/play-music.page:18 msgid "Play your favorite songs." msgstr "Kedvenc számainak lejátszása." #. (itstool) path: page/title #: C/play-music.page:22 msgid "Play music" msgstr "Zenék lejátszása" #. (itstool) path: page/p #: C/play-music.page:24 msgid "" "You can play your favorite music by creating a playlist or by simply " "clicking on the song of your choice from any view." msgstr "" "Kedvenc zenéit lejátszhatja lejátszólista létrehozásával, vagy egyszerűen " "csak rákattintva a számra bármely nézetben." #. (itstool) path: steps/title #: C/play-music.page:28 C/playlist-delete.page:27 #: C/playlist-remove-songs.page:27 msgid "While in Playlists:" msgstr "A Lejátszólistákban:" #. (itstool) path: item/p #: C/play-music.page:30 msgid "Select a playlist." msgstr "Válasszon egy lejátszólistát" #. (itstool) path: item/p #: C/play-music.page:33 C/playlist-delete.page:32 msgid "Click on the gear button on the right hand side." msgstr "Kattintson a fogaskerék gombra a jobb oldalon." #. (itstool) path: item/p #: C/play-music.page:36 msgid "Click on Play." msgstr "Kattintson a Lejátszás menüpontra." #. (itstool) path: info/desc #: C/playlist-create-albums.page:18 msgid "Add songs to playlists using albums." msgstr "Számok lejátszólistához adása albumokkal." #. (itstool) path: page/title #: C/playlist-create-albums.page:21 msgid "Create a playlist using albums" msgstr "Lejátszólista létrehozása albumok használatával" #. (itstool) path: page/p #: C/playlist-create-albums.page:23 msgid "" "You can view all your albums by clicking on the Albums button." msgstr "" "Összes albumát megjelenítheti az Albumok gombra " "kattintással." #. (itstool) path: steps/title #: C/playlist-create-albums.page:27 msgid "To add all the songs in an album:" msgstr "Egy album összes számának hozzáadásához:" #. (itstool) path: item/p #: C/playlist-create-albums.page:29 C/playlist-create-songs.page:29 #: C/playlist-create-artists.page:30 msgid "Click on the check button in the top-right of the window." msgstr "Kattintson az ablak jobb felső sarkában lévő pipa gombra." #. (itstool) path: item/p #: C/playlist-create-albums.page:32 msgid "Select albums." msgstr "Válasszon ki albumokat." #. (itstool) path: item/p #: C/playlist-create-albums.page:35 C/playlist-create-albums.page:60 #: C/playlist-create-songs.page:35 C/playlist-create-artists.page:37 msgid "Click on the Add to Playlist button." msgstr "" "Nyomja meg a Hozzáadás a lejátszólistához gombot." #. (itstool) path: item/p #: C/playlist-create-albums.page:38 C/playlist-create-albums.page:63 #: C/playlist-create-artists.page:40 msgid "Click on New Playlist and type a name for your playlist." msgstr "" "Kattintson az Új lejátszólista gombra, és írja be a lejátszólista " "nevét." #. (itstool) path: item/p #: C/playlist-create-albums.page:42 C/playlist-create-albums.page:67 #: C/playlist-create-songs.page:42 msgid "Click on Select." msgstr "Kattintson a Kijelölés gombra." #. (itstool) path: page/p #: C/playlist-create-albums.page:46 msgid "You can also create a playlist from specific songs." msgstr "Létrehozhat lejátszólistát adott számokból is." #. (itstool) path: steps/title #: C/playlist-create-albums.page:49 msgid "To add selected songs from an album:" msgstr "Kijelölt számok hozzáadásához egy albumról:" #. (itstool) path: item/p #: C/playlist-create-albums.page:51 msgid "Click on an album." msgstr "Kattintson egy albumra." #. (itstool) path: item/p #: C/playlist-create-albums.page:54 msgid "Click on the check button." msgstr "Kattintson a pipa gombra." #. (itstool) path: item/p #: C/playlist-create-albums.page:57 msgid "Select songs." msgstr "Válasszon ki számokat." #. (itstool) path: note/p #: C/playlist-create-albums.page:72 C/playlist-create-songs.page:47 #: C/playlist-create-artists.page:49 msgid "" "To select all the songs click Click on items to select themSelect All in the toolbar or press " "CtrlA." msgstr "" "Az összes szám kiválasztásához kattintson az eszköztáron a " "Kattintson az elemekre a kiválasztásukhozÖsszes " "kijelölése lehetőségre, vagy nyomja meg a CtrlA billentyűkombinációt." #. (itstool) path: note/p #: C/playlist-create-albums.page:76 C/playlist-create-songs.page:51 #: C/playlist-create-artists.page:53 msgid "" "To clear the selection click Click on items to select themSelect None in the toolbar." msgstr "" "A kijelölés törléséhez kattintson az eszköztáron a Kattintson " "az elemekre a kiválasztásukhozKijelölés törlése " "lehetőségre." #. (itstool) path: info/desc #: C/playlist-create-songs.page:18 msgid "Create playlist by selecting your favorite songs." msgstr "Lejátszólista létrehozása kedvenc számai kiválasztásával." #. (itstool) path: page/title #: C/playlist-create-songs.page:21 msgid "Create playlists using songs" msgstr "Lejátszólista létrehozása számok használatával" #. (itstool) path: page/p #: C/playlist-create-songs.page:23 msgid "" "You can view all the songs by clicking on the Songs button." msgstr "" "Az összes számot megjelenítheti a Számok gomb " "megnyomásával." #. (itstool) path: steps/title #: C/playlist-create-songs.page:27 msgid "To create a new playlist while in Songs view:" msgstr "Új lejátszólista létrehozása a Számok nézetben:" #. (itstool) path: item/p #: C/playlist-create-songs.page:32 msgid "Select all the songs you want to add to the playlist." msgstr "Jelölje ki a lejátszólistához adandó összes számot." #. (itstool) path: item/p #: C/playlist-create-songs.page:38 msgid "" "Click on New Playlist and type a name for your " "playlist." msgstr "" "Kattintson az Új lejátszólista gombra, és írja " "be a lejátszólista nevét." #. (itstool) path: info/desc #: C/playlist-create-artists.page:18 msgid "Create playlist by selecting your favorite artists." msgstr "Lejátszólista létrehozása kedvenc előadói kiválasztásával." #. (itstool) path: page/title #: C/playlist-create-artists.page:22 msgid "Create playlists using artists" msgstr "Lejátszólista létrehozása előadók használatával" #. (itstool) path: page/p #: C/playlist-create-artists.page:24 msgid "" "You can view all the artists and their songs by clicking on the Artists button." msgstr "" "Az összes előadót és számaikat megjelenítheti az Előadók gomb megnyomásával." #. (itstool) path: steps/title #: C/playlist-create-artists.page:28 msgid "To create a new playlist while in Artists view:" msgstr "Új lejátszólista létrehozása az Előadók nézetben:" #. (itstool) path: item/p #: C/playlist-create-artists.page:33 msgid "Select all the artists whose songs you want to add to the playlist." msgstr "" "Jelölje ki az összes előadót, akiknek számait a lejátszólistához szeretné " "adni." #. (itstool) path: item/p #: C/playlist-create-artists.page:44 msgid "Click on Select." msgstr "Kattintson a Kijelölés gombra." #. (itstool) path: info/desc #: C/playlist-delete.page:18 msgid "Remove an unwanted playlist." msgstr "Fölösleges lejátszólista eltávolítása." #. (itstool) path: page/title #: C/playlist-delete.page:22 msgid "Delete a playlist" msgstr "Lejátszólista törlése" #. (itstool) path: page/p #: C/playlist-delete.page:24 msgid "You can remove an old and unwanted playlist." msgstr "A régi és már nem szükséges lejátszólistákat eltávolíthatja." #. (itstool) path: item/p #: C/playlist-delete.page:29 msgid "Select the playlist which you want to delete." msgstr "Válassza ki a törölni kívánt lejátszólistát." #. (itstool) path: item/p #: C/playlist-delete.page:35 msgid "Click on Delete." msgstr "Kattintson a Törlés gombra." #. (itstool) path: info/desc #: C/playlist-remove-songs.page:18 msgid "Delete songs from the playlist." msgstr "Számok törlése a lejátszólistáról." #. (itstool) path: page/title #: C/playlist-remove-songs.page:22 msgid "Remove songs" msgstr "Számok eltávolítása" #. (itstool) path: page/p #: C/playlist-remove-songs.page:24 msgid "You can remove any unwanted songs from a playlist." msgstr "A már nem kívánt számokat eltávolíthatja a lejátszólistáról." #. (itstool) path: item/p #: C/playlist-remove-songs.page:29 msgid "Select the playlist from which you want to remove songs." msgstr "Válassza ki a lejátszólistát, amelyről számokat szeretne eltávolítani." #. (itstool) path: item/p #: C/playlist-remove-songs.page:32 msgid "Click on the check button on the toolbar." msgstr "Kattintson a pipa gombra az eszköztáron." #. (itstool) path: item/p #: C/playlist-remove-songs.page:35 msgid "Select all the songs which you want to remove." msgstr "Jelölje ki az összes eltávolítani kívánt számot." #. (itstool) path: item/p #: C/playlist-remove-songs.page:38 msgid "Click on Remove from Playlist." msgstr "" "Kattintson az Eltávolítás a lejátszólistáról " "gombra." #. (itstool) path: info/desc #: C/playlist-repeat.page:18 msgid "Repeat all songs in the playlist or only the current song." msgstr "" "Az összes szám, vagy egyetlen szám ismétlődő lejátszása a lejátszólistából." #. (itstool) path: page/title #: C/playlist-repeat.page:22 msgid "How do I play songs on repeat?" msgstr "Hogyan lehet a számok lejátszását ismételtetni?" #. (itstool) path: list/title #: C/playlist-repeat.page:25 msgid "In the taskbar, click on the button on the right side:" msgstr "A tálca jobb oldalán kattintson a gombra:" #. (itstool) path: item/p #: C/playlist-repeat.page:27 msgid "Select Repeat Song to repeat a single song." msgstr "" "Egyetlen szám ismétléséhez válassza a Szám ismétlése lehetőséget." #. (itstool) path: item/p #: C/playlist-repeat.page:30 msgid "Select Repeat All to repeat all the song in the playlist." msgstr "" "A lejátszólistában levő összes szám ismétléséhez válassza az Összes " "ismétlése lehetőséget." #. (itstool) path: info/desc #: C/playlist-shuffle.page:18 msgid "Shuffle songs in the playlist." msgstr "Számok véletlenszerű lejátszása a lejátszólistából." #. (itstool) path: page/title #: C/playlist-shuffle.page:22 msgid "How do I shuffle my songs?" msgstr "Hogyan játszhatom le véletlenszerűen a számaimat?" #. (itstool) path: page/p #: C/playlist-shuffle.page:24 msgid "" "In the taskbar, click on the button on right hand side and select " "Shuffle." msgstr "" "A tálca jobb oldalán kattintson a gombra, majd válassza a " "Véletlenszerű lehetőséget." #. (itstool) path: info/desc #: C/search.page:18 msgid "Search through your music collection." msgstr "Keressen zenegyűjteményében." #. (itstool) path: page/title #: C/search.page:22 msgid "Find music" msgstr "Zene keresése" #. (itstool) path: page/p #: C/search.page:24 msgid "" "You can search your albums, artists, songs and playlists. Select what you " "want to search through then click the Search button and start " "searching." msgstr "" "Kereshet albumok, előadók, számok és lejátszólisták alapján. Válassza ki, " "hogy miben szeretne keresni, majd kattintson a Keresés gombra a " "keresés megkezdéséhez." #. (itstool) path: p/link #: C/legal.xml:5 msgid "Creative Commons Attribution-ShareAlike 3.0 Unported License" msgstr "Creative Commons Nevezd meg!-Így add tovább! 3.0 átíratlan licenc" #. (itstool) path: license/p #: C/legal.xml:4 msgid "This work is licensed under a <_:link-1/>." msgstr "Ez a mű a <_:link-1/> feltételei szerint terjeszthető." 070701000000B5000041ED00000000000000000000000266968E4E00000000000000000000000000000000000000000000001900000000gnome-music-46.1/help/id070701000000B6000081A400000000000000000000000166968E4E000038B9000000000000000000000000000000000000001F00000000gnome-music-46.1/help/id/id.po# Indonesian translation for gnome-music. # Copyright (C) 2019 gnome-music's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-music package. # Andika Triwidada , 2019. # msgid "" msgstr "" "Project-Id-Version: gnome-music master\n" "POT-Creation-Date: 2021-04-10 19:23+0000\n" "PO-Revision-Date: 2021-08-26 07:32+0700\n" "Last-Translator: Andika Triwidada \n" "Language-Team: Indonesian \n" "Language: id\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 2.4.2\n" #. Put one translator per line, in the form NAME , YEAR1, YEAR2 msgctxt "_" msgid "translator-credits" msgstr "Andika Triwidada , 2019, 2021." #. (itstool) path: credit/name #: C/introduction.page:11 C/index.page:12 C/play-music.page:11 #: C/playlist-create-albums.page:11 C/playlist-create-songs.page:11 #: C/playlist-create-artists.page:11 C/playlist-delete.page:11 #: C/playlist-remove-songs.page:11 C/playlist-repeat.page:11 #: C/playlist-shuffle.page:11 C/search.page:11 msgid "Shobha Tyagi" msgstr "Shobha Tyagi" #. (itstool) path: credit/years #: C/introduction.page:13 C/index.page:14 C/play-music.page:13 #: C/playlist-create-albums.page:13 C/playlist-create-songs.page:13 #: C/playlist-create-artists.page:13 C/playlist-delete.page:13 #: C/playlist-remove-songs.page:13 C/playlist-repeat.page:13 #: C/playlist-shuffle.page:13 C/search.page:13 msgid "2014" msgstr "2014" #. (itstool) path: info/desc #. (itstool) path: page/p #: C/introduction.page:18 C/introduction.page:23 msgid "" "A simple and elegant replacement for using Files to show the " "music directory." msgstr "" "Pengganti memakai Files yang sederhana dan elegan untuk " "menampilkan direktori musik." #. (itstool) path: page/title #: C/introduction.page:22 msgid "Introduction to Music" msgstr "Perkenalan ke Musik" #. (itstool) path: info/title #: C/index.page:6 msgctxt "link:trail" msgid "Music" msgstr "Musik" #. (itstool) path: info/title #: C/index.page:7 msgctxt "link" msgid "Music" msgstr "Musik" #. (itstool) path: info/title #: C/index.page:8 msgctxt "text" msgid "Music" msgstr "Musik" #. (itstool) path: page/title #: C/index.page:19 msgid "<_:media-1/> Music" msgstr "<_:media-1/> Musik" #. (itstool) path: section/title #: C/index.page:25 msgid "Create playlist" msgstr "Buat daftar putar" #. (itstool) path: section/title #: C/index.page:28 msgid "Play a song" msgstr "Mainkan sebuah lagu" #. (itstool) path: section/title #: C/index.page:31 msgid "Remove songs and playlist" msgstr "Hapus lagu dan daftar putar" #. (itstool) path: info/desc #: C/play-music.page:18 msgid "Play your favorite songs." msgstr "Mainkan lagu-lagu favorit Anda." #. (itstool) path: page/title #: C/play-music.page:22 msgid "Play music" msgstr "Putar musik" #. (itstool) path: page/p #: C/play-music.page:24 msgid "" "You can play your favorite music by creating a playlist or by simply " "clicking on the song of your choice from any view." msgstr "" "Anda dapat memutar musik favorit Anda dengan membuat sebuah daftar putar " "atau sekadar dengan mengklik lagu pilihan Anda dari sebarang tilikan." #. (itstool) path: steps/title #: C/play-music.page:28 C/playlist-delete.page:27 #: C/playlist-remove-songs.page:27 msgid "While in Playlists:" msgstr "Saat di dalam Daftar Putar:" #. (itstool) path: item/p #: C/play-music.page:30 msgid "Select a playlist." msgstr "Pilih sebuah daftar putar." #. (itstool) path: item/p #: C/play-music.page:33 C/playlist-delete.page:32 msgid "Click on the gear button on the right hand side." msgstr "Klik pada tombol gerigi di sisi kanan." #. (itstool) path: item/p #: C/play-music.page:36 msgid "Click on Play." msgstr "Klik pada Putar." #. (itstool) path: info/desc #: C/playlist-create-albums.page:18 msgid "Add songs to playlists using albums." msgstr "Menambahkan lagu ke daftar putar memakai album." #. (itstool) path: page/title #: C/playlist-create-albums.page:21 msgid "Create a playlist using albums" msgstr "Membuat sebuah dafta putar memakai album" #. (itstool) path: page/p #: C/playlist-create-albums.page:23 msgid "" "You can view all your albums by clicking on the Albums button." msgstr "" "Anda juga dapat melihat semua album Anda dengan mengklik tombol Album." #. (itstool) path: steps/title #: C/playlist-create-albums.page:27 msgid "To add all the songs in an album:" msgstr "Untuk menambahkan semua lagu dalam suatu album:" #. (itstool) path: item/p #: C/playlist-create-albums.page:29 C/playlist-create-songs.page:29 #: C/playlist-create-artists.page:30 msgid "Click on the check button in the top-right of the window." msgstr "Klik pada tombol centang di kanan atas jendela." #. (itstool) path: item/p #: C/playlist-create-albums.page:32 msgid "Select albums." msgstr "Pilih album." #. (itstool) path: item/p #: C/playlist-create-albums.page:35 C/playlist-create-albums.page:60 #: C/playlist-create-songs.page:35 C/playlist-create-artists.page:37 msgid "Click on the Add to Playlist button." msgstr "Klik pada tombol Tambah ke Daftar Putar." #. (itstool) path: item/p #: C/playlist-create-albums.page:38 C/playlist-create-albums.page:63 #: C/playlist-create-artists.page:40 msgid "Click on New Playlist and type a name for your playlist." msgstr "" "Klik pada Daftar Putar Baru dan ketikkan sebuah nama untuk daftar " "putar Anda." #. (itstool) path: item/p #: C/playlist-create-albums.page:42 C/playlist-create-albums.page:67 #: C/playlist-create-songs.page:42 msgid "Click on Select." msgstr "Klik pada Pilih." #. (itstool) path: page/p #: C/playlist-create-albums.page:46 msgid "You can also create a playlist from specific songs." msgstr "Anda juga dapat membuat suatu daftar putar dari lagu-lagu tertentu." #. (itstool) path: steps/title #: C/playlist-create-albums.page:49 msgid "To add selected songs from an album:" msgstr "Untuk menambahkan lagu-lagu yang dipilih dari sebuah album:" #. (itstool) path: item/p #: C/playlist-create-albums.page:51 msgid "Click on an album." msgstr "Klik pada suatu album." #. (itstool) path: item/p #: C/playlist-create-albums.page:54 msgid "Click on the check button." msgstr "Klik pada tombol centang." #. (itstool) path: item/p #: C/playlist-create-albums.page:57 msgid "Select songs." msgstr "Pilih lagu." #. (itstool) path: note/p #: C/playlist-create-albums.page:72 C/playlist-create-songs.page:47 #: C/playlist-create-artists.page:49 msgid "" "To select all the songs click Click on items to select themSelect All in the toolbar or press " "CtrlA." msgstr "" "Untuk memilih semua lagu klik Klik pada butir untuk memilih " "merekaPilih Semua pada bilah alat atau tekan " "CtrlA." #. (itstool) path: note/p #: C/playlist-create-albums.page:76 C/playlist-create-songs.page:51 #: C/playlist-create-artists.page:53 msgid "" "To clear the selection click Click on items to select themSelect None in the toolbar." msgstr "" "Untuk membersihkan pilihan klik Klik pada butir untuk memilih " "merekaPilih Tak Satupun pada bilah alat." #. (itstool) path: info/desc #: C/playlist-create-songs.page:18 msgid "Create playlist by selecting your favorite songs." msgstr "Membuat daftar putar dengan memilih lagu-lagu favorit Anda." #. (itstool) path: page/title #: C/playlist-create-songs.page:21 msgid "Create playlists using songs" msgstr "Membuat daftar putar memakai lagu-lagu" #. (itstool) path: page/p #: C/playlist-create-songs.page:23 msgid "" "You can view all the songs by clicking on the Songs button." msgstr "" "Anda dapat melihat semua lagi dengan mengklik tombol Lagu." #. (itstool) path: steps/title #: C/playlist-create-songs.page:27 msgid "To create a new playlist while in Songs view:" msgstr "" "Untuk membuat sebuah daftar putar baru ketika dalam tilikan Lagu:" #. (itstool) path: item/p #: C/playlist-create-songs.page:32 msgid "Select all the songs you want to add to the playlist." msgstr "Pilih semua lagu yang ingin Anda tambahkan ke daftar putar." #. (itstool) path: item/p #: C/playlist-create-songs.page:38 msgid "" "Click on New Playlist and type a name for your " "playlist." msgstr "" "Klik pada Daftar Putar Baru dan ketikkan sebuah " "nama untuk daftar putar Anda." #. (itstool) path: info/desc #: C/playlist-create-artists.page:18 msgid "Create playlist by selecting your favorite artists." msgstr "Membuat daftar putar dengan memilih artis-artis favorit Anda." #. (itstool) path: page/title #: C/playlist-create-artists.page:22 msgid "Create playlists using artists" msgstr "Membuat daftar putar memakai artis-artis" #. (itstool) path: page/p #: C/playlist-create-artists.page:24 msgid "" "You can view all the artists and their songs by clicking on the Artists button." msgstr "" "Anda dapat melihat semua artis dan lagu-lagu mereka dengan mengklik pada " "tombol Artis." #. (itstool) path: steps/title #: C/playlist-create-artists.page:28 msgid "To create a new playlist while in Artists view:" msgstr "" "Untuk membuat sebuah daftar putar baru ketika dalam tilikan Artis:" #. (itstool) path: item/p #: C/playlist-create-artists.page:33 msgid "Select all the artists whose songs you want to add to the playlist." msgstr "" "Pilih semua artis yang lagu-lagunya ingin Anda tambahkan ke daftar putar." #. (itstool) path: item/p #: C/playlist-create-artists.page:44 msgid "Click on Select." msgstr "Klik pada Pilih." #. (itstool) path: info/desc #: C/playlist-delete.page:18 msgid "Remove an unwanted playlist." msgstr "Menghapus sebuah daftar putar yang tidak diinginkan." #. (itstool) path: page/title #: C/playlist-delete.page:22 msgid "Delete a playlist" msgstr "Menghapus sebuah daftar putar" #. (itstool) path: page/p #: C/playlist-delete.page:24 msgid "You can remove an old and unwanted playlist." msgstr "Anda dapat menghapus sebuah daftar putar tua yang tidak diinginkan." #. (itstool) path: item/p #: C/playlist-delete.page:29 msgid "Select the playlist which you want to delete." msgstr "Pilih daftar putar yang ingin Anda hapus." #. (itstool) path: item/p #: C/playlist-delete.page:35 msgid "Click on Delete." msgstr "Klik pada Hapus." #. (itstool) path: info/desc #: C/playlist-remove-songs.page:18 msgid "Delete songs from the playlist." msgstr "Menghapus lagu dari daftar putar." #. (itstool) path: page/title #: C/playlist-remove-songs.page:22 msgid "Remove songs" msgstr "Menghapus lagu" #. (itstool) path: page/p #: C/playlist-remove-songs.page:24 msgid "You can remove any unwanted songs from a playlist." msgstr "" "Anda dapat menghapus sebarang lagu yang tidak diinginkan dari suatu daftar " "putar." #. (itstool) path: item/p #: C/playlist-remove-songs.page:29 msgid "Select the playlist from which you want to remove songs." msgstr "Pilih daftar putar yang lagunya ingin Anda hapus." #. (itstool) path: item/p #: C/playlist-remove-songs.page:32 msgid "Click on the check button on the toolbar." msgstr "Klik pada tombol centang di bilah alat." #. (itstool) path: item/p #: C/playlist-remove-songs.page:35 msgid "Select all the songs which you want to remove." msgstr "Pilih semua lagu yang ingin Anda hapus." #. (itstool) path: item/p #: C/playlist-remove-songs.page:38 msgid "Click on Remove from Playlist." msgstr "Klik pada Hapus dari Daftar Putar." #. (itstool) path: info/desc #: C/playlist-repeat.page:18 msgid "Repeat all songs in the playlist or only the current song." msgstr "Ulang semua lagu dalam daftar putar atau hanya lagu saat ini." #. (itstool) path: page/title #: C/playlist-repeat.page:22 msgid "How do I play songs on repeat?" msgstr "Bagaimana saya memutar lagu berulang?" #. (itstool) path: list/title #: C/playlist-repeat.page:25 msgid "In the taskbar, click on the button on the right side:" msgstr "Dalam bilah tugas, klik pada tombol di sisi kanan:" #. (itstool) path: item/p #: C/playlist-repeat.page:27 msgid "Select Repeat Song to repeat a single song." msgstr "Pilih Ulangi Lagu untuk mengulangi sebuah lagu." #. (itstool) path: item/p #: C/playlist-repeat.page:30 msgid "Select Repeat All to repeat all the song in the playlist." msgstr "" "Pilih Ulang Semua untuk mengulang semua lagu dalam daftar putar." #. (itstool) path: info/desc #: C/playlist-shuffle.page:18 msgid "Shuffle songs in the playlist." msgstr "Acak lagu dalam daftar putar." #. (itstool) path: page/title #: C/playlist-shuffle.page:22 msgid "How do I shuffle my songs?" msgstr "Bagaimana saya mengacak lagu-lagu saya?" #. (itstool) path: page/p #: C/playlist-shuffle.page:24 msgid "" "In the taskbar, click on the button on right hand side and select " "Shuffle." msgstr "" "Dalam bilah tugas, klik pada tombol di sisi kanan dan pilih Acak." #. (itstool) path: info/desc #: C/search.page:18 msgid "Search through your music collection." msgstr "Mencari dalam koleksi musik Anda." #. (itstool) path: page/title #: C/search.page:22 msgid "Find music" msgstr "Cari musik" #. (itstool) path: page/p #: C/search.page:24 msgid "" "You can search your albums, artists, songs and playlists. Select what you " "want to search through then click the Search button and start " "searching." msgstr "" "Anda dapat mencari album, artis, lagu, dan daftar putar Anda. Pilih apa yang " "ingin Anda cari lalu klik tombol Cari dan memulai pencarian." #. (itstool) path: p/link #: C/legal.xml:5 msgid "Creative Commons Attribution-ShareAlike 3.0 Unported License" msgstr "Creative Commons Attribution-ShareAlike 3.0 Unported License" #. (itstool) path: license/p #: C/legal.xml:4 msgid "This work is licensed under a <_:link-1/>." msgstr "Karya ini dilisensikan di bawah <_:link-1/>." 070701000000B7000041ED00000000000000000000000266968E4E00000000000000000000000000000000000000000000001900000000gnome-music-46.1/help/it070701000000B8000081A400000000000000000000000166968E4E000038F9000000000000000000000000000000000000001F00000000gnome-music-46.1/help/it/it.po# Italian translation for gnome-music. # Copyright (C) 2019 gnome-music's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-music package. # Milo Casagrande , 2019. # msgid "" msgstr "" "Project-Id-Version: gnome-music master\n" "POT-Creation-Date: 2019-01-28 23:03+0000\n" "PO-Revision-Date: 2019-01-31 14:34+0100\n" "Language-Team: Italian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: it\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "Last-Translator: Milo Casagrande \n" "X-Generator: Poedit 2.2.1\n" #. Put one translator per line, in the form NAME , YEAR1, YEAR2 msgctxt "_" msgid "translator-credits" msgstr "Milo Casagrande , 2019" #. (itstool) path: credit/name #: C/introduction.page:11 C/index.page:11 C/play-music.page:11 #: C/playlist-create-albums.page:11 C/playlist-create-songs.page:11 #: C/playlist-create-artists.page:11 C/playlist-delete.page:11 #: C/playlist-remove-songs.page:11 C/playlist-repeat.page:11 #: C/playlist-shuffle.page:11 C/search.page:11 msgid "Shobha Tyagi" msgstr "Shobha Tyagi" #. (itstool) path: credit/years #: C/introduction.page:13 C/index.page:13 C/play-music.page:13 #: C/playlist-create-albums.page:13 C/playlist-create-songs.page:13 #: C/playlist-create-artists.page:13 C/playlist-delete.page:13 #: C/playlist-remove-songs.page:13 C/playlist-repeat.page:13 #: C/playlist-shuffle.page:13 C/search.page:13 msgid "2014" msgstr "2014" #. (itstool) path: info/desc #. (itstool) path: page/p #: C/introduction.page:18 C/introduction.page:23 msgid "" "A simple and elegant replacement for using Files to show the " "music directory." msgstr "" "Un'alternativa semplice ed elegante all'utilizzo di File per " "consultare la propria musica." #. (itstool) path: page/title #: C/introduction.page:22 msgid "Introduction to Music" msgstr "Introduzione a Musica" #. (itstool) path: info/title #: C/index.page:6 msgctxt "link" msgid "Music" msgstr "Musica" #. (itstool) path: info/title #: C/index.page:7 msgctxt "text" msgid "Music" msgstr "Musica" #. (itstool) path: page/title #: C/index.page:18 msgid "<_:media-1/> Music" msgstr "<_:media-1/> Musica" #. (itstool) path: section/title #: C/index.page:25 msgid "Create playlist" msgstr "Creare playlist" #. (itstool) path: section/title #: C/index.page:28 msgid "Play a song" msgstr "Riprodurre un brano" #. (itstool) path: section/title #: C/index.page:31 msgid "Remove songs and playlist" msgstr "Rimuovere brani e playlist" #. (itstool) path: info/desc #: C/play-music.page:18 msgid "Play your favorite songs." msgstr "Riprodurre i brani preferiti." #. (itstool) path: page/title #: C/play-music.page:22 msgid "Play music" msgstr "Riprodurre musica" #. (itstool) path: page/p #: C/play-music.page:24 msgid "" "You can play your favorite music by creating a playlist or by simply " "clicking on the song of your choice from any view." msgstr "" "È possibile riprodurre i propri brani preferiti creando una playlist o " "semplicemente selezionando il brano desiderato dalla finestra." #. (itstool) path: steps/title #: C/play-music.page:28 C/playlist-delete.page:27 #: C/playlist-remove-songs.page:27 msgid "While in Playlists:" msgstr "In modalità Playlist:" #. (itstool) path: item/p #: C/play-music.page:30 msgid "Select a playlist." msgstr "Selezionare una playlist." # (ndt) o pulsante con l'ingranaggio? #. (itstool) path: item/p #: C/play-music.page:33 C/playlist-delete.page:32 msgid "Click on the gear button on the right hand side." msgstr "Fare clic sul pulsante delle azioni sul lato destro." #. (itstool) path: item/p #: C/play-music.page:36 msgid "Click on Play." msgstr "Fare clic su Riproduci." #. (itstool) path: info/desc #: C/playlist-create-albums.page:18 msgid "Add songs to playlists using albums." msgstr "Aggiungere brani alle playlist utilizzando gli album." #. (itstool) path: page/title #: C/playlist-create-albums.page:21 msgid "Create a playlist using albums" msgstr "Creare una playlist utilizzando gli album" #. (itstool) path: page/p #: C/playlist-create-albums.page:23 msgid "" "You can view all your albums by clicking on the Albums button." msgstr "" "È possibile visualizzare tutti i propri album facendo clic sul pulsante " "Albums." #. (itstool) path: steps/title #: C/playlist-create-albums.page:27 msgid "To add all the songs in an album:" msgstr "Per aggiungere tutti i brani in un album:" #. (itstool) path: item/p #: C/playlist-create-albums.page:29 C/playlist-create-songs.page:29 #: C/playlist-create-artists.page:30 msgid "Click on the check button in the top-right of the window." msgstr "" "Fare clic sul pulsante di selezione nell'angolo in alto a destra della " "finestra." #. (itstool) path: item/p #: C/playlist-create-albums.page:32 msgid "Select albums." msgstr "Selezionare gli album." #. (itstool) path: item/p #: C/playlist-create-albums.page:35 C/playlist-create-albums.page:60 #: C/playlist-create-songs.page:35 C/playlist-create-artists.page:37 msgid "Click on the Add to Playlist button." msgstr "" "Fare clic sul pulsante Aggiungi a playlist." #. (itstool) path: item/p #: C/playlist-create-albums.page:38 C/playlist-create-albums.page:63 #: C/playlist-create-artists.page:40 msgid "Click on New Playlist and type a name for your playlist." msgstr "" "Fare clic su Nuova playlist e digitare il nome per la playlist." #. (itstool) path: item/p #: C/playlist-create-albums.page:42 C/playlist-create-albums.page:67 #: C/playlist-create-songs.page:42 msgid "Click on Select." msgstr "Fare clic su Seleziona." #. (itstool) path: page/p #: C/playlist-create-albums.page:46 msgid "You can also create a playlist from specific songs." msgstr "" "È anche possibile creare una playlist partendo da dei brani specifici." #. (itstool) path: steps/title #: C/playlist-create-albums.page:49 msgid "To add selected songs from an album:" msgstr "Per aggiungere i brani selezionati da un album:" #. (itstool) path: item/p #: C/playlist-create-albums.page:51 msgid "Click on an album." msgstr "Fare clic su un album." #. (itstool) path: item/p #: C/playlist-create-albums.page:54 msgid "Click on the check button." msgstr "Fare clic sul pulsante di selezione." #. (itstool) path: item/p #: C/playlist-create-albums.page:57 msgid "Select songs." msgstr "Selezionare i brani." #. (itstool) path: note/p #: C/playlist-create-albums.page:72 C/playlist-create-songs.page:47 #: C/playlist-create-artists.page:49 msgid "" "To select all the songs click Click on items to select themSelect All in the toolbar or press " "CtrlA." msgstr "" "Per selezionare tutti i brani fare clic su Fare clic sugli " "elementi per selezionarliSeleziona tutto nella " "barra degli strumenti o premere CtrlA." #. (itstool) path: note/p #: C/playlist-create-albums.page:76 C/playlist-create-songs.page:51 #: C/playlist-create-artists.page:53 msgid "" "To clear the selection click Click on items to select themSelect None in the toolbar." msgstr "" "Per annullare la selezione, fare clic su Fare clic sugli " "elementi per selezionarliDeseleziona tutto nella " "barra degli strumenti." #. (itstool) path: info/desc #: C/playlist-create-songs.page:18 msgid "Create playlist by selecting your favorite songs." msgstr "Creare una playlist selezionando i brani preferiti." #. (itstool) path: page/title #: C/playlist-create-songs.page:21 msgid "Create playlists using songs" msgstr "Creare playlist utilizzando brani" #. (itstool) path: page/p #: C/playlist-create-songs.page:23 msgid "" "You can view all the songs by clicking on the Songs button." msgstr "" "È possibile visualizzare tutti i propri brani facendo clic sul pulsante " "Brani." #. (itstool) path: steps/title #: C/playlist-create-songs.page:27 msgid "To create a new playlist while in Songs view:" msgstr "Per creare una playlist in modalità Brani:" #. (itstool) path: item/p #: C/playlist-create-songs.page:32 msgid "Select all the songs you want to add to the playlist." msgstr "Selezionare tutti i brani da aggiungere alla playlist." #. (itstool) path: item/p #: C/playlist-create-songs.page:38 msgid "" "Click on New Playlist and type a name for your " "playlist." msgstr "" "Fare clic su Nuova playlist e digitare il nome " "per la playlist." #. (itstool) path: info/desc #: C/playlist-create-artists.page:18 msgid "Create playlist by selecting your favorite artists." msgstr "Creare playlist selezionando gli artisti preferiti." #. (itstool) path: page/title #: C/playlist-create-artists.page:22 msgid "Create playlists using artists" msgstr "Creare playlist basate sugli artisti" #. (itstool) path: page/p #: C/playlist-create-artists.page:24 msgid "" "You can view all the artists and their songs by clicking on the Artists button." msgstr "" "È possibile visualizzare tutti gli artisti e i loro brani facendo clil sul " "pulsante Artisti." #. (itstool) path: steps/title #: C/playlist-create-artists.page:28 msgid "To create a new playlist while in Artists view:" msgstr "Per creare una playlist in modalità Artisti:" #. (itstool) path: item/p #: C/playlist-create-artists.page:33 msgid "Select all the artists whose songs you want to add to the playlist." msgstr "" "Selezionare tutti gli artisti i cui brani devono essere inclusi nella " "playlist." #. (itstool) path: item/p #: C/playlist-create-artists.page:44 msgid "Click on Select." msgstr "Fare clic su Seleziona." #. (itstool) path: info/desc #: C/playlist-delete.page:18 msgid "Remove an unwanted playlist." msgstr "Rimuovere una playlist." #. (itstool) path: page/title #: C/playlist-delete.page:22 msgid "Delete a playlist" msgstr "Eliminare una playlist" #. (itstool) path: page/p #: C/playlist-delete.page:24 msgid "You can remove an old and unwanted playlist." msgstr "" "È possibile rimuovere le vecchie playlist o quelle che non si utilizzano " "più." #. (itstool) path: item/p #: C/playlist-delete.page:29 msgid "Select the playlist which you want to delete." msgstr "Selezionare la playlist da eliminare." #. (itstool) path: item/p #: C/playlist-delete.page:35 msgid "Click on Delete." msgstr "Fare clic su Elimina." #. (itstool) path: info/desc #: C/playlist-remove-songs.page:18 msgid "Delete songs from the playlist." msgstr "Eliminare brani dalla playlist." #. (itstool) path: page/title #: C/playlist-remove-songs.page:22 msgid "Remove songs" msgstr "Rimuovere brani" #. (itstool) path: page/p #: C/playlist-remove-songs.page:24 msgid "You can remove any unwanted songs from a playlist." msgstr "È possibile rimuovere un qualsiasi brano da una playlist." #. (itstool) path: item/p #: C/playlist-remove-songs.page:29 msgid "Select the playlist from which you want to remove songs." msgstr "Selezionare la playlist da cui rimuovere i brani." #. (itstool) path: item/p #: C/playlist-remove-songs.page:32 msgid "Click on the check button on the toolbar." msgstr "Fare clic sul pulsante di selezione nella barra del titolo." #. (itstool) path: item/p #: C/playlist-remove-songs.page:35 msgid "Select all the songs which you want to remove." msgstr "Selezionare tutti i brani di rimuovere." #. (itstool) path: item/p #: C/playlist-remove-songs.page:38 msgid "Click on Remove from Playlist." msgstr "Fare clic su Rimuovi da playlist." #. (itstool) path: info/desc #: C/playlist-repeat.page:18 msgid "Repeat all songs in the playlist or only the current song." msgstr "Ripetere tutti i brani nella playlist o solo quello in riproduzione." #. (itstool) path: page/title #: C/playlist-repeat.page:22 msgid "How do I play songs on repeat?" msgstr "Riprodurre i brani in ripetizione" #. (itstool) path: list/title #: C/playlist-repeat.page:25 msgid "In the taskbar, click on the button on the right side:" msgstr "Nella barra del titolo, fare clic sul pulsante a destra:" #. (itstool) path: item/p #: C/playlist-repeat.page:27 msgid "Select Repeat Song to repeat a single song." msgstr "Selezionare Ripeti brano per ripetere un singolo brano." #. (itstool) path: item/p #: C/playlist-repeat.page:30 msgid "Select Repeat All to repeat all the song in the playlist." msgstr "" "Selezionare Ripeti tutto per ripetere tutti i brani nella " "playlist." #. (itstool) path: info/desc #: C/playlist-shuffle.page:18 msgid "Shuffle songs in the playlist." msgstr "Mischiare i brani in un playlist." #. (itstool) path: page/title #: C/playlist-shuffle.page:22 msgid "How do I shuffle my songs?" msgstr "Mischiare i brani" #. (itstool) path: page/p #: C/playlist-shuffle.page:24 msgid "" "In the taskbar, click on the button on right hand side and select " "Shuffle." msgstr "" "Nella barra del titolo, fare clic sul pulsante a destra e selezionare " "Mischia." #. (itstool) path: info/desc #: C/search.page:18 msgid "Search through your music collection." msgstr "Cercare nella propria collezione musicale." #. (itstool) path: page/title #: C/search.page:22 msgid "Find music" msgstr "Trovare musica" #. (itstool) path: page/p #: C/search.page:24 msgid "" "You can search your albums, artists, songs and playlists. Select what you " "want to search through then click the Search button and start " "searching." msgstr "" "È possibile cercare tra album, artisti, brani e playlist. Selezionare il " "criterio di ricerca quindi fare clic sul pulsante Cerca." #. (itstool) path: p/link #: C/legal.xml:5 msgid "Creative Commons Attribution-ShareAlike 3.0 Unported License" msgstr "Creative Commons Attribution-ShareAlike 3.0 Unported" #. (itstool) path: license/p #: C/legal.xml:4 msgid "This work is licensed under a <_:link-1/>." msgstr "Questo documento è fornito nei termini della licenza <_:link-1/>." 070701000000B9000041ED00000000000000000000000266968E4E00000000000000000000000000000000000000000000001900000000gnome-music-46.1/help/ko070701000000BA000081A400000000000000000000000166968E4E00003AA3000000000000000000000000000000000000001F00000000gnome-music-46.1/help/ko/ko.po# Korean translation for gnome-music. # Copyright (C) 2014 gnome-music's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-music package. # Seong-ho Cho , 2014, 2016, 2017, 2021. # msgid "" msgstr "" "Project-Id-Version: gnome-music master\n" "POT-Creation-Date: 2021-04-10 19:23+0000\n" "PO-Revision-Date: 2021-08-31 16:38+0900\n" "Last-Translator: Seong-ho Cho \n" "Language-Team: Korean \n" "Language: ko\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Poedit 2.3.1\n" #. Put one translator per line, in the form NAME , YEAR1, YEAR2 msgctxt "_" msgid "translator-credits" msgstr "조성호 , 2014, 2016, 2017, 2021." #. (itstool) path: credit/name #: C/introduction.page:11 C/index.page:12 C/play-music.page:11 #: C/playlist-create-albums.page:11 C/playlist-create-songs.page:11 #: C/playlist-create-artists.page:11 C/playlist-delete.page:11 #: C/playlist-remove-songs.page:11 C/playlist-repeat.page:11 #: C/playlist-shuffle.page:11 C/search.page:11 msgid "Shobha Tyagi" msgstr "Shobha Tyagi" #. (itstool) path: credit/years #: C/introduction.page:13 C/index.page:14 C/play-music.page:13 #: C/playlist-create-albums.page:13 C/playlist-create-songs.page:13 #: C/playlist-create-artists.page:13 C/playlist-delete.page:13 #: C/playlist-remove-songs.page:13 C/playlist-repeat.page:13 #: C/playlist-shuffle.page:13 C/search.page:13 msgid "2014" msgstr "2014" #. (itstool) path: info/desc #. (itstool) path: page/p #: C/introduction.page:18 C/introduction.page:23 msgid "" "A simple and elegant replacement for using Files to show the " "music directory." msgstr "" "음악 디렉터리를 보여주는 파일보다 더욱 단순하고 우아한 대안 프로" "그램입니다." #. (itstool) path: page/title #: C/introduction.page:22 msgid "Introduction to Music" msgstr "음악 소개" #. (itstool) path: info/title #: C/index.page:6 msgctxt "link:trail" msgid "Music" msgstr "음악" #. (itstool) path: info/title #: C/index.page:7 msgctxt "link" msgid "Music" msgstr "음악" #. (itstool) path: info/title #: C/index.page:8 msgctxt "text" msgid "Music" msgstr "음악" #. (itstool) path: page/title #: C/index.page:19 msgid "<_:media-1/> Music" msgstr "<_:media-1/> 음악" #. (itstool) path: section/title #: C/index.page:25 msgid "Create playlist" msgstr "재생 목록 만들기" #. (itstool) path: section/title #: C/index.page:28 msgid "Play a song" msgstr "노래 재생하기" #. (itstool) path: section/title #: C/index.page:31 msgid "Remove songs and playlist" msgstr "음악과 재생 목록 제거하기" #. (itstool) path: info/desc #: C/play-music.page:18 msgid "Play your favorite songs." msgstr "원하는 노래를 재생합니다." #. (itstool) path: page/title #: C/play-music.page:22 msgid "Play music" msgstr "음악 재생" #. (itstool) path: page/p #: C/play-music.page:24 msgid "" "You can play your favorite music by creating a playlist or by simply " "clicking on the song of your choice from any view." msgstr "" "재생 목록을 만들거나 어떤 뷰에서든 여러분이 선택한 노래를 눌러 듣고 싶은 음" "악을 재생할 수 있습니다." #. (itstool) path: steps/title #: C/play-music.page:28 C/playlist-delete.page:27 #: C/playlist-remove-songs.page:27 msgid "While in Playlists:" msgstr "재생 목록에서:" #. (itstool) path: item/p #: C/play-music.page:30 msgid "Select a playlist." msgstr "재생 목록을 선택하십시오." #. (itstool) path: item/p #: C/play-music.page:33 C/playlist-delete.page:32 msgid "Click on the gear button on the right hand side." msgstr "오른편에 있는 톱니바퀴 단추를 누르십시오." #. (itstool) path: item/p #: C/play-music.page:36 msgid "Click on Play." msgstr "재생을 누르십시오." #. (itstool) path: info/desc #: C/playlist-create-albums.page:18 msgid "Add songs to playlists using albums." msgstr "앨범을 사용하여 노래를 재생 목록에 추가합니다." #. (itstool) path: page/title #: C/playlist-create-albums.page:21 msgid "Create a playlist using albums" msgstr "앨범을 사용하여 재생 목록 만들기" #. (itstool) path: page/p #: C/playlist-create-albums.page:23 msgid "" "You can view all your albums by clicking on the Albums button." msgstr "" "앨범 단추를 누르면 모든 앨범을 볼 수 있습니다." #. (itstool) path: steps/title #: C/playlist-create-albums.page:27 msgid "To add all the songs in an album:" msgstr "앨범의 모든 노래를 추가하려면:" #. (itstool) path: item/p #: C/playlist-create-albums.page:29 C/playlist-create-songs.page:29 #: C/playlist-create-artists.page:30 msgid "Click on the check button in the top-right of the window." msgstr "창의 우측 상단에 있는 표시 단추를 누르십시오." #. (itstool) path: item/p #: C/playlist-create-albums.page:32 msgid "Select albums." msgstr "앨범을 선택하십시오." #. (itstool) path: item/p #: C/playlist-create-albums.page:35 C/playlist-create-albums.page:60 #: C/playlist-create-songs.page:35 C/playlist-create-artists.page:37 msgid "Click on the Add to Playlist button." msgstr "재생 목록에 추가 단추를 누르십시오." #. (itstool) path: item/p #: C/playlist-create-albums.page:38 C/playlist-create-albums.page:63 #: C/playlist-create-artists.page:40 msgid "Click on New Playlist and type a name for your playlist." msgstr "새 재생 목록을 누르고 재생 목록 이름을 입력하십시오." #. (itstool) path: item/p #: C/playlist-create-albums.page:42 C/playlist-create-albums.page:67 #: C/playlist-create-songs.page:42 msgid "Click on Select." msgstr "선택을 누르십시오." #. (itstool) path: page/p #: C/playlist-create-albums.page:46 msgid "You can also create a playlist from specific songs." msgstr "개별 노래로 재생 목록을 만들 수도 있습니다." #. (itstool) path: steps/title #: C/playlist-create-albums.page:49 msgid "To add selected songs from an album:" msgstr "앨범에서 선택한 노래를 추가하려면:" #. (itstool) path: item/p #: C/playlist-create-albums.page:51 msgid "Click on an album." msgstr "앨범을 누르십시오." #. (itstool) path: item/p #: C/playlist-create-albums.page:54 msgid "Click on the check button." msgstr "표시 단추를 누르십시오." #. (itstool) path: item/p #: C/playlist-create-albums.page:57 msgid "Select songs." msgstr "노래를 선택하십시오." #. (itstool) path: note/p #: C/playlist-create-albums.page:72 C/playlist-create-songs.page:47 #: C/playlist-create-artists.page:49 msgid "" "To select all the songs click Click on items to select themSelect All in the toolbar or press " "CtrlA." msgstr "" "모든 노래를 선택하려면 도구 모음에서 선택할 항목 누름모두 선택 을 누르거나 CtrlA키 조합을 누르십시오." #. (itstool) path: note/p #: C/playlist-create-albums.page:76 C/playlist-create-songs.page:51 #: C/playlist-create-artists.page:53 msgid "" "To clear the selection click Click on items to select themSelect None in the toolbar." msgstr "" "선택을 취소하려면 도구 모음에서 선택할 항목 누름선" "택 안함을 누르십시오." #. (itstool) path: info/desc #: C/playlist-create-songs.page:18 msgid "Create playlist by selecting your favorite songs." msgstr "듣고 싶은 노래를 선택하여 재생 목록을 만듭니다." #. (itstool) path: page/title #: C/playlist-create-songs.page:21 msgid "Create playlists using songs" msgstr "노래로 재생 목록 만들기" #. (itstool) path: page/p #: C/playlist-create-songs.page:23 msgid "" "You can view all the songs by clicking on the Songs button." msgstr "" "노래 단추를 눌러 모든 노래를 볼 수 있습니다." #. (itstool) path: steps/title #: C/playlist-create-songs.page:27 msgid "To create a new playlist while in Songs view:" msgstr "노래 보기에서 새 재생 목록을 만들려면:" #. (itstool) path: item/p #: C/playlist-create-songs.page:32 msgid "Select all the songs you want to add to the playlist." msgstr "재생 목록에 추가할 모든 노래를 선택하십시오." #. (itstool) path: item/p #: C/playlist-create-songs.page:38 msgid "" "Click on New Playlist and type a name for your " "playlist." msgstr "" "새 재생 목록을 누른 후 재생 목록에서 이름을 입" "력하십시오." #. (itstool) path: info/desc #: C/playlist-create-artists.page:18 msgid "Create playlist by selecting your favorite artists." msgstr "원하는 음악가를 선택하여 재생 목록을 만듭니다." #. (itstool) path: page/title #: C/playlist-create-artists.page:22 msgid "Create playlists using artists" msgstr "음악가 기준으로 재생 목록 만들기" #. (itstool) path: page/p #: C/playlist-create-artists.page:24 msgid "" "You can view all the artists and their songs by clicking on the Artists button." msgstr "" "음악가 단추를 누르면 음악가와 해당 음악가의 모" "든 노래를 볼 수 있습니다." #. (itstool) path: steps/title #: C/playlist-create-artists.page:28 msgid "To create a new playlist while in Artists view:" msgstr "음악가 보기에서 새 재생 목록을 만들려면:" #. (itstool) path: item/p #: C/playlist-create-artists.page:33 msgid "Select all the artists whose songs you want to add to the playlist." msgstr "재생 목록에 추가할 노래의 모든 음악가를 선택하십시오." #. (itstool) path: item/p #: C/playlist-create-artists.page:44 msgid "Click on Select." msgstr "선택을 누르십시오." #. (itstool) path: info/desc #: C/playlist-delete.page:18 msgid "Remove an unwanted playlist." msgstr "원하지 않는 재생 목록을 제거합니다." #. (itstool) path: page/title #: C/playlist-delete.page:22 msgid "Delete a playlist" msgstr "재생 목록 제거" #. (itstool) path: page/p #: C/playlist-delete.page:24 msgid "You can remove an old and unwanted playlist." msgstr "오래되어 원하지 않는 재생 목록을 제거할 수 있습니다." #. (itstool) path: item/p #: C/playlist-delete.page:29 msgid "Select the playlist which you want to delete." msgstr "삭제할 재생 목록을 선택하십시오." #. (itstool) path: item/p #: C/playlist-delete.page:35 msgid "Click on Delete." msgstr "삭제를 누르십시오." #. (itstool) path: info/desc #: C/playlist-remove-songs.page:18 msgid "Delete songs from the playlist." msgstr "재생 목록에서 노래를 삭제합니다." #. (itstool) path: page/title #: C/playlist-remove-songs.page:22 msgid "Remove songs" msgstr "노래 제거" #. (itstool) path: page/p #: C/playlist-remove-songs.page:24 msgid "You can remove any unwanted songs from a playlist." msgstr "재생 목록에서 원하지 않는 노래를 제거할 수 있습니다." #. (itstool) path: item/p #: C/playlist-remove-songs.page:29 msgid "Select the playlist from which you want to remove songs." msgstr "제거하려는 노래를 재생 목록에서 선택하십시오." #. (itstool) path: item/p #: C/playlist-remove-songs.page:32 msgid "Click on the check button on the toolbar." msgstr "도구 모음의 표시 단추를 누르십시오." #. (itstool) path: item/p #: C/playlist-remove-songs.page:35 msgid "Select all the songs which you want to remove." msgstr "제거할 모든 노래를 선택하십시오." #. (itstool) path: item/p #: C/playlist-remove-songs.page:38 msgid "Click on Remove from Playlist." msgstr "재생 목록에서 제거를 누르십시오." #. (itstool) path: info/desc #: C/playlist-repeat.page:18 msgid "Repeat all songs in the playlist or only the current song." msgstr "재생 목록의 모든 노래 또는 현재 노래에 대해 반복하십시오." #. (itstool) path: page/title #: C/playlist-repeat.page:22 msgid "How do I play songs on repeat?" msgstr "노래 재생을 어떻게 반복하죠?" #. (itstool) path: list/title #: C/playlist-repeat.page:25 msgid "In the taskbar, click on the button on the right side:" msgstr "작업 표시줄에서 오른편의 단추를 누르십시오:" #. (itstool) path: item/p #: C/playlist-repeat.page:27 msgid "Select Repeat Song to repeat a single song." msgstr "노래 반복을 선택하여 단일 노래를 반복하십시오." #. (itstool) path: item/p #: C/playlist-repeat.page:30 msgid "Select Repeat All to repeat all the song in the playlist." msgstr "" "모두 반복을 선택하여 재생 목록의 모든 노래를 반복하십시오." #. (itstool) path: info/desc #: C/playlist-shuffle.page:18 msgid "Shuffle songs in the playlist." msgstr "재생 목록의 노래를 뒤섞습니다." #. (itstool) path: page/title #: C/playlist-shuffle.page:22 msgid "How do I shuffle my songs?" msgstr "어떻게 노래를 뒤섞을까요?" #. (itstool) path: page/p #: C/playlist-shuffle.page:24 msgid "" "In the taskbar, click on the button on right hand side and select " "Shuffle." msgstr "" "작업 표시줄의 오른편에 있는 단추를 누르고 뒤섞기를 선택하십시오." #. (itstool) path: info/desc #: C/search.page:18 msgid "Search through your music collection." msgstr "음악 모음에서 검색하십시오." #. (itstool) path: page/title #: C/search.page:22 msgid "Find music" msgstr "음악 찾기" #. (itstool) path: page/p #: C/search.page:24 msgid "" "You can search your albums, artists, songs and playlists. Select what you " "want to search through then click the Search button and start " "searching." msgstr "" "앨범, 음악가, 노래, 재생 목록을 검색할 수 있습니다. 검색할 요소를 선택한 " "후 검색 단추를 누르면 검색을 시작합니다." #. (itstool) path: p/link #: C/legal.xml:5 msgid "Creative Commons Attribution-ShareAlike 3.0 Unported License" msgstr "" "크리에이티브 커먼즈 저작자표시-동일조건변경허락 3.0 Unported 라이선스" #. (itstool) path: license/p #: C/legal.xml:4 msgid "This work is licensed under a <_:link-1/>." msgstr "이 문서는 <_:link-1/>에 따른 활용을 허가합니다." 070701000000BB000081A400000000000000000000000166968E4E000001A1000000000000000000000000000000000000002200000000gnome-music-46.1/help/meson.buildgnome.yelp(meson.project_name(), sources: [ 'introduction.page', 'index.page', 'play-music.page', 'playlist-create-albums.page', 'playlist-create-songs.page', 'playlist-create-artists.page', 'playlist-delete.page', 'playlist-remove-songs.page', 'playlist-repeat.page', 'playlist-shuffle.page', 'search.page', 'legal.xml' ], media: 'figures/org.gnome.Music.svg' ) 070701000000BC000041ED00000000000000000000000266968E4E00000000000000000000000000000000000000000000001900000000gnome-music-46.1/help/nl070701000000BD000081A400000000000000000000000166968E4E000039EB000000000000000000000000000000000000001F00000000gnome-music-46.1/help/nl/nl.po# Dutch translation for gnome-music. # Copyright (C) 2016 gnome-music's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-music package. # Justin van Steijn , 2016. # Nathan Follens , 2022. # msgid "" msgstr "" "Project-Id-Version: gnome-music master\n" "POT-Creation-Date: 2022-05-10 09:09+0000\n" "PO-Revision-Date: 2022-06-30 21:18+0200\n" "Last-Translator: Nathan Follens \n" "Language-Team: Dutch \n" "Language: nl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Poedit 3.1\n" #. Put one translator per line, in the form NAME , YEAR1, YEAR2 msgctxt "_" msgid "translator-credits" msgstr "" "Justin van Steijn , 2016.\n" "Nathan Follens , 2022." #. (itstool) path: credit/name #: C/introduction.page:11 C/index.page:12 C/play-music.page:11 #: C/playlist-create-albums.page:11 C/playlist-create-songs.page:11 #: C/playlist-create-artists.page:11 C/playlist-delete.page:11 #: C/playlist-remove-songs.page:11 C/playlist-repeat.page:11 #: C/playlist-shuffle.page:11 C/search.page:11 msgid "Shobha Tyagi" msgstr "Shobha Tyagi" #. (itstool) path: credit/years #: C/introduction.page:13 C/index.page:14 C/play-music.page:13 #: C/playlist-create-albums.page:13 C/playlist-create-songs.page:13 #: C/playlist-create-artists.page:13 C/playlist-delete.page:13 #: C/playlist-remove-songs.page:13 C/playlist-repeat.page:13 #: C/playlist-shuffle.page:13 C/search.page:13 msgid "2014" msgstr "2014" #. (itstool) path: info/desc #. (itstool) path: page/p #: C/introduction.page:18 C/introduction.page:23 msgid "" "A simple and elegant replacement for using Files to show the " "music directory." msgstr "" "Een eenvoudige en elegante vervanging voor Bestanden om door de " "muziekmap te bladeren." #. (itstool) path: page/title #: C/introduction.page:22 msgid "Introduction to Music" msgstr "Inleiding tot Muziek" #. (itstool) path: info/title #: C/index.page:6 msgctxt "link:trail" msgid "Music" msgstr "Muziek" #. (itstool) path: info/title #: C/index.page:7 msgctxt "link" msgid "Music" msgstr "Muziek" #. (itstool) path: info/title #: C/index.page:8 msgctxt "text" msgid "Music" msgstr "Muziek" #. (itstool) path: page/title #: C/index.page:19 msgid "<_:media-1/> Music" msgstr "<_:media-1/> Muziek" #. (itstool) path: section/title #: C/index.page:25 msgid "Create playlist" msgstr "Afspeellijst maken" #. (itstool) path: section/title #: C/index.page:28 msgid "Play a song" msgstr "Een nummer afspelen" #. (itstool) path: section/title #: C/index.page:31 msgid "Remove songs and playlist" msgstr "Nummers en afspeellijsten verwijderen" #. (itstool) path: info/desc #: C/play-music.page:18 msgid "Play your favorite songs." msgstr "Speel uw favoriete nummers af." #. (itstool) path: page/title #: C/play-music.page:22 msgid "Play music" msgstr "Muziek afspelen" #. (itstool) path: page/p #: C/play-music.page:24 msgid "" "You can play your favorite music by creating a playlist or by simply " "clicking on the song of your choice from any view." msgstr "" "U kunt uw favoriete muziek afspelen door een afspeellijst te maken of door " "simpelweg op het nummer van uw keuze te klikken vanuit een willekeurige " "weergave." #. (itstool) path: steps/title #: C/play-music.page:28 C/playlist-delete.page:27 #: C/playlist-remove-songs.page:27 msgid "While in Playlists:" msgstr "Wanneer u in Afspeellijsten bent:" #. (itstool) path: item/p #: C/play-music.page:30 msgid "Select a playlist." msgstr "Selecteer een afspeellijst." #. (itstool) path: item/p #: C/play-music.page:33 C/playlist-delete.page:32 msgid "Click on the gear button on the right hand side." msgstr "Klik op de knop met het tandrad aan de rechterkant." #. (itstool) path: item/p #: C/play-music.page:36 msgid "Click on Play." msgstr "Klik op Afspelen." #. (itstool) path: info/desc #: C/playlist-create-albums.page:18 msgid "Add songs to playlists using albums." msgstr "Voeg nummers aan afspeellijsten toe door gebruik te maken van albums." #. (itstool) path: page/title #: C/playlist-create-albums.page:21 msgid "Create a playlist using albums" msgstr "Een afspeellijst maken met albums" #. (itstool) path: page/p #: C/playlist-create-albums.page:23 msgid "" "You can view all your albums by clicking on the Albums button." msgstr "" "U kunt al uw albums bekijken door op de knop Albums te klikken." #. (itstool) path: steps/title #: C/playlist-create-albums.page:27 msgid "To add all the songs in an album:" msgstr "Om alle nummers in een album toe te voegen:" #. (itstool) path: item/p #: C/playlist-create-albums.page:29 C/playlist-create-songs.page:29 #: C/playlist-create-artists.page:30 msgid "Click on the check button in the top-right of the window." msgstr "Klik op de knop met het vinkje in de rechterbovenhoek van het venster." #. (itstool) path: item/p #: C/playlist-create-albums.page:32 msgid "Select albums." msgstr "Selecteer albums." #. (itstool) path: item/p #: C/playlist-create-albums.page:35 C/playlist-create-albums.page:60 #: C/playlist-create-songs.page:35 C/playlist-create-artists.page:37 msgid "Click on the Add to Playlist button." msgstr "Klik op Toevoegen aan afspeellijst." #. (itstool) path: item/p #: C/playlist-create-albums.page:38 C/playlist-create-albums.page:63 #: C/playlist-create-artists.page:40 msgid "Click on New Playlist and type a name for your playlist." msgstr "" "Klik op Nieuwe afspeellijst en typ een naam voor uw afspeellijst." #. (itstool) path: item/p #: C/playlist-create-albums.page:42 C/playlist-create-albums.page:67 #: C/playlist-create-songs.page:42 msgid "Click on Select." msgstr "Klik op Selecteren." #. (itstool) path: page/p #: C/playlist-create-albums.page:46 msgid "You can also create a playlist from specific songs." msgstr "U kunt ook een afspeellijst maken met specifieke nummers." #. (itstool) path: steps/title #: C/playlist-create-albums.page:49 msgid "To add selected songs from an album:" msgstr "Om geselecteerde nummers toe te voegen vanuit een album:" #. (itstool) path: item/p #: C/playlist-create-albums.page:51 msgid "Click on an album." msgstr "Klik op een album." #. (itstool) path: item/p #: C/playlist-create-albums.page:54 msgid "Click on the check button." msgstr "Klik op de knop met het vinkje." #. (itstool) path: item/p #: C/playlist-create-albums.page:57 msgid "Select songs." msgstr "Selecteer nummers." #. (itstool) path: note/p #: C/playlist-create-albums.page:72 C/playlist-create-songs.page:47 #: C/playlist-create-artists.page:49 msgid "" "To select all the songs click Click on items to select themSelect All in the toolbar or press " "CtrlA." msgstr "" "Om alle nummers te selecteren klikt u op Klik op items om deze " "te selecterenAlles selecteren in de werkbalk of " "drukt u opCtrlA." #. (itstool) path: note/p #: C/playlist-create-albums.page:76 C/playlist-create-songs.page:51 #: C/playlist-create-artists.page:53 msgid "" "To clear the selection click Click on items to select themSelect None in the toolbar." msgstr "" "Om de selectie op te heffen klikt u op Klik op items om deze " "te selecterenNiets selecteren in de werkbalk." #. (itstool) path: info/desc #: C/playlist-create-songs.page:18 msgid "Create playlist by selecting your favorite songs." msgstr "Maak een afspeellijst aan door uw favoriete nummers te selecteren." #. (itstool) path: page/title #: C/playlist-create-songs.page:21 msgid "Create playlists using songs" msgstr "Afspeellijsten aanmaken met nummers" #. (itstool) path: page/p #: C/playlist-create-songs.page:23 msgid "" "You can view all the songs by clicking on the Songs button." msgstr "" "U kunt alle nummers bekijken door te klikken op Nummers." #. (itstool) path: steps/title #: C/playlist-create-songs.page:27 msgid "To create a new playlist while in Songs view:" msgstr "" "Om een nieuwe afspeellijst aan te maken terwijl u in de Nummers-" "weergave bent:" #. (itstool) path: item/p #: C/playlist-create-songs.page:32 msgid "Select all the songs you want to add to the playlist." msgstr "Selecteer alle nummers die u aan de afspeellijst wilt toevoegen." #. (itstool) path: item/p #: C/playlist-create-songs.page:38 msgid "" "Click on New Playlist and type a name for your " "playlist." msgstr "" "Klik op Nieuwe afspeellijst en typ een naam voor " "uw afspeellijst." #. (itstool) path: info/desc #: C/playlist-create-artists.page:18 msgid "Create playlist by selecting your favorite artists." msgstr "Maak een afspeellijst aan door uw favoriete artiesten te selecteren." #. (itstool) path: page/title #: C/playlist-create-artists.page:22 msgid "Create playlists using artists" msgstr "Afspeellijsten aanmaken met artiesten" #. (itstool) path: page/p #: C/playlist-create-artists.page:24 msgid "" "You can view all the artists and their songs by clicking on the Artists button." msgstr "" "U kunt alle artiesten en hun nummers weergeven door te klikken op Artiesten." #. (itstool) path: steps/title #: C/playlist-create-artists.page:28 msgid "To create a new playlist while in Artists view:" msgstr "" "Om een nieuwe afspeellijst aan te maken terwijl u in de Artiesten-" "weergave bent:" #. (itstool) path: item/p #: C/playlist-create-artists.page:33 msgid "Select all the artists whose songs you want to add to the playlist." msgstr "" "Selecteer alle artiesten wier nummers u aan de afspeellijst wilt toevoegen." #. (itstool) path: item/p #: C/playlist-create-artists.page:44 msgid "Click on Select." msgstr "Klik op Selecteren." #. (itstool) path: info/desc #: C/playlist-delete.page:18 msgid "Remove an unwanted playlist." msgstr "Verwijder een ongewenste afspeellijst." #. (itstool) path: page/title #: C/playlist-delete.page:22 msgid "Delete a playlist" msgstr "Een afspeellijst verwijderen" #. (itstool) path: page/p #: C/playlist-delete.page:24 msgid "You can remove an old and unwanted playlist." msgstr "U kunt een oude en ongewenste afspeellijst verwijderen." #. (itstool) path: item/p #: C/playlist-delete.page:29 msgid "Select the playlist which you want to delete." msgstr "Selecteer de afspeellijst die u wilt verwijderen." #. (itstool) path: item/p #: C/playlist-delete.page:35 msgid "Click on Delete." msgstr "Klik op Verwijderen." #. (itstool) path: info/desc #: C/playlist-remove-songs.page:18 msgid "Delete songs from the playlist." msgstr "Verwijder nummers uit een afspeellijst." #. (itstool) path: page/title #: C/playlist-remove-songs.page:22 msgid "Remove songs" msgstr "Nummers verwijderen" #. (itstool) path: page/p #: C/playlist-remove-songs.page:24 msgid "You can remove any unwanted songs from a playlist." msgstr "U kunt ongewenste nummers uit een afspeellijst verwijderen." #. (itstool) path: item/p #: C/playlist-remove-songs.page:29 msgid "Select the playlist from which you want to remove songs." msgstr "Selecteer de afspeellijst waaruit u nummers wilt verwijderen." #. (itstool) path: item/p #: C/playlist-remove-songs.page:32 msgid "Click on the check button on the toolbar." msgstr "Klik op de knop met het vinkje in de werkbalk." #. (itstool) path: item/p #: C/playlist-remove-songs.page:35 msgid "Select all the songs which you want to remove." msgstr "Selecteer alle nummers die u wilt verwijderen." #. (itstool) path: item/p #: C/playlist-remove-songs.page:38 msgid "Click on Remove from Playlist." msgstr "Klik op Verwijderen uit afspeellijst." #. (itstool) path: info/desc #: C/playlist-repeat.page:18 msgid "Repeat all songs in the playlist or only the current song." msgstr "Herhaal alle nummers in de afspeellijst of alleen het huidige nummer." #. (itstool) path: page/title #: C/playlist-repeat.page:22 msgid "How do I play songs on repeat?" msgstr "Hoe herhaal ik nummers?" #. (itstool) path: list/title #: C/playlist-repeat.page:25 msgid "In the taskbar, click on the button on the right side:" msgstr "Klik op de knop aan de rechterkant in de werkbalk:" #. (itstool) path: item/p #: C/playlist-repeat.page:27 msgid "Select Repeat Song to repeat a single song." msgstr "Selecteer Nummer herhalen om een enkel nummer te herhalen." #. (itstool) path: item/p #: C/playlist-repeat.page:30 msgid "Select Repeat All to repeat all the song in the playlist." msgstr "" "Selecteer Alles herhalen om alle nummers in de afspeellijst te " "herhalen." #. (itstool) path: info/desc #: C/playlist-shuffle.page:18 msgid "Shuffle songs in the playlist." msgstr "Speel nummers in de afspeellijst in willekeurige volgorde af." #. (itstool) path: page/title #: C/playlist-shuffle.page:22 msgid "How do I shuffle my songs?" msgstr "Hoe speel ik mijn nummers af in willekeurige volgorde?" #. (itstool) path: page/p #: C/playlist-shuffle.page:24 msgid "" "In the taskbar, click on the button on right hand side and select " "Shuffle." msgstr "" "Klik op de knop aan de rechterkant in te taakbalk en selecteer " "Willekeurig." #. (itstool) path: info/desc #: C/search.page:18 msgid "Search through your music collection." msgstr "Zoek in uw muziekverzameling." #. (itstool) path: page/title #: C/search.page:22 msgid "Find music" msgstr "Muziek zoeken" #. (itstool) path: page/p #: C/search.page:24 msgid "" "You can search your albums, artists, songs and playlists. Select what you " "want to search through then click the Search button and start " "searching." msgstr "" "U kunt door uw albums, artiesten, nummers en afspeellijsten zoeken. " "Selecteer waarin u wilt zoeken, klik op Zoeken en begin met " "zoeken." #. (itstool) path: p/link #: C/legal.xml:5 msgid "Creative Commons Attribution-ShareAlike 3.0 Unported License" msgstr "Creative Commons Naamsvermelding-GelijkDelen 3.0 Unported-licentie" #. (itstool) path: license/p #: C/legal.xml:4 msgid "This work is licensed under a <_:link-1/>." msgstr "Dit werk is uitgebracht onder een <_:link-1/>." 070701000000BE000041ED00000000000000000000000266968E4E00000000000000000000000000000000000000000000001900000000gnome-music-46.1/help/pl070701000000BF000081A400000000000000000000000166968E4E000039FD000000000000000000000000000000000000001F00000000gnome-music-46.1/help/pl/pl.po# Polish translation for gnome-music help. # Copyright © 2017 the gnome-music authors. # This file is distributed under the same license as the gnome-music help. # Piotr Drąg , 2017. # Aviary.pl , 2017. # msgid "" msgstr "" "Project-Id-Version: gnome-music-help\n" "POT-Creation-Date: 2021-04-10 19:23+0000\n" "PO-Revision-Date: 2017-05-31 01:05+0200\n" "Last-Translator: Piotr Drąg \n" "Language-Team: Polish \n" "Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2);\n" #. Put one translator per line, in the form NAME , YEAR1, YEAR2 msgctxt "_" msgid "translator-credits" msgstr "" "Piotr Drąg , 2017\n" "Aviary.pl , 2017" #. (itstool) path: credit/name #: C/introduction.page:11 C/index.page:12 C/play-music.page:11 #: C/playlist-create-albums.page:11 C/playlist-create-songs.page:11 #: C/playlist-create-artists.page:11 C/playlist-delete.page:11 #: C/playlist-remove-songs.page:11 C/playlist-repeat.page:11 #: C/playlist-shuffle.page:11 C/search.page:11 msgid "Shobha Tyagi" msgstr "Shobha Tyagi" #. (itstool) path: credit/years #: C/introduction.page:13 C/index.page:14 C/play-music.page:13 #: C/playlist-create-albums.page:13 C/playlist-create-songs.page:13 #: C/playlist-create-artists.page:13 C/playlist-delete.page:13 #: C/playlist-remove-songs.page:13 C/playlist-repeat.page:13 #: C/playlist-shuffle.page:13 C/search.page:13 msgid "2014" msgstr "2014" #. (itstool) path: info/desc #. (itstool) path: page/p #: C/introduction.page:18 C/introduction.page:23 msgid "" "A simple and elegant replacement for using Files to show the " "music directory." msgstr "" "Prosty i elegancki zamiennik używania Menedżera plików do " "wyświetlania katalogu z muzyką." #. (itstool) path: page/title #: C/introduction.page:22 msgid "Introduction to Music" msgstr "Wprowadzenie do odtwarzacza muzyki" #. (itstool) path: info/title #: C/index.page:6 msgctxt "link:trail" msgid "Music" msgstr "Muzyka" #. (itstool) path: info/title #: C/index.page:7 msgctxt "link" msgid "Music" msgstr "Muzyka" #. (itstool) path: info/title #: C/index.page:8 msgctxt "text" msgid "Music" msgstr "Muzyka" #. (itstool) path: page/title #: C/index.page:19 msgid "<_:media-1/> Music" msgstr "<_:media-1/> Muzyka" #. (itstool) path: section/title #: C/index.page:25 msgid "Create playlist" msgstr "Tworzenie listy odtwarzania" #. (itstool) path: section/title #: C/index.page:28 msgid "Play a song" msgstr "Odtwarzanie utworu" #. (itstool) path: section/title #: C/index.page:31 msgid "Remove songs and playlist" msgstr "Usuwanie utworów i list odtwarzania" #. (itstool) path: info/desc #: C/play-music.page:18 msgid "Play your favorite songs." msgstr "Odtwarzanie ulubionych utworów." #. (itstool) path: page/title #: C/play-music.page:22 msgid "Play music" msgstr "Odtwarzanie muzyki" #. (itstool) path: page/p #: C/play-music.page:24 msgid "" "You can play your favorite music by creating a playlist or by simply " "clicking on the song of your choice from any view." msgstr "" "Można odtwarzać ulubioną muzykę tworząc listę odtwarzania lub po prostu " "klikając wybrany utwór w każdym widoku." #. (itstool) path: steps/title #: C/play-music.page:28 C/playlist-delete.page:27 #: C/playlist-remove-songs.page:27 msgid "While in Playlists:" msgstr "W widoku Listy odtwarzania:" #. (itstool) path: item/p #: C/play-music.page:30 msgid "Select a playlist." msgstr "Wybierz listę odtwarzania." #. (itstool) path: item/p #: C/play-music.page:33 C/playlist-delete.page:32 msgid "Click on the gear button on the right hand side." msgstr "Kliknij przycisk z kołem zębatym po prawej stronie." #. (itstool) path: item/p #: C/play-music.page:36 msgid "Click on Play." msgstr "Kliknij Odtwórz." #. (itstool) path: info/desc #: C/playlist-create-albums.page:18 msgid "Add songs to playlists using albums." msgstr "Dodawanie utworów do list odtwarzania za pomocą albumów." #. (itstool) path: page/title #: C/playlist-create-albums.page:21 msgid "Create a playlist using albums" msgstr "Tworzenie listy odtwarzania za pomocą albumów" #. (itstool) path: page/p #: C/playlist-create-albums.page:23 msgid "" "You can view all your albums by clicking on the Albums button." msgstr "" "Można wyświetlić wszystkie albumy klikając przycisk Albumy." #. (itstool) path: steps/title #: C/playlist-create-albums.page:27 msgid "To add all the songs in an album:" msgstr "Aby dodać wszystkie utwory w albumie:" #. (itstool) path: item/p #: C/playlist-create-albums.page:29 C/playlist-create-songs.page:29 #: C/playlist-create-artists.page:30 msgid "Click on the check button in the top-right of the window." msgstr "Kliknij przycisk z haczykiem w górnym prawym rogu okna." #. (itstool) path: item/p #: C/playlist-create-albums.page:32 msgid "Select albums." msgstr "Zaznacz albumy." #. (itstool) path: item/p #: C/playlist-create-albums.page:35 C/playlist-create-albums.page:60 #: C/playlist-create-songs.page:35 C/playlist-create-artists.page:37 msgid "Click on the Add to Playlist button." msgstr "" "Kliknij przycisk Dodaj do listy odtwarzania." #. (itstool) path: item/p #: C/playlist-create-albums.page:38 C/playlist-create-albums.page:63 #: C/playlist-create-artists.page:40 msgid "Click on New Playlist and type a name for your playlist." msgstr "Kliknij Nowa lista odtwarzania i wpisz nazwę listy." #. (itstool) path: item/p #: C/playlist-create-albums.page:42 C/playlist-create-albums.page:67 #: C/playlist-create-songs.page:42 msgid "Click on Select." msgstr "Kliknij Wybierz." #. (itstool) path: page/p #: C/playlist-create-albums.page:46 msgid "You can also create a playlist from specific songs." msgstr "Można także utworzyć listę odtwarzania z konkretnych utworów." #. (itstool) path: steps/title #: C/playlist-create-albums.page:49 msgid "To add selected songs from an album:" msgstr "Aby dodać wybrane utwory z albumu:" #. (itstool) path: item/p #: C/playlist-create-albums.page:51 msgid "Click on an album." msgstr "Kliknij album." #. (itstool) path: item/p #: C/playlist-create-albums.page:54 msgid "Click on the check button." msgstr "Kliknij przycisk z haczykiem." #. (itstool) path: item/p #: C/playlist-create-albums.page:57 msgid "Select songs." msgstr "Zaznacz utwory." #. (itstool) path: note/p #: C/playlist-create-albums.page:72 C/playlist-create-songs.page:47 #: C/playlist-create-artists.page:49 msgid "" "To select all the songs click Click on items to select themSelect All in the toolbar or press " "CtrlA." msgstr "" "Aby zaznaczyć wszystkie utwory, kliknij Kliknięcie elementu " "zaznacza goZaznacz wszystko na pasku narzędziowym " "lub naciśnij klawisze CtrlA." #. (itstool) path: note/p #: C/playlist-create-albums.page:76 C/playlist-create-songs.page:51 #: C/playlist-create-artists.page:53 msgid "" "To clear the selection click Click on items to select themSelect None in the toolbar." msgstr "" "Aby anulować zaznaczenie, kliknij Kliknięcie elementu zaznacza " "goOdznacz wszystko na pasku narzędziowym." #. (itstool) path: info/desc #: C/playlist-create-songs.page:18 msgid "Create playlist by selecting your favorite songs." msgstr "Tworzenie listy odtwarzania wybierając ulubione utwory." #. (itstool) path: page/title #: C/playlist-create-songs.page:21 msgid "Create playlists using songs" msgstr "Tworzenie list odtwarzania za pomocą utworów" #. (itstool) path: page/p #: C/playlist-create-songs.page:23 msgid "" "You can view all the songs by clicking on the Songs button." msgstr "" "Można wyświetlić wszystkie utwory klikając przycisk Utwory." #. (itstool) path: steps/title #: C/playlist-create-songs.page:27 msgid "To create a new playlist while in Songs view:" msgstr "Aby utworzyć nową listę odtwarzania w widoku Utwory:" #. (itstool) path: item/p #: C/playlist-create-songs.page:32 msgid "Select all the songs you want to add to the playlist." msgstr "Zaznacz wszystkie utwory do dodania do listy odtwarzania." #. (itstool) path: item/p #: C/playlist-create-songs.page:38 msgid "" "Click on New Playlist and type a name for your " "playlist." msgstr "" "Kliknij przycisk Nowa lista odtwarzania i wpisz " "nazwę listy." #. (itstool) path: info/desc #: C/playlist-create-artists.page:18 msgid "Create playlist by selecting your favorite artists." msgstr "Tworzenie listy odtwarzania wybierając ulubionych wykonawców." #. (itstool) path: page/title #: C/playlist-create-artists.page:22 msgid "Create playlists using artists" msgstr "Tworzenie list odtwarzania za pomocą wykonawców" #. (itstool) path: page/p #: C/playlist-create-artists.page:24 msgid "" "You can view all the artists and their songs by clicking on the Artists button." msgstr "" "Można wyświetlić wszystkich wykonawców i ich utwory klikając przycisk Wykonawcy." #. (itstool) path: steps/title #: C/playlist-create-artists.page:28 msgid "To create a new playlist while in Artists view:" msgstr "Aby utworzyć nową listę odtwarzania w widoku Wykonawcy:" #. (itstool) path: item/p #: C/playlist-create-artists.page:33 msgid "Select all the artists whose songs you want to add to the playlist." msgstr "" "Zaznacz wszystkich wykonawców, których utwory mają zostać dodane do listy " "odtwarzania." #. (itstool) path: item/p #: C/playlist-create-artists.page:44 msgid "Click on Select." msgstr "Kliknij Wybierz." #. (itstool) path: info/desc #: C/playlist-delete.page:18 msgid "Remove an unwanted playlist." msgstr "Usuwanie niechcianej listy odtwarzania." #. (itstool) path: page/title #: C/playlist-delete.page:22 msgid "Delete a playlist" msgstr "Usuwanie listy odtwarzania" #. (itstool) path: page/p #: C/playlist-delete.page:24 msgid "You can remove an old and unwanted playlist." msgstr "Można usunąć stare i niechciane listy odtwarzania." #. (itstool) path: item/p #: C/playlist-delete.page:29 msgid "Select the playlist which you want to delete." msgstr "Zaznacz listę odtwarzania do usunięcia." #. (itstool) path: item/p #: C/playlist-delete.page:35 msgid "Click on Delete." msgstr "Kliknij Usuń." #. (itstool) path: info/desc #: C/playlist-remove-songs.page:18 msgid "Delete songs from the playlist." msgstr "Usuwanie utworów z listy odtwarzania." #. (itstool) path: page/title #: C/playlist-remove-songs.page:22 msgid "Remove songs" msgstr "Usuwanie utworów" #. (itstool) path: page/p #: C/playlist-remove-songs.page:24 msgid "You can remove any unwanted songs from a playlist." msgstr "Można usunąć wszystkie niechciane utwory z listy odtwarzania." #. (itstool) path: item/p #: C/playlist-remove-songs.page:29 msgid "Select the playlist from which you want to remove songs." msgstr "Zaznacz listę odtwarzania, z której mają zostać usunięte utwory." #. (itstool) path: item/p #: C/playlist-remove-songs.page:32 msgid "Click on the check button on the toolbar." msgstr "Kliknij przycisk z haczykiem na pasku narzędziowym." #. (itstool) path: item/p #: C/playlist-remove-songs.page:35 msgid "Select all the songs which you want to remove." msgstr "Zaznacz wszystkie utwory do usunięcia." #. (itstool) path: item/p #: C/playlist-remove-songs.page:38 msgid "Click on Remove from Playlist." msgstr "Kliknij Usuń z listy odtwarzania." #. (itstool) path: info/desc #: C/playlist-repeat.page:18 msgid "Repeat all songs in the playlist or only the current song." msgstr "" "Powtarzanie wszystkich utworów na liście odtwarzania lub tylko obecnego " "utworu." #. (itstool) path: page/title #: C/playlist-repeat.page:22 msgid "How do I play songs on repeat?" msgstr "Jak ustawić powtarzanie utworów?" #. (itstool) path: list/title #: C/playlist-repeat.page:25 msgid "In the taskbar, click on the button on the right side:" msgstr "Kliknij przycisk po prawej stronie paska zadań:" #. (itstool) path: item/p #: C/playlist-repeat.page:27 msgid "Select Repeat Song to repeat a single song." msgstr "Wybierz Powtarzanie utworu, aby powtarzać jeden utwór." #. (itstool) path: item/p #: C/playlist-repeat.page:30 msgid "Select Repeat All to repeat all the song in the playlist." msgstr "" "Wybierz Powtarzanie wszystkich, aby powtarzać wszystkie utwory " "listy odtwarzania." #. (itstool) path: info/desc #: C/playlist-shuffle.page:18 msgid "Shuffle songs in the playlist." msgstr "Losowa kolejność utworów na liście odtwarzania." #. (itstool) path: page/title #: C/playlist-shuffle.page:22 msgid "How do I shuffle my songs?" msgstr "Jak ustawić losową kolejność utworów?" #. (itstool) path: page/p #: C/playlist-shuffle.page:24 msgid "" "In the taskbar, click on the button on right hand side and select " "Shuffle." msgstr "" "Kliknij przycisk po prawej stronie paska zadań i wybierz Odtwarzanie " "losowe." #. (itstool) path: info/desc #: C/search.page:18 msgid "Search through your music collection." msgstr "Przeszukiwanie kolekcji muzycznej." #. (itstool) path: page/title #: C/search.page:22 msgid "Find music" msgstr "Wyszukiwanie muzyki" #. (itstool) path: page/p #: C/search.page:24 msgid "" "You can search your albums, artists, songs and playlists. Select what you " "want to search through then click the Search button and start " "searching." msgstr "" "Można przeszukiwać albumy, wykonawców, utwory i listy odtwarzania. Wybierz, " "co chcesz przeszukać, a następnie kliknij przycisk Wyszukaj " "i zacznij wyszukiwanie." #. (itstool) path: p/link #: C/legal.xml:5 msgid "Creative Commons Attribution-ShareAlike 3.0 Unported License" msgstr "Creative Commons Attribution-ShareAlike 3.0 Unported" #. (itstool) path: license/p #: C/legal.xml:4 msgid "This work is licensed under a <_:link-1/>." msgstr "Na warunkach licencji <_:link-1/>." 070701000000C0000041ED00000000000000000000000266968E4E00000000000000000000000000000000000000000000001C00000000gnome-music-46.1/help/pt_BR070701000000C1000081A400000000000000000000000166968E4E00003BD4000000000000000000000000000000000000002500000000gnome-music-46.1/help/pt_BR/pt_BR.po# Brazilian Portuguese translation for gnome-music. # Copyright (C) 2021 gnome-music's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-music package. # Rafael Fontenelle , 2014, 2016, 2017. # Enrico Nicoletto , 2021." msgid "" msgstr "" "Project-Id-Version: gnome-music master\n" "POT-Creation-Date: 2021-04-10 19:23+0000\n" "PO-Revision-Date: 2021-08-14 09:53-0300\n" "Last-Translator: Enrico Nicoletto \n" "Language-Team: Brazilian Portuguese \n" "Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "X-Generator: Poedit 3.0\n" "X-Project-Style: gnome\n" #. Put one translator per line, in the form NAME , YEAR1, YEAR2 msgctxt "_" msgid "translator-credits" msgstr "Rafael Fontenelle , 2014, 2016\n" "Enrico Nicoletto , 2021" #. (itstool) path: credit/name #: C/introduction.page:11 C/index.page:12 C/play-music.page:11 #: C/playlist-create-albums.page:11 C/playlist-create-songs.page:11 #: C/playlist-create-artists.page:11 C/playlist-delete.page:11 #: C/playlist-remove-songs.page:11 C/playlist-repeat.page:11 #: C/playlist-shuffle.page:11 C/search.page:11 msgid "Shobha Tyagi" msgstr "Shobha Tyagi" #. (itstool) path: credit/years #: C/introduction.page:13 C/index.page:14 C/play-music.page:13 #: C/playlist-create-albums.page:13 C/playlist-create-songs.page:13 #: C/playlist-create-artists.page:13 C/playlist-delete.page:13 #: C/playlist-remove-songs.page:13 C/playlist-repeat.page:13 #: C/playlist-shuffle.page:13 C/search.page:13 msgid "2014" msgstr "2014" #. (itstool) path: info/desc #. (itstool) path: page/p #: C/introduction.page:18 C/introduction.page:23 msgid "" "A simple and elegant replacement for using Files to show the " "music directory." msgstr "" "Uma substituição simples, porém elegante, ao uso de Arquivos para " "mostrar o diretório de músicas." #. (itstool) path: page/title #: C/introduction.page:22 msgid "Introduction to Music" msgstr "Introdução ao Músicas" #. (itstool) path: info/title #: C/index.page:6 msgctxt "link:trail" msgid "Music" msgstr "Música" #. (itstool) path: info/title #: C/index.page:7 msgctxt "link" msgid "Music" msgstr "Música" #. (itstool) path: info/title #: C/index.page:8 msgctxt "text" msgid "Music" msgstr "Música" #. (itstool) path: page/title #: C/index.page:19 msgid "<_:media-1/> Music" msgstr "<_:media-1/> Músicas" #. (itstool) path: section/title #: C/index.page:25 msgid "Create playlist" msgstr "Criando lista de reprodução" #. (itstool) path: section/title #: C/index.page:28 msgid "Play a song" msgstr "Reproduzindo uma música" #. (itstool) path: section/title #: C/index.page:31 msgid "Remove songs and playlist" msgstr "Removendo músicas e lista de reprodução" #. (itstool) path: info/desc #: C/play-music.page:18 msgid "Play your favorite songs." msgstr "Reproduza suas músicas favoritas." #. (itstool) path: page/title #: C/play-music.page:22 msgid "Play music" msgstr "Reproduzindo músicas" #. (itstool) path: page/p #: C/play-music.page:24 msgid "" "You can play your favorite music by creating a playlist or by simply " "clicking on the song of your choice from any view." msgstr "" "Você pode reproduzir sua música favorita criando uma lista de reprodução ou " "simplesmente clicando na música de sua escolha a partir de qualquer visão." #. (itstool) path: steps/title #: C/play-music.page:28 C/playlist-delete.page:27 #: C/playlist-remove-songs.page:27 msgid "While in Playlists:" msgstr "Em Listas de reprodução:" #. (itstool) path: item/p #: C/play-music.page:30 msgid "Select a playlist." msgstr "Selecione uma lista de reprodução." #. (itstool) path: item/p #: C/play-music.page:33 C/playlist-delete.page:32 msgid "Click on the gear button on the right hand side." msgstr "Clique no botão de engrenagem no lado direito." #. (itstool) path: item/p #: C/play-music.page:36 msgid "Click on Play." msgstr "Clique em Reproduzir." #. (itstool) path: info/desc #: C/playlist-create-albums.page:18 msgid "Add songs to playlists using albums." msgstr "Adicione músicas às listas de reprodução usando álbuns." #. (itstool) path: page/title #: C/playlist-create-albums.page:21 msgid "Create a playlist using albums" msgstr "Criando uma lista de reprodução usando álbuns" #. (itstool) path: page/p #: C/playlist-create-albums.page:23 msgid "" "You can view all your albums by clicking on the Albums button." msgstr "" "Você pode ver todos os seus álbuns clicando no botão Álbuns." #. (itstool) path: steps/title #: C/playlist-create-albums.page:27 msgid "To add all the songs in an album:" msgstr "Para adicionar todas as músicas em um álbum:" #. (itstool) path: item/p #: C/playlist-create-albums.page:29 C/playlist-create-songs.page:29 #: C/playlist-create-artists.page:30 msgid "Click on the check button in the top-right of the window." msgstr "Clique no botão marcação no topo direito da janela." #. (itstool) path: item/p #: C/playlist-create-albums.page:32 msgid "Select albums." msgstr "Selecione álbuns." #. (itstool) path: item/p #: C/playlist-create-albums.page:35 C/playlist-create-albums.page:60 #: C/playlist-create-songs.page:35 C/playlist-create-artists.page:37 msgid "Click on the Add to Playlist button." msgstr "" "Clique no botão Adicionar para lista de reprodução." #. (itstool) path: item/p #: C/playlist-create-albums.page:38 C/playlist-create-albums.page:63 #: C/playlist-create-artists.page:40 msgid "Click on New Playlist and type a name for your playlist." msgstr "" "Clique em Nova lista de reprodução e digite um nome para sua " "lista de reprodução." #. (itstool) path: item/p #: C/playlist-create-albums.page:42 C/playlist-create-albums.page:67 #: C/playlist-create-songs.page:42 msgid "Click on Select." msgstr "Clique em Selecionar." #. (itstool) path: page/p #: C/playlist-create-albums.page:46 msgid "You can also create a playlist from specific songs." msgstr "" "Você também pode criar uma lista de reprodução para músicas específicas." #. (itstool) path: steps/title #: C/playlist-create-albums.page:49 msgid "To add selected songs from an album:" msgstr "Para adicionar músicas selecionadas de um álbum:" #. (itstool) path: item/p #: C/playlist-create-albums.page:51 msgid "Click on an album." msgstr "Clique em um álbum." #. (itstool) path: item/p #: C/playlist-create-albums.page:54 msgid "Click on the check button." msgstr "Clique no botão de marcação." #. (itstool) path: item/p #: C/playlist-create-albums.page:57 msgid "Select songs." msgstr "Selecione as músicas." #. (itstool) path: note/p #: C/playlist-create-albums.page:72 C/playlist-create-songs.page:47 #: C/playlist-create-artists.page:49 msgid "" "To select all the songs click Click on items to select themSelect All in the toolbar or press " "CtrlA." msgstr "" "Para selecionar todas as músicas, clique em Clique nos itens " "para selecioná-losSelecionar todos na barra de " "ferramentas ou pressione CtrlA." #. (itstool) path: note/p #: C/playlist-create-albums.page:76 C/playlist-create-songs.page:51 #: C/playlist-create-artists.page:53 msgid "" "To clear the selection click Click on items to select themSelect None in the toolbar." msgstr "" "Para limpar a seleção, clique em Clique nos itens para " "selecioná-losSelecionar nenhum na barra de " "ferramentas." #. (itstool) path: info/desc #: C/playlist-create-songs.page:18 msgid "Create playlist by selecting your favorite songs." msgstr "Crie lista de reprodução selecionando suas músicas favoritas." #. (itstool) path: page/title #: C/playlist-create-songs.page:21 msgid "Create playlists using songs" msgstr "Criando listas de reprodução usando músicas" #. (itstool) path: page/p #: C/playlist-create-songs.page:23 msgid "" "You can view all the songs by clicking on the Songs button." msgstr "" "Você pode ver todas as suas músicas clicando no botão Músicas." #. (itstool) path: steps/title #: C/playlist-create-songs.page:27 msgid "To create a new playlist while in Songs view:" msgstr "" "Para criar uma nova lista de reprodução enquanto na visão Músicas:" #. (itstool) path: item/p #: C/playlist-create-songs.page:32 msgid "Select all the songs you want to add to the playlist." msgstr "" "Selecione todas as músicas que você deseja adicionar à lista de reprodução." #. (itstool) path: item/p #: C/playlist-create-songs.page:38 msgid "" "Click on New Playlist and type a name for your " "playlist." msgstr "" "Clique em Nova lista de reprodução e digite um " "nome para sua lista de reprodução." #. (itstool) path: info/desc #: C/playlist-create-artists.page:18 msgid "Create playlist by selecting your favorite artists." msgstr "Crie lista de reprodução selecionando seus artistas favoritos." #. (itstool) path: page/title #: C/playlist-create-artists.page:22 msgid "Create playlists using artists" msgstr "Criando listas de reprodução usando artistas" #. (itstool) path: page/p #: C/playlist-create-artists.page:24 msgid "" "You can view all the artists and their songs by clicking on the Artists button." msgstr "" "Você pode ver todos os artistas e suas músicas clicando no botão Artistas." #. (itstool) path: steps/title #: C/playlist-create-artists.page:28 msgid "To create a new playlist while in Artists view:" msgstr "" "Para criar uma nova lista de reprodução enquanto na visão Artistas:" #. (itstool) path: item/p #: C/playlist-create-artists.page:33 msgid "Select all the artists whose songs you want to add to the playlist." msgstr "" "Selecione todos os artistas cujas músicas você deseja adicionar à lista de " "reprodução." #. (itstool) path: item/p #: C/playlist-create-artists.page:44 msgid "Click on Select." msgstr "Clique em Selecionar." #. (itstool) path: info/desc #: C/playlist-delete.page:18 msgid "Remove an unwanted playlist." msgstr "Remova uma lista de reprodução indesejada." #. (itstool) path: page/title #: C/playlist-delete.page:22 msgid "Delete a playlist" msgstr "Excluindo uma lista de reprodução" #. (itstool) path: page/p #: C/playlist-delete.page:24 msgid "You can remove an old and unwanted playlist." msgstr "Você pode remover uma lista de reprodução antiga e indesejada." #. (itstool) path: item/p #: C/playlist-delete.page:29 msgid "Select the playlist which you want to delete." msgstr "Selecione a lista de reprodução que você deseja excluir." #. (itstool) path: item/p #: C/playlist-delete.page:35 msgid "Click on Delete." msgstr "Clique em Excluir." #. (itstool) path: info/desc #: C/playlist-remove-songs.page:18 msgid "Delete songs from the playlist." msgstr "Exclua músicas da lista de reprodução." #. (itstool) path: page/title #: C/playlist-remove-songs.page:22 msgid "Remove songs" msgstr "Removendo músicas" #. (itstool) path: page/p #: C/playlist-remove-songs.page:24 msgid "You can remove any unwanted songs from a playlist." msgstr "" "Você pode remover quaisquer músicas indesejadas de uma lista de reprodução." #. (itstool) path: item/p #: C/playlist-remove-songs.page:29 msgid "Select the playlist from which you want to remove songs." msgstr "Selecione a lista de reprodução da qual você deseja remover músicas." #. (itstool) path: item/p #: C/playlist-remove-songs.page:32 msgid "Click on the check button on the toolbar." msgstr "Clique no botão de marcação na barra de ferramentas." #. (itstool) path: item/p #: C/playlist-remove-songs.page:35 msgid "Select all the songs which you want to remove." msgstr "Selecione todas as músicas que você deseja remover." #. (itstool) path: item/p #: C/playlist-remove-songs.page:38 msgid "Click on Remove from Playlist." msgstr "Clique em Remover da lista de reprodução." #. (itstool) path: info/desc #: C/playlist-repeat.page:18 msgid "Repeat all songs in the playlist or only the current song." msgstr "" "Repita todas as músicas da lista de reprodução ou apenas a música atual." #. (itstool) path: page/title #: C/playlist-repeat.page:22 msgid "How do I play songs on repeat?" msgstr "Como eu faço para reproduzir músicas em repetição?" #. (itstool) path: list/title #: C/playlist-repeat.page:25 msgid "In the taskbar, click on the button on the right side:" msgstr "Na barra de tarefas, clique no botão no lado direito:" #. (itstool) path: item/p #: C/playlist-repeat.page:27 msgid "Select Repeat Song to repeat a single song." msgstr "Selecione Repetir música para repetir uma única música." #. (itstool) path: item/p #: C/playlist-repeat.page:30 msgid "Select Repeat All to repeat all the song in the playlist." msgstr "" "Selecione Repetir tudo para repetir todas as músicas na lista de " "reprodução." #. (itstool) path: info/desc #: C/playlist-shuffle.page:18 msgid "Shuffle songs in the playlist." msgstr "Embaralhe músicas da lista de reprodução." #. (itstool) path: page/title #: C/playlist-shuffle.page:22 msgid "How do I shuffle my songs?" msgstr "Como eu faço para embaralhar minhas músicas?" #. (itstool) path: page/p #: C/playlist-shuffle.page:24 msgid "" "In the taskbar, click on the button on right hand side and select " "Shuffle." msgstr "" "Na barra de tarefas, clique no botão no lado direito e selecione " "Embaralhar." #. (itstool) path: info/desc #: C/search.page:18 msgid "Search through your music collection." msgstr "Pesquise em sua coleção de músicas." #. (itstool) path: page/title #: C/search.page:22 msgid "Find music" msgstr "Localizando músicas" #. (itstool) path: page/p #: C/search.page:24 msgid "" "You can search your albums, artists, songs and playlists. Select what you " "want to search through then click the Search button and start " "searching." msgstr "" "Você pode pesquisar seus álbuns, artistas, músicas e listas de reprodução. " "Selecione o que você deseja pesquisar e, então, clique no botão " "Pesquisar e comece a pesquisar." #. (itstool) path: p/link #: C/legal.xml:5 msgid "Creative Commons Attribution-ShareAlike 3.0 Unported License" msgstr "" "licença Creative Commons Atribuição-Compartilhada Igual 3.0 Não Portada" #. (itstool) path: license/p #: C/legal.xml:4 msgid "This work is licensed under a <_:link-1/>." msgstr "Essa obra é está licenciada sob uma <_:link-1/>." 070701000000C2000041ED00000000000000000000000266968E4E00000000000000000000000000000000000000000000001900000000gnome-music-46.1/help/ro070701000000C3000081A400000000000000000000000166968E4E00003B05000000000000000000000000000000000000001F00000000gnome-music-46.1/help/ro/ro.po# Romanian translation for gnome-music. # Copyright (C) 2014 gnome-music's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-music package. # Bogdan Mințoi , 2014. # Daniel Șerbănescu , 2014, 2017. msgid "" msgstr "" "Project-Id-Version: gnome-music master\n" "POT-Creation-Date: 2017-09-04 22:23+0000\n" "PO-Revision-Date: 2017-09-06 19:02+0200\n" "Last-Translator: Daniel Șerbănescu \n" "Language-Team: Gnome Romanian Translation Team\n" "Language: ro\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " "20)) ? 1 : 2);;\n" "X-Generator: Virtaal 0.7.1\n" "X-Project-Style: gnome\n" #. Put one translator per line, in the form NAME , YEAR1, YEAR2 msgctxt "_" msgid "translator-credits" msgstr "Bogdan Mințoi 2014" #. (itstool) path: credit/name #: C/introduction.page:11 C/index.page:11 C/play-music.page:11 #: C/playlist-create-albums.page:11 C/playlist-create-songs.page:11 #: C/playlist-create-artists.page:11 C/playlist-delete.page:11 #: C/playlist-remove-songs.page:11 C/playlist-repeat.page:11 #: C/playlist-shuffle.page:11 C/search.page:11 msgid "Shobha Tyagi" msgstr "Shobha Tyagi" #. (itstool) path: credit/years #: C/introduction.page:13 C/index.page:13 C/play-music.page:13 #: C/playlist-create-albums.page:13 C/playlist-create-songs.page:13 #: C/playlist-create-artists.page:13 C/playlist-delete.page:13 #: C/playlist-remove-songs.page:13 C/playlist-repeat.page:13 #: C/playlist-shuffle.page:13 C/search.page:13 msgid "2014" msgstr "2014" #. (itstool) path: info/desc #. (itstool) path: page/p #: C/introduction.page:18 C/introduction.page:23 msgid "" "A simple and elegant replacement for using Files to show the " "music directory." msgstr "" "Un înlocuitor simplu și elegant de a utiliza Fișiere pentru a " "vizualiza dosarul ce conține muzică." #. (itstool) path: page/title #: C/introduction.page:22 msgid "Introduction to Music" msgstr "Introducere la Muzică" #. (itstool) path: info/title #: C/index.page:6 msgctxt "link" msgid "Music" msgstr "Muzică" #. (itstool) path: info/title #: C/index.page:7 msgctxt "text" msgid "Music" msgstr "Muzică" #. (itstool) path: page/title #: C/index.page:18 msgid "<_:media-1/> Music" msgstr "<_:media-1/> Muzică" #. (itstool) path: section/title #: C/index.page:25 msgid "Create playlist" msgstr "Crearea unei liste de redare" #. (itstool) path: section/title #: C/index.page:28 msgid "Play a song" msgstr "Redarea unei piese" #. (itstool) path: section/title #: C/index.page:31 msgid "Remove songs and playlist" msgstr "Eliminarea pieselor și a listei de redare" #. (itstool) path: info/desc #: C/play-music.page:18 msgid "Play your favorite songs." msgstr "Redă piesele preferate." #. (itstool) path: page/title #: C/play-music.page:22 msgid "Play music" msgstr "Redare de muzică" #. (itstool) path: page/p #: C/play-music.page:24 msgid "" "You can play your favorite music by creating a playlist or by simply " "clicking on the song of your choice from any view." msgstr "" "Puteți reda muzica preferată prin crearea unei liste de redare sau printr-un " "simplu clic pe piesa dorită din orice vizualizare." #. (itstool) path: steps/title #: C/play-music.page:28 C/playlist-delete.page:27 #: C/playlist-remove-songs.page:27 msgid "While in Playlists:" msgstr "Când vă aflați în câmpul Liste de redare:" #. (itstool) path: item/p #: C/play-music.page:30 msgid "Select a playlist." msgstr "Selectați o listă de redare." #. (itstool) path: item/p #: C/play-music.page:33 C/playlist-delete.page:32 msgid "Click on the gear button on the right hand side." msgstr "Clic pe butonul unelte din partea dreaptă." #. (itstool) path: item/p #: C/play-music.page:36 msgid "Click on Play." msgstr "Clic pe Redă." #. (itstool) path: info/desc #: C/playlist-create-albums.page:18 msgid "Add songs to playlists using albums." msgstr "Adăugă piese la listele de redare folosind albume." #. (itstool) path: page/title #: C/playlist-create-albums.page:21 msgid "Create a playlist using albums" msgstr "Crearea unei liste de redare folosind albume" #. (itstool) path: page/p #: C/playlist-create-albums.page:23 msgid "" "You can view all your albums by clicking on the Albums button." msgstr "" "Puteți vizualiza toate albumele printr-un clic pe butonul Albume." #. (itstool) path: steps/title #: C/playlist-create-albums.page:27 msgid "To add all the songs in an album:" msgstr "Pentru a adăuga toate piesele într-un album:" #. (itstool) path: item/p #: C/playlist-create-albums.page:29 C/playlist-create-songs.page:29 #: C/playlist-create-artists.page:30 msgid "Click on the check button in the top-right of the window." msgstr "Clic pe butonul de bifare aflat în partea dreapta-sus a ferestrei." #. (itstool) path: item/p #: C/playlist-create-albums.page:32 msgid "Select albums." msgstr "Selectați albume." #. (itstool) path: item/p #: C/playlist-create-albums.page:35 C/playlist-create-albums.page:60 #: C/playlist-create-songs.page:35 C/playlist-create-artists.page:37 msgid "Click on the Add to Playlist button." msgstr "Clic pe butonul Adaugă în lista de redare." #. (itstool) path: item/p #: C/playlist-create-albums.page:38 C/playlist-create-albums.page:63 #: C/playlist-create-artists.page:40 msgid "Click on New Playlist and type a name for your playlist." msgstr "" "Clic pe Listă de redare nouă și introduceți un nume pentru lista " "de redare." #. (itstool) path: item/p #: C/playlist-create-albums.page:42 C/playlist-create-albums.page:67 #: C/playlist-create-songs.page:42 msgid "Click on Select." msgstr "Clic pe Selectează." #. (itstool) path: page/p #: C/playlist-create-albums.page:46 msgid "You can also create a playlist from specific songs." msgstr "" "De asemenea, puteți crea o listă de redare alcătuită din piese specifice." #. (itstool) path: steps/title #: C/playlist-create-albums.page:49 msgid "To add selected songs from an album:" msgstr "Pentru a adăuga piese selectate dintr-un album:" #. (itstool) path: item/p #: C/playlist-create-albums.page:51 msgid "Click on an album." msgstr "Clic pe un album." #. (itstool) path: item/p #: C/playlist-create-albums.page:54 msgid "Click on the check button." msgstr "Clic pe butonul de bifare." #. (itstool) path: item/p #: C/playlist-create-albums.page:57 msgid "Select songs." msgstr "Selectați piese." #. (itstool) path: note/p #: C/playlist-create-albums.page:72 C/playlist-create-songs.page:47 #: C/playlist-create-artists.page:49 msgid "" "To select all the songs click Click on items to select themSelect All in the toolbar or press " "CtrlA." msgstr "" "Pentru a selecta toate piesele, clic Clic pe elemente pentru " "selectareSelectare totală în bara de unelte sau " "apăsați CtrlA." #. (itstool) path: note/p #: C/playlist-create-albums.page:76 C/playlist-create-songs.page:51 #: C/playlist-create-artists.page:53 msgid "" "To clear the selection click Click on items to select themSelect None in the toolbar." msgstr "" "Pentru a elimina selecția, clic Clic pe elemente pentru " "selectareDeselectează tot în bara de unelte." #. (itstool) path: info/desc #: C/playlist-create-songs.page:18 msgid "Create playlist by selecting your favorite songs." msgstr "Creează liste de redare prin selectarea pieselor preferate." #. (itstool) path: page/title #: C/playlist-create-songs.page:21 msgid "Create playlists using songs" msgstr "Crearea de liste de redare folosind piese" #. (itstool) path: page/p #: C/playlist-create-songs.page:23 msgid "" "You can view all the songs by clicking on the Songs button." msgstr "" "Puteți vizualiza toate piesele printr-un clic pe butonul Melodii." #. (itstool) path: steps/title #: C/playlist-create-songs.page:27 msgid "To create a new playlist while in Songs view:" msgstr "Pentru a crea o listă de redare nouă, în câmpul Melodii:" #. (itstool) path: item/p #: C/playlist-create-songs.page:32 msgid "Select all the songs you want to add to the playlist." msgstr "" "Selectați toate piesele pe care doriți să le adăugați în lista de redare." #. (itstool) path: item/p #: C/playlist-create-songs.page:38 msgid "" "Click on New Playlist and type a name for your " "playlist." msgstr "" "Clic pe Listă de redare nouă și introduceți un " "nume pentru lista de redare." #. (itstool) path: info/desc #: C/playlist-create-artists.page:18 msgid "Create playlist by selecting your favorite artists." msgstr "Creează o listă de redare prin selectarea artiștilor preferați." #. (itstool) path: page/title #: C/playlist-create-artists.page:22 msgid "Create playlists using artists" msgstr "Crearea de liste de redare folosind numele artiștilor" #. (itstool) path: page/p #: C/playlist-create-artists.page:24 msgid "" "You can view all the artists and their songs by clicking on the Artists button." msgstr "" "Puteți vizualiza toți artiștii și piesele compuse de aceștia printr-un clic " "pe butonul Artiști." #. (itstool) path: steps/title #: C/playlist-create-artists.page:28 msgid "To create a new playlist while in Artists view:" msgstr "" "Pentru a creea o listă de redare nouă, când vă aflați în câmpul " "Artiști:" #. (itstool) path: item/p #: C/playlist-create-artists.page:33 msgid "Select all the artists whose songs you want to add to the playlist." msgstr "" "Selectați toți artiștii ale căror piese doriți să le adăugați în lista de " "redare." #. (itstool) path: item/p #: C/playlist-create-artists.page:44 msgid "Click on Select." msgstr "Clic pe Selectează" #. (itstool) path: info/desc #: C/playlist-delete.page:18 msgid "Remove an unwanted playlist." msgstr "Elimină o listă de redare nedorită." #. (itstool) path: page/title #: C/playlist-delete.page:22 msgid "Delete a playlist" msgstr "Ștergerea unei liste de redare" #. (itstool) path: page/p #: C/playlist-delete.page:24 msgid "You can remove an old and unwanted playlist." msgstr "" "Aveți posibilitatea să eliminați orice listă de redare veche sau nedorită." #. (itstool) path: item/p #: C/playlist-delete.page:29 msgid "Select the playlist which you want to delete." msgstr "Alegeți lista de redare pe care doriți să o ștergeți." #. (itstool) path: item/p #: C/playlist-delete.page:35 msgid "Click on Delete." msgstr "Clic pe Șterge." #. (itstool) path: info/desc #: C/playlist-remove-songs.page:18 msgid "Delete songs from the playlist." msgstr "Șterge piese dintr-o listă de redare." #. (itstool) path: page/title #: C/playlist-remove-songs.page:22 msgid "Remove songs" msgstr "Eliminarea pieselor" #. (itstool) path: page/p #: C/playlist-remove-songs.page:24 msgid "You can remove any unwanted songs from a playlist." msgstr "" "Aveți posibilitatea să eliminați orice piesă nedorită dintr-o listă de " "redare." #. (itstool) path: item/p #: C/playlist-remove-songs.page:29 msgid "Select the playlist from which you want to remove songs." msgstr "Alegeți lista de redare din cadrul căreia doriți să eliminați piese." #. (itstool) path: item/p #: C/playlist-remove-songs.page:32 msgid "Click on the check button on the toolbar." msgstr "Clic pe butonul de bifare din bara de unelte." #. (itstool) path: item/p #: C/playlist-remove-songs.page:35 msgid "Select all the songs which you want to remove." msgstr "Alegeți toate piesele pe care doriți să le eliminați." #. (itstool) path: item/p #: C/playlist-remove-songs.page:38 msgid "Click on Remove from Playlist." msgstr "" "Clic pe butonul Elimină din lista de redare." #. (itstool) path: info/desc #: C/playlist-repeat.page:18 msgid "Repeat all songs in the playlist or only the current song." msgstr "Repetă toate piesele din lista de redare sau doar piesa curentă." #. (itstool) path: page/title #: C/playlist-repeat.page:22 msgid "How do I play songs on repeat?" msgstr "Cum se pot reda piesele repetitiv?" #. (itstool) path: list/title #: C/playlist-repeat.page:25 msgid "In the taskbar, click on the button on the right side:" msgstr "În bara de activități, clic pe butonul din partea dreaptă:" #. (itstool) path: item/p #: C/playlist-repeat.page:27 msgid "Select Repeat Song to repeat a single song." msgstr "Selectați Repetă piesă pentru a repeta doar o piesă." #. (itstool) path: item/p #: C/playlist-repeat.page:30 msgid "Select Repeat All to repeat all the song in the playlist." msgstr "" "Selectați Repetă tot pentru a repeta toate melodiile din lista de " "redare." #. (itstool) path: info/desc #: C/playlist-shuffle.page:18 msgid "Shuffle songs in the playlist." msgstr "Amestecă piesele din lista de redare." #. (itstool) path: page/title #: C/playlist-shuffle.page:22 msgid "How do I shuffle my songs?" msgstr "Cum se amestecă piesele?" #. (itstool) path: page/p #: C/playlist-shuffle.page:24 msgid "" "In the taskbar, click on the button on right hand side and select " "Shuffle." msgstr "" "În bara de activități, apăsați clic pe butonul din partea dreaptă și " "selectați Amestecă." #. (itstool) path: info/desc #: C/search.page:18 msgid "Search through your music collection." msgstr "Caută prin întreaga colecție de muzică." #. (itstool) path: page/title #: C/search.page:22 msgid "Find music" msgstr "Căutarea muzicii" #. (itstool) path: page/p #: C/search.page:24 msgid "" "You can search your albums, artists, songs and playlists. Select what you " "want to search through then click the Search button and start " "searching." msgstr "" "Puteți căuta printre albume, artiști, piese și liste de redare. Alegeți prin " "ce anume doriți să căutați, apoi apăsați pe butonul Caută și " "începeți căutarea." #. (itstool) path: p/link #: C/legal.xml:5 msgid "Creative Commons Attribution-ShareAlike 3.0 Unported License" msgstr "" "Licența ne-adaptată Creative Commons Atribuire - Distribuire-în-condiții-" "identice 3.0" #. (itstool) path: license/p #: C/legal.xml:4 msgid "This work is licensed under a <_:link-1/>." msgstr "Această lucrare este licențiată sub <_:link-1/>." 070701000000C4000041ED00000000000000000000000266968E4E00000000000000000000000000000000000000000000001900000000gnome-music-46.1/help/ru070701000000C5000081A400000000000000000000000166968E4E000045C4000000000000000000000000000000000000001F00000000gnome-music-46.1/help/ru/ru.po# Russian translation for gnome-music. # Copyright (C) 2022 gnome-music's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-music package. # Ser82-png , 2022. # msgid "" msgstr "" "Project-Id-Version: gnome-music master\n" "POT-Creation-Date: 2022-01-08 22:22+0000\n" "PO-Revision-Date: 2022-01-21 01:03+1000\n" "Language-Team: Russian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: ru\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "Last-Translator: Ser82-png\n" "X-Generator: Poedit 2.3\n" #. Put one translator per line, in the form NAME , YEAR1, YEAR2 msgctxt "_" msgid "translator-credits" msgstr "Ser82-png , 2022" #. (itstool) path: credit/name #: C/introduction.page:11 C/index.page:12 C/play-music.page:11 #: C/playlist-create-albums.page:11 C/playlist-create-songs.page:11 #: C/playlist-create-artists.page:11 C/playlist-delete.page:11 #: C/playlist-remove-songs.page:11 C/playlist-repeat.page:11 #: C/playlist-shuffle.page:11 C/search.page:11 msgid "Shobha Tyagi" msgstr "Shobha Tyagi" #. (itstool) path: credit/years #: C/introduction.page:13 C/index.page:14 C/play-music.page:13 #: C/playlist-create-albums.page:13 C/playlist-create-songs.page:13 #: C/playlist-create-artists.page:13 C/playlist-delete.page:13 #: C/playlist-remove-songs.page:13 C/playlist-repeat.page:13 #: C/playlist-shuffle.page:13 C/search.page:13 msgid "2014" msgstr "2014" #. (itstool) path: info/desc #. (itstool) path: page/p #: C/introduction.page:18 C/introduction.page:23 msgid "" "A simple and elegant replacement for using Files to show the " "music directory." msgstr "" "Простая и элегантная замена файлового менеджера Файлы для " "отображения музыкального каталога." #. (itstool) path: page/title #: C/introduction.page:22 msgid "Introduction to Music" msgstr "Введение в \"Музыку\"" #. (itstool) path: info/title #: C/index.page:6 msgctxt "link:trail" msgid "Music" msgstr "Музыка" #. (itstool) path: info/title #: C/index.page:7 msgctxt "link" msgid "Music" msgstr "Музыка" #. (itstool) path: info/title #: C/index.page:8 msgctxt "text" msgid "Music" msgstr "Музыка" #. (itstool) path: page/title #: C/index.page:19 msgid "<_:media-1/> Music" msgstr "<_:media-1/> Музыка" #. (itstool) path: section/title #: C/index.page:25 msgid "Create playlist" msgstr "Создать список воспроизведения" #. (itstool) path: section/title #: C/index.page:28 msgid "Play a song" msgstr "Воспроизвести композицию" #. (itstool) path: section/title #: C/index.page:31 msgid "Remove songs and playlist" msgstr "Удалить композиции из списка воспроизведения" #. (itstool) path: info/desc #: C/play-music.page:18 msgid "Play your favorite songs." msgstr "Воспроизвести ваши любимые композиции." #. (itstool) path: page/title #: C/play-music.page:22 msgid "Play music" msgstr "Воспроизвести музыкальную композицию" #. (itstool) path: page/p #: C/play-music.page:24 msgid "" "You can play your favorite music by creating a playlist or by simply " "clicking on the song of your choice from any view." msgstr "" "Вы можете воспроизводить свои любимые музыкальные композиции, создав " "список воспроизведения или просто щёлкнув нужную композицию в любой панели " "просмотра." #. (itstool) path: steps/title #: C/play-music.page:28 C/playlist-delete.page:27 #: C/playlist-remove-songs.page:27 msgid "While in Playlists:" msgstr "В Списках воспроизведения:" #. (itstool) path: item/p #: C/play-music.page:30 msgid "Select a playlist." msgstr "Выберите список воспроизведения." #. (itstool) path: item/p #: C/play-music.page:33 C/playlist-delete.page:32 msgid "Click on the gear button on the right hand side." msgstr "Щёлкните на кнопку шестеренки с правой стороны." #. (itstool) path: item/p #: C/play-music.page:36 msgid "Click on Play." msgstr "Щёлкните Воспроизвести." #. (itstool) path: info/desc #: C/playlist-create-albums.page:18 msgid "Add songs to playlists using albums." msgstr "Добавить композиции в списки воспроизведения с помощью альбомов." #. (itstool) path: page/title #: C/playlist-create-albums.page:21 msgid "Create a playlist using albums" msgstr "Создать список воспроизведения с помощью альбомов" #. (itstool) path: page/p #: C/playlist-create-albums.page:23 msgid "" "You can view all your albums by clicking on the Albums button." msgstr "" "Вы можете просмотреть все свои альбомы, нажав кнопку Альбомы." #. (itstool) path: steps/title #: C/playlist-create-albums.page:27 msgid "To add all the songs in an album:" msgstr "Чтобы добавить все композиции в альбоме:" #. (itstool) path: item/p #: C/playlist-create-albums.page:29 C/playlist-create-songs.page:29 #: C/playlist-create-artists.page:30 msgid "Click on the check button in the top-right of the window." msgstr "Нажмите кнопку с галочкой в правом верхнем углу окна." #. (itstool) path: item/p #: C/playlist-create-albums.page:32 msgid "Select albums." msgstr "Выберите альбомы." #. (itstool) path: item/p #: C/playlist-create-albums.page:35 C/playlist-create-albums.page:60 #: C/playlist-create-songs.page:35 C/playlist-create-artists.page:37 msgid "Click on the Add to Playlist button." msgstr "" "Щёлкните по кнопкеДобавить в список воспроизведения." #. (itstool) path: item/p #: C/playlist-create-albums.page:38 C/playlist-create-albums.page:63 #: C/playlist-create-artists.page:40 msgid "Click on New Playlist and type a name for your playlist." msgstr "" "Щёлкните Новый список воспроизведения и введите название своего " "списка." #. (itstool) path: item/p #: C/playlist-create-albums.page:42 C/playlist-create-albums.page:67 #: C/playlist-create-songs.page:42 msgid "Click on Select." msgstr "Щёлкните Выбрать." #. (itstool) path: page/p #: C/playlist-create-albums.page:46 msgid "You can also create a playlist from specific songs." msgstr "" "Вы также можете создать список воспроизведения из конкретных композиций." #. (itstool) path: steps/title #: C/playlist-create-albums.page:49 msgid "To add selected songs from an album:" msgstr "Чтобы добавить выбранные в альбоме композиции:" #. (itstool) path: item/p #: C/playlist-create-albums.page:51 msgid "Click on an album." msgstr "Щёлкните на альбом." #. (itstool) path: item/p #: C/playlist-create-albums.page:54 msgid "Click on the check button." msgstr "Щёлкните по кнопке с галочкой." #. (itstool) path: item/p #: C/playlist-create-albums.page:57 msgid "Select songs." msgstr "Выберите композиции." #. (itstool) path: note/p #: C/playlist-create-albums.page:72 C/playlist-create-songs.page:47 #: C/playlist-create-artists.page:49 msgid "" "To select all the songs click Click on items to select themSelect All in the toolbar or press " "CtrlA." msgstr "" "Чтобы выбрать все песни, щёлкните Нажмите, чтобы выбратьВыбрать все на панели инструментов или нажмите " "CtrlA." #. (itstool) path: note/p #: C/playlist-create-albums.page:76 C/playlist-create-songs.page:51 #: C/playlist-create-artists.page:53 msgid "" "To clear the selection click Click on items to select themSelect None in the toolbar." msgstr "" "Чтобы отменить выделение, нажмите Нажмите, чтобы выбратьСнять выделение на панели инструментов." #. (itstool) path: info/desc #: C/playlist-create-songs.page:18 msgid "Create playlist by selecting your favorite songs." msgstr "Создать список воспроизведения, выбрав свои любимые композиции." #. (itstool) path: page/title #: C/playlist-create-songs.page:21 msgid "Create playlists using songs" msgstr "Создать список воспроизведения на основе отдельных композиции" #. (itstool) path: page/p #: C/playlist-create-songs.page:23 msgid "" "You can view all the songs by clicking on the Songs button." msgstr "" "Вы можете просмотреть все композиции, нажав кнопку Композиции." #. (itstool) path: steps/title #: C/playlist-create-songs.page:27 msgid "To create a new playlist while in Songs view:" msgstr "" "Чтобы создать список воспроизведения используя вкладку Композиции:" #. (itstool) path: item/p #: C/playlist-create-songs.page:32 msgid "Select all the songs you want to add to the playlist." msgstr "" "Выберите все композиции, которые хотите добавить в список воспроизведения." #. (itstool) path: item/p #: C/playlist-create-songs.page:38 msgid "" "Click on New Playlist and type a name for your " "playlist." msgstr "" "Щёлкните Новый список воспроизведения и введите название своего " "списка." #. (itstool) path: info/desc #: C/playlist-create-artists.page:18 msgid "Create playlist by selecting your favorite artists." msgstr "Создать список воспроизведения, выбрав своих любимых исполнителей." #. (itstool) path: page/title #: C/playlist-create-artists.page:22 msgid "Create playlists using artists" msgstr "Создать список воспроизведения, с помощью выбора исполнителей" #. (itstool) path: page/p #: C/playlist-create-artists.page:24 msgid "" "You can view all the artists and their songs by clicking on the Artists button." msgstr "" "Вы можете просмотреть всех исполнителей и их песни, нажав кнопку Исполнители." #. (itstool) path: steps/title #: C/playlist-create-artists.page:28 msgid "To create a new playlist while in Artists view:" msgstr "" "Чтобы создать новый список воспроизведения во вкладке Исполнители:" #. (itstool) path: item/p #: C/playlist-create-artists.page:33 msgid "Select all the artists whose songs you want to add to the playlist." msgstr "" "Выберите всех исполнителей, чьи песни вы хотите добавить в список " "воспроизведения." #. (itstool) path: item/p #: C/playlist-create-artists.page:44 msgid "Click on Select." msgstr "Щёлкните Выбрать." #. (itstool) path: info/desc #: C/playlist-delete.page:18 msgid "Remove an unwanted playlist." msgstr "Удалить ненужный список воспроизведения." #. (itstool) path: page/title #: C/playlist-delete.page:22 msgid "Delete a playlist" msgstr "Удалить список воспроизведения" #. (itstool) path: page/p #: C/playlist-delete.page:24 msgid "You can remove an old and unwanted playlist." msgstr "Вы можете удалить старый и ненужный список воспроизведения." #. (itstool) path: item/p #: C/playlist-delete.page:29 msgid "Select the playlist which you want to delete." msgstr "Выберите список воспроизведения, который хотите удалить." #. (itstool) path: item/p #: C/playlist-delete.page:35 msgid "Click on Delete." msgstr "Щёлкните Удалить." #. (itstool) path: info/desc #: C/playlist-remove-songs.page:18 msgid "Delete songs from the playlist." msgstr "Удаление композиции из списка воспроизведения." #. (itstool) path: page/title #: C/playlist-remove-songs.page:22 msgid "Remove songs" msgstr "Удаление композиций" #. (itstool) path: page/p #: C/playlist-remove-songs.page:24 msgid "You can remove any unwanted songs from a playlist." msgstr "" "Вы можете удалить любые ненужные композиции из списка воспроизведения." #. (itstool) path: item/p #: C/playlist-remove-songs.page:29 msgid "Select the playlist from which you want to remove songs." msgstr "" "Выберите список воспроизведения, из которого хотите удалить композиции." #. (itstool) path: item/p #: C/playlist-remove-songs.page:32 msgid "Click on the check button on the toolbar." msgstr "Щёлкните на кнопку с галочкой на панели инструментов." #. (itstool) path: item/p #: C/playlist-remove-songs.page:35 msgid "Select all the songs which you want to remove." msgstr "Выберите все композиции, которые хотите удалить." #. (itstool) path: item/p #: C/playlist-remove-songs.page:38 msgid "Click on Remove from Playlist." msgstr "" "Щёлкните Удалить из списка воспроизведения." #. (itstool) path: info/desc #: C/playlist-repeat.page:18 msgid "Repeat all songs in the playlist or only the current song." msgstr "Повтор всех композиций в списке воспроизведения или только текущей." #. (itstool) path: page/title #: C/playlist-repeat.page:22 msgid "How do I play songs on repeat?" msgstr "Как воспроизводить композицию на повторе?" #. (itstool) path: list/title #: C/playlist-repeat.page:25 msgid "In the taskbar, click on the button on the right side:" msgstr "В панели задач щёлкните кнопку с правой стороны:" #. (itstool) path: item/p #: C/playlist-repeat.page:27 msgid "Select Repeat Song to repeat a single song." msgstr "" "Выберите Повторять композицию, чтобы поставить её на повтор." #. (itstool) path: item/p #: C/playlist-repeat.page:30 msgid "Select Repeat All to repeat all the song in the playlist." msgstr "" "Выберите Повторять все, чтобы повторять все композиции в списке " "воспроизведения." #. (itstool) path: info/desc #: C/playlist-shuffle.page:18 msgid "Shuffle songs in the playlist." msgstr "Перемешать песни в списке воспроизведения." #. (itstool) path: page/title #: C/playlist-shuffle.page:22 msgid "How do I shuffle my songs?" msgstr "Как перемешать композиции?" #. (itstool) path: page/p #: C/playlist-shuffle.page:24 msgid "" "In the taskbar, click on the button on right hand side and select " "Shuffle." msgstr "" "На панели задач справа нажмите кнопку и выберите В случайном порядке." #. (itstool) path: info/desc #: C/search.page:18 msgid "Search through your music collection." msgstr "Поиск по вашей музыкальной коллекции." #. (itstool) path: page/title #: C/search.page:22 msgid "Find music" msgstr "Поиск музыки" #. (itstool) path: page/p #: C/search.page:24 msgid "" "You can search your albums, artists, songs and playlists. Select what you " "want to search through then click the Search button and start " "searching." msgstr "" "Вы можете искать свои альбомы, исполнителей, песни и списки " "воспроизведения. Выберите, что вы хотите найти, затем нажмите кнопку " "Поиск и начните поиск." #. (itstool) path: p/link #: C/legal.xml:5 msgid "Creative Commons Attribution-ShareAlike 3.0 Unported License" msgstr "Creative Commons Attribution-ShareAlike 3.0 Unported License" #. (itstool) path: license/p #: C/legal.xml:4 msgid "This work is licensed under a <_:link-1/>." msgstr "Данная работа находится под лицензией <_:link-1/>." 070701000000C6000041ED00000000000000000000000266968E4E00000000000000000000000000000000000000000000001900000000gnome-music-46.1/help/sv070701000000C7000081A400000000000000000000000166968E4E00003931000000000000000000000000000000000000001F00000000gnome-music-46.1/help/sv/sv.po# Swedish translation for gnome-music. # Copyright © 2016-2022 gnome-music's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-music package. # Sebastian Rasmussen , 2016. # Anders Jonsson , 2021, 2022. # msgid "" msgstr "" "Project-Id-Version: gnome-music master\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" "music&keywords=I18N+L10N&component=user%20docs\n" "POT-Creation-Date: 2021-08-13 21:49+0000\n" "PO-Revision-Date: 2022-01-29 22:58+0100\n" "Last-Translator: Anders Jonsson \n" "Language-Team: Swedish \n" "Language: sv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Poedit 3.0.1\n" #. Put one translator per line, in the form NAME , YEAR1, YEAR2 msgctxt "_" msgid "translator-credits" msgstr "Sebastian Rasmussen , 2016" #. (itstool) path: credit/name #: C/introduction.page:11 C/index.page:12 C/play-music.page:11 #: C/playlist-create-albums.page:11 C/playlist-create-songs.page:11 #: C/playlist-create-artists.page:11 C/playlist-delete.page:11 #: C/playlist-remove-songs.page:11 C/playlist-repeat.page:11 #: C/playlist-shuffle.page:11 C/search.page:11 msgid "Shobha Tyagi" msgstr "Shobha Tyagi" #. (itstool) path: credit/years #: C/introduction.page:13 C/index.page:14 C/play-music.page:13 #: C/playlist-create-albums.page:13 C/playlist-create-songs.page:13 #: C/playlist-create-artists.page:13 C/playlist-delete.page:13 #: C/playlist-remove-songs.page:13 C/playlist-repeat.page:13 #: C/playlist-shuffle.page:13 C/search.page:13 msgid "2014" msgstr "2014" #. (itstool) path: info/desc #. (itstool) path: page/p #: C/introduction.page:18 C/introduction.page:23 msgid "" "A simple and elegant replacement for using Files to show the " "music directory." msgstr "" "En enkel och elegant ersättning för att använda Filer för att " "visa musikkatalogen." #. (itstool) path: page/title #: C/introduction.page:22 msgid "Introduction to Music" msgstr "Introduktion till Musik" #. (itstool) path: info/title #: C/index.page:6 msgctxt "link:trail" msgid "Music" msgstr "Musik" #. (itstool) path: info/title #: C/index.page:7 msgctxt "link" msgid "Music" msgstr "Musik" #. (itstool) path: info/title #: C/index.page:8 msgctxt "text" msgid "Music" msgstr "Musik" #. (itstool) path: page/title #: C/index.page:19 msgid "<_:media-1/> Music" msgstr "<_:media-1/> Musik" #. (itstool) path: section/title #: C/index.page:25 msgid "Create playlist" msgstr "Skapa en spellista" #. (itstool) path: section/title #: C/index.page:28 msgid "Play a song" msgstr "Spela en låt" #. (itstool) path: section/title #: C/index.page:31 msgid "Remove songs and playlist" msgstr "Ta bort låtar och spellistor" #. (itstool) path: info/desc #: C/play-music.page:18 msgid "Play your favorite songs." msgstr "Spela dina favoritlåtar." #. (itstool) path: page/title #: C/play-music.page:22 msgid "Play music" msgstr "Spela musik" #. (itstool) path: page/p #: C/play-music.page:24 msgid "" "You can play your favorite music by creating a playlist or by simply " "clicking on the song of your choice from any view." msgstr "" "Du kan spela din favoritmusik genom att skapa en spellista eller genom att " "helt enkelt klicka på vilken låt du vill från vilken vy som helst." #. (itstool) path: steps/title #: C/play-music.page:28 C/playlist-delete.page:27 #: C/playlist-remove-songs.page:27 msgid "While in Playlists:" msgstr "Medan du är i Spellistor:" #. (itstool) path: item/p #: C/play-music.page:30 msgid "Select a playlist." msgstr "Välj en spellista." #. (itstool) path: item/p #: C/play-music.page:33 C/playlist-delete.page:32 msgid "Click on the gear button on the right hand side." msgstr "Klicka på kugghjulsknappen på högersidan." #. (itstool) path: item/p #: C/play-music.page:36 msgid "Click on Play." msgstr "Klicka på Spela." #. (itstool) path: info/desc #: C/playlist-create-albums.page:18 msgid "Add songs to playlists using albums." msgstr "Lägg till låtar till spellistor via album." #. (itstool) path: page/title #: C/playlist-create-albums.page:21 msgid "Create a playlist using albums" msgstr "Skapa en spellista via album" #. (itstool) path: page/p #: C/playlist-create-albums.page:23 msgid "" "You can view all your albums by clicking on the Albums button." msgstr "" "Du kan visa alla dina album genom att klicka på knappen Album." #. (itstool) path: steps/title #: C/playlist-create-albums.page:27 msgid "To add all the songs in an album:" msgstr "För att lägga till alla låtarna i ett album:" #. (itstool) path: item/p #: C/playlist-create-albums.page:29 C/playlist-create-songs.page:29 #: C/playlist-create-artists.page:30 msgid "Click on the check button in the top-right of the window." msgstr "Klicka på kryssrutan längst upp till höger i fönstret." #. (itstool) path: item/p #: C/playlist-create-albums.page:32 msgid "Select albums." msgstr "Välj album." #. (itstool) path: item/p #: C/playlist-create-albums.page:35 C/playlist-create-albums.page:60 #: C/playlist-create-songs.page:35 C/playlist-create-artists.page:37 msgid "Click on the Add to Playlist button." msgstr "Klicka på knappen Lägg till i spellista." #. (itstool) path: item/p #: C/playlist-create-albums.page:38 C/playlist-create-albums.page:63 #: C/playlist-create-artists.page:40 msgid "Click on New Playlist and type a name for your playlist." msgstr "" "Klicka på Ny spellista och skriv in ett namn på din spellista." #. (itstool) path: item/p #: C/playlist-create-albums.page:42 C/playlist-create-albums.page:67 #: C/playlist-create-songs.page:42 msgid "Click on Select." msgstr "Klicka på Välj." #. (itstool) path: page/p #: C/playlist-create-albums.page:46 msgid "You can also create a playlist from specific songs." msgstr "Du kan också skapa en spellista från specifika låtar." #. (itstool) path: steps/title #: C/playlist-create-albums.page:49 msgid "To add selected songs from an album:" msgstr "För att lägga till utvalda låtar från ett album:" #. (itstool) path: item/p #: C/playlist-create-albums.page:51 msgid "Click on an album." msgstr "Klicka på ett album." #. (itstool) path: item/p #: C/playlist-create-albums.page:54 msgid "Click on the check button." msgstr "Klicka på kryssrutan." #. (itstool) path: item/p #: C/playlist-create-albums.page:57 msgid "Select songs." msgstr "Välj låtar." #. (itstool) path: note/p #: C/playlist-create-albums.page:72 C/playlist-create-songs.page:47 #: C/playlist-create-artists.page:49 msgid "" "To select all the songs click Click on items to select themSelect All in the toolbar or press " "CtrlA." msgstr "" "För att välja alla låtar klicka på Klicka på objekt för att " "välja demMarkera alla i verktygsfältet eller tryck " "på CtrlA." #. (itstool) path: note/p #: C/playlist-create-albums.page:76 C/playlist-create-songs.page:51 #: C/playlist-create-artists.page:53 msgid "" "To clear the selection click Click on items to select themSelect None in the toolbar." msgstr "" "För att rensa markeringen klicka på Klicka på objekt för att " "välja demAvmarkera alla i verktygsfältet." #. (itstool) path: info/desc #: C/playlist-create-songs.page:18 msgid "Create playlist by selecting your favorite songs." msgstr "Skapa spellista genom att välja dina favoritlåtar." #. (itstool) path: page/title #: C/playlist-create-songs.page:21 msgid "Create playlists using songs" msgstr "Skapa spellistor via låtar" #. (itstool) path: page/p #: C/playlist-create-songs.page:23 msgid "" "You can view all the songs by clicking on the Songs button." msgstr "" "Du kan visa alla låtar genom att klicka på knappen Låtar." #. (itstool) path: steps/title #: C/playlist-create-songs.page:27 msgid "To create a new playlist while in Songs view:" msgstr "För att skapa en ny spellista medan du är i vyn Låtar:" #. (itstool) path: item/p #: C/playlist-create-songs.page:32 msgid "Select all the songs you want to add to the playlist." msgstr "Markera alla låtar du vill lägga till i spellistan." #. (itstool) path: item/p #: C/playlist-create-songs.page:38 msgid "" "Click on New Playlist and type a name for your " "playlist." msgstr "" "Klicka på Ny spellista och skriv in ett namn på " "din spellista." #. (itstool) path: info/desc #: C/playlist-create-artists.page:18 msgid "Create playlist by selecting your favorite artists." msgstr "Skapa spellista genom att välja dina favoritartister." #. (itstool) path: page/title #: C/playlist-create-artists.page:22 msgid "Create playlists using artists" msgstr "Skapa spellistor via artister" #. (itstool) path: page/p #: C/playlist-create-artists.page:24 msgid "" "You can view all the artists and their songs by clicking on the Artists button." msgstr "" "Du kan visa alla artisterna och deras låtar genom att klicka på knappen Artister." #. (itstool) path: steps/title #: C/playlist-create-artists.page:28 msgid "To create a new playlist while in Artists view:" msgstr "För att skapa en ny spellista medan du är i vyn Artister:" #. (itstool) path: item/p #: C/playlist-create-artists.page:33 msgid "Select all the artists whose songs you want to add to the playlist." msgstr "Markera alla artister vars låtar du vill lägga till i spellistan." #. (itstool) path: item/p #: C/playlist-create-artists.page:44 msgid "Click on Select." msgstr "Klicka på Välj." #. (itstool) path: info/desc #: C/playlist-delete.page:18 msgid "Remove an unwanted playlist." msgstr "Ta bort en oönskad spellista." #. (itstool) path: page/title #: C/playlist-delete.page:22 msgid "Delete a playlist" msgstr "Ta bort en spellista" #. (itstool) path: page/p #: C/playlist-delete.page:24 msgid "You can remove an old and unwanted playlist." msgstr "Du kan ta bort en gammal och oönskad spellista." #. (itstool) path: item/p #: C/playlist-delete.page:29 msgid "Select the playlist which you want to delete." msgstr "Markera spellistan som du vill ta bort." #. (itstool) path: item/p #: C/playlist-delete.page:35 msgid "Click on Delete." msgstr "Klicka på Ta bort." #. (itstool) path: info/desc #: C/playlist-remove-songs.page:18 msgid "Delete songs from the playlist." msgstr "Ta bort låtar från spellistan." #. (itstool) path: page/title #: C/playlist-remove-songs.page:22 msgid "Remove songs" msgstr "Ta bort låtar" #. (itstool) path: page/p #: C/playlist-remove-songs.page:24 msgid "You can remove any unwanted songs from a playlist." msgstr "Du kan ta bort oönskade låtar från en spellista." #. (itstool) path: item/p #: C/playlist-remove-songs.page:29 msgid "Select the playlist from which you want to remove songs." msgstr "Välj spellistan från vilken du vill ta bort låtar." #. (itstool) path: item/p #: C/playlist-remove-songs.page:32 msgid "Click on the check button on the toolbar." msgstr "Klicka på kryssrutan i verktygsfältet." #. (itstool) path: item/p #: C/playlist-remove-songs.page:35 msgid "Select all the songs which you want to remove." msgstr "Markera alla låtar du vill ta bort." #. (itstool) path: item/p #: C/playlist-remove-songs.page:38 msgid "Click on Remove from Playlist." msgstr "Klicka på Ta bort från spellista." #. (itstool) path: info/desc #: C/playlist-repeat.page:18 msgid "Repeat all songs in the playlist or only the current song." msgstr "Repetera alla låtar i spellistan eller endast den aktuella låten." #. (itstool) path: page/title #: C/playlist-repeat.page:22 msgid "How do I play songs on repeat?" msgstr "Hur spelar jag låtar upprepade gånger?" #. (itstool) path: list/title #: C/playlist-repeat.page:25 msgid "In the taskbar, click on the button on the right side:" msgstr "Klicka i verktygsfältet på knappen på höger sida:" #. (itstool) path: item/p #: C/playlist-repeat.page:27 msgid "Select Repeat Song to repeat a single song." msgstr "Välj Upprepa låt för att upprepa en enstaka låt." #. (itstool) path: item/p #: C/playlist-repeat.page:30 msgid "Select Repeat All to repeat all the song in the playlist." msgstr "Välj Upprepa alla för att upprepa alla låtar i spellistan." #. (itstool) path: info/desc #: C/playlist-shuffle.page:18 msgid "Shuffle songs in the playlist." msgstr "Spela låtar i spellistan i slumpmässig ordning." #. (itstool) path: page/title #: C/playlist-shuffle.page:22 msgid "How do I shuffle my songs?" msgstr "Hur spelar jag mina låtar i slumpmässig ordning?" #. (itstool) path: page/p #: C/playlist-shuffle.page:24 msgid "" "In the taskbar, click on the button on right hand side and select " "Shuffle." msgstr "" "I verktygsfältet, klicka på knappen på höger sida och välj Spela i " "slumpmässig ordning." #. (itstool) path: info/desc #: C/search.page:18 msgid "Search through your music collection." msgstr "Sök genom din musiksamling." #. (itstool) path: page/title #: C/search.page:22 msgid "Find music" msgstr "Sök musik" #. (itstool) path: page/p #: C/search.page:24 msgid "" "You can search your albums, artists, songs and playlists. Select what you " "want to search through then click the Search button and start " "searching." msgstr "" "Du kan genomsöka dina album, artister, låtar och spellistor. Välj vad du " "vill genomsöka och klicka sedan på knappen Sök och börja söka." #. (itstool) path: p/link #: C/legal.xml:5 msgid "Creative Commons Attribution-ShareAlike 3.0 Unported License" msgstr "licensen Creative Commons Erkännande-DelaLika 3.0 Unported" #. (itstool) path: license/p #: C/legal.xml:4 msgid "This work is licensed under a <_:link-1/>." msgstr "Detta verk är licensierat under <_:link-1/>." 070701000000C8000041ED00000000000000000000000266968E4E00000000000000000000000000000000000000000000001900000000gnome-music-46.1/help/tr070701000000C9000081A400000000000000000000000166968E4E00003B8A000000000000000000000000000000000000001F00000000gnome-music-46.1/help/tr/tr.po# Turkish translation for gnome-music. # Copyright (C) 2021 gnome-music's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-music package. # # Sabri Ünal , 2021. # Emin Tufan Çetin , 2021, 2022. # msgid "" msgstr "" "Project-Id-Version: gnome-music master\n" "POT-Creation-Date: 2021-04-10 19:23+0000\n" "PO-Revision-Date: 2022-03-10 21:59+0300\n" "Last-Translator: Emin Tufan Çetin \n" "Language-Team: Turkish \n" "Language: tr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Poedit 2.4.3\n" #. Put one translator per line, in the form NAME , YEAR1, YEAR2 msgctxt "_" msgid "translator-credits" msgstr "" "Sabri Ünal , 2021.\n" "Emin Tufan Çetin , 2021, 2022." #. (itstool) path: credit/name #: C/introduction.page:11 C/index.page:12 C/play-music.page:11 #: C/playlist-create-albums.page:11 C/playlist-create-songs.page:11 #: C/playlist-create-artists.page:11 C/playlist-delete.page:11 #: C/playlist-remove-songs.page:11 C/playlist-repeat.page:11 #: C/playlist-shuffle.page:11 C/search.page:11 msgid "Shobha Tyagi" msgstr "Shobha Tyagi" #. (itstool) path: credit/years #: C/introduction.page:13 C/index.page:14 C/play-music.page:13 #: C/playlist-create-albums.page:13 C/playlist-create-songs.page:13 #: C/playlist-create-artists.page:13 C/playlist-delete.page:13 #: C/playlist-remove-songs.page:13 C/playlist-repeat.page:13 #: C/playlist-shuffle.page:13 C/search.page:13 msgid "2014" msgstr "2014" #. (itstool) path: info/desc #. (itstool) path: page/p #: C/introduction.page:18 C/introduction.page:23 msgid "" "A simple and elegant replacement for using Files to show the " "music directory." msgstr "" "Müzik dizinini göstermek için Dosyalar’ı kullanmanın basit ve " "zarif alternatifi." #. (itstool) path: page/title #: C/introduction.page:22 msgid "Introduction to Music" msgstr "Müzik’e Giriş" #. (itstool) path: info/title #: C/index.page:6 msgctxt "link:trail" msgid "Music" msgstr "Müzik" #. (itstool) path: info/title #: C/index.page:7 msgctxt "link" msgid "Music" msgstr "Müzik" #. (itstool) path: info/title #: C/index.page:8 msgctxt "text" msgid "Music" msgstr "Müzik" #. (itstool) path: page/title #: C/index.page:19 msgid "<_:media-1/> Music" msgstr "<_:media-1/> Müzik" #. (itstool) path: section/title #: C/index.page:25 msgid "Create playlist" msgstr "Çalma listesi oluştur" #. (itstool) path: section/title #: C/index.page:28 msgid "Play a song" msgstr "Şarkıyı çal" #. (itstool) path: section/title #: C/index.page:31 msgid "Remove songs and playlist" msgstr "Şarkıları ve çalma listesini kaldır" #. (itstool) path: info/desc #: C/play-music.page:18 msgid "Play your favorite songs." msgstr "Gözde şarkılarını çal." #. (itstool) path: page/title #: C/play-music.page:22 msgid "Play music" msgstr "Müzik çal" #. (itstool) path: page/p #: C/play-music.page:24 msgid "" "You can play your favorite music by creating a playlist or by simply " "clicking on the song of your choice from any view." msgstr "" "Gözde şarkılarınızı çalma listesi oluşturarak ya da herhangi bir görünümden " "seçtiğiniz şarkıya tıklayarak çalabilirsiniz." #. (itstool) path: steps/title #: C/play-music.page:28 C/playlist-delete.page:27 #: C/playlist-remove-songs.page:27 msgid "While in Playlists:" msgstr "Çalma Listesi’ndeyken:" #. (itstool) path: item/p #: C/play-music.page:30 msgid "Select a playlist." msgstr "Çalma listesi seçin." # Hata: Gear buton kalktı yerine üst üste üç nokta geldi. #. (itstool) path: item/p #: C/play-music.page:33 C/playlist-delete.page:32 msgid "Click on the gear button on the right hand side." msgstr "Sağ taraftaki dik üç nokta düğmesine tıklayın." #. (itstool) path: item/p #: C/play-music.page:36 msgid "Click on Play." msgstr "Çal’ı seçin." #. (itstool) path: info/desc #: C/playlist-create-albums.page:18 msgid "Add songs to playlists using albums." msgstr "Albümleri kullanarak çalma listelerine şarkılar ekle." #. (itstool) path: page/title #: C/playlist-create-albums.page:21 msgid "Create a playlist using albums" msgstr "Albümleri kullanarak çalma listesi oluştur" #. (itstool) path: page/p #: C/playlist-create-albums.page:23 msgid "" "You can view all your albums by clicking on the Albums button." msgstr "" "Albümler düğmesine tıklayarak tüm albümlerinizi " "görüntüleyebilirsiniz." #. (itstool) path: steps/title #: C/playlist-create-albums.page:27 msgid "To add all the songs in an album:" msgstr "Tüm şarkıları bir albüme eklemek için:" #. (itstool) path: item/p #: C/playlist-create-albums.page:29 C/playlist-create-songs.page:29 #: C/playlist-create-artists.page:30 msgid "Click on the check button in the top-right of the window." msgstr "Pencerenin sağ üst köşesindeki onay düğmesine tıklayın." #. (itstool) path: item/p #: C/playlist-create-albums.page:32 msgid "Select albums." msgstr "Albümleri seçin." #. (itstool) path: item/p #: C/playlist-create-albums.page:35 C/playlist-create-albums.page:60 #: C/playlist-create-songs.page:35 C/playlist-create-artists.page:37 msgid "Click on the Add to Playlist button." msgstr "Çalma Listesine Ekle düğmesine tıklayın." # Hata: New playlist diye tıklanabilir bir alan yok #. (itstool) path: item/p #: C/playlist-create-albums.page:38 C/playlist-create-albums.page:63 #: C/playlist-create-artists.page:40 msgid "Click on New Playlist and type a name for your playlist." msgstr "" "Yeni Çalma Listesi alanına tıklayıp çalma listeniz için ad girin." # Hata: Buton adı ekle olmuş. #. (itstool) path: item/p #: C/playlist-create-albums.page:42 C/playlist-create-albums.page:67 #: C/playlist-create-songs.page:42 msgid "Click on Select." msgstr "Ekle’ye tıklayın." #. (itstool) path: page/p #: C/playlist-create-albums.page:46 msgid "You can also create a playlist from specific songs." msgstr "Belirli şarkılardan çalma listesi de oluşturabilirsiniz." #. (itstool) path: steps/title #: C/playlist-create-albums.page:49 msgid "To add selected songs from an album:" msgstr "Albümden seçilen şarkıları eklemek için:" #. (itstool) path: item/p #: C/playlist-create-albums.page:51 msgid "Click on an album." msgstr "Albüme tıklayın." #. (itstool) path: item/p #: C/playlist-create-albums.page:54 msgid "Click on the check button." msgstr "Onay düğmesine tıklayın." #. (itstool) path: item/p #: C/playlist-create-albums.page:57 msgid "Select songs." msgstr "Şarkıları seçin." #. (itstool) path: note/p #: C/playlist-create-albums.page:72 C/playlist-create-songs.page:47 #: C/playlist-create-artists.page:49 msgid "" "To select all the songs click Click on items to select themSelect All in the toolbar or press " "CtrlA." msgstr "" "Tüm şarkıları seçmek için araç çubuğundan Seçmek için ögelere " "tıklayınTümünü Seç yolunu izleyin ya da " "CtrlA kısayolunu kullanın." #. (itstool) path: note/p #: C/playlist-create-albums.page:76 C/playlist-create-songs.page:51 #: C/playlist-create-artists.page:53 msgid "" "To clear the selection click Click on items to select themSelect None in the toolbar." msgstr "" "Seçimi temizlemek için araç çubuğundan Seçmek için ögelere " "tıklayınHiçbirini Seçme yolunu izleyin." #. (itstool) path: info/desc #: C/playlist-create-songs.page:18 msgid "Create playlist by selecting your favorite songs." msgstr "Gözde şarkılarını seçenek çalma listesi oluştur." #. (itstool) path: page/title #: C/playlist-create-songs.page:21 msgid "Create playlists using songs" msgstr "Şarkıları kullanarak çalma listeleri oluştur" #. (itstool) path: page/p #: C/playlist-create-songs.page:23 msgid "" "You can view all the songs by clicking on the Songs button." msgstr "" "Şarkılar düğmesine tıklayarak tüm şarkılarınızı " "görüntüleyebilirsiniz." #. (itstool) path: steps/title #: C/playlist-create-songs.page:27 msgid "To create a new playlist while in Songs view:" msgstr "Şarkılar görünümündeyken yeni çalma listesi oluşturmak için:" #. (itstool) path: item/p #: C/playlist-create-songs.page:32 msgid "Select all the songs you want to add to the playlist." msgstr "Çalma listesine eklemek istediğiniz tüm şarkıları seçin." #. (itstool) path: item/p #: C/playlist-create-songs.page:38 msgid "" "Click on New Playlist and type a name for your " "playlist." msgstr "" "Yeni Çalma Listesi alanına tıklayıp çalma listeniz için ad girin." #. (itstool) path: info/desc #: C/playlist-create-artists.page:18 msgid "Create playlist by selecting your favorite artists." msgstr "Gözde sanatçılarını seçenek çalma listesi oluştur." #. (itstool) path: page/title #: C/playlist-create-artists.page:22 msgid "Create playlists using artists" msgstr "Sanatçıları kullanarak çalma listeleri oluştur" #. (itstool) path: page/p #: C/playlist-create-artists.page:24 msgid "" "You can view all the artists and their songs by clicking on the Artists button." msgstr "" "Sanatçılar düğmesine tıklayarak tüm sanatçıları " "ve şarkılarını görüntüleyebilirsiniz." #. (itstool) path: steps/title #: C/playlist-create-artists.page:28 msgid "To create a new playlist while in Artists view:" msgstr "" "Sanatçılar görünümündeyken yeni çalma listesi oluşturmak için:" #. (itstool) path: item/p #: C/playlist-create-artists.page:33 msgid "Select all the artists whose songs you want to add to the playlist." msgstr "Şarkılarını çalma listesine eklemek istediğiniz tüm sanatçıları seçin." # Hata: Düğme adı değişmiş. #. (itstool) path: item/p #: C/playlist-create-artists.page:44 msgid "Click on Select." msgstr "Ekle’ye tıklayın." #. (itstool) path: info/desc #: C/playlist-delete.page:18 msgid "Remove an unwanted playlist." msgstr "İstenmeyen çalma listesini kaldır." #. (itstool) path: page/title #: C/playlist-delete.page:22 msgid "Delete a playlist" msgstr "Çalma listesini sil" #. (itstool) path: page/p #: C/playlist-delete.page:24 msgid "You can remove an old and unwanted playlist." msgstr "Eski ve istenmeyen çalma listelerini silebilirsiniz." #. (itstool) path: item/p #: C/playlist-delete.page:29 msgid "Select the playlist which you want to delete." msgstr "Silmek istediğiniz çalma listesini seçin." #. (itstool) path: item/p #: C/playlist-delete.page:35 msgid "Click on Delete." msgstr "Sil’i seçin." #. (itstool) path: info/desc #: C/playlist-remove-songs.page:18 msgid "Delete songs from the playlist." msgstr "Şarkıları çalma listesinden sil." #. (itstool) path: page/title #: C/playlist-remove-songs.page:22 msgid "Remove songs" msgstr "Şarkıları kaldır" #. (itstool) path: page/p #: C/playlist-remove-songs.page:24 msgid "You can remove any unwanted songs from a playlist." msgstr "İstemediğiniz şarkıları çalma listesinden kaldırabilirsiniz." #. (itstool) path: item/p #: C/playlist-remove-songs.page:29 msgid "Select the playlist from which you want to remove songs." msgstr "Şarkıları kaldırmak istediğiniz çalma listesini seçin." # Hata: Sayfa tamamen güncellenmeye muhtaç #. (itstool) path: item/p #: C/playlist-remove-songs.page:32 msgid "Click on the check button on the toolbar." msgstr "Araç çubuğundaki kutucuğa tıklayın." # Hata: Sayfa tamamen güncellenmeye muhtaç #. (itstool) path: item/p #: C/playlist-remove-songs.page:35 msgid "Select all the songs which you want to remove." msgstr "Kaldırmak istediğiniz tüm şarkıları seçin." # Hata: Sayfa tamamen güncellenmeye muhtaç #. (itstool) path: item/p #: C/playlist-remove-songs.page:38 msgid "Click on Remove from Playlist." msgstr "Çalma Listesinden Kaldıra tıklayın." #. (itstool) path: info/desc #: C/playlist-repeat.page:18 msgid "Repeat all songs in the playlist or only the current song." msgstr "" "Çalma listesindeki tüm şarkıları ya da yalnızca geçerli şarkıyı yinele." #. (itstool) path: page/title #: C/playlist-repeat.page:22 msgid "How do I play songs on repeat?" msgstr "Şarkıları yeniden yeniden nasıl çalarım?" #. (itstool) path: list/title #: C/playlist-repeat.page:25 msgid "In the taskbar, click on the button on the right side:" msgstr "Görev çubuğunda, sağdaki düğmeye tıklayın:" #. (itstool) path: item/p #: C/playlist-repeat.page:27 msgid "Select Repeat Song to repeat a single song." msgstr "Tek şarkıyı yinelemek için Şarkıyı Yinele’yi seçin." #. (itstool) path: item/p #: C/playlist-repeat.page:30 msgid "Select Repeat All to repeat all the song in the playlist." msgstr "" "Çalma listesindeki tüm şarkıları yinelemek için Tümünü Yinele’yi " "seçin." #. (itstool) path: info/desc #: C/playlist-shuffle.page:18 msgid "Shuffle songs in the playlist." msgstr "Çalma listesindeki şarkıları karıştır." #. (itstool) path: page/title #: C/playlist-shuffle.page:22 msgid "How do I shuffle my songs?" msgstr "Şarkıları nasıl karıştırabilirim?" #. (itstool) path: page/p #: C/playlist-shuffle.page:24 msgid "" "In the taskbar, click on the button on right hand side and select " "Shuffle." msgstr "" "Görev çubuğunda, sağ taraftaki düğmeye tıklayın ve Karıştır’ı " "seçin." #. (itstool) path: info/desc #: C/search.page:18 msgid "Search through your music collection." msgstr "Müzik derleminde ara." #. (itstool) path: page/title #: C/search.page:22 msgid "Find music" msgstr "Müzik ara" #. (itstool) path: page/p #: C/search.page:24 msgid "" "You can search your albums, artists, songs and playlists. Select what you " "want to search through then click the Search button and start " "searching." msgstr "" "Albümlerinizi, sanatçılarınızı, şarkılarınızı ve çalma listelerinizi " "arayabilirsiniz. Aramak istediğinizi seçin ve ardından Ara " "düğmesine tıklayın ve aramaya başlayın." #. (itstool) path: p/link #: C/legal.xml:5 msgid "Creative Commons Attribution-ShareAlike 3.0 Unported License" msgstr "Creative Commons Attribution-ShareAlike 3.0 Unported License" #. (itstool) path: license/p #: C/legal.xml:4 msgid "This work is licensed under a <_:link-1/>." msgstr "Bu çalışma <_:link-1/> ile lisanslanmıştır." 070701000000CA000041ED00000000000000000000000266968E4E00000000000000000000000000000000000000000000001900000000gnome-music-46.1/help/uk070701000000CB000081A400000000000000000000000166968E4E0000475B000000000000000000000000000000000000001F00000000gnome-music-46.1/help/uk/uk.po# Ukrainian translation for gnome-music. # Copyright (C) 2020 gnome-music's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-music package. # # Yuri Chornoivan , 2020, 2021. msgid "" msgstr "" "Project-Id-Version: gnome-music gnome-3-36\n" "POT-Creation-Date: 2021-04-10 19:23+0000\n" "PO-Revision-Date: 2021-04-18 10:31+0300\n" "Last-Translator: Yuri Chornoivan \n" "Language-Team: Ukrainian \n" "Language: uk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=n==1 ? 3 : n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" "X-Generator: Lokalize 20.12.0\n" #. Put one translator per line, in the form NAME , YEAR1, YEAR2 msgctxt "_" msgid "translator-credits" msgstr "Юрій Чорноіван , 2020" #. (itstool) path: credit/name #: C/introduction.page:11 C/index.page:12 C/play-music.page:11 #: C/playlist-create-albums.page:11 C/playlist-create-songs.page:11 #: C/playlist-create-artists.page:11 C/playlist-delete.page:11 #: C/playlist-remove-songs.page:11 C/playlist-repeat.page:11 #: C/playlist-shuffle.page:11 C/search.page:11 msgid "Shobha Tyagi" msgstr "Shobha Tyagi" #. (itstool) path: credit/years #: C/introduction.page:13 C/index.page:14 C/play-music.page:13 #: C/playlist-create-albums.page:13 C/playlist-create-songs.page:13 #: C/playlist-create-artists.page:13 C/playlist-delete.page:13 #: C/playlist-remove-songs.page:13 C/playlist-repeat.page:13 #: C/playlist-shuffle.page:13 C/search.page:13 msgid "2014" msgstr "2014" #. (itstool) path: info/desc #. (itstool) path: page/p #: C/introduction.page:18 C/introduction.page:23 msgid "" "A simple and elegant replacement for using Files to show the " "music directory." msgstr "" "Проста і елегантна заміна використанню Файлів для показу каталогу " "музики." #. (itstool) path: page/title #: C/introduction.page:22 msgid "Introduction to Music" msgstr "Вступ до «Музики»" #. (itstool) path: info/title #: C/index.page:6 #| msgctxt "link" #| msgid "Music" msgctxt "link:trail" msgid "Music" msgstr "Музика" #. (itstool) path: info/title #: C/index.page:7 msgctxt "link" msgid "Music" msgstr "Музика" #. (itstool) path: info/title #: C/index.page:8 msgctxt "text" msgid "Music" msgstr "Музика" #. (itstool) path: page/title #: C/index.page:19 msgid "<_:media-1/> Music" msgstr "<_:media-1/> Музика" #. (itstool) path: section/title #: C/index.page:25 msgid "Create playlist" msgstr "Створення списку композицій" #. (itstool) path: section/title #: C/index.page:28 msgid "Play a song" msgstr "Відтворення пісні" #. (itstool) path: section/title #: C/index.page:31 msgid "Remove songs and playlist" msgstr "Вилучення пісень і списку відтворення" #. (itstool) path: info/desc #: C/play-music.page:18 msgid "Play your favorite songs." msgstr "Відтворення ваших улюблених пісень." #. (itstool) path: page/title #: C/play-music.page:22 msgid "Play music" msgstr "Відтворення музики" #. (itstool) path: page/p #: C/play-music.page:24 msgid "" "You can play your favorite music by creating a playlist or by simply " "clicking on the song of your choice from any view." msgstr "" "Ви можете відтворювати улюблені музичні твори створенням списку композицій " "або простим натисканням пункту вибраної композиції з будь-якої панелі " "перегляду." #. (itstool) path: steps/title #: C/play-music.page:28 C/playlist-delete.page:27 #: C/playlist-remove-songs.page:27 msgid "While in Playlists:" msgstr "У Списках композицій:" #. (itstool) path: item/p #: C/play-music.page:30 msgid "Select a playlist." msgstr "Виберіть список композицій." #. (itstool) path: item/p #: C/play-music.page:33 C/playlist-delete.page:32 msgid "Click on the gear button on the right hand side." msgstr "" "Натисніть кнопку із зображенням шестерні у правій частині вікна програми." #. (itstool) path: item/p #: C/play-music.page:36 msgid "Click on Play." msgstr "Натисніть кнопку Відтворити." #. (itstool) path: info/desc #: C/playlist-create-albums.page:18 msgid "Add songs to playlists using albums." msgstr "Додавання композицій до списків композицій за допомогою альбомів." #. (itstool) path: page/title #: C/playlist-create-albums.page:21 msgid "Create a playlist using albums" msgstr "Створення списку композицій за допомогою альбомів" #. (itstool) path: page/p #: C/playlist-create-albums.page:23 msgid "" "You can view all your albums by clicking on the Albums button." msgstr "" "Ви можете переглянути усі ваші альбоми натисканням кнопки Альбоми." #. (itstool) path: steps/title #: C/playlist-create-albums.page:27 msgid "To add all the songs in an album:" msgstr "Щоб додати усі композиції у альбомі:" #. (itstool) path: item/p #: C/playlist-create-albums.page:29 C/playlist-create-songs.page:29 #: C/playlist-create-artists.page:30 msgid "Click on the check button in the top-right of the window." msgstr "Натисніть кнопку із позначкою у верхньому правому куті вікна програми." #. (itstool) path: item/p #: C/playlist-create-albums.page:32 msgid "Select albums." msgstr "Виберіть альбоми." #. (itstool) path: item/p #: C/playlist-create-albums.page:35 C/playlist-create-albums.page:60 #: C/playlist-create-songs.page:35 C/playlist-create-artists.page:37 msgid "Click on the Add to Playlist button." msgstr "" "Натисніть кнопку Додати до списку композицій." #. (itstool) path: item/p #: C/playlist-create-albums.page:38 C/playlist-create-albums.page:63 #: C/playlist-create-artists.page:40 msgid "Click on New Playlist and type a name for your playlist." msgstr "" "Натисніть кнопку Створити список композицій і введіть назву " "вашого списку композицій." #. (itstool) path: item/p #: C/playlist-create-albums.page:42 C/playlist-create-albums.page:67 #: C/playlist-create-songs.page:42 msgid "Click on Select." msgstr "Натисніть кнопку Вибрати." #. (itstool) path: page/p #: C/playlist-create-albums.page:46 msgid "You can also create a playlist from specific songs." msgstr "Ви також можете створити список композицій із вказаних композицій." #. (itstool) path: steps/title #: C/playlist-create-albums.page:49 msgid "To add selected songs from an album:" msgstr "Щоб додати позначені композиції з альбому, виконайте такі дії:" #. (itstool) path: item/p #: C/playlist-create-albums.page:51 msgid "Click on an album." msgstr "Клацніть на альбомі." #. (itstool) path: item/p #: C/playlist-create-albums.page:54 msgid "Click on the check button." msgstr "Клацніть на кнопці із позначкою." #. (itstool) path: item/p #: C/playlist-create-albums.page:57 msgid "Select songs." msgstr "Позначте композиції." #. (itstool) path: note/p #: C/playlist-create-albums.page:72 C/playlist-create-songs.page:47 #: C/playlist-create-artists.page:49 msgid "" "To select all the songs click Click on items to select themSelect All in the toolbar or press " "CtrlA." msgstr "" "Щоб вибрати усі композиції, клацніть правою кнопкою на " "об'єктах, щоб позначити їхВибрати все на панелі " "інструментів або натисніть комбінацію клавіш CtrlA." #. (itstool) path: note/p #: C/playlist-create-albums.page:76 C/playlist-create-songs.page:51 #: C/playlist-create-artists.page:53 msgid "" "To clear the selection click Click on items to select themSelect None in the toolbar." msgstr "" "Щоб зняти позначення, клацніть на об'єктах, щоб позначити їхНе вибирати на панелі інструментів." #. (itstool) path: info/desc #: C/playlist-create-songs.page:18 msgid "Create playlist by selecting your favorite songs." msgstr "Створення списку композицій позначенням ваших улюблених композицій." #. (itstool) path: page/title #: C/playlist-create-songs.page:21 msgid "Create playlists using songs" msgstr "Створення списку композицій на основі окремих композицій" #. (itstool) path: page/p #: C/playlist-create-songs.page:23 msgid "" "You can view all the songs by clicking on the Songs button." msgstr "" "Ви можете переглянути усі ваші композиції натисканням кнопки Пісні." #. (itstool) path: steps/title #: C/playlist-create-songs.page:27 msgid "To create a new playlist while in Songs view:" msgstr "" "Щоб створити список композицій у режимі Пісні, виконайте такі дії:" #. (itstool) path: item/p #: C/playlist-create-songs.page:32 msgid "Select all the songs you want to add to the playlist." msgstr "Позначте усі композиції, які ви хочете додати до списку композицій." #. (itstool) path: item/p #: C/playlist-create-songs.page:38 msgid "" "Click on New Playlist and type a name for your " "playlist." msgstr "" "Натисніть кнопку Створити список композицій і " "введіть назву вашого списку композицій." #. (itstool) path: info/desc #: C/playlist-create-artists.page:18 msgid "Create playlist by selecting your favorite artists." msgstr "Створення списку композицій позначенням ваших улюблених виконавців." #. (itstool) path: page/title #: C/playlist-create-artists.page:22 msgid "Create playlists using artists" msgstr "Створення списку композицій на основі окремих виконавців" #. (itstool) path: page/p #: C/playlist-create-artists.page:24 msgid "" "You can view all the artists and their songs by clicking on the Artists button." msgstr "" "Ви можете переглянути список усіх виконавців та їхніх композицій натисканням " "кнопки Виконавці." #. (itstool) path: steps/title #: C/playlist-create-artists.page:28 msgid "To create a new playlist while in Artists view:" msgstr "" "Щоб створити список композицій у режимі Виконавці, виконайте такі " "дії:" #. (itstool) path: item/p #: C/playlist-create-artists.page:33 msgid "Select all the artists whose songs you want to add to the playlist." msgstr "" "Позначте пункти усіх виконавців, композиції яких ви хочете додати до списку " "композицій." #. (itstool) path: item/p #: C/playlist-create-artists.page:44 msgid "Click on Select." msgstr "Натисніть кнопку Вибрати." #. (itstool) path: info/desc #: C/playlist-delete.page:18 msgid "Remove an unwanted playlist." msgstr "Вилучення небажаного списку композицій." #. (itstool) path: page/title #: C/playlist-delete.page:22 msgid "Delete a playlist" msgstr "Вилучення списку композицій" #. (itstool) path: page/p #: C/playlist-delete.page:24 msgid "You can remove an old and unwanted playlist." msgstr "Ви можете вилучити старий і непотрібний список композицій." #. (itstool) path: item/p #: C/playlist-delete.page:29 msgid "Select the playlist which you want to delete." msgstr "Позначте список композицій, який ви хочете вилучити." #. (itstool) path: item/p #: C/playlist-delete.page:35 msgid "Click on Delete." msgstr "Натисніть кнопку Вилучити." #. (itstool) path: info/desc #: C/playlist-remove-songs.page:18 msgid "Delete songs from the playlist." msgstr "Вилучення композицій зі списку композицій." #. (itstool) path: page/title #: C/playlist-remove-songs.page:22 msgid "Remove songs" msgstr "Вилучення композицій" #. (itstool) path: page/p #: C/playlist-remove-songs.page:24 msgid "You can remove any unwanted songs from a playlist." msgstr "Ви можете вилучити будь-які небажані композицій зі списку композицій." #. (itstool) path: item/p #: C/playlist-remove-songs.page:29 msgid "Select the playlist from which you want to remove songs." msgstr "Позначте список композицій, з якого ви хочете вилучити композиції." #. (itstool) path: item/p #: C/playlist-remove-songs.page:32 msgid "Click on the check button on the toolbar." msgstr "Клацніть на кнопці із позначкою на панелі інструментів." #. (itstool) path: item/p #: C/playlist-remove-songs.page:35 msgid "Select all the songs which you want to remove." msgstr "Позначте усі композиції, які ви хочете вилучити." #. (itstool) path: item/p #: C/playlist-remove-songs.page:38 msgid "Click on Remove from Playlist." msgstr "" "Натисніть кнопку Вилучити зі списку композицій." #. (itstool) path: info/desc #: C/playlist-repeat.page:18 msgid "Repeat all songs in the playlist or only the current song." msgstr "Повторення усіх композицій у списку або лише поточної композиції." #. (itstool) path: page/title #: C/playlist-repeat.page:22 msgid "How do I play songs on repeat?" msgstr "Як зробити так, щоб композицій відтворювалися повторно?" #. (itstool) path: list/title #: C/playlist-repeat.page:25 msgid "In the taskbar, click on the button on the right side:" msgstr "На панелі завдань натисніть кнопку у правій її частині:" #. (itstool) path: item/p #: C/playlist-repeat.page:27 msgid "Select Repeat Song to repeat a single song." msgstr "" "Натисніть Повторювати пісню, щоб повторювалася окрема пісня." #. (itstool) path: item/p #: C/playlist-repeat.page:30 msgid "Select Repeat All to repeat all the song in the playlist." msgstr "" "Виберіть Повторювати все, щоб програма повторювала усі композиції " "у списку композицій." #. (itstool) path: info/desc #: C/playlist-shuffle.page:18 msgid "Shuffle songs in the playlist." msgstr "Перемішування пісень у списку композицій." #. (itstool) path: page/title #: C/playlist-shuffle.page:22 msgid "How do I shuffle my songs?" msgstr "Як перемішати композиції?" #. (itstool) path: page/p #: C/playlist-shuffle.page:24 msgid "" "In the taskbar, click on the button on right hand side and select " "Shuffle." msgstr "" "На панелі завдань натисніть кнопку у правій її частині і виберіть " "Перемішати." #. (itstool) path: info/desc #: C/search.page:18 msgid "Search through your music collection." msgstr "Пошук у збірці музичних творів" #. (itstool) path: page/title #: C/search.page:22 msgid "Find music" msgstr "Пошук музики" #. (itstool) path: page/p #: C/search.page:24 msgid "" "You can search your albums, artists, songs and playlists. Select what you " "want to search through then click the Search button and start " "searching." msgstr "" "Ви можете шукати бажану композицію серед ваших альбомів, списків виконавців, " "композицій та списків композицій. Позначте об'єкт пошуку і натисніть кнопку " "Пошук, щоб розпочати пошук." #. (itstool) path: p/link #: C/legal.xml:5 msgid "Creative Commons Attribution-ShareAlike 3.0 Unported License" msgstr "Creative Commons Attribution-ShareAlike 3.0 Unported License" #. (itstool) path: license/p #: C/legal.xml:4 msgid "This work is licensed under a <_:link-1/>." msgstr "Ця робота розповсюджується за умов дотримання <_:link-1/>." 070701000000CC000041ED00000000000000000000000266968E4E00000000000000000000000000000000000000000000001C00000000gnome-music-46.1/help/zh_CN070701000000CD000081A400000000000000000000000166968E4E00002BBA000000000000000000000000000000000000002500000000gnome-music-46.1/help/zh_CN/zh_CN.po# Chinese (China) translation for gnome-music. # Copyright (C) 2022 gnome-music's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-music package. # Boyuan Yang <073plan@gmail.com>, 2022. # msgid "" msgstr "" "Project-Id-Version: gnome-music master\n" "POT-Creation-Date: 2022-04-12 09:44+0000\n" "PO-Revision-Date: 2022-04-20 09:56-0400\n" "Language-Team: Chinese (China) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: zh_CN\n" "Last-Translator: \n" "X-Generator: Poedit 2.4.3\n" #. Put one translator per line, in the form NAME , YEAR1, YEAR2 msgctxt "_" msgid "translator-credits" msgstr "" #. (itstool) path: credit/name #: C/introduction.page:11 C/index.page:12 C/play-music.page:11 #: C/playlist-create-albums.page:11 C/playlist-create-songs.page:11 #: C/playlist-create-artists.page:11 C/playlist-delete.page:11 #: C/playlist-remove-songs.page:11 C/playlist-repeat.page:11 #: C/playlist-shuffle.page:11 C/search.page:11 msgid "Shobha Tyagi" msgstr "Shobha Tyagi" #. (itstool) path: credit/years #: C/introduction.page:13 C/index.page:14 C/play-music.page:13 #: C/playlist-create-albums.page:13 C/playlist-create-songs.page:13 #: C/playlist-create-artists.page:13 C/playlist-delete.page:13 #: C/playlist-remove-songs.page:13 C/playlist-repeat.page:13 #: C/playlist-shuffle.page:13 C/search.page:13 msgid "2014" msgstr "2014" #. (itstool) path: info/desc #. (itstool) path: page/p #: C/introduction.page:18 C/introduction.page:23 msgid "" "A simple and elegant replacement for using Files to show the " "music directory." msgstr "简单而优雅的应用程序,使用文件来显示音乐目录。" #. (itstool) path: page/title #: C/introduction.page:22 msgid "Introduction to Music" msgstr "音乐应用程序介绍" #. (itstool) path: info/title #: C/index.page:6 msgctxt "link:trail" msgid "Music" msgstr "音乐" #. (itstool) path: info/title #: C/index.page:7 msgctxt "link" msgid "Music" msgstr "音乐" #. (itstool) path: info/title #: C/index.page:8 msgctxt "text" msgid "Music" msgstr "音乐" #. (itstool) path: page/title #: C/index.page:19 msgid "<_:media-1/> Music" msgstr "<_:media-1/> 音乐" #. (itstool) path: section/title #: C/index.page:25 msgid "Create playlist" msgstr "创建播放列表" #. (itstool) path: section/title #: C/index.page:28 msgid "Play a song" msgstr "播放歌曲" #. (itstool) path: section/title #: C/index.page:31 msgid "Remove songs and playlist" msgstr "移除歌曲和播放列表" #. (itstool) path: info/desc #: C/play-music.page:18 msgid "Play your favorite songs." msgstr "播放您最爱的歌曲。" #. (itstool) path: page/title #: C/play-music.page:22 msgid "Play music" msgstr "播放音乐" #. (itstool) path: page/p #: C/play-music.page:24 msgid "" "You can play your favorite music by creating a playlist or by simply " "clicking on the song of your choice from any view." msgstr "" #. (itstool) path: steps/title #: C/play-music.page:28 C/playlist-delete.page:27 #: C/playlist-remove-songs.page:27 msgid "While in Playlists:" msgstr "" #. (itstool) path: item/p #: C/play-music.page:30 msgid "Select a playlist." msgstr "选中一个播放列表。" #. (itstool) path: item/p #: C/play-music.page:33 C/playlist-delete.page:32 msgid "Click on the gear button on the right hand side." msgstr "" #. (itstool) path: item/p #: C/play-music.page:36 msgid "Click on Play." msgstr "" #. (itstool) path: info/desc #: C/playlist-create-albums.page:18 msgid "Add songs to playlists using albums." msgstr "" #. (itstool) path: page/title #: C/playlist-create-albums.page:21 msgid "Create a playlist using albums" msgstr "" #. (itstool) path: page/p #: C/playlist-create-albums.page:23 msgid "" "You can view all your albums by clicking on the Albums button." msgstr "" #. (itstool) path: steps/title #: C/playlist-create-albums.page:27 msgid "To add all the songs in an album:" msgstr "" #. (itstool) path: item/p #: C/playlist-create-albums.page:29 C/playlist-create-songs.page:29 #: C/playlist-create-artists.page:30 msgid "Click on the check button in the top-right of the window." msgstr "" #. (itstool) path: item/p #: C/playlist-create-albums.page:32 msgid "Select albums." msgstr "" #. (itstool) path: item/p #: C/playlist-create-albums.page:35 C/playlist-create-albums.page:60 #: C/playlist-create-songs.page:35 C/playlist-create-artists.page:37 msgid "Click on the Add to Playlist button." msgstr "" #. (itstool) path: item/p #: C/playlist-create-albums.page:38 C/playlist-create-albums.page:63 #: C/playlist-create-artists.page:40 msgid "Click on New Playlist and type a name for your playlist." msgstr "" #. (itstool) path: item/p #: C/playlist-create-albums.page:42 C/playlist-create-albums.page:67 #: C/playlist-create-songs.page:42 msgid "Click on Select." msgstr "" #. (itstool) path: page/p #: C/playlist-create-albums.page:46 msgid "You can also create a playlist from specific songs." msgstr "" #. (itstool) path: steps/title #: C/playlist-create-albums.page:49 msgid "To add selected songs from an album:" msgstr "" #. (itstool) path: item/p #: C/playlist-create-albums.page:51 msgid "Click on an album." msgstr "" #. (itstool) path: item/p #: C/playlist-create-albums.page:54 msgid "Click on the check button." msgstr "" #. (itstool) path: item/p #: C/playlist-create-albums.page:57 msgid "Select songs." msgstr "" #. (itstool) path: note/p #: C/playlist-create-albums.page:72 C/playlist-create-songs.page:47 #: C/playlist-create-artists.page:49 msgid "" "To select all the songs click Click on items to select themSelect All in the toolbar or press " "CtrlA." msgstr "" #. (itstool) path: note/p #: C/playlist-create-albums.page:76 C/playlist-create-songs.page:51 #: C/playlist-create-artists.page:53 msgid "" "To clear the selection click Click on items to select themSelect None in the toolbar." msgstr "" #. (itstool) path: info/desc #: C/playlist-create-songs.page:18 msgid "Create playlist by selecting your favorite songs." msgstr "" #. (itstool) path: page/title #: C/playlist-create-songs.page:21 msgid "Create playlists using songs" msgstr "" #. (itstool) path: page/p #: C/playlist-create-songs.page:23 msgid "" "You can view all the songs by clicking on the Songs button." msgstr "" #. (itstool) path: steps/title #: C/playlist-create-songs.page:27 msgid "To create a new playlist while in Songs view:" msgstr "" #. (itstool) path: item/p #: C/playlist-create-songs.page:32 msgid "Select all the songs you want to add to the playlist." msgstr "" #. (itstool) path: item/p #: C/playlist-create-songs.page:38 msgid "" "Click on New Playlist and type a name for your " "playlist." msgstr "" #. (itstool) path: info/desc #: C/playlist-create-artists.page:18 msgid "Create playlist by selecting your favorite artists." msgstr "" #. (itstool) path: page/title #: C/playlist-create-artists.page:22 msgid "Create playlists using artists" msgstr "" #. (itstool) path: page/p #: C/playlist-create-artists.page:24 msgid "" "You can view all the artists and their songs by clicking on the Artists button." msgstr "" #. (itstool) path: steps/title #: C/playlist-create-artists.page:28 msgid "To create a new playlist while in Artists view:" msgstr "" #. (itstool) path: item/p #: C/playlist-create-artists.page:33 msgid "Select all the artists whose songs you want to add to the playlist." msgstr "" #. (itstool) path: item/p #: C/playlist-create-artists.page:44 msgid "Click on Select." msgstr "" #. (itstool) path: info/desc #: C/playlist-delete.page:18 msgid "Remove an unwanted playlist." msgstr "" #. (itstool) path: page/title #: C/playlist-delete.page:22 msgid "Delete a playlist" msgstr "" #. (itstool) path: page/p #: C/playlist-delete.page:24 msgid "You can remove an old and unwanted playlist." msgstr "" #. (itstool) path: item/p #: C/playlist-delete.page:29 msgid "Select the playlist which you want to delete." msgstr "" #. (itstool) path: item/p #: C/playlist-delete.page:35 msgid "Click on Delete." msgstr "点击删除。" #. (itstool) path: info/desc #: C/playlist-remove-songs.page:18 msgid "Delete songs from the playlist." msgstr "" #. (itstool) path: page/title #: C/playlist-remove-songs.page:22 msgid "Remove songs" msgstr "" #. (itstool) path: page/p #: C/playlist-remove-songs.page:24 msgid "You can remove any unwanted songs from a playlist." msgstr "" #. (itstool) path: item/p #: C/playlist-remove-songs.page:29 msgid "Select the playlist from which you want to remove songs." msgstr "" #. (itstool) path: item/p #: C/playlist-remove-songs.page:32 msgid "Click on the check button on the toolbar." msgstr "" #. (itstool) path: item/p #: C/playlist-remove-songs.page:35 msgid "Select all the songs which you want to remove." msgstr "" #. (itstool) path: item/p #: C/playlist-remove-songs.page:38 msgid "Click on Remove from Playlist." msgstr "" #. (itstool) path: info/desc #: C/playlist-repeat.page:18 msgid "Repeat all songs in the playlist or only the current song." msgstr "" #. (itstool) path: page/title #: C/playlist-repeat.page:22 msgid "How do I play songs on repeat?" msgstr "" #. (itstool) path: list/title #: C/playlist-repeat.page:25 msgid "In the taskbar, click on the button on the right side:" msgstr "" #. (itstool) path: item/p #: C/playlist-repeat.page:27 msgid "Select Repeat Song to repeat a single song." msgstr "" #. (itstool) path: item/p #: C/playlist-repeat.page:30 msgid "Select Repeat All to repeat all the song in the playlist." msgstr "" #. (itstool) path: info/desc #: C/playlist-shuffle.page:18 msgid "Shuffle songs in the playlist." msgstr "" #. (itstool) path: page/title #: C/playlist-shuffle.page:22 msgid "How do I shuffle my songs?" msgstr "" #. (itstool) path: page/p #: C/playlist-shuffle.page:24 msgid "" "In the taskbar, click on the button on right hand side and select " "Shuffle." msgstr "" #. (itstool) path: info/desc #: C/search.page:18 msgid "Search through your music collection." msgstr "在您的音乐收藏中搜索。" #. (itstool) path: page/title #: C/search.page:22 msgid "Find music" msgstr "查找音乐" #. (itstool) path: page/p #: C/search.page:24 msgid "" "You can search your albums, artists, songs and playlists. Select what you " "want to search through then click the Search button and start " "searching." msgstr "" #. (itstool) path: p/link #: C/legal.xml:5 msgid "Creative Commons Attribution-ShareAlike 3.0 Unported License" msgstr "知识共享 署名-相同方式共享 3.0 未本地化版本" #. (itstool) path: license/p #: C/legal.xml:4 msgid "This work is licensed under a <_:link-1/>." msgstr "本作品使用<_:link-1/>许可。" 070701000000CE000081A400000000000000000000000166968E4E00000E9C000000000000000000000000000000000000001D00000000gnome-music-46.1/meson.buildproject('gnome-music', version: '46.1', meson_version: '>= 0.59.0' ) # Importing modules gnome = import('gnome') i18n = import('i18n') python = import('python') # Module objects py_installation = python.find_installation('python3') # Make sure Python is installed and found if not py_installation.found() error('No valid python3 binary found') endif # Python 3.7 is needed for postponed evalution of annotations if not py_installation.language_version().version_compare('>= 3.7') error('Python 3.7 or newer is required.') endif # Constants PACKAGE_URL = 'https://apps.gnome.org/Music/' PACKAGE_URL_BUG = 'https://gitlab.gnome.org/GNOME/gnome-music/issues' PROJECT_RDNN_NAME = 'org.gnome.Music' # NAME_SUFFIX is used in the about dialog if get_option('profile') == 'development' PROFILE = '.Devel' NAME_SUFFIX = ' (Development Snapshot)' else PROFILE = '' NAME_SUFFIX = '' endif APPLICATION_ID = 'org.gnome.Music@0@'.format(PROFILE) PYTHON_DIR = py_installation.get_path('purelib') PKGDATA_DIR = join_paths(get_option('prefix'), get_option('datadir'), APPLICATION_ID) PKGLIB_DIR = join_paths(get_option('prefix'), get_option('libdir'), APPLICATION_ID) VCS_TAG = '' if get_option('profile') != 'default' git = find_program('git', required : false) if git.found() VCS_TAG = run_command('git', 'rev-parse', '--short', 'HEAD', check: true).stdout().strip() endif if VCS_TAG == '' VCS_TAG = '-devel' else VCS_TAG = '-@0@'.format(VCS_TAG) endif endif # Dependencies dependency('glib-2.0', version: '>= 2.67.1') dependency('gobject-introspection-1.0', version: '>= 1.35.0') dependency('gtk4', version: '>= 4.10.0') dependency('libadwaita-1', version: '>= 1.5.beta') dependency('libmediaart-2.0', version: '>= 1.9.1') dependency('libsoup-3.0') dependency('tracker-sparql-3.0', version: '>= 2.99.3') dependency('pango', version: '>= 1.44.0') dependency('pygobject-3.0', version: '>= 3.47.0') dependency('py3cairo', version: '>= 1.14.0') dependency('grilo-0.3', version: '>= 0.3.13', fallback: ['grilo', 'libgrl_dep']) dependency('grilo-plugins-0.3', version: '>= 0.3.12', fallback: ['grilo-plugins', 'grilo_plugins_dep']) subdir('data') subdir('help') subdir('po') install_subdir( 'gnomemusic', install_dir: py_installation.get_install_dir() ) # Install the executable file bin_config = configuration_data() bin_config.set('application_id', APPLICATION_ID) bin_config.set('rdnn_name', PROJECT_RDNN_NAME) bin_config.set('pkgdatadir', PKGDATA_DIR) bin_config.set('localedir', join_paths(get_option('prefix'), get_option('datadir'), 'locale')) bin_config.set('pythondir', PYTHON_DIR) bin_config.set('schemasdir', PKGDATA_DIR) bin_config.set('version', meson.project_version() + VCS_TAG) bin_config.set('local_build', 'False') configure_file( input: 'gnome-music.in', output: 'gnome-music', configuration: bin_config, install_dir: get_option('bindir') ) # Install the builddir executable local_config = configuration_data() local_config.set('application_id', APPLICATION_ID) local_config.set('rdnn_name', PROJECT_RDNN_NAME) local_config.set('pkgdatadir', join_paths(meson.current_build_dir(), 'data')) local_config.set('localedir', join_paths(get_option('prefix'), get_option('datadir'), 'locale')) local_config.set('pythondir', meson.current_source_dir()) local_config.set('schemasdir', join_paths(meson.current_build_dir(), 'data')) local_config.set('version', meson.project_version() + VCS_TAG) local_config.set('local_build', 'True') configure_file( input: 'gnome-music.in', output: 'local-music', configuration: local_config ) gnome.post_install( glib_compile_schemas: true, gtk_update_icon_cache: true, update_desktop_database: true ) 070701000000CF000081A400000000000000000000000166968E4E0000006E000000000000000000000000000000000000002300000000gnome-music-46.1/meson_options.txtoption( 'profile', type: 'combo', choices: [ 'default', 'development' ], value: 'default' ) 070701000000D0000081A400000000000000000000000166968E4E00001192000000000000000000000000000000000000002600000000gnome-music-46.1/org.gnome.Music.json{ "app-id": "org.gnome.Music.Devel", "runtime": "org.gnome.Platform", "runtime-version": "master", "sdk": "org.gnome.Sdk", "command": "gnome-music", "tags": ["devel", "development", "nightly"], "finish-args": [ "--device=dri", "--share=ipc", "--share=network", "--socket=wayland", "--socket=fallback-x11", "--socket=pulseaudio", "--filesystem=xdg-music", "--talk-name=org.freedesktop.Tracker3.Writeback", "--system-talk-name=org.freedesktop.login1", "--add-policy=Tracker3.dbus:org.freedesktop.Tracker3.Miner.Files=tracker:Audio" ], "cleanup": [ "/include", "/lib/pkgconfig", "/share/pkgconfig", "/share/aclocal", "/man", "/share/man", "/share/gtk-doc", "/share/vala", "*.la", "*.a" ], "modules": [ "subprojects/shared-modules/lua5.4/lua-5.4.json", { "name": "libmediaart", "buildsystem": "meson", "sources": [ { "type": "git", "url": "https://gitlab.gnome.org/GNOME/libmediaart.git" } ] }, { "name": "LocalSearch", "buildsystem": "meson", "config-opts": [ "-Dbattery_detection=none", "-Ddefault_index_single_dirs=", "-Ddefault_index_recursive_dirs=&MUSIC", "-Ddomain_prefix=org.gnome.Music.Devel", "-Dlandlock=disabled", "-Dman=false", "-Dminer_fs=true", "-Dminer_fs_cache_location=$XDG_CACHE_HOME/gnome-music/miner/files", "-Dminer_rss=false", "-Dsystemd_user_services=false"], "sources": [ { "type": "git", "url": "https://gitlab.gnome.org/GNOME/localsearch.git", "branch": "main" } ], "cleanup": [ "/share/dbus-1/services/org.gnome.Music.Devel.LocalSearch3.service" ] }, { "name": "totem-pl-parser", "buildsystem": "meson", "sources": [ { "type": "git", "url": "https://gitlab.gnome.org/GNOME/totem-pl-parser.git" } ] }, { "name": "grilo", "buildsystem": "meson", "config-opts": [ "-Denable-gtk-doc=false" ], "sources": [ { "type": "git", "url": "https://gitlab.gnome.org/GNOME/grilo.git" } ], "cleanup": [ "/include", "/bin" ] }, { "name": "grilo-plugins", "buildsystem": "meson", "config-opts": [ "-Denable-bookmarks=no", "-Denable-dleyna=no", "-Denable-filesystem=no", "-Denable-freebox=no", "-Denable-local-metadata=no", "-Denable-lua-factory=yes", "-Denable-metadata-store=no", "-Denable-opensubtitles=no", "-Denable-optical-media=no", "-Denable-podcasts=no", "-Denable-thetvdb=no", "-Denable-tmdb=no", "-Denable-tracker=no", "-Denable-tracker3=yes", "-Denable-youtube=no", "-Dhelp=no" ], "sources": [ { "type": "git", "url": "https://gitlab.gnome.org/GNOME/grilo-plugins.git" } ], "cleanup": [ "/include" ] }, { "name": "gnome-music", "config-opts" : [ "-Dprofile=development" ], "buildsystem": "meson", "sources": [ { "type": "git", "url": "https://gitlab.gnome.org/GNOME/gnome-music.git" } ] } ] } 070701000000D1000041ED00000000000000000000000266968E4E00000000000000000000000000000000000000000000001400000000gnome-music-46.1/po070701000000D2000081A400000000000000000000000166968E4E000000F3000000000000000000000000000000000000001C00000000gnome-music-46.1/po/LINGUASab af an ar as be bg bs ca ca@valencia cs da de el en_GB eo es et eu fa fi fr fur fy ga gd gl he hi hr hu id is it ja ka kab kk kn ko lt lv mjw ml ms nb ne nl oc pa pl pt pt_BR ro ru sk sl sr sr@latin sv ta te tg th tr uk vi zh_CN zh_HK zh_TW 070701000000D3000081A400000000000000000000000166968E4E00000548000000000000000000000000000000000000002000000000gnome-music-46.1/po/POTFILES.in# List of source files containing translatable strings. # Please keep this file sorted alphabetically. data/org.gnome.Music.appdata.xml.in.in data/org.gnome.Music.desktop.in.in data/org.gnome.Music.gschema.xml data/ui/AlbumsSearchNavigationPage.ui data/ui/AlbumWidget.ui data/ui/ArtistsSearchNavigationPage.ui data/ui/ArtistsView.ui data/ui/HeaderBar.ui data/ui/help-overlay.ui data/ui/PlayerToolbar.ui data/ui/PlaylistControls.ui data/ui/PlaylistDialog.ui data/ui/PreferencesDialog.ui data/ui/SearchHeaderBar.ui data/ui/SearchView.ui data/ui/SongWidgetMenu.ui data/ui/StatusNavigationPage.ui gnomemusic/__init__.py gnomemusic/about.py gnomemusic/application.py gnomemusic/grilowrappers/grltrackerplaylists.py gnomemusic/gstplayer.py gnomemusic/inhibitsuspend.py gnomemusic/mpris.py gnomemusic/player.py gnomemusic/playlisttoast.py gnomemusic/songtoast.py gnomemusic/utils.py gnomemusic/views/albumsview.py gnomemusic/views/artistsview.py gnomemusic/views/playlistsview.py gnomemusic/views/searchview.py gnomemusic/widgets/albumwidget.py gnomemusic/widgets/discbox.py gnomemusic/widgets/playertoolbar.py gnomemusic/widgets/playlistcontrols.py gnomemusic/widgets/playlistdialog.py gnomemusic/widgets/searchheaderbar.py gnomemusic/widgets/songwidgetmenu.py gnomemusic/widgets/startoggle.py gnomemusic/widgets/statusnavigationpage.py gnomemusic/window.py 070701000000D4000081A400000000000000000000000166968E4E0000009F000000000000000000000000000000000000002200000000gnome-music-46.1/po/POTFILES.skip# List of source files that should *not* be translated. # Please keep this file sorted alphabetically. data/ui/AboutDialog.ui data/org.gnome.Music.appdata.xml 070701000000D5000081A400000000000000000000000166968E4E000045B8000000000000000000000000000000000000001A00000000gnome-music-46.1/po/ab.pomsgid "" msgstr "" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-music/issues\n" "POT-Creation-Date: 2023-01-25 19:11+0000\n" "Last-Translator: Нанба Наала \n" "Language-Team: Abkhazian \n" "Language: ab\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: data/org.gnome.Music.appdata.xml.in.in:6 #: data/org.gnome.Music.desktop.in.in:3 gnomemusic/about.py:236 #: gnomemusic/application.py:61 gnomemusic/window.py:71 msgid "Music" msgstr "Амузыка" #: data/org.gnome.Music.appdata.xml.in.in:7 #: data/org.gnome.Music.desktop.in.in:5 msgid "Play and organize your music collection" msgstr "Амузыкатә коллекциа арҳәареи, ахархәареи" #: data/org.gnome.Music.appdata.xml.in.in:9 msgid "An easy and pleasant way to play your music." msgstr "Агәахәара узаазго амузыка азыӡырҩшьа ." #: data/org.gnome.Music.appdata.xml.in.in:12 msgid "" "Find tracks in your local collection, use automatically generated playlists " "or curate a fresh one." msgstr "" "Ишәыҧшаала атрекқәа шәколлекциаҟны, арҳәара автоматикатә хьӡынҵақәа шәхы " "иашәырхәа, мамзар еизыжәга шәхатәы ҿыц ." #: data/org.gnome.Music.appdata.xml.in.in:167 msgid "The GNOME Music developers" msgstr "Аԥҵаҩы изин © 2018 Аԥшьы Амузыка GNOME аԥҵаҩцәа" #: data/org.gnome.Music.desktop.in.in:4 msgid "Music Player" msgstr "Амузыкатә рҳәага" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Music.desktop.in.in:13 msgid "Music;Player;" msgstr "Амузыкатә;Арҳәага;" #: data/org.gnome.Music.gschema.xml:12 msgid "Window size" msgstr "Аԥенџьыр ашәагаа" #: data/org.gnome.Music.gschema.xml:13 msgid "Window size (width and height)." msgstr "Аԥенџьыр ашәагаа (аҭбаареи аҳаракыреи)" #: data/org.gnome.Music.gschema.xml:17 msgid "Window maximized" msgstr "Аԥенџьыр иамоуп иреиҳау ашәагаа" #: data/org.gnome.Music.gschema.xml:18 msgid "Window maximized state." msgstr "Иеиҵыху аҧенџьыр арежим." #: data/org.gnome.Music.gschema.xml:22 msgid "Playback repeat mode" msgstr "" #. Translators: Don't translate allowed values, just the description in the brackets #: data/org.gnome.Music.gschema.xml:24 msgid "" "Value identifies whether to repeat or randomize playback through the " "collection. Allowed values are: “none” (repeat and shuffle are off), " "“song” (repeat current song), “all” (repeat playlist, no shuffle), " "“shuffle” (shuffle playlist, presumes repeat all)." msgstr "" #: data/org.gnome.Music.gschema.xml:28 msgid "Enable ReplayGain" msgstr "ReplayGain аҿакра" #: data/org.gnome.Music.gschema.xml:29 msgid "Enables or disables ReplayGain for albums" msgstr "Иаҿанакуеит мамзар иаҿнахуеит афункциа ReplayGain альбомқәа рзы" #: data/org.gnome.Music.gschema.xml:33 msgid "Inhibit system suspend" msgstr "" #: data/org.gnome.Music.gschema.xml:34 msgid "Enables or disables inhibiting system suspend while playing music" msgstr "" "Иаҿанакуеит мамзар иаҿнахуеит амузыка аҿакраан асистема азԥшра арежим ахь " "аиасразы иҟанаҵо аԥкра" #: data/org.gnome.Music.gschema.xml:38 msgid "Report music history to Last.fm" msgstr "" #: data/org.gnome.Music.gschema.xml:39 msgid "" "Enables or disables sending scrobbles and the “currently playing” info to " "Last.fm." msgstr "" "Иаҿанакуеит мамзар иаҿнахуеит аскробблқәеи аинформациақәеи \"уажәтәи " "аиҭарҿиара\" иазкны Last.fm. аҟны." #: data/ui/AlbumWidget.ui:84 data/ui/PlayerToolbar.ui:87 #: data/ui/PlaylistControls.ui:101 gnomemusic/widgets/playertoolbar.py:170 msgid "Play" msgstr "Аҿакра" #: data/ui/AlbumWidget.ui:130 data/ui/PlaylistControls.ui:5 #: data/ui/SongWidgetMenu.ui:11 msgid "_Play" msgstr "" #: data/ui/AlbumWidget.ui:134 msgid "Add to _Favorite Songs" msgstr "" #: data/ui/AlbumWidget.ui:138 data/ui/SongWidgetMenu.ui:15 msgid "_Add to Playlist…" msgstr "" #: data/ui/AppMenu.ui:23 data/ui/LastfmDialog.ui:8 msgid "Last.fm Account" msgstr "Аккаунт Last.fm" #: data/ui/AppMenu.ui:36 msgid "Report Music Listening" msgstr "" #: data/ui/AppMenu.ui:58 msgid "_Keyboard Shortcuts" msgstr "_Ицоу арыдқәа" #: data/ui/AppMenu.ui:68 msgid "_Help" msgstr "_Аилыркаа" #: data/ui/AppMenu.ui:78 msgid "_About Music" msgstr "_Аԥшьы иазкны" #: data/ui/EmptyView.ui:30 msgid "Welcome to Music" msgstr "" #: data/ui/HeaderBar.ui:16 msgid "Menu" msgstr "Амениу" #: data/ui/HeaderBar.ui:24 data/ui/SearchHeaderBar.ui:15 msgid "Select" msgstr "Алхра" #: data/ui/HeaderBar.ui:30 data/ui/PlaylistDialog.ui:213 #: data/ui/SearchHeaderBar.ui:20 msgid "_Cancel" msgstr "_Аԥыхра" #: data/ui/HeaderBar.ui:42 data/ui/SearchHeaderBar.ui:32 msgid "Search" msgstr "Аҧшаара" #: data/ui/HeaderBar.ui:50 msgid "Back" msgstr "Шьҭахьҟа" #: data/ui/help-overlay.ui:11 msgctxt "shortcut window" msgid "General" msgstr "" #: data/ui/help-overlay.ui:14 msgctxt "shortcut window" msgid "Close window" msgstr "" #: data/ui/help-overlay.ui:20 msgctxt "shortcut window" msgid "Search" msgstr "" #: data/ui/help-overlay.ui:26 msgctxt "shortcut window" msgid "Help" msgstr "" #: data/ui/help-overlay.ui:32 msgctxt "shortcut window" msgid "Shortcuts" msgstr "" #: data/ui/help-overlay.ui:40 msgctxt "shortcut window" msgid "Playback" msgstr "" #: data/ui/help-overlay.ui:43 msgctxt "shortcut window" msgid "Play/Pause" msgstr "" #: data/ui/help-overlay.ui:49 msgctxt "shortcut window" msgid "Next song" msgstr "" #: data/ui/help-overlay.ui:55 msgctxt "shortcut window" msgid "Previous song" msgstr "" #: data/ui/help-overlay.ui:61 msgctxt "shortcut window" msgid "Toggle repeat" msgstr "" #: data/ui/help-overlay.ui:67 msgctxt "shortcut window" msgid "Toggle shuffle" msgstr "" #: data/ui/help-overlay.ui:75 msgctxt "shortcut window" msgid "Navigation" msgstr "" #: data/ui/help-overlay.ui:78 msgctxt "shortcut window" msgid "Go to Albums" msgstr "" #: data/ui/help-overlay.ui:84 msgctxt "shortcut window" msgid "Go to Artists" msgstr "" #: data/ui/help-overlay.ui:90 msgctxt "shortcut window" msgid "Go to Songs" msgstr "" #: data/ui/help-overlay.ui:96 msgctxt "shortcut window" msgid "Go to Playlists" msgstr "" #: data/ui/help-overlay.ui:102 msgctxt "shortcut window" msgid "Go back" msgstr "" #: data/ui/LastfmDialog.ui:21 msgid "" "Last.fm is a music discovery service that gives you personalised " "recommendations based on the music you listen to." msgstr "" #: data/ui/LastfmDialog.ui:31 gnomemusic/widgets/lastfmdialog.py:57 msgid "Music Reporting Not Setup" msgstr "" #: data/ui/LastfmDialog.ui:44 gnomemusic/widgets/lastfmdialog.py:60 msgid "Login to your Last.fm account to report your music listening." msgstr "" #: data/ui/LastfmDialog.ui:55 gnomemusic/widgets/lastfmdialog.py:58 msgid "Login" msgstr "Аҭаҩра" #: data/ui/PlayerToolbar.ui:74 msgid "Previous" msgstr "Аԥхьатәи" #: data/ui/PlayerToolbar.ui:106 msgid "Next" msgstr "Ԥхьаҟа" #: data/ui/PlaylistControls.ui:9 msgid "_Delete" msgstr "_Аныхра" #: data/ui/PlaylistControls.ui:13 msgid "_Rename…" msgstr "" #: data/ui/PlaylistControls.ui:28 msgid "Playlist Name" msgstr "" #: data/ui/PlaylistControls.ui:62 msgid "_Done" msgstr "_Ихиоуп" #: data/ui/PlaylistDialog.ui:52 msgid "Enter a name for your first playlist" msgstr "" #: data/ui/PlaylistDialog.ui:77 msgid "C_reate" msgstr "" #: data/ui/PlaylistDialog.ui:146 msgid "New Playlist…" msgstr "" #: data/ui/PlaylistDialog.ui:161 msgid "Add" msgstr "" #: data/ui/PlaylistDialog.ui:202 msgid "Add to Playlist" msgstr "" #: data/ui/PlaylistDialog.ui:222 msgid "_Add" msgstr "_Ацҵара" #: data/ui/SearchView.ui:33 gnomemusic/views/artistsview.py:51 msgid "Artists" msgstr "Анагӡаҩцәа" #: data/ui/SearchView.ui:42 data/ui/SearchView.ui:84 msgid "View All" msgstr "" #: data/ui/SearchView.ui:75 gnomemusic/views/albumsview.py:56 msgid "Albums" msgstr "Альбомқәа" #: data/ui/SearchView.ui:117 gnomemusic/views/songsview.py:52 msgid "Songs" msgstr "" #: data/ui/SelectionBarMenuButton.ui:7 msgid "Select All" msgstr "Зегьы алхра" #: data/ui/SelectionBarMenuButton.ui:11 msgid "Select None" msgstr "" #: data/ui/SelectionBarMenuButton.ui:19 gnomemusic/widgets/headerbar.py:69 msgid "Click on items to select them" msgstr "" #: data/ui/SelectionToolbar.ui:8 msgid "_Add to Playlist" msgstr "" #: data/ui/SongWidgetMenu.ui:19 msgid "_Remove from Playlist" msgstr "_Аҿакрақәа рыхьӡынҵа аҟнытә аныхра" #: gnomemusic/about.py:238 msgid "The GNOME Project" msgstr "The GNOME Project" #: gnomemusic/about.py:242 msgid "translator-credits" msgstr "Нанба Наала , 2022" #: gnomemusic/about.py:246 msgid "Copyright The GNOME Music Developers" msgstr "Аԥҵаҩы изин © 2018 Аԥшьы Амузыка GNOME аԥҵаҩцәа" #: gnomemusic/about.py:249 msgid "Translated by" msgstr "" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:894 msgid "Most Played" msgstr "" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:948 msgid "Never Played" msgstr "" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1001 msgid "Recently Played" msgstr "" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1064 msgid "Recently Added" msgstr "" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1127 msgid "Favorite Songs" msgstr "" #: gnomemusic/gstplayer.py:408 msgid "Unable to play the file" msgstr "" #: gnomemusic/gstplayer.py:414 msgid "_Find in {}" msgstr "_Аҧшаара {} аҟны" #. TRANSLATORS: separator for two codecs #: gnomemusic/gstplayer.py:424 msgid " and " msgstr " насгьы " #. TRANSLATORS: separator for a list of codecs #: gnomemusic/gstplayer.py:427 msgid ", " msgstr ", " #: gnomemusic/gstplayer.py:429 msgid "{} is required to play the file, but is not installed." msgid_plural "{} are required to play the file, but are not installed." msgstr[0] "" msgstr[1] "" #: gnomemusic/inhibitsuspend.py:63 msgid "Playing music" msgstr "" #. Translators: "shuffle" causes tracks to play in random order. #: gnomemusic/player.py:44 msgid "Shuffle" msgstr "Имашәыру аишьҭагылашьа" #: gnomemusic/player.py:45 msgid "Repeat Song" msgstr "" #: gnomemusic/player.py:46 msgid "Repeat All" msgstr "" #: gnomemusic/player.py:47 msgid "Shuffle/Repeat Off" msgstr "" #: gnomemusic/playlisttoast.py:55 msgid "Playlist {} removed" msgstr "" #: gnomemusic/playlisttoast.py:56 gnomemusic/songtoast.py:65 msgid "Undo" msgstr "Архынҳәра" #: gnomemusic/songtoast.py:64 msgid "{} removed from {}" msgstr "" #: gnomemusic/utils.py:92 msgid "Unknown album" msgstr "" #: gnomemusic/utils.py:113 msgid "Unknown Artist" msgstr "" #: gnomemusic/views/emptyview.py:65 msgid "Your XDG Music directory is not set." msgstr "" #: gnomemusic/views/emptyview.py:72 msgid "Music Folder" msgstr "" #. TRANSLATORS: This is a label to display a link to open user's music #. folder. {} will be replaced with the translated text 'Music folder' #: gnomemusic/views/emptyview.py:76 msgid "The contents of your {} will appear here." msgstr "" #: gnomemusic/views/emptyview.py:124 msgid "No Music Found" msgstr "" #: gnomemusic/views/emptyview.py:125 msgid "Try a Different Search" msgstr "" #: gnomemusic/views/emptyview.py:129 msgid "GNOME Music could not connect to Tracker." msgstr "" #: gnomemusic/views/emptyview.py:131 msgid "Your music files cannot be indexed without Tracker running." msgstr "" #: gnomemusic/views/emptyview.py:137 msgid "Your system Tracker version seems outdated." msgstr "" #: gnomemusic/views/emptyview.py:139 msgid "Music needs Tracker version 3.0.0 or higher." msgstr "" #: gnomemusic/views/playlistsview.py:45 msgid "Playlists" msgstr "Аҿакрақәа рыхьӡынҵа" #: gnomemusic/views/searchview.py:304 msgid "Artists Results" msgstr "" #: gnomemusic/views/searchview.py:318 msgid "Albums Results" msgstr "" #: gnomemusic/widgets/albumwidget.py:245 msgid "{} minute" msgid_plural "{} minutes" msgstr[0] "" msgstr[1] "" #: gnomemusic/widgets/discbox.py:75 msgid "Disc {}" msgstr "" #: gnomemusic/widgets/headerbar.py:66 msgid "Selected {} song" msgid_plural "Selected {} songs" msgstr[0] "" msgstr[1] "" #: gnomemusic/widgets/lastfmdialog.py:64 msgid "Your music listening is reported to Last.fm." msgstr "" #: gnomemusic/widgets/lastfmdialog.py:66 msgid "Your music listening is not reported to Last.fm." msgstr "" #. TRANSLATORS: displays the username of the Last.fm account #: gnomemusic/widgets/lastfmdialog.py:70 msgid "Logged in as {}" msgstr "" #: gnomemusic/widgets/lastfmdialog.py:71 msgid "Configure" msgstr "" #: gnomemusic/widgets/playertoolbar.py:167 msgid "Pause" msgstr "Pause" #: gnomemusic/widgets/playlistcontrols.py:130 msgid "{} Song" msgid_plural "{} Songs" msgstr[0] "" msgstr[1] "" #, fuzzy 070701000000D6000081A400000000000000000000000166968E4E00001D54000000000000000000000000000000000000001A00000000gnome-music-46.1/po/af.po# Afrikaans translation for gnome-music. # This file is distributed under the same license as the gnome-music package. # Copyright (C) 2013 # Dawid Loubser , 2013. # F Wolff , 2013. msgid "" msgstr "" "Project-Id-Version: gnome-music gnome-3-10\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" "music&keywords=I18N+L10N&component=general\n" "POT-Creation-Date: 2013-10-14 11:25+0000\n" "PO-Revision-Date: 2013-10-23 14:43+0200\n" "Last-Translator: F Wolff \n" "Language-Team: translate-discuss-af@lists.sourceforge.net\n" "Language: af\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Virtaal 0.7.1\n" "X-Project-Style: gnome\n" #: ../data/org.gnome.Music.gschema.xml.h:1 msgid "Window size" msgstr "Venstergrootte" #: ../data/org.gnome.Music.gschema.xml.h:2 msgid "Window size (width and height)." msgstr "Venstergrootte (wydte en hoogte)." #: ../data/org.gnome.Music.gschema.xml.h:3 msgid "Window position" msgstr "Vensterposisie" #: ../data/org.gnome.Music.gschema.xml.h:4 msgid "Window position (x and y)." msgstr "Vensterposisie (X en Y)." #: ../data/org.gnome.Music.gschema.xml.h:5 msgid "Window maximized" msgstr "Venster-maksimeringstoestand" #: ../data/org.gnome.Music.gschema.xml.h:6 msgid "Window maximized state." msgstr "Of die venster gemaksimeer is." #: ../data/org.gnome.Music.gschema.xml.h:7 msgid "Playback repeat mode" msgstr "Speelherhaalmodus" #: ../data/org.gnome.Music.gschema.xml.h:8 msgid "" "Value identifies whether to repeat or randomize playback through the " "collection. Allowed values are: \"none\", \"song\", \"all\", \"shuffle\"." msgstr "" "Die waarde bepaal of die versameling lukraak of herhalend gespeel word. " "Waardes wat toegelaat word, is: \"none\", \"song\", \"all\", \"shuffle\"." #: ../data/org.gnome.Music.gschema.xml.h:9 msgid "Search mode" msgstr "Soekmodus" #: ../data/org.gnome.Music.gschema.xml.h:10 msgid "If true, the search bar is shown." msgstr "Indien waar, word die soekbalk vertoon." #: ../data/gnome-music.desktop.in.h:1 ../gnomemusic/application.py:46 #: ../gnomemusic/application.py:102 ../gnomemusic/window.py:54 #: ../data/AboutDialog.ui.in.h:1 msgid "Music" msgstr "Musiek" #: ../data/gnome-music.desktop.in.h:2 msgid "Music Player" msgstr "Musiekspeler" #: ../data/gnome-music.desktop.in.h:3 ../data/gnome-music.appdata.xml.in.h:2 msgid "Play and organize your music collection" msgstr "Speel en organiseer u musiekversameling" #: ../data/gnome-music.appdata.xml.in.h:1 msgid "GNOME Music" msgstr "GNOME Musiek" #: ../data/gnome-music.appdata.xml.in.h:3 msgid "Music is the new GNOME music playing application." msgstr "Musiek is GNOME se musiekspeelprogram." #: ../gnomemusic/albumArtCache.py:235 msgid "Untitled" msgstr "Naamloos" #: ../gnomemusic/notification.py:70 msgid "Not playing" msgstr "Speel nie tans nie" #: ../gnomemusic/notification.py:77 ../gnomemusic/player.py:350 #: ../gnomemusic/view.py:229 ../gnomemusic/view.py:377 #: ../gnomemusic/view.py:591 msgid "Unknown Artist" msgstr "Onbekende kunstenaar" #: ../gnomemusic/notification.py:79 ../gnomemusic/view.py:475 msgid "Unknown Album" msgstr "Onbekende album" #. TRANSLATORS: by refers to the artist, from to the album #: ../gnomemusic/notification.py:83 #, python-format msgid "by %s, from %s" msgstr "deur %s, uit %s" #: ../gnomemusic/notification.py:123 msgid "Previous" msgstr "Vorige" #: ../gnomemusic/notification.py:126 msgid "Pause" msgstr "Pouseer" #: ../gnomemusic/notification.py:129 msgid "Play" msgstr "Speel" #: ../gnomemusic/notification.py:131 msgid "Next" msgstr "Volgende" #: ../gnomemusic/view.py:294 #, python-format msgid "" "No Music found!\n" " Put some files into the folder %s" msgstr "" "Geen musiek is opgespoor nie!\n" " Plaas musieklêers in die gids %s" #: ../gnomemusic/view.py:301 msgid "Albums" msgstr "Albums" #: ../gnomemusic/view.py:333 msgid "Songs" msgstr "Liedjies" #: ../gnomemusic/view.py:484 msgid "Playlists" msgstr "Speellyste" #: ../gnomemusic/view.py:490 msgid "Artists" msgstr "Kunstenaars" #: ../gnomemusic/view.py:526 ../gnomemusic/view.py:528 #: ../gnomemusic/widgets.py:443 msgid "All Artists" msgstr "Alle kunstenaars" #: ../gnomemusic/widgets.py:73 ../gnomemusic/widgets.py:93 msgid "Load More" msgstr "Laai meer" #: ../gnomemusic/widgets.py:83 msgid "Loading..." msgstr "Laai tans..." #: ../gnomemusic/window.py:165 msgid "Empty" msgstr "Leeg" #: ../data/AboutDialog.ui.in.h:2 msgid "Copyright © 2013 GNOME Music Developers" msgstr "Kopiereg © 2013 GNOME-musiek se ontwikkelaars" #: ../data/AboutDialog.ui.in.h:3 msgid "A music player and management application for GNOME." msgstr "'n Program vir die speel en bestuur van musiek vir GNOME." #: ../data/AboutDialog.ui.in.h:4 msgid "Visit GNOME Music website" msgstr "Besoek GNOME-musiek se webwerf" #: ../data/AboutDialog.ui.in.h:5 msgid "" "GNOME Music 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.\n" "\n" "GNOME Music 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.\n" "\n" "You should have received a copy of the GNU General Public License along with " "GNOME Music; if not, write to the Free Software Foundation, Inc., 51 " "Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" "\n" "The GNOME Music authors hereby grant permission for non-GPL compatible " "GStreamer plugins to be used and distributed together with GStreamer and " "GNOME Music. This permission is above and beyond the permissions granted by " "the GPL license by which GNOME Music is covered. If you modify this code, " "you may extend this exception to your version of the code, but you are not " "obligated to do so. If you do not wish to do so, delete this exception " "statement from your version." msgstr "" #: ../data/AlbumWidget.ui.h:1 msgid "Released" msgstr "Vrygestel" #: ../data/AlbumWidget.ui.h:2 msgid "Running Length" msgstr "Speeltyd" #: ../data/app-menu.ui.h:1 msgid "_New Playlist" msgstr "_Nuwe speellys" #: ../data/app-menu.ui.h:2 msgid "_Now Playing" msgstr "Speel _tans" #: ../data/app-menu.ui.h:3 msgid "_About Music" msgstr "_Aangaande Musiek" #: ../data/app-menu.ui.h:4 msgid "_Quit" msgstr "_Sluit af" #: ../data/PlayerToolbar.ui.h:1 msgid "Shuffle" msgstr "Skommel" #: ../data/PlayerToolbar.ui.h:2 msgid "Repeat All" msgstr "Herhaal almal" #: ../data/PlayerToolbar.ui.h:3 msgid "Repeat Song" msgstr "Herhaal liedjie" #: ../data/PlayerToolbar.ui.h:4 msgid "Shuffle/Repeat Off" msgstr "Skommel/Herhaal afgeskakel" #: ../data/NoMusic.ui.h:1 msgid "No Music Found" msgstr "Geen musiek gevind nie" #: ../data/headerbar.ui.in.h:1 msgid "Select All" msgstr "Selekteer almal" #: ../data/headerbar.ui.in.h:2 msgid "Select None" msgstr "Selekteer geen" #: ../data/headerbar.ui.in.h:3 msgid "Click on items to select them" msgstr "Klik op items om hulle te selekteer" #: ../data/headerbar.ui.in.h:4 msgid "Cancel" msgstr "Kanselleer" #: ../data/SelectionToolbar.ui.h:1 msgid "Add to Playlist" msgstr "Voeg by speellys" 070701000000D7000081A400000000000000000000000166968E4E00003854000000000000000000000000000000000000001A00000000gnome-music-46.1/po/an.po# Aragonese translation for gnome-music. # Copyright (C) 2014 gnome-music's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-music package. # jorgtum , 2014. # Daniel Martinez , 2014, 2015. # msgid "" msgstr "" "Project-Id-Version: gnome-music master\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" "music&keywords=I18N+L10N&component=general\n" "POT-Creation-Date: 2015-03-17 08:01+0000\n" "PO-Revision-Date: 2015-03-17 19:58+0100\n" "Last-Translator: Daniel Martinez \n" "Language-Team: Aragonés \n" "Language: an\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Gtranslator 2.91.6\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: ../data/org.gnome.Music.gschema.xml.h:1 msgid "Window size" msgstr "Grandaria d'a finestra" #: ../data/org.gnome.Music.gschema.xml.h:2 msgid "Window size (width and height)." msgstr "Grandaria d'a finestra (amplaria y altura)" #: ../data/org.gnome.Music.gschema.xml.h:3 msgid "Window position" msgstr "Posición d'a finestra" #: ../data/org.gnome.Music.gschema.xml.h:4 msgid "Window position (x and y)." msgstr "Posición d'a finestra (X e Y)." #: ../data/org.gnome.Music.gschema.xml.h:5 msgid "Window maximized" msgstr "Finestra maximizada" #: ../data/org.gnome.Music.gschema.xml.h:6 msgid "Window maximized state." msgstr "Estau maximizau d'a finestra" #: ../data/org.gnome.Music.gschema.xml.h:7 msgid "Playback repeat mode" msgstr "Modo de repetición d'a lista de reproducción" #. Translators: Don't translate allowed values, just the description in the brackets #: ../data/org.gnome.Music.gschema.xml.h:9 msgid "" "Value identifies whether to repeat or randomize playback through the " "collection. Allowed values are: \"none\" (repeat and shuffle are off), \"song" "\" (repeat current song), \"all\" (repeat playlist, no shuffle), \"shuffle" "\" (shuffle playlist, presumes repeat all)." msgstr "" "Valor que indica si cal repetir u aleatorizar a reproducción d'a colección. " "As valors admitidas son: \"garra\" (as opcions de repetir y mezclar son " "desactivadas), \"canta\" (repetir a canta actual), \"todas\" (repetir a " "lista de reproducción, sin mezclar), \"mezclar\" (mezclar a lista de " "reproducción, se repiten todas)." #: ../data/org.gnome.Music.gschema.xml.h:10 msgid "Search mode" msgstr "Modo de busca" #: ../data/org.gnome.Music.gschema.xml.h:11 msgid "If true, the search bar is shown." msgstr "Si ye cierto, s'amuestra a barra de busca." #: ../data/org.gnome.Music.gschema.xml.h:12 msgid "Notifications mode" msgstr "Modo de notificacions" #: ../data/org.gnome.Music.gschema.xml.h:13 msgid "Enables or disables playback notifications" msgstr "Activa u desactiva as notificacions d'a reproducción" #: ../data/org.gnome.Music.gschema.xml.h:14 msgid "Max chars to display in track name on Artist view" msgstr "" "Numero maximo de caracters que amostrar d'o nombre d'a pista en a vista " "d'artista" #: ../data/org.gnome.Music.gschema.xml.h:15 msgid "" "This setting modifies the amount of chars for track title on Artist view " "before its been ellipsized. Set this to -1 to disable" msgstr "" "Ista valor modifica a cantidat de caracters que amostrar d'o titol d'a pista " "en a vista d'artista antes de retallar-lo. Establir a -1 ta desactivar-lo" #: ../data/org.gnome.Music.gschema.xml.h:16 msgid "Enable ReplayGain" msgstr "Activar ReplayGain" #: ../data/org.gnome.Music.gschema.xml.h:17 msgid "Enables or disables ReplayGain for albums" msgstr "Activa u desactiva ReplayGain ta os albums" #: ../data/gnome-music.desktop.in.h:1 ../gnomemusic/application.py:50 #: ../gnomemusic/application.py:113 ../gnomemusic/window.py:59 #: ../data/AboutDialog.ui.in.h:1 msgid "Music" msgstr "Mosica" #: ../data/gnome-music.desktop.in.h:2 msgid "Music Player" msgstr "Reproductor de mosica" #: ../data/gnome-music.desktop.in.h:3 ../data/gnome-music.appdata.xml.in.h:2 msgid "Play and organize your music collection" msgstr "Reproducir y organizar a tuya colección de mosica" #: ../data/gnome-music.desktop.in.h:4 msgid "Music;Player;" msgstr "Mosica;Reproductor;" #: ../data/gnome-music.appdata.xml.in.h:1 msgid "GNOME Music" msgstr "Mosica de GNOME" #: ../data/gnome-music.appdata.xml.in.h:3 msgid "Music is the new GNOME music playing application." msgstr "Mosica ye a nueva aplicación de reproducción de mosica de GNOME." #: ../gnomemusic/albumArtCache.py:103 ../gnomemusic/albumArtCache.py:111 msgid "Untitled" msgstr "Sin titol" #: ../gnomemusic/mpris.py:148 ../gnomemusic/notification.py:100 #: ../gnomemusic/player.py:470 ../gnomemusic/view.py:537 #: ../gnomemusic/view.py:968 ../gnomemusic/view.py:1387 msgid "Unknown Album" msgstr "Album desconoixiu" #: ../gnomemusic/mpris.py:164 ../gnomemusic/notification.py:98 #: ../gnomemusic/player.py:461 ../gnomemusic/view.py:222 #: ../gnomemusic/view.py:437 ../gnomemusic/view.py:710 #: ../gnomemusic/view.py:1150 ../gnomemusic/view.py:1385 #: ../gnomemusic/view.py:1421 ../gnomemusic/widgets.py:235 #: ../gnomemusic/widgets.py:631 msgid "Unknown Artist" msgstr "Artista desconoixiu" #: ../gnomemusic/notification.py:89 msgid "Not playing" msgstr "No reproducindo" #. TRANSLATORS: by refers to the artist, from to the album #: ../gnomemusic/notification.py:104 #, python-format msgid "by %s, from %s" msgstr "por %s, en %s" #: ../gnomemusic/notification.py:125 ../data/PlayerToolbar.ui.h:5 msgid "Previous" msgstr "Anterior" #: ../gnomemusic/notification.py:128 ../gnomemusic/player.py:418 msgid "Pause" msgstr "Pausa" #: ../gnomemusic/notification.py:131 ../gnomemusic/player.py:421 #: ../data/PlayerToolbar.ui.h:6 msgid "Play" msgstr "Reproducir" #: ../gnomemusic/notification.py:133 ../data/PlayerToolbar.ui.h:7 msgid "Next" msgstr "Siguient" #. TRANSLATORS: this is a playlist name #: ../gnomemusic/playlists.py:49 msgid "Most Played" msgstr "Mas reproducidas" #. TRANSLATORS: this is a playlist name #: ../gnomemusic/playlists.py:56 msgid "Never Played" msgstr "No reproducidas nunca" #. TRANSLATORS: this is a playlist name #: ../gnomemusic/playlists.py:63 msgid "Recently Played" msgstr "Reproducidas recientment" #. TRANSLATORS: this is a playlist name #: ../gnomemusic/playlists.py:70 msgid "Recently Added" msgstr "Adhibidas recientment" #. TRANSLATORS: this is a playlist name #: ../gnomemusic/playlists.py:77 msgid "Favorite Songs" msgstr "Cantas favoritas" #. TRANSLATORS: _("the") should be a space-separated list of all-lowercase articles #. (such as 'the') that should be ignored when alphabetizing artists/albums. This #. list should include 'the' regardless of language. If some articles occur more #. frequently than others, most common should appear first, least common last. #: ../gnomemusic/query.py:69 msgid "the a an" msgstr "o la los las un un una" #: ../gnomemusic/searchbar.py:58 ../gnomemusic/searchbar.py:101 msgid "All" msgstr "Todas" #: ../gnomemusic/searchbar.py:59 msgid "Artist" msgstr "Artista" #: ../gnomemusic/searchbar.py:60 msgid "Album" msgstr "Album" #: ../gnomemusic/searchbar.py:61 msgid "Track Title" msgstr "Titol d'a pista" #: ../gnomemusic/searchbar.py:102 msgid "Local" msgstr "Local" #: ../gnomemusic/searchbar.py:204 msgid "Sources" msgstr "Fuents" #: ../gnomemusic/searchbar.py:211 msgid "Match" msgstr "Concidencia" #: ../gnomemusic/view.py:190 ../gnomemusic/widgets.py:267 #: ../gnomemusic/widgets.py:508 ../gnomemusic/window.py:292 #, python-format msgid "Selected %d item" msgid_plural "Selected %d items" msgstr[0] "%d elemento trigau" msgstr[1] "%d elementos trigaus" #: ../gnomemusic/view.py:192 ../gnomemusic/widgets.py:269 #: ../gnomemusic/widgets.py:510 ../gnomemusic/window.py:296 #: ../gnomemusic/window.py:308 ../data/headerbar.ui.h:3 msgid "Click on items to select them" msgstr "Preta sobre os elementos ta trigar-los" #: ../gnomemusic/view.py:279 ../gnomemusic/view.py:1645 msgid "Albums" msgstr "Albums" #: ../gnomemusic/view.py:371 ../gnomemusic/view.py:1647 msgid "Songs" msgstr "Cantas" #: ../gnomemusic/view.py:569 ../gnomemusic/view.py:1646 msgid "Artists" msgstr "Artistas" #: ../gnomemusic/view.py:615 ../gnomemusic/view.py:617 #: ../gnomemusic/widgets.py:517 msgid "All Artists" msgstr "Totz os artistas" #: ../gnomemusic/view.py:795 ../gnomemusic/view.py:1648 msgid "Playlists" msgstr "Lista de reproducción" #: ../gnomemusic/view.py:1161 #, python-format msgid "%d Song" msgid_plural "%d Songs" msgstr[0] "%d canta" msgstr[1] "%d cantas" #: ../gnomemusic/widgets.py:308 ../gnomemusic/widgets.py:342 #, python-format msgid "%d min" msgstr "%d min" #: ../gnomemusic/widgets.py:755 msgid "New Playlist" msgstr "Nueva lista de reproducción" #: ../gnomemusic/window.py:240 msgid "Empty" msgstr "Vuedo" #: ../gnomemusic/window.py:320 #| msgid "Loading..." msgid "Loading" msgstr "Cargando" #: ../gnomemusic/window.py:335 msgid "_Undo" msgstr "_Desfer" #: ../gnomemusic/window.py:336 #, python-format msgid "Playlist %s removed" msgstr "Lista de reproducción %s eliminada" #: ../data/AboutDialog.ui.in.h:2 msgid "Copyright © 2013 GNOME Music Developers" msgstr "Dreitos d'autor © 2013 Desembolicadors de Mosica de GNOME" #: ../data/AboutDialog.ui.in.h:3 msgid "A music player and management application for GNOME." msgstr "Una aplicación de reproducción y administración de mosica ta lo GNOME." #: ../data/AboutDialog.ui.in.h:4 msgid "Visit GNOME Music website" msgstr "Visitar a pachina web d'a mosica de GNOME" #: ../data/AboutDialog.ui.in.h:5 msgid "" "GNOME Music 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.\n" "\n" "GNOME Music 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.\n" "\n" "You should have received a copy of the GNU General Public License along with " "GNOME Music; if not, write to the Free Software Foundation, Inc., 51 " "Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" "\n" "The GNOME Music authors hereby grant permission for non-GPL compatible " "GStreamer plugins to be used and distributed together with GStreamer and " "GNOME Music. This permission is above and beyond the permissions granted by " "the GPL license by which GNOME Music is covered. If you modify this code, " "you may extend this exception to your version of the code, but you are not " "obligated to do so. If you do not wish to do so, delete this exception " "statement from your version." msgstr "" "Mosica de GNOME ye software libre; puetz redistribuir-lo y/u modificar-lo " "baixo os termins d'a Licencia Publica Cheneral GNU tal como la publica a " "Free Software Foundation; ya siga en a versión 2 d'a Licencia, como (a la " "tuya esleción) qualsiquier atra versión posterior.\n" "\n" "Mosica de GNOME se distribuye con o afán que te será util, pero SIN GARRA " "GUARENCIA; sin mesmo a guarencia implicita de MERCANTILIDAT u IDONEIDAT TA " "UN PROPOSITO DETERMINAU. Vei a Licencia Publica Cheneral de GNU ta mas " "detalles.\n" "\n" "Habrías d'haber recibiu una copia d'a Licencia Publica Cheneral GNU chunto a " "Mosica si no, escribe a la Free Software Foundation,Inc., 51 Franklin " "Street, Fifth Floor, Boston, MA 02110-1301 EE. UU.\n" "\n" "Os autors de Mosica de GNOME conceden permiso ta usar y distribuir " "complementos de GStreamer no compatibles con a GPL. Iste permiso ye por " "dencima y dillá d'os permisos concedius por a GPL, por a quala Mosica de " "GNOME ye cubierta. Si modificas iste codigo, puetz enamplar ista excepción a " "la tuya versión d'o codigo, pero no yes obligau a fer-lo. Si no quiers fer-" "lo, elimina ista sentencia d'excepción d'a tuya versión." #: ../data/AlbumWidget.ui.h:1 msgid "Released" msgstr "Liberau" #: ../data/AlbumWidget.ui.h:2 msgid "Running Length" msgstr "Durada d'a reproducción" #: ../data/app-menu.ui.h:1 msgid "_Help" msgstr "Ad_uya" #: ../data/app-menu.ui.h:2 msgid "_About" msgstr "_Arredol de" #: ../data/app-menu.ui.h:3 msgid "_Quit" msgstr "_Salir" #: ../data/PlayerToolbar.ui.h:1 msgid "Shuffle" msgstr "Aleatorio" #: ../data/PlayerToolbar.ui.h:2 msgid "Repeat All" msgstr "Repetir-lo tot" #: ../data/PlayerToolbar.ui.h:3 msgid "Repeat Song" msgstr "Repetir a canta" #: ../data/PlayerToolbar.ui.h:4 msgid "Shuffle/Repeat Off" msgstr "Mezclar/no repetir" #: ../data/NoMusic.ui.h:1 msgid "No music found" msgstr "No s'ha trobau mosica" #: ../data/NoMusic.ui.h:2 msgid "The contents of your music folder will appear here." msgstr "O conteniu d'a suya carpeta de mosica amaneixerá aquí." #: ../data/headerbar.ui.h:1 msgid "Select All" msgstr "Seleccionar-lo tot" #: ../data/headerbar.ui.h:2 msgid "Select None" msgstr "No seleccionar garra" #: ../data/headerbar.ui.h:4 msgid "Search" msgstr "Mirar" #: ../data/headerbar.ui.h:5 ../data/PlaylistDialog.ui.h:3 msgid "Select" msgstr "Trigar" #: ../data/headerbar.ui.h:6 ../data/PlaylistDialog.ui.h:2 msgid "Cancel" msgstr "Cancelar" #: ../data/headerbar.ui.h:7 msgid "Back" msgstr "Atrás" #: ../data/SelectionToolbar.ui.h:1 msgid "Add to Playlist" msgstr "Adhibir-ne a la lista de reproducción" #: ../data/SelectionToolbar.ui.h:2 msgid "Remove from Playlist" msgstr "Sacar d'a lista de reproducción" #: ../data/PlaylistControls.ui.h:1 msgid "_Play" msgstr "Re_producir" #: ../data/PlaylistControls.ui.h:2 msgid "_Delete" msgstr "_Eliminar" #: ../data/PlaylistControls.ui.h:3 msgid "Playlist Name" msgstr "Nombre d'a lista de reproducción" #: ../data/PlaylistDialog.ui.h:1 msgid "Select Playlist" msgstr "Trigar lista de reproducción" #~ msgid "Internal: id for most played playlist" #~ msgstr "Interno: ID ta la lista de reproducción de cantas mas reproducidas" #~ msgid "" #~ "No Music found!\n" #~ " Put some files into the folder %s" #~ msgstr "" #~ "No s'ha trobau mosica!\n" #~ " Mete bells fichers en a carpeta %s" #~ msgid "Load More" #~ msgstr "Cargar-ne mas" #~ msgid "_New Playlist" #~ msgstr "_Nueva lista de reproducción" #~ msgid "Now _Playing" #~ msgstr "Reproduci_ndo agora" 070701000000D8000081A400000000000000000000000166968E4E000031E4000000000000000000000000000000000000001A00000000gnome-music-46.1/po/ar.po# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Translators: # aldileroi , 2014. # Safa Alfulaij , 2014. msgid "" msgstr "" "Project-Id-Version: Gnome 3.12\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" "music&keywords=I18N+L10N&component=general\n" "POT-Creation-Date: 2014-07-16 18:53+0000\n" "PO-Revision-Date: 2014-07-16 23:42+0300\n" "Last-Translator: Safa Alfulaij \n" "Language-Team: Arabic \n" "Language: ar\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "language/ar/)\n" "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " "&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" "X-Generator: Lokalize 1.5\n" #: ../data/org.gnome.Music.gschema.xml.h:1 msgid "Window size" msgstr "حجم النافذة" #: ../data/org.gnome.Music.gschema.xml.h:2 msgid "Window size (width and height)." msgstr "حجم النافذة (العرض والارتفاع)." #: ../data/org.gnome.Music.gschema.xml.h:3 msgid "Window position" msgstr "موضع النافذة" #: ../data/org.gnome.Music.gschema.xml.h:4 msgid "Window position (x and y)." msgstr "موضع النافذة (x و y)." #: ../data/org.gnome.Music.gschema.xml.h:5 msgid "Window maximized" msgstr "النافذة مُكبّرة" #: ../data/org.gnome.Music.gschema.xml.h:6 msgid "Window maximized state." msgstr "حالة تكبير النافذة." #: ../data/org.gnome.Music.gschema.xml.h:7 msgid "Playback repeat mode" msgstr "وضع تكرار التشغيل" #. Translators: Don't translate allowed values, just the description in the brackets #: ../data/org.gnome.Music.gschema.xml.h:9 msgid "" "Value identifies whether to repeat or randomize playback through the " "collection. Allowed values are: \"none\" (repeat and shuffle are off), \"song" "\" (repeat current song), \"all\" (repeat playlist, no shuffle), \"shuffle" "\" (shuffle playlist, presumes repeat all)." msgstr "" "قيمة تحدّد فيما إذا كان التكرار بطريقة عشوائية أو من خلال تشغيل المجموعة. " "القيم المسموح بها هي: \"none\" (التكرار والخلط معطّلان)، \"song\" (تكرار " "الأغنية الحالية)، \"all\" (تكرار قائمة الأغاني، لا خلط)، \"shuffle\" (خلط " "قائمة الأغاني، يفترض تكرار كل شيء)." #: ../data/org.gnome.Music.gschema.xml.h:10 msgid "Search mode" msgstr "وضع البحث" #: ../data/org.gnome.Music.gschema.xml.h:11 msgid "If true, the search bar is shown." msgstr "إذا كان صحيحًا، سيظهر شريط البحث." #: ../data/gnome-music.desktop.in.h:1 ../gnomemusic/application.py:50 #: ../gnomemusic/application.py:112 ../gnomemusic/window.py:62 #: ../data/AboutDialog.ui.in.h:1 msgid "Music" msgstr "موسيقى" #: ../data/gnome-music.desktop.in.h:2 msgid "Music Player" msgstr "مشغّل الموسيقى" #: ../data/gnome-music.desktop.in.h:3 ../data/gnome-music.appdata.xml.in.h:2 msgid "Play and organize your music collection" msgstr "شغل ونظّم مجموعتك الموسيقية" #: ../data/gnome-music.appdata.xml.in.h:1 msgid "GNOME Music" msgstr "موسيقى جنوم" #: ../data/gnome-music.appdata.xml.in.h:3 msgid "Music is the new GNOME music playing application." msgstr "موسيقى هو تطبيق جنوم لتشغيل الموسيقى الجديد." #: ../gnomemusic/albumArtCache.py:100 ../gnomemusic/albumArtCache.py:108 msgid "Untitled" msgstr "غير معنون" #: ../gnomemusic/mpris.py:133 ../gnomemusic/notification.py:100 #: ../gnomemusic/player.py:400 ../gnomemusic/view.py:577 #: ../gnomemusic/view.py:964 ../gnomemusic/view.py:1291 msgid "Unknown Album" msgstr "ألبوم مجهول" #: ../gnomemusic/mpris.py:149 ../gnomemusic/notification.py:98 #: ../gnomemusic/player.py:391 ../gnomemusic/view.py:286 #: ../gnomemusic/view.py:486 ../gnomemusic/view.py:720 #: ../gnomemusic/view.py:1068 ../gnomemusic/view.py:1289 #: ../gnomemusic/view.py:1320 ../gnomemusic/widgets.py:184 #: ../gnomemusic/widgets.py:563 msgid "Unknown Artist" msgstr "فنّان مجهول" #: ../gnomemusic/notification.py:89 msgid "Not playing" msgstr "متوقّف" #. TRANSLATORS: by refers to the artist, from to the album #: ../gnomemusic/notification.py:104 #, python-format msgid "by %s, from %s" msgstr "أدّاها %s، من %s" #: ../gnomemusic/notification.py:128 ../data/PlayerToolbar.ui.h:5 msgid "Previous" msgstr "السابقة" #: ../gnomemusic/notification.py:131 ../gnomemusic/player.py:348 msgid "Pause" msgstr "ألبِث" #: ../gnomemusic/notification.py:134 ../gnomemusic/player.py:351 #: ../data/PlayerToolbar.ui.h:6 msgid "Play" msgstr "شغّل" #: ../gnomemusic/notification.py:136 ../data/PlayerToolbar.ui.h:7 msgid "Next" msgstr "التالية" #: ../gnomemusic/searchbar.py:30 ../gnomemusic/searchbar.py:73 msgid "All" msgstr "الكلّ" #: ../gnomemusic/searchbar.py:31 msgid "Artist" msgstr "الفنّان" #: ../gnomemusic/searchbar.py:32 msgid "Album" msgstr "الألبوم" #: ../gnomemusic/searchbar.py:33 msgid "Track Title" msgstr "عنوان المقطوعة" #: ../gnomemusic/searchbar.py:74 msgid "Local" msgstr "المحليّ" #: ../gnomemusic/searchbar.py:176 msgid "Sources" msgstr "المصادر" #: ../gnomemusic/searchbar.py:183 msgid "Match" msgstr "طابق" #: ../gnomemusic/view.py:201 ../gnomemusic/widgets.py:225 #: ../gnomemusic/widgets.py:442 ../gnomemusic/window.py:278 #, python-format msgid "Selected %d item" msgid_plural "Selected %d items" msgstr[0] "لا عناصر محدّدة (%d)" msgstr[1] "عنصر واحد محدّد (%d)" msgstr[2] "عنصران محدّدان (%d)" msgstr[3] "%d عناصر محدّدة" msgstr[4] "%d عنصرًا محدّدًا" msgstr[5] "%d عنصر محدّد" #: ../gnomemusic/view.py:203 ../gnomemusic/widgets.py:227 #: ../gnomemusic/widgets.py:444 ../gnomemusic/window.py:282 #: ../gnomemusic/window.py:294 ../data/headerbar.ui.h:3 msgid "Click on items to select them" msgstr "انقر على العناصر لتحديدها" #: ../gnomemusic/view.py:340 #, python-format msgid "" "No Music found!\n" " Put some files into the folder %s" msgstr "" "لم يُعثر على موسيقى!\n" " ضع بعض الملفات في المجلد %s" #: ../gnomemusic/view.py:348 ../gnomemusic/view.py:1535 msgid "Albums" msgstr "الألبومات" #: ../gnomemusic/view.py:430 ../gnomemusic/view.py:1537 msgid "Songs" msgstr "الأغاني" #: ../gnomemusic/view.py:594 ../gnomemusic/view.py:1536 msgid "Artists" msgstr "الفنّانون" #: ../gnomemusic/view.py:639 ../gnomemusic/view.py:641 #: ../gnomemusic/widgets.py:451 msgid "All Artists" msgstr "كلّ الفنانين" #: ../gnomemusic/view.py:800 ../gnomemusic/view.py:1538 msgid "Playlists" msgstr "قوائم التشغيل" #: ../gnomemusic/view.py:1080 #, python-format msgid "%d Song" msgid_plural "%d Songs" msgstr[0] "لا أغاني (%d)" msgstr[1] "أغنية واحدة (%d)" msgstr[2] "أغنيتان (%d)" msgstr[3] "%d أغاني" msgstr[4] "%d أغنية" msgstr[5] "%d أغنية" #: ../gnomemusic/widgets.py:677 msgid "New Playlist" msgstr "قائمة تشغيل جديدة" #: ../gnomemusic/window.py:226 msgid "Empty" msgstr "فارغ" #: ../data/AboutDialog.ui.in.h:2 msgid "Copyright © 2013 GNOME Music Developers" msgstr "حقوق النسخ © 2013 مطوّرو موسيقى جنوم" #: ../data/AboutDialog.ui.in.h:3 msgid "A music player and management application for GNOME." msgstr "برمجية جنوم لتشغيل الموسيقى وإدارتها." #: ../data/AboutDialog.ui.in.h:4 msgid "Visit GNOME Music website" msgstr "زُر موقع وِب موسيقى جنوم" #: ../data/AboutDialog.ui.in.h:5 msgid "" "GNOME Music 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.\n" "\n" "GNOME Music 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.\n" "\n" "You should have received a copy of the GNU General Public License along with " "GNOME Music; if not, write to the Free Software Foundation, Inc., 51 " "Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" "\n" "The GNOME Music authors hereby grant permission for non-GPL compatible " "GStreamer plugins to be used and distributed together with GStreamer and " "GNOME Music. This permission is above and beyond the permissions granted by " "the GPL license by which GNOME Music is covered. If you modify this code, " "you may extend this exception to your version of the code, but you are not " "obligated to do so. If you do not wish to do so, delete this exception " "statement from your version." msgstr "" "موسيقى جنوم برنامج حر؛ بإمكانك إعادة توزيعه و/أو تعديله تحت شروط الرخصة " "العمومية العامة لجنو والتي نشرتها منظمة البرمجيات الحرة؛ سواء الإصدارة 2 من " "الرخصة أو أي إصدارة بعدها حسب رغبتك.\n" "\n" "يوزّع موسيقى جنوم على أمل أن يكون مفيدًا لمن يستخدمه، دون أدنى مسؤولية؛ ولا " "حتى أي ضمان يضمن صلاحية العرض في السوق أو توافقه مع أي استخدام محدد. يمكنك " "مراجعة الرخصة العمومية العامة لجنو لمزيد من التفاصيل.\n" "\n" "من المفترض أن تكون قد استلمت نسخة من رخصة جنو العامةمع موسيقى جنوم؛ في حال " "عدم استلامك لذلك، يمكنك مكاتبة:\n" "Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA " "02110-1301 USA.\n" "\n" "يمنح كاتبو موسيقى جنوم إذن استخدام ملحقات GStreamer غير المتوافقة مع GPL " "وتوزيعها مع GStreamer وموسيقى جنوم. هذا الإذن هو تجاوز للأذون الممنوحة من " "رخصة GPL التي أُصدر موسيقى جنوم بها. إن عدّلت هذه الشِفرة، قد ترغب بتوسيع هذا " "الاستثناء إلى إصدار الشِفرة خاصّتك، ولكنك لست ملزمًا بذلك. إن لم ترغب بذلك، " "احذف بيان الاستثناء هذا من الإصدار خاصّتك." #: ../data/AlbumWidget.ui.h:1 msgid "Released" msgstr "أُصدر في" #: ../data/AlbumWidget.ui.h:2 msgid "Running Length" msgstr "طول التشغيل" #: ../data/app-menu.ui.h:1 msgid "_New Playlist" msgstr "قائمة تشغيل _جديدة" #: ../data/app-menu.ui.h:2 msgid "_Help" msgstr "م_ساعدة" #: ../data/app-menu.ui.h:3 msgid "_About" msgstr "_عنْ" #: ../data/app-menu.ui.h:4 msgid "_Quit" msgstr "أ_نهِ" #: ../data/PlayerToolbar.ui.h:1 msgid "Shuffle" msgstr "اخلط" #: ../data/PlayerToolbar.ui.h:2 msgid "Repeat All" msgstr "كرّر الكلّ" #: ../data/PlayerToolbar.ui.h:3 msgid "Repeat Song" msgstr "كرّر الأغنية" #: ../data/PlayerToolbar.ui.h:4 msgid "Shuffle/Repeat Off" msgstr "أوقف الخلط/التكرار" #: ../data/NoMusic.ui.h:1 msgid "No Music Found" msgstr "لم يُعثر على موسيقى" #: ../data/headerbar.ui.h:1 msgid "Select All" msgstr "حدّد الكلّ" #: ../data/headerbar.ui.h:2 msgid "Select None" msgstr "حدّد لا شيء" #: ../data/headerbar.ui.h:4 msgid "Search" msgstr "ابحث" #: ../data/headerbar.ui.h:5 ../data/PlaylistDialog.ui.h:3 msgid "Select" msgstr "اختر" #: ../data/headerbar.ui.h:6 ../data/PlaylistDialog.ui.h:2 msgid "Cancel" msgstr "ألغِ" #: ../data/headerbar.ui.h:7 msgid "Back" msgstr "ارجع" #: ../data/SelectionToolbar.ui.h:1 msgid "Add to Playlist" msgstr "أضف إلى قائمة التشغيل" #: ../data/SelectionToolbar.ui.h:2 msgid "Remove from Playlist" msgstr "أزِل من قائمة التشغيل" #: ../data/PlaylistControls.ui.h:1 msgid "_Play" msgstr "_شغّل" #: ../data/PlaylistControls.ui.h:2 msgid "_Delete" msgstr "اح_ذف" #: ../data/PlaylistDialog.ui.h:1 msgid "Select Playlist" msgstr "اختر قائمة تشغيل" #~ msgid "Load More" #~ msgstr "تحميل المزيد" #~ msgid "Loading..." #~ msgstr "تحميل ..." 070701000000D9000081A400000000000000000000000166968E4E00003B31000000000000000000000000000000000000001A00000000gnome-music-46.1/po/as.po# Assamese translation for gnome-music. # Copyright (C) 2013 gnome-music's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-music package. # # ngoswami , 2013, 2014. msgid "" msgstr "" "Project-Id-Version: gnome-music master\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" "music&keywords=I18N+L10N&component=general\n" "POT-Creation-Date: 2014-08-14 06:56+0000\n" "PO-Revision-Date: 2014-08-14 17:58+0530\n" "Last-Translator: Nilamdyuti Goswami \n" "Language-Team: Assamese \n" "Language: as\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Lokalize 1.5\n" #: ../data/org.gnome.Music.gschema.xml.h:1 msgid "Window size" msgstr "উইন্ডোৰ আকাৰ" #: ../data/org.gnome.Music.gschema.xml.h:2 msgid "Window size (width and height)." msgstr "উইন্ডোৰ আকাৰ (প্ৰস্থ আৰু উচ্চতা)" #: ../data/org.gnome.Music.gschema.xml.h:3 msgid "Window position" msgstr "উইন্ডোৰ অৱস্থান" #: ../data/org.gnome.Music.gschema.xml.h:4 msgid "Window position (x and y)." msgstr "উইন্ডোৰ অৱস্থান (x আৰু y)।" #: ../data/org.gnome.Music.gschema.xml.h:5 msgid "Window maximized" msgstr "উইন্ডোৰ সৰ্বাধিক আকাৰ" #: ../data/org.gnome.Music.gschema.xml.h:6 msgid "Window maximized state." msgstr "উইন্ডোৰ সৰ্বাধিক আকাৰ অৱস্থা।" #: ../data/org.gnome.Music.gschema.xml.h:7 msgid "Playback repeat mode" msgstr "প্লেবেক পুনৰাবৃত্তি অৱস্থা" #. Translators: Don't translate allowed values, just the description in the brackets #: ../data/org.gnome.Music.gschema.xml.h:9 msgid "" "Value identifies whether to repeat or randomize playback through the " "collection. Allowed values are: \"none\" (repeat and shuffle are off), \"song" "\" (repeat current song), \"all\" (repeat playlist, no shuffle), \"shuffle" "\" (shuffle playlist, presumes repeat all)." msgstr "" "মানে চিনাক্ত কৰে সংগ্ৰহৰে প্লেবেক পুনৰাবৃত্তি কৰা হব নে যাদৃচ্ছিক কৰা হব। " "অনুমোদিত " "মান: \"none\" (পুনৰাবৃত্তি আৰু ছাফল বন্ধ থাকে), \"song\" (বৰ্তমান গীতৰ " "পুনৰাবৃত্তি), " "\"all\" (প্লেলিস্টৰ পুনৰাবৃত্তি, ছাফল নাই), \"shuffle\" (প্লেলিস্ট ছাফল কৰক, " "পুনৰাবৃত্তি ভাৱি লয়)।" #: ../data/org.gnome.Music.gschema.xml.h:10 msgid "Search mode" msgstr "সন্ধান অৱস্থা" #: ../data/org.gnome.Music.gschema.xml.h:11 msgid "If true, the search bar is shown." msgstr "যদি সত্য, সন্ধান বাৰ দেখুৱা হয়।" #: ../data/gnome-music.desktop.in.h:1 ../gnomemusic/application.py:50 #: ../gnomemusic/application.py:112 ../gnomemusic/window.py:62 #: ../data/AboutDialog.ui.in.h:1 msgid "Music" msgstr "সংগীত" #: ../data/gnome-music.desktop.in.h:2 msgid "Music Player" msgstr "সংগীত প্লেয়াৰ" #: ../data/gnome-music.desktop.in.h:3 ../data/gnome-music.appdata.xml.in.h:2 msgid "Play and organize your music collection" msgstr "আপোনাৰ সংগীত সংগ্ৰহ বজাওক আৰু সংগঠিত কৰক" #: ../data/gnome-music.appdata.xml.in.h:1 msgid "GNOME Music" msgstr "GNOME সংগীত" #: ../data/gnome-music.appdata.xml.in.h:3 msgid "Music is the new GNOME music playing application." msgstr "সংগীত হল নতুন GNOME সংগীত বজোৱা এপ্লিকেচন।" #: ../gnomemusic/albumArtCache.py:100 ../gnomemusic/albumArtCache.py:108 msgid "Untitled" msgstr "শীৰ্ষকহীন" #: ../gnomemusic/mpris.py:133 ../gnomemusic/notification.py:100 #: ../gnomemusic/player.py:400 ../gnomemusic/view.py:577 #: ../gnomemusic/view.py:964 ../gnomemusic/view.py:1291 msgid "Unknown Album" msgstr "অজ্ঞাত এলবাম" #: ../gnomemusic/mpris.py:149 ../gnomemusic/notification.py:98 #: ../gnomemusic/player.py:391 ../gnomemusic/view.py:286 #: ../gnomemusic/view.py:486 ../gnomemusic/view.py:720 #: ../gnomemusic/view.py:1068 ../gnomemusic/view.py:1289 #: ../gnomemusic/view.py:1320 ../gnomemusic/widgets.py:184 #: ../gnomemusic/widgets.py:563 msgid "Unknown Artist" msgstr "অজ্ঞাত শিল্পী" #: ../gnomemusic/notification.py:89 msgid "Not playing" msgstr "বজোৱা নাই" #. TRANSLATORS: by refers to the artist, from to the album #: ../gnomemusic/notification.py:104 #, python-format msgid "by %s, from %s" msgstr "%s দ্বাৰা, %s ৰ পৰা" #: ../gnomemusic/notification.py:130 ../data/PlayerToolbar.ui.h:5 msgid "Previous" msgstr "পূৰ্বৱৰ্তী" #: ../gnomemusic/notification.py:133 ../gnomemusic/player.py:348 msgid "Pause" msgstr "বিৰাম দিয়ক" #: ../gnomemusic/notification.py:136 ../gnomemusic/player.py:351 #: ../data/PlayerToolbar.ui.h:6 msgid "Play" msgstr "বজাওক" #: ../gnomemusic/notification.py:138 ../data/PlayerToolbar.ui.h:7 msgid "Next" msgstr "পৰৱৰ্তী" #: ../gnomemusic/searchbar.py:30 ../gnomemusic/searchbar.py:73 msgid "All" msgstr "সকলো" #: ../gnomemusic/searchbar.py:31 #| msgid "Artists" msgid "Artist" msgstr "শিল্পী" #: ../gnomemusic/searchbar.py:32 #| msgid "Albums" msgid "Album" msgstr "এলবাম" #: ../gnomemusic/searchbar.py:33 msgid "Track Title" msgstr "ট্ৰেকৰ শীৰ্ষক" #: ../gnomemusic/searchbar.py:74 msgid "Local" msgstr "স্থানীয়" #: ../gnomemusic/searchbar.py:176 msgid "Sources" msgstr "উৎসসমূহ" #: ../gnomemusic/searchbar.py:183 msgid "Match" msgstr "মিল" #: ../gnomemusic/view.py:201 ../gnomemusic/widgets.py:225 #: ../gnomemusic/widgets.py:442 ../gnomemusic/window.py:278 #, python-format msgid "Selected %d item" msgid_plural "Selected %d items" msgstr[0] "নিৰ্বাচিত %d বস্তু" msgstr[1] "নিৰ্বাচিত %d বস্তুবোৰ" #: ../gnomemusic/view.py:203 ../gnomemusic/widgets.py:227 #: ../gnomemusic/widgets.py:444 ../gnomemusic/window.py:282 #: ../gnomemusic/window.py:294 ../data/headerbar.ui.h:3 msgid "Click on items to select them" msgstr "বস্তুবোৰ নিৰ্বাচন কৰিবলৈ সিহতক ক্লিক কৰক" #: ../gnomemusic/view.py:340 #, python-format msgid "" "No Music found!\n" " Put some files into the folder %s" msgstr "" "কোনো সংগীত পোৱা নগল!\n" " ফোল্ডাৰ %s ত কিছুমান ফাইল থওক" #: ../gnomemusic/view.py:348 ../gnomemusic/view.py:1535 msgid "Albums" msgstr "এলবামসমূহ" #: ../gnomemusic/view.py:430 ../gnomemusic/view.py:1537 msgid "Songs" msgstr "সংগীতবোৰ" #: ../gnomemusic/view.py:594 ../gnomemusic/view.py:1536 msgid "Artists" msgstr "শিল্পীসকল" #: ../gnomemusic/view.py:639 ../gnomemusic/view.py:641 #: ../gnomemusic/widgets.py:451 msgid "All Artists" msgstr "সকলো শিল্পী" #: ../gnomemusic/view.py:800 ../gnomemusic/view.py:1538 msgid "Playlists" msgstr "প্লেলিস্টসমূহ" #: ../gnomemusic/view.py:1080 #, python-format #| msgid "Songs" msgid "%d Song" msgid_plural "%d Songs" msgstr[0] "%d গান" msgstr[1] "%d গানসমূহ" #: ../gnomemusic/widgets.py:273 ../gnomemusic/widgets.py:311 #, python-format msgid "%d min" msgstr "%d মিন" #: ../gnomemusic/widgets.py:677 #| msgid "_New Playlist" msgid "New Playlist" msgstr "নতুন প্লেলিস্ট" #: ../gnomemusic/window.py:226 msgid "Empty" msgstr "ৰিক্ত" #: ../data/AboutDialog.ui.in.h:2 msgid "Copyright © 2013 GNOME Music Developers" msgstr "স্বত্বাধিকাৰ © ২০১৩ GNOME সংগীত উন্নয়নকাৰীসকল" #: ../data/AboutDialog.ui.in.h:3 msgid "A music player and management application for GNOME." msgstr "GNOME ৰ বাবে এটা সংগীত প্লেয়াৰ আৰু ব্যৱস্থাপনা এপ্লিকেচন।" #: ../data/AboutDialog.ui.in.h:4 msgid "Visit GNOME Music website" msgstr "GNOME সংগীত ৱেবছাইটলৈ যাওক" #: ../data/AboutDialog.ui.in.h:5 msgid "" "GNOME Music 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.\n" "\n" "GNOME Music 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.\n" "\n" "You should have received a copy of the GNU General Public License along with " "GNOME Music; if not, write to the Free Software Foundation, Inc., 51 " "Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" "\n" "The GNOME Music authors hereby grant permission for non-GPL compatible " "GStreamer plugins to be used and distributed together with GStreamer and " "GNOME Music. This permission is above and beyond the permissions granted by " "the GPL license by which GNOME Music is covered. If you modify this code, " "you may extend this exception to your version of the code, but you are not " "obligated to do so. If you do not wish to do so, delete this exception " "statement from your version." msgstr "" "GNOME সংগীত এটা বিনামুলিয়া চফ্টৱেৰ; আপুনি Free Software Foundation ৰ দ্বাৰা " "প্ৰকাশিত GNU General Public License ৰ চুক্তিসমূহৰ অন্তৰ্গত ইয়াক পুনৰ বিলাব " "পাৰিব " "অথবা সলনি কৰিব পাৰিব; হৈতো অনুজ্ঞাৰ সংস্কৰণ ২, অথবা (আপুনাৰ বিকল্পত) যিকোনো " "পৰৱৰ্তী সংস্কৰণ।\n" "\n" "GNOME সংগীত এইটো আশাত বিলোৱা হৈছে যে ই ব্যৱহাৰযোগ্য হ'ব, কিন্তু কোনো ৱাৰেন্টি " "নথকাকৈ; ব্যৱসায়ীক অথবা কোনো এটা বিশেষ কাৰণৰ যোগ্যতাৰ বাবে বুজুৱা ৱাৰেন্টি " "নথকাকৈ। অধিক জানিবলৈ GNU General Public License চাওক। \n" "\n" "আপুনি হৈতো ইতিমধ্যে GNOME সংগীতৰ সৈতে GNU General Public License ৰ কপি এটা " "পাইছে। যদি নাই , Free Software Foundation, Inc., 51 Franklin Street, Fifth " "Floor, Boston, MA 02110-1301, USA লৈ লিখক।\n" "\n" "GNOME সংগীত লেখকসকলে ইয়াৰ দ্বাৰা GStreamer আৰু GNOME সংগীতৰ সৈতে non-GPL সংগত " "GStreamer প্লাগিনসমূহ ব্যৱহাৰ আৰু একেলগে বিতৰণ কৰাৰ অনুমতি দিছে। এই অনুমতি " "GNOME " "সংগীতক অনুজ্ঞিত কৰা GPL অনুজ্ঞা দ্বাৰা প্ৰদান কৰা অনুমতিসমূহৰ ওপৰত আৰু অধিক " "বিস্তাৰিত। " "যদি আপুনি এই ক'ড পৰিবৰ্তন কৰে, আপুনি এই ব্যতিক্ৰমক আপোনাৰ ক'ডৰ সংস্কৰণলৈ " "প্ৰসাৰন " "কৰিব পাৰে, কিন্তু আপুনি এনেকুৱা কৰিবলৈ বাধ্য নহয়। যদি আপুনি এনেকুৱা কৰিব " "নিবিচাৰে, " "এই ব্যতিক্ৰম বিবৃতিক আপোনাৰ সংস্কৰণৰ পৰা মচি পেলাব।" #: ../data/AlbumWidget.ui.h:1 msgid "Released" msgstr "উন্মোচিত" #: ../data/AlbumWidget.ui.h:2 msgid "Running Length" msgstr "চলাৰ দৈৰ্ঘ্য" #: ../data/app-menu.ui.h:1 msgid "_New Playlist" msgstr "নতুন প্লেলিস্ট (_N)" #: ../data/app-menu.ui.h:2 msgid "_Help" msgstr "সহায় (_H)" #: ../data/app-menu.ui.h:3 msgid "_About" msgstr "বিষয়ে (_A)" #: ../data/app-menu.ui.h:4 msgid "_Quit" msgstr "প্ৰস্থান কৰক (_Q)" #: ../data/PlayerToolbar.ui.h:1 msgid "Shuffle" msgstr "সানমিহলি কৰক" #: ../data/PlayerToolbar.ui.h:2 msgid "Repeat All" msgstr "সকলো পুনৰাবৃত্তি কৰক" #: ../data/PlayerToolbar.ui.h:3 msgid "Repeat Song" msgstr "গান পুনৰ বজাওক" #: ../data/PlayerToolbar.ui.h:4 msgid "Shuffle/Repeat Off" msgstr "সানমিহলি/পুনৰাবৃত্তি বন্ধ" #: ../data/NoMusic.ui.h:1 msgid "No Music Found" msgstr "কোনো সংগীত পোৱা নগল" #: ../data/headerbar.ui.h:1 msgid "Select All" msgstr "সকলো বাছক" #: ../data/headerbar.ui.h:2 msgid "Select None" msgstr "একো নাবাছিব" #: ../data/headerbar.ui.h:4 #| msgid "Search mode" msgid "Search" msgstr "সন্ধান কৰক" #: ../data/headerbar.ui.h:5 ../data/PlaylistDialog.ui.h:3 #| msgid "Select All" msgid "Select" msgstr "বাছক" #: ../data/headerbar.ui.h:6 ../data/PlaylistDialog.ui.h:2 msgid "Cancel" msgstr "বাতিল কৰক" #: ../data/headerbar.ui.h:7 msgid "Back" msgstr "পিছলৈ" #: ../data/SelectionToolbar.ui.h:1 msgid "Add to Playlist" msgstr "প্লেলিস্টলৈ যোগ কৰক" #: ../data/SelectionToolbar.ui.h:2 #| msgid "Add to Playlist" msgid "Remove from Playlist" msgstr "প্লেলিস্টৰ পৰা আতৰাওক" #: ../data/PlaylistControls.ui.h:1 #| msgid "Play" msgid "_Play" msgstr "বজাওক (_P)" #: ../data/PlaylistControls.ui.h:2 msgid "_Delete" msgstr "মচি পেলাওক (_D)" #: ../data/PlaylistDialog.ui.h:1 #| msgid "Select All" msgid "Select Playlist" msgstr "প্লেলিস্ট বাছক" #~ msgid "Load More" #~ msgstr "অধিক ল'ড কৰক" #~ msgid "Loading..." #~ msgstr "ল'ড কৰা হৈছে..." #~| msgid "_Now Playing" #~ msgid "Now _Playing" #~ msgstr "এতিয়া বজোৱা হৈছে (_P)" 070701000000DA000081A400000000000000000000000166968E4E000062E0000000000000000000000000000000000000001A00000000gnome-music-46.1/po/be.po# Belarusian translation for gnome-music. # Copyright (C) 2013 gnome-music's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-music package. # Ihar Hrachyshka , 2013, 2014. # Yuras Shumovich , 2017. # msgid "" msgstr "" "Project-Id-Version: gnome-music master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-music/issues\n" "POT-Creation-Date: 2024-02-11 20:43+0000\n" "PO-Revision-Date: 2024-02-19 21:53+0300\n" "Last-Translator: Yuras Shumovich \n" "Language-Team: Belarusian \n" "Language: be\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Generator: Poedit 3.4.2\n" #: data/org.gnome.Music.appdata.xml.in.in:6 #: data/org.gnome.Music.desktop.in.in:3 data/ui/StatusNavigationPage.ui:4 #: gnomemusic/about.py:138 gnomemusic/application.py:59 gnomemusic/window.py:65 msgid "Music" msgstr "Музыка" #: data/org.gnome.Music.appdata.xml.in.in:7 #: data/org.gnome.Music.desktop.in.in:5 msgid "Play and organize your music collection" msgstr "Прайграванне і ўпарадкаванне музычнай калекцыі" #: data/org.gnome.Music.appdata.xml.in.in:9 msgid "An easy and pleasant way to play your music." msgstr "Просты і прыемны спосаб слухаць музыку." #: data/org.gnome.Music.appdata.xml.in.in:12 msgid "" "Find tracks in your local collection, use automatically generated playlists " "or curate a fresh one." msgstr "" "Шукайце трэкі ў сваёй лакальнай калекцыі, карыстайцеся аўтаматычна " "згенерыраванымі спісамі прайгравання або дадайце ўласны." #. developer_name tag deprecated with Appstream 1.0 #: data/org.gnome.Music.appdata.xml.in.in:188 msgid "The GNOME Music developers" msgstr "Распрацоўшчыкі «Музыка GNOME»" #: data/org.gnome.Music.desktop.in.in:4 msgid "Music Player" msgstr "Музычны прайгравальнік" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Music.desktop.in.in:13 msgid "Music;Player;" msgstr "Music;Player;Музыка;Музычны;Прайгравальнік;Плэер;" #: data/org.gnome.Music.gschema.xml:12 msgid "Window size" msgstr "Памер акна" #: data/org.gnome.Music.gschema.xml:13 msgid "Window size (width and height)." msgstr "Памер акна (шырыня і вышыня)." #: data/org.gnome.Music.gschema.xml:17 msgid "Window maximized" msgstr "Разгортванне акна" #: data/org.gnome.Music.gschema.xml:18 msgid "Window maximized state." msgstr "Стан акна – разгорнута." #: data/org.gnome.Music.gschema.xml:22 msgid "Playback repeat mode" msgstr "Рэжым паўтору прайгравання" #. Translators: Don't translate allowed values, just the description in the brackets #: data/org.gnome.Music.gschema.xml:24 msgid "" "Value identifies whether to repeat or randomize playback through the " "collection. Allowed values are: “none” (repeat and shuffle are off), " "“song” (repeat current song), “all” (repeat playlist, no shuffle), " "“shuffle” (shuffle playlist, presumes repeat all)." msgstr "" "Значэнне ключа вызначае, ці трэба паўтараць або выпадкова прайграваць " "музычную калекцыю. Магчымыя значэнні: «none» (паўтор і выпадковае " "прайграванне выключаны), «song» (паўтор бягучай песні), «all» (паўтор " "спіса прайгравання без выпадковасці) і «shuffle» (выпадковае прайграванне " "спіса, магчыма з паўторам)." #: data/org.gnome.Music.gschema.xml:28 data/ui/PreferencesDialog.ui:27 msgid "Enable ReplayGain" msgstr "Уключыць ReplayGain" #: data/org.gnome.Music.gschema.xml:29 msgid "Enables or disables ReplayGain for albums" msgstr "Уключыць або адключыць ReplayGain для альбомаў" #: data/org.gnome.Music.gschema.xml:33 msgid "Inhibit system suspend" msgstr "Блакіраваць прыпыненне працы камп'ютара" #: data/org.gnome.Music.gschema.xml:34 msgid "Enables or disables inhibiting system suspend while playing music" msgstr "" "Уключыць або адключыць блакіраванне прыпынення працы падчас прайгравання " "музыкі" #: data/ui/AlbumsSearchNavigationPage.ui:5 data/ui/SearchView.ui:98 #: gnomemusic/views/albumsview.py:52 msgid "Albums" msgstr "Альбомы" #: data/ui/AlbumWidget.ui:84 data/ui/PlayerToolbar.ui:87 #: data/ui/PlaylistControls.ui:101 gnomemusic/widgets/playertoolbar.py:176 msgid "Play" msgstr "Прайграваць" #: data/ui/AlbumWidget.ui:130 data/ui/PlaylistControls.ui:5 #: data/ui/SongWidgetMenu.ui:11 msgid "_Play" msgstr "_Прайграваць" #: data/ui/AlbumWidget.ui:134 msgid "Add to _Favorite Songs" msgstr "Дадаць у _Абраныя песні" #: data/ui/AlbumWidget.ui:138 data/ui/SongWidgetMenu.ui:15 msgid "_Add to Playlist…" msgstr "_Дадаць у спіс прайгравання…" #: data/ui/ArtistsSearchNavigationPage.ui:5 data/ui/SearchView.ui:41 #: gnomemusic/views/artistsview.py:51 msgid "Artists" msgstr "Выканаўцы" #: data/ui/HeaderBar.ui:14 msgid "Menu" msgstr "Меню" #: data/ui/HeaderBar.ui:22 data/ui/SearchHeaderBar.ui:12 msgid "Search" msgstr "Пошук" #: data/ui/HeaderBar.ui:31 data/ui/PreferencesDialog.ui:4 msgid "Preferences" msgstr "Налады" #: data/ui/HeaderBar.ui:35 msgid "Keyboard Shortcuts" msgstr "Спалучэнні клавіш" #: data/ui/HeaderBar.ui:39 msgid "Help" msgstr "Даведка" #: data/ui/HeaderBar.ui:43 msgid "About Music" msgstr "Аб праграме" #: data/ui/help-overlay.ui:11 msgctxt "shortcut window" msgid "General" msgstr "Агульныя" #: data/ui/help-overlay.ui:14 msgctxt "shortcut window" msgid "Close window" msgstr "Закрыць акно" #: data/ui/help-overlay.ui:20 msgctxt "shortcut window" msgid "Search" msgstr "Пошук" #: data/ui/help-overlay.ui:26 msgctxt "shortcut window" msgid "Help" msgstr "Даведка" #: data/ui/help-overlay.ui:32 msgctxt "shortcut window" msgid "Shortcuts" msgstr "Спалучэнні клавіш" #: data/ui/help-overlay.ui:40 msgctxt "shortcut window" msgid "Playback" msgstr "Прайграванне" #: data/ui/help-overlay.ui:43 msgctxt "shortcut window" msgid "Play/Pause" msgstr "Прайграванне/паўза" #: data/ui/help-overlay.ui:49 msgctxt "shortcut window" msgid "Next song" msgstr "Наступная песня" #: data/ui/help-overlay.ui:55 msgctxt "shortcut window" msgid "Previous song" msgstr "Папярэдняя песня" #: data/ui/help-overlay.ui:61 msgctxt "shortcut window" msgid "Toggle repeat" msgstr "Укл/выкл паўтор" #: data/ui/help-overlay.ui:67 msgctxt "shortcut window" msgid "Toggle shuffle" msgstr "Укл/выкл тасаванне" #: data/ui/help-overlay.ui:75 msgctxt "shortcut window" msgid "Navigation" msgstr "Навігацыя" #: data/ui/help-overlay.ui:78 msgctxt "shortcut window" msgid "Go to Albums" msgstr "Перайсці да альбомаў" #: data/ui/help-overlay.ui:84 msgctxt "shortcut window" msgid "Go to Artists" msgstr "Перайсці да выканаўцаў" #: data/ui/help-overlay.ui:90 msgctxt "shortcut window" msgid "Go to Songs" msgstr "Перайсці да песень" #: data/ui/help-overlay.ui:96 msgctxt "shortcut window" msgid "Go to Playlists" msgstr "Перайсці да спісаў прайгравання" #: data/ui/help-overlay.ui:102 msgctxt "shortcut window" msgid "Go back" msgstr "Назад" #: data/ui/PlayerToolbar.ui:74 msgid "Previous" msgstr "Папярэдні" #: data/ui/PlayerToolbar.ui:106 msgid "Next" msgstr "Наступны" #: data/ui/PlaylistControls.ui:9 msgid "_Delete" msgstr "_Выдаліць" #: data/ui/PlaylistControls.ui:13 msgid "_Rename…" msgstr "_Перайменаваць…" #: data/ui/PlaylistControls.ui:28 msgid "Playlist Name" msgstr "Назва спіса прайгравання" #: data/ui/PlaylistControls.ui:62 msgid "_Done" msgstr "_Гатова" #: data/ui/PlaylistDialog.ui:16 msgid "Add to Playlist" msgstr "Дадаць у спіс прайгравання" #: data/ui/PlaylistDialog.ui:27 msgid "_Cancel" msgstr "_Скасаваць" #: data/ui/PlaylistDialog.ui:36 msgid "_Add" msgstr "_Дадаць" #: data/ui/PlaylistDialog.ui:91 msgid "Enter a name for your first playlist" msgstr "Увядзіце назву вашага першага спіса прайгравання" #: data/ui/PlaylistDialog.ui:116 msgid "C_reate" msgstr "С_тварыць" #: data/ui/PlaylistDialog.ui:177 msgid "New Playlist…" msgstr "Новы спіс прайгравання…" #: data/ui/PlaylistDialog.ui:189 msgid "Add" msgstr "Дадаць" #: data/ui/PreferencesDialog.ui:9 msgid "Player Settings" msgstr "Налады прайгравальніка" #: data/ui/PreferencesDialog.ui:12 msgid "Repeat Mode" msgstr "Паўтор" #: data/ui/PreferencesDialog.ui:16 msgid "None" msgstr "Няма" #: data/ui/PreferencesDialog.ui:17 msgid "Song" msgstr "Песня" #: data/ui/PreferencesDialog.ui:18 msgid "All" msgstr "Усе" #: data/ui/PreferencesDialog.ui:19 gnomemusic/player.py:51 msgid "Shuffle" msgstr "Выпадковы парадак" #: data/ui/PreferencesDialog.ui:28 msgid "Balance loudness between songs if ReplayGain metadata is found" msgstr "" "Выраўноўваць узровень гучнасці паміж песнямі, калі знойдзены метаданыя " "ReplayGain" #: data/ui/PreferencesDialog.ui:35 msgid "Power Settings" msgstr "Налады сілкавання" #: data/ui/PreferencesDialog.ui:38 msgid "Inhibit Suspend" msgstr "Блакіраваць прыпыненне працы камп'ютара" #: data/ui/PreferencesDialog.ui:39 msgid "Only while playing" msgstr "Толькі падчас прайгравання" #: data/ui/SearchView.ui:55 data/ui/SearchView.ui:112 msgid "View All" msgstr "Усе" #: data/ui/SearchView.ui:154 msgid "Songs" msgstr "Песні" #: data/ui/SongWidgetMenu.ui:19 msgid "_Remove from Playlist" msgstr "_Выдаліць са спіса прайгравання" #: data/ui/StatusNavigationPage.ui:36 msgid "Welcome to Music" msgstr "Вітаем у праграме Музыка" #: gnomemusic/about.py:140 msgid "The GNOME Project" msgstr "Праект GNOME" #. Translators should localize the following string which #. will be displayed at the bottom of the about box to give #. credit to the translator(s). #: gnomemusic/about.py:146 msgid "translator-credits" msgstr "Юрась Шумовіч " #: gnomemusic/about.py:150 msgid "© The GNOME Music Developers" msgstr "© Распрацоўшчыкі «Музыка GNOME»" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:839 msgid "Most Played" msgstr "Найчасцей прайгранае" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:893 msgid "Never Played" msgstr "Ніколі не прайгранае" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:946 msgid "Recently Played" msgstr "Нядаўна прайгранае" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1025 msgid "Recently Added" msgstr "Нядаўна дададзенае" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1088 msgid "Favorite Songs" msgstr "Абраныя песні" #. TRANSLATORS: this is a playlist name indicating that the #. files are not tagged enough to be displayed in the albums #. or artists views. #: gnomemusic/grilowrappers/grltrackerplaylists.py:1142 msgid "Insufficiently Tagged" msgstr "Не хапае тэгаў" #: gnomemusic/gstplayer.py:418 msgid "Unable to play the file" msgstr "Не ўдалося прайграць гэты файл" #: gnomemusic/gstplayer.py:424 msgid "_Find in {}" msgstr "_Шукаць у {}" #. TRANSLATORS: separator for two codecs #: gnomemusic/gstplayer.py:434 msgid " and " msgstr " і " #. TRANSLATORS: separator for a list of codecs #: gnomemusic/gstplayer.py:437 msgid ", " msgstr ", " #: gnomemusic/gstplayer.py:439 msgid "{} is required to play the file, but is not installed." msgid_plural "{} are required to play the file, but are not installed." msgstr[0] "Каб прайграць гэты файл, патрабуецца {}, але ён не ўсталяваны." msgstr[1] "Каб прайграць гэты файл, патрабуюцца {}, але яны не ўсталяваны." msgstr[2] "Каб прайграць гэты файл, патрабуюцца {}, але яны не ўсталяваны." #: gnomemusic/inhibitsuspend.py:69 msgid "Playing music" msgstr "Прайграванне музыкі" #. Translators: "shuffle" causes tracks to play in random order. #: gnomemusic/player.py:48 msgid "Shuffle/Repeat Off" msgstr "Выпадковы парадак і паўтор выключаны" #: gnomemusic/player.py:49 msgid "Repeat Song" msgstr "Паўтараць песню" #: gnomemusic/player.py:50 msgid "Repeat All" msgstr "Паўтараць усё" #: gnomemusic/playlisttoast.py:55 msgid "Playlist {} removed" msgstr "Спіс прайгравання {} выдалены" #: gnomemusic/playlisttoast.py:56 gnomemusic/songtoast.py:65 msgid "Undo" msgstr "Адрабіць" #: gnomemusic/songtoast.py:64 msgid "{} removed from {}" msgstr "{} выдалена з {}" #: gnomemusic/utils.py:89 msgid "Unknown album" msgstr "Невядомы альбом" #: gnomemusic/utils.py:110 msgid "Unknown Artist" msgstr "Невядомы выканаўца" #: gnomemusic/views/playlistsview.py:45 msgid "Playlists" msgstr "Спісы прайгравання" #: gnomemusic/views/searchview.py:220 msgid "No Search Started" msgstr "Пошук не запушчаны" #: gnomemusic/views/searchview.py:222 msgid "Use the searchbar to start searching for albums, artists or songs" msgstr "" "Выкарыстоўвайце панэль пошуку, каб пачаць пошук альбомаў, выканаўцаў і песень" #: gnomemusic/views/searchview.py:226 msgid "No Results Found" msgstr "Нічога не знойдзена" #: gnomemusic/views/searchview.py:228 msgid "Try a different search" msgstr "Паспрабуйце іншы пошукавы запыт" #: gnomemusic/widgets/albumwidget.py:230 msgid "{} minute" msgid_plural "{} minutes" msgstr[0] "{} хвіліна" msgstr[1] "{} хвіліны" msgstr[2] "{} хвілін" #: gnomemusic/widgets/discbox.py:74 msgid "Disc {}" msgstr "Дыск {}" #: gnomemusic/widgets/playertoolbar.py:173 msgid "Pause" msgstr "Прыпыніць" #: gnomemusic/widgets/playlistcontrols.py:130 msgid "{} Song" msgid_plural "{} Songs" msgstr[0] "{} песня" msgstr[1] "{} песні" msgstr[2] "{} песень" #: gnomemusic/widgets/searchheaderbar.py:50 msgid "Search songs, artists and albums" msgstr "Пошук песень, выканаўцаў і альбомаў" #. noqa: F841 #: gnomemusic/widgets/songwidgetmenu.py:94 msgid "_Open Location" msgstr "Адкрыць месца _размяшчэння" #. TRANSLATORS: These are verbs, to (un)mark something as a #. favorite. #: gnomemusic/widgets/startoggle.py:36 msgid "Unstar" msgstr "Выдаліць з абранага" #: gnomemusic/widgets/startoggle.py:36 msgid "Star" msgstr "Дадаць у абранае" #: gnomemusic/widgets/statusnavigationpage.py:51 msgid "Your XDG Music directory is not set." msgstr "Каталог Музыкі XDG не зададзены." #: gnomemusic/widgets/statusnavigationpage.py:58 msgid "Music Folder" msgstr "папкі Музыка" #. TRANSLATORS: This is a label to display a link to open user's music #. folder. {} will be replaced with the translated text 'Music folder' #: gnomemusic/widgets/statusnavigationpage.py:66 msgid "The contents of your {} will appear here." msgstr "Тут будзе паказвацца змесціва з {}." #: gnomemusic/widgets/statusnavigationpage.py:116 msgid "No Music Found" msgstr "Музыка не знойдзена" #: gnomemusic/widgets/statusnavigationpage.py:117 msgid "Try a Different Search" msgstr "Паспрабуйце іншы пошукавы запыт" #: gnomemusic/widgets/statusnavigationpage.py:121 msgid "GNOME Music could not connect to Tracker." msgstr "Музыцы GNOME не ўдалося падлучыцца да Tracker." #: gnomemusic/widgets/statusnavigationpage.py:123 msgid "Your music files cannot be indexed without Tracker running." msgstr "Немагчыма праіндэксаваць музычныя файлы, калі не запушчаны Tracker." #: gnomemusic/widgets/statusnavigationpage.py:129 msgid "Your system Tracker version seems outdated." msgstr "Магчыма, што ў вашай сістэме састарэлая версія Tracker." #: gnomemusic/widgets/statusnavigationpage.py:131 msgid "Music needs Tracker version 3.0.0 or higher." msgstr "Патрабуецца Tracker версіі 3.0.0 або навейшай." #~ msgid "Report music history to Last.fm" #~ msgstr "Адпраўляць гісторыю праслуханай музыкі на Last.fm" #~ msgid "" #~ "Enables or disables sending scrobbles and the “currently playing” info to " #~ "Last.fm." #~ msgstr "" #~ "Уключыць або адключыць адпраўку музыкальнага профілю і звестак, якая " #~ "песня «прайграецца зараз» на Last.fm." #~ msgid "Last.fm Account" #~ msgstr "Уліковы запіс Last.fm" #~ msgid "Report Music Listening" #~ msgstr "Адпраўляць гісторыю праслуханай музыкі" #~ msgid "_Help" #~ msgstr "_Даведка" #~ msgid "Select" #~ msgstr "Выбраць" #~ msgid "Back" #~ msgstr "Назад" #~ msgid "" #~ "Last.fm is a music discovery service that gives you personalised " #~ "recommendations based on the music you listen to." #~ msgstr "" #~ "Last.fm — гэта сэрвіс пошуку музыкі, які дае асабістыя рэкамендацыі, " #~ "заснаваныя на праслуханай вамі музыцы." #~ msgid "Music Reporting Not Setup" #~ msgstr "Адпраўка звестак пра музыку не наладжана" #~ msgid "Login to your Last.fm account to report your music listening." #~ msgstr "" #~ "Увайдзіце ў свой уліковы запіс Last.fm, каб адпраўляць гісторыю " #~ "праслуханай музыкі." #~ msgid "Login" #~ msgstr "Увайсці" #~ msgid "Select All" #~ msgstr "Вылучыць усё" #~ msgid "Select None" #~ msgstr "Скасаваць вылучэнне" #~ msgid "Click on items to select them" #~ msgstr "Каб вылучыць аб'екты, пстрыкайце ў іх" #~ msgid "_Add to Playlist" #~ msgstr "_Дадаць у спіс прайгравання" #~ msgid "Copyright The GNOME Music Developers" #~ msgstr "Аўтарскае права Распрацоўшчыкі «Музыка GNOME»" #~ msgid "Translated by" #~ msgstr "Пераклад" #~ msgid "Artists Results" #~ msgstr "Знойдзеныя выканаўцы" #~ msgid "Albums Results" #~ msgstr "Знойдзеныя альбомы" #~ msgid "Selected {} song" #~ msgid_plural "Selected {} songs" #~ msgstr[0] "Выбрана {} песня" #~ msgstr[1] "Выбрана {} песні" #~ msgstr[2] "Выбрана {} песень" #~ msgid "Your music listening is reported to Last.fm." #~ msgstr "Ваша гісторыя праслухвання адпраўлена на Last.fm." #~ msgid "Your music listening is not reported to Last.fm." #~ msgstr "Ваша гісторыя праслухвання не адпраўлена на Last.fm." #~ msgid "Logged in as {}" #~ msgstr "Вы ўвайшлі як {}" #~ msgid "Configure" #~ msgstr "Наладзіць" #~ msgid "GNOME Music" #~ msgstr "Музыка GNOME" #~ msgid "Window position" #~ msgstr "Становішча акна" #~ msgid "Window position (x and y)." #~ msgstr "Становішча акна (x, y)." #~ msgid "Copyright © 2018 GNOME Music Developers" #~ msgstr "Аўтарскае права © 2018 Распрацоўшчыкі «Музыка GNOME»" #~ msgid "A music player and management application for GNOME." #~ msgstr "Музычны прайгравальнік і праграма кіравання музыкай для GNOME." #~ msgid "Visit GNOME Music website" #~ msgstr "Наведаць сайт праграмы Музыка GNOME" #~ msgid "" #~ "GNOME Music 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.\n" #~ "\n" #~ "GNOME Music 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.\n" #~ "\n" #~ "You should have received a copy of the GNU General Public License along " #~ "with GNOME Music; if not, write to the Free Software Foundation, Inc., 51 " #~ "Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ "\n" #~ "The GNOME Music authors hereby grant permission for non-GPL compatible " #~ "GStreamer plugins to be used and distributed together with GStreamer and " #~ "GNOME Music. This permission is above and beyond the permissions granted " #~ "by the GPL license by which GNOME Music is covered. If you modify this " #~ "code, you may extend this exception to your version of the code, but you " #~ "are not obligated to do so. If you do not wish to do so, delete this " #~ "exception statement from your version." #~ msgstr "" #~ "Музыка GNOME з'яўляецца свабодным праграмным забеспячэннем. Вы можаце " #~ "распаўсюджваць гэту праграму згодна з умовамі Агульнай Грамадскай " #~ "Ліцэнзіі GNU (GPL), апублікаванай Фондам свабоднага праграмнага " #~ "забеспячэння, версіі 2 ці любой пазнейшай.\n" #~ "\n" #~ "Музыка GNOME распаўсюджваецца з надзеяй, што яна будзе карыснай, але без " #~ "ніякіх гарантый, у тым ліку камерцыйнай вартасці праграмы і наогул яе " #~ "карысці. Каб атрымаць больш інфармацыі глядзіце тэкст Агульнай " #~ "Грамадскай Ліцэнзіі GNU (GPL).\n" #~ "\n" #~ "Вы павінны былі атрымаць копію Агульнай Грамадскай Ліцэнзіі GNU (GPL) " #~ "разам з гэтай праграмай. Калі вы не атрымалі яе, паведаміце пра гэта " #~ "Фонду свабоднага праграмнага забеспячэння на адрас: the Free Software " #~ "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 " #~ "USA.\n" #~ "\n" #~ "Аўтары Музыкі GNOME даюць дазвол на распаўсюджванне ўбудоў GStreamer, не " #~ "сумяшчальных з GPL, разам з GStreamer і Музыкай GNOME. Гэты дазвол " #~ "носіць дадатковы характар і дапаўняе правы, гарантаваныя ліцэнзіяй GPL, " #~ "якая ахоўвае Музыку GNOME. Калі вы змяняеце гэты код, вы можаце " #~ "распаўсюдзіць гэты дазвол на вашу версію коду, хаця вы і не абавязаны " #~ "гэта рабіць. Калі вы не хочаце рабіць гэта, проста выдаліце тэкст гэтага " #~ "дадатковага дазволу." #~ msgid "Loading" #~ msgstr "Загрузка" #~ msgid "_Undo" #~ msgstr "_Адрабіць" #~ msgid "Add to Playlist…" #~ msgstr "Дадаць у спіс прайгравання…" #~ msgid "Remove From Playlist" #~ msgstr "Выдаліць са спіса прайгравання" 070701000000DB000081A400000000000000000000000166968E4E00004916000000000000000000000000000000000000001A00000000gnome-music-46.1/po/bg.po# Bulgarian translation for gnome-music po-file. # Copyright (C) 2016 Free Software Foundation, Inc. # Copyright (C) 2021, 2022 Alexander Shopov. # This file is distributed under the same license as the gnome-music package. # Hristo Kozhuharov "XTard" , 2016. # Alexander Shopov , 2021, 2022. # msgid "" msgstr "" "Project-Id-Version: gnome-music master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-music/issues\n" "POT-Creation-Date: 2022-09-11 18:29+0000\n" "PO-Revision-Date: 2022-09-12 22:56+0200\n" "Last-Translator: Alexander Shopov \n" "Language-Team: Bulgarian \n" "Language: bg\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: data/org.gnome.Music.appdata.xml.in.in:6 #: data/org.gnome.Music.desktop.in.in:3 gnomemusic/about.py:236 #: gnomemusic/application.py:61 gnomemusic/window.py:71 msgid "Music" msgstr "Музика" #: data/org.gnome.Music.appdata.xml.in.in:7 #: data/org.gnome.Music.desktop.in.in:5 msgid "Play and organize your music collection" msgstr "Слушайте и организирайте колекцията си от музика" #: data/org.gnome.Music.appdata.xml.in.in:9 msgid "An easy and pleasant way to play your music." msgstr "Лесен и удобен начин да слушате музика." #: data/org.gnome.Music.appdata.xml.in.in:12 msgid "" "Find tracks in your local collection, use automatically generated playlists " "or curate a fresh one." msgstr "" "Откриване на песни в локалната ви колекция, ползване на автоматично или " "ръчно създадени списъци за изпълнение." #: data/org.gnome.Music.appdata.xml.in.in:167 msgid "The GNOME Music developers" msgstr "Разработчиците на „Музика на GNOME“" #: data/org.gnome.Music.desktop.in.in:4 msgid "Music Player" msgstr "Изпълнение на музика" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Music.desktop.in.in:13 msgid "Music;Player;" msgstr "music;player;музика;плеър;песни;слуша;" #: data/org.gnome.Music.gschema.xml:12 msgid "Window size" msgstr "Размер на прозореца" #: data/org.gnome.Music.gschema.xml:13 msgid "Window size (width and height)." msgstr "Размер на прозореца (широчина и височина)." #: data/org.gnome.Music.gschema.xml:17 msgid "Window maximized" msgstr "Прозорецът е максимизиран" #: data/org.gnome.Music.gschema.xml:18 msgid "Window maximized state." msgstr "Прозорецът е в максимизирано състояние." #: data/org.gnome.Music.gschema.xml:22 msgid "Playback repeat mode" msgstr "Режим на повторение" #. Translators: Don't translate allowed values, just the description in the brackets #: data/org.gnome.Music.gschema.xml:24 msgid "" "Value identifies whether to repeat or randomize playback through the " "collection. Allowed values are: “none” (repeat and shuffle are off), " "“song” (repeat current song), “all” (repeat playlist, no shuffle), " "“shuffle” (shuffle playlist, presumes repeat all)." msgstr "" "Стойносттa определя дали да се повтарят или да се възпроизвеждат разбъркано " "нещата от колекцията. Позволени стойности са: „none“ (без повтаряне или " "разбъркване), „song“ (повтаряне на текущата песен), „all“ (повтаряне без " "разбъркване на списък за изпълнение) и „shuffle“ (повтаряне на списък за " "изпълнение с разбъркване)." #: data/org.gnome.Music.gschema.xml:28 msgid "Enable ReplayGain" msgstr "Включване на автоматичното регулиране на звука" #: data/org.gnome.Music.gschema.xml:29 msgid "Enables or disables ReplayGain for albums" msgstr "Позволяване или не на автоматичното регулиране на звука за албуми" #: data/org.gnome.Music.gschema.xml:33 msgid "Inhibit system suspend" msgstr "Предотвратяване на заспиване на системата" #: data/org.gnome.Music.gschema.xml:34 msgid "Enables or disables inhibiting system suspend while playing music" msgstr "" "Позволяване или не на заспиване на системата докато се изпълнява музика" #: data/org.gnome.Music.gschema.xml:38 msgid "Report music history to Last.fm" msgstr "Докладване на изпълняваната музика към Last.fm" #: data/org.gnome.Music.gschema.xml:39 msgid "" "Enables or disables sending scrobbles and the “currently playing” info to " "Last.fm." msgstr "" "Позволяване или не на пращане на информацията за слушаната музика към Last." "fm." #: data/ui/AlbumWidget.ui:84 data/ui/PlayerToolbar.ui:87 #: data/ui/PlaylistControls.ui:101 gnomemusic/widgets/playertoolbar.py:170 msgid "Play" msgstr "Изпълнение" #: data/ui/AlbumWidget.ui:130 data/ui/PlaylistControls.ui:5 #: data/ui/SongWidgetMenu.ui:11 msgid "_Play" msgstr "_Изпълнение" #: data/ui/AlbumWidget.ui:134 msgid "Add to _Favorite Songs" msgstr "Добавяне в любими песни…" #: data/ui/AlbumWidget.ui:138 data/ui/SongWidgetMenu.ui:15 msgid "_Add to Playlist…" msgstr "_Добавяне в списък…" #: data/ui/AppMenu.ui:23 data/ui/LastfmDialog.ui:8 msgid "Last.fm Account" msgstr "Регистрация за Last.fm" #: data/ui/AppMenu.ui:36 msgid "Report Music Listening" msgstr "Публикуване на слушаната музика" #: data/ui/AppMenu.ui:58 msgid "_Keyboard Shortcuts" msgstr "_Клавишни комбинации" #: data/ui/AppMenu.ui:68 msgid "_Help" msgstr "Помо_щ" #: data/ui/AppMenu.ui:78 msgid "_About Music" msgstr "_Относно „Музика“" #: data/ui/EmptyView.ui:30 msgid "Welcome to Music" msgstr "Добре дошли в „Музика“" #: data/ui/HeaderBar.ui:16 msgid "Menu" msgstr "Меню" #: data/ui/HeaderBar.ui:24 data/ui/SearchHeaderBar.ui:15 msgid "Select" msgstr "Избор" #: data/ui/HeaderBar.ui:30 data/ui/PlaylistDialog.ui:213 #: data/ui/SearchHeaderBar.ui:20 msgid "_Cancel" msgstr "_Отказ" #: data/ui/HeaderBar.ui:42 data/ui/SearchHeaderBar.ui:32 msgid "Search" msgstr "Търсене" #: data/ui/HeaderBar.ui:50 msgid "Back" msgstr "Назад" #: data/ui/help-overlay.ui:11 msgctxt "shortcut window" msgid "General" msgstr "Общи" #: data/ui/help-overlay.ui:14 msgctxt "shortcut window" msgid "Close window" msgstr "Затваряне на прозорец" #: data/ui/help-overlay.ui:20 msgctxt "shortcut window" msgid "Search" msgstr "Търсене" #: data/ui/help-overlay.ui:26 msgctxt "shortcut window" msgid "Help" msgstr "Помощ" #: data/ui/help-overlay.ui:32 msgctxt "shortcut window" msgid "Shortcuts" msgstr "Клавишни комбинации" #: data/ui/help-overlay.ui:40 msgctxt "shortcut window" msgid "Playback" msgstr "Изпълнение" #: data/ui/help-overlay.ui:43 msgctxt "shortcut window" msgid "Play/Pause" msgstr "Изпълнение/пауза" #: data/ui/help-overlay.ui:49 msgctxt "shortcut window" msgid "Next song" msgstr "Следваща песен" #: data/ui/help-overlay.ui:55 msgctxt "shortcut window" msgid "Previous song" msgstr "Предишна песен" #: data/ui/help-overlay.ui:61 msgctxt "shortcut window" msgid "Toggle repeat" msgstr "Повтаряне" #: data/ui/help-overlay.ui:67 msgctxt "shortcut window" msgid "Toggle shuffle" msgstr "Разбъркване" #: data/ui/help-overlay.ui:75 msgctxt "shortcut window" msgid "Navigation" msgstr "Навигация" #: data/ui/help-overlay.ui:78 msgctxt "shortcut window" msgid "Go to Albums" msgstr "Към албумите" #: data/ui/help-overlay.ui:84 msgctxt "shortcut window" msgid "Go to Artists" msgstr "Към изпълнителите" #: data/ui/help-overlay.ui:90 msgctxt "shortcut window" msgid "Go to Songs" msgstr "Към песните" #: data/ui/help-overlay.ui:96 msgctxt "shortcut window" msgid "Go to Playlists" msgstr "Към списъците" #: data/ui/help-overlay.ui:102 msgctxt "shortcut window" msgid "Go back" msgstr "Назад" #: data/ui/LastfmDialog.ui:21 msgid "" "Last.fm is a music discovery service that gives you personalised " "recommendations based on the music you listen to." msgstr "" "Last.fm е услуга, за откриване на музика. Тя дава препоръки на базата на " "това, което слушате." #: data/ui/LastfmDialog.ui:31 gnomemusic/widgets/lastfmdialog.py:57 msgid "Music Reporting Not Setup" msgstr "Публикуването на музика не е настроено" #: data/ui/LastfmDialog.ui:44 gnomemusic/widgets/lastfmdialog.py:60 msgid "Login to your Last.fm account to report your music listening." msgstr "" "Впишете се в регистрацията си в Last.fm, за да публикувате каква музика " "слушате." #: data/ui/LastfmDialog.ui:55 gnomemusic/widgets/lastfmdialog.py:58 msgid "Login" msgstr "Вписване" #: data/ui/PlayerToolbar.ui:74 msgid "Previous" msgstr "Предишна" #: data/ui/PlayerToolbar.ui:106 msgid "Next" msgstr "Следваща" #: data/ui/PlaylistControls.ui:9 msgid "_Delete" msgstr "_Изтриване" #: data/ui/PlaylistControls.ui:13 msgid "_Rename…" msgstr "Пре_именуване…" #: data/ui/PlaylistControls.ui:28 msgid "Playlist Name" msgstr "Име на списъка за изпълнение" #: data/ui/PlaylistControls.ui:62 msgid "_Done" msgstr "_Готово" #: data/ui/PlaylistDialog.ui:52 msgid "Enter a name for your first playlist" msgstr "Въведете име за списъка за изпълнение" #: data/ui/PlaylistDialog.ui:77 msgid "C_reate" msgstr "_Създаване" #: data/ui/PlaylistDialog.ui:146 msgid "New Playlist…" msgstr "Нов списък…" #: data/ui/PlaylistDialog.ui:161 msgid "Add" msgstr "Добавяне" #: data/ui/PlaylistDialog.ui:202 msgid "Add to Playlist" msgstr "Добавяне в списък" #: data/ui/PlaylistDialog.ui:222 msgid "_Add" msgstr "_Добавяне" #: data/ui/SearchView.ui:33 gnomemusic/views/artistsview.py:51 msgid "Artists" msgstr "Автори" #: data/ui/SearchView.ui:42 data/ui/SearchView.ui:84 msgid "View All" msgstr "Преглед на всички" #: data/ui/SearchView.ui:75 gnomemusic/views/albumsview.py:56 msgid "Albums" msgstr "Албуми" #: data/ui/SearchView.ui:117 gnomemusic/views/songsview.py:52 msgid "Songs" msgstr "Песни" #: data/ui/SelectionBarMenuButton.ui:7 msgid "Select All" msgstr "Избор на всички" #: data/ui/SelectionBarMenuButton.ui:11 msgid "Select None" msgstr "Избор на някои" #: data/ui/SelectionBarMenuButton.ui:19 gnomemusic/widgets/headerbar.py:69 msgid "Click on items to select them" msgstr "Изберете елементи чрез натискане" #: data/ui/SelectionToolbar.ui:8 msgid "_Add to Playlist" msgstr "_Добавяне в списък" #: data/ui/SongWidgetMenu.ui:19 msgid "_Remove from Playlist" msgstr "_Изваждане от списък" #: gnomemusic/about.py:238 msgid "The GNOME Project" msgstr "Проектът GNOME" #: gnomemusic/about.py:242 msgid "translator-credits" msgstr "" "Александър Шопов <ash@kambanaria.org>\n" "Христо Кожухаров <ickomcdevill@gmail.com>\n" "\n" "Проектът за превод на GNOME има нужда от подкрепа.\n" "Научете повече за нас на уеб сайта ни.\n" "Докладвайте за грешки в превода в съответния раздел." #: gnomemusic/about.py:246 msgid "Copyright The GNOME Music Developers" msgstr "Авторски права: Разработчиците на „Музика на GNOME“" #: gnomemusic/about.py:249 msgid "Translated by" msgstr "Преведено от" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:894 msgid "Most Played" msgstr "Най-слушани" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:948 msgid "Never Played" msgstr "Никога слушани" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1001 msgid "Recently Played" msgstr "Скоро слушани" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1064 msgid "Recently Added" msgstr "Скоро добавени" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1127 msgid "Favorite Songs" msgstr "Любими песни" #: gnomemusic/gstplayer.py:408 msgid "Unable to play the file" msgstr "Файлът не може да се възпроизведе" #: gnomemusic/gstplayer.py:414 msgid "_Find in {}" msgstr "_Търсене в {}" #. TRANSLATORS: separator for two codecs #: gnomemusic/gstplayer.py:424 msgid " and " msgstr " и " #. TRANSLATORS: separator for a list of codecs #: gnomemusic/gstplayer.py:427 msgid ", " msgstr ", " #: gnomemusic/gstplayer.py:429 msgid "{} is required to play the file, but is not installed." msgid_plural "{} are required to play the file, but are not installed." msgstr[0] "За да се пусне файлът е нужен {}, който не е инсталиран." msgstr[1] "За да се пусне файлът са нужни {}, които не са инсталирани." #: gnomemusic/inhibitsuspend.py:63 msgid "Playing music" msgstr "Изпълнение на музика" #. Translators: "shuffle" causes tracks to play in random order. #: gnomemusic/player.py:44 msgid "Shuffle" msgstr "Разбъркване" #: gnomemusic/player.py:45 msgid "Repeat Song" msgstr "Повтаряне на песента" #: gnomemusic/player.py:46 msgid "Repeat All" msgstr "Повтаряне на всички" #: gnomemusic/player.py:47 msgid "Shuffle/Repeat Off" msgstr "Разбъркване/повтаряне изключено" #: gnomemusic/playlisttoast.py:55 msgid "Playlist {} removed" msgstr "Списъкът „{}“ е премахнат" #: gnomemusic/playlisttoast.py:56 gnomemusic/songtoast.py:65 msgid "Undo" msgstr "Отмяна" #: gnomemusic/songtoast.py:64 msgid "{} removed from {}" msgstr "„{}“ е извадена от „{}“" #: gnomemusic/utils.py:92 msgid "Unknown album" msgstr "Неизвестен албум" #: gnomemusic/utils.py:113 msgid "Unknown Artist" msgstr "Неизвестен автор" #: gnomemusic/views/emptyview.py:65 msgid "Your XDG Music directory is not set." msgstr "Папката ви с музика (по XDG) не е настроена." #: gnomemusic/views/emptyview.py:72 msgid "Music Folder" msgstr "Папка с музика" #. TRANSLATORS: This is a label to display a link to open user's music #. folder. {} will be replaced with the translated text 'Music folder' #: gnomemusic/views/emptyview.py:76 msgid "The contents of your {} will appear here." msgstr "Съдържанието на „{}“ ще се появи тук." #: gnomemusic/views/emptyview.py:124 msgid "No Music Found" msgstr "Няма музика" #: gnomemusic/views/emptyview.py:125 msgid "Try a Different Search" msgstr "Друго търсене" #: gnomemusic/views/emptyview.py:129 msgid "GNOME Music could not connect to Tracker." msgstr "Музиката на GNOME не може да установи връзка с Tracker." #: gnomemusic/views/emptyview.py:131 msgid "Your music files cannot be indexed without Tracker running." msgstr "Файловете с музика не може да се индексират без Tracker." #: gnomemusic/views/emptyview.py:137 msgid "Your system Tracker version seems outdated." msgstr "Версията на Tracker в системата ви е стара." #: gnomemusic/views/emptyview.py:139 msgid "Music needs Tracker version 3.0.0 or higher." msgstr "Музиката на GNOME изисква версия поне 3.0.0." #: gnomemusic/views/playlistsview.py:45 msgid "Playlists" msgstr "Списъци за изпълнение" #: gnomemusic/views/searchview.py:304 msgid "Artists Results" msgstr "Резултати — изпълнителни" #: gnomemusic/views/searchview.py:318 msgid "Albums Results" msgstr "Резултати — албуми" #: gnomemusic/widgets/albumwidget.py:245 msgid "{} minute" msgid_plural "{} minutes" msgstr[0] "{} минута" msgstr[1] "{} минути" #: gnomemusic/widgets/discbox.py:75 msgid "Disc {}" msgstr "Диск {}" #: gnomemusic/widgets/headerbar.py:66 msgid "Selected {} song" msgid_plural "Selected {} songs" msgstr[0] "Избрана е {} песен" msgstr[1] "Избрани са {} песни" #: gnomemusic/widgets/lastfmdialog.py:64 msgid "Your music listening is reported to Last.fm." msgstr "Информацията за изпълненията, които слушате, се публикува към Last.fm." #: gnomemusic/widgets/lastfmdialog.py:66 msgid "Your music listening is not reported to Last.fm." msgstr "" "Информацията за изпълненията, които слушате, не се публикува към Last.fm." #. TRANSLATORS: displays the username of the Last.fm account #: gnomemusic/widgets/lastfmdialog.py:70 msgid "Logged in as {}" msgstr "Вписани сте като „{}“" #: gnomemusic/widgets/lastfmdialog.py:71 msgid "Configure" msgstr "Настройки" #: gnomemusic/widgets/playertoolbar.py:167 msgid "Pause" msgstr "Пауза" # im not sure what stays on the place of %d, so there might be a mistake #: gnomemusic/widgets/playlistcontrols.py:130 msgid "{} Song" msgid_plural "{} Songs" msgstr[0] "{} песен" msgstr[1] "{} песни" 070701000000DC000081A400000000000000000000000166968E4E0000347A000000000000000000000000000000000000001A00000000gnome-music-46.1/po/bs.po# Bosnian translation for bosnianuniversetranslation # Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 # This file is distributed under the same license as the bosnianuniversetranslation package. # FIRST AUTHOR , 2013. # msgid "" msgstr "" "Project-Id-Version: bosnianuniversetranslation\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" "music&keywords=I18N+L10N&component=general\n" "POT-Creation-Date: 2015-02-26 20:04+0000\n" "PO-Revision-Date: 2015-03-02 08:59+0100\n" "Last-Translator: Merima Cisija \n" "Language-Team: Bosnian \n" "Language: bs\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%" "10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" "X-Launchpad-Export-Date: 2015-02-05 07:03+0000\n" "X-Generator: Poedit 1.7.4\n" #: ../data/org.gnome.Music.gschema.xml.h:1 msgid "Window size" msgstr "Veličina prozora" #: ../data/org.gnome.Music.gschema.xml.h:2 msgid "Window size (width and height)." msgstr "Veličina prozora(sirina i visina)." #: ../data/org.gnome.Music.gschema.xml.h:3 msgid "Window position" msgstr "Pozicija prozora" #: ../data/org.gnome.Music.gschema.xml.h:4 msgid "Window position (x and y)." msgstr "Pozicija prozora (x i y)." #: ../data/org.gnome.Music.gschema.xml.h:5 msgid "Window maximized" msgstr "Uvećan prozor" #: ../data/org.gnome.Music.gschema.xml.h:6 msgid "Window maximized state." msgstr "Stanje uvećanog prozora." #: ../data/org.gnome.Music.gschema.xml.h:7 msgid "Playback repeat mode" msgstr "Način ponavljanja reprodukcije" #. Translators: Don't translate allowed values, just the description in the brackets #: ../data/org.gnome.Music.gschema.xml.h:9 msgid "" "Value identifies whether to repeat or randomize playback through the " "collection. Allowed values are: \"none\" (repeat and shuffle are off), \"song" "\" (repeat current song), \"all\" (repeat playlist, no shuffle), \"shuffle" "\" (shuffle playlist, presumes repeat all)." msgstr "" "Vrijednost identificira da li ponoviti ili mješati reprodukciju kroz " "kolekciju. Dopuštene vrijednosti su: \"none\" (ponavljanje i mješanje su " "isključeni), \"song\" (ponavljam trenutne pjesme), \"all\" (ponoviti listu " "pjesama, nema mješanja), \"shuffle\" (mješanje liste pjesama pretpostavlja " "ponoviti sve)." #: ../data/org.gnome.Music.gschema.xml.h:10 msgid "Search mode" msgstr "Režim traženja" #: ../data/org.gnome.Music.gschema.xml.h:11 msgid "If true, the search bar is shown." msgstr "Ako je tačno,bar traženja je prikazan." #: ../data/org.gnome.Music.gschema.xml.h:12 msgid "Notifications mode" msgstr "Režim koji podržava obavijesti" #: ../data/org.gnome.Music.gschema.xml.h:13 msgid "Enables or disables playback notifications" msgstr "Omogućuje ili onemogućuje obavijesti za reprodukciju" #: ../data/org.gnome.Music.gschema.xml.h:14 msgid "Max chars to display in track name on Artist view" msgstr "Paksimalan broj znakova u nazvu kompozicije za pogled izvođača" #: ../data/org.gnome.Music.gschema.xml.h:15 msgid "" "This setting modifies the amount of chars for track title on Artist view " "before its been ellipsized. Set this to -1 to disable" msgstr "Ova postavka mijenja broj znakova za naslov kompozicije na " #: ../data/org.gnome.Music.gschema.xml.h:16 msgid "Enable ReplayGain" msgstr "_Omogući „Replay Gain“ poboljšanje" #: ../data/org.gnome.Music.gschema.xml.h:17 msgid "Enables or disables ReplayGain for albums" msgstr "Omogućuje ili onemogućuje dobit izvođenja za albume" #: ../data/gnome-music.desktop.in.h:1 ../gnomemusic/application.py:50 #: ../gnomemusic/application.py:113 ../gnomemusic/window.py:59 #: ../data/AboutDialog.ui.in.h:1 msgid "Music" msgstr "Muzika" #: ../data/gnome-music.desktop.in.h:2 msgid "Music Player" msgstr "Muzički program" #: ../data/gnome-music.desktop.in.h:3 ../data/gnome-music.appdata.xml.in.h:2 msgid "Play and organize your music collection" msgstr "Izvodite i organizirajte svoju muzičku zbirku" #: ../data/gnome-music.desktop.in.h:4 msgid "Music;Player;" msgstr "Muzika;Plejer;" #: ../data/gnome-music.appdata.xml.in.h:1 msgid "GNOME Music" msgstr "GNOME muzika" #: ../data/gnome-music.appdata.xml.in.h:3 msgid "Music is the new GNOME music playing application." msgstr "Music je nova muzička aplikacija GNOME." #: ../gnomemusic/albumArtCache.py:103 ../gnomemusic/albumArtCache.py:111 msgid "Untitled" msgstr "Bez naslova" #: ../gnomemusic/mpris.py:148 ../gnomemusic/notification.py:100 #: ../gnomemusic/player.py:454 ../gnomemusic/view.py:512 #: ../gnomemusic/view.py:938 ../gnomemusic/view.py:1372 msgid "Unknown Album" msgstr "Nepoznat album" #: ../gnomemusic/mpris.py:164 ../gnomemusic/notification.py:98 #: ../gnomemusic/player.py:445 ../gnomemusic/view.py:222 #: ../gnomemusic/view.py:432 ../gnomemusic/view.py:684 #: ../gnomemusic/view.py:1124 ../gnomemusic/view.py:1370 #: ../gnomemusic/view.py:1405 ../gnomemusic/widgets.py:234 #: ../gnomemusic/widgets.py:638 msgid "Unknown Artist" msgstr "Nepoznat izvođač" #: ../gnomemusic/notification.py:89 msgid "Not playing" msgstr "Ne izvodi se" #. TRANSLATORS: by refers to the artist, from to the album #: ../gnomemusic/notification.py:104 #, python-format msgid "by %s, from %s" msgstr "od %s , do %s" #: ../gnomemusic/notification.py:125 ../data/PlayerToolbar.ui.h:5 msgid "Previous" msgstr "Prethodna" #: ../gnomemusic/notification.py:128 ../gnomemusic/player.py:402 msgid "Pause" msgstr "Pauziraj" #: ../gnomemusic/notification.py:131 ../gnomemusic/player.py:405 #: ../data/PlayerToolbar.ui.h:6 msgid "Play" msgstr "Pokreni" #: ../gnomemusic/notification.py:133 ../data/PlayerToolbar.ui.h:7 msgid "Next" msgstr "Sljedeći" #. TRANSLATORS: this is a playlist nami #: ../gnomemusic/playlists.py:49 msgid "Most Played" msgstr "Sa najviše izvođenja" #. TRANSLATORS: this is a playlist nami #: ../gnomemusic/playlists.py:56 msgid "Never Played" msgstr "Nikada nisu izvođene" #. TRANSLATORS: this is a playlist nami #: ../gnomemusic/playlists.py:63 msgid "Recently Played" msgstr "Nedavno izvođene" #. TRANSLATORS: this is a playlist nami #: ../gnomemusic/playlists.py:70 msgid "Recently Added" msgstr "Nedavno dodane" #. TRANSLATORS: this is a playlist nami #: ../gnomemusic/playlists.py:77 msgid "Favorite Songs" msgstr "Omiljene pjesme" #. TRANSLATORS: _("the") should bje a space-separated list of all-lowercase articles #. (such as 'the') that should bje ignored when alphabetizing artists/albums. This #. list should include 'the' regardless of language. If some articles occur more #. frequently than others, most common should appear first, least common last. #: ../gnomemusic/query.py:69 msgid "the a an" msgstr "the a an" #: ../gnomemusic/searchbar.py:58 ../gnomemusic/searchbar.py:101 msgid "All" msgstr "Svi" #: ../gnomemusic/searchbar.py:59 msgid "Artist" msgstr "Izvođač" #: ../gnomemusic/searchbar.py:60 msgid "Album" msgstr "Album" #: ../gnomemusic/searchbar.py:61 msgid "Track Title" msgstr "Naslov numere" #: ../gnomemusic/searchbar.py:102 msgid "Local" msgstr "Lokalno" #: ../gnomemusic/searchbar.py:204 msgid "Sources" msgstr "Izvori" #: ../gnomemusic/searchbar.py:211 msgid "Match" msgstr "Poveži" #: ../gnomemusic/view.py:191 ../gnomemusic/widgets.py:275 #: ../gnomemusic/widgets.py:515 ../gnomemusic/window.py:288 #, python-format msgid "Selected %d item" msgid_plural "Selected %d items" msgstr[0] "Odabrana %d stavka" msgstr[1] "Odabrane %d stavke" msgstr[2] "Odabrano %d stavki" #: ../gnomemusic/view.py:193 ../gnomemusic/widgets.py:277 #: ../gnomemusic/widgets.py:517 ../gnomemusic/window.py:292 #: ../gnomemusic/window.py:304 ../data/headerbar.ui.h:3 msgid "Click on items to select them" msgstr "Kliknite na stavke da ih označite" #: ../gnomemusic/view.py:278 ../gnomemusic/view.py:1628 msgid "Albums" msgstr "Albumi" #: ../gnomemusic/view.py:369 ../gnomemusic/view.py:1630 msgid "Songs" msgstr "Pjesme" #: ../gnomemusic/view.py:544 ../gnomemusic/view.py:1629 msgid "Artists" msgstr "Izvođači" #: ../gnomemusic/view.py:590 ../gnomemusic/view.py:592 #: ../gnomemusic/widgets.py:524 msgid "All Artists" msgstr "Svi izvođači" #: ../gnomemusic/view.py:769 ../gnomemusic/view.py:1631 msgid "Playlists" msgstr "Liste pjesama" #: ../gnomemusic/view.py:1135 #, python-format msgid "%d Song" msgid_plural "%d Songs" msgstr[0] "%d Pjesma" msgstr[1] "%d Pjesme" msgstr[2] "%d Pjesama" #: ../gnomemusic/widgets.py:316 ../gnomemusic/widgets.py:350 #, python-format msgid "%d min" msgstr "%d min" #: ../gnomemusic/widgets.py:762 msgid "New Playlist" msgstr "Nova lista pjesama" #: ../gnomemusic/window.py:236 msgid "Empty" msgstr "Prazno" #: ../gnomemusic/window.py:316 msgid "_Undo" msgstr "_Poništi" #: ../gnomemusic/window.py:317 #, python-format msgid "Playlist %s removed" msgstr "Uklonjena lista izvođenje %s" #: ../gnomemusic/window.py:341 msgid "Loading" msgstr "Učitava se" #: ../data/AboutDialog.ui.in.h:2 msgid "Copyright © 2013 GNOME Music Developers" msgstr "Autorska prava © 2013 GNOME Music Developers" #: ../data/AboutDialog.ui.in.h:3 msgid "A music player and management application for GNOME." msgstr "muzička lista i upravljačka aplikacija za GNOME." #: ../data/AboutDialog.ui.in.h:4 msgid "Visit GNOME Music website" msgstr "Posjetite stranicu GNOME Music" #: ../data/AboutDialog.ui.in.h:5 msgid "" "GNOME Music 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.\n" "\n" "GNOME Music 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.\n" "\n" "You should have received a copy of the GNU General Public License along with " "GNOME Music; if not, write to the Free Software Foundation, Inc., 51 " "Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" "\n" "The GNOME Music authors hereby grant permission for non-GPL compatible " "GStreamer plugins to be used and distributed together with GStreamer and " "GNOME Music. This permission is above and beyond the permissions granted by " "the GPL license by which GNOME Music is covered. If you modify this code, " "you may extend this exception to your version of the code, but you are not " "obligated to do so. If you do not wish to do so, delete this exception " "statement from your version." msgstr "" "Gnome Music je besplatan software; možete ga ponovo distribuirati i/ili " "izmjeniti pod uslovima GNU opće javne licence objavljeno od Free Sotware " "fondacije ; ili verzija 2 licence, ili (po svom izboru) bilo koje kasnije " "verzije.\n" "\n" "Trebali ste dobiti kopiju GNU opće javne licence uz GNOME Music; a ako ne " "pišite Free Software fonadaciji,, Inc., 51 Franklin Street, Fifth Floor, " "Boston, MA 02110-1301 USA.\n" "\n" "GNOME Music autori ovime daju dopuštenje za ne-GPL kompatibilni GStreamer " "dodatake koji će se koristiti i distribuirati zajedno s GStreamer i GNOME " "Music. Ovo odobrenje je iznad i izvan izdanoj dozvoli od GPL licence kojom " "je pokrivena i GNOME Music.Ako mjenjate vaš kod,možete pridružiti ovaj " "izuzetak vašoj verziji koda,ali niste obavezni uraditi.Ako ste sigurni da ne " "želite,izbrišite ovaj izuzetak iz vaše verzije." #: ../data/AlbumWidget.ui.h:1 msgid "Released" msgstr "Izdanje" #: ../data/AlbumWidget.ui.h:2 msgid "Running Length" msgstr "Vrijeme trajanja" #: ../data/app-menu.ui.h:1 msgid "_Help" msgstr "_Pomoć" #: ../data/app-menu.ui.h:2 msgid "_About" msgstr "_O programu" #: ../data/app-menu.ui.h:3 msgid "_Quit" msgstr "_Izlaz" #: ../data/PlayerToolbar.ui.h:1 msgid "Shuffle" msgstr "Izmiješaj" #: ../data/PlayerToolbar.ui.h:2 msgid "Repeat All" msgstr "Ponovi sve" #: ../data/PlayerToolbar.ui.h:3 msgid "Repeat Song" msgstr "Ponovi pjesmu" #: ../data/PlayerToolbar.ui.h:4 msgid "Shuffle/Repeat Off" msgstr "Izmješaj/isključi ponavljanje" #: ../data/NoMusic.ui.h:1 msgid "No music found" msgstr "Nije pronađena muzika" #: ../data/NoMusic.ui.h:2 msgid "The contents of your music folder will appear here." msgstr "Sadržaj Vašeg direktorija sa muzikom će se pojaviti ovdje." #: ../data/headerbar.ui.h:1 msgid "Select All" msgstr "Izaberi sve" #: ../data/headerbar.ui.h:2 msgid "Select None" msgstr "Bez izbora" #: ../data/headerbar.ui.h:4 msgid "Search" msgstr "Traži" #: ../data/headerbar.ui.h:5 ../data/PlaylistDialog.ui.h:3 msgid "Select" msgstr "Odaberi" #: ../data/headerbar.ui.h:6 ../data/PlaylistDialog.ui.h:2 msgid "Cancel" msgstr "Otkaži" #: ../data/headerbar.ui.h:7 msgid "Back" msgstr "Nazad" #: ../data/SelectionToolbar.ui.h:1 msgid "Add to Playlist" msgstr "Dodajte u listu za izvedbu" #: ../data/SelectionToolbar.ui.h:2 msgid "Remove from Playlist" msgstr "Ukloni sa liste pjesama" #: ../data/PlaylistControls.ui.h:1 msgid "_Play" msgstr "_Izvedi" #: ../data/PlaylistControls.ui.h:2 msgid "_Delete" msgstr "_Izbriši" #: ../data/PlaylistControls.ui.h:3 msgid "Playlist Name" msgstr "Naziv liste numera" #: ../data/PlaylistDialog.ui.h:1 msgid "Select Playlist" msgstr "Izaberite listu numera" 070701000000DD000081A400000000000000000000000166968E4E00004615000000000000000000000000000000000000001A00000000gnome-music-46.1/po/ca.po# Catalan translation for gnome-calendar. # Copyright (C) 2012 gnome-music's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-calendar package. # # Jordi Mas i Hernandez , 2013, 2015, 2016, 2022 # Pau Iranzo , 2013. # Gil Forcada , 2014, 2018. # Jordi Serratosa , 2017. # msgid "" msgstr "" "Project-Id-Version: gnome-music master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-music/issues\n" "POT-Creation-Date: 2024-03-26 06:44+0000\n" "PO-Revision-Date: 2024-05-15 22:04+0200\n" "Last-Translator: Jordi Mas i Hernandez \n" "Language-Team: Catalan \n" "Language: ca\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Poedit 2.4.2\n" #: data/org.gnome.Music.appdata.xml.in.in:6 #: data/org.gnome.Music.desktop.in.in:3 data/ui/StatusNavigationPage.ui:4 #: gnomemusic/about.py:138 gnomemusic/application.py:59 gnomemusic/window.py:65 msgid "Music" msgstr "Música" #: data/org.gnome.Music.appdata.xml.in.in:7 #: data/org.gnome.Music.desktop.in.in:5 msgid "Play and organize your music collection" msgstr "Reproduïu i organitzeu la vostra col·lecció de música" #: data/org.gnome.Music.appdata.xml.in.in:9 msgid "An easy and pleasant way to play your music." msgstr "Una manera fàcil i agradable de reproduir música." #: data/org.gnome.Music.appdata.xml.in.in:12 msgid "" "Find tracks in your local collection, use automatically generated playlists " "or curate a fresh one." msgstr "" "Trobeu cançons a la vostra col·lecció local, utilitzeu llistes de " "reproducció generades automàticament o creeu-ne de noves." #. developer_name tag deprecated with Appstream 1.0 #: data/org.gnome.Music.appdata.xml.in.in:214 msgid "The GNOME Music developers" msgstr "L'equip de desenvolupament del Música del GNOME" #: data/org.gnome.Music.desktop.in.in:4 msgid "Music Player" msgstr "Reproductor de música" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Music.desktop.in.in:13 msgid "Music;Player;" msgstr "Música;Reproductor;" #: data/org.gnome.Music.gschema.xml:12 msgid "Window size" msgstr "Mida de la finestra" #: data/org.gnome.Music.gschema.xml:13 msgid "Window size (width and height)." msgstr "Mida de la finestra (amplada i alçada)." #: data/org.gnome.Music.gschema.xml:17 msgid "Window maximized" msgstr "Finestra maximitzada" #: data/org.gnome.Music.gschema.xml:18 msgid "Window maximized state." msgstr "Estat de la finestra maximitzada." #: data/org.gnome.Music.gschema.xml:22 msgid "Playback repeat mode" msgstr "Mode de repetició de la reproducció" #. Translators: Don't translate allowed values, just the description in the brackets #: data/org.gnome.Music.gschema.xml:24 msgid "" "Value identifies whether to repeat or randomize playback through the " "collection. Allowed values are: “none” (repeat and shuffle are off), " "“song” (repeat current song), “all” (repeat playlist, no shuffle), " "“shuffle” (shuffle playlist, presumes repeat all)." msgstr "" "El valor estableix si es reprodueix la col·lecció en mode de repetició o " "aleatori. Els valors que s'accepten són: «none» (cap, ni es repeteix ni es " "reprodueix aleatòriament), «song» (cançó, es repeteix la cançó actual), " "«all» (tot, repeteix la llista de reproducció, no es reprodueix " "aleatòriament) i «shuffle» (reprodueix aleatòriament la llista, se suposa " "que es repeteixen totes)." #: data/org.gnome.Music.gschema.xml:28 data/ui/PreferencesDialog.ui:27 msgid "Enable ReplayGain" msgstr "Habilita ReplayGain" #: data/org.gnome.Music.gschema.xml:29 msgid "Enables or disables ReplayGain for albums" msgstr "Habilita o inhabilita ReplayGain pels àlbums" #: data/org.gnome.Music.gschema.xml:33 msgid "Inhibit system suspend" msgstr "Inhibeix la suspensió del sistema" #: data/org.gnome.Music.gschema.xml:34 msgid "Enables or disables inhibiting system suspend while playing music" msgstr "" "Habilita o inhabilita la suspensió del sistema durant la reproducció de " "música" #: data/ui/AlbumsSearchNavigationPage.ui:5 data/ui/SearchView.ui:98 #: gnomemusic/views/albumsview.py:52 msgid "Albums" msgstr "Àlbums" #: data/ui/AlbumWidget.ui:84 data/ui/PlayerToolbar.ui:87 #: data/ui/PlaylistControls.ui:101 gnomemusic/widgets/playertoolbar.py:176 msgid "Play" msgstr "Reprodueix" #: data/ui/AlbumWidget.ui:130 data/ui/PlaylistControls.ui:5 #: data/ui/SongWidgetMenu.ui:11 msgid "_Play" msgstr "_Reprodueix" #: data/ui/AlbumWidget.ui:134 msgid "Add to _Favorite Songs" msgstr "_Cançons preferides" #: data/ui/AlbumWidget.ui:138 data/ui/SongWidgetMenu.ui:15 msgid "_Add to Playlist…" msgstr "_Afegeix a la llista de reproducció…" #: data/ui/ArtistsSearchNavigationPage.ui:5 data/ui/SearchView.ui:41 #: gnomemusic/views/artistsview.py:51 msgid "Artists" msgstr "Artistes" #: data/ui/HeaderBar.ui:14 msgid "Menu" msgstr "Menú" #: data/ui/HeaderBar.ui:22 data/ui/SearchHeaderBar.ui:12 msgid "Search" msgstr "Cerca" #: data/ui/HeaderBar.ui:31 data/ui/PreferencesDialog.ui:4 msgid "Preferences" msgstr "Preferències" #: data/ui/HeaderBar.ui:35 msgid "Keyboard Shortcuts" msgstr "Dreceres de teclat" #: data/ui/HeaderBar.ui:39 msgid "Help" msgstr "Ajuda" #: data/ui/HeaderBar.ui:43 msgid "About Music" msgstr "Quant al Música" #: data/ui/help-overlay.ui:11 msgctxt "shortcut window" msgid "General" msgstr "General" #: data/ui/help-overlay.ui:14 msgctxt "shortcut window" msgid "Close window" msgstr "Tanca la finestra" #: data/ui/help-overlay.ui:20 msgctxt "shortcut window" msgid "Search" msgstr "Cerca" #: data/ui/help-overlay.ui:26 msgctxt "shortcut window" msgid "Help" msgstr "Ajuda" #: data/ui/help-overlay.ui:32 msgctxt "shortcut window" msgid "Shortcuts" msgstr "Dreceres" #: data/ui/help-overlay.ui:40 msgctxt "shortcut window" msgid "Playback" msgstr "Reprodueix" #: data/ui/help-overlay.ui:43 msgctxt "shortcut window" msgid "Play/Pause" msgstr "Reprodueix/Fes una pausa" #: data/ui/help-overlay.ui:49 msgctxt "shortcut window" msgid "Next song" msgstr "Cançó següent" #: data/ui/help-overlay.ui:55 msgctxt "shortcut window" msgid "Previous song" msgstr "Cançó anterior" #: data/ui/help-overlay.ui:61 msgctxt "shortcut window" msgid "Toggle repeat" msgstr "Commuta la repetició" #: data/ui/help-overlay.ui:67 msgctxt "shortcut window" msgid "Toggle shuffle" msgstr "Commuta la mescla" #: data/ui/help-overlay.ui:75 msgctxt "shortcut window" msgid "Navigation" msgstr "Navegació" #: data/ui/help-overlay.ui:78 msgctxt "shortcut window" msgid "Go to Albums" msgstr "Ves als àlbums" #: data/ui/help-overlay.ui:84 msgctxt "shortcut window" msgid "Go to Artists" msgstr "Ves als artistes" #: data/ui/help-overlay.ui:90 msgctxt "shortcut window" msgid "Go to Songs" msgstr "Ves a les cançons" #: data/ui/help-overlay.ui:96 msgctxt "shortcut window" msgid "Go to Playlists" msgstr "Ves a les llistes de reproducció" #: data/ui/help-overlay.ui:102 msgctxt "shortcut window" msgid "Go back" msgstr "Torna enrere" #: data/ui/PlayerToolbar.ui:74 msgid "Previous" msgstr "Anterior" #: data/ui/PlayerToolbar.ui:106 msgid "Next" msgstr "Següent" #: data/ui/PlaylistControls.ui:9 msgid "_Delete" msgstr "_Suprimeix" #: data/ui/PlaylistControls.ui:13 msgid "_Rename…" msgstr "_Canvia el nom…" #: data/ui/PlaylistControls.ui:28 msgid "Playlist Name" msgstr "Nom de la llista de reproducció" #: data/ui/PlaylistControls.ui:62 msgid "_Done" msgstr "_Fet" #: data/ui/PlaylistDialog.ui:16 msgid "Add to Playlist" msgstr "Afegeix a la llista de reproducció" #: data/ui/PlaylistDialog.ui:27 msgid "_Cancel" msgstr "_Cancel·la" #: data/ui/PlaylistDialog.ui:36 msgid "_Add" msgstr "_Afegeix" #: data/ui/PlaylistDialog.ui:91 msgid "Enter a name for your first playlist" msgstr "Introduïu un nom per a la vostra primera llista de reproducció" #: data/ui/PlaylistDialog.ui:116 msgid "C_reate" msgstr "_Crea" #: data/ui/PlaylistDialog.ui:177 msgid "New Playlist…" msgstr "Llista de reproducció nova…" #: data/ui/PlaylistDialog.ui:189 msgid "Add" msgstr "Afegeix" #: data/ui/PreferencesDialog.ui:9 msgid "Player Settings" msgstr "Paràmetres del reproductor" #: data/ui/PreferencesDialog.ui:12 msgid "Repeat Mode" msgstr "Mode de repetició" #: data/ui/PreferencesDialog.ui:16 msgid "None" msgstr "Cap" #: data/ui/PreferencesDialog.ui:17 msgid "Song" msgstr "Cançó" #: data/ui/PreferencesDialog.ui:18 msgid "All" msgstr "Tots" #: data/ui/PreferencesDialog.ui:19 gnomemusic/player.py:51 msgid "Shuffle" msgstr "Mescla" #: data/ui/PreferencesDialog.ui:28 msgid "Balance loudness between songs if ReplayGain metadata is found" msgstr "" "Equilibra la sonoritat entre les cançons si es troben les metadades de " "ReplayGain" #: data/ui/PreferencesDialog.ui:35 msgid "Power Settings" msgstr "Paràmetres de l'energia" #: data/ui/PreferencesDialog.ui:38 msgid "Inhibit Suspend" msgstr "Inhibeix la suspensió" #: data/ui/PreferencesDialog.ui:39 msgid "Only while playing" msgstr "Només quan s'estigui reproduint" #: data/ui/SearchView.ui:55 data/ui/SearchView.ui:112 msgid "View All" msgstr "Mostra-ho tot" #: data/ui/SearchView.ui:154 msgid "Songs" msgstr "Cançons" #: data/ui/SongWidgetMenu.ui:19 msgid "_Remove from Playlist" msgstr "_Suprimeix de la llista de reproducció" #: data/ui/StatusNavigationPage.ui:36 msgid "Welcome to Music" msgstr "Us donem la benvinguda al Música" #: gnomemusic/about.py:140 msgid "The GNOME Project" msgstr "El projecte GNOME" #. Translators should localize the following string which #. will be displayed at the bottom of the about box to give #. credit to the translator(s). #: gnomemusic/about.py:146 msgid "translator-credits" msgstr "Jordi Mas i Hernandez " #: gnomemusic/about.py:150 msgid "© The GNOME Music Developers" msgstr "© L'equip de desenvolupament del Música del GNOME" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:839 msgid "Most Played" msgstr "Més reproduïdes" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:893 msgid "Never Played" msgstr "Mai s'han reproduït" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:946 msgid "Recently Played" msgstr "Reproduccions recents" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1025 msgid "Recently Added" msgstr "Afegits recentment" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1088 msgid "Favorite Songs" msgstr "Cançons preferides" #. TRANSLATORS: this is a playlist name indicating that the #. files are not tagged enough to be displayed in the albums #. or artists views. #: gnomemusic/grilowrappers/grltrackerplaylists.py:1142 msgid "Insufficiently Tagged" msgstr "No té prou etiquetes" #: gnomemusic/gstplayer.py:418 msgid "Unable to play the file" msgstr "No s'ha pogut reproduir el fitxer" #: gnomemusic/gstplayer.py:424 msgid "_Find in {}" msgstr "_Cerca a {}" #. TRANSLATORS: separator for two codecs #: gnomemusic/gstplayer.py:434 msgid " and " msgstr " i " #. TRANSLATORS: separator for a list of codecs #: gnomemusic/gstplayer.py:437 msgid ", " msgstr ", " #: gnomemusic/gstplayer.py:439 msgid "{} is required to play the file, but is not installed." msgid_plural "{} are required to play the file, but are not installed." msgstr[0] "Cal {} per a reproduir el fitxer, però no està instal·lat." msgstr[1] "Calen {} per a reproduir el fitxer, però no estan instal·lats." #: gnomemusic/inhibitsuspend.py:69 msgid "Playing music" msgstr "Reproducció de música" #. Translators: "shuffle" causes tracks to play in random order. #: gnomemusic/player.py:48 msgid "Shuffle/Repeat Off" msgstr "Aleatori/Repetició desactivada" #: gnomemusic/player.py:49 msgid "Repeat Song" msgstr "Repeteix la cançó" #: gnomemusic/player.py:50 msgid "Repeat All" msgstr "Repeteix-ho tot" #: gnomemusic/playlisttoast.py:55 msgid "Playlist {} removed" msgstr "S'ha suprimit la llista de reproducció {}" #: gnomemusic/playlisttoast.py:56 gnomemusic/songtoast.py:65 msgid "Undo" msgstr "Desfés" #: gnomemusic/songtoast.py:64 msgid "{} removed from {}" msgstr "{} suprimit de {}" #: gnomemusic/utils.py:89 msgid "Unknown album" msgstr "Àlbum desconegut" #: gnomemusic/utils.py:110 msgid "Unknown Artist" msgstr "Artista desconegut" #: gnomemusic/views/playlistsview.py:45 msgid "Playlists" msgstr "Llistes de reproducció" #: gnomemusic/views/searchview.py:220 msgid "No Search Started" msgstr "No s'ha iniciat cap cerca" #: gnomemusic/views/searchview.py:222 msgid "Use the searchbar to start searching for albums, artists or songs" msgstr "Usa la barra de cerca per començar a cercar discos, artistes o cançons" #: gnomemusic/views/searchview.py:226 msgid "No Results Found" msgstr "No s'ha trobat cap resultat" #: gnomemusic/views/searchview.py:228 msgid "Try a different search" msgstr "Proveu una cerca diferent" #: gnomemusic/widgets/albumwidget.py:230 msgid "{} minute" msgid_plural "{} minutes" msgstr[0] "{} minut" msgstr[1] "{} minuts" #: gnomemusic/widgets/discbox.py:74 msgid "Disc {}" msgstr "Disc {}" #: gnomemusic/widgets/playertoolbar.py:173 msgid "Pause" msgstr "Fes una pausa" #: gnomemusic/widgets/playlistcontrols.py:130 msgid "{} Song" msgid_plural "{} Songs" msgstr[0] "{} cançó" msgstr[1] "{} cançons" #: gnomemusic/widgets/searchheaderbar.py:50 msgid "Search songs, artists and albums" msgstr "Cerca cançons, artistes i discos" #. noqa: F841 #: gnomemusic/widgets/songwidgetmenu.py:94 msgid "_Open Location" msgstr "_Obre una ubicació" #. TRANSLATORS: These are verbs, to (un)mark something as a #. favorite. #: gnomemusic/widgets/startoggle.py:36 msgid "Unstar" msgstr "Treu el destacat" #: gnomemusic/widgets/startoggle.py:36 msgid "Star" msgstr "Destaca" #: gnomemusic/widgets/statusnavigationpage.py:51 msgid "Your XDG Music directory is not set." msgstr "El directori XDG de música no està configurat." #: gnomemusic/widgets/statusnavigationpage.py:58 msgid "Music Folder" msgstr "Carpeta de la música" #. TRANSLATORS: This is a label to display a link to open user's music #. folder. {} will be replaced with the translated text 'Music folder' #: gnomemusic/widgets/statusnavigationpage.py:66 msgid "The contents of your {} will appear here." msgstr "Els continguts de la {} apareixeran aquí." #: gnomemusic/widgets/statusnavigationpage.py:116 msgid "No Music Found" msgstr "No s'ha trobat música" #: gnomemusic/widgets/statusnavigationpage.py:117 msgid "Try a Different Search" msgstr "Proveu una cerca diferent" #: gnomemusic/widgets/statusnavigationpage.py:121 msgid "GNOME Music could not connect to Tracker." msgstr "El Música del GNOME no s'ha pogut connectar al Tracker." #: gnomemusic/widgets/statusnavigationpage.py:123 msgid "Your music files cannot be indexed without Tracker running." msgstr "" "Els fitxers de música no es poden indexar si el Tracker no s'està executant." #: gnomemusic/widgets/statusnavigationpage.py:129 msgid "Your system Tracker version seems outdated." msgstr "El Tracker del sistema sembla obsolet." #: gnomemusic/widgets/statusnavigationpage.py:131 msgid "Music needs Tracker version 3.0.0 or higher." msgstr "El Música necessita Tracker versió 3.0.0 o superior." #~ msgid "Report music history to Last.fm" #~ msgstr "Informa de l'històric de reproduccions a Last.fm" #~ msgid "" #~ "Enables or disables sending scrobbles and the “currently playing” info to " #~ "Last.fm." #~ msgstr "" #~ "Activa o desactiva l'enviament de «scrobbles» i la informació de la " #~ "«reproducció actual» a Last.fm." #~ msgid "Last.fm Account" #~ msgstr "Compte Last.fm" #~ msgid "Report Music Listening" #~ msgstr "Informa de la música que escolteu" #~ msgid "_Help" #~ msgstr "_Ajuda" #~ msgid "Select" #~ msgstr "Selecciona" #~ msgid "Back" #~ msgstr "Enrere" #~ msgid "" #~ "Last.fm is a music discovery service that gives you personalised " #~ "recommendations based on the music you listen to." #~ msgstr "" #~ "Last.fm és un servei de descobriment de música que us dona recomanacions " #~ "personalitzades basades en la música que escolteu." #~ msgid "Music Reporting Not Setup" #~ msgstr "L'informe de la música no està configurat" #~ msgid "Login to your Last.fm account to report your music listening." #~ msgstr "" #~ "Inicieu la sessió amb el compte de Last.fm per a informar de la música " #~ "que escolteu." #~ msgid "Login" #~ msgstr "Inicia la sessió" #~ msgid "Select All" #~ msgstr "Selecciona-ho tot" #~ msgid "Select None" #~ msgstr "No en seleccionis cap" #~ msgid "Click on items to select them" #~ msgstr "Feu clic als elements per a seleccionar-los" #~ msgid "_Add to Playlist" #~ msgstr "_Afegeix a la llista de reproducció" #~ msgid "Copyright The GNOME Music Developers" #~ msgstr "Copyright de l'equip de desenvolupament del Música del GNOME" #~ msgid "Translated by" #~ msgstr "Traduït per" #~ msgid "Artists Results" #~ msgstr "Resultats d'artistes" #~ msgid "Albums Results" #~ msgstr "Resultats d'àlbums" #~ msgid "Selected {} song" #~ msgid_plural "Selected {} songs" #~ msgstr[0] "{} cançó seleccionada" #~ msgstr[1] "{} cançons seleccionades" #~ msgid "Your music listening is reported to Last.fm." #~ msgstr "S'informa de la música que escoleu a Last.fm." #~ msgid "Your music listening is not reported to Last.fm." #~ msgstr "No s'informa de la música que escoleu a Last.fm." #~ msgid "Logged in as {}" #~ msgstr "Sessió iniciada com a {}" #~ msgid "Configure" #~ msgstr "Configura" 070701000000DE000081A400000000000000000000000166968E4E0000463A000000000000000000000000000000000000002300000000gnome-music-46.1/po/ca@valencia.po# Catalan translation for gnome-calendar. # Copyright (C) 2012 gnome-music's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-calendar package. # # Jordi Mas i Hernandez , 2013, 2015, 2016 # Pau Iranzo , 2013. # Gil Forcada , 2014. # Jordi Serratosa , 2017. # msgid "" msgstr "" "Project-Id-Version: gnome-music master\n" "Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" "music&keywords=I18N+L10N&component=general\n" "POT-Creation-Date: 2017-09-25 14:21+0000\n" "PO-Revision-Date: 2017-09-01 12:28+0200\n" "Last-Translator: Xavi Ivars \n" "Language-Team: Catalan \n" "Language: ca-valencia\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Poedit 1.8.11\n" #: ../data/org.gnome.Music.appdata.xml.in.h:1 msgid "GNOME Music" msgstr "Música del GNOME" #: ../data/org.gnome.Music.appdata.xml.in.h:2 #: ../data/org.gnome.Music.desktop.in.h:3 msgid "Play and organize your music collection" msgstr "Reproduïu i organitzeu la col·lecció de música" #: ../data/org.gnome.Music.appdata.xml.in.h:3 msgid "Music is the new GNOME music playing application." msgstr "El Música és la nova aplicació de reproducció de música del GNOME." #: ../data/org.gnome.Music.desktop.in.h:1 ../gnomemusic/application.py:53 #: ../gnomemusic/application.py:102 ../gnomemusic/toolbar.py:90 #: ../gnomemusic/window.py:68 ../data/AboutDialog.ui.in.h:1 msgid "Music" msgstr "Música" #: ../data/org.gnome.Music.desktop.in.h:2 msgid "Music Player" msgstr "Reproductor de música" #: ../data/org.gnome.Music.desktop.in.h:4 msgid "Music;Player;" msgstr "Música;Reproductor;" #: ../data/org.gnome.Music.gschema.xml.h:1 msgid "Window size" msgstr "Mida de la finestra" #: ../data/org.gnome.Music.gschema.xml.h:2 msgid "Window size (width and height)." msgstr "Mida de la finestra (amplària i alçària)." #: ../data/org.gnome.Music.gschema.xml.h:3 msgid "Window position" msgstr "Posició de la finestra" #: ../data/org.gnome.Music.gschema.xml.h:4 msgid "Window position (x and y)." msgstr "Posició de la finestra (x i y)." #: ../data/org.gnome.Music.gschema.xml.h:5 msgid "Window maximized" msgstr "Finestra maximitzada" #: ../data/org.gnome.Music.gschema.xml.h:6 msgid "Window maximized state." msgstr "Estat de la finestra maximitzada." #: ../data/org.gnome.Music.gschema.xml.h:7 msgid "Playback repeat mode" msgstr "Mode de repetició de la reproducció" #. Translators: Don't translate allowed values, just the description in the brackets #: ../data/org.gnome.Music.gschema.xml.h:9 msgid "" "Value identifies whether to repeat or randomize playback through the " "collection. Allowed values are: “none” (repeat and shuffle are off), " "“song” (repeat current song), “all” (repeat playlist, no shuffle), " "“shuffle” (shuffle playlist, presumes repeat all)." msgstr "" "El valor estableix si es reprodueix la col·lecció en mode de repetició o " "aleatori. Els valors que s'accepten són: «none» (cap, ni es repeteix ni es " "reprodueix aleatòriament), «song» (cançó, es repeteix la cançó actual), " "«all» (tot, repeteix la llista de reproducció, no es reprodueix " "aleatòriament) i «shuffle» (reprodueix aleatòriament la llista, se suposa " "que es repeteixen totes)." #: ../data/org.gnome.Music.gschema.xml.h:10 msgid "Search mode" msgstr "Mode de busca" #: ../data/org.gnome.Music.gschema.xml.h:11 msgid "If true, the search bar is shown." msgstr "Si és cert, es mostra la barra de busca." #: ../data/org.gnome.Music.gschema.xml.h:12 msgid "Notifications mode" msgstr "Mode de notificacions" #: ../data/org.gnome.Music.gschema.xml.h:13 msgid "Enables or disables playback notifications" msgstr "Habilita o inhabilita les notificacions de reproducció" #: ../data/org.gnome.Music.gschema.xml.h:14 msgid "Enable ReplayGain" msgstr "Habilita ReplayGain" #: ../data/org.gnome.Music.gschema.xml.h:15 msgid "Enables or disables ReplayGain for albums" msgstr "Habilita o inhabilita ReplayGain pels àlbums" #: ../data/org.gnome.Music.gschema.xml.h:16 msgid "Inital state has been displayed" msgstr "S'ha mostrat l'estat inicial" #: ../data/org.gnome.Music.gschema.xml.h:17 msgid "Set to true when initial state has been displayed" msgstr "Estableix a cert quan s'ha mostrat l'estat inicial" #: ../gnomemusic/notification.py:55 ../data/PlayerToolbar.ui.h:6 msgid "Previous" msgstr "Anterior" #: ../gnomemusic/notification.py:58 ../gnomemusic/player.py:558 msgid "Pause" msgstr "Fes una pausa" #: ../gnomemusic/notification.py:61 ../gnomemusic/player.py:561 #: ../data/PlayerToolbar.ui.h:7 msgid "Play" msgstr "Reprodueix" #: ../gnomemusic/notification.py:63 ../data/PlayerToolbar.ui.h:8 msgid "Next" msgstr "Següent" #: ../gnomemusic/player.py:1167 msgid "Unable to play the file" msgstr "No s'ha pogut reproduir el fitxer" #. TRANSLATORS: this is a button to launch a codec installer. #. %s will be replaced with the software installer's name, e.g. #. 'Software' in case of gnome-software. #: ../gnomemusic/player.py:1172 #, python-format msgid "_Find in %s" msgstr "_Cerca a %s" #. TRANSLATORS: separator for a list of codecs #: ../gnomemusic/player.py:1182 msgid " and " msgstr " i " #. TRANSLATORS: separator for a list of codecs #: ../gnomemusic/player.py:1185 msgid ", " msgstr ", " #: ../gnomemusic/player.py:1186 #, python-format msgid "%s is required to play the file, but is not installed." msgid_plural "%s are required to play the file, but are not installed." msgstr[0] "Cal %s per reproduir el fitxer però no està instal·lat." msgstr[1] "Calen %s per reproduir el fitxer però no estan instal·lats." #. TRANSLATORS: this is a playlist name #: ../gnomemusic/playlists.py:59 msgid "Most Played" msgstr "Més reproduïdes" #. TRANSLATORS: this is a playlist name #: ../gnomemusic/playlists.py:64 msgid "Never Played" msgstr "Mai s'han reproduït" #. TRANSLATORS: this is a playlist name #: ../gnomemusic/playlists.py:69 msgid "Recently Played" msgstr "Reproduccions recents" #. TRANSLATORS: this is a playlist name #: ../gnomemusic/playlists.py:74 msgid "Recently Added" msgstr "Afegits recentment" #. TRANSLATORS: this is a playlist name #: ../gnomemusic/playlists.py:79 msgid "Favorite Songs" msgstr "Cançons preferides" #: ../gnomemusic/searchbar.py:63 ../gnomemusic/searchbar.py:111 msgid "All" msgstr "Totes" #: ../gnomemusic/searchbar.py:64 msgid "Artist" msgstr "Artista" #: ../gnomemusic/searchbar.py:65 msgid "Album" msgstr "Àlbum" #: ../gnomemusic/searchbar.py:66 ../data/AlbumWidget.ui.h:3 msgid "Composer" msgstr "Compositor" #: ../gnomemusic/searchbar.py:67 msgid "Track Title" msgstr "Títol de la peça" #: ../gnomemusic/searchbar.py:112 msgid "Local" msgstr "Local" #: ../gnomemusic/searchbar.py:224 msgid "Sources" msgstr "Fonts" #: ../gnomemusic/searchbar.py:231 msgid "Match" msgstr "Coincidència" #: ../gnomemusic/utils.py:63 msgid "Unknown Artist" msgstr "Artista desconegut" #: ../gnomemusic/utils.py:75 msgid "Untitled" msgstr "Sense títol" #: ../gnomemusic/views/albumsview.py:44 ../gnomemusic/views/searchview.py:454 msgid "Albums" msgstr "Àlbums" #: ../gnomemusic/views/artistsview.py:55 ../gnomemusic/views/searchview.py:455 msgid "Artists" msgstr "Artistes" #: ../gnomemusic/views/baseview.py:196 msgid "Selected {} item" msgid_plural "Selected {} items" msgstr[0] "{} element seleccionat" msgstr[1] "{} elements seleccionats" #: ../gnomemusic/views/baseview.py:201 ../gnomemusic/views/baseview.py:303 #: ../gnomemusic/widgets/albumwidget.py:198 #: ../gnomemusic/widgets/artistalbumswidget.py:232 ../data/headerbar.ui.h:3 msgid "Click on items to select them" msgstr "Feu clic als elements per seleccionar-los" #: ../gnomemusic/views/emptyview.py:51 msgid "Music folder" msgstr "Carpeta de la música" #: ../gnomemusic/views/emptysearchview.py:50 msgid "Try a different search" msgstr "Proveu una busca diferent" #: ../gnomemusic/views/initialstateview.py:50 msgid "Hey DJ" msgstr "Hola DJ" #: ../gnomemusic/views/playlistview.py:58 ../gnomemusic/views/searchview.py:457 msgid "Playlists" msgstr "Llistes de reproducció" #: ../gnomemusic/views/playlistview.py:420 #, python-format msgid "%d Song" msgid_plural "%d Songs" msgstr[0] "%d cançó" msgstr[1] "%d cançons" #: ../gnomemusic/views/searchview.py:456 ../gnomemusic/views/songsview.py:55 msgid "Songs" msgstr "Cançons" #: ../gnomemusic/widgets/albumwidget.py:194 #: ../gnomemusic/widgets/artistalbumswidget.py:228 #, python-format msgid "Selected %d item" msgid_plural "Selected %d items" msgstr[0] "%d element seleccionat" msgstr[1] "%d elements seleccionats" #: ../gnomemusic/widgets/albumwidget.py:291 #: ../gnomemusic/widgets/albumwidget.py:345 #, python-format msgid "%d min" msgstr "%d min" #: ../gnomemusic/widgets/disclistboxwidget.py:189 msgid "Disc {}" msgstr "Disc {}" #: ../gnomemusic/window.py:125 msgid "Loading" msgstr "S'està carregant" #. Undo button #: ../gnomemusic/window.py:162 msgid "_Undo" msgstr "_Desfés" #: ../gnomemusic/window.py:314 msgid "Empty" msgstr "Buit" #: ../gnomemusic/window.py:390 msgid "Playlist {} removed" msgstr "S'ha suprimit la llista de reproducció {}" #: ../data/AboutDialog.ui.in.h:2 msgid "Copyright © 2016 GNOME Music Developers" msgstr "Copyright © 2016 desenvolupadors del Música del GNOME" #: ../data/AboutDialog.ui.in.h:3 msgid "A music player and management application for GNOME." msgstr "Una aplicació de reproducció i gestió de música pel GNOME." #: ../data/AboutDialog.ui.in.h:4 msgid "Visit GNOME Music website" msgstr "Visiteu el lloc web del Música del GNOME" #: ../data/AboutDialog.ui.in.h:5 msgid "" "GNOME Music 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.\n" "\n" "GNOME Music 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.\n" "\n" "You should have received a copy of the GNU General Public License along with " "GNOME Music; if not, write to the Free Software Foundation, Inc., 51 " "Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" "\n" "The GNOME Music authors hereby grant permission for non-GPL compatible " "GStreamer plugins to be used and distributed together with GStreamer and " "GNOME Music. This permission is above and beyond the permissions granted by " "the GPL license by which GNOME Music is covered. If you modify this code, " "you may extend this exception to your version of the code, but you are not " "obligated to do so. If you do not wish to do so, delete this exception " "statement from your version.\n" "\n" "“Magic of the vinyl” by Sami Pyylampi image is licensed by CC-BY-SA 2.0 " "https://www.flickr.com/photos/_spy_/12270839403\n" msgstr "" "El Música del GNOME és programari lliure; podeu redistribuir-lo i/o " "modificar-lo segons els termes de la llicència pública general GNU publicada " "per la Free Software Foundation; siga la versió 2 de la llicència o (segons " "la vostra opció) qualsevol versió posterior.\n" "\n" "El Música del GNOME es distribueix amb l'esperança que siga útil, però " "SENSE CAP GARANTIA; ni tan sols amb la garantia implícita de " "COMERCIALITZACIÓ o IDONEÏTAT PER A UN PROPÒSIT PARTICULAR. Vegeu la " "Llicència Pública General GNU per més detalls.\n" "\n" "Heu de rebre una còpia de la Llicència Pública General GNU amb el GNOME " "Music; si no és el cas, escriviu a la Free Software Foundation, Inc., 51 " "Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" "\n" "Els autors del Música del GNOME presents permeten l'ús i distribució " "conjunta del Música del GNOME amb connectors GStreamer no compatibles amb la " "GPL. Este permís està per sobre dels permisos garantits per la llicència " "GPL sota la qual es troba el Música del GNOME. Si modifiqueu este codi, " "podeu estendre esta excepció a la vostra versió del codi, però no esteu " "obligat a fer-ho. Si no voleu fer-ho, elimineu esta declaració d'excepció " "de la vostra versió.\n" "\n" "La imatge «Magic of the vinyl» d'en Sami Pyylampi està llicenciada sota CC-" "BY-SA 2.0 https://www.flickr.com/photos/_spy_/12270839403\n" #: ../data/AlbumWidget.ui.h:1 msgid "Released" msgstr "Publicat" #: ../data/AlbumWidget.ui.h:2 msgid "Running Length" msgstr "Duració" #: ../data/app-menu.ui.h:1 msgid "_Keyboard Shortcuts" msgstr "_Tecles de drecera" #: ../data/app-menu.ui.h:2 msgid "_Help" msgstr "_Ajuda" #: ../data/app-menu.ui.h:3 msgid "_About" msgstr "_Quant a" #: ../data/app-menu.ui.h:4 msgid "_Quit" msgstr "I_x" #: ../data/headerbar.ui.h:1 msgid "Select All" msgstr "Selecciona-ho tot" #: ../data/headerbar.ui.h:2 msgid "Select None" msgstr "No en seleccionis cap" #: ../data/headerbar.ui.h:4 msgid "Search" msgstr "Busca" #: ../data/headerbar.ui.h:5 msgid "Select" msgstr "Selecciona" #: ../data/headerbar.ui.h:6 ../data/PlaylistDialog.ui.h:6 msgid "_Cancel" msgstr "_Cancel·la" #: ../data/headerbar.ui.h:7 msgid "Back" msgstr "Arrere" #: ../data/help-overlay.ui.h:1 msgctxt "shortcut window" msgid "General" msgstr "General" #: ../data/help-overlay.ui.h:2 msgctxt "shortcut window" msgid "Close window" msgstr "Tanca la finestra" #: ../data/help-overlay.ui.h:3 msgctxt "shortcut window" msgid "Search" msgstr "Busca" #: ../data/help-overlay.ui.h:4 msgctxt "shortcut window" msgid "Help" msgstr "Ajuda" #: ../data/help-overlay.ui.h:5 msgctxt "shortcut window" msgid "Shortcuts" msgstr "Dreceres" #: ../data/help-overlay.ui.h:6 msgctxt "shortcut window" msgid "Playback" msgstr "Reprodueix" #: ../data/help-overlay.ui.h:7 msgctxt "shortcut window" msgid "Play/Pause" msgstr "Reprodueix/Fes una pausa" #: ../data/help-overlay.ui.h:8 msgctxt "shortcut window" msgid "Next song" msgstr "Cançó següent" #: ../data/help-overlay.ui.h:9 msgctxt "shortcut window" msgid "Previous song" msgstr "Cançó anterior" #: ../data/help-overlay.ui.h:10 msgctxt "shortcut window" msgid "Toggle repeat" msgstr "Commuta la repetició" #: ../data/help-overlay.ui.h:11 msgctxt "shortcut window" msgid "Toggle shuffle" msgstr "Commuta la mescla" #: ../data/help-overlay.ui.h:12 msgctxt "shortcut window" msgid "Navigation" msgstr "Navegació" #: ../data/help-overlay.ui.h:13 msgctxt "shortcut window" msgid "Go to Albums" msgstr "Vés als àlbums" #: ../data/help-overlay.ui.h:14 msgctxt "shortcut window" msgid "Go to Artists" msgstr "Vés als artistes" #: ../data/help-overlay.ui.h:15 msgctxt "shortcut window" msgid "Go to Songs" msgstr "Vés a les cançons" #: ../data/help-overlay.ui.h:16 msgctxt "shortcut window" msgid "Go to Playlists" msgstr "Vés a les llistes de reproducció" #: ../data/help-overlay.ui.h:17 msgctxt "shortcut window" msgid "Go back" msgstr "Torna arrere" #: ../data/NoMusic.ui.h:1 msgid "No music found" msgstr "No s'ha trobat música" #. Translators: %s will be replaced with a link with text #: ../data/NoMusic.ui.h:4 #, no-c-format msgid "The contents of your %s will appear here." msgstr "Els continguts de %s apareixeran ací." #: ../data/PlayerToolbar.ui.h:1 msgid "Shuffle" msgstr "Mescla" #: ../data/PlayerToolbar.ui.h:2 msgid "Repeat All" msgstr "Repeteix-ho tot" #: ../data/PlayerToolbar.ui.h:3 msgid "Repeat Song" msgstr "Repeteix la cançó" #. Causes tracks to play in random order #: ../data/PlayerToolbar.ui.h:5 msgid "Shuffle/Repeat Off" msgstr "Aleatori/Repetició desactivada" #: ../data/PlaylistControls.ui.h:1 msgid "_Play" msgstr "_Reprodueix" #: ../data/PlaylistControls.ui.h:2 msgid "_Delete" msgstr "_Suprimeix" #: ../data/PlaylistControls.ui.h:3 msgid "Playlist Name" msgstr "Nom de la llista de reproducció" #: ../data/PlaylistDialog.ui.h:1 msgid "Enter a name for your first playlist" msgstr "Introduïu un nom per la vostra primera llista de reproducció " #: ../data/PlaylistDialog.ui.h:2 msgid "C_reate" msgstr "_Crea" #: ../data/PlaylistDialog.ui.h:3 msgid "New Playlist" msgstr "Llista de reproducció nova" #: ../data/PlaylistDialog.ui.h:4 msgid "Add" msgstr "Afig" #: ../data/PlaylistDialog.ui.h:5 msgid "Select Playlist" msgstr "Seleccioneu una llista de reproducció" #: ../data/PlaylistDialog.ui.h:7 msgid "_Add" msgstr "_Afig" #: ../data/SelectionToolbar.ui.h:1 msgid "_Add to Playlist" msgstr "_Afig a la llista de reproducció" #: ../data/SelectionToolbar.ui.h:2 msgid "_Remove from Playlist" msgstr "_Suprimeix de la llista de reproducció" #~ msgid "the|a|an" #~ msgstr "la|l'|el||les|els|un|una|uns|unes" #~ msgid "Max chars to display in track name on Artist view" #~ msgstr "" #~ "Nombre de caràcters màxims a mostrar en el nom de la pista a la vista " #~ "artista" #~ msgid "" #~ "This setting modifies the amount of chars for track title on Artist view " #~ "before its been ellipsized. Set this to -1 to disable" #~ msgstr "" #~ "Aquest paràmetre modifica el nombre de caràcters que es mostren al títol " #~ "de la pista a la vista artista abans d'escurçar-lo. Establiu-lo -1 per " #~ "inhabilitar-ho." #~ msgid "Unknown Album" #~ msgstr "Àlbum desconegut" #~ msgid "the a an" #~ msgstr "el la els l' les un una uns unes" #~ msgid "All Artists" #~ msgstr "Tots els artistes" #~ msgid "Not playing" #~ msgstr "No s'està reproduint" #~ msgid "by %s, from %s" #~ msgstr "per %s, a %s" #~ msgid "" #~ "No Music found!\n" #~ " Put some files into the folder %s" #~ msgstr "" #~ "No s'ha trobat música\n" #~ " Copieu alguns fitxers a la carpeta: %s" #~ msgid "_New Playlist" #~ msgstr "_Llista de reproducció nova" 070701000000DF000081A400000000000000000000000166968E4E00004659000000000000000000000000000000000000001A00000000gnome-music-46.1/po/cs.po# Czech translation for gnome-music. # Copyright (C) 2013 gnome-music's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-music package. # # Adam Matoušek , 2013. # Vojtěch Cajtler , 2015 # Marek Černocký , 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022. # msgid "" msgstr "" "Project-Id-Version: gnome-music\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-music/issues\n" "POT-Creation-Date: 2024-02-11 20:43+0000\n" "PO-Revision-Date: 2024-02-14 01:50+0100\n" "Last-Translator: Daniel Rusek \n" "Language-Team: čeština \n" "Language: cs\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" "X-Generator: Poedit 3.4.2\n" #: data/org.gnome.Music.appdata.xml.in.in:6 #: data/org.gnome.Music.desktop.in.in:3 data/ui/StatusNavigationPage.ui:4 #: gnomemusic/about.py:138 gnomemusic/application.py:59 gnomemusic/window.py:65 msgid "Music" msgstr "Hudba" #: data/org.gnome.Music.appdata.xml.in.in:7 #: data/org.gnome.Music.desktop.in.in:5 msgid "Play and organize your music collection" msgstr "Přehrávat a organizovat svou hudební sbírku" #: data/org.gnome.Music.appdata.xml.in.in:9 msgid "An easy and pleasant way to play your music." msgstr "Snadný a příjemný způsob přehrávání hudby." #: data/org.gnome.Music.appdata.xml.in.in:12 msgid "" "Find tracks in your local collection, use automatically generated playlists " "or curate a fresh one." msgstr "" "Vyhledávejte skladby ve své místní sbírce, používejte automaticky " "vygenerované seznamy skladeb nebo si vytvořte své vlastní." #. developer_name tag deprecated with Appstream 1.0 #: data/org.gnome.Music.appdata.xml.in.in:188 msgid "The GNOME Music developers" msgstr "Vývojáři Hudby GNOME" #: data/org.gnome.Music.desktop.in.in:4 msgid "Music Player" msgstr "Hudební přehrávač" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Music.desktop.in.in:13 msgid "Music;Player;" msgstr "hudba;muzika;přehrávač;" #: data/org.gnome.Music.gschema.xml:12 msgid "Window size" msgstr "Velikost okna" #: data/org.gnome.Music.gschema.xml:13 msgid "Window size (width and height)." msgstr "Velikost okna (šířka a výška)." #: data/org.gnome.Music.gschema.xml:17 msgid "Window maximized" msgstr "Maximalizované okno" #: data/org.gnome.Music.gschema.xml:18 msgid "Window maximized state." msgstr "Stav maximalizace okna." #: data/org.gnome.Music.gschema.xml:22 msgid "Playback repeat mode" msgstr "Režim opakovaného přehrávání" #. Translators: Don't translate allowed values, just the description in the brackets #: data/org.gnome.Music.gschema.xml:24 msgid "" "Value identifies whether to repeat or randomize playback through the " "collection. Allowed values are: “none” (repeat and shuffle are off), " "“song” (repeat current song), “all” (repeat playlist, no shuffle), " "“shuffle” (shuffle playlist, presumes repeat all)." msgstr "" "Hodnota určuje, jestli opakovaně nebo náhodně přehrávat z celé sbírku. " "Platné hodnoty jsou: „none“ (opakování a náhodný výběr vypnuty), " "„song“ (opakovat aktuální skladbu), „all“ (opakovat vše ze seznamu k " "přehrání, ne náhodně), „shuffle“ (náhodně přehrávat ze seznamu k přehrání, " "předpokládá se opakování všeho)." #: data/org.gnome.Music.gschema.xml:28 data/ui/PreferencesDialog.ui:27 msgid "Enable ReplayGain" msgstr "Povolit ReplayGain" #: data/org.gnome.Music.gschema.xml:29 msgid "Enables or disables ReplayGain for albums" msgstr "Povolí nebo zakáže vyrovnání hlasitosti u alb pomocí ReplayGain" #: data/org.gnome.Music.gschema.xml:33 msgid "Inhibit system suspend" msgstr "Bránit uspání systému" #: data/org.gnome.Music.gschema.xml:34 msgid "Enables or disables inhibiting system suspend while playing music" msgstr "" "Zapne nebo vypne blokování uspávání systému ve chvíli, kdy se přehrává hudba." #: data/ui/AlbumsSearchNavigationPage.ui:5 data/ui/SearchView.ui:98 #: gnomemusic/views/albumsview.py:52 msgid "Albums" msgstr "Alba" #: data/ui/AlbumWidget.ui:84 data/ui/PlayerToolbar.ui:87 #: data/ui/PlaylistControls.ui:101 gnomemusic/widgets/playertoolbar.py:176 msgid "Play" msgstr "Přehrát" #: data/ui/AlbumWidget.ui:130 data/ui/PlaylistControls.ui:5 #: data/ui/SongWidgetMenu.ui:11 msgid "_Play" msgstr "_Přehrát" #: data/ui/AlbumWidget.ui:134 msgid "Add to _Favorite Songs" msgstr "Přidat do o_blíbených skladeb" #: data/ui/AlbumWidget.ui:138 data/ui/SongWidgetMenu.ui:15 msgid "_Add to Playlist…" msgstr "Přid_at do seznamu k přehrání…" #: data/ui/ArtistsSearchNavigationPage.ui:5 data/ui/SearchView.ui:41 #: gnomemusic/views/artistsview.py:51 msgid "Artists" msgstr "Umělci" #: data/ui/HeaderBar.ui:14 msgid "Menu" msgstr "Nabídka" #: data/ui/HeaderBar.ui:22 data/ui/SearchHeaderBar.ui:12 msgid "Search" msgstr "Hledat" #: data/ui/HeaderBar.ui:31 data/ui/PreferencesDialog.ui:4 msgid "Preferences" msgstr "Předvolby" #: data/ui/HeaderBar.ui:35 msgid "Keyboard Shortcuts" msgstr "Klávesové zkratky" #: data/ui/HeaderBar.ui:39 msgid "Help" msgstr "Nápověda" #: data/ui/HeaderBar.ui:43 msgid "About Music" msgstr "O aplikaci Hudba" #: data/ui/help-overlay.ui:11 msgctxt "shortcut window" msgid "General" msgstr "Obecné" #: data/ui/help-overlay.ui:14 msgctxt "shortcut window" msgid "Close window" msgstr "Zavřít okno" #: data/ui/help-overlay.ui:20 msgctxt "shortcut window" msgid "Search" msgstr "Hledat" #: data/ui/help-overlay.ui:26 msgctxt "shortcut window" msgid "Help" msgstr "Nápověda" #: data/ui/help-overlay.ui:32 msgctxt "shortcut window" msgid "Shortcuts" msgstr "Klávesové zkratky" #: data/ui/help-overlay.ui:40 msgctxt "shortcut window" msgid "Playback" msgstr "Přehrát" #: data/ui/help-overlay.ui:43 msgctxt "shortcut window" msgid "Play/Pause" msgstr "Přehrát/pozastavit" #: data/ui/help-overlay.ui:49 msgctxt "shortcut window" msgid "Next song" msgstr "Následující skladba" #: data/ui/help-overlay.ui:55 msgctxt "shortcut window" msgid "Previous song" msgstr "Předchozí skladba" #: data/ui/help-overlay.ui:61 msgctxt "shortcut window" msgid "Toggle repeat" msgstr "Přepnout opakování" #: data/ui/help-overlay.ui:67 msgctxt "shortcut window" msgid "Toggle shuffle" msgstr "Přepnout náhodný výběr" #: data/ui/help-overlay.ui:75 msgctxt "shortcut window" msgid "Navigation" msgstr "Navigace" #: data/ui/help-overlay.ui:78 msgctxt "shortcut window" msgid "Go to Albums" msgstr "Přejít na alba" #: data/ui/help-overlay.ui:84 msgctxt "shortcut window" msgid "Go to Artists" msgstr "Přejít na umělce" #: data/ui/help-overlay.ui:90 msgctxt "shortcut window" msgid "Go to Songs" msgstr "Přejít na skladby" #: data/ui/help-overlay.ui:96 msgctxt "shortcut window" msgid "Go to Playlists" msgstr "Přejít na seznamy k přehrání" #: data/ui/help-overlay.ui:102 msgctxt "shortcut window" msgid "Go back" msgstr "Přejít zpět" #: data/ui/PlayerToolbar.ui:74 msgid "Previous" msgstr "Předchozí" #: data/ui/PlayerToolbar.ui:106 msgid "Next" msgstr "Následující" #: data/ui/PlaylistControls.ui:9 msgid "_Delete" msgstr "_Smazat" #: data/ui/PlaylistControls.ui:13 msgid "_Rename…" msgstr "_Přejmenovat…" #: data/ui/PlaylistControls.ui:28 msgid "Playlist Name" msgstr "Název seznamu k přehrání" #: data/ui/PlaylistControls.ui:62 msgid "_Done" msgstr "_Hotovo" #: data/ui/PlaylistDialog.ui:16 msgid "Add to Playlist" msgstr "Přidání do seznamu k přehrání" #: data/ui/PlaylistDialog.ui:27 msgid "_Cancel" msgstr "_Zrušit" #: data/ui/PlaylistDialog.ui:36 msgid "_Add" msgstr "Přid_at" #: data/ui/PlaylistDialog.ui:91 msgid "Enter a name for your first playlist" msgstr "Zadejte název pro svůj první seznam k přehrání" #: data/ui/PlaylistDialog.ui:116 msgid "C_reate" msgstr "_Vytvořit" #: data/ui/PlaylistDialog.ui:177 msgid "New Playlist…" msgstr "Nový seznam k přehrání…" #: data/ui/PlaylistDialog.ui:189 msgid "Add" msgstr "Přidat" #: data/ui/PreferencesDialog.ui:9 msgid "Player Settings" msgstr "Nastavení přehrávače" #: data/ui/PreferencesDialog.ui:12 msgid "Repeat Mode" msgstr "Režim opakování" #: data/ui/PreferencesDialog.ui:16 msgid "None" msgstr "Žádné" #: data/ui/PreferencesDialog.ui:17 msgid "Song" msgstr "Skladba" #: data/ui/PreferencesDialog.ui:18 msgid "All" msgstr "Vše" #: data/ui/PreferencesDialog.ui:19 gnomemusic/player.py:51 msgid "Shuffle" msgstr "Náhodně zamíchat" #: data/ui/PreferencesDialog.ui:28 msgid "Balance loudness between songs if ReplayGain metadata is found" msgstr "" "Vyvážit hlasitost mezi skladbami, pokud jsou nalezena metadata ReplayGain" #: data/ui/PreferencesDialog.ui:35 msgid "Power Settings" msgstr "Nastavení napájení" #: data/ui/PreferencesDialog.ui:38 msgid "Inhibit Suspend" msgstr "Zamezit uspání" #: data/ui/PreferencesDialog.ui:39 msgid "Only while playing" msgstr "Pouze během přehrávání" #: data/ui/SearchView.ui:55 data/ui/SearchView.ui:112 msgid "View All" msgstr "Zobrazit vše" #: data/ui/SearchView.ui:154 msgid "Songs" msgstr "Skladby" #: data/ui/SongWidgetMenu.ui:19 msgid "_Remove from Playlist" msgstr "Odeb_rat ze seznamu k přehrání" #: data/ui/StatusNavigationPage.ui:36 msgid "Welcome to Music" msgstr "Vítejte v Hudbě" #: gnomemusic/about.py:140 msgid "The GNOME Project" msgstr "Projekt GNOME" #. Translators should localize the following string which #. will be displayed at the bottom of the about box to give #. credit to the translator(s). #: gnomemusic/about.py:146 msgid "translator-credits" msgstr "Marek Černocký " #: gnomemusic/about.py:150 msgid "© The GNOME Music Developers" msgstr "© Vývojáři Hudby GNOME" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:839 msgid "Most Played" msgstr "Nejčastěji přehráváno" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:893 msgid "Never Played" msgstr "Nikdy nepřehráno" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:946 msgid "Recently Played" msgstr "Nedávno přehráno" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1025 msgid "Recently Added" msgstr "Nedávno přidáno" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1088 msgid "Favorite Songs" msgstr "Oblíbené skladby" #. TRANSLATORS: this is a playlist name indicating that the #. files are not tagged enough to be displayed in the albums #. or artists views. #: gnomemusic/grilowrappers/grltrackerplaylists.py:1142 msgid "Insufficiently Tagged" msgstr "Nedostatečně označeno" #: gnomemusic/gstplayer.py:418 msgid "Unable to play the file" msgstr "Soubor nelze přehrát" #: gnomemusic/gstplayer.py:424 msgid "_Find in {}" msgstr "_Hledat v instalátoru {}" #. TRANSLATORS: separator for two codecs #: gnomemusic/gstplayer.py:434 msgid " and " msgstr " a " #. TRANSLATORS: separator for a list of codecs #: gnomemusic/gstplayer.py:437 msgid ", " msgstr ", " #: gnomemusic/gstplayer.py:439 msgid "{} is required to play the file, but is not installed." msgid_plural "{} are required to play the file, but are not installed." msgstr[0] "K přehrání souboru je zapotřebí kodek {}, ale není nainstalován." msgstr[1] "" "K přehrání souboru jsou zapotřebí kodeky {}, ale nejsou nainstalovány." msgstr[2] "" "K přehrání souboru jsou zapotřebí kodeky {}, ale nejsou nainstalovány." #: gnomemusic/inhibitsuspend.py:69 msgid "Playing music" msgstr "Přehrává se hudba" #. Translators: "shuffle" causes tracks to play in random order. #: gnomemusic/player.py:48 msgid "Shuffle/Repeat Off" msgstr "Náhodně/opakování vypnuto" #: gnomemusic/player.py:49 msgid "Repeat Song" msgstr "Opakovat skladbu" #: gnomemusic/player.py:50 msgid "Repeat All" msgstr "Opakovat vše" #: gnomemusic/playlisttoast.py:55 msgid "Playlist {} removed" msgstr "Seznam k přehrání {} byl odstraněn" #: gnomemusic/playlisttoast.py:56 gnomemusic/songtoast.py:65 msgid "Undo" msgstr "Zpět" #: gnomemusic/songtoast.py:64 msgid "{} removed from {}" msgstr "Skladba {} byla odebrána ze seznamu {}" #: gnomemusic/utils.py:89 msgid "Unknown album" msgstr "Neznámé album" #: gnomemusic/utils.py:110 msgid "Unknown Artist" msgstr "Neznámý umělec" #: gnomemusic/views/playlistsview.py:45 msgid "Playlists" msgstr "Seznamy k přehrání" #: gnomemusic/views/searchview.py:220 msgid "No Search Started" msgstr "Vyhledávání nebylo zahájeno" #: gnomemusic/views/searchview.py:222 msgid "Use the searchbar to start searching for albums, artists or songs" msgstr "Pomocí vyhledávacího pole začněte hledat alba, umělce nebo skladby" #: gnomemusic/views/searchview.py:226 msgid "No Results Found" msgstr "Nebyly nalezeny žádné výsledky" #: gnomemusic/views/searchview.py:228 msgid "Try a different search" msgstr "Zkuste jiné hledání" #: gnomemusic/widgets/albumwidget.py:230 msgid "{} minute" msgid_plural "{} minutes" msgstr[0] "{} minuta" msgstr[1] "{} minuty" msgstr[2] "{} minut" #: gnomemusic/widgets/discbox.py:74 msgid "Disc {}" msgstr "Disk {}" #: gnomemusic/widgets/playertoolbar.py:173 msgid "Pause" msgstr "Pozastavit" #: gnomemusic/widgets/playlistcontrols.py:130 msgid "{} Song" msgid_plural "{} Songs" msgstr[0] "{} skladba" msgstr[1] "{} skladby" msgstr[2] "{} skladeb" #: gnomemusic/widgets/searchheaderbar.py:50 msgid "Search songs, artists and albums" msgstr "Vyhledávejte skladby, umělce a alba" #. noqa: F841 #: gnomemusic/widgets/songwidgetmenu.py:94 msgid "_Open Location" msgstr "_Otevřít umístění" #. TRANSLATORS: These are verbs, to (un)mark something as a #. favorite. #: gnomemusic/widgets/startoggle.py:36 msgid "Unstar" msgstr "Zrušit označení hvězdičkou" #: gnomemusic/widgets/startoggle.py:36 msgid "Star" msgstr "Označit hvězdičkou" #: gnomemusic/widgets/statusnavigationpage.py:51 msgid "Your XDG Music directory is not set." msgstr "Nemáte nastavenou složku Hudba dle standardu XDG." #: gnomemusic/widgets/statusnavigationpage.py:58 msgid "Music Folder" msgstr "Složka s hudbou" #. TRANSLATORS: This is a label to display a link to open user's music #. folder. {} will be replaced with the translated text 'Music folder' #: gnomemusic/widgets/statusnavigationpage.py:66 msgid "The contents of your {} will appear here." msgstr "Zde se objeví, co obsahuje vaše {}." #: gnomemusic/widgets/statusnavigationpage.py:116 msgid "No Music Found" msgstr "Nebyla nalezena žádná hudba" #: gnomemusic/widgets/statusnavigationpage.py:117 msgid "Try a Different Search" msgstr "Zkuste hledat nějak jinak" #: gnomemusic/widgets/statusnavigationpage.py:121 msgid "GNOME Music could not connect to Tracker." msgstr "Hudbě GNOME se nezdařilo spojit s programem Tracker." #: gnomemusic/widgets/statusnavigationpage.py:123 msgid "Your music files cannot be indexed without Tracker running." msgstr "Pokud Tracker neběží, není možné indexovat hudební soubory." #: gnomemusic/widgets/statusnavigationpage.py:129 msgid "Your system Tracker version seems outdated." msgstr "Verze programu Tracker je pravděpodoně zastaralá." #: gnomemusic/widgets/statusnavigationpage.py:131 msgid "Music needs Tracker version 3.0.0 or higher." msgstr "Hudba potřebuje program Tracker ve verzi 3.0.0 nebo vyšší." #~ msgid "Select" #~ msgstr "Vybrat" #~ msgid "Select All" #~ msgstr "Vybrat vše" #~ msgid "Select None" #~ msgstr "Zrušit výběr" #~ msgid "Click on items to select them" #~ msgstr "Klikáním vyberte položky" #~ msgid "_Add to Playlist" #~ msgstr "Přid_at do seznamu k přehrání" #~ msgid "Copyright The GNOME Music Developers" #~ msgstr "Copyright vývojáři Hudby GNOME" #~ msgid "Translated by" #~ msgstr "Přeložili" #~ msgid "Selected {} song" #~ msgid_plural "Selected {} songs" #~ msgstr[0] "Vybrána {} skladba" #~ msgstr[1] "Vybrány {} skladby" #~ msgstr[2] "Vybráno {} skladeb" #~ msgid "Report music history to Last.fm" #~ msgstr "Sdělovat Last.fm hudební historii" #~ msgid "" #~ "Enables or disables sending scrobbles and the “currently playing” info to " #~ "Last.fm." #~ msgstr "" #~ "Povolí nebo zakáže zasílání informací o dříve a právě přehrávaných " #~ "skladbách do služby Last.fm." #~ msgid "Last.fm Account" #~ msgstr "Účet Last.fm" #~ msgid "Report Music Listening" #~ msgstr "Sdělovat poslouchané skladby" #~ msgid "_Help" #~ msgstr "_Nápověda" #~ msgid "Artist" #~ msgstr "Umělec" #~ msgid "Back" #~ msgstr "Zpět" #~ msgid "" #~ "Last.fm is a music discovery service that gives you personalised " #~ "recommendations based on the music you listen to." #~ msgstr "" #~ "Last.fm je vyhledávací služba, která Vám doporučí skladby podle toho, co " #~ "posloucháte." #~ msgid "Music Reporting Not Setup" #~ msgstr "Sdělování informací není nastavené" #~ msgid "Login to your Last.fm account to report your music listening." #~ msgstr "" #~ "Aby se mohly sdělovat informace, co posloucháte, musíte s k Last.fm " #~ "přihlásit." #~ msgid "Login" #~ msgstr "Přihlásit" #~ msgid "Artists Results" #~ msgstr "Nalezení umělci" #~ msgid "Albums Results" #~ msgstr "Nalezená alba" #~ msgid "Your music listening is reported to Last.fm." #~ msgstr "Údaje o vášem poslechu hudby jsou sdělovány na Last.fm." #~ msgid "Your music listening is not reported to Last.fm." #~ msgstr "Údaje o vášem poslechu hudby nejsou sdělovány na Last.fm." #~ msgid "Logged in as {}" #~ msgstr "Přihlášeno pod jménem {}" #~ msgid "Configure" #~ msgstr "Nastavit" 070701000000E0000081A400000000000000000000000166968E4E00005523000000000000000000000000000000000000001A00000000gnome-music-46.1/po/da.po# Danish translation for gnome-music. # Copyright (C) 2013-2018 gnome-music's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-music package. # Kris Thomsen , 2013-2014. # Ask Hjorth Larsen , 2015, 2016, 2017, 2018. # scootergrisen, 2015, 2020. # Joe Hansen , 2017. # Alan Mortensen , 2019-24. # msgid "" msgstr "" "Project-Id-Version: gnome-music master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-music/issues\n" "POT-Creation-Date: 2024-02-11 20:43+0000\n" "PO-Revision-Date: 2024-02-28 17:27+0100\n" "Last-Translator: Alan Mortensen \n" "Language-Team: Danish \n" "Language: da\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Poedit 3.0.1\n" #: data/org.gnome.Music.appdata.xml.in.in:6 #: data/org.gnome.Music.desktop.in.in:3 data/ui/StatusNavigationPage.ui:4 #: gnomemusic/about.py:138 gnomemusic/application.py:59 gnomemusic/window.py:65 msgid "Music" msgstr "Musik" #: data/org.gnome.Music.appdata.xml.in.in:7 #: data/org.gnome.Music.desktop.in.in:5 msgid "Play and organize your music collection" msgstr "Afspil og organisér din musiksamling" #: data/org.gnome.Music.appdata.xml.in.in:9 msgid "An easy and pleasant way to play your music." msgstr "En let og behagelig måde at afspille din musik på." #: data/org.gnome.Music.appdata.xml.in.in:12 msgid "" "Find tracks in your local collection, use automatically generated playlists " "or curate a fresh one." msgstr "" "Find musiknumre i din lokale samling, brug automatisk genereret " "afspilningslister eller kuratér en ny." #. developer_name tag deprecated with Appstream 1.0 #: data/org.gnome.Music.appdata.xml.in.in:188 msgid "The GNOME Music developers" msgstr "GNOME Musik-udviklerne" #: data/org.gnome.Music.desktop.in.in:4 msgid "Music Player" msgstr "Musikafspiller" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Music.desktop.in.in:13 msgid "Music;Player;" msgstr "Musik;Afspiller;" #: data/org.gnome.Music.gschema.xml:12 msgid "Window size" msgstr "Vinduesstørrelse" #: data/org.gnome.Music.gschema.xml:13 msgid "Window size (width and height)." msgstr "Vinduesstørrelse (bredde og højde)." #: data/org.gnome.Music.gschema.xml:17 msgid "Window maximized" msgstr "Vindue maksimeret" #: data/org.gnome.Music.gschema.xml:18 msgid "Window maximized state." msgstr "Vindue i maksimeret tilstand." #: data/org.gnome.Music.gschema.xml:22 msgid "Playback repeat mode" msgstr "Afspil i gentagelsestilstand" #. Translators: Don't translate allowed values, just the description in the brackets #: data/org.gnome.Music.gschema.xml:24 msgid "" "Value identifies whether to repeat or randomize playback through the " "collection. Allowed values are: “none” (repeat and shuffle are off), " "“song” (repeat current song), “all” (repeat playlist, no shuffle), " "“shuffle” (shuffle playlist, presumes repeat all)." msgstr "" "Værdien afgør om afspilning af samlingen skal gentages eller blandes. " "Tilladte værdier er: “none” (gentagelse og blanding er slået fra), " "“song” (nuværende sang gentages), “all” (gentag afspilningslisten, bland " "ikke), “shuffle” (bland afspilningslisten, og alle gentages)." #: data/org.gnome.Music.gschema.xml:28 data/ui/PreferencesDialog.ui:27 msgid "Enable ReplayGain" msgstr "Aktivér ReplayGain" #: data/org.gnome.Music.gschema.xml:29 msgid "Enables or disables ReplayGain for albums" msgstr "Aktiverer eller deaktiverer ReplayGain for album" #: data/org.gnome.Music.gschema.xml:33 msgid "Inhibit system suspend" msgstr "Hindr systemhviletilstand" #: data/org.gnome.Music.gschema.xml:34 msgid "Enables or disables inhibiting system suspend while playing music" msgstr "" "Aktiverer eller deaktiverer forhindring af systemhviletilstand ved " "afspilning af musik" #: data/ui/AlbumsSearchNavigationPage.ui:5 data/ui/SearchView.ui:98 #: gnomemusic/views/albumsview.py:52 msgid "Albums" msgstr "Album" #: data/ui/AlbumWidget.ui:84 data/ui/PlayerToolbar.ui:87 #: data/ui/PlaylistControls.ui:101 gnomemusic/widgets/playertoolbar.py:176 msgid "Play" msgstr "Afspil" #: data/ui/AlbumWidget.ui:130 data/ui/PlaylistControls.ui:5 #: data/ui/SongWidgetMenu.ui:11 msgid "_Play" msgstr "_Afspil" #: data/ui/AlbumWidget.ui:134 msgid "Add to _Favorite Songs" msgstr "Tilføj til _yndlingssange" #: data/ui/AlbumWidget.ui:138 data/ui/SongWidgetMenu.ui:15 msgid "_Add to Playlist…" msgstr "_Tilføj til afspilningsliste …" #: data/ui/ArtistsSearchNavigationPage.ui:5 data/ui/SearchView.ui:41 #: gnomemusic/views/artistsview.py:51 msgid "Artists" msgstr "Kunstnere" #: data/ui/HeaderBar.ui:14 msgid "Menu" msgstr "Menu" #: data/ui/HeaderBar.ui:22 data/ui/SearchHeaderBar.ui:12 msgid "Search" msgstr "Søg" #: data/ui/HeaderBar.ui:31 data/ui/PreferencesDialog.ui:4 msgid "Preferences" msgstr "Indstillinger" #: data/ui/HeaderBar.ui:35 msgid "Keyboard Shortcuts" msgstr "Tastaturgenveje" #: data/ui/HeaderBar.ui:39 msgid "Help" msgstr "Hjælp" #: data/ui/HeaderBar.ui:43 msgid "About Music" msgstr "Om Musik" #: data/ui/help-overlay.ui:11 msgctxt "shortcut window" msgid "General" msgstr "Generelt" #: data/ui/help-overlay.ui:14 msgctxt "shortcut window" msgid "Close window" msgstr "Luk vindue" #: data/ui/help-overlay.ui:20 msgctxt "shortcut window" msgid "Search" msgstr "Søg" #: data/ui/help-overlay.ui:26 msgctxt "shortcut window" msgid "Help" msgstr "Hjælp" #: data/ui/help-overlay.ui:32 msgctxt "shortcut window" msgid "Shortcuts" msgstr "Genveje" #: data/ui/help-overlay.ui:40 msgctxt "shortcut window" msgid "Playback" msgstr "Afspil" #: data/ui/help-overlay.ui:43 msgctxt "shortcut window" msgid "Play/Pause" msgstr "Afspil/pause" #: data/ui/help-overlay.ui:49 msgctxt "shortcut window" msgid "Next song" msgstr "Næste sang" #: data/ui/help-overlay.ui:55 msgctxt "shortcut window" msgid "Previous song" msgstr "Forrige sang" #: data/ui/help-overlay.ui:61 msgctxt "shortcut window" msgid "Toggle repeat" msgstr "Slå gentag til/fra" #: data/ui/help-overlay.ui:67 msgctxt "shortcut window" msgid "Toggle shuffle" msgstr "Slå tilfældig rækkefølge til/fra" #: data/ui/help-overlay.ui:75 msgctxt "shortcut window" msgid "Navigation" msgstr "Navigation" #: data/ui/help-overlay.ui:78 msgctxt "shortcut window" msgid "Go to Albums" msgstr "Gå til album" #: data/ui/help-overlay.ui:84 msgctxt "shortcut window" msgid "Go to Artists" msgstr "Gå til kunstnere" #: data/ui/help-overlay.ui:90 msgctxt "shortcut window" msgid "Go to Songs" msgstr "Gå til sange" #: data/ui/help-overlay.ui:96 msgctxt "shortcut window" msgid "Go to Playlists" msgstr "Gå til afspilningslister" #: data/ui/help-overlay.ui:102 msgctxt "shortcut window" msgid "Go back" msgstr "Gå tilbage" #: data/ui/PlayerToolbar.ui:74 msgid "Previous" msgstr "Forrige" #: data/ui/PlayerToolbar.ui:106 msgid "Next" msgstr "Næste" #: data/ui/PlaylistControls.ui:9 msgid "_Delete" msgstr "_Slet" #: data/ui/PlaylistControls.ui:13 msgid "_Rename…" msgstr "_Omdøb …" #: data/ui/PlaylistControls.ui:28 msgid "Playlist Name" msgstr "Navn på afspilningsliste" #: data/ui/PlaylistControls.ui:62 msgid "_Done" msgstr "_Færdig" #: data/ui/PlaylistDialog.ui:16 msgid "Add to Playlist" msgstr "Tilføj til afspilningsliste" #: data/ui/PlaylistDialog.ui:27 msgid "_Cancel" msgstr "_Annullér" #: data/ui/PlaylistDialog.ui:36 msgid "_Add" msgstr "_Tilføj" #: data/ui/PlaylistDialog.ui:91 msgid "Enter a name for your first playlist" msgstr "Indtast et navn for din første afspilningsliste" #: data/ui/PlaylistDialog.ui:116 msgid "C_reate" msgstr "_Opret" #: data/ui/PlaylistDialog.ui:177 msgid "New Playlist…" msgstr "Ny afspilningsliste …" #: data/ui/PlaylistDialog.ui:189 msgid "Add" msgstr "Tilføj" #: data/ui/PreferencesDialog.ui:9 msgid "Player Settings" msgstr "Indstillinger for afspiller" #: data/ui/PreferencesDialog.ui:12 msgid "Repeat Mode" msgstr "Gentagelsestilstand" #: data/ui/PreferencesDialog.ui:16 msgid "None" msgstr "Ingen" #: data/ui/PreferencesDialog.ui:17 msgid "Song" msgstr "Sang" #: data/ui/PreferencesDialog.ui:18 msgid "All" msgstr "Alle" #: data/ui/PreferencesDialog.ui:19 gnomemusic/player.py:51 msgid "Shuffle" msgstr "Bland" #: data/ui/PreferencesDialog.ui:28 msgid "Balance loudness between songs if ReplayGain metadata is found" msgstr "Balancér lydstyrken mellem sange, hvis ReplayGain-metadata findes" #: data/ui/PreferencesDialog.ui:35 msgid "Power Settings" msgstr "Indstillinger for strøm" #: data/ui/PreferencesDialog.ui:38 msgid "Inhibit Suspend" msgstr "Hindr hviletilstand" #: data/ui/PreferencesDialog.ui:39 msgid "Only while playing" msgstr "Kun under afspilning" #: data/ui/SearchView.ui:55 data/ui/SearchView.ui:112 msgid "View All" msgstr "Vis alle" #: data/ui/SearchView.ui:154 msgid "Songs" msgstr "Sange" #: data/ui/SongWidgetMenu.ui:19 msgid "_Remove from Playlist" msgstr "_Fjern fra afspilningsliste" #: data/ui/StatusNavigationPage.ui:36 msgid "Welcome to Music" msgstr "Velkommen til Musik" #: gnomemusic/about.py:140 msgid "The GNOME Project" msgstr "GNOME-projektet" #. Translators should localize the following string which #. will be displayed at the bottom of the about box to give #. credit to the translator(s). #: gnomemusic/about.py:146 msgid "translator-credits" msgstr "" "Ask Hjorth Larsen\n" "Kris Thomsen\n" "scootergrisen\n" "Joe Hansen\n" "Alan Mortensen\n" "\n" "Dansk-gruppen\n" "Websted http://dansk-gruppen.dk\n" "E-mail " #: gnomemusic/about.py:150 msgid "© The GNOME Music Developers" msgstr "© Udviklerne af GNOME Musik" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:839 msgid "Most Played" msgstr "Mest afspillet" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:893 msgid "Never Played" msgstr "Aldrig afspillet" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:946 msgid "Recently Played" msgstr "Afspillet for nylig" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1025 msgid "Recently Added" msgstr "Tilføjet for nylig" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1088 msgid "Favorite Songs" msgstr "Yndlingssange" #. TRANSLATORS: this is a playlist name indicating that the #. files are not tagged enough to be displayed in the albums #. or artists views. #: gnomemusic/grilowrappers/grltrackerplaylists.py:1142 msgid "Insufficiently Tagged" msgstr "Ikke tilstrækkeligt med mærkater" #: gnomemusic/gstplayer.py:418 msgid "Unable to play the file" msgstr "Kan ikke afspille filen" #: gnomemusic/gstplayer.py:424 msgid "_Find in {}" msgstr "_Find i {}" #. TRANSLATORS: separator for two codecs #: gnomemusic/gstplayer.py:434 msgid " and " msgstr " og " #. TRANSLATORS: separator for a list of codecs #: gnomemusic/gstplayer.py:437 msgid ", " msgstr ", " #: gnomemusic/gstplayer.py:439 msgid "{} is required to play the file, but is not installed." msgid_plural "{} are required to play the file, but are not installed." msgstr[0] "{} kræves for at afspille filen, men er ikke installeret." msgstr[1] "{} kræves for at afspille filen, men er ikke installeret." #: gnomemusic/inhibitsuspend.py:69 msgid "Playing music" msgstr "Afspiller musik" #. Translators: "shuffle" causes tracks to play in random order. #: gnomemusic/player.py:48 msgid "Shuffle/Repeat Off" msgstr "Bland/gentag fra" #: gnomemusic/player.py:49 msgid "Repeat Song" msgstr "Gentag sang" #: gnomemusic/player.py:50 msgid "Repeat All" msgstr "Gentag alle" #: gnomemusic/playlisttoast.py:55 msgid "Playlist {} removed" msgstr "Afspilningslisten {} fjernet" #: gnomemusic/playlisttoast.py:56 gnomemusic/songtoast.py:65 msgid "Undo" msgstr "Fortryd" #: gnomemusic/songtoast.py:64 msgid "{} removed from {}" msgstr "{} fjernet fra {}" #: gnomemusic/utils.py:89 msgid "Unknown album" msgstr "Ukendt album" #: gnomemusic/utils.py:110 msgid "Unknown Artist" msgstr "Ukendt kunstner" #: gnomemusic/views/playlistsview.py:45 msgid "Playlists" msgstr "Afspilningslister" #: gnomemusic/views/searchview.py:220 msgid "No Search Started" msgstr "Ingen søgning påbegyndt" #: gnomemusic/views/searchview.py:222 msgid "Use the searchbar to start searching for albums, artists or songs" msgstr "Brug søgebjælken til at søge efter albummer, kunstnere eller sange" #: gnomemusic/views/searchview.py:226 msgid "No Results Found" msgstr "Ingen resultater fundet" #: gnomemusic/views/searchview.py:228 msgid "Try a different search" msgstr "Prøv en anden søgning" #: gnomemusic/widgets/albumwidget.py:230 msgid "{} minute" msgid_plural "{} minutes" msgstr[0] "{} minut" msgstr[1] "{} minutter" #: gnomemusic/widgets/discbox.py:74 msgid "Disc {}" msgstr "Disk {}" #: gnomemusic/widgets/playertoolbar.py:173 msgid "Pause" msgstr "Pause" #: gnomemusic/widgets/playlistcontrols.py:130 msgid "{} Song" msgid_plural "{} Songs" msgstr[0] "{} sang" msgstr[1] "{} sange" #: gnomemusic/widgets/searchheaderbar.py:50 msgid "Search songs, artists and albums" msgstr "Søg efter sange, kunstnere og albummer" #. noqa: F841 #: gnomemusic/widgets/songwidgetmenu.py:94 msgid "_Open Location" msgstr "_Åbn placering" #. TRANSLATORS: These are verbs, to (un)mark something as a #. favorite. #: gnomemusic/widgets/startoggle.py:36 msgid "Unstar" msgstr "Fjern stjerne" #: gnomemusic/widgets/startoggle.py:36 msgid "Star" msgstr "Stjerne" #: gnomemusic/widgets/statusnavigationpage.py:51 msgid "Your XDG Music directory is not set." msgstr "Din XDG-musikmappe er ikke angivet." #: gnomemusic/widgets/statusnavigationpage.py:58 msgid "Music Folder" msgstr "Musikmappe" #. TRANSLATORS: This is a label to display a link to open user's music #. folder. {} will be replaced with the translated text 'Music folder' #: gnomemusic/widgets/statusnavigationpage.py:66 msgid "The contents of your {} will appear here." msgstr "Indholdet af din {} vil blive vist her." #: gnomemusic/widgets/statusnavigationpage.py:116 msgid "No Music Found" msgstr "Ingen musik fundet" #: gnomemusic/widgets/statusnavigationpage.py:117 msgid "Try a Different Search" msgstr "Prøv en anden søgning" #: gnomemusic/widgets/statusnavigationpage.py:121 msgid "GNOME Music could not connect to Tracker." msgstr "GNOME Musik kunne ikke forbinde til Tracker." #: gnomemusic/widgets/statusnavigationpage.py:123 msgid "Your music files cannot be indexed without Tracker running." msgstr "Dine musikfiler kan ikke indekseres, hvis ikke Tracker kører." #: gnomemusic/widgets/statusnavigationpage.py:129 msgid "Your system Tracker version seems outdated." msgstr "Dit system synes at have en gammel version af Tracker." #: gnomemusic/widgets/statusnavigationpage.py:131 msgid "Music needs Tracker version 3.0.0 or higher." msgstr "Musik kræver Tracker version 3.0.0 eller nyere." #~ msgid "Report music history to Last.fm" #~ msgstr "Rapportér musikhistorik til Last.fm" # https://en.wikipedia.org/wiki/Last.fm #~ msgid "" #~ "Enables or disables sending scrobbles and the “currently playing” info to " #~ "Last.fm." #~ msgstr "" #~ "Aktiverer eller deaktiverer, at der sendes “scrobbler” og “afspilles nu”-" #~ "information til Last.fm." #~ msgid "Last.fm Account" #~ msgstr "Konto til Last.fm" #~ msgid "Report Music Listening" #~ msgstr "Rapportér musikken, du lytter til" #~ msgid "_Help" #~ msgstr "_Hjælp" #~ msgid "Select" #~ msgstr "Vælg" #~ msgid "Back" #~ msgstr "Tilbage" #~ msgid "" #~ "Last.fm is a music discovery service that gives you personalised " #~ "recommendations based on the music you listen to." #~ msgstr "" #~ "Last.fm er en musikopdagelsestjeneste, som giver dig personliggjorte " #~ "anbefalinger baseret på den musik, du lytter til." #~ msgid "Music Reporting Not Setup" #~ msgstr "Musikrapportering ikke sat op" #~ msgid "Login to your Last.fm account to report your music listening." #~ msgstr "" #~ "Log ind på din konto til Last.fm for at rapportere den musik, du lytter " #~ "til." #~ msgid "Login" #~ msgstr "Log ind" #~ msgid "Select All" #~ msgstr "Vælg alle" #~ msgid "Select None" #~ msgstr "Vælg ingen" #~ msgid "Click on items to select them" #~ msgstr "Klik på elementerne for at vælge dem" #~ msgid "_Add to Playlist" #~ msgstr "_Tilføj til afspilningsliste" #~ msgid "Copyright The GNOME Music Developers" #~ msgstr "Ophavsret GNOME Musik-udviklerne" #~ msgid "Translated by" #~ msgstr "Oversat af" #~ msgid "Artists Results" #~ msgstr "Resultater — kunstnere" #~ msgid "Albums Results" #~ msgstr "Resultater — albummer" #~ msgid "Selected {} song" #~ msgid_plural "Selected {} songs" #~ msgstr[0] "{} sang valgt" #~ msgstr[1] "{} sange valgt" #~ msgid "Your music listening is reported to Last.fm." #~ msgstr "Musikken, du lytter til, rapporteres til Last.fm." #~ msgid "Your music listening is not reported to Last.fm." #~ msgstr "Musikken, du lytter til, rapporteres ikke til Last.fm." #~ msgid "Logged in as {}" #~ msgstr "Logget ind som {}" #~ msgid "Configure" #~ msgstr "Konfigurér" #~ msgid "A music player and management application for GNOME." #~ msgstr "En musikafspiller og håndteringsprogram til GNOME." #~ msgid "Visit GNOME Music website" #~ msgstr "Besøg GNOME Musiks websted" #~ msgid "" #~ "GNOME Music 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.\n" #~ "\n" #~ "GNOME Music 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.\n" #~ "\n" #~ "You should have received a copy of the GNU General Public License along " #~ "with GNOME Music; if not, write to the Free Software Foundation, Inc., 51 " #~ "Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ "\n" #~ "The GNOME Music authors hereby grant permission for non-GPL compatible " #~ "GStreamer plugins to be used and distributed together with GStreamer and " #~ "GNOME Music. This permission is above and beyond the permissions granted " #~ "by the GPL license by which GNOME Music is covered. If you modify this " #~ "code, you may extend this exception to your version of the code, but you " #~ "are not obligated to do so. If you do not wish to do so, delete this " #~ "exception statement from your version." #~ msgstr "" #~ "GNOME Musik er fri software. Du kan redistribuere og/eller modificere det " #~ "under de betingelser, som er angivet i GNU General Public License, som er " #~ "udgivet af Free Software Foundation. Enten version 2 af licensen eller " #~ "(efter eget valg) enhver senere version.\n" #~ "\n" #~ "GNOME Musik distribueres i håb om, at det vil vise sig nyttigt, men UDEN " #~ "NOGEN FORM FOR GARANTI, uden selv de underforståede garantier omkring " #~ "SALGBARHED eller EGNETHED TIL ET BESTEMT FORMÅL. Yderligere detaljer kan " #~ "læses i GNU General Public License.\n" #~ "\n" #~ "Du bør have modtaget en kopi af GNU General Public License sammen med " #~ "GNOME Musik. Hvis ikke, så skriv til Free software Foundation, Inc., 51 " #~ "Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n" #~ "\n" #~ "Forfatterne af GNOME Musik giver hermed tilladelse til, at ikke-GPL-" #~ "kompatible GStreamer-udvidelsesmoduler kan bruges og distribueres sammen " #~ "med GStreamer og GNOME Musik. Denne tilladelse tilsidesætter " #~ "tilladelserne givet af GPL-licensen, som GNOME Musik er dækket af. Hvis " #~ "du ændrer denne kode, kan du udvide denne undtagelse til din version af " #~ "koden, men du er ikke forpligtet til at gøre det. Hvis du ikke ønsker at " #~ "gøre dette, sletter du blot denne erklæring om undtagelse fra din version." #~ msgid "The contents of your Music Folder will appear here" #~ msgstr "Indholdet af din musikmappe vil blive vist her." #~ msgid "GNOME Music" #~ msgstr "GNOME Musik" #~ msgid "Window position" #~ msgstr "Vinduesplacering" #~ msgid "Window position (x and y)." #~ msgstr "Vinduesplacering (x og y)." #~ msgid "Loading" #~ msgstr "Indlæser" #~ msgid "Add to Playlist…" #~ msgstr "Tilføj til afspilningsliste …" #~ msgid "" #~ "An easy way to play your music. Automatically discover music on your " #~ "computer, the local network and internet services." #~ msgstr "" #~ "En nem måde at afspille musik på. Find automatisk musik på din computer, " #~ "det lokale netværk samt internettjenester." #~ msgid "" #~ "Find tracks in your local collection, get music from DLNA servers or try " #~ "something new with the Jamendo and Magnatune services." #~ msgstr "" #~ "Find spor i din lokale samling, hent musik fra DLNA-servere eller prøv " #~ "noget nyt med tjenesterne Jamendo og Magnatune." #~ msgid "Inital state has been displayed" #~ msgstr "Den oprindelige tilstand har været vist" #~ msgid "Set to true when initial state has been displayed" #~ msgstr "Sæt til true når den oprindelige tilstand har været vist" #~ msgid "Released" #~ msgstr "Udgivet" #~ msgid "Running Length" #~ msgstr "Spilletid" #~ msgid "Composer" #~ msgstr "Komponist" #~ msgctxt "context menu item" #~ msgid "Play" #~ msgstr "Afspil" #~ msgid "Hey DJ" #~ msgstr "Hey DJ" 070701000000E1000081A400000000000000000000000166968E4E00005D5C000000000000000000000000000000000000001A00000000gnome-music-46.1/po/de.po# German translation for gnome-music. # Copyright (C) 2013 gnome-music's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-music package. # # music listening = Musikverlauf # # # Tobias Endrigkeit , 2013. # Christian Kirbach , 2013. # Benjamin Steinwender , 2013. # Bernd Homuth , 2014, 2015. # Vinzenz Vietzke , 2018. # Mario Blättermann , 2013, 2016-2018, 2020. # Wolfgang Stöggl , 2014-2015, 2020. # Tim Sabsch , 2019-2020, 2022. # Philipp Kiemle , 2021-2022. # Jürgen Benvenuti , 2023, 2024. # # msgid "" msgstr "" "Project-Id-Version: gnome-music master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-music/issues\n" "POT-Creation-Date: 2024-02-11 20:43+0000\n" "PO-Revision-Date: 2024-02-12 19:07+0100\n" "Last-Translator: Jürgen Benvenuti \n" "Language-Team: Deutsch \n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Poedit 3.4.2\n" #: data/org.gnome.Music.appdata.xml.in.in:6 #: data/org.gnome.Music.desktop.in.in:3 data/ui/StatusNavigationPage.ui:4 #: gnomemusic/about.py:138 gnomemusic/application.py:59 gnomemusic/window.py:65 msgid "Music" msgstr "Musik" #: data/org.gnome.Music.appdata.xml.in.in:7 #: data/org.gnome.Music.desktop.in.in:5 msgid "Play and organize your music collection" msgstr "Geben Sie Ihre Musik wieder und verwalten Sie Ihre Sammlung" # Ich weiß - nicht ganz wortgetreu, aber m.M.n. geht es bei so einer Beschreibung hauptsächlich darum, kurz und prägnant zu sein. - pk #: data/org.gnome.Music.appdata.xml.in.in:9 msgid "An easy and pleasant way to play your music." msgstr "Eine einfache und schöne Möglichkeit, Ihre Musik zu hören." #: data/org.gnome.Music.appdata.xml.in.in:12 msgid "" "Find tracks in your local collection, use automatically generated playlists " "or curate a fresh one." msgstr "" "Finden Sie Titel in Ihrer lokalen Sammlung, nutzen Sie automatisch " "generierte Wiedergabelisten oder stellen Sie eine neue Wiedergabeliste " "zusammen." #. developer_name tag deprecated with Appstream 1.0 #: data/org.gnome.Music.appdata.xml.in.in:188 msgid "The GNOME Music developers" msgstr "Die GNOME-Musik-Entwickler" #: data/org.gnome.Music.desktop.in.in:4 msgid "Music Player" msgstr "Musikwiedergabe" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Music.desktop.in.in:13 msgid "Music;Player;" msgstr "Music;Player;Musik;Wiedergabe;" #: data/org.gnome.Music.gschema.xml:12 msgid "Window size" msgstr "Fenstergröße" #: data/org.gnome.Music.gschema.xml:13 msgid "Window size (width and height)." msgstr "Fenstergröße (Breite und Höhe)." #: data/org.gnome.Music.gschema.xml:17 msgid "Window maximized" msgstr "Fenster maximiert" #: data/org.gnome.Music.gschema.xml:18 msgid "Window maximized state." msgstr "Fenstermaximierungsstatus." #: data/org.gnome.Music.gschema.xml:22 msgid "Playback repeat mode" msgstr "Wiederholungsmodus" #. Translators: Don't translate allowed values, just the description in the brackets #: data/org.gnome.Music.gschema.xml:24 msgid "" "Value identifies whether to repeat or randomize playback through the " "collection. Allowed values are: “none” (repeat and shuffle are off), " "“song” (repeat current song), “all” (repeat playlist, no shuffle), " "“shuffle” (shuffle playlist, presumes repeat all)." msgstr "" "Der Wert legt fest, ob die Wiedergabe endlos oder zufällig durch die " "Sammlung erfolgt. Gültige Werte sind: »none« (keine – Wiederholen und " "Zufallswiedergabe sind deaktiviert), »song« (den aktuellen Titel " "wiederholen), »all« (alle – die gesamte Wiedergabeliste wiederholen, keine " "Zufallswiedergabe) und »shuffle« (zufällige Wiedergabe aller Titel)." #: data/org.gnome.Music.gschema.xml:28 data/ui/PreferencesDialog.ui:27 msgid "Enable ReplayGain" msgstr "Lautstärken anpassen" #: data/org.gnome.Music.gschema.xml:29 msgid "Enables or disables ReplayGain for albums" msgstr "" "Legt fest, ob Lautstärken zwischen Titeln in Alben angepasst werden sollen " "(»ReplayGain«)" #: data/org.gnome.Music.gschema.xml:33 msgid "Inhibit system suspend" msgstr "Ruhezustand des Systems verhindern" #: data/org.gnome.Music.gschema.xml:34 msgid "Enables or disables inhibiting system suspend while playing music" msgstr "" "Erlaubt oder verhindert den Ruhezustand des Systems, während Musik gespielt " "wird" #: data/ui/AlbumsSearchNavigationPage.ui:5 data/ui/SearchView.ui:98 #: gnomemusic/views/albumsview.py:52 msgid "Albums" msgstr "Alben" #: data/ui/AlbumWidget.ui:84 data/ui/PlayerToolbar.ui:87 #: data/ui/PlaylistControls.ui:101 gnomemusic/widgets/playertoolbar.py:176 msgid "Play" msgstr "Wiedergeben" #: data/ui/AlbumWidget.ui:130 data/ui/PlaylistControls.ui:5 #: data/ui/SongWidgetMenu.ui:11 msgid "_Play" msgstr "_Wiedergabe" #: data/ui/AlbumWidget.ui:134 msgid "Add to _Favorite Songs" msgstr "Zu _Lieblingstiteln hinzufügen" #: data/ui/AlbumWidget.ui:138 data/ui/SongWidgetMenu.ui:15 msgid "_Add to Playlist…" msgstr "Zu _Wiedergabeliste hinzufügen …" #: data/ui/ArtistsSearchNavigationPage.ui:5 data/ui/SearchView.ui:41 #: gnomemusic/views/artistsview.py:51 msgid "Artists" msgstr "Künstler" #: data/ui/HeaderBar.ui:14 msgid "Menu" msgstr "Menü" #: data/ui/HeaderBar.ui:22 data/ui/SearchHeaderBar.ui:12 msgid "Search" msgstr "Suchen" #: data/ui/HeaderBar.ui:31 data/ui/PreferencesDialog.ui:4 msgid "Preferences" msgstr "Einstellungen" #: data/ui/HeaderBar.ui:35 msgid "Keyboard Shortcuts" msgstr "Tastenkürzel" #: data/ui/HeaderBar.ui:39 msgid "Help" msgstr "Hilfe" #: data/ui/HeaderBar.ui:43 msgid "About Music" msgstr "Info zu Musik" #: data/ui/help-overlay.ui:11 msgctxt "shortcut window" msgid "General" msgstr "Allgemein" #: data/ui/help-overlay.ui:14 msgctxt "shortcut window" msgid "Close window" msgstr "Fenster schließen" #: data/ui/help-overlay.ui:20 msgctxt "shortcut window" msgid "Search" msgstr "Suchen" #: data/ui/help-overlay.ui:26 msgctxt "shortcut window" msgid "Help" msgstr "Hilfe" #: data/ui/help-overlay.ui:32 msgctxt "shortcut window" msgid "Shortcuts" msgstr "Tastenkürzel" #: data/ui/help-overlay.ui:40 msgctxt "shortcut window" msgid "Playback" msgstr "Abspielen" #: data/ui/help-overlay.ui:43 msgctxt "shortcut window" msgid "Play/Pause" msgstr "Wiedergabe/Pause" #: data/ui/help-overlay.ui:49 msgctxt "shortcut window" msgid "Next song" msgstr "Nächster Titel" #: data/ui/help-overlay.ui:55 msgctxt "shortcut window" msgid "Previous song" msgstr "Vorheriger Titel" #: data/ui/help-overlay.ui:61 msgctxt "shortcut window" msgid "Toggle repeat" msgstr "Wiederholung ein-/ausschalten" #: data/ui/help-overlay.ui:67 msgctxt "shortcut window" msgid "Toggle shuffle" msgstr "Mischen ein-/ausschalten" #: data/ui/help-overlay.ui:75 msgctxt "shortcut window" msgid "Navigation" msgstr "Navigation" #: data/ui/help-overlay.ui:78 msgctxt "shortcut window" msgid "Go to Albums" msgstr "Zu Alben gehen" #: data/ui/help-overlay.ui:84 msgctxt "shortcut window" msgid "Go to Artists" msgstr "Zu Künstlern gehen" #: data/ui/help-overlay.ui:90 msgctxt "shortcut window" msgid "Go to Songs" msgstr "Zu Titeln gehen" #: data/ui/help-overlay.ui:96 msgctxt "shortcut window" msgid "Go to Playlists" msgstr "Zu Wiedergabelisten gehen" #: data/ui/help-overlay.ui:102 msgctxt "shortcut window" msgid "Go back" msgstr "Zurück gehen" #: data/ui/PlayerToolbar.ui:74 msgid "Previous" msgstr "Vorheriger" #: data/ui/PlayerToolbar.ui:106 msgid "Next" msgstr "Nächster" #: data/ui/PlaylistControls.ui:9 msgid "_Delete" msgstr "_Entfernen" #: data/ui/PlaylistControls.ui:13 msgid "_Rename…" msgstr "_Umbenennen …" #: data/ui/PlaylistControls.ui:28 msgid "Playlist Name" msgstr "Name der Wiedergabeliste" #: data/ui/PlaylistControls.ui:62 msgid "_Done" msgstr "_Fertig" #: data/ui/PlaylistDialog.ui:16 msgid "Add to Playlist" msgstr "Zur Wiedergabeliste hinzufügen" #: data/ui/PlaylistDialog.ui:27 msgid "_Cancel" msgstr "A_bbrechen" #: data/ui/PlaylistDialog.ui:36 msgid "_Add" msgstr "_Hinzufügen" #: data/ui/PlaylistDialog.ui:91 msgid "Enter a name for your first playlist" msgstr "Geben Sie einen Namen für Ihre erste Wiedergabeliste ein" #: data/ui/PlaylistDialog.ui:116 msgid "C_reate" msgstr "An_legen" #: data/ui/PlaylistDialog.ui:177 msgid "New Playlist…" msgstr "Neue Wiedergabeliste …" #: data/ui/PlaylistDialog.ui:189 msgid "Add" msgstr "Hinzufügen" #: data/ui/PreferencesDialog.ui:9 msgid "Player Settings" msgstr "Wiedergabeeinstellungen" #: data/ui/PreferencesDialog.ui:12 msgid "Repeat Mode" msgstr "Wiederholungsmodus" #: data/ui/PreferencesDialog.ui:16 msgid "None" msgstr "Keiner" #: data/ui/PreferencesDialog.ui:17 msgid "Song" msgstr "Titel" #: data/ui/PreferencesDialog.ui:18 msgid "All" msgstr "Alle" #: data/ui/PreferencesDialog.ui:19 gnomemusic/player.py:51 msgid "Shuffle" msgstr "Zufällig" #: data/ui/PreferencesDialog.ui:28 msgid "Balance loudness between songs if ReplayGain metadata is found" msgstr "" "Lautstärke zwischen Titeln ausgleichen, wenn ReplayGain-Metadaten gefunden " "wurden" #: data/ui/PreferencesDialog.ui:35 msgid "Power Settings" msgstr "Energieeinstellungen" #: data/ui/PreferencesDialog.ui:38 msgid "Inhibit Suspend" msgstr "Ruhezustand verhindern" #: data/ui/PreferencesDialog.ui:39 msgid "Only while playing" msgstr "Nur während der Wiedergabe" #: data/ui/SearchView.ui:55 data/ui/SearchView.ui:112 msgid "View All" msgstr "Alle ansehen" #: data/ui/SearchView.ui:154 msgid "Songs" msgstr "Titel" #: data/ui/SongWidgetMenu.ui:19 msgid "_Remove from Playlist" msgstr "Aus der Wiedergabeliste _entfernen" #: data/ui/StatusNavigationPage.ui:36 msgid "Welcome to Music" msgstr "Willkommen bei Musik" #: gnomemusic/about.py:140 msgid "The GNOME Project" msgstr "Das GNOME-Projekt" #. Translators should localize the following string which #. will be displayed at the bottom of the about box to give #. credit to the translator(s). #: gnomemusic/about.py:146 msgid "translator-credits" msgstr "" "Tobias Endrigkeit \n" "Christian Kirbach \n" "Benjamin Steinwender \n" "Bernd Homuth \n" "Vinzenz Vietzke \n" "Mario Blättermann \n" "Wolfgang Stöggl \n" "Tim Sabsch \n" "Philipp Kiemle \n" "Jürgen Benvenuti " #: gnomemusic/about.py:150 msgid "© The GNOME Music Developers" msgstr "© Die GNOME-Musik-Entwickler" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:839 msgid "Most Played" msgstr "Am häufigsten wiedergegeben" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:893 msgid "Never Played" msgstr "Noch nie wiedergegeben" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:946 msgid "Recently Played" msgstr "Zuletzt wiedergegeben" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1025 msgid "Recently Added" msgstr "Zuletzt hinzugefügt" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1088 msgid "Favorite Songs" msgstr "Lieblingstitel" #. TRANSLATORS: this is a playlist name indicating that the #. files are not tagged enough to be displayed in the albums #. or artists views. #: gnomemusic/grilowrappers/grltrackerplaylists.py:1142 msgid "Insufficiently Tagged" msgstr "Nicht genügend Metadaten" #: gnomemusic/gstplayer.py:418 msgid "Unable to play the file" msgstr "Datei kann nicht abgespielt werden" #: gnomemusic/gstplayer.py:424 msgid "_Find in {}" msgstr "In {} _suchen" #. TRANSLATORS: separator for two codecs #: gnomemusic/gstplayer.py:434 msgid " and " msgstr " und " #. TRANSLATORS: separator for a list of codecs #: gnomemusic/gstplayer.py:437 msgid ", " msgstr ", " #: gnomemusic/gstplayer.py:439 msgid "{} is required to play the file, but is not installed." msgid_plural "{} are required to play the file, but are not installed." msgstr[0] "" "{} wird zum Abspielen der Datei benötigt, ist aber nicht installiert." msgstr[1] "" "{} werden zum Abspielen der Datei benötigt, sind aber nicht installiert." #: gnomemusic/inhibitsuspend.py:69 msgid "Playing music" msgstr "Musik wird wiedergegeben" #. Translators: "shuffle" causes tracks to play in random order. #: gnomemusic/player.py:48 msgid "Shuffle/Repeat Off" msgstr "Zufall/Wiederholung aus" #: gnomemusic/player.py:49 msgid "Repeat Song" msgstr "Titel wiederholen" #: gnomemusic/player.py:50 msgid "Repeat All" msgstr "Alle wiederholen" #: gnomemusic/playlisttoast.py:55 msgid "Playlist {} removed" msgstr "Wiedergabeliste {} entfernt" #: gnomemusic/playlisttoast.py:56 gnomemusic/songtoast.py:65 msgid "Undo" msgstr "Rückgängig" #: gnomemusic/songtoast.py:64 msgid "{} removed from {}" msgstr "{} von {} entfernt" #: gnomemusic/utils.py:89 msgid "Unknown album" msgstr "Unbekanntes Album" #: gnomemusic/utils.py:110 msgid "Unknown Artist" msgstr "Unbekannter Künstler" #: gnomemusic/views/playlistsview.py:45 msgid "Playlists" msgstr "Wiedergabelisten" #: gnomemusic/views/searchview.py:220 msgid "No Search Started" msgstr "Es wurde keine Suche begonnen" #: gnomemusic/views/searchview.py:222 msgid "Use the searchbar to start searching for albums, artists or songs" msgstr "" "Verwenden Sie die Suchleiste, um nach Alben, Künstlern oder Titeln zu suchen" #: gnomemusic/views/searchview.py:226 msgid "No Results Found" msgstr "Keine Ergebnisse gefunden" #: gnomemusic/views/searchview.py:228 msgid "Try a different search" msgstr "Versuchen Sie eine andere Suchanfrage" #: gnomemusic/widgets/albumwidget.py:230 msgid "{} minute" msgid_plural "{} minutes" msgstr[0] "{} Minute" msgstr[1] "{} Minuten" #: gnomemusic/widgets/discbox.py:74 msgid "Disc {}" msgstr "Disc {}" #: gnomemusic/widgets/playertoolbar.py:173 msgid "Pause" msgstr "Pause" #: gnomemusic/widgets/playlistcontrols.py:130 msgid "{} Song" msgid_plural "{} Songs" msgstr[0] "{} Titel" msgstr[1] "{} Titel" #: gnomemusic/widgets/searchheaderbar.py:50 msgid "Search songs, artists and albums" msgstr "Titel, Künstler und Alben und durchsuchen" #. noqa: F841 #: gnomemusic/widgets/songwidgetmenu.py:94 msgid "_Open Location" msgstr "Ort ö_ffnen" #. TRANSLATORS: These are verbs, to (un)mark something as a #. favorite. #: gnomemusic/widgets/startoggle.py:36 msgid "Unstar" msgstr "Von Favoriten entfernen" #: gnomemusic/widgets/startoggle.py:36 msgid "Star" msgstr "Zu Favoriten hinzufügen" #: gnomemusic/widgets/statusnavigationpage.py:51 msgid "Your XDG Music directory is not set." msgstr "Ihr XDG-Musikorder wurde nicht festgelegt." #: gnomemusic/widgets/statusnavigationpage.py:58 msgid "Music Folder" msgstr "Musikordner" # Auch wenn hier der Genitiv ("Ihres Ordners") verwendet werden sollte, muss, aufgrund der variablen Zeichenkette, der Dativ verwendet werden - pk #. TRANSLATORS: This is a label to display a link to open user's music #. folder. {} will be replaced with the translated text 'Music folder' #: gnomemusic/widgets/statusnavigationpage.py:66 msgid "The contents of your {} will appear here." msgstr "Der Inhalt von Ihrem {} wird hier angezeigt werden." #: gnomemusic/widgets/statusnavigationpage.py:116 msgid "No Music Found" msgstr "Keine Musik gefunden" #: gnomemusic/widgets/statusnavigationpage.py:117 msgid "Try a Different Search" msgstr "Versuchen Sie eine andere Suchanfrage" #: gnomemusic/widgets/statusnavigationpage.py:121 msgid "GNOME Music could not connect to Tracker." msgstr "GNOME Musik konnte nicht mit Tracker verbunden werden." #: gnomemusic/widgets/statusnavigationpage.py:123 msgid "Your music files cannot be indexed without Tracker running." msgstr "Ihre Musikdateien können nur indiziert werden, wenn Tracker läuft." #: gnomemusic/widgets/statusnavigationpage.py:129 msgid "Your system Tracker version seems outdated." msgstr "Ihre Systemversion von Tracker scheint veraltet zu sein." #: gnomemusic/widgets/statusnavigationpage.py:131 msgid "Music needs Tracker version 3.0.0 or higher." msgstr "Musik benötigt Tracker in der Version 3.0.0 oder neuer." #~ msgid "Report music history to Last.fm" #~ msgstr "Musikverlauf an Last.fm senden" # Scrobbeln ist ein Eigenbegriff von Last.fm #~ msgid "" #~ "Enables or disables sending scrobbles and the “currently playing” info to " #~ "Last.fm." #~ msgstr "" #~ "Aktiviert/Deaktiviert das Senden von Informationen zu Scrobbeln und »Wird " #~ "derzeit abgespielt« an Last.fm." #~ msgid "Last.fm Account" #~ msgstr "Last.fm-Konto" #~ msgid "Report Music Listening" #~ msgstr "Musikverlauf senden" #~ msgid "_Help" #~ msgstr "_Hilfe" #~ msgid "Select" #~ msgstr "Auswählen" #~ msgid "Back" #~ msgstr "Zurück" #~ msgid "" #~ "Last.fm is a music discovery service that gives you personalised " #~ "recommendations based on the music you listen to." #~ msgstr "" #~ "Last.fm ist ein Dienst zur Entdeckung neuer Musik, der Ihnen " #~ "personalisierte Empfehlungen anhand Ihres Musikverlaufs gibt." #~ msgid "Music Reporting Not Setup" #~ msgstr "Senden des Musikverlaufs ist nicht eingerichtet" #~ msgid "Login to your Last.fm account to report your music listening." #~ msgstr "" #~ "Melden Sie sich mit Ihrem Last.fm-Konto an, um Ihren Musikverlauf zu " #~ "senden." #~ msgid "Login" #~ msgstr "Anmelden" #~ msgid "Select All" #~ msgstr "Alle auswählen" #~ msgid "Select None" #~ msgstr "Keinen auswählen" #~ msgid "Click on items to select them" #~ msgstr "Klicken Sie auf ein Objekt, um es auszuwählen" #~ msgid "_Add to Playlist" #~ msgstr "Zur Wiedergabeliste _hinzufügen" #~ msgid "Copyright The GNOME Music Developers" #~ msgstr "Copyright Die GNOME-Musik-Entwickler" #~ msgid "Translated by" #~ msgstr "Übersetzung von" #~ msgid "Artists Results" #~ msgstr "Künstler-Ergebnisse" #~ msgid "Albums Results" #~ msgstr "Alben-Ergebnisse" #~ msgid "Selected {} song" #~ msgid_plural "Selected {} songs" #~ msgstr[0] "{} Titel gewählt" #~ msgstr[1] "{} Titel gewählt" #~ msgid "Your music listening is reported to Last.fm." #~ msgstr "Ihr Musikverlauf wird an Last.fm gesendet." #~ msgid "Your music listening is not reported to Last.fm." #~ msgstr "Ihr Musikverlauf wird nicht an Last.fm gesendet." #~ msgid "Logged in as {}" #~ msgstr "Angemeldet als {}" #~ msgid "Configure" #~ msgstr "Einrichten" #~ msgid "A music player and management application for GNOME." #~ msgstr "Eine Anwendung für Musikwiedergabe und -verwaltung für GNOME." #~ msgid "Visit GNOME Music website" #~ msgstr "Besuchen Sie die GNOME-Musik-Webseite" #~ msgid "" #~ "GNOME Music 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.\n" #~ "\n" #~ "GNOME Music 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.\n" #~ "\n" #~ "You should have received a copy of the GNU General Public License along " #~ "with GNOME Music; if not, write to the Free Software Foundation, Inc., 51 " #~ "Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ "\n" #~ "The GNOME Music authors hereby grant permission for non-GPL compatible " #~ "GStreamer plugins to be used and distributed together with GStreamer and " #~ "GNOME Music. This permission is above and beyond the permissions granted " #~ "by the GPL license by which GNOME Music is covered. If you modify this " #~ "code, you may extend this exception to your version of the code, but you " #~ "are not obligated to do so. If you do not wish to do so, delete this " #~ "exception statement from your version." #~ msgstr "" #~ "GNOME Musik ist freie Software. Sie können es weitergeben und/oder " #~ "verändern, solange Sie sich an die Regeln der »GNU General Public " #~ "License« halten, so wie sie von der Free Software Foundation festgelegt " #~ "wurden; entweder in Version 2 der Lizenz oder (nach Ihrem Ermessen) in " #~ "jeder neueren Version.\n" #~ "\n" #~ "GNOME Musik wurde mit dem Ziel veröffentlicht, dass Sie es nützlich " #~ "finden, jedoch OHNE JEGLICHE GARANTIE, sogar ohne eine implizite Garantie " #~ "der VERKAUFBARKEIT oder der VERWENDBARKEIT FÜR EINEN SPEZIELLEN ZWECK. " #~ "Schauen Sie für weitere Informationen bitte in der »GNU General Public " #~ "License« (GNU GPL) nach.\n" #~ "\n" #~ "Zusammen mit GNOME Musik sollten Sie außerdem eine Kopie der »GNU General " #~ "Public License« erhalten haben. Wenn dem nicht so ist, so schreiben Sie " #~ "bitte an die Free Software Foundation, Inc., 51 Franklin Street, Fifth " #~ "Floor, Boston, MA 02110-1301, USA.\n" #~ "\n" #~ "Die Autoren von GNOME Musik gewähren hiermit das Recht für die Nutzung " #~ "von nicht-GPL-kompatiblen GStreamer-Erweiterungen und den Vertrieb " #~ "zusammen mit GStreamer und GNOME Musik. Dies geht über die " #~ "Berechtigungen hinaus, die von der GPL-Lizenz gewährt werden, der GNOME " #~ "Musik unterliegt. Wenn Sie diesen Code verändern, dürfen Sie diese " #~ "Ausnahme auf Ihren Code erweitern, jedoch sind Sie nicht dazu " #~ "verpflichtet. Wenn Sie dies nicht wünschen, entfernen Sie diese " #~ "Ausnahmeerklärung aus Ihrer Version." #~ msgid "The contents of your Music Folder will appear here" #~ msgstr "Der Inhalt Ihres »Musik«-Ordners wird hier angezeigt werden." #~ msgid "GNOME Music" #~ msgstr "GNOME Musik" #~ msgid "Window position" #~ msgstr "Fensterposition" #~ msgid "Window position (x and y)." #~ msgstr "Fensterposition (x und y)." #~ msgid "Loading" #~ msgstr "Laden" #~ msgid "Add to Playlist…" #~ msgstr "Zur Wiedergabeliste hinzufügen …" #~ msgid "" #~ "An easy way to play your music. Automatically discover music on your " #~ "computer, the local network and internet services." #~ msgstr "" #~ "Eine einfache Möglichkeit zur Wiedergabe Ihrer Musik. Lassen Sie " #~ "automatisiert auf Ihrem Rechner, im lokalen Netzwerk und bei " #~ "Internetdiensten nach Musik suchen." #~ msgid "" #~ "Find tracks in your local collection, get music from DLNA servers or try " #~ "something new with the Jamendo and Magnatune services." #~ msgstr "" #~ "Finden Sie Titel in Ihrer lokalen Sammlung, beziehen Sie Musik von DLNA-" #~ "Servern oder entdecken Sie Neues mit den Diensten Jamendo und Magnatune." #~ msgid "Inital state has been displayed" #~ msgstr "Originalzustand wurde angezeigt" #~ msgid "Set to true when initial state has been displayed" #~ msgstr "Auf wahr setzen, wenn der Originalzustand bereits angezeigt wurde" #~ msgid "Released" #~ msgstr "Erschienen" #~ msgid "Running Length" #~ msgstr "Spielzeit" #~ msgid "Composer" #~ msgstr "Komponist" #~ msgctxt "context menu item" #~ msgid "Play" #~ msgstr "Abspielen" #~ msgid "Hey DJ" #~ msgstr "Hey DJ" #~ msgid "Artist" #~ msgstr "Künstler" #~ msgid "Album" #~ msgstr "Album" #~ msgid "Track Title" #~ msgstr "Stücktitel" #~ msgid "Local" #~ msgstr "Lokal" #~ msgid "Sources" #~ msgstr "Quellen" #~ msgid "Match" #~ msgstr "Übereinstimmung" #~ msgid "@icon@" #~ msgstr "@icon@" #~ msgid "Untitled" #~ msgstr "Unbenannt" #~ msgid "_Quit" #~ msgstr "_Beenden" 070701000000E2000081A400000000000000000000000166968E4E000079AC000000000000000000000000000000000000001A00000000gnome-music-46.1/po/el.po# Greek translation for gnome-music. # Copyright (C) 2013 gnome-music's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-music package. # Dimitris Spingos , 2013. # Dimitris Spingos (Δημήτρης Σπίγγος) , 2013, 2014, 2015. # Dimitris Maroulidis , 2019 # Efstathios Iosifidis , 2013-2020. # msgid "" msgstr "" "Project-Id-Version: gnome-music master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-music/issues\n" "POT-Creation-Date: 2024-03-20 13:10+0000\n" "PO-Revision-Date: 2024-05-01 00:18+0300\n" "Last-Translator: Efstathios Iosifidis \n" "Language-Team: Greek, Modern (1453-) \n" "Language: el\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Poedit 3.4.2\n" "X-Project-Style: gnome\n" #: data/org.gnome.Music.appdata.xml.in.in:6 #: data/org.gnome.Music.desktop.in.in:3 data/ui/StatusNavigationPage.ui:4 #: gnomemusic/about.py:138 gnomemusic/application.py:59 gnomemusic/window.py:65 msgid "Music" msgstr "Μουσική" #: data/org.gnome.Music.appdata.xml.in.in:7 #: data/org.gnome.Music.desktop.in.in:5 msgid "Play and organize your music collection" msgstr "Αναπαραγωγή και οργάνωση της μουσικής σας συλλογής" #: data/org.gnome.Music.appdata.xml.in.in:9 msgid "An easy and pleasant way to play your music." msgstr "Ένας εύκολος και ευχάριστος τρόπος για να αναπαράγετε τη μουσική σας." #: data/org.gnome.Music.appdata.xml.in.in:12 msgid "" "Find tracks in your local collection, use automatically generated playlists " "or curate a fresh one." msgstr "" "Βρείτε κομμάτια στην τοπική σας συλλογή, χρησιμοποιήστε αυτόματα " "δημιουργημένες λίστες αναπαραγωγής ή επιμεληθείτε μια νέα." #. developer_name tag deprecated with Appstream 1.0 #: data/org.gnome.Music.appdata.xml.in.in:214 msgid "The GNOME Music developers" msgstr "Οι προγραμματιστές του GNOME Music" #: data/org.gnome.Music.desktop.in.in:4 msgid "Music Player" msgstr "Αναπαραγωγή μουσικής" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Music.desktop.in.in:13 msgid "Music;Player;" msgstr "Μουσική;Αναπαραγωγή;Music;Player;" #: data/org.gnome.Music.gschema.xml:12 msgid "Window size" msgstr "Μέγεθος παραθύρου" #: data/org.gnome.Music.gschema.xml:13 msgid "Window size (width and height)." msgstr "Μέγεθος παραθύρου (πλάτος και ύψος)." #: data/org.gnome.Music.gschema.xml:17 msgid "Window maximized" msgstr "Μεγιστοποιημένο παράθυρο" #: data/org.gnome.Music.gschema.xml:18 msgid "Window maximized state." msgstr "Κατάσταση μεγιστοποιημένου παραθύρου." #: data/org.gnome.Music.gschema.xml:22 msgid "Playback repeat mode" msgstr "Λειτουργία επανάληψης αναπαραγωγής" #. Translators: Don't translate allowed values, just the description in the brackets #: data/org.gnome.Music.gschema.xml:24 msgid "" "Value identifies whether to repeat or randomize playback through the " "collection. Allowed values are: “none” (repeat and shuffle are off), “song” " "(repeat current song), “all” (repeat playlist, no shuffle), “shuffle” " "(shuffle playlist, presumes repeat all)." msgstr "" "Η τιμή αναγνωρίζει αν θα επαναληφθεί ή θα αναπαραχθεί τυχαία η συλλογή. " "Επιτρεπτές τιμές είναι: «none» (με απενεργοποίηση της επανάληψης και της " "τυχαίας σειράς), «song» (επανάληψη τρέχοντος τραγουδιού), «all» (επανάληψη " "λίστας αναπαραγωγής, χωρίς τυχαία σειρά), «shuffle» (τυχαία σειρά λίστας " "αναπαραγωγής, προϋποθέτει την επανάληψη όλων)." #: data/org.gnome.Music.gschema.xml:28 data/ui/PreferencesDialog.ui:27 msgid "Enable ReplayGain" msgstr "Ενεργοποίηση του ReplayGain" #: data/org.gnome.Music.gschema.xml:29 msgid "Enables or disables ReplayGain for albums" msgstr "Ενεργοποιεί ή απενεργοποιεί το ReplayGain για συλλογές" #: data/org.gnome.Music.gschema.xml:33 msgid "Inhibit system suspend" msgstr "Αναστολή συστήματος αναστολής" #: data/org.gnome.Music.gschema.xml:34 msgid "Enables or disables inhibiting system suspend while playing music" msgstr "" "Ενεργοποίηση ή απενεργοποίηση την αναστολή συστήματος αναστολής κατά την " "αναπαραγωγή μουσικής" #: data/ui/AlbumsSearchNavigationPage.ui:5 data/ui/SearchView.ui:98 #: gnomemusic/views/albumsview.py:52 msgid "Albums" msgstr "Δίσκοι" #: data/ui/AlbumWidget.ui:84 data/ui/PlayerToolbar.ui:87 #: data/ui/PlaylistControls.ui:101 gnomemusic/widgets/playertoolbar.py:176 msgid "Play" msgstr "Αναπαραγωγή" #: data/ui/AlbumWidget.ui:130 data/ui/PlaylistControls.ui:5 #: data/ui/SongWidgetMenu.ui:11 msgid "_Play" msgstr "_Αναπαραγωγή" #: data/ui/AlbumWidget.ui:134 msgid "Add to _Favorite Songs" msgstr "Προσθήκη στο _Αγαπημένα τραγούδια" #: data/ui/AlbumWidget.ui:138 data/ui/SongWidgetMenu.ui:15 msgid "_Add to Playlist…" msgstr "_Προσθήκη στη λίστα αναπαραγωγής…" #: data/ui/ArtistsSearchNavigationPage.ui:5 data/ui/SearchView.ui:41 #: gnomemusic/views/artistsview.py:51 msgid "Artists" msgstr "Καλλιτέχνες" #: data/ui/HeaderBar.ui:14 msgid "Menu" msgstr "Μενού" #: data/ui/HeaderBar.ui:22 data/ui/SearchHeaderBar.ui:12 msgid "Search" msgstr "Αναζήτηση" #: data/ui/HeaderBar.ui:31 data/ui/PreferencesDialog.ui:4 msgid "Preferences" msgstr "Προτιμήσεις" #: data/ui/HeaderBar.ui:35 msgid "Keyboard Shortcuts" msgstr "Συντομεύσεις πληκτρολογίου" #: data/ui/HeaderBar.ui:39 msgid "Help" msgstr "Βοήθεια" #: data/ui/HeaderBar.ui:43 msgid "About Music" msgstr "Περί εφαρμογής Μουσική" #: data/ui/help-overlay.ui:11 msgctxt "shortcut window" msgid "General" msgstr "Γενικά" #: data/ui/help-overlay.ui:14 msgctxt "shortcut window" msgid "Close window" msgstr "Κλείσιμο παραθύρου" #: data/ui/help-overlay.ui:20 msgctxt "shortcut window" msgid "Search" msgstr "Αναζήτηση" #: data/ui/help-overlay.ui:26 msgctxt "shortcut window" msgid "Help" msgstr "Βοήθεια" #: data/ui/help-overlay.ui:32 msgctxt "shortcut window" msgid "Shortcuts" msgstr "Συντομεύσεις" #: data/ui/help-overlay.ui:40 msgctxt "shortcut window" msgid "Playback" msgstr "Αναπαραγωγή" #: data/ui/help-overlay.ui:43 msgctxt "shortcut window" msgid "Play/Pause" msgstr "Αναπαραγωγή/Παύση" #: data/ui/help-overlay.ui:49 msgctxt "shortcut window" msgid "Next song" msgstr "Επόμενο τραγούδι" #: data/ui/help-overlay.ui:55 msgctxt "shortcut window" msgid "Previous song" msgstr "Προηγούμενο τραγούδι" #: data/ui/help-overlay.ui:61 msgctxt "shortcut window" msgid "Toggle repeat" msgstr "Εναλλαγή επανάληψης" #: data/ui/help-overlay.ui:67 msgctxt "shortcut window" msgid "Toggle shuffle" msgstr "Εναλλαγή τυχαίας σειράς" #: data/ui/help-overlay.ui:75 msgctxt "shortcut window" msgid "Navigation" msgstr "Περιήγηση" #: data/ui/help-overlay.ui:78 msgctxt "shortcut window" msgid "Go to Albums" msgstr "Μετάβαση στους δίσκους" #: data/ui/help-overlay.ui:84 msgctxt "shortcut window" msgid "Go to Artists" msgstr "Μετάβαση στους καλλιτέχνες" #: data/ui/help-overlay.ui:90 msgctxt "shortcut window" msgid "Go to Songs" msgstr "Μετάβαση στα τραγούδια" #: data/ui/help-overlay.ui:96 msgctxt "shortcut window" msgid "Go to Playlists" msgstr "Μετάβαση στις λίστες αναπαραγωγής" #: data/ui/help-overlay.ui:102 msgctxt "shortcut window" msgid "Go back" msgstr "Μετάβαση πίσω" #: data/ui/PlayerToolbar.ui:74 msgid "Previous" msgstr "Προηγούμενο" #: data/ui/PlayerToolbar.ui:106 msgid "Next" msgstr "Επόμενο" #: data/ui/PlaylistControls.ui:9 msgid "_Delete" msgstr "_Διαγραφή" #: data/ui/PlaylistControls.ui:13 msgid "_Rename…" msgstr "_Μετονομασία…" #: data/ui/PlaylistControls.ui:28 msgid "Playlist Name" msgstr "Όνομα λίστας αναπαραγωγής" #: data/ui/PlaylistControls.ui:62 msgid "_Done" msgstr "_Ολοκληρώθηκε" #: data/ui/PlaylistDialog.ui:16 msgid "Add to Playlist" msgstr "Προσθήκη στη λίστα αναπαραγωγής" #: data/ui/PlaylistDialog.ui:27 msgid "_Cancel" msgstr "Ακύ_ρωση" #: data/ui/PlaylistDialog.ui:36 msgid "_Add" msgstr "_Προσθήκη" #: data/ui/PlaylistDialog.ui:91 msgid "Enter a name for your first playlist" msgstr "Πληκτρολογήστε ένα όνομα για την πρώτη σας λίστα αναπαραγωγής" #: data/ui/PlaylistDialog.ui:116 msgid "C_reate" msgstr "Δ_ημιουργία" #: data/ui/PlaylistDialog.ui:177 msgid "New Playlist…" msgstr "Νέα λίστα αναπαραγωγής…" #: data/ui/PlaylistDialog.ui:189 msgid "Add" msgstr "Προσθήκη" #: data/ui/PreferencesDialog.ui:9 msgid "Player Settings" msgstr "Ρυθμίσεις αναπαραγωγέα" #: data/ui/PreferencesDialog.ui:12 msgid "Repeat Mode" msgstr "Λειτουργία επανάληψης" #: data/ui/PreferencesDialog.ui:16 msgid "None" msgstr "Kανένα" #: data/ui/PreferencesDialog.ui:17 msgid "Song" msgstr "Τραγούδι" #: data/ui/PreferencesDialog.ui:18 msgid "All" msgstr "Όλα" #: data/ui/PreferencesDialog.ui:19 gnomemusic/player.py:51 msgid "Shuffle" msgstr "Τυχαία σειρά" #: data/ui/PreferencesDialog.ui:28 msgid "Balance loudness between songs if ReplayGain metadata is found" msgstr "" "Ισορροπία της έντασης μεταξύ των τραγουδιών εάν βρεθούν μεταδεδομένα " "ReplayGain" #: data/ui/PreferencesDialog.ui:35 msgid "Power Settings" msgstr "Ρυθμίσεις τροφοδοσίας" #: data/ui/PreferencesDialog.ui:38 msgid "Inhibit Suspend" msgstr "Αναστολή συστήματος αναστολής" #: data/ui/PreferencesDialog.ui:39 msgid "Only while playing" msgstr "Μόνο κατά τη διάρκεια της αναπαραγωγής" #: data/ui/SearchView.ui:55 data/ui/SearchView.ui:112 msgid "View All" msgstr "Προβολή όλων" #: data/ui/SearchView.ui:154 msgid "Songs" msgstr "Τραγούδια" #: data/ui/SongWidgetMenu.ui:19 msgid "_Remove from Playlist" msgstr "Α_φαίρεση από την λίστα αναπαραγωγής" #: data/ui/StatusNavigationPage.ui:36 msgid "Welcome to Music" msgstr "Καλώς ορίσατε στην Μουσική" #: gnomemusic/about.py:140 msgid "The GNOME Project" msgstr "Το έργο GNOME" #. Translators should localize the following string which #. will be displayed at the bottom of the about box to give #. credit to the translator(s). #: gnomemusic/about.py:146 msgid "translator-credits" msgstr "" "Ελληνική μεταφραστική ομάδα GNOME\n" " Ευστάθιος Ιωσηφίδης \n" "\n" "Για περισσότερες πληροφορίες, επισκεφθείτε τη σελίδα\n" "http://gnome.gr/" #: gnomemusic/about.py:150 msgid "© The GNOME Music Developers" msgstr "© Οι προγραμματιστές του GNOME Music" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:839 msgid "Most Played" msgstr "Το περισσότερο παιγμένο" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:893 msgid "Never Played" msgstr "Δεν παίχτηκε ποτέ" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:946 msgid "Recently Played" msgstr "Παίχτηκε πρόσφατα" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1025 msgid "Recently Added" msgstr "Προστέθηκε πρόσφατα" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1088 msgid "Favorite Songs" msgstr "Αγαπημένα τραγούδια" #. TRANSLATORS: this is a playlist name indicating that the #. files are not tagged enough to be displayed in the albums #. or artists views. #: gnomemusic/grilowrappers/grltrackerplaylists.py:1142 msgid "Insufficiently Tagged" msgstr "Ανεπαρκής ετικέτα" #: gnomemusic/gstplayer.py:418 msgid "Unable to play the file" msgstr "Αδύνατη η αναπαραγωγή του αρχείου" #: gnomemusic/gstplayer.py:424 msgid "_Find in {}" msgstr "Εύ_ρεση στο {}" #. TRANSLATORS: separator for two codecs #: gnomemusic/gstplayer.py:434 msgid " and " msgstr " και " #. TRANSLATORS: separator for a list of codecs #: gnomemusic/gstplayer.py:437 msgid ", " msgstr ", " #: gnomemusic/gstplayer.py:439 msgid "{} is required to play the file, but is not installed." msgid_plural "{} are required to play the file, but are not installed." msgstr[0] "" "Απαιτείται το {} για αναπαραγωγή του αρχείου, αλλά δεν είναι εγκατεστημένο." msgstr[1] "" "Απαιτούνται τα {} για αναπαραγωγή του αρχείου, αλλά δεν είναι εγκατεστημένα." #: gnomemusic/inhibitsuspend.py:69 msgid "Playing music" msgstr "Αναπαραγωγή μουσικής" #. Translators: "shuffle" causes tracks to play in random order. #: gnomemusic/player.py:48 msgid "Shuffle/Repeat Off" msgstr "Τυχαία σειρά/Ανενεργή επανάληψη" #: gnomemusic/player.py:49 msgid "Repeat Song" msgstr "Επανάληψη τραγουδιού" #: gnomemusic/player.py:50 msgid "Repeat All" msgstr "Επανάληψη όλων" #: gnomemusic/playlisttoast.py:55 msgid "Playlist {} removed" msgstr "Αφαιρέθηκε η λίστα αναπαραγωγής {}" #: gnomemusic/playlisttoast.py:56 gnomemusic/songtoast.py:65 msgid "Undo" msgstr "Aναίρεση" #: gnomemusic/songtoast.py:64 msgid "{} removed from {}" msgstr "{} αφαιρέθηκε από {}" #: gnomemusic/utils.py:89 msgid "Unknown album" msgstr "Άγνωστο άλμπουμ" #: gnomemusic/utils.py:110 msgid "Unknown Artist" msgstr "Άγνωστος καλλιτέχνης" #: gnomemusic/views/playlistsview.py:45 msgid "Playlists" msgstr "Λίστες αναπαραγωγής" #: gnomemusic/views/searchview.py:220 msgid "No Search Started" msgstr "Δεν ξεκίνησε αναζήτηση" #: gnomemusic/views/searchview.py:222 msgid "Use the searchbar to start searching for albums, artists or songs" msgstr "" "Χρησιμοποιήστε τη γραμμή αναζήτησης για να ξεκινήσετε την αναζήτηση άλμπουμ, " "καλλιτεχνών ή τραγουδιών" #: gnomemusic/views/searchview.py:226 msgid "No Results Found" msgstr "Δεν βρέθηκαν αποτελέσματα" #: gnomemusic/views/searchview.py:228 msgid "Try a different search" msgstr "Δοκιμάστε διαφορετική αναζήτηση" #: gnomemusic/widgets/albumwidget.py:230 msgid "{} minute" msgid_plural "{} minutes" msgstr[0] "{} λεπτό" msgstr[1] "{} λεπτά" #: gnomemusic/widgets/discbox.py:74 msgid "Disc {}" msgstr "Δίσκος {}" #: gnomemusic/widgets/playertoolbar.py:173 msgid "Pause" msgstr "Παύση" #: gnomemusic/widgets/playlistcontrols.py:130 msgid "{} Song" msgid_plural "{} Songs" msgstr[0] "{} τραγούδι" msgstr[1] "{} τραγούδια" #: gnomemusic/widgets/searchheaderbar.py:50 msgid "Search songs, artists and albums" msgstr "Αναζήτηση τραγουδιών, καλλιτεχνών και άλμπουμ" #. noqa: F841 #: gnomemusic/widgets/songwidgetmenu.py:94 msgid "_Open Location" msgstr "Ά_νοιγμα τοποθεσίας" #. TRANSLATORS: These are verbs, to (un)mark something as a #. favorite. #: gnomemusic/widgets/startoggle.py:36 msgid "Unstar" msgstr "Άρση επισήμανσης" #: gnomemusic/widgets/startoggle.py:36 msgid "Star" msgstr "Επισήμανση" #: gnomemusic/widgets/statusnavigationpage.py:51 msgid "Your XDG Music directory is not set." msgstr "Ο κατάλογός Μουσική XDG δεν έχει ρυθμιστεί." #: gnomemusic/widgets/statusnavigationpage.py:58 msgid "Music Folder" msgstr "Φάκελος μουσικής" #. TRANSLATORS: This is a label to display a link to open user's music #. folder. {} will be replaced with the translated text 'Music folder' #: gnomemusic/widgets/statusnavigationpage.py:66 msgid "The contents of your {} will appear here." msgstr "Τα περιεχόμενα του {} θα εμφανιστούν εδώ." #: gnomemusic/widgets/statusnavigationpage.py:116 msgid "No Music Found" msgstr "Δεν βρέθηκε μουσική" #: gnomemusic/widgets/statusnavigationpage.py:117 msgid "Try a Different Search" msgstr "Δοκιμάστε μια διαφορετική αναζήτηση" #: gnomemusic/widgets/statusnavigationpage.py:121 msgid "GNOME Music could not connect to Tracker." msgstr "Η Μουσική του GNOME δεν μπόρεσε να συνδεθεί με το Tracker." #: gnomemusic/widgets/statusnavigationpage.py:123 msgid "Your music files cannot be indexed without Tracker running." msgstr "" "Δεν είναι δυνατή η ευρετηρίαση των αρχείων μουσικής σας χωρίς την εκτέλεση " "του Tracker." #: gnomemusic/widgets/statusnavigationpage.py:129 msgid "Your system Tracker version seems outdated." msgstr "Η έκδοση Tracker του συστήματος είναι παρωχημένη." #: gnomemusic/widgets/statusnavigationpage.py:131 msgid "Music needs Tracker version 3.0.0 or higher." msgstr "Η Μουσική χρειάζεται έκδοση Tracker 3.0.0 ή μεγαλύτερη." #~ msgid "Report music history to Last.fm" #~ msgstr "Αναφορά ιστορικού μουσικής στην Last.fm" #~ msgid "" #~ "Enables or disables sending scrobbles and the “currently playing” info to " #~ "Last.fm." #~ msgstr "" #~ "Ενεργοποιεί ή απενεργοποιεί την αποστολή πληροφοριών αρχείων \"που " #~ "αναπαράγονται αυτήν τη στιγμή\" στο Last.fm." #~ msgid "Last.fm Account" #~ msgstr "Λογαριασμός Last.fm" #~ msgid "Report Music Listening" #~ msgstr "Αναφορά ακρόασης μουσικής" #~ msgid "_Help" #~ msgstr "_Βοήθεια" #~ msgid "Select" #~ msgstr "Επιλογή" #~ msgid "Back" #~ msgstr "Πίσω" #~ msgid "" #~ "Last.fm is a music discovery service that gives you personalised " #~ "recommendations based on the music you listen to." #~ msgstr "" #~ "Το Last.fm είναι μια υπηρεσία που ανακαλύπτετε μουσική και σας παρέχει " #~ "εξατομικευμένες προτάσεις βάσει της μουσικής που ακούτε." #~ msgid "Music Reporting Not Setup" #~ msgstr "Δεν είναι ρυθμισμένη η αναφορά μουσικής" #~ msgid "Login to your Last.fm account to report your music listening." #~ msgstr "" #~ "Συνδεθείτε στον λογαριασμό σας Last.fm για να αναφέρετε τη μουσική σας." #~ msgid "Login" #~ msgstr "Σύνδεση" #~ msgid "Select All" #~ msgstr "Επιλογή όλων" #~ msgid "Select None" #~ msgstr "Καμία επιλογή" #~ msgid "Click on items to select them" #~ msgstr "Πατήστε σε αντικείμενα για να τα επιλέξετε" #~ msgid "_Add to Playlist" #~ msgstr "Προ_σθήκη στη λίστα αναπαραγωγής" #~ msgid "Copyright The GNOME Music Developers" #~ msgstr "Πνευματικά δικαιώματα GNOME Music Developers" #~ msgid "Translated by" #~ msgstr "Μετάφραση από" #~ msgid "Artists Results" #~ msgstr "Αποτελέσματα Καλλιτεχνών" #~ msgid "Albums Results" #~ msgstr "Αποτελέσματα Δίσκων" #~ msgid "Selected {} song" #~ msgid_plural "Selected {} songs" #~ msgstr[0] "Επιλέχθηκε {} τραγούδι" #~ msgstr[1] "Επιλέχθηκαν {} τραγούδια" #~ msgid "Your music listening is reported to Last.fm." #~ msgstr "Η μουσική που ακούτε αναφέρεται στο Last.fm." #~ msgid "Your music listening is not reported to Last.fm." #~ msgstr "Η μουσική που ακούτε δεν αναφέρεται στο Last.fm." #~ msgid "Logged in as {}" #~ msgstr "Συνδεδεμένος ως {}" #~ msgid "Configure" #~ msgstr "Ρύθμιση" #~ msgid "GNOME Music" #~ msgstr "Μουσική GNOME" #~ msgid "Window position" #~ msgstr "Θέση παραθύρου" #~ msgid "Window position (x and y)." #~ msgstr "Θέση παραθύρου (x και y)." #~ msgid "A music player and management application for GNOME." #~ msgstr "Εφαρμογή αναπαραγωγής και διαχείρισης μουσικής, για το GNOME." #~ msgid "Visit GNOME Music website" #~ msgstr "Επισκεφθείτε τον ιστότοπο της εφαρμογής Μουσική GNOME" #~ msgid "" #~ "GNOME Music 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.\n" #~ "\n" #~ "GNOME Music 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.\n" #~ "\n" #~ "You should have received a copy of the GNU General Public License along " #~ "with GNOME Music; if not, write to the Free Software Foundation, Inc., 51 " #~ "Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ "\n" #~ "The GNOME Music authors hereby grant permission for non-GPL compatible " #~ "GStreamer plugins to be used and distributed together with GStreamer and " #~ "GNOME Music. This permission is above and beyond the permissions granted " #~ "by the GPL license by which GNOME Music is covered. If you modify this " #~ "code, you may extend this exception to your version of the code, but you " #~ "are not obligated to do so. If you do not wish to do so, delete this " #~ "exception statement from your version." #~ msgstr "" #~ "Η Μουσική GNOME είναι ελεύθερο λογισμικό. Μπορείτε να το αναδιανείμετε ή/" #~ "και να το τροποποιήσετε, υπό τους όρους της άδειας GNU General Public " #~ "License, όπως αυτή εκδίδεται από το Ίδρυμα Ελεύθερου Λογισμικού (Free " #~ "Software Foundation), είτε της έκδοσης 2 της άδειας, είτε (κατ' επιλογήν " #~ "σας) οποιασδήποτε άλλης μεταγενέστερης έκδοσης.\n" #~ "\n" #~ "Το GNOME Music διανέμεται με την ελπίδα πως θα είναι χρήσιμο, αλλά ΧΩΡΙΣ " #~ "ΚΑΜΙΑ ΕΓΓΥΗΣΗ, χωρίς καν την υπονοούμενη εγγύηση της ΕΜΠΟΡΕΥΣΙΜΟΤΗΤΑΣ ή " #~ "της ΚΑΤΑΛΛΗΛΟΤΗΤΑΣ ΓΙΑ ΣΥΓΚΕΚΡΙΜΕΝΟ ΣΚΟΠΟ. Δείτε την άδεια GNU General " #~ "Public License για περισσότερες λεπτομέρειες.\n" #~ "\n" #~ "Πρέπει να έχετε λάβει αντίγραφο της άδειας GNU General Public License " #~ "μαζί με το GNOME Music. Αν όχι, γράψτε στο: Free Software Foundation, " #~ "Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA\n" #~ "\n" #~ "Οι προγραμματιστές του GNOME Music επιτρέπουν στα μη-συμβατά με την άδεια " #~ "GPL πρόσθετα GStreamer, να χρησιμοποιούνται και να διανέμονται μαζί με το " #~ "GStreamer και το GNOME Music. Η άδεια είναι υπεράνω και πέραν των " #~ "απαγορεύσεων της άδειας χρήσης GPL, και στις οποίες υπάγεται η εφαρμογή " #~ "GNOME Music. Εάν τροποποιήσετε τον κώδικα, μπορείτε να επεκτείνετε αυτήν " #~ "την εξαίρεση στη δική σας έκδοση του κώδικα, χωρίς όμως να είστε " #~ "υποχρεωμένοι να το κάνετε. Εάν δεν θέλετε να το κάνετε, διαγράψτε αυτή " #~ "τη δήλωση εξαίρεσης από τη δική σας έκδοση." #~ msgid "Loading" #~ msgstr "Γίνεται φόρτωση" #~ msgid "Add to Playlist…" #~ msgstr "Προσθήκη στη λίστα αναπαραγωγής…" #~ msgid "Remove From Playlist" #~ msgstr "Αφαίρεση από την λίστα αναπαραγωγής" #~ msgid "" #~ "An easy way to play your music. Automatically discover music on your " #~ "computer, the local network and internet services." #~ msgstr "" #~ "Ένας εύκολος τρόπος για αναπαραγωγή της μουσικής σας. Ανακαλύψτε αυτόματα " #~ "την μουσική στον υπολογιστή σας, στο τοπικό δίκτυο και στις υπηρεσίες " #~ "διαδικτύου." #~ msgid "" #~ "Find tracks in your local collection, get music from DLNA servers or try " #~ "something new with the Jamendo and Magnatune services." #~ msgstr "" #~ "Ανακαλύψτε τραγούδια στην τοπική σας συλλογή, λάβετε μουσική από τους " #~ "διακομιστές DLNA ή δοκιμάστε κάτι καινούριο με το Jamendo και τις " #~ "υπηρεσίες Magnatune." #~ msgid "Inital state has been displayed" #~ msgstr "Η αρχική κατάσταση έχει εμφανιστεί" #~ msgid "Set to true when initial state has been displayed" #~ msgstr "Ορίστε το ως αληθές όταν έχει εμφανιστεί η αρχική κατάσταση" #~ msgid "Released" #~ msgstr "Κυκλοφόρησε" #~ msgid "Running Length" #~ msgstr "Εκτελούμενη διάρκεια" #~ msgid "Composer" #~ msgstr "Συνθέτης" #~ msgctxt "context menu item" #~ msgid "Play" #~ msgstr "Αναπαραγωγή" #~ msgid "Hey DJ" #~ msgstr "Γεια σου DJ" #~ msgid "Artist" #~ msgstr "Καλλιτέχνης" #~ msgid "Album" #~ msgstr "Δίσκος" #~ msgid "Track Title" #~ msgstr "Τίτλος κομματιού" #~ msgid "Local" #~ msgstr "Τοπικά" #~ msgid "Sources" #~ msgstr "Πηγές" #~ msgid "Match" #~ msgstr "Ταίριασμα" #~ msgid "@icon@" #~ msgstr "@icon@" #~ msgid "Untitled" #~ msgstr "Χωρίς τίτλο" #~ msgid "_Quit" #~ msgstr "Έ_ξοδος" #~ msgid "Music is the new GNOME music playing application." #~ msgstr "Η Μουσική είναι η νέα εφαρμογή του GNOME για αναπαραγωγή μουσικής." #~ msgid "org.gnome.Music" #~ msgstr "org.gnome.Music" #~ msgid "Selected %d item" #~ msgid_plural "Selected %d items" #~ msgstr[0] "Επιλέχθηκε %d αντικείμενο" #~ msgstr[1] "Επιλέχθηκαν %d αντικείμενα" #~ msgid "Empty" #~ msgstr "Κενό" #~ msgid "%d min" #~ msgstr "%d λεπτά" #~ msgid "Select Playlist" #~ msgstr "Επιλογή λίστας αναπαραγωγής" #~ msgid "Search mode" #~ msgstr "Λειτουργία αναζήτησης" #~ msgid "If true, the search bar is shown." #~ msgstr "Αν είναι αληθές, εμφανίζεται η γραμμή αναζήτησης." #~ msgid "Notifications mode" #~ msgstr "Λειτουργία ειδοποιήσεων" #~ msgid "Enables or disables playback notifications" #~ msgstr "Ενεργοποιεί ή απενεργοποιεί τις ειδοποιήσεις αναπαραγωγής" #~ msgid "the|a|an" #~ msgstr "the|a|an|ο|η|το|τα|οι" #~ msgid "Max chars to display in track name on Artist view" #~ msgstr "" #~ "Ο μέγιστος αριθμός χαρακτήρων που θα εμφανίζεται στο όνομα του κομματιού " #~ "στην προβολή καλλιτέχνη" #~ msgid "" #~ "This setting modifies the amount of chars for track title on Artist view " #~ "before its been ellipsized. Set this to -1 to disable" #~ msgstr "" #~ "Αυτή η ρύθμιση τροποποιεί τον αριθμό των χαρακτήρων για τον τίτλο του " #~ "κομματιού στην προβολή καλλιτέχνη πριν την μερική απόκρυψη. Ορίστε το σε " #~ "-1 για να το απενεργοποιήσετε." #~ msgid "the a an" #~ msgstr "the " #~ msgid "All Artists" #~ msgstr "Όλοι οι καλλιτέχνες" #~ msgid "Not playing" #~ msgstr "Δεν αναπαράγεται" #~ msgid "by %s, from %s" #~ msgstr "από τον %s, από το %s" #~ msgid "_New Playlist" #~ msgstr "_Νέα λίστα αναπαραγωγής" #~ msgid "" #~ "No Music found!\n" #~ " Put some files into the folder %s" #~ msgstr "" #~ "Δεν βρέθηκε μουσική!\n" #~ " Τοποθετήστε μερικά αρχεία στον φάκελο %s" #~ msgid "Load More" #~ msgstr "Φόρτωση περισσοτέρων" #~ msgid "Now _Playing" #~ msgstr "Αναπαράγεται _Τώρα" #~ msgid "Released" #~ msgstr "Κυκλοφόρησε" #~ msgid "Running Length" #~ msgstr "Διάρκεια εκτέλεσης" #~ msgid "----" #~ msgstr "----" #~ msgid "--:--" #~ msgstr "--:--" #~ msgid "00:00" #~ msgstr "00:00" #~ msgid "/" #~ msgstr "/" 070701000000E3000081A400000000000000000000000166968E4E000060E7000000000000000000000000000000000000001D00000000gnome-music-46.1/po/en_GB.po# British English translation for gnome-music. # Copyright (C) 2012 gnome-music's COPYRIGHT HOLDER # This file is distributed under the same licence as the gnome-music package. # Chris Leonard , 2012. # Zander Brown , 2019-2020. # Bruce Cowan , 2013-2023. # Andi Chandler , 2024. # msgid "" msgstr "" "Project-Id-Version: gnome-music\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-music/issues\n" "POT-Creation-Date: 2024-02-22 18:22+0000\n" "PO-Revision-Date: 2024-02-24 16:29+0000\n" "Last-Translator: Bruce Cowan \n" "Language-Team: English - United Kingdom \n" "Language: en_GB\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Poedit 3.4.2\n" "X-Project-Style: gnome\n" #: data/org.gnome.Music.appdata.xml.in.in:6 #: data/org.gnome.Music.desktop.in.in:3 data/ui/StatusNavigationPage.ui:4 #: gnomemusic/about.py:138 gnomemusic/application.py:59 gnomemusic/window.py:65 msgid "Music" msgstr "Music" #: data/org.gnome.Music.appdata.xml.in.in:7 #: data/org.gnome.Music.desktop.in.in:5 msgid "Play and organize your music collection" msgstr "Play and organise your music collection" #: data/org.gnome.Music.appdata.xml.in.in:9 msgid "An easy and pleasant way to play your music." msgstr "An easy and pleasant way to play your music." #: data/org.gnome.Music.appdata.xml.in.in:12 msgid "" "Find tracks in your local collection, use automatically generated playlists " "or curate a fresh one." msgstr "" "Find tracks in your local collection, use automatically generated playlists " "or curate a fresh one." #. developer_name tag deprecated with Appstream 1.0 #: data/org.gnome.Music.appdata.xml.in.in:188 msgid "The GNOME Music developers" msgstr "The GNOME Music developers" #: data/org.gnome.Music.desktop.in.in:4 msgid "Music Player" msgstr "Music Player" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Music.desktop.in.in:13 msgid "Music;Player;" msgstr "Music;Player;" #: data/org.gnome.Music.gschema.xml:12 msgid "Window size" msgstr "Window size" #: data/org.gnome.Music.gschema.xml:13 msgid "Window size (width and height)." msgstr "Window size (width and height)." #: data/org.gnome.Music.gschema.xml:17 msgid "Window maximized" msgstr "Window maximised" #: data/org.gnome.Music.gschema.xml:18 msgid "Window maximized state." msgstr "Window maximised state." #: data/org.gnome.Music.gschema.xml:22 msgid "Playback repeat mode" msgstr "Playback repeat mode" #. Translators: Don't translate allowed values, just the description in the brackets #: data/org.gnome.Music.gschema.xml:24 msgid "" "Value identifies whether to repeat or randomize playback through the " "collection. Allowed values are: “none” (repeat and shuffle are off), " "“song” (repeat current song), “all” (repeat playlist, no shuffle), " "“shuffle” (shuffle playlist, presumes repeat all)." msgstr "" "Value identifies whether to repeat or randomise playback through the " "collection. Allowed values are: “none” (repeat and shuffle are off), " "“song” (repeat current song), “all” (repeat playlist, no shuffle), " "“shuffle” (shuffle playlist, presumes repeat all)." #: data/org.gnome.Music.gschema.xml:28 data/ui/PreferencesDialog.ui:27 msgid "Enable ReplayGain" msgstr "Enable ReplayGain" #: data/org.gnome.Music.gschema.xml:29 msgid "Enables or disables ReplayGain for albums" msgstr "Enables or disables ReplayGain for albums" #: data/org.gnome.Music.gschema.xml:33 msgid "Inhibit system suspend" msgstr "Inhibit system suspend" #: data/org.gnome.Music.gschema.xml:34 msgid "Enables or disables inhibiting system suspend while playing music" msgstr "Enables or disables inhibiting system suspend while playing music" #: data/ui/AlbumsSearchNavigationPage.ui:5 data/ui/SearchView.ui:98 #: gnomemusic/views/albumsview.py:52 msgid "Albums" msgstr "Albums" #: data/ui/AlbumWidget.ui:84 data/ui/PlayerToolbar.ui:87 #: data/ui/PlaylistControls.ui:101 gnomemusic/widgets/playertoolbar.py:176 msgid "Play" msgstr "Play" #: data/ui/AlbumWidget.ui:130 data/ui/PlaylistControls.ui:5 #: data/ui/SongWidgetMenu.ui:11 msgid "_Play" msgstr "_Play" #: data/ui/AlbumWidget.ui:134 msgid "Add to _Favorite Songs" msgstr "Add to _Favourite Songs" #: data/ui/AlbumWidget.ui:138 data/ui/SongWidgetMenu.ui:15 msgid "_Add to Playlist…" msgstr "_Add to Playlist…" #: data/ui/ArtistsSearchNavigationPage.ui:5 data/ui/SearchView.ui:41 #: gnomemusic/views/artistsview.py:51 msgid "Artists" msgstr "Artists" #: data/ui/HeaderBar.ui:14 msgid "Menu" msgstr "Menu" #: data/ui/HeaderBar.ui:22 data/ui/SearchHeaderBar.ui:12 msgid "Search" msgstr "Search" #: data/ui/HeaderBar.ui:31 data/ui/PreferencesDialog.ui:4 msgid "Preferences" msgstr "Preferences" #: data/ui/HeaderBar.ui:35 msgid "Keyboard Shortcuts" msgstr "Keyboard Shortcuts" #: data/ui/HeaderBar.ui:39 msgid "Help" msgstr "Help" #: data/ui/HeaderBar.ui:43 msgid "About Music" msgstr "About Music" #: data/ui/help-overlay.ui:11 msgctxt "shortcut window" msgid "General" msgstr "General" #: data/ui/help-overlay.ui:14 msgctxt "shortcut window" msgid "Close window" msgstr "Close window" #: data/ui/help-overlay.ui:20 msgctxt "shortcut window" msgid "Search" msgstr "Search" #: data/ui/help-overlay.ui:26 msgctxt "shortcut window" msgid "Help" msgstr "Help" #: data/ui/help-overlay.ui:32 msgctxt "shortcut window" msgid "Shortcuts" msgstr "Shortcuts" #: data/ui/help-overlay.ui:40 msgctxt "shortcut window" msgid "Playback" msgstr "Playback" #: data/ui/help-overlay.ui:43 msgctxt "shortcut window" msgid "Play/Pause" msgstr "Play/Pause" #: data/ui/help-overlay.ui:49 msgctxt "shortcut window" msgid "Next song" msgstr "Next song" #: data/ui/help-overlay.ui:55 msgctxt "shortcut window" msgid "Previous song" msgstr "Previous song" #: data/ui/help-overlay.ui:61 msgctxt "shortcut window" msgid "Toggle repeat" msgstr "Toggle repeat" #: data/ui/help-overlay.ui:67 msgctxt "shortcut window" msgid "Toggle shuffle" msgstr "Toggle shuffle" #: data/ui/help-overlay.ui:75 msgctxt "shortcut window" msgid "Navigation" msgstr "Navigation" #: data/ui/help-overlay.ui:78 msgctxt "shortcut window" msgid "Go to Albums" msgstr "Go to Albums" #: data/ui/help-overlay.ui:84 msgctxt "shortcut window" msgid "Go to Artists" msgstr "Go to Artists" #: data/ui/help-overlay.ui:90 msgctxt "shortcut window" msgid "Go to Songs" msgstr "Go to Songs" #: data/ui/help-overlay.ui:96 msgctxt "shortcut window" msgid "Go to Playlists" msgstr "Go to Playlists" #: data/ui/help-overlay.ui:102 msgctxt "shortcut window" msgid "Go back" msgstr "Go back" #: data/ui/PlayerToolbar.ui:74 msgid "Previous" msgstr "Previous" #: data/ui/PlayerToolbar.ui:106 msgid "Next" msgstr "Next" #: data/ui/PlaylistControls.ui:9 msgid "_Delete" msgstr "_Delete" #: data/ui/PlaylistControls.ui:13 msgid "_Rename…" msgstr "_Rename…" #: data/ui/PlaylistControls.ui:28 msgid "Playlist Name" msgstr "Playlist Name" #: data/ui/PlaylistControls.ui:62 msgid "_Done" msgstr "_Done" #: data/ui/PlaylistDialog.ui:16 msgid "Add to Playlist" msgstr "Add to Playlist" #: data/ui/PlaylistDialog.ui:27 msgid "_Cancel" msgstr "_Cancel" #: data/ui/PlaylistDialog.ui:36 msgid "_Add" msgstr "_Add" #: data/ui/PlaylistDialog.ui:91 msgid "Enter a name for your first playlist" msgstr "Enter a name for your first playlist" #: data/ui/PlaylistDialog.ui:116 msgid "C_reate" msgstr "C_reate" #: data/ui/PlaylistDialog.ui:177 msgid "New Playlist…" msgstr "New Playlist…" #: data/ui/PlaylistDialog.ui:189 msgid "Add" msgstr "Add" #: data/ui/PreferencesDialog.ui:9 msgid "Player Settings" msgstr "Player Settings" #: data/ui/PreferencesDialog.ui:12 msgid "Repeat Mode" msgstr "Repeat Mode" #: data/ui/PreferencesDialog.ui:16 msgid "None" msgstr "None" #: data/ui/PreferencesDialog.ui:17 msgid "Song" msgstr "Song" #: data/ui/PreferencesDialog.ui:18 msgid "All" msgstr "All" #: data/ui/PreferencesDialog.ui:19 gnomemusic/player.py:51 msgid "Shuffle" msgstr "Shuffle" #: data/ui/PreferencesDialog.ui:28 msgid "Balance loudness between songs if ReplayGain metadata is found" msgstr "Balance loudness between songs if ReplayGain metadata is found" #: data/ui/PreferencesDialog.ui:35 msgid "Power Settings" msgstr "Power Settings" #: data/ui/PreferencesDialog.ui:38 msgid "Inhibit Suspend" msgstr "Inhibit Suspend" #: data/ui/PreferencesDialog.ui:39 msgid "Only while playing" msgstr "Only while playing" #: data/ui/SearchView.ui:55 data/ui/SearchView.ui:112 msgid "View All" msgstr "View All" #: data/ui/SearchView.ui:154 msgid "Songs" msgstr "Songs" #: data/ui/SongWidgetMenu.ui:19 msgid "_Remove from Playlist" msgstr "_Remove from Playlist" #: data/ui/StatusNavigationPage.ui:36 msgid "Welcome to Music" msgstr "Welcome to Music" #: gnomemusic/about.py:140 msgid "The GNOME Project" msgstr "The GNOME Project" #. Translators should localize the following string which #. will be displayed at the bottom of the about box to give #. credit to the translator(s). #: gnomemusic/about.py:146 msgid "translator-credits" msgstr "" "Bruce Cowan \n" "Andi Chandler " #: gnomemusic/about.py:150 msgid "© The GNOME Music Developers" msgstr "© The GNOME Music Developers" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:839 msgid "Most Played" msgstr "Most Played" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:893 msgid "Never Played" msgstr "Never Played" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:946 msgid "Recently Played" msgstr "Recently Played" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1025 msgid "Recently Added" msgstr "Recently Added" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1088 msgid "Favorite Songs" msgstr "Favourite Songs" #. TRANSLATORS: this is a playlist name indicating that the #. files are not tagged enough to be displayed in the albums #. or artists views. #: gnomemusic/grilowrappers/grltrackerplaylists.py:1142 msgid "Insufficiently Tagged" msgstr "Insufficiently Tagged" #: gnomemusic/gstplayer.py:418 msgid "Unable to play the file" msgstr "Unable to play the file" #: gnomemusic/gstplayer.py:424 msgid "_Find in {}" msgstr "_Find in {}" #. TRANSLATORS: separator for two codecs #: gnomemusic/gstplayer.py:434 msgid " and " msgstr " and " #. TRANSLATORS: separator for a list of codecs #: gnomemusic/gstplayer.py:437 msgid ", " msgstr ", " #: gnomemusic/gstplayer.py:439 msgid "{} is required to play the file, but is not installed." msgid_plural "{} are required to play the file, but are not installed." msgstr[0] "{} is required to play the file, but is not installed." msgstr[1] "{} are required to play the file, but are not installed." #: gnomemusic/inhibitsuspend.py:69 msgid "Playing music" msgstr "Playing music" #. Translators: "shuffle" causes tracks to play in random order. #: gnomemusic/player.py:48 msgid "Shuffle/Repeat Off" msgstr "Shuffle/Repeat Off" #: gnomemusic/player.py:49 msgid "Repeat Song" msgstr "Repeat Song" #: gnomemusic/player.py:50 msgid "Repeat All" msgstr "Repeat All" #: gnomemusic/playlisttoast.py:55 msgid "Playlist {} removed" msgstr "Playlist {} removed" #: gnomemusic/playlisttoast.py:56 gnomemusic/songtoast.py:65 msgid "Undo" msgstr "Undo" #: gnomemusic/songtoast.py:64 msgid "{} removed from {}" msgstr "{} removed from {}" #: gnomemusic/utils.py:89 msgid "Unknown album" msgstr "Unknown Album" #: gnomemusic/utils.py:110 msgid "Unknown Artist" msgstr "Unknown Artist" #: gnomemusic/views/playlistsview.py:45 msgid "Playlists" msgstr "Playlists" #: gnomemusic/views/searchview.py:220 msgid "No Search Started" msgstr "No Search Started" #: gnomemusic/views/searchview.py:222 msgid "Use the searchbar to start searching for albums, artists or songs" msgstr "Use the searchbar to start searching for albums, artists or songs" #: gnomemusic/views/searchview.py:226 msgid "No Results Found" msgstr "No Results Found" #: gnomemusic/views/searchview.py:228 msgid "Try a different search" msgstr "Try a different search" #: gnomemusic/widgets/albumwidget.py:230 msgid "{} minute" msgid_plural "{} minutes" msgstr[0] "{} minute" msgstr[1] "{} minutes" #: gnomemusic/widgets/discbox.py:74 msgid "Disc {}" msgstr "Disc {}" #: gnomemusic/widgets/playertoolbar.py:173 msgid "Pause" msgstr "Pause" #: gnomemusic/widgets/playlistcontrols.py:130 msgid "{} Song" msgid_plural "{} Songs" msgstr[0] "{} Song" msgstr[1] "{} Songs" #: gnomemusic/widgets/searchheaderbar.py:50 msgid "Search songs, artists and albums" msgstr "Search songs, artists and albums" #. noqa: F841 #: gnomemusic/widgets/songwidgetmenu.py:94 msgid "_Open Location" msgstr "_Open Location" #. TRANSLATORS: These are verbs, to (un)mark something as a #. favorite. #: gnomemusic/widgets/startoggle.py:36 msgid "Unstar" msgstr "Unstar" #: gnomemusic/widgets/startoggle.py:36 msgid "Star" msgstr "Star" #: gnomemusic/widgets/statusnavigationpage.py:51 msgid "Your XDG Music directory is not set." msgstr "Your XDG Music directory is not set." #: gnomemusic/widgets/statusnavigationpage.py:58 msgid "Music Folder" msgstr "Music Folder" #. TRANSLATORS: This is a label to display a link to open user's music #. folder. {} will be replaced with the translated text 'Music folder' #: gnomemusic/widgets/statusnavigationpage.py:66 msgid "The contents of your {} will appear here." msgstr "The contents of your {} will appear here." #: gnomemusic/widgets/statusnavigationpage.py:116 msgid "No Music Found" msgstr "No Music Found" #: gnomemusic/widgets/statusnavigationpage.py:117 msgid "Try a Different Search" msgstr "Try a Different Search" #: gnomemusic/widgets/statusnavigationpage.py:121 msgid "GNOME Music could not connect to Tracker." msgstr "GNOME Music could not connect to Tracker." #: gnomemusic/widgets/statusnavigationpage.py:123 msgid "Your music files cannot be indexed without Tracker running." msgstr "Your music files cannot be indexed without Tracker running." #: gnomemusic/widgets/statusnavigationpage.py:129 msgid "Your system Tracker version seems outdated." msgstr "Your system Tracker version seems outdated." #: gnomemusic/widgets/statusnavigationpage.py:131 msgid "Music needs Tracker version 3.0.0 or higher." msgstr "Music needs Tracker version 3.0.0 or higher." #~ msgid "Report music history to Last.fm" #~ msgstr "Report music history to Last.fm" #~ msgid "" #~ "Enables or disables sending scrobbles and the “currently playing” info to " #~ "Last.fm." #~ msgstr "" #~ "Enables or disables sending scrobbles and the “currently playing” info to " #~ "Last.fm." #~ msgid "Last.fm Account" #~ msgstr "Last.fm Account" #~ msgid "Report Music Listening" #~ msgstr "Report Music Listening" #~ msgid "_Help" #~ msgstr "_Help" #~ msgid "Select" #~ msgstr "Select" #~ msgid "Back" #~ msgstr "Back" #~ msgid "" #~ "Last.fm is a music discovery service that gives you personalised " #~ "recommendations based on the music you listen to." #~ msgstr "" #~ "Last.fm is a music discovery service that gives you personalised " #~ "recommendations based on the music you listen to." #~ msgid "Music Reporting Not Setup" #~ msgstr "Music Reporting Not Setup" #~ msgid "Login to your Last.fm account to report your music listening." #~ msgstr "Login to your Last.fm account to report your music listening." #~ msgid "Login" #~ msgstr "Login" #~ msgid "Select All" #~ msgstr "Select All" #~ msgid "Select None" #~ msgstr "Select None" #~ msgid "Click on items to select them" #~ msgstr "Click on items to select them" #~ msgid "_Add to Playlist" #~ msgstr "_Add to Playlist" #~ msgid "Copyright The GNOME Music Developers" #~ msgstr "Copyright The GNOME Music Developers" #~ msgid "Translated by" #~ msgstr "Translated by" #~ msgid "Artists Results" #~ msgstr "Artists" #~ msgid "Albums Results" #~ msgstr "Albums" #~ msgid "Selected {} song" #~ msgid_plural "Selected {} songs" #~ msgstr[0] "Selected {} song" #~ msgstr[1] "Selected {} songs" #~ msgid "Your music listening is reported to Last.fm." #~ msgstr "Your music listening is reported to Last.fm." #~ msgid "Your music listening is not reported to Last.fm." #~ msgstr "Your music listening is not reported to Last.fm." #~ msgid "Logged in as {}" #~ msgstr "Logged in as {}" #~ msgid "Configure" #~ msgstr "Configure" #~ msgid "GNOME Music" #~ msgstr "GNOME Music" #~ msgid "Window position" #~ msgstr "Window position" #~ msgid "Window position (x and y)." #~ msgstr "Window position (x and y)." #~ msgid "A music player and management application for GNOME." #~ msgstr "A music player and management application for GNOME." #~ msgid "Visit GNOME Music website" #~ msgstr "Visit GNOME Music website" #~| msgid "" #~| "GNOME Music 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.\n" #~| "\n" #~| "GNOME Music 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.\n" #~| "\n" #~| "You should have received a copy of the GNU General Public License along " #~| "with GNOME Music; if not, write to the Free Software Foundation, Inc., " #~| "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~| "\n" #~| "The GNOME Music authors hereby grant permission for non-GPL compatible " #~| "GStreamer plugins to be used and distributed together with GStreamer and " #~| "GNOME Music. This permission is above and beyond the permissions " #~| "granted by the GPL license by which GNOME Music is covered. If you " #~| "modify this code, you may extend this exception to your version of the " #~| "code, but you are not obligated to do so. If you do not wish to do so, " #~| "delete this exception statement from your version.\n" #~| "\n" #~| "“Magic of the vinyl” by Sami Pyylampi image is licensed by CC-BY-SA 2.0 " #~| "https://www.flickr.com/photos/_spy_/12270839403" #~ msgid "" #~ "GNOME Music 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.\n" #~ "\n" #~ "GNOME Music 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.\n" #~ "\n" #~ "You should have received a copy of the GNU General Public License along " #~ "with GNOME Music; if not, write to the Free Software Foundation, Inc., 51 " #~ "Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ "\n" #~ "The GNOME Music authors hereby grant permission for non-GPL compatible " #~ "GStreamer plugins to be used and distributed together with GStreamer and " #~ "GNOME Music. This permission is above and beyond the permissions granted " #~ "by the GPL license by which GNOME Music is covered. If you modify this " #~ "code, you may extend this exception to your version of the code, but you " #~ "are not obligated to do so. If you do not wish to do so, delete this " #~ "exception statement from your version." #~ msgstr "" #~ "GNOME Music is free software; you can redistribute it and/or modify it " #~ "under the terms of the GNU General Public Licence as published by the " #~ "Free Software Foundation; either version 2 of the Licence, or (at your " #~ "option) any later version.\n" #~ "\n" #~ "GNOME Music 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 Licence for more details.\n" #~ "\n" #~ "You should have received a copy of the GNU General Public Licence along " #~ "with GNOME Music; if not, write to the Free Software Foundation, Inc., 51 " #~ "Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ "\n" #~ "The GNOME Music authors hereby grant permission for non-GPL compatible " #~ "GStreamer plug-ins to be used and distributed together with GStreamer and " #~ "GNOME Music. This permission is above and beyond the permissions granted " #~ "by the GPL licence by which GNOME Music is covered. If you modify this " #~ "code, you may extend this exception to your version of the code, but you " #~ "are not obligated to do so. If you do not wish to do so, delete this " #~ "exception statement from your version." #~ msgid "Loading" #~ msgstr "Loading" #~ msgid "Add to Playlist…" #~ msgstr "Add to Playlist…" #~ msgid "" #~ "An easy way to play your music. Automatically discover music on your " #~ "computer, the local network and internet services." #~ msgstr "" #~ "An easy way to play your music. Automatically discover music on your " #~ "computer, the local network and internet services." #~ msgid "" #~ "Find tracks in your local collection, get music from DLNA servers or try " #~ "something new with the Jamendo and Magnatune services." #~ msgstr "" #~ "Find tracks in your local collection, get music from DLNA servers or try " #~ "something new with the Jamendo and Magnatune services." #~ msgid "Inital state has been displayed" #~ msgstr "Inital state has been displayed" #~ msgid "Set to true when initial state has been displayed" #~ msgstr "Set to true when initial state has been displayed" #~ msgid "Released" #~ msgstr "Released" #~ msgid "Running Length" #~ msgstr "Running Length" #~ msgid "Composer" #~ msgstr "Composer" #~ msgctxt "context menu item" #~ msgid "Play" #~ msgstr "Play" #~ msgid "Hey DJ" #~ msgstr "Hey DJ" #~ msgid "Artist" #~ msgstr "Artist" #~ msgid "Album" #~ msgstr "Album" #~ msgid "Track Title" #~ msgstr "Track Title" #~ msgid "Local" #~ msgstr "Local" #~ msgid "Sources" #~ msgstr "Sources" #~ msgid "Match" #~ msgstr "Match" #~ msgid "Music is the new GNOME music playing application." #~ msgstr "Music is the new GNOME music playing application." #~ msgid "org.gnome.Music" #~ msgstr "org.gnome.Music" #~ msgid "Search mode" #~ msgstr "Search mode" #~ msgid "If true, the search bar is shown." #~ msgstr "If true, the search bar is shown." #~ msgid "Notifications mode" #~ msgstr "Notifications mode" #~ msgid "Enables or disables playback notifications" #~ msgstr "Enables or disables playback notifications" #~ msgid "Untitled" #~ msgstr "Untitled" #~ msgid "Selected %d item" #~ msgid_plural "Selected %d items" #~ msgstr[0] "Selected %d item" #~ msgstr[1] "Selected %d items" #~ msgid "%d min" #~ msgstr "%d min" #~ msgid "Empty" #~ msgstr "Empty" #~ msgid "_Quit" #~ msgstr "_Quit" #~| msgid "New Playlist" #~ msgid "Select Playlist" #~ msgstr "Select Playlist" #~ msgid "Max chars to display in track name on Artist view" #~ msgstr "Max chars to display in track name on Artist view" #~ msgid "" #~ "This setting modifies the amount of chars for track title on Artist view " #~ "before its been ellipsized. Set this to -1 to disable" #~ msgstr "" #~ "This setting modifies the amount of chars for track title on Artist view " #~ "before its been ellipsized. Set this to -1 to disable" #~ msgid "the a an" #~ msgstr "the a an" #~ msgid "All Artists" #~ msgstr "All Artists" #~ msgid "" #~ "No Music found!\n" #~ " Put some files into the folder %s" #~ msgstr "" #~ "No Music found!\n" #~ " Put some files into the folder %s" #~ msgid "Load More" #~ msgstr "Load More" #~ msgid "_Now Playing" #~ msgstr "_Now Playing" #~ msgid "_Change Address Book..." #~ msgstr "_Change Address Book..." #~ msgid "_About Contacts" #~ msgstr "_About Contacts" #~ msgid "New" #~ msgstr "New" #~ msgid "Quit" #~ msgstr "Quit" #~ msgid "A GNOME 3 application to listen and manage music playlists" #~ msgstr "A GNOME 3 application to listen and manage music playlists" #~ msgid "Collection name" #~ msgstr "Collection name" #~ msgid "%02u:%02u:%02u" #~ msgstr "%02u:%02u:%02u" #~ msgid "%02u:%02u" #~ msgstr "%02u:%02u" #~ msgid "If true, do randomized playback through the collection" #~ msgstr "If true, do randomised playback through the collection" 070701000000E4000081A400000000000000000000000166968E4E0000579A000000000000000000000000000000000000001A00000000gnome-music-46.1/po/eo.po# Esperanto translation for gnome-music. # Copyright (C) 2013 Free Software Foundation, Inc. # This file is distributed under the same license as the gnome-music package. # dms , 2013. # Daniel PUENTES , 2015. # Baptiste DARTHENAY < >, 2016. # Sébastien ZURFLUH , 2018. # Carmen Bianca BAKKER , 2018-2019. # Kristjan SCHMIDT , 2013-2023. # msgid "" msgstr "" "Project-Id-Version: gnome-music\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-music/issues\n" "POT-Creation-Date: 2023-07-04 07:49+0000\n" "PO-Revision-Date: 2023-09-23 19:02+0200\n" "Last-Translator: Kristjan SCHMIDT \n" "Language-Team: Esperanto \n" "Language: eo\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" "X-Generator: Gtranslator 42.0\n" "X-DamnedLies-Scope: partial\n" "X-Project-Style: gnome\n" #: data/org.gnome.Music.appdata.xml.in.in:6 #: data/org.gnome.Music.desktop.in.in:3 gnomemusic/about.py:243 #: gnomemusic/application.py:61 gnomemusic/window.py:71 msgid "Music" msgstr "Muziko" #: data/org.gnome.Music.appdata.xml.in.in:7 #: data/org.gnome.Music.desktop.in.in:5 msgid "Play and organize your music collection" msgstr "Ludu kaj organizu vian muzikaron" #: data/org.gnome.Music.appdata.xml.in.in:9 msgid "An easy and pleasant way to play your music." msgstr "Facila kaj agrabla maniero ludi vian muzikon." #: data/org.gnome.Music.appdata.xml.in.in:12 msgid "" "Find tracks in your local collection, use automatically generated playlists " "or curate a fresh one." msgstr "" "Trovu musikaĵojn en via loka kolekto, uzu aŭtomate generitajn ludlistojn aŭ " "prenu freŝan." #: data/org.gnome.Music.appdata.xml.in.in:182 msgid "The GNOME Music developers" msgstr "Verkistoj de GNOME Muziko" #: data/org.gnome.Music.desktop.in.in:4 msgid "Music Player" msgstr "Muzikludilo" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Music.desktop.in.in:13 msgid "Music;Player;" msgstr "Muziko;Ludilo;" #: data/org.gnome.Music.gschema.xml:12 msgid "Window size" msgstr "Dimensio de fenestro" #: data/org.gnome.Music.gschema.xml:13 msgid "Window size (width and height)." msgstr "Dimensio de fenestro (larĝo kaj alto)." #: data/org.gnome.Music.gschema.xml:17 msgid "Window maximized" msgstr "Fenestro maksimumigita" #: data/org.gnome.Music.gschema.xml:18 msgid "Window maximized state." msgstr "Maksimumigita stato de fenestro." #: data/org.gnome.Music.gschema.xml:22 msgid "Playback repeat mode" msgstr "Ripeta reĝimo de muzikludo" #. Translators: Don't translate allowed values, just the description in the brackets #: data/org.gnome.Music.gschema.xml:24 msgid "" "Value identifies whether to repeat or randomize playback through the " "collection. Allowed values are: “none” (repeat and shuffle are off), " "“song” (repeat current song), “all” (repeat playlist, no shuffle), " "“shuffle” (shuffle playlist, presumes repeat all)." msgstr "" "Valoro identigas ĉu ripeti aŭ hazardigi la ludadon tra la muzikaro. " "Permesataj valoroj estas: “none” (neniu: ripetado kaj miksado estas " "malŝaltita), “song” (muzikaĵo: ripetas la nunludantan muzikaĵon), " "“all” (ĉiu: ripeti la ludliston, ne hazardelekti), “shuffle” (hazardelekti " "ludliston, supozas ripetadon de ĉiuj)." #: data/org.gnome.Music.gschema.xml:28 msgid "Enable ReplayGain" msgstr "Ŝalti ReplayGain" #: data/org.gnome.Music.gschema.xml:29 msgid "Enables or disables ReplayGain for albums" msgstr "Ŝaltas aŭ malŝaltas ReplayGain por albumoj" #: data/org.gnome.Music.gschema.xml:33 msgid "Inhibit system suspend" msgstr "Malhelpi la sistemon suspendi" #: data/org.gnome.Music.gschema.xml:34 msgid "Enables or disables inhibiting system suspend while playing music" msgstr "" "Ebligas aŭ malenlogas malhelpan suspendon de la sistemo dum ludado de muziko" #: data/org.gnome.Music.gschema.xml:38 msgid "Report music history to Last.fm" msgstr "Raportimuzikhistorion al Last.fm" #: data/org.gnome.Music.gschema.xml:39 #, fuzzy msgid "" "Enables or disables sending scrobbles and the “currently playing” info to " "Last.fm." msgstr "" "Ebligas aŭ malebligas sendi skroblojn kaj la \"nun ludantajn\" informojn al " "Last.fm." #: data/ui/AlbumWidget.ui:84 data/ui/PlayerToolbar.ui:87 #: data/ui/PlaylistControls.ui:101 gnomemusic/widgets/playertoolbar.py:170 msgid "Play" msgstr "Ludi" #: data/ui/AlbumWidget.ui:130 data/ui/PlaylistControls.ui:5 #: data/ui/SongWidgetMenu.ui:11 msgid "_Play" msgstr "_Ludi" #: data/ui/AlbumWidget.ui:134 msgid "Add to _Favorite Songs" msgstr "Aldonu al plej ŝ_atataj kantoj" #: data/ui/AlbumWidget.ui:138 data/ui/SongWidgetMenu.ui:15 msgid "_Add to Playlist…" msgstr "_Aldoni al ludlisto…" #: data/ui/AppMenu.ui:23 data/ui/LastfmDialog.ui:8 msgid "Last.fm Account" msgstr "Last.fm-konto" #: data/ui/AppMenu.ui:36 msgid "Report Music Listening" msgstr "Raporti aŭskultadon de muziko" #: data/ui/AppMenu.ui:58 msgid "_Keyboard Shortcuts" msgstr "_Klavkombinoj" #: data/ui/AppMenu.ui:68 msgid "_Help" msgstr "_Helpo" #: data/ui/AppMenu.ui:78 msgid "_About Music" msgstr "_Pri Muziko" #: data/ui/EmptyView.ui:30 msgid "Welcome to Music" msgstr "Bonvenon al Muziko" #: data/ui/HeaderBar.ui:17 msgid "Menu" msgstr "Menuo" #: data/ui/HeaderBar.ui:25 data/ui/SearchHeaderBar.ui:15 msgid "Select" msgstr "Elekti" #: data/ui/HeaderBar.ui:31 data/ui/PlaylistDialog.ui:213 #: data/ui/SearchHeaderBar.ui:20 msgid "_Cancel" msgstr "_Nuligi" #: data/ui/HeaderBar.ui:43 data/ui/SearchHeaderBar.ui:32 msgid "Search" msgstr "Serĉi" #: data/ui/HeaderBar.ui:51 msgid "Back" msgstr "Reen" #: data/ui/help-overlay.ui:11 msgctxt "shortcut window" msgid "General" msgstr "Ĝeneralo" #: data/ui/help-overlay.ui:14 msgctxt "shortcut window" msgid "Close window" msgstr "Fermi fenestron" #: data/ui/help-overlay.ui:20 msgctxt "shortcut window" msgid "Search" msgstr "Serĉilo" #: data/ui/help-overlay.ui:26 msgctxt "shortcut window" msgid "Help" msgstr "Helpo" #: data/ui/help-overlay.ui:32 msgctxt "shortcut window" msgid "Shortcuts" msgstr "Klavkombinoj" #: data/ui/help-overlay.ui:40 msgctxt "shortcut window" msgid "Playback" msgstr "Ludi" #: data/ui/help-overlay.ui:43 msgctxt "shortcut window" msgid "Play/Pause" msgstr "Ludi/Paŭzi" #: data/ui/help-overlay.ui:49 msgctxt "shortcut window" msgid "Next song" msgstr "Sekva muzikaĵo" #: data/ui/help-overlay.ui:55 msgctxt "shortcut window" msgid "Previous song" msgstr "Antaŭa muzikaĵo" #: data/ui/help-overlay.ui:61 msgctxt "shortcut window" msgid "Toggle repeat" msgstr "Baskuligi ripeton" #: data/ui/help-overlay.ui:67 msgctxt "shortcut window" msgid "Toggle shuffle" msgstr "Baskuligi hazardelekton" #: data/ui/help-overlay.ui:75 msgctxt "shortcut window" msgid "Navigation" msgstr "Navigado" #: data/ui/help-overlay.ui:78 msgctxt "shortcut window" msgid "Go to Albums" msgstr "Iri al albumoj" #: data/ui/help-overlay.ui:84 msgctxt "shortcut window" msgid "Go to Artists" msgstr "Iri al artistoj" #: data/ui/help-overlay.ui:90 msgctxt "shortcut window" msgid "Go to Songs" msgstr "Iri al muzikaĵoj" #: data/ui/help-overlay.ui:96 msgctxt "shortcut window" msgid "Go to Playlists" msgstr "Iri al ludlistoj" #: data/ui/help-overlay.ui:102 msgctxt "shortcut window" msgid "Go back" msgstr "Reen iri" #: data/ui/LastfmDialog.ui:21 msgid "" "Last.fm is a music discovery service that gives you personalised " "recommendations based on the music you listen to." msgstr "" "Last.fm estas muzika malkovra servo, kiu donas al vi personecigitajn " "rekomendojn bazitajn sur la muziko, kiun vi aŭskultas." #: data/ui/LastfmDialog.ui:31 gnomemusic/widgets/lastfmdialog.py:57 msgid "Music Reporting Not Setup" msgstr "Muzika raportado ne agordita" #: data/ui/LastfmDialog.ui:44 gnomemusic/widgets/lastfmdialog.py:60 msgid "Login to your Last.fm account to report your music listening." msgstr "Ensaluti al via Last.fm-konto por raporti vian aŭskultadon de muziko." #: data/ui/LastfmDialog.ui:55 gnomemusic/widgets/lastfmdialog.py:58 msgid "Login" msgstr "Saluti" #: data/ui/PlayerToolbar.ui:74 msgid "Previous" msgstr "Antaŭa" #: data/ui/PlayerToolbar.ui:106 msgid "Next" msgstr "Sekva" #: data/ui/PlaylistControls.ui:9 msgid "_Delete" msgstr "_Forigi" #: data/ui/PlaylistControls.ui:13 msgid "_Rename…" msgstr "_Alinomi…" #: data/ui/PlaylistControls.ui:28 msgid "Playlist Name" msgstr "Ludlista nomo" #: data/ui/PlaylistControls.ui:62 msgid "_Done" msgstr "Far_ita" #: data/ui/PlaylistDialog.ui:52 msgid "Enter a name for your first playlist" msgstr "Enigu nomon por via unua ludlisto" #: data/ui/PlaylistDialog.ui:77 msgid "C_reate" msgstr "_Krei" #: data/ui/PlaylistDialog.ui:146 msgid "New Playlist…" msgstr "Nova ludlisto…" #: data/ui/PlaylistDialog.ui:161 msgid "Add" msgstr "Aldoni" #: data/ui/PlaylistDialog.ui:202 msgid "Add to Playlist" msgstr "Aldoni al ludlisto" #: data/ui/PlaylistDialog.ui:222 msgid "_Add" msgstr "_Aldoni" #: data/ui/SearchView.ui:33 gnomemusic/views/artistsview.py:51 msgid "Artists" msgstr "Artistoj" #: data/ui/SearchView.ui:42 data/ui/SearchView.ui:84 msgid "View All" msgstr "Montri ĉiujn" #: data/ui/SearchView.ui:75 gnomemusic/views/albumsview.py:56 msgid "Albums" msgstr "Albumoj" #: data/ui/SearchView.ui:117 gnomemusic/views/songsview.py:52 msgid "Songs" msgstr "Muzikaĵoj" #: data/ui/SelectionBarMenuButton.ui:7 msgid "Select All" msgstr "Elekti ĉiujn" #: data/ui/SelectionBarMenuButton.ui:11 msgid "Select None" msgstr "Elekti neniun" #: data/ui/SelectionBarMenuButton.ui:19 gnomemusic/widgets/headerbar.py:69 msgid "Click on items to select them" msgstr "Alklaku erojn por elekti ilin" #: data/ui/SelectionToolbar.ui:8 msgid "_Add to Playlist" msgstr "_Aldoni al ludlisto" #: data/ui/SongWidgetMenu.ui:19 msgid "_Remove from Playlist" msgstr "Forigi _el ludlisto" #: gnomemusic/about.py:245 msgid "The GNOME Project" msgstr "La projekto GNOME" #: gnomemusic/about.py:249 msgid "translator-credits" msgstr "" "Dominique PELLÉ\n" "Kristjan SCHMIDT\n" "Denizo PRISKORN\n" "Daniel PUENTES\n" "Aisano\n" "Andreas SCHLAPSI\n" "Michael MORONI\n" "Serge LEBLANC\n" "Sergio ALDANA\n" "William THEAKER\n" "Carmen Bianca BAKKER " #: gnomemusic/about.py:253 msgid "Copyright The GNOME Music Developers" msgstr "Kopirajto La programistoj de GNOME Muziko" #: gnomemusic/about.py:256 msgid "Translated by" msgstr "Tradukita de" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:894 msgid "Most Played" msgstr "Plejofte luditaj" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:948 msgid "Never Played" msgstr "Neniam luditaj" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1001 msgid "Recently Played" msgstr "Lastatempe luditaj" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1064 msgid "Recently Added" msgstr "Freŝaldonitaj" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1127 msgid "Favorite Songs" msgstr "Favorataj muzikaĵoj" #: gnomemusic/gstplayer.py:408 msgid "Unable to play the file" msgstr "Ne eblas ludi la dosieron" #: gnomemusic/gstplayer.py:414 msgid "_Find in {}" msgstr "_Trovi en {}" #. TRANSLATORS: separator for two codecs #: gnomemusic/gstplayer.py:424 msgid " and " msgstr " kaj " #. TRANSLATORS: separator for a list of codecs #: gnomemusic/gstplayer.py:427 msgid ", " msgstr ", " #: gnomemusic/gstplayer.py:429 msgid "{} is required to play the file, but is not installed." msgid_plural "{} are required to play the file, but are not installed." msgstr[0] "{} estas bezonata por ludi la dosieron, sed ĝi ne estas instalita." msgstr[1] "" "{} estas bezonataj por ludi la dosieron, sed ili ne estas instalitaj." #: gnomemusic/inhibitsuspend.py:63 msgid "Playing music" msgstr "Ludi muzikon" #. Translators: "shuffle" causes tracks to play in random order. #: gnomemusic/player.py:44 msgid "Shuffle/Repeat Off" msgstr "Ne hazardelekti, ne ripetadi" #: gnomemusic/player.py:45 msgid "Repeat Song" msgstr "Ripeti muzikaĵon" #: gnomemusic/player.py:46 msgid "Repeat All" msgstr "Ripeti ĉion" #: gnomemusic/player.py:47 msgid "Shuffle" msgstr "Hazardelekti" #: gnomemusic/playlisttoast.py:55 msgid "Playlist {} removed" msgstr "Ludlisto {} forigita" #: gnomemusic/playlisttoast.py:56 gnomemusic/songtoast.py:65 msgid "Undo" msgstr "Malfari" #: gnomemusic/songtoast.py:64 msgid "{} removed from {}" msgstr "{} forigita el {}" #: gnomemusic/utils.py:92 msgid "Unknown album" msgstr "Nekonata albumo" #: gnomemusic/utils.py:113 msgid "Unknown Artist" msgstr "Nekonata artisto" #: gnomemusic/views/emptyview.py:65 msgid "Your XDG Music directory is not set." msgstr "Via XDG-muzika dosierujo ne estas agordita." #: gnomemusic/views/emptyview.py:72 msgid "Music Folder" msgstr "Muzika dosierujo" #. TRANSLATORS: This is a label to display a link to open user's music #. folder. {} will be replaced with the translated text 'Music folder' #: gnomemusic/views/emptyview.py:76 msgid "The contents of your {} will appear here." msgstr "La enhavo de via {} aperos ĉi tie." #: gnomemusic/views/emptyview.py:124 msgid "No Music Found" msgstr "Neniu muziko trovita" #: gnomemusic/views/emptyview.py:125 msgid "Try a Different Search" msgstr "Provu alian serĉon" #: gnomemusic/views/emptyview.py:129 msgid "GNOME Music could not connect to Tracker." msgstr "GNOME Muziko ne povis konekti al Ŝanĝospurilo." #: gnomemusic/views/emptyview.py:131 msgid "Your music files cannot be indexed without Tracker running." msgstr "Ne povis indeksigi viajn muzikdosierojn sen rulanta Ŝanĝospurilo." #: gnomemusic/views/emptyview.py:137 msgid "Your system Tracker version seems outdated." msgstr "Via sistema Tracker-versio ŝajnas malmoderna." #: gnomemusic/views/emptyview.py:139 msgid "Music needs Tracker version 3.0.0 or higher." msgstr "Muziko bezonas Tracker-version 3.0.0 aŭ pli alta." #: gnomemusic/views/playlistsview.py:45 msgid "Playlists" msgstr "Ludlistoj" #: gnomemusic/views/searchview.py:304 msgid "Artists Results" msgstr "Rezultoj de artistoj" #: gnomemusic/views/searchview.py:318 msgid "Albums Results" msgstr "Rezultoj de albumoj" #: gnomemusic/widgets/albumwidget.py:245 msgid "{} minute" msgid_plural "{} minutes" msgstr[0] "{} minuto" msgstr[1] "{} minutoj" #: gnomemusic/widgets/discbox.py:75 msgid "Disc {}" msgstr "Disko {}" #: gnomemusic/widgets/headerbar.py:66 msgid "Selected {} song" msgid_plural "Selected {} songs" msgstr[0] "Elektis {} kanton" msgstr[1] "Elektis {} kantojn" #: gnomemusic/widgets/lastfmdialog.py:64 msgid "Your music listening is reported to Last.fm." msgstr "Via aŭskultado de muziko estas raportita al Last.fm." #: gnomemusic/widgets/lastfmdialog.py:66 msgid "Your music listening is not reported to Last.fm." msgstr "Via aŭskultado de muziko ne estas raportita al Last.fm." #. TRANSLATORS: displays the username of the Last.fm account #: gnomemusic/widgets/lastfmdialog.py:70 msgid "Logged in as {}" msgstr "Ensalutinta kiel {}" #: gnomemusic/widgets/lastfmdialog.py:71 msgid "Configure" msgstr "Agordi" #: gnomemusic/widgets/playertoolbar.py:167 msgid "Pause" msgstr "Paŭzi" #: gnomemusic/widgets/playlistcontrols.py:130 msgid "{} Song" msgid_plural "{} Songs" msgstr[0] "{} muzikaĵo" msgstr[1] "{} muzikaĵoj" #: gnomemusic/widgets/searchheaderbar.py:66 msgid "Search songs, artists, albums and playlists" msgstr "Serĉi kantojn, artistojn, albumojn kaj ludlistojn" #~ msgid "GNOME Music" #~ msgstr "GNOME Muziko" #~ msgid "" #~ "An easy way to play your music. Automatically discover music on your " #~ "computer, the local network and internet services." #~ msgstr "" #~ "Facila maniero por ludi vian muzikon. Malkovru aŭtomate muzikon sur via " #~ "komputilo, la loka reto, kaj retaj servoj." #~ msgid "" #~ "Find tracks in your local collection, get music from DLNA servers or try " #~ "something new with the Jamendo and Magnatune services." #~ msgstr "" #~ "Trovu muzikaĵojn en via loka kolekto, akiru muzikon de DLNA-serviloj, aŭ " #~ "provu ion novan kun la Jamendo aŭ Magnatune servoj." #~ msgid "Window position" #~ msgstr "Pozicio de fenestro" #~ msgid "Window position (x and y)." #~ msgstr "Pozicio de fenestro (x kaj y)." #~ msgid "Inital state has been displayed" #~ msgstr "Komenca stato estis montrita" #~ msgid "Set to true when initial state has been displayed" #~ msgstr "Agordu al vero kiam komenca stato estas montrita" #~ msgid "A music player and management application for GNOME." #~ msgstr "Muzikludilo kaj -organizilo por GNOME." #~ msgid "Visit GNOME Music website" #~ msgstr "Vizitu la retejon de GNOME Muziko" #~ msgid "" #~ "GNOME Music 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.\n" #~ "\n" #~ "GNOME Music 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.\n" #~ "\n" #~ "You should have received a copy of the GNU General Public License along " #~ "with GNOME Music; if not, write to the Free Software Foundation, Inc., 51 " #~ "Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ "\n" #~ "The GNOME Music authors hereby grant permission for non-GPL compatible " #~ "GStreamer plugins to be used and distributed together with GStreamer and " #~ "GNOME Music. This permission is above and beyond the permissions granted " #~ "by the GPL license by which GNOME Music is covered. If you modify this " #~ "code, you may extend this exception to your version of the code, but you " #~ "are not obligated to do so. If you do not wish to do so, delete this " #~ "exception statement from your version.\n" #~ "\n" #~ "“Magic of the vinyl” by Sami Pyylampi image is licensed by CC-BY-SA 2.0 " #~ "https://www.flickr.com/photos/_spy_/12270839403" #~ msgstr "" #~ "GNOME Muziko estas libera programaro; vi povas redistribui kaj/aŭ modifi " #~ "ĝin laŭ la kondiĉoj de la Ĝenerala Publika Permesilo de GNU eldonite de " #~ "la Free Software Foundation; aŭ en la 2a versio de la permesilo aŭ (laŭ " #~ "via volo) en iu sekva versio.\n" #~ "\n" #~ "GNOME Muziko estas distribuite kun la espero ke ĝi estos utila, sed SEN " #~ "IA AJN GARANTIO; eĉ sen la implica garantio de NEGOCEBLO aŭ ADAPTADO AL " #~ "IU APARTA CELO. Vidu la Ĝeneralan Publikan Permesilon de GNU por pli da " #~ "detaloj.\n" #~ "\n" #~ "Vi devintus ricevi kopion de la Ĝenerala Publika Permesilo de GNU kune " #~ "kun GNOME Muziko; se ne, skribu al Free Software Foundation, Inc., 51 " #~ "Franklin Street, kvina etaĝo, Boston, MA 02110-1301 Usono.\n" #~ "\n" #~ "La aŭtoroj de GNOME Muziko donas, per tio, permeson por uzi ne-GPL " #~ "kongruajn GStreamer-kromprogramojn kaj disdoni GNOME Muziko kune kun " #~ "GStreamer kromprogramoj. Tiu ĉi permeso superas la permesojn, kiuj estas " #~ "donataj de la GPL-permesilo, sub kiu GNOME Muziko estas. Se vi modifas " #~ "tiun ĉi kodon, vi povas plivastigi tiun ĉi escepton en la versio de via " #~ "kodo, sed tio ne estas devenda. Se vi ne volas fari tion, forigu tiun ĉi " #~ "esceptan ordonon de via versio.\n" #~ "\n" #~ "“Magic of the vinyl” de Sami Pyylampi, bildo estas rajtigite per CC-BY-SA " #~ "2.0 https://www.flickr.com/photos/_spy_/12270839403" #~ msgid "Released" #~ msgstr "Eldonita" #~ msgid "Running Length" #~ msgstr "Ludada daŭro" #~ msgid "Composer" #~ msgstr "Komponisto" #~ msgctxt "context menu item" #~ msgid "Play" #~ msgstr "Ludi" #~ msgid "Remove From Playlist" #~ msgstr "Forigi el ludlisto" #~ msgid "Hey DJ" #~ msgstr "Hej DĴ" #~ msgid "Loading" #~ msgstr "Ŝargante" #~ msgid "All" #~ msgstr "Ĉiuj" #~ msgid "Artist" #~ msgstr "Artisto" #~ msgid "Album" #~ msgstr "Albumo" #~ msgid "Track Title" #~ msgstr "Muzikaĵa titolo" #~ msgid "Local" #~ msgstr "Loka" #~ msgid "Sources" #~ msgstr "Fontoj" #~ msgid "Match" #~ msgstr "Kongrui" #~ msgid "Untitled" #~ msgstr "Sentitola" #~ msgid "@icon@" #~ msgstr "@icon@" #~ msgid "_Quit" #~ msgstr "Ĉ_esi" #~ msgid "Music is the new GNOME music playing application." #~ msgstr "Muziko estas la nova muzikludanta aplikaĵo de GNOME." #~ msgid "gnome-music" #~ msgstr "gnome-music" #~ msgid "Search mode" #~ msgstr "Serĉa reĝimo" #~ msgid "If true, the search bar is shown." #~ msgstr "Se vero, la serĉa breto estas montrata." #~ msgid "Notifications mode" #~ msgstr "Reĝimo de sciigoj" #~ msgid "Enables or disables playback notifications" #~ msgstr "Ŝaltas aŭ malŝaltas muzikludajn sciigojn" #~ msgid "Selected %d item" #~ msgid_plural "Selected %d items" #~ msgstr[0] "%d ero elektita" #~ msgstr[1] "%d eroj elektitaj" #~ msgid "%d min" #~ msgstr "%d min" #~ msgid "Empty" #~ msgstr "Malplena" #~ msgid "Select Playlist" #~ msgstr "Elekti ludliston" #~ msgid "Max chars to display in track name on Artist view" #~ msgstr "" #~ "Maksimuma kvanto da karakteroj montrataj en la kantotitolo de la artisto-" #~ "vido" #~ msgid "" #~ "This setting modifies the amount of chars for track title on Artist view " #~ "before its been ellipsized. Set this to -1 to disable" #~ msgstr "" #~ "Tiu ĉi agordo modifas la kvanton da karakteroj en la kantotitolo, ĉe la " #~ "Artisto vido antaŭ malvastigo de ĝi. Agordu tion ĉi kiel -1 por elŝalti " #~ "ĝin" #~ msgid "the a an" #~ msgstr "the la" #~ msgid "All Artists" #~ msgstr "Ĉiuj artistoj" #~ msgid "Not playing" #~ msgstr "Ne ludanta" #~ msgid "by %s, from %s" #~ msgstr "far %s, de %s" #~ msgid "" #~ "No Music found!\n" #~ " Put some files into the folder %s" #~ msgstr "" #~ "Neniu muziko trovita!\n" #~ "Metu kelkajn dosierojn en la dosierujon %s" #~ msgid "Load More" #~ msgstr "Ŝarĝi pli" #~ msgid "Now _Playing" #~ msgstr "Nun _ludanta" 070701000000E5000081A400000000000000000000000166968E4E00006588000000000000000000000000000000000000001A00000000gnome-music-46.1/po/es.po# Spanish translation for gnome-music. # Copyright (C) 2012 gnome-music's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-music package. # FIRST AUTHOR , YEAR. # # Daniel Mustieles , 2021-2024. # msgid "" msgstr "" "Project-Id-Version: gnome-music master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-music/issues\n" "POT-Creation-Date: 2024-02-11 20:43+0000\n" "PO-Revision-Date: 2024-02-21 12:23+0100\n" "Last-Translator: Daniel Mustieles \n" "Language-Team: Spanish - Spain \n" "Language: es_ES\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" "X-Generator: Gtranslator 45.3\n" #: data/org.gnome.Music.appdata.xml.in.in:6 #: data/org.gnome.Music.desktop.in.in:3 data/ui/StatusNavigationPage.ui:4 #: gnomemusic/about.py:138 gnomemusic/application.py:59 gnomemusic/window.py:65 msgid "Music" msgstr "Música" #: data/org.gnome.Music.appdata.xml.in.in:7 #: data/org.gnome.Music.desktop.in.in:5 msgid "Play and organize your music collection" msgstr "Reproducir y organizar su colección de música" #: data/org.gnome.Music.appdata.xml.in.in:9 msgid "An easy and pleasant way to play your music." msgstr "Una forma fácil y agradable de reproducir su música." #: data/org.gnome.Music.appdata.xml.in.in:12 msgid "" "Find tracks in your local collection, use automatically generated playlists " "or curate a fresh one." msgstr "" "Busque pistas en su colección local, use listas de reproducción generadas " "automáticamente o cree una nueva." #. developer_name tag deprecated with Appstream 1.0 #: data/org.gnome.Music.appdata.xml.in.in:188 msgid "The GNOME Music developers" msgstr "Los desarrolladores de GNOME Música" #: data/org.gnome.Music.desktop.in.in:4 msgid "Music Player" msgstr "Reproductor de música" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Music.desktop.in.in:13 msgid "Music;Player;" msgstr "Música;Reproductor;" #: data/org.gnome.Music.gschema.xml:12 msgid "Window size" msgstr "Tamaño de la ventana" #: data/org.gnome.Music.gschema.xml:13 msgid "Window size (width and height)." msgstr "Tamaño de la ventana (anchura y altura)." #: data/org.gnome.Music.gschema.xml:17 msgid "Window maximized" msgstr "Ventana maximizada" #: data/org.gnome.Music.gschema.xml:18 msgid "Window maximized state." msgstr "Estado maximizado de la ventana." #: data/org.gnome.Music.gschema.xml:22 msgid "Playback repeat mode" msgstr "Modo de repetición de la reproducción" #. Translators: Don't translate allowed values, just the description in the brackets #: data/org.gnome.Music.gschema.xml:24 msgid "" "Value identifies whether to repeat or randomize playback through the " "collection. Allowed values are: “none” (repeat and shuffle are off), " "“song” (repeat current song), “all” (repeat playlist, no shuffle), " "“shuffle” (shuffle playlist, presumes repeat all)." msgstr "" "Valor que indica si se debe repetir o aleatorizar la reproducción de la " "colección. Los valores admitidos son: «ninguno» (las opciones de repetir y " "mezclar están desactivadas), «canción» (repetir la canción actual), " "«todas» (repetir la lista de reproducción, sin mezclar), «mezclar» (mezclar " "la lista de reproducción, se repiten todas)." #: data/org.gnome.Music.gschema.xml:28 data/ui/PreferencesDialog.ui:27 msgid "Enable ReplayGain" msgstr "Activar ReplayGain" #: data/org.gnome.Music.gschema.xml:29 msgid "Enables or disables ReplayGain for albums" msgstr "Activa o desactiva ReplayGain para los álbumes" #: data/org.gnome.Music.gschema.xml:33 msgid "Inhibit system suspend" msgstr "Suspensión de inhibición del sistema" #: data/org.gnome.Music.gschema.xml:34 msgid "Enables or disables inhibiting system suspend while playing music" msgstr "" "Activa o desactiva la suspensión de inhibición el sistema al reproducir " "música" #: data/ui/AlbumsSearchNavigationPage.ui:5 data/ui/SearchView.ui:98 #: gnomemusic/views/albumsview.py:52 msgid "Albums" msgstr "Álbumes" #: data/ui/AlbumWidget.ui:84 data/ui/PlayerToolbar.ui:87 #: data/ui/PlaylistControls.ui:101 gnomemusic/widgets/playertoolbar.py:176 msgid "Play" msgstr "Reproducir" #: data/ui/AlbumWidget.ui:130 data/ui/PlaylistControls.ui:5 #: data/ui/SongWidgetMenu.ui:11 msgid "_Play" msgstr "_Reproducir" #: data/ui/AlbumWidget.ui:134 msgid "Add to _Favorite Songs" msgstr "Añadir a canciones _favoritas" #: data/ui/AlbumWidget.ui:138 data/ui/SongWidgetMenu.ui:15 msgid "_Add to Playlist…" msgstr "_Añadir a la lista de reproducción…" #: data/ui/ArtistsSearchNavigationPage.ui:5 data/ui/SearchView.ui:41 #: gnomemusic/views/artistsview.py:51 msgid "Artists" msgstr "Artistas" #: data/ui/HeaderBar.ui:14 msgid "Menu" msgstr "Menú" #: data/ui/HeaderBar.ui:22 data/ui/SearchHeaderBar.ui:12 msgid "Search" msgstr "Buscar" #: data/ui/HeaderBar.ui:31 data/ui/PreferencesDialog.ui:4 msgid "Preferences" msgstr "Preferencias" #: data/ui/HeaderBar.ui:35 msgid "Keyboard Shortcuts" msgstr "Atajos del teclado" #: data/ui/HeaderBar.ui:39 msgid "Help" msgstr "Ayuda" #: data/ui/HeaderBar.ui:43 msgid "About Music" msgstr "Acerca de Música" #: data/ui/help-overlay.ui:11 msgctxt "shortcut window" msgid "General" msgstr "General" #: data/ui/help-overlay.ui:14 msgctxt "shortcut window" msgid "Close window" msgstr "Cerrar ventana" #: data/ui/help-overlay.ui:20 msgctxt "shortcut window" msgid "Search" msgstr "Buscar" #: data/ui/help-overlay.ui:26 msgctxt "shortcut window" msgid "Help" msgstr "Ayuda" #: data/ui/help-overlay.ui:32 msgctxt "shortcut window" msgid "Shortcuts" msgstr "Atajos" #: data/ui/help-overlay.ui:40 msgctxt "shortcut window" msgid "Playback" msgstr "Reproducir" #: data/ui/help-overlay.ui:43 msgctxt "shortcut window" msgid "Play/Pause" msgstr "Reproducir/Pausar" #: data/ui/help-overlay.ui:49 msgctxt "shortcut window" msgid "Next song" msgstr "Siguiente canción" #: data/ui/help-overlay.ui:55 msgctxt "shortcut window" msgid "Previous song" msgstr "Canción anterior" #: data/ui/help-overlay.ui:61 msgctxt "shortcut window" msgid "Toggle repeat" msgstr "Conmutar repetición" #: data/ui/help-overlay.ui:67 msgctxt "shortcut window" msgid "Toggle shuffle" msgstr "Conmutar mezcla" #: data/ui/help-overlay.ui:75 msgctxt "shortcut window" msgid "Navigation" msgstr "Navegación" #: data/ui/help-overlay.ui:78 msgctxt "shortcut window" msgid "Go to Albums" msgstr "Ir a los álbumes" #: data/ui/help-overlay.ui:84 msgctxt "shortcut window" msgid "Go to Artists" msgstr "Ir a los artistas" #: data/ui/help-overlay.ui:90 msgctxt "shortcut window" msgid "Go to Songs" msgstr "Ir a las canciones" #: data/ui/help-overlay.ui:96 msgctxt "shortcut window" msgid "Go to Playlists" msgstr "Ir a las listas de reproducción" #: data/ui/help-overlay.ui:102 msgctxt "shortcut window" msgid "Go back" msgstr "Retroceder" #: data/ui/PlayerToolbar.ui:74 msgid "Previous" msgstr "Anterior" #: data/ui/PlayerToolbar.ui:106 msgid "Next" msgstr "Siguiente" #: data/ui/PlaylistControls.ui:9 msgid "_Delete" msgstr "_Eliminar" #: data/ui/PlaylistControls.ui:13 msgid "_Rename…" msgstr "_Renombrar…" #: data/ui/PlaylistControls.ui:28 msgid "Playlist Name" msgstr "Nombre de la lista de reproducción" #: data/ui/PlaylistControls.ui:62 msgid "_Done" msgstr "_Hecho" #: data/ui/PlaylistDialog.ui:16 msgid "Add to Playlist" msgstr "Añadir a la lista de reproducción" #: data/ui/PlaylistDialog.ui:27 msgid "_Cancel" msgstr "_Cancelar" #: data/ui/PlaylistDialog.ui:36 msgid "_Add" msgstr "_Añadir" #: data/ui/PlaylistDialog.ui:91 msgid "Enter a name for your first playlist" msgstr "Introduzca un nombre para su primera lista de reproducción" #: data/ui/PlaylistDialog.ui:116 msgid "C_reate" msgstr "C_rear" #: data/ui/PlaylistDialog.ui:177 msgid "New Playlist…" msgstr "Lista de reproducción nueva…" #: data/ui/PlaylistDialog.ui:189 msgid "Add" msgstr "Añadir" #: data/ui/PreferencesDialog.ui:9 msgid "Player Settings" msgstr "Configuración del reproductor" #: data/ui/PreferencesDialog.ui:12 msgid "Repeat Mode" msgstr "Modo repetición" #: data/ui/PreferencesDialog.ui:16 msgid "None" msgstr "Ninguno" #: data/ui/PreferencesDialog.ui:17 msgid "Song" msgstr "Canción" #: data/ui/PreferencesDialog.ui:18 msgid "All" msgstr "Todas" #: data/ui/PreferencesDialog.ui:19 gnomemusic/player.py:51 msgid "Shuffle" msgstr "Mezclar" #: data/ui/PreferencesDialog.ui:28 msgid "Balance loudness between songs if ReplayGain metadata is found" msgstr "" "Equilibrar el volumen entre canciones si se encuentran metadatos de " "ReplayGain" #: data/ui/PreferencesDialog.ui:35 msgid "Power Settings" msgstr "Configuración de energía" #: data/ui/PreferencesDialog.ui:38 msgid "Inhibit Suspend" msgstr "Inhibir la suspensión" #: data/ui/PreferencesDialog.ui:39 msgid "Only while playing" msgstr "Sólo al reproducir" #: data/ui/SearchView.ui:55 data/ui/SearchView.ui:112 msgid "View All" msgstr "Ver todo" #: data/ui/SearchView.ui:154 msgid "Songs" msgstr "Canciones" #: data/ui/SongWidgetMenu.ui:19 msgid "_Remove from Playlist" msgstr "_Quitar de la lista de reproducción" #: data/ui/StatusNavigationPage.ui:36 msgid "Welcome to Music" msgstr "Bienvenido a Música" #: gnomemusic/about.py:140 msgid "The GNOME Project" msgstr "El Proyecto GNOME" #. Translators should localize the following string which #. will be displayed at the bottom of the about box to give #. credit to the translator(s). #: gnomemusic/about.py:146 msgid "translator-credits" msgstr "Daniel Mustieles , 2012-2022" #: gnomemusic/about.py:150 msgid "© The GNOME Music Developers" msgstr "© Los desarrolladores de GNOME Música" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:839 msgid "Most Played" msgstr "Más reproducidas" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:893 msgid "Never Played" msgstr "No reproducidas nunca" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:946 msgid "Recently Played" msgstr "Reproducidas recientemente" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1025 msgid "Recently Added" msgstr "Añadidas recientemente" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1088 msgid "Favorite Songs" msgstr "Canciones favoritas" #. TRANSLATORS: this is a playlist name indicating that the #. files are not tagged enough to be displayed in the albums #. or artists views. #: gnomemusic/grilowrappers/grltrackerplaylists.py:1142 msgid "Insufficiently Tagged" msgstr "No etiquetado suficientemente" #: gnomemusic/gstplayer.py:418 msgid "Unable to play the file" msgstr "No se puede reproducir el archivo" #: gnomemusic/gstplayer.py:424 msgid "_Find in {}" msgstr "_Buscar en {}" #. TRANSLATORS: separator for two codecs #: gnomemusic/gstplayer.py:434 msgid " and " msgstr " y " #. TRANSLATORS: separator for a list of codecs #: gnomemusic/gstplayer.py:437 msgid ", " msgstr ", " #: gnomemusic/gstplayer.py:439 msgid "{} is required to play the file, but is not installed." msgid_plural "{} are required to play the file, but are not installed." msgstr[0] "Se necesita {} para reproducir el archivo, pero no está instalado." msgstr[1] "" "Se necesitan {} para reproducir el archivo, pero no están instalados." #: gnomemusic/inhibitsuspend.py:69 msgid "Playing music" msgstr "Reproducir música" #. Translators: "shuffle" causes tracks to play in random order. #: gnomemusic/player.py:48 msgid "Shuffle/Repeat Off" msgstr "No mezclar ni repetir" #: gnomemusic/player.py:49 msgid "Repeat Song" msgstr "Repetir canción" #: gnomemusic/player.py:50 msgid "Repeat All" msgstr "Repetir todas" #: gnomemusic/playlisttoast.py:55 msgid "Playlist {} removed" msgstr "Lista de reproducción {} eliminada" #: gnomemusic/playlisttoast.py:56 gnomemusic/songtoast.py:65 msgid "Undo" msgstr "Deshacer" #: gnomemusic/songtoast.py:64 msgid "{} removed from {}" msgstr "{} eliminado de {}" #: gnomemusic/utils.py:89 msgid "Unknown album" msgstr "Álbum desconocido" #: gnomemusic/utils.py:110 msgid "Unknown Artist" msgstr "Artista desconocido" #: gnomemusic/views/playlistsview.py:45 msgid "Playlists" msgstr "Listas de reproducción" #: gnomemusic/views/searchview.py:220 msgid "No Search Started" msgstr "No se ha iniciado la búsqueda" #: gnomemusic/views/searchview.py:222 msgid "Use the searchbar to start searching for albums, artists or songs" msgstr "" "Use la barra de búsqueda para empezar a buscar álbumes, artistas o canciones" #: gnomemusic/views/searchview.py:226 msgid "No Results Found" msgstr "No se encontraron resultados" #: gnomemusic/views/searchview.py:228 msgid "Try a different search" msgstr "Pruebe a hacer una búsqueda diferente" #: gnomemusic/widgets/albumwidget.py:230 msgid "{} minute" msgid_plural "{} minutes" msgstr[0] "{} minuto" msgstr[1] "{} minutos" #: gnomemusic/widgets/discbox.py:74 msgid "Disc {}" msgstr "Disco {}" #: gnomemusic/widgets/playertoolbar.py:173 msgid "Pause" msgstr "Pausar" #: gnomemusic/widgets/playlistcontrols.py:130 msgid "{} Song" msgid_plural "{} Songs" msgstr[0] "{} canción" msgstr[1] "{} canciones" #: gnomemusic/widgets/searchheaderbar.py:50 msgid "Search songs, artists and albums" msgstr "Buscar canciones, artistas y álbumes" #. noqa: F841 #: gnomemusic/widgets/songwidgetmenu.py:94 msgid "_Open Location" msgstr "_Abrir lugar" #. TRANSLATORS: These are verbs, to (un)mark something as a #. favorite. #: gnomemusic/widgets/startoggle.py:36 msgid "Unstar" msgstr "Quitar el destaque" #: gnomemusic/widgets/startoggle.py:36 msgid "Star" msgstr "Destacar" #: gnomemusic/widgets/statusnavigationpage.py:51 msgid "Your XDG Music directory is not set." msgstr "Su carpeta Música de XDG no está configurada" #: gnomemusic/widgets/statusnavigationpage.py:58 msgid "Music Folder" msgstr "Carpeta de música" #. TRANSLATORS: This is a label to display a link to open user's music #. folder. {} will be replaced with the translated text 'Music folder' #: gnomemusic/widgets/statusnavigationpage.py:66 msgid "The contents of your {} will appear here." msgstr "El contenido de su {} aparecerá aquí." #: gnomemusic/widgets/statusnavigationpage.py:116 msgid "No Music Found" msgstr "No se encontró ningún registro" #: gnomemusic/widgets/statusnavigationpage.py:117 msgid "Try a Different Search" msgstr "Abrir el cuadro de diálogo de buscar" #: gnomemusic/widgets/statusnavigationpage.py:121 msgid "GNOME Music could not connect to Tracker." msgstr "GNOME Música no se ha podido conectar a Tracker." #: gnomemusic/widgets/statusnavigationpage.py:123 msgid "Your music files cannot be indexed without Tracker running." msgstr "" "Sus archivos de música no se pueden indexar si Tracker no está en ejecución." #: gnomemusic/widgets/statusnavigationpage.py:129 msgid "Your system Tracker version seems outdated." msgstr "Su versión de Tracker no está actualizada." #: gnomemusic/widgets/statusnavigationpage.py:131 msgid "Music needs Tracker version 3.0.0 or higher." msgstr "Música necesita Tracker 3.0.0 o superior." #~ msgid "Report music history to Last.fm" #~ msgstr "Enviar histórico de música a Last.fm" #~ msgid "" #~ "Enables or disables sending scrobbles and the “currently playing” info to " #~ "Last.fm." #~ msgstr "" #~ "Activa o desactiva el envío de «scrobbles» e información de " #~ "«reproduciendo actualmente» a Last.fm" #~ msgid "Last.fm Account" #~ msgstr "Cuenta de Last.fm" #~ msgid "Report Music Listening" #~ msgstr "Informar de música que se está escuchando" #~ msgid "_Help" #~ msgstr "_Ayuda" #~ msgid "Select" #~ msgstr "Seleccionar" #~ msgid "Back" #~ msgstr "Atrás" #~ msgid "" #~ "Last.fm is a music discovery service that gives you personalised " #~ "recommendations based on the music you listen to." #~ msgstr "" #~ "Last.fm es un servicio de descubrimiento de música que le ofrece " #~ "recomendaciones personalizadas basadas en la música que escucha." #~ msgid "Music Reporting Not Setup" #~ msgstr "Informe de música no configurado" #~ msgid "Login to your Last.fm account to report your music listening." #~ msgstr "" #~ "Inicie sesión en su cuneta de Last.fm para informar de la música que " #~ "escucha." #~ msgid "Login" #~ msgstr "Iniciar sesión" #~ msgid "Select All" #~ msgstr "Seleccionar todos" #~ msgid "Select None" #~ msgstr "Seleccionar ninguno" #~ msgid "Click on items to select them" #~ msgstr "Pulse sobre los elementos para seleccionarlos" #~ msgid "_Add to Playlist" #~ msgstr "Añadir a la _lista de reproducción" #~ msgid "Copyright The GNOME Music Developers" #~ msgstr "Copyright Desarrolladores de GNOME Música" #~ msgid "Translated by" #~ msgstr "Traducido por" #~ msgid "Artists Results" #~ msgstr "Resultados de artistas" #~ msgid "Albums Results" #~ msgstr "Resultados de álbumes" #~ msgid "Selected {} song" #~ msgid_plural "Selected {} songs" #~ msgstr[0] "{} canción seleccionada" #~ msgstr[1] "{} canciones seleccionadas" #~ msgid "Your music listening is reported to Last.fm." #~ msgstr "La música que escucha se envía a Last.fm." #~ msgid "Your music listening is not reported to Last.fm." #~ msgstr "La música que escucha no se envía a Last.fm." #~ msgid "Logged in as {}" #~ msgstr "Sesión iniciada como {}" #~ msgid "Configure" #~ msgstr "Configurar" #~ msgid "A music player and management application for GNOME." #~ msgstr "Una aplicación para gestionar y reproducir música en GNOME." #~ msgid "Visit GNOME Music website" #~ msgstr "Visitar la página web de GNOME Music" #~ msgid "" #~ "GNOME Music 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.\n" #~ "\n" #~ "GNOME Music 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.\n" #~ "\n" #~ "You should have received a copy of the GNU General Public License along " #~ "with GNOME Music; if not, write to the Free Software Foundation, Inc., 51 " #~ "Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ "\n" #~ "The GNOME Music authors hereby grant permission for non-GPL compatible " #~ "GStreamer plugins to be used and distributed together with GStreamer and " #~ "GNOME Music. This permission is above and beyond the permissions granted " #~ "by the GPL license by which GNOME Music is covered. If you modify this " #~ "code, you may extend this exception to your version of the code, but you " #~ "are not obligated to do so. If you do not wish to do so, delete this " #~ "exception statement from your version." #~ msgstr "" #~ "GNOME Música es software libre; puede redistribuirlo y/o modificarlo bajo " #~ "los términos de la Licencia Pública General GNU tal como la publica la " #~ "Free Software Foundation; ya sea en la versión 2 de la Licencia, como (a " #~ "su elección) cualquier otra versión posterior.\n" #~ "\n" #~ "GNOME Música se distribuye con el ánimo de que le será útil, pero SIN " #~ "NINGUNA GARANTÍA; sin incluso la garantía implícita de MERCANTILIDAD o " #~ "IDONEIDAD PARA UN PROPÓSITO DETERMINADO. Vea la Licencia Pública General " #~ "de GNU para más detalles.\n" #~ "\n" #~ "Debería haber recibido una copia de la Licencia Pública General GNU junto " #~ "Música si no, escriba a la Free Software Foundation,Inc., 51 Franklin " #~ "Street, Fifth Floor, Boston, MA 02110-1301 EE. UU.\n" #~ "\n" #~ "Los autores de GNOME Música conceden permiso para usar y distribuir " #~ "complementos de GStreamer no compatibles con la GPL. Este permiso está " #~ "por encima y más allá de los permisos concedidos por la GPL, por la que " #~ "GNOME Música está cubierta. Si modifica este código, puede ampliar esta " #~ "excepción a su versión del código, pero no está obligado a hacerlo. Si no " #~ "quiere hacerlo, elimine esta sentencia de excepción de su versión.\n" #~ "\n" #~ "La imagen «Magic of the vinyl» de Sami Pyylampi está licenciada bajo la " #~ "CC-BY-SA 2.0 https://www.flickr.com/photos/_spy_/12270839403" #~| msgid "The contents of your {} will appear here." #~ msgid "The contents of your Music Folder will appear here" #~ msgstr "El contenido de su carpeta Música aparecerá aquí" #~ msgid "GNOME Music" #~ msgstr "GNOME Música" #~ msgid "Window position" #~ msgstr "Posición de la ventana" #~ msgid "Window position (x and y)." #~ msgstr "Posición de la ventana (x e y)." #~ msgid "Loading" #~ msgstr "Cargando" #~ msgid "Add to Playlist…" #~ msgstr "Añadir a la lista de reproducción…" #~ msgid "" #~ "An easy way to play your music. Automatically discover music on your " #~ "computer, the local network and internet services." #~ msgstr "" #~ "Una manera sencilla de reproducir su música. Descubra música " #~ "automáticamente en su equipo, la red local y los servicios de Internet." #~ msgid "" #~ "Find tracks in your local collection, get music from DLNA servers or try " #~ "something new with the Jamendo and Magnatune services." #~ msgstr "" #~ "Buscar pistas en su colección local, obtener música de servidores DNA o " #~ "probar algo nuevo con los servicios de Jamendo y Magnatunes." #~ msgid "Inital state has been displayed" #~ msgstr "Se ha mostrado el estado inicial" #~ msgid "Set to true when initial state has been displayed" #~ msgstr "Establecer a cierto cuando se haya mostrado el estado inicial" #~ msgid "Released" #~ msgstr "Publicado" #~ msgid "Running Length" #~ msgstr "Duración" #~ msgid "Composer" #~ msgstr "Compositor" #~ msgctxt "context menu item" #~ msgid "Play" #~ msgstr "Reproducir" #~ msgid "Hey DJ" #~ msgstr "Hola Dj" #~ msgid "Artist" #~ msgstr "Artista" #~ msgid "Album" #~ msgstr "Álbum" #~ msgid "Track Title" #~ msgstr "Título de la pista" #~ msgid "Local" #~ msgstr "Local" #~ msgid "Sources" #~ msgstr "Fuentes" #~ msgid "Match" #~ msgstr "Coincidencia" #~ msgid "@icon@" #~ msgstr "@icon@" #~ msgid "Untitled" #~ msgstr "Sin título" #~ msgid "Music is the new GNOME music playing application." #~ msgstr "Música es la nueva aplicación de GNOME para reproducir música." #~ msgid "_Quit" #~ msgstr "_Salir" #~ msgid "org.gnome.Music" #~ msgstr "org.gnome.Music" #~ msgid "Selected %d item" #~ msgid_plural "Selected %d items" #~ msgstr[0] "%d elemento seleccionado" #~ msgstr[1] "%d elementos seleccionados" #~ msgid "Empty" #~ msgstr "Vacío" #~ msgid "Search mode" #~ msgstr "Modo de búsqueda" #~ msgid "If true, the search bar is shown." #~ msgstr "Si es cierto, se muestra la barra de búsqueda." #~ msgid "Notifications mode" #~ msgstr "Modo de notificaciones" #~ msgid "Enables or disables playback notifications" #~ msgstr "Activa o desactiva las notificaciones de la reproducción" #~ msgid "%d min" #~ msgstr "%d min" #~ msgid "Select Playlist" #~ msgstr "Seleccionar lista de reproducción" #~ msgid "the|a|an" #~ msgstr "el|la|los|las|un|una" #~ msgid "Max chars to display in track name on Artist view" #~ msgstr "" #~ "Número máximo de caracteres que mostrar en la vista del nombre de la " #~ "pista o del artista" #~ msgid "" #~ "This setting modifies the amount of chars for track title on Artist view " #~ "before its been ellipsized. Set this to -1 to disable" #~ msgstr "" #~ "Este valor modifica la cantidad de caracteres que mostrar en la vista del " #~ "título de la pista de del artista antes de recortarlo. Establecer a -1 " #~ "para desactivarlo" #~ msgid "the a an" #~ msgstr "el la los las un uno una" #~ msgid "All Artists" #~ msgstr "Todos los artistas" #~ msgid "Not playing" #~ msgstr "No está reproduciendo" #~ msgid "by %s, from %s" #~ msgstr "por %s, en %s" #~ msgid "_New Playlist" #~ msgstr "_Lista de reproducción nueva" #~ msgid "the" #~ msgstr "el la" #~ msgid "" #~ "No Music found!\n" #~ " Put some files into the folder %s" #~ msgstr "" #~ "No se ha encontrado música.\n" #~ " Copie algunos archivos en la carpeta %s" #~ msgid "Load More" #~ msgstr "Cargar más" #~ msgid "Now _Playing" #~ msgstr "_Reproduciendo ahora" #~ msgid "Selected %d items" #~ msgstr "%d elementos seleccionados" #~| msgid "Songs" #~ msgid "%d Songs" #~ msgstr "%d canciones" #~ msgid "----" #~ msgstr "----" #~ msgid "--:--" #~ msgstr "--:--" #~| msgid "00:00" #~ msgid "0:00" #~ msgstr "0:00" #~ msgid "/" #~ msgstr "/" #~ msgid "Released" #~ msgstr "Publicado" #~ msgid "Running Length" #~ msgstr "Duración" #~ msgid "Shuffle playback" #~ msgstr "Reproducción aleatoria" #~ msgid "If true, do randomized playback through the collection" #~ msgstr "Si es cierto, reproducir la colección de manera aleatoria" #~ msgid "label" #~ msgstr "etiqueta" #~ msgid "_Change Address Book..." #~ msgstr "_Cambiar libreta de direcciones…" #~ msgid "_About Contacts" #~ msgstr "_Acerca de Contactos" #~ msgid "New" #~ msgstr "Nuevo" #~ msgid "Quit" #~ msgstr "Salir" #~ msgid "A GNOME 3 application to listen and manage music playlists" #~ msgstr "" #~ "Una aplicación de GNOME 3 para escuchar y gestionar listas de " #~ "reproducción de música" #~ msgid "Collection name" #~ msgstr "Nombre de la colección" #~ msgid "%02u:%02u:%02u" #~ msgstr "%02u:%02u:%02u" #~ msgid "%02u:%02u" #~ msgstr "%02u:%02u" 070701000000E6000081A400000000000000000000000166968E4E000018FF000000000000000000000000000000000000001A00000000gnome-music-46.1/po/et.po# Estonian translation for gnome-music. # Copyright (C) 2013 gnome-music's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-music package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: gnome-music master\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" "music&keywords=I18N+L10N&component=general\n" "POT-Creation-Date: 2013-09-18 20:45+0000\n" "PO-Revision-Date: 2013-09-20 18:49+0300\n" "Last-Translator: Mattias Põldaru \n" "Language-Team: Estonian \n" "Language: et\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Poedit 1.5.4\n" msgid "Window size" msgstr "Akna suurus" msgid "Window size (width and height)." msgstr "Akna suurus (laius ja kõrgus)." msgid "Window position" msgstr "Akna asukoht" msgid "Window position (x and y)." msgstr "Akna asukoht (x ja y)." msgid "Window maximized" msgstr "Aken on maksimeeritud" msgid "Window maximized state." msgstr "Akna maksimeerituse olek." msgid "Playback repeat mode" msgstr "Esituse kordamise režiim" msgid "" "Value identifies whether to repeat or randomize playback through the " "collection. Allowed values are: \"none\", \"song\", \"all\", \"shuffle\"." msgstr "" "Väärtus määrab, kas korratakse või esitatakse kogumikku juhuslikus " "järjekorras. Võimalikud väärtused on: \"none\" (pole), \"song\" (laul), \"all" "\" (kõiki) või \"shuffle\" (juhuslik)." msgid "Search mode" msgstr "Otsingu režiim" msgid "If true, the search bar is shown." msgstr "Kui märgitud, kuvatakse otsinguriba." msgid "Music" msgstr "Muusika" msgid "Music Player" msgstr "Muusikamängija" msgid "Play and organize your music collection" msgstr "Mängi ja halda oma muusikakogu" msgid "GNOME Music" msgstr "GNOME muusika" msgid "Music is the new GNOME music playing application." msgstr "Muusika on uus GNOME muusikamängimise rakendus." msgid "Untitled" msgstr "Ilma pealkirjata" msgid "Not playing" msgstr "Ei mängi" msgid "Unknown Artist" msgstr "Tundmatu esitaja" msgid "Unknown Album" msgstr "Tundmatu album" #. TRANSLATORS: by refers to the artist, from to the album #, python-format msgid "by %s, from %s" msgstr "esitaja %s, album %s" msgid "Previous" msgstr "Eelmine" msgid "Pause" msgstr "Paus" msgid "Play" msgstr "Mängi" msgid "Next" msgstr "Järgmine" #, python-format msgid "" "No Music found!\n" " Put some files into the folder %s" msgstr "" "Muusikat ei leitud!\n" " Pane mõned failid %s kausta" msgid "Albums" msgstr "Albumid" msgid "Songs" msgstr "Laulud" msgid "Playlists" msgstr "Loendid" msgid "Artists" msgstr "Esitajad" msgid "All Artists" msgstr "Kõik esitajad" msgid "Load More" msgstr "Laadi veel" msgid "Loading..." msgstr "Laadimine..." msgid "Empty" msgstr "Tühi" msgid "Copyright © 2013 GNOME Music Developers" msgstr "Copyright © 2013 GNOME muusika arendajad" msgid "A music player and management application for GNOME." msgstr "GNOME muusikamängija ja haldamise rakendus." msgid "Visit GNOME Music website" msgstr "Külasta GNOME muusika kodulehte" msgid "" "GNOME Music 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.\n" "\n" "GNOME Music 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.\n" "\n" "You should have received a copy of the GNU General Public License along with " "GNOME Music; if not, write to the Free Software Foundation, Inc., 51 " "Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" "\n" "The GNOME Music authors hereby grant permission for non-GPL compatible " "GStreamer plugins to be used and distributed together with GStreamer and " "GNOME Music. This permission is above and beyond the permissions granted by " "the GPL license by which GNOME Music is covered. If you modify this code, " "you may extend this exception to your version of the code, but you are not " "obligated to do so. If you do not wish to do so, delete this exception " "statement from your version." msgstr "" "GNOME muusika on vaba tarkvara. Te võite seda edasi levitada ja/või muuta " "vastavalt GNU Üldise Avaliku Litsentsi tingimustele, nagu need on Vaba " "Tarkvara Fondi poolt avaldatud; kas Litsentsi versioon number 3 või " "(vastavalt Teie valikule) ükskõik milline hilisem versioon.\n" "\n" "GNOME muusikat levitatakse lootuses, et see on kasulik, kuid ILMA IGASUGUSE " "GARANTIITA; isegi KESKMISE/TAVALISE KVALITEEDIGARANTIITA või SOBIVUSELE " "TEATUD KINDLAKS EESMÄRGIKS. Üksikasjade suhtes vaata GNU Üldist Avalikku " "Litsentsi.\n" "\n" "Te peaks olema saanud GNU Üldise Avaliku Litsentsi koopia koos GNOME " "muusikaga. Kui mitte, kirjutage aadressil Free Software Foundation, Inc., 51 " "Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" "\n" "GNOME muusika autorid lubavad kasutada ja levitada GPL-iga mitteühilduvaid " "GStreameri pluginaid koos GStreameri ja GNOME muusikaga. See õigus on ülem " "võrreldes GPL litsentsiga antud õigustega, mis käivad GNOME muusika kohta. " "Kui sa muudad seda koodi, võid sa seda erandit rakendada ka oma koodile, " "kuid see pole kohustuslik. Kui sa ei soovi seda teha, kustuta see avaldus " "oma versioonist." msgid "Released" msgstr "Aasta" msgid "Running Length" msgstr "Esituse pikkus" msgid "_New Playlist" msgstr "_Uus loend" msgid "_Now Playing" msgstr "_Praegu mängib" msgid "_About Music" msgstr "_Programmist lähemalt" msgid "_Quit" msgstr "_Lõpeta" msgid "Shuffle" msgstr "Juhuslik" msgid "Repeat All" msgstr "Korratakse kõiki" msgid "Repeat Song" msgstr "Korratakse laulu" msgid "Shuffle/Repeat Off" msgstr "Juhuslik/kordus väljas" msgid "No Music Found" msgstr "Muusikat ei leitud" msgid "Select All" msgstr "Vali kõik" msgid "Select None" msgstr "Tühista valik" msgid "Click on items to select them" msgstr "Kirje valimiseks klõpsa sellel" msgid "Cancel" msgstr "Loobu" msgid "Add to Playlist" msgstr "Lisa loendisse" 070701000000E7000081A400000000000000000000000166968E4E00005721000000000000000000000000000000000000001A00000000gnome-music-46.1/po/eu.po# Basque translation for gnome-music. # Copyright (C) 2013 gnome-music's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-music package. # # Iñaki Larrañaga Murgoitio , 2013, 2014, 2015, 2016, 2017. # Asier Sarasua Garmendia , 2013, 2019, 2020, 2021, 2022, 2023, 2024. msgid "" msgstr "Project-Id-Version: gnome-music master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-music/issues\n" "POT-Creation-Date: 2024-02-11 20:43+0000\n" "PO-Revision-Date: 2024-02-14 10:00+0100\n" "Last-Translator: Asier Sarasua Garmendia \n" "Language-Team: Basque \n" "Language: eu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" #: data/org.gnome.Music.appdata.xml.in.in:6 #: data/org.gnome.Music.desktop.in.in:3 data/ui/StatusNavigationPage.ui:4 #: gnomemusic/about.py:138 gnomemusic/application.py:59 gnomemusic/window.py:65 msgid "Music" msgstr "Musika" #: data/org.gnome.Music.appdata.xml.in.in:7 #: data/org.gnome.Music.desktop.in.in:5 msgid "Play and organize your music collection" msgstr "Erreproduzitu eta antolatu zure musika-bilduma" #: data/org.gnome.Music.appdata.xml.in.in:9 msgid "An easy and pleasant way to play your music." msgstr "Musika erreproduzitzeko modu erraz eta atsegina." #: data/org.gnome.Music.appdata.xml.in.in:12 msgid "" "Find tracks in your local collection, use automatically generated playlists " "or curate a fresh one." msgstr "Bilatu pistak zure bilduma lokalean, erabili automatikoki sortutako erreprodukzio-zerrendak edo sortu zerrenda berria." #. developer_name tag deprecated with Appstream 1.0 #: data/org.gnome.Music.appdata.xml.in.in:188 msgid "The GNOME Music developers" msgstr "GNOME Musika aplikazioaren garatzaileak" #: data/org.gnome.Music.desktop.in.in:4 msgid "Music Player" msgstr "Musika-erreproduzitzailea" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Music.desktop.in.in:13 msgid "Music;Player;" msgstr "Musika;Erreproduzitzailea;" #: data/org.gnome.Music.gschema.xml:12 msgid "Window size" msgstr "Leihoaren tamaina" #: data/org.gnome.Music.gschema.xml:13 msgid "Window size (width and height)." msgstr "Leihoaren tamaina (zabalera eta altuera)." #: data/org.gnome.Music.gschema.xml:17 msgid "Window maximized" msgstr "Leihoa maximizatuta" #: data/org.gnome.Music.gschema.xml:18 msgid "Window maximized state." msgstr "Leiho maximizatuaren egoera." #: data/org.gnome.Music.gschema.xml:22 msgid "Playback repeat mode" msgstr "Erreprodukzioa errepikatzeko modua" #. Translators: Don't translate allowed values, just the description in the brackets #: data/org.gnome.Music.gschema.xml:24 msgid "" "Value identifies whether to repeat or randomize playback through the " "collection. Allowed values are: “none” (repeat and shuffle are off), " "“song” (repeat current song), “all” (repeat playlist, no shuffle), " "“shuffle” (shuffle playlist, presumes repeat all)." msgstr "Balioak erreprodukzioa errepikatuko edo ausaz erreproduzituko den bilduman zehar zehazten du. Balio erabilgarriak: “none” (errepikatzea edo ausaz erreproduzitzea desgaituta), “song” (errepikatu uneko abestia), “all” (errepikatu erreprodukzio-zerrenda, ez-ausaz) eta “shuffle” (ausaz erreproduzitu zerrenda, osoa errepikatuko duela suposatzen da)." #: data/org.gnome.Music.gschema.xml:28 data/ui/PreferencesDialog.ui:27 msgid "Enable ReplayGain" msgstr "Gaitu 'ReplayGain' (erreprodukzioaren irabazia)" #: data/org.gnome.Music.gschema.xml:29 msgid "Enables or disables ReplayGain for albums" msgstr "Albumen erreprodukzioen irabazia (ReplayGain) gaitzen/desgaitzen du" #: data/org.gnome.Music.gschema.xml:33 msgid "Inhibit system suspend" msgstr "Galarazi sistema esekitzea" #: data/org.gnome.Music.gschema.xml:34 msgid "Enables or disables inhibiting system suspend while playing music" msgstr "Musika erreproduzitzen ari den bitartean sistema eseki dadin galarazten du" #: data/ui/AlbumsSearchNavigationPage.ui:5 data/ui/SearchView.ui:98 #: gnomemusic/views/albumsview.py:52 msgid "Albums" msgstr "Albumak" #: data/ui/AlbumWidget.ui:84 data/ui/PlayerToolbar.ui:87 #: data/ui/PlaylistControls.ui:101 gnomemusic/widgets/playertoolbar.py:176 msgid "Play" msgstr "Erreproduzitu" #: data/ui/AlbumWidget.ui:130 data/ui/PlaylistControls.ui:5 #: data/ui/SongWidgetMenu.ui:11 msgid "_Play" msgstr "_Erreproduzitu" #: data/ui/AlbumWidget.ui:134 msgid "Add to _Favorite Songs" msgstr "Gehitu _gogoko abestiei" #: data/ui/AlbumWidget.ui:138 data/ui/SongWidgetMenu.ui:15 msgid "_Add to Playlist…" msgstr "Gehitu e_rreprodukzio-zerrendari…" #: data/ui/ArtistsSearchNavigationPage.ui:5 data/ui/SearchView.ui:41 #: gnomemusic/views/artistsview.py:51 msgid "Artists" msgstr "Artistak" #: data/ui/HeaderBar.ui:14 msgid "Menu" msgstr "Menua" #: data/ui/HeaderBar.ui:22 data/ui/SearchHeaderBar.ui:12 msgid "Search" msgstr "Bilatu" #: data/ui/HeaderBar.ui:31 data/ui/PreferencesDialog.ui:4 msgid "Preferences" msgstr "Hobespenak" #: data/ui/HeaderBar.ui:35 msgid "Keyboard Shortcuts" msgstr "Laster-teklak" #: data/ui/HeaderBar.ui:39 msgid "Help" msgstr "Laguntza" #: data/ui/HeaderBar.ui:43 msgid "About Music" msgstr "Musikari buruz" #: data/ui/help-overlay.ui:11 msgctxt "shortcut window" msgid "General" msgstr "Orokorra" #: data/ui/help-overlay.ui:14 msgctxt "shortcut window" msgid "Close window" msgstr "Itxi leihoa" #: data/ui/help-overlay.ui:20 msgctxt "shortcut window" msgid "Search" msgstr "Bilatu" #: data/ui/help-overlay.ui:26 msgctxt "shortcut window" msgid "Help" msgstr "Laguntza" #: data/ui/help-overlay.ui:32 msgctxt "shortcut window" msgid "Shortcuts" msgstr "Lasterbideak" #: data/ui/help-overlay.ui:40 msgctxt "shortcut window" msgid "Playback" msgstr "Erreproduzitu" #: data/ui/help-overlay.ui:43 msgctxt "shortcut window" msgid "Play/Pause" msgstr "Erreproduzitu/pausarazi" #: data/ui/help-overlay.ui:49 msgctxt "shortcut window" msgid "Next song" msgstr "Hurrengoa abestia" #: data/ui/help-overlay.ui:55 msgctxt "shortcut window" msgid "Previous song" msgstr "Aurreko abestia" #: data/ui/help-overlay.ui:61 msgctxt "shortcut window" msgid "Toggle repeat" msgstr "Txandakatu errepikatzea" #: data/ui/help-overlay.ui:67 msgctxt "shortcut window" msgid "Toggle shuffle" msgstr "Txandakatu ausazkoa" #: data/ui/help-overlay.ui:75 msgctxt "shortcut window" msgid "Navigation" msgstr "Nabigazioa" #: data/ui/help-overlay.ui:78 msgctxt "shortcut window" msgid "Go to Albums" msgstr "Joan albumetara" #: data/ui/help-overlay.ui:84 msgctxt "shortcut window" msgid "Go to Artists" msgstr "Joan artistetara" #: data/ui/help-overlay.ui:90 msgctxt "shortcut window" msgid "Go to Songs" msgstr "Joan abestietara" #: data/ui/help-overlay.ui:96 msgctxt "shortcut window" msgid "Go to Playlists" msgstr "Joan zerrendatara" #: data/ui/help-overlay.ui:102 msgctxt "shortcut window" msgid "Go back" msgstr "Joan atzera" #: data/ui/PlayerToolbar.ui:74 msgid "Previous" msgstr "Aurrekoa" #: data/ui/PlayerToolbar.ui:106 msgid "Next" msgstr "Hurrengoa" #: data/ui/PlaylistControls.ui:9 msgid "_Delete" msgstr "Ez_abatu" #: data/ui/PlaylistControls.ui:13 msgid "_Rename…" msgstr "Be_rrizendatu…" #: data/ui/PlaylistControls.ui:28 msgid "Playlist Name" msgstr "Zerrendaren izena" #: data/ui/PlaylistControls.ui:62 msgid "_Done" msgstr "_Eginda" #: data/ui/PlaylistDialog.ui:16 msgid "Add to Playlist" msgstr "Gehitu erreprodukzio-zerrendari…" #: data/ui/PlaylistDialog.ui:27 msgid "_Cancel" msgstr "_Utzi" #: data/ui/PlaylistDialog.ui:36 msgid "_Add" msgstr "_Gehitu" #: data/ui/PlaylistDialog.ui:91 msgid "Enter a name for your first playlist" msgstr "Sartu aurreneko zerrendaren izena" #: data/ui/PlaylistDialog.ui:116 msgid "C_reate" msgstr "_Sortu" #: data/ui/PlaylistDialog.ui:177 msgid "New Playlist…" msgstr "Erreprodukzio-zerrenda berria…" #: data/ui/PlaylistDialog.ui:189 msgid "Add" msgstr "Gehitu" #: data/ui/PreferencesDialog.ui:9 msgid "Player Settings" msgstr "Erreproduzigailuaren ezarpenak" #: data/ui/PreferencesDialog.ui:12 msgid "Repeat Mode" msgstr "Errepikatze-modua" #: data/ui/PreferencesDialog.ui:16 msgid "None" msgstr "Bat ere ez" #: data/ui/PreferencesDialog.ui:17 msgid "Song" msgstr "Abestia" #: data/ui/PreferencesDialog.ui:18 msgid "All" msgstr "Denak" #: data/ui/PreferencesDialog.ui:19 gnomemusic/player.py:51 msgid "Shuffle" msgstr "Ausaz" #: data/ui/PreferencesDialog.ui:28 msgid "Balance loudness between songs if ReplayGain metadata is found" msgstr "Orekatu abestien arteko ozentasuna ReplayGain metadaturik aurkitzen bada" #: data/ui/PreferencesDialog.ui:35 msgid "Power Settings" msgstr "Energiaren ezarpenak" #: data/ui/PreferencesDialog.ui:38 msgid "Inhibit Suspend" msgstr "Galarazi esekitzea" #: data/ui/PreferencesDialog.ui:39 msgid "Only while playing" msgstr "Erreproduzitzean soilik" #: data/ui/SearchView.ui:55 data/ui/SearchView.ui:112 msgid "View All" msgstr "Ikusi dena" #: data/ui/SearchView.ui:154 msgid "Songs" msgstr "Abestiak" #: data/ui/SongWidgetMenu.ui:19 msgid "_Remove from Playlist" msgstr "_Kendu erreprodukzio-zerrendatik" #: data/ui/StatusNavigationPage.ui:36 msgid "Welcome to Music" msgstr "Ongi etorri Musika aplikaziora" #: gnomemusic/about.py:140 msgid "The GNOME Project" msgstr "GNOME proiektua" #. Translators should localize the following string which #. will be displayed at the bottom of the about box to give #. credit to the translator(s). #: gnomemusic/about.py:146 msgid "translator-credits" msgstr "translator-credits" #: gnomemusic/about.py:150 msgid "© The GNOME Music Developers" msgstr "© The GNOME Musika aplikazioaren garatzaileak" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:839 msgid "Most Played" msgstr "Gehien erreproduzitua" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:893 msgid "Never Played" msgstr "Inoiz erreproduzitu gabea" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:946 msgid "Recently Played" msgstr "Azken aldian erreproduzitua" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1025 msgid "Recently Added" msgstr "Azken aldian gehitua" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1088 msgid "Favorite Songs" msgstr "Gogoko abestiak" #. TRANSLATORS: this is a playlist name indicating that the #. files are not tagged enough to be displayed in the albums #. or artists views. #: gnomemusic/grilowrappers/grltrackerplaylists.py:1142 msgid "Insufficiently Tagged" msgstr "Gutxi etiketatua" #: gnomemusic/gstplayer.py:418 msgid "Unable to play the file" msgstr "Ezin da fitxategia erreproduzitu" #: gnomemusic/gstplayer.py:424 msgid "_Find in {}" msgstr "_Bilatu hemen: {}" #. TRANSLATORS: separator for two codecs #: gnomemusic/gstplayer.py:434 msgid " and " msgstr " eta " #. TRANSLATORS: separator for a list of codecs #: gnomemusic/gstplayer.py:437 msgid ", " msgstr ", " #: gnomemusic/gstplayer.py:439 msgid "{} is required to play the file, but is not installed." msgid_plural "{} are required to play the file, but are not installed." msgstr[0] "{} behar da fitxategia erreproduzitzeko, baina ez dago instalatuta." msgstr[1] "{} behar dira fitxategia erreproduzitzeko, baina ez daude instalatuta." #: gnomemusic/inhibitsuspend.py:69 msgid "Playing music" msgstr "Musika erreproduzitzen" #. Translators: "shuffle" causes tracks to play in random order. #: gnomemusic/player.py:48 msgid "Shuffle/Repeat Off" msgstr "Ausaz/Ez errepikatu" #: gnomemusic/player.py:49 msgid "Repeat Song" msgstr "Errepikatu abestia" #: gnomemusic/player.py:50 msgid "Repeat All" msgstr "Errepikatu dena" #: gnomemusic/playlisttoast.py:55 msgid "Playlist {} removed" msgstr "{} zerrenda kenduta" #: gnomemusic/playlisttoast.py:56 gnomemusic/songtoast.py:65 msgid "Undo" msgstr "Desegin" #: gnomemusic/songtoast.py:64 msgid "{} removed from {}" msgstr "{} kenduta hemendik: {}" #: gnomemusic/utils.py:89 msgid "Unknown album" msgstr "Album ezezaguna" #: gnomemusic/utils.py:110 msgid "Unknown Artist" msgstr "Artista ezezaguna" #: gnomemusic/views/playlistsview.py:45 msgid "Playlists" msgstr "Erreprodukzio-zerrendak" #: gnomemusic/views/searchview.py:220 msgid "No Search Started" msgstr "Ez da bilaketa abiarazi" #: gnomemusic/views/searchview.py:222 msgid "Use the searchbar to start searching for albums, artists or songs" msgstr "Erabili bilaketa-barra albumak, artistak edo abestiak bilatzeko" #: gnomemusic/views/searchview.py:226 msgid "No Results Found" msgstr "Ez da emaitzarik aurkitu" #: gnomemusic/views/searchview.py:228 msgid "Try a different search" msgstr "Saiatu bestelako bilaketa" #: gnomemusic/widgets/albumwidget.py:230 msgid "{} minute" msgid_plural "{} minutes" msgstr[0] "Minutu {}" msgstr[1] "{} minutu" #: gnomemusic/widgets/discbox.py:74 msgid "Disc {}" msgstr "{} diskoa" #: gnomemusic/widgets/playertoolbar.py:173 msgid "Pause" msgstr "Pausatu" #: gnomemusic/widgets/playlistcontrols.py:130 msgid "{} Song" msgid_plural "{} Songs" msgstr[0] "Abesti {}" msgstr[1] "{} abesti" #: gnomemusic/widgets/searchheaderbar.py:50 msgid "Search songs, artists and albums" msgstr "Bilatu abestiak, artistak eta albumak" #. noqa: F841 #: gnomemusic/widgets/songwidgetmenu.py:94 msgid "_Open Location" msgstr "_Ireki kokalekua" #. TRANSLATORS: These are verbs, to (un)mark something as a #. favorite. #: gnomemusic/widgets/startoggle.py:36 msgid "Unstar" msgstr "Kendu izarra" #: gnomemusic/widgets/startoggle.py:36 msgid "Star" msgstr "Eman izarra" #: gnomemusic/widgets/statusnavigationpage.py:51 msgid "Your XDG Music directory is not set." msgstr "Zure XDG musika direktorioa ez dago ezarrita." #: gnomemusic/widgets/statusnavigationpage.py:58 msgid "Music Folder" msgstr "Musikaren karpeta" #. TRANSLATORS: This is a label to display a link to open user's music #. folder. {} will be replaced with the translated text 'Music folder' #: gnomemusic/widgets/statusnavigationpage.py:66 msgid "The contents of your {} will appear here." msgstr "Zure {} edukiak hemen agertuko dira." #: gnomemusic/widgets/statusnavigationpage.py:116 msgid "No Music Found" msgstr "Ez da musikarik aurkitu" #: gnomemusic/widgets/statusnavigationpage.py:117 msgid "Try a Different Search" msgstr "Saiatu bestelako bilaketa bat" #: gnomemusic/widgets/statusnavigationpage.py:121 msgid "GNOME Music could not connect to Tracker." msgstr "GNOME Musikak ezin izan du Tracker-ekin konektatu." #: gnomemusic/widgets/statusnavigationpage.py:123 msgid "Your music files cannot be indexed without Tracker running." msgstr "Zure musika-fitxategiak ezin dira indexatu Tracker exekutatzen ez bada." #: gnomemusic/widgets/statusnavigationpage.py:129 msgid "Your system Tracker version seems outdated." msgstr "Zure sistemako Tracker bertsioa zaharkituta dagoela dirudi." #: gnomemusic/widgets/statusnavigationpage.py:131 msgid "Music needs Tracker version 3.0.0 or higher." msgstr "Musika aplikazioak Tracker 3.0.0 bertsioa edo berriagoa behar du." #~ msgid "Report music history to Last.fm" #~ msgstr "Igorri musika-historia Last.fm guneari" #~ msgid "" #~ "Enables or disables sending scrobbles and the “currently playing” info to " #~ "Last.fm." #~ msgstr "" #~ "Abestien izenak eta \"unean erreproduzitzen\" Last-fm guneari igortzea " #~ "gaitzen edo desgaitzen du." #~ msgid "Last.fm Account" #~ msgstr "Last.fm kontua" #~ msgid "Report Music Listening" #~ msgstr "Eman musika entzutearen berri" #~ msgid "_Help" #~ msgstr "_Laguntza" #~ msgid "Select" #~ msgstr "Hautatu" #~ msgid "Back" #~ msgstr "Atzera" #~ msgid "" #~ "Last.fm is a music discovery service that gives you personalised " #~ "recommendations based on the music you listen to." #~ msgstr "" #~ "Last.fm musika aurkitzeko zerbitzu bat da, entzuten duzun musikaren " #~ "araberako gomendio pertsonalizatuak ematen dizkizuna." #~ msgid "Music Reporting Not Setup" #~ msgstr "Abestien berri ematea ez dago konfiguratuta" #~ msgid "Login to your Last.fm account to report your music listening." #~ msgstr "" #~ "Hasi saioa zure Last.fm kontuan entzuten duzun musikaren berri emateko." #~ msgid "Login" #~ msgstr "Saio-hasiera" #~ msgid "Select All" #~ msgstr "Hautatu dena" #~ msgid "Select None" #~ msgstr "Ez hautatu ezer" #~ msgid "Click on items to select them" #~ msgstr "Egin klik elementuen gainean hautatzeko" #~ msgid "_Add to Playlist" #~ msgstr "_Gehitu zerrendari" #~ msgid "Copyright The GNOME Music Developers" #~ msgstr "Copyright GNOME Musika aplikazioaren garatzaileak" #~ msgid "Translated by" #~ msgstr "Itzultzaileak" #~ msgid "Artists Results" #~ msgstr "Artisten emaitzak" #~ msgid "Albums Results" #~ msgstr "Albumen emaitzak" #~ msgid "Selected {} song" #~ msgid_plural "Selected {} songs" #~ msgstr[0] "Abesti {} hautatuta" #~ msgstr[1] "{} abesti hautatuta" #~ msgid "Your music listening is reported to Last.fm." #~ msgstr "Entzuten duzun musikaren berri ematen ari zaio Last-fm zerbitzuari." #~ msgid "Your music listening is not reported to Last.fm." #~ msgstr "" #~ "Entzuten duzun musikaren berri ez zaio ematen ari Last-fm zerbitzuari." #~ msgid "Logged in as {}" #~ msgstr "Saioa hasita {} erabiltzailearekin" #~ msgid "Configure" #~ msgstr "Konfiguratu" #~ msgid "A music player and management application for GNOME." #~ msgstr "GNOMEren aplikazio bat musika erreproduzitzeko eta kudeatzeko." #~ msgid "Visit GNOME Music website" #~ msgstr "Bisitatu GNOME Music-en webgunea" #~ msgid "" #~ "GNOME Music 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.\n" #~ "\n" #~ "GNOME Music 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.\n" #~ "\n" #~ "You should have received a copy of the GNU General Public License along " #~ "with GNOME Music; if not, write to the Free Software Foundation, Inc., 51 " #~ "Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ "\n" #~ "The GNOME Music authors hereby grant permission for non-GPL compatible " #~ "GStreamer plugins to be used and distributed together with GStreamer and " #~ "GNOME Music. This permission is above and beyond the permissions granted " #~ "by the GPL license by which GNOME Music is covered. If you modify this " #~ "code, you may extend this exception to your version of the code, but you " #~ "are not obligated to do so. If you do not wish to do so, delete this " #~ "exception statement from your version." #~ msgstr "" #~ "GNOME Musika software librea da; birbana eta/edo alda dezakezu Free " #~ "Software Foundation-ek argitaratutako GNU Lizentzia Publiko Orokorraren " #~ "2. bertsioan, edo (nahiago baduzu) bertsio berriago batean, jasotako " #~ "baldintzak betez gero.\n" #~ "\n" #~ "GNOME Musika erabilgarria izango delakoan banatzen da, baina INOLAKO " #~ "BERMERIK GABE; era berean, ez da bermatzen beraren EGOKITASUNA " #~ "MERKATURATZEKO edo HELBURU PARTIKULARRETARAKO ERABILTZEKO. Argibide " #~ "gehiago nahi izanez gero, ikus GNU Lizentzia Publiko Orokorra.\n" #~ "\n" #~ "Programa honekin batera GNU Lizentzia Publiko Orokorraren kopia bat ere " #~ "jaso beharko zenuke; horrela ez bada, idatzi helbide honetara: Free " #~ "Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA " #~ "02111-1301, USA.\n" #~ "\n" #~ "GNOME Musikaren egileek baimena ematen dute GPL lizentziarekin " #~ "bateragarriak ez diren GStreamer pluginak erabiltzeko eta banatzeko " #~ "GStreamerrekin eta GNOME Musikarekin batera. Baimen hori GNOME Musikak " #~ "darabilen GPL lizentziak ematen dituen baimenen gainetik eta haratago " #~ "dago. Kode hau aldatzen baduzu, salbuespen hori kodearen zure bertsiora " #~ "hedatu dezakezu, baina ez zaude hori egitera behartuta. Ez baduzu egin " #~ "nahi, ezabatu salbuespen-adierazpen hau zure bertsiotik." #~ msgid "The contents of your Music Folder will appear here" #~ msgstr "Zure 'Musika' karpetaren edukiak hemen agertuko dira" #~ msgid "GNOME Music" #~ msgstr "GNOME Musika" #~ msgid "Window position" #~ msgstr "Leihoaren posizioa" #~ msgid "Window position (x and y)." #~ msgstr "Leihoaren posizioa (x eta y)." #~ msgid "Loading" #~ msgstr "Kargatzen" #~ msgid "Add to Playlist…" #~ msgstr "Gehitu erreprodukzio-zerrendari…" #~ msgid "" #~ "An easy way to play your music. Automatically discover music on your " #~ "computer, the local network and internet services." #~ msgstr "" #~ "Zure musika errproduzitzeko modu erraza. Aurkitu musika automatikoki zure " #~ "ordenagailuan, sare lokalean eta lineako zerbitzuetan." #~ msgid "" #~ "Find tracks in your local collection, get music from DLNA servers or try " #~ "something new with the Jamendo and Magnatune services." #~ msgstr "" #~ "Aurkitu pistak zure bilduma lokalean, eskuratu musika DLNA " #~ "zerbitzarietatik edo bilatuzerbait berria Jamendu eta Magnatune " #~ "zerbitzuetan." #~ msgid "Inital state has been displayed" #~ msgstr "Hasierako egoera bistaratu da" #~ msgid "Set to true when initial state has been displayed" #~ msgstr "Ezarri TRUE (egia) gisa hasierako egoera bistaratzen denean" #~ msgid "Released" #~ msgstr "Argitaratua" #~ msgid "Running Length" #~ msgstr "Iraupena" #~ msgid "Composer" #~ msgstr "Konpositorea" #~ msgctxt "context menu item" #~ msgid "Play" #~ msgstr "Erreproduzitu" #~ msgid "Hey DJ" #~ msgstr "Hi DJ" #~ msgid "Artist" #~ msgstr "Artista" #~ msgid "Album" #~ msgstr "Albuma" #~ msgid "Track Title" #~ msgstr "Pistaren titulua" #~ msgid "Local" #~ msgstr "Lokala" #~ msgid "Sources" #~ msgstr "Iturburuak" #~ msgid "Match" #~ msgstr "Parekatu" #~ msgid "@icon@" #~ msgstr "@icon@" #~ msgid "Untitled" #~ msgstr "Izengabea" 070701000000E8000081A400000000000000000000000166968E4E00006B0C000000000000000000000000000000000000001A00000000gnome-music-46.1/po/fa.po# Persian translation for gnome-music. # Copyright (C) 2013 gnome-music's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-music package. # royaniva , 2013. # Arash Mousavi , 2013-2017. # Danial Behzadi , 2018-2024. # msgid "" msgstr "" "Project-Id-Version: gnome-music master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-music/issues\n" "POT-Creation-Date: 2024-02-11 20:43+0000\n" "PO-Revision-Date: 2024-02-16 00:58+0330\n" "Last-Translator: Danial Behzadi \n" "Language-Team: Persian <>\n" "Language: fa\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Poedit 3.4.2\n" #: data/org.gnome.Music.appdata.xml.in.in:6 data/org.gnome.Music.desktop.in.in:3 #: data/ui/StatusNavigationPage.ui:4 gnomemusic/about.py:138 #: gnomemusic/application.py:59 gnomemusic/window.py:65 msgid "Music" msgstr "آهنگ‌ها" #: data/org.gnome.Music.appdata.xml.in.in:7 data/org.gnome.Music.desktop.in.in:5 msgid "Play and organize your music collection" msgstr "پخش و سازمان‌دهی مجموعه آهنگ‌هایتان" #: data/org.gnome.Music.appdata.xml.in.in:9 msgid "An easy and pleasant way to play your music." msgstr "راهی آسان و دلپذیر برای پخش آهنگ‌هایتان." #: data/org.gnome.Music.appdata.xml.in.in:12 msgid "" "Find tracks in your local collection, use automatically generated playlists or " "curate a fresh one." msgstr "" "یافتن قطعه‌ها در مجموعهٔ محلّیتان با استفاده از سیاهه‌های پخش ایجاد شده به صورت " "خودکار یا ساختن سیاهه‌ای تازه." #. developer_name tag deprecated with Appstream 1.0 #: data/org.gnome.Music.appdata.xml.in.in:188 msgid "The GNOME Music developers" msgstr "توسعه‌دهندگان آهنگ‌های گنوم" #: data/org.gnome.Music.desktop.in.in:4 msgid "Music Player" msgstr "پخش‌کنندهٔ آهنگ" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Music.desktop.in.in:13 msgid "Music;Player;" msgstr "Music;Player;پخش‌کننده‌;موزیک;آهنگ;موسیقی;" #: data/org.gnome.Music.gschema.xml:12 msgid "Window size" msgstr "اندازهٔ پنجره" #: data/org.gnome.Music.gschema.xml:13 msgid "Window size (width and height)." msgstr "اندازهٔ پنجره (پهنا و بلندا)" #: data/org.gnome.Music.gschema.xml:17 msgid "Window maximized" msgstr "پنجره بیشینه شد" #: data/org.gnome.Music.gschema.xml:18 msgid "Window maximized state." msgstr "حالت بیشینهٔ پنجره." #: data/org.gnome.Music.gschema.xml:22 msgid "Playback repeat mode" msgstr "حالت تکرار پخش" #. Translators: Don't translate allowed values, just the description in the brackets #: data/org.gnome.Music.gschema.xml:24 msgid "" "Value identifies whether to repeat or randomize playback through the collection. " "Allowed values are: “none” (repeat and shuffle are off), “song” (repeat current " "song), “all” (repeat playlist, no shuffle), “shuffle” (shuffle playlist, " "presumes repeat all)." msgstr "" "مقدار مشخص می‌کند که آیا پخش در میان مجموعه تکرار شود یا به صورت تصادفی باشد. " "مقادیر معتبر عبارتند از: «none» (تکرار و بر زدن خاموش)، «song» (آواز کنونی تکرار " "می‌شود)، «all» (سیاههٔ پخش بدون بر زدن تکرار می‌شود)، «shuffle» (بر زدن سیاههٔ پخش " "با حفظ تکرار همه)." #: data/org.gnome.Music.gschema.xml:28 data/ui/PreferencesDialog.ui:27 msgid "Enable ReplayGain" msgstr "فعال‌سازی ReplayGain" #: data/org.gnome.Music.gschema.xml:29 msgid "Enables or disables ReplayGain for albums" msgstr "به یا از کار انداختن ReplayGain برای آلبوم‌ها" #: data/org.gnome.Music.gschema.xml:33 msgid "Inhibit system suspend" msgstr "جلوگیری از تعلیق سامانه" #: data/org.gnome.Music.gschema.xml:34 msgid "Enables or disables inhibiting system suspend while playing music" msgstr "به یا از کار انداختن جلوگیری از تعلیق سامانه هنگام پخش آهنگ" #: data/ui/AlbumsSearchNavigationPage.ui:5 data/ui/SearchView.ui:98 #: gnomemusic/views/albumsview.py:52 msgid "Albums" msgstr "آلبوم‌ها" #: data/ui/AlbumWidget.ui:84 data/ui/PlayerToolbar.ui:87 #: data/ui/PlaylistControls.ui:101 gnomemusic/widgets/playertoolbar.py:176 msgid "Play" msgstr "پخش" #: data/ui/AlbumWidget.ui:130 data/ui/PlaylistControls.ui:5 #: data/ui/SongWidgetMenu.ui:11 msgid "_Play" msgstr "_پخش" #: data/ui/AlbumWidget.ui:134 msgid "Add to _Favorite Songs" msgstr "افزودن به آوازهای _محبوب" #: data/ui/AlbumWidget.ui:138 data/ui/SongWidgetMenu.ui:15 msgid "_Add to Playlist…" msgstr "_افزودن به سیاههٔ پخش…" #: data/ui/ArtistsSearchNavigationPage.ui:5 data/ui/SearchView.ui:41 #: gnomemusic/views/artistsview.py:51 msgid "Artists" msgstr "هنرمندان" #: data/ui/HeaderBar.ui:14 msgid "Menu" msgstr "فهرست" #: data/ui/HeaderBar.ui:22 data/ui/SearchHeaderBar.ui:12 msgid "Search" msgstr "جست‌وجو" #: data/ui/HeaderBar.ui:31 data/ui/PreferencesDialog.ui:4 msgid "Preferences" msgstr "ترجیحات" #: data/ui/HeaderBar.ui:35 msgid "Keyboard Shortcuts" msgstr "میان‌برهای صفحه‌کلید" #: data/ui/HeaderBar.ui:39 msgid "Help" msgstr "راهنما" #: data/ui/HeaderBar.ui:43 msgid "About Music" msgstr "دربارهٔ آهنگ‌ها" #: data/ui/help-overlay.ui:11 msgctxt "shortcut window" msgid "General" msgstr "عمومی" #: data/ui/help-overlay.ui:14 msgctxt "shortcut window" msgid "Close window" msgstr "بستن پنجره" #: data/ui/help-overlay.ui:20 msgctxt "shortcut window" msgid "Search" msgstr "جست‌وجو" #: data/ui/help-overlay.ui:26 msgctxt "shortcut window" msgid "Help" msgstr "راهنما" #: data/ui/help-overlay.ui:32 msgctxt "shortcut window" msgid "Shortcuts" msgstr "میان‌برها" #: data/ui/help-overlay.ui:40 msgctxt "shortcut window" msgid "Playback" msgstr "پخش" #: data/ui/help-overlay.ui:43 msgctxt "shortcut window" msgid "Play/Pause" msgstr "پخش/مکث" #: data/ui/help-overlay.ui:49 msgctxt "shortcut window" msgid "Next song" msgstr "آهنگ بعد" #: data/ui/help-overlay.ui:55 msgctxt "shortcut window" msgid "Previous song" msgstr "آهنگ پیشین" #: data/ui/help-overlay.ui:61 msgctxt "shortcut window" msgid "Toggle repeat" msgstr "تغییر وضعیت تکرار" #: data/ui/help-overlay.ui:67 msgctxt "shortcut window" msgid "Toggle shuffle" msgstr "تغییر وضعیت بر زدن" #: data/ui/help-overlay.ui:75 msgctxt "shortcut window" msgid "Navigation" msgstr "ناوبری" #: data/ui/help-overlay.ui:78 msgctxt "shortcut window" msgid "Go to Albums" msgstr "رفتن به آلبوم‌ها" #: data/ui/help-overlay.ui:84 msgctxt "shortcut window" msgid "Go to Artists" msgstr "رفتن به هنرمندان" #: data/ui/help-overlay.ui:90 msgctxt "shortcut window" msgid "Go to Songs" msgstr "رفتن به آهنگ‌ها" #: data/ui/help-overlay.ui:96 msgctxt "shortcut window" msgid "Go to Playlists" msgstr "رفتن به سیاهه‌های پخش" #: data/ui/help-overlay.ui:102 msgctxt "shortcut window" msgid "Go back" msgstr "بازگشت" #: data/ui/PlayerToolbar.ui:74 msgid "Previous" msgstr "پیشین" #: data/ui/PlayerToolbar.ui:106 msgid "Next" msgstr "بعدی" #: data/ui/PlaylistControls.ui:9 msgid "_Delete" msgstr "_حذف" #: data/ui/PlaylistControls.ui:13 msgid "_Rename…" msgstr "_تغییر نام…" #: data/ui/PlaylistControls.ui:28 msgid "Playlist Name" msgstr "نام سیاههٔ پخش" #: data/ui/PlaylistControls.ui:62 msgid "_Done" msgstr "_انجام شد" #: data/ui/PlaylistDialog.ui:16 msgid "Add to Playlist" msgstr "افزودن به سیاههٔ پخش" #: data/ui/PlaylistDialog.ui:27 msgid "_Cancel" msgstr "_لغو" #: data/ui/PlaylistDialog.ui:36 msgid "_Add" msgstr "ا_فزودن" #: data/ui/PlaylistDialog.ui:91 msgid "Enter a name for your first playlist" msgstr "نامی برای نخستین سیاههٔ پخشتان وارد کنید" #: data/ui/PlaylistDialog.ui:116 msgid "C_reate" msgstr "ا_یجاد" #: data/ui/PlaylistDialog.ui:177 msgid "New Playlist…" msgstr "سیاههٔ پخش جدید…" #: data/ui/PlaylistDialog.ui:189 msgid "Add" msgstr "افزودن" #: data/ui/PreferencesDialog.ui:9 msgid "Player Settings" msgstr "تنظیمات پخش کننده" #: data/ui/PreferencesDialog.ui:12 msgid "Repeat Mode" msgstr "حالت تکرار" #: data/ui/PreferencesDialog.ui:16 msgid "None" msgstr "هیچ‌کدام" #: data/ui/PreferencesDialog.ui:17 msgid "Song" msgstr "آواز" #: data/ui/PreferencesDialog.ui:18 msgid "All" msgstr "همه" #: data/ui/PreferencesDialog.ui:19 gnomemusic/player.py:51 msgid "Shuffle" msgstr "بر زدن" #: data/ui/PreferencesDialog.ui:28 msgid "Balance loudness between songs if ReplayGain metadata is found" msgstr "تعادل بلندی بین آوازها در صورت یافتن فرادادهٔ ReplayGain" #: data/ui/PreferencesDialog.ui:35 msgid "Power Settings" msgstr "تنظیمات نیرو" #: data/ui/PreferencesDialog.ui:38 msgid "Inhibit Suspend" msgstr "جلوگیری از تعلیق" #: data/ui/PreferencesDialog.ui:39 msgid "Only while playing" msgstr "فقط هنگام پخش" #: data/ui/SearchView.ui:55 data/ui/SearchView.ui:112 msgid "View All" msgstr "نمایش همه" #: data/ui/SearchView.ui:154 msgid "Songs" msgstr "آوازها" #: data/ui/SongWidgetMenu.ui:19 msgid "_Remove from Playlist" msgstr "_برداشتن از سیاههٔ پخش" #: data/ui/StatusNavigationPage.ui:36 msgid "Welcome to Music" msgstr "به آهنگ‌ها خوش آمدید" #: gnomemusic/about.py:140 msgid "The GNOME Project" msgstr "پروژهٔ گنوم" #. Translators should localize the following string which #. will be displayed at the bottom of the about box to give #. credit to the translator(s). #: gnomemusic/about.py:146 msgid "translator-credits" msgstr "دانیال بهزادی " #: gnomemusic/about.py:150 msgid "© The GNOME Music Developers" msgstr "© توسعه‌دهندگان آهنگ‌های گنوم" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:839 msgid "Most Played" msgstr "بیش‌ترین پخش شده" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:893 msgid "Never Played" msgstr "هرگز پخش نشده" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:946 msgid "Recently Played" msgstr "اخیراً پخش شده" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1025 msgid "Recently Added" msgstr "اخیراً اضافه شده" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1088 msgid "Favorite Songs" msgstr "آوازهای محبوب" #. TRANSLATORS: this is a playlist name indicating that the #. files are not tagged enough to be displayed in the albums #. or artists views. #: gnomemusic/grilowrappers/grltrackerplaylists.py:1142 msgid "Insufficiently Tagged" msgstr "برچسب‌های ناکافی" #: gnomemusic/gstplayer.py:418 msgid "Unable to play the file" msgstr "نمی‌توان پرونده را پخش کرد" #: gnomemusic/gstplayer.py:424 msgid "_Find in {}" msgstr "_یافتن در {}" #. TRANSLATORS: separator for two codecs #: gnomemusic/gstplayer.py:434 msgid " and " msgstr " و " #. TRANSLATORS: separator for a list of codecs #: gnomemusic/gstplayer.py:437 msgid ", " msgstr "، " #: gnomemusic/gstplayer.py:439 msgid "{} is required to play the file, but is not installed." msgid_plural "{} are required to play the file, but are not installed." msgstr[0] "برای پخش پرونده نیاز به {} است، ولی نصب نشده." #: gnomemusic/inhibitsuspend.py:69 msgid "Playing music" msgstr "در حال پخش آهنگ" #. Translators: "shuffle" causes tracks to play in random order. #: gnomemusic/player.py:48 msgid "Shuffle/Repeat Off" msgstr "خاموشی بر زدن/تکرار" #: gnomemusic/player.py:49 msgid "Repeat Song" msgstr "تکرار آواز" #: gnomemusic/player.py:50 msgid "Repeat All" msgstr "تکرار همه" #: gnomemusic/playlisttoast.py:55 msgid "Playlist {} removed" msgstr "سیاههٔ پخش {} برداشته شد" #: gnomemusic/playlisttoast.py:56 gnomemusic/songtoast.py:65 msgid "Undo" msgstr "برگردان" #: gnomemusic/songtoast.py:64 msgid "{} removed from {}" msgstr "{} از {} برداشته شد" #: gnomemusic/utils.py:89 msgid "Unknown album" msgstr "آلبوم ناشناس" #: gnomemusic/utils.py:110 msgid "Unknown Artist" msgstr "هنرمند ناشناس" #: gnomemusic/views/playlistsview.py:45 msgid "Playlists" msgstr "سیاهه‌های پخش" #: gnomemusic/views/searchview.py:220 msgid "No Search Started" msgstr "هیچ جست‌وجویی آغاز نشده" #: gnomemusic/views/searchview.py:222 msgid "Use the searchbar to start searching for albums, artists or songs" msgstr "استفاده از نوار جست‌وجو برای آغاز جست‌وجوی آلبوم‌ها، هنرمندان یا آوازها" #: gnomemusic/views/searchview.py:226 msgid "No Results Found" msgstr "هیچ نتیجه‌ای پیدا نشد" #: gnomemusic/views/searchview.py:228 msgid "Try a different search" msgstr "جست‌وجویی دیگر را بیازمایید" #: gnomemusic/widgets/albumwidget.py:230 msgid "{} minute" msgid_plural "{} minutes" msgstr[0] "{} دقیقه" #: gnomemusic/widgets/discbox.py:74 msgid "Disc {}" msgstr "دیسک {}" #: gnomemusic/widgets/playertoolbar.py:173 msgid "Pause" msgstr "مکث" #: gnomemusic/widgets/playlistcontrols.py:130 msgid "{} Song" msgid_plural "{} Songs" msgstr[0] "{} آهنگ" #: gnomemusic/widgets/searchheaderbar.py:50 msgid "Search songs, artists and albums" msgstr "جست‌وجوی آوازها، هنرمندان و آلبوم‌ها" #. noqa: F841 #: gnomemusic/widgets/songwidgetmenu.py:94 msgid "_Open Location" msgstr "_گشودن مکان" #. TRANSLATORS: These are verbs, to (un)mark something as a #. favorite. #: gnomemusic/widgets/startoggle.py:36 msgid "Unstar" msgstr "بی‌ستاره" #: gnomemusic/widgets/startoggle.py:36 msgid "Star" msgstr "ستاره" #: gnomemusic/widgets/statusnavigationpage.py:51 msgid "Your XDG Music directory is not set." msgstr "شاخهٔ آهنگ XDGتان تنظیم نشده است." #: gnomemusic/widgets/statusnavigationpage.py:58 msgid "Music Folder" msgstr "شاخهٔ موسیقی" #. TRANSLATORS: This is a label to display a link to open user's music #. folder. {} will be replaced with the translated text 'Music folder' #: gnomemusic/widgets/statusnavigationpage.py:66 msgid "The contents of your {} will appear here." msgstr "محتویات {} شما در اینجا نمایان می‌شوند." #: gnomemusic/widgets/statusnavigationpage.py:116 msgid "No Music Found" msgstr "هیچ آهنگی پیدا نشد" #: gnomemusic/widgets/statusnavigationpage.py:117 msgid "Try a Different Search" msgstr "جست‌وجویی دیگر را بیازمایید" #: gnomemusic/widgets/statusnavigationpage.py:121 msgid "GNOME Music could not connect to Tracker." msgstr "آهنگ‌های گنوم نتوانست به ردیاب وصل شود." #: gnomemusic/widgets/statusnavigationpage.py:123 msgid "Your music files cannot be indexed without Tracker running." msgstr "بدون وجود ردیاب، پرونده‌های آهنگتان قادر به فهرست‌شدن نیستند." #: gnomemusic/widgets/statusnavigationpage.py:129 msgid "Your system Tracker version seems outdated." msgstr "به نظر نگارش ردیاب سامانه‌تان قدیمی است." #: gnomemusic/widgets/statusnavigationpage.py:131 msgid "Music needs Tracker version 3.0.0 or higher." msgstr "آهنگ‌ها به نگارش ۳٫۰٫۰ یا بالاتر ردیاب نیاز دارد." #~ msgid "_Help" #~ msgstr "_راهنما" #~ msgid "Select" #~ msgstr "گزینش" #~ msgid "Select All" #~ msgstr "گزینش همه" #~ msgid "Select None" #~ msgstr "گزینش هیچ‌کدام" #~ msgid "Click on items to select them" #~ msgstr "برای گزینش موارد،‌رویشان کلیک کنید" #~ msgid "_Add to Playlist" #~ msgstr "ا_فزودن به سیاههٔ پخش" #~ msgid "Copyright The GNOME Music Developers" #~ msgstr "حق‌رونوشت توسعه‌دهندگان آهنگ‌های گنوم" #~ msgid "Translated by" #~ msgstr "بازگردانی به دست" #~ msgid "Selected {} song" #~ msgid_plural "Selected {} songs" #~ msgstr[0] "{} آواز گزیده" #~ msgid "Report music history to Last.fm" #~ msgstr "گزارش تاریخچهٔ آهنگ‌ها به لست.اف‌ام" #~ msgid "" #~ "Enables or disables sending scrobbles and the “currently playing” info to " #~ "Last.fm." #~ msgstr "به یا از کار انداختن فرستادن اطلاعات پخش به لست.اف‌‌ام." #~ msgid "Last.fm Account" #~ msgstr "حساب لست.اف‌ام" #~ msgid "Report Music Listening" #~ msgstr "گزارش گوش دادن به آهنگ" #~ msgid "Back" #~ msgstr "برگشت" #~ msgid "" #~ "Last.fm is a music discovery service that gives you personalised " #~ "recommendations based on the music you listen to." #~ msgstr "" #~ "لست.اف‌ام یک خدت کشف آهنگ است که به شما پیشنهادهایی شخصی‌شده بر اساس آهنگ‌هایی " #~ "که گوش می‌کنید می‌دهد." #~ msgid "Music Reporting Not Setup" #~ msgstr "گزارش آهنگ برپا نشده" #~ msgid "Login to your Last.fm account to report your music listening." #~ msgstr "برای گزارش گوش کردنتان به آهنگ‌ها، وارد حساب لست.اف‌امتان شوید." #~ msgid "Login" #~ msgstr "ورود" #~ msgid "Artists Results" #~ msgstr "نتیجه‌های هنرمندان" #~ msgid "Albums Results" #~ msgstr "نتیجه‌های آلبوم‌ها" #~ msgid "Your music listening is reported to Last.fm." #~ msgstr "گوش دادنتان به آهنگ‌ها به لست.اف‌ام گزارش شد." #~ msgid "Your music listening is not reported to Last.fm." #~ msgstr "گوش دادنتان به آهنگ‌ها به لست.اف‌ام گزارش نشد." #~ msgid "Logged in as {}" #~ msgstr "وارد شده به عنوان {}" #~ msgid "Configure" #~ msgstr "پیکربندی" #~ msgid "A music player and management application for GNOME." #~ msgstr "یک برنامه مدیریت و پخش آهنگ‌ها برای گنوم." #~ msgid "Visit GNOME Music website" #~ msgstr "پایگاه وب آهنگ‌های گنوم را ببینید" #~ msgid "" #~ "GNOME Music 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.\n" #~ "\n" #~ "GNOME Music 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.\n" #~ "\n" #~ "You should have received a copy of the GNU General Public License along with " #~ "GNOME Music; if not, write to the Free Software Foundation, Inc., 51 Franklin " #~ "Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ "\n" #~ "The GNOME Music authors hereby grant permission for non-GPL compatible " #~ "GStreamer plugins to be used and distributed together with GStreamer and " #~ "GNOME Music. This permission is above and beyond the permissions granted by " #~ "the GPL license by which GNOME Music is covered. If you modify this code, " #~ "you may extend this exception to your version of the code, but you are not " #~ "obligated to do so. If you do not wish to do so, delete this exception " #~ "statement from your version." #~ msgstr "" #~ "آهنگ‌های گنوم یک نرم‌افزار آزاد است؛ می‌توانید آن را با شرایط نگارش ۲ یا (بنا به " #~ "نظرتان) هر نگارش جدیدتری از پروانهٔ جامع همگانی گنو که بنیاد نرم‌افزارهای آزاد " #~ "منتشر کرده است،‌ تغییر داده یا بازتوزیع کنید.\n" #~ "\n" #~ "آهنگ‌های گنوم با امید کارآیی توزیع شده است، ولی بدون هر گونه ضمانتی؛ حتا ضمانت " #~ "ضمنی قابل فروش بودن یا مناسب بودن برای یک هدف مشخّص. برای جزییات بیش‌تر، " #~ "پروانهٔ جامع همگانی گنو را ببینید.\n" #~ "\n" #~ "همراه آهنگ‌های گنوم باید نگارشی از پروانهٔ جامع همگانی گنو را دریافت کرده باشد؛ " #~ "در غیر این صورت با شرکت بنیاد نرم‌افزارهای آزاد به نشانی زیر مکاتبه کنید: " #~ "Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n" #~ "\n" #~ "نگارندگان آهنگ‌های گنوم در این‌جا اجازه می‌دهند پلاگین‌های GStreamer ناسازگار با " #~ "جی‌پی‌ال به همراه GStreamer در آهنگ‌های گنوم استفاده و توزیع شوند. این اجازه " #~ "فراتر از اجازه‌هایی است که توسّط پروانهٔ جی‌پی‌ال که آهنگ‌های گنوم را پوشش می‌دهد " #~ "داده شده است. اگر این کد را دست‌کاری می‌کنید، ممکن است این استثنا را به نگارش " #~ "خودتان از کد گسترش دهید، ولی تعهّدی برای این کار ندارید. اگر نمی‌خواهید چنین " #~ "کنید، این عبارت استثنا را از نگارشتان حذف کنید." #~ msgid "The contents of your Music Folder will appear here" #~ msgstr "محتوای شاخهٔ آهنگ‌هایتان این‌جا ظاهر خواهد شد." #~ msgid "GNOME Music" #~ msgstr "آهنگ‌های گنوم" #~ msgid "Window position" #~ msgstr "موقعیت پنجره" #~ msgid "Window position (x and y)." #~ msgstr "موقعیت پنجره (x و y)." #~ msgid "Loading" #~ msgstr "در حال بار کردن" #~ msgid "Add to Playlist…" #~ msgstr "افزودن به سیاههٔ پخش…" #~ msgid "" #~ "An easy way to play your music. Automatically discover music on your " #~ "computer, the local network and internet services." #~ msgstr "" #~ "راهی آسان برای پخش آهنگ‌هایتان. کشف خودکار آهنگ‌های روی رایانه، شبکهٔ محلّی و " #~ "خدمات اینترنتیتان." #~ msgid "" #~ "Find tracks in your local collection, get music from DLNA servers or try " #~ "something new with the Jamendo and Magnatune services." #~ msgstr "" #~ "یافتن قطعه‌ها روی گنجینهٔ محلّیتان، گرفتن آهنگ‌ها از کارسازهای DLNA یا آزمودن " #~ "چیزی جدید با خدمت‌های جمندو و ماگناتون." #~ msgid "Inital state has been displayed" #~ msgstr "وضعیت نخستین نمایش داده شده" #~ msgid "Set to true when initial state has been displayed" #~ msgstr "هنگام نمایش وضعیت ابتدایی، روی درست تنظیم شود" #~ msgid "Released" #~ msgstr "منتشر شده در" #~ msgid "Running Length" #~ msgstr "طول اجرا" #~ msgid "Composer" #~ msgstr "آهنگ‌ساز" #~ msgctxt "context menu item" #~ msgid "Play" #~ msgstr "پخش" #~ msgid "Hey DJ" #~ msgstr "هی دی‌جی" #~ msgid "Music is the new GNOME music playing application." #~ msgstr "آهنگ‌ها برنامه پخش آهنگ جدید گنوم است." #~ msgid "Search mode" #~ msgstr "حالت جست‌وجو" #~ msgid "If true, the search bar is shown." #~ msgstr "اگر درست باشد، نوار جست‌وجو نشان داده می‌شود." #~ msgid "Notifications mode" #~ msgstr "حالت اعلان" #~ msgid "Enables or disables playback notifications" #~ msgstr "فعال یا غیرفعال‌سازی اعلان‌های پخش" #~ msgid "the|a|an" #~ msgstr "the|a|an" #~ msgid "Artist" #~ msgstr "هنرمند" #~ msgid "Album" #~ msgstr "آلبوم" #~ msgid "Track Title" #~ msgstr "نام آهنگ" #~ msgid "Local" #~ msgstr "محلی" #~ msgid "Sources" #~ msgstr "منابع" #~ msgid "Match" #~ msgstr "هماهنگ" #~ msgid "Untitled" #~ msgstr "بدون عنوان" #~ msgid "Selected %d item" #~ msgid_plural "Selected %d items" #~ msgstr[0] "تعداد %d مورد انتخاب شد" #~ msgid "%d min" #~ msgstr "%d دقیقه" #~ msgid "Empty" #~ msgstr "خالی" #~ msgid "_Quit" #~ msgstr "_خروج" #~ msgid "Select Playlist" #~ msgstr "انتخاب فهرست‌پخش" #~ msgid "Max chars to display in track name on Artist view" #~ msgstr "بیشینه‌ی نویسه‌ها جهت نمایش نام قطعه در نمای هنرمند" #~ msgid "" #~ "This setting modifies the amount of chars for track title on Artist view " #~ "before its been ellipsized. Set this to -1 to disable" #~ msgstr "" #~ "این تنظیم تعداد نویسه‌های عنوان قطعه را در نمای هنرمند قبل از خلاصه شدن تعیین " #~ "می‌کند. برو روی -1 تنظیم کنید تا غیرفعال شود" #~ msgid "the a an" #~ msgstr "the a an" #~ msgid "All Artists" #~ msgstr "تمام هنرمندان" #~ msgid "Not playing" #~ msgstr "چیزی پخش نمی‌شود" #~ msgid "by %s, from %s" #~ msgstr "توسّط %s، از آلبوم %s" #~ msgid "" #~ "No Music found!\n" #~ " Put some files into the folder %s" #~ msgstr "" #~ "هیچ آهنگی پیدا نشد!\n" #~ " تعدادی پرونده در پوشه‌ی %s بگذارید" #~ msgid "_New Playlist" #~ msgstr "فهرست پخش _جدید" #~ msgid "Load More" #~ msgstr "بار کردن بیش‌تر" #~| msgid "_Now Playing" #~ msgid "Now _Playing" #~ msgstr "درحال پخش" #~ msgid "Released" #~ msgstr "<رنگ طول='grey'>انتشار/>محدوده>" #~ msgid "Running Length" #~ msgstr "<رنگ طول='grey'>در حال اجرا طول/>محدوده>" #~ msgid "----" #~ msgstr "----" #~ msgid "--:--" #~ msgstr "--:--" #~ msgid "If true, do randomized playback through the collection" #~ msgstr "اگر درست باشد، پخش تصادفی از طریق مجموعه انجام می شود" #~ msgid "00:00" #~ msgstr "00:00" #~ msgid "/" #~ msgstr "/" 070701000000E9000081A400000000000000000000000166968E4E000054C5000000000000000000000000000000000000001A00000000gnome-music-46.1/po/fi.po# Finnish translation for gnome-music. # Copyright (C) 2013 gnome-music's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-music package. # Jiri Grönroos , 2013, 2014, 2015, 2016, 2017. # msgid "" msgstr "" "Project-Id-Version: gnome-music master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-music/issues\n" "POT-Creation-Date: 2024-02-11 20:43+0000\n" "PO-Revision-Date: 2024-02-22 20:21+0200\n" "Last-Translator: Jiri Grönroos \n" "Language-Team: suomi \n" "Language: fi\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Poedit 3.4.2\n" #: data/org.gnome.Music.appdata.xml.in.in:6 #: data/org.gnome.Music.desktop.in.in:3 data/ui/StatusNavigationPage.ui:4 #: gnomemusic/about.py:138 gnomemusic/application.py:59 gnomemusic/window.py:65 msgid "Music" msgstr "Musiikki" #: data/org.gnome.Music.appdata.xml.in.in:7 #: data/org.gnome.Music.desktop.in.in:5 msgid "Play and organize your music collection" msgstr "Toista ja hallitse musiikkikokoelmaasi" #: data/org.gnome.Music.appdata.xml.in.in:9 msgid "An easy and pleasant way to play your music." msgstr "Helppo ja mieluisa tapa toistaa musiikkia." #: data/org.gnome.Music.appdata.xml.in.in:12 msgid "" "Find tracks in your local collection, use automatically generated playlists " "or curate a fresh one." msgstr "" "Löydä kappaleet paikallisesta kokoelmastasi, käytä automaattisesti luotuja " "soittolistoja tai valikoi itse parhaat kappaleet soittolistalle." #. developer_name tag deprecated with Appstream 1.0 #: data/org.gnome.Music.appdata.xml.in.in:188 msgid "The GNOME Music developers" msgstr "Gnomen musiikkisoittimen kehittäjät" #: data/org.gnome.Music.desktop.in.in:4 msgid "Music Player" msgstr "Musiikkisoitin" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Music.desktop.in.in:13 msgid "Music;Player;" msgstr "Music;Player;Musiikkisoitin;Musiikki;" #: data/org.gnome.Music.gschema.xml:12 msgid "Window size" msgstr "Ikkunan koko" #: data/org.gnome.Music.gschema.xml:13 msgid "Window size (width and height)." msgstr "Ikkunan koko (leveys ja korkeus)." #: data/org.gnome.Music.gschema.xml:17 msgid "Window maximized" msgstr "Suurennettu ikkuna" #: data/org.gnome.Music.gschema.xml:18 msgid "Window maximized state." msgstr "Suurennetun ikkunan tila." #: data/org.gnome.Music.gschema.xml:22 msgid "Playback repeat mode" msgstr "Toiston kertaustila" #. Translators: Don't translate allowed values, just the description in the brackets #: data/org.gnome.Music.gschema.xml:24 msgid "" "Value identifies whether to repeat or randomize playback through the " "collection. Allowed values are: “none” (repeat and shuffle are off), " "“song” (repeat current song), “all” (repeat playlist, no shuffle), " "“shuffle” (shuffle playlist, presumes repeat all)." msgstr "" "Arvo esittää, kerrataanko tai sekoitetaanko toistoa kokoelmaa käyttäen. " "Sallitut arvot ovat: \"none\" (ei kertausta tai sekoitusta), " "\"song\" (kertaa nykyistä kappaletta), \"all\" (kertaa soittolistaa, ei " "sekoitusta) ja \"shuffle\" (sekoita soittolista, kertaus kaiken suhteen)." #: data/org.gnome.Music.gschema.xml:28 data/ui/PreferencesDialog.ui:27 msgid "Enable ReplayGain" msgstr "Käytä ReplayGainia" #: data/org.gnome.Music.gschema.xml:29 msgid "Enables or disables ReplayGain for albums" msgstr "Ottaa käyttöön/poistaa käytöstä ReplayGainin albumeille" #: data/org.gnome.Music.gschema.xml:33 msgid "Inhibit system suspend" msgstr "Estä järjestelmän valmiustila" #: data/org.gnome.Music.gschema.xml:34 msgid "Enables or disables inhibiting system suspend while playing music" msgstr "" "Ottaa käyttöön tai poistaa käytöstä järjestelmän valmiustilaan siirtymisen " "estämisen kun musiikkia toistetaan" #: data/ui/AlbumsSearchNavigationPage.ui:5 data/ui/SearchView.ui:98 #: gnomemusic/views/albumsview.py:52 msgid "Albums" msgstr "Albumit" #: data/ui/AlbumWidget.ui:84 data/ui/PlayerToolbar.ui:87 #: data/ui/PlaylistControls.ui:101 gnomemusic/widgets/playertoolbar.py:176 msgid "Play" msgstr "Toista" #: data/ui/AlbumWidget.ui:130 data/ui/PlaylistControls.ui:5 #: data/ui/SongWidgetMenu.ui:11 msgid "_Play" msgstr "_Toista" #: data/ui/AlbumWidget.ui:134 msgid "Add to _Favorite Songs" msgstr "Lisää _suosikkikappaleisiin" #: data/ui/AlbumWidget.ui:138 data/ui/SongWidgetMenu.ui:15 msgid "_Add to Playlist…" msgstr "Lisää s_oittolistalle…" #: data/ui/ArtistsSearchNavigationPage.ui:5 data/ui/SearchView.ui:41 #: gnomemusic/views/artistsview.py:51 msgid "Artists" msgstr "Esittäjät" #: data/ui/HeaderBar.ui:14 msgid "Menu" msgstr "Valikko" #: data/ui/HeaderBar.ui:22 data/ui/SearchHeaderBar.ui:12 msgid "Search" msgstr "Hae" #: data/ui/HeaderBar.ui:31 data/ui/PreferencesDialog.ui:4 msgid "Preferences" msgstr "Asetukset" #: data/ui/HeaderBar.ui:35 msgid "Keyboard Shortcuts" msgstr "Pikanäppäimet" #: data/ui/HeaderBar.ui:39 msgid "Help" msgstr "Ohje" #: data/ui/HeaderBar.ui:43 msgid "About Music" msgstr "Tietoja - Musiikki" #: data/ui/help-overlay.ui:11 msgctxt "shortcut window" msgid "General" msgstr "Yleiset" #: data/ui/help-overlay.ui:14 msgctxt "shortcut window" msgid "Close window" msgstr "Sulje ikkuna" #: data/ui/help-overlay.ui:20 msgctxt "shortcut window" msgid "Search" msgstr "Haku" #: data/ui/help-overlay.ui:26 msgctxt "shortcut window" msgid "Help" msgstr "Ohje" #: data/ui/help-overlay.ui:32 msgctxt "shortcut window" msgid "Shortcuts" msgstr "Pikanäppäimet" #: data/ui/help-overlay.ui:40 msgctxt "shortcut window" msgid "Playback" msgstr "Toista" #: data/ui/help-overlay.ui:43 msgctxt "shortcut window" msgid "Play/Pause" msgstr "Toista/keskeytä" #: data/ui/help-overlay.ui:49 msgctxt "shortcut window" msgid "Next song" msgstr "Seuraava kappale" #: data/ui/help-overlay.ui:55 msgctxt "shortcut window" msgid "Previous song" msgstr "Edellinen kappale" #: data/ui/help-overlay.ui:61 msgctxt "shortcut window" msgid "Toggle repeat" msgstr "Kertaus päälle/pois" #: data/ui/help-overlay.ui:67 msgctxt "shortcut window" msgid "Toggle shuffle" msgstr "Sekoitus päälle/pois" #: data/ui/help-overlay.ui:75 msgctxt "shortcut window" msgid "Navigation" msgstr "Liikkuminen" #: data/ui/help-overlay.ui:78 msgctxt "shortcut window" msgid "Go to Albums" msgstr "Siirry albumeihin" #: data/ui/help-overlay.ui:84 msgctxt "shortcut window" msgid "Go to Artists" msgstr "Siirry esittäjiin" #: data/ui/help-overlay.ui:90 msgctxt "shortcut window" msgid "Go to Songs" msgstr "Siirry kappaleisiin" #: data/ui/help-overlay.ui:96 msgctxt "shortcut window" msgid "Go to Playlists" msgstr "Siirry soittolistoihin" #: data/ui/help-overlay.ui:102 msgctxt "shortcut window" msgid "Go back" msgstr "Siirry takaisin" #: data/ui/PlayerToolbar.ui:74 msgid "Previous" msgstr "Edellinen" #: data/ui/PlayerToolbar.ui:106 msgid "Next" msgstr "Seuraava" #: data/ui/PlaylistControls.ui:9 msgid "_Delete" msgstr "_Poista" #: data/ui/PlaylistControls.ui:13 msgid "_Rename…" msgstr "_Nimeä uudelleen…" #: data/ui/PlaylistControls.ui:28 msgid "Playlist Name" msgstr "Soittolistan nimi" #: data/ui/PlaylistControls.ui:62 msgid "_Done" msgstr "_Valmis" #: data/ui/PlaylistDialog.ui:16 msgid "Add to Playlist" msgstr "Lisää soittolistaan" #: data/ui/PlaylistDialog.ui:27 msgid "_Cancel" msgstr "_Peru" #: data/ui/PlaylistDialog.ui:36 msgid "_Add" msgstr "_Lisää" #: data/ui/PlaylistDialog.ui:91 msgid "Enter a name for your first playlist" msgstr "Anna nimi ensimmäiselle soittolistallesi" #: data/ui/PlaylistDialog.ui:116 msgid "C_reate" msgstr "_Luo" #: data/ui/PlaylistDialog.ui:177 msgid "New Playlist…" msgstr "Uusi soittolista…" #: data/ui/PlaylistDialog.ui:189 msgid "Add" msgstr "Lisää" #: data/ui/PreferencesDialog.ui:9 msgid "Player Settings" msgstr "Soittimen asetukset" #: data/ui/PreferencesDialog.ui:12 msgid "Repeat Mode" msgstr "Kertaustila" #: data/ui/PreferencesDialog.ui:16 msgid "None" msgstr "Ei mitään" #: data/ui/PreferencesDialog.ui:17 msgid "Song" msgstr "Kappale" #: data/ui/PreferencesDialog.ui:18 msgid "All" msgstr "Kaikki" #: data/ui/PreferencesDialog.ui:19 gnomemusic/player.py:51 msgid "Shuffle" msgstr "Sekoita" #: data/ui/PreferencesDialog.ui:28 msgid "Balance loudness between songs if ReplayGain metadata is found" msgstr "" "Tasapainota äänenvoimakkuutta kappaleiden välillä, jos ReplayGain-metatiedot " "löytyvät" #: data/ui/PreferencesDialog.ui:35 msgid "Power Settings" msgstr "Virranhallinnan asetukset" #: data/ui/PreferencesDialog.ui:38 msgid "Inhibit Suspend" msgstr "Estä valmiustila" #: data/ui/PreferencesDialog.ui:39 msgid "Only while playing" msgstr "Vain soittaessa" #: data/ui/SearchView.ui:55 data/ui/SearchView.ui:112 msgid "View All" msgstr "Näytä kaikki" #: data/ui/SearchView.ui:154 msgid "Songs" msgstr "Kappaleet" #: data/ui/SongWidgetMenu.ui:19 msgid "_Remove from Playlist" msgstr "Poista _soittolistalta" #: data/ui/StatusNavigationPage.ui:36 msgid "Welcome to Music" msgstr "Tervetuloa, tämä on Musiikki" #: gnomemusic/about.py:140 msgid "The GNOME Project" msgstr "Gnome-projekti" #. Translators should localize the following string which #. will be displayed at the bottom of the about box to give #. credit to the translator(s). #: gnomemusic/about.py:146 msgid "translator-credits" msgstr "Jiri Grönroos" #: gnomemusic/about.py:150 msgid "© The GNOME Music Developers" msgstr "© Gnomen musiikkisoittimen kehittäjät" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:839 msgid "Most Played" msgstr "Eniten toistettu" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:893 msgid "Never Played" msgstr "Ei koskaan toistettu" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:946 msgid "Recently Played" msgstr "Äskettäin toistettu" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1025 msgid "Recently Added" msgstr "Äskettäin lisätty" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1088 msgid "Favorite Songs" msgstr "Suosikkikappaleet" #. TRANSLATORS: this is a playlist name indicating that the #. files are not tagged enough to be displayed in the albums #. or artists views. #: gnomemusic/grilowrappers/grltrackerplaylists.py:1142 msgid "Insufficiently Tagged" msgstr "Puutteellisesti merkitty" #: gnomemusic/gstplayer.py:418 msgid "Unable to play the file" msgstr "Tiedoston toistaminen epäonnistui" #: gnomemusic/gstplayer.py:424 msgid "_Find in {}" msgstr "_Etsi sovelluksella {}" #. TRANSLATORS: separator for two codecs #: gnomemusic/gstplayer.py:434 msgid " and " msgstr " ja " #. TRANSLATORS: separator for a list of codecs #: gnomemusic/gstplayer.py:437 msgid ", " msgstr ", " #: gnomemusic/gstplayer.py:439 msgid "{} is required to play the file, but is not installed." msgid_plural "{} are required to play the file, but are not installed." msgstr[0] "{} vaaditaan tiedoston toistamiseksi, mutta sitä ei ole asennettu." msgstr[1] "{} vaaditaan tiedoston toistamiseksi, mutta niitä ei ole asennettu." #: gnomemusic/inhibitsuspend.py:69 msgid "Playing music" msgstr "Toistetaan musiikkia" #. Translators: "shuffle" causes tracks to play in random order. #: gnomemusic/player.py:48 msgid "Shuffle/Repeat Off" msgstr "Sekoitus/kertaus pois" #: gnomemusic/player.py:49 msgid "Repeat Song" msgstr "Kertaa kappale" #: gnomemusic/player.py:50 msgid "Repeat All" msgstr "Kertaa kaikki" #: gnomemusic/playlisttoast.py:55 msgid "Playlist {} removed" msgstr "Soittolista {} poistettu" #: gnomemusic/playlisttoast.py:56 gnomemusic/songtoast.py:65 msgid "Undo" msgstr "Kumoa" #: gnomemusic/songtoast.py:64 msgid "{} removed from {}" msgstr "{} poistettu soittolistalta {}" #: gnomemusic/utils.py:89 msgid "Unknown album" msgstr "Tuntematon albumi" #: gnomemusic/utils.py:110 msgid "Unknown Artist" msgstr "Tuntematon esittäjä" #: gnomemusic/views/playlistsview.py:45 msgid "Playlists" msgstr "Soittolistat" #: gnomemusic/views/searchview.py:220 msgid "No Search Started" msgstr "Hakua ei ole käynnistetty" #: gnomemusic/views/searchview.py:222 msgid "Use the searchbar to start searching for albums, artists or songs" msgstr "Käytä hakupalkkia etsiäksesi albumeita, esittäjiä tai kappaleita" #: gnomemusic/views/searchview.py:226 msgid "No Results Found" msgstr "Tuloksia ei löytynyt" #: gnomemusic/views/searchview.py:228 msgid "Try a different search" msgstr "Yritä eri hakuehdoilla" #: gnomemusic/widgets/albumwidget.py:230 msgid "{} minute" msgid_plural "{} minutes" msgstr[0] "{} minuutti" msgstr[1] "{} minuuttia" #: gnomemusic/widgets/discbox.py:74 msgid "Disc {}" msgstr "Levy {}" #: gnomemusic/widgets/playertoolbar.py:173 msgid "Pause" msgstr "Keskeytä" #: gnomemusic/widgets/playlistcontrols.py:130 msgid "{} Song" msgid_plural "{} Songs" msgstr[0] "{} kappale" msgstr[1] "{} kappaletta" #: gnomemusic/widgets/searchheaderbar.py:50 msgid "Search songs, artists and albums" msgstr "Etsi kappaleita, esittäjiä ja albumeita" #. noqa: F841 #: gnomemusic/widgets/songwidgetmenu.py:94 msgid "_Open Location" msgstr "_Avaa sijainti" #. TRANSLATORS: These are verbs, to (un)mark something as a #. favorite. #: gnomemusic/widgets/startoggle.py:36 msgid "Unstar" msgstr "Poista tähtimerkintä" #: gnomemusic/widgets/startoggle.py:36 msgid "Star" msgstr "Merkitse tähdellä" #: gnomemusic/widgets/statusnavigationpage.py:51 msgid "Your XDG Music directory is not set." msgstr "XDG:n Musiikki-kansiota ei ole määritetty." #: gnomemusic/widgets/statusnavigationpage.py:58 msgid "Music Folder" msgstr "Musiikkikansio" #. TRANSLATORS: This is a label to display a link to open user's music #. folder. {} will be replaced with the translated text 'Music folder' #: gnomemusic/widgets/statusnavigationpage.py:66 msgid "The contents of your {} will appear here." msgstr "{}n sisältö ilmestyy tähän." #: gnomemusic/widgets/statusnavigationpage.py:116 msgid "No Music Found" msgstr "Musiikkia ei löytynyt" #: gnomemusic/widgets/statusnavigationpage.py:117 msgid "Try a Different Search" msgstr "Yritä hakea eri hakuehdoilla" #: gnomemusic/widgets/statusnavigationpage.py:121 msgid "GNOME Music could not connect to Tracker." msgstr "Musiikki ei voinut yhdistää Trackeriin." #: gnomemusic/widgets/statusnavigationpage.py:123 msgid "Your music files cannot be indexed without Tracker running." msgstr "Musiikkitiedostojasi ei voi indeksoida, jos Tracker ei ole käynnissä." #: gnomemusic/widgets/statusnavigationpage.py:129 msgid "Your system Tracker version seems outdated." msgstr "Järjestelmään asennettu Tracker vaikuttaa olevan vanhentunut." #: gnomemusic/widgets/statusnavigationpage.py:131 msgid "Music needs Tracker version 3.0.0 or higher." msgstr "Musiikki tarvitsee Trackerin version 3.0.0 tai uudemman." #~ msgid "Report music history to Last.fm" #~ msgstr "Raportoi kuunteluhistoria Last.fm:ään" #~ msgid "" #~ "Enables or disables sending scrobbles and the “currently playing” info to " #~ "Last.fm." #~ msgstr "" #~ "Ottaa käyttöön tai poistaa käytöstä kuunteluhistorian ja \"Nyt " #~ "toistetaan\"-tietojen lähettämisen Last.fm:ään." #~ msgid "Last.fm Account" #~ msgstr "Last.fm-tili" #~ msgid "Report Music Listening" #~ msgstr "Raportoi kuunteluhistoria" #~ msgid "_Help" #~ msgstr "_Ohje" #~ msgid "Select" #~ msgstr "Valitse" #~ msgid "Back" #~ msgstr "Takaisin" #~ msgid "" #~ "Last.fm is a music discovery service that gives you personalised " #~ "recommendations based on the music you listen to." #~ msgstr "" #~ "Last.fm on musiikin löytämiseen tarkoitettu palvelu, joka antaa " #~ "henkilökohtaisia suosituksia pohjautuen kuuntelemaasi musiikkiin." #~ msgid "Music Reporting Not Setup" #~ msgstr "Musiikin kuunteluhistorian lähetystä ei ole määritetty" #~ msgid "Login to your Last.fm account to report your music listening." #~ msgstr "" #~ "Kirjaudu Last.fm-tilillesi lähettääksesi musiikin kuunteluhistoriasi." #~ msgid "Login" #~ msgstr "Kirjaudu" #~ msgid "Select All" #~ msgstr "Valitse kaikki" #~ msgid "Select None" #~ msgstr "Älä valitse mitään" #~ msgid "Click on items to select them" #~ msgstr "Napsauta kohteita valitaksesi ne" #~ msgid "_Add to Playlist" #~ msgstr "Lisää _soittolistalle" #~ msgid "Copyright The GNOME Music Developers" #~ msgstr "Tekijänoikeus Gnomen musiikkisoittimen kehittäjät" #~ msgid "Translated by" #~ msgstr "Käännös" #~ msgid "Artists Results" #~ msgstr "Esittäjätulokset" #~ msgid "Albums Results" #~ msgstr "Albumitulokset" #~ msgid "Selected {} song" #~ msgid_plural "Selected {} songs" #~ msgstr[0] "{} kappale valittu" #~ msgstr[1] "{} kappaletta valittu" #~ msgid "Your music listening is reported to Last.fm." #~ msgstr "Musiikin kuunteluhistoriasi lähetetään Last.fm:ään." #~ msgid "Your music listening is not reported to Last.fm." #~ msgstr "Musiikin kuunteluhistoriaasi ei lähetetä Last.fm:ään." #~ msgid "Logged in as {}" #~ msgstr "Kirjautuneena tilillä {}" #~ msgid "Configure" #~ msgstr "Määritä" #~ msgid "A music player and management application for GNOME." #~ msgstr "Gnomen musiikkisoitin." #~ msgid "Visit GNOME Music website" #~ msgstr "Käy Gnomen musiikkisoittimen verkkosivustolla" #~ msgid "The contents of your Music Folder will appear here" #~ msgstr "Musiikki-kansion sisältö ilmestyy tähän" #~ msgid "GNOME Music" #~ msgstr "Gnomen Musiikki" #~ msgid "Window position" #~ msgstr "Ikkunan sijainti" #~ msgid "Window position (x and y)." #~ msgstr "Ikkunan sijainti (x ja y)." #~ msgid "Loading" #~ msgstr "Ladataan" #~ msgid "Add to Playlist…" #~ msgstr "Lisää soittolistalle…" #~ msgid "" #~ "An easy way to play your music. Automatically discover music on your " #~ "computer, the local network and internet services." #~ msgstr "" #~ "Helppo tapa toistaa musiikkia. Löytää musiikin automaattisesti " #~ "tietokoneeltasi, paikallisesta verkosta ja internetpalveluista." #~ msgid "" #~ "Find tracks in your local collection, get music from DLNA servers or try " #~ "something new with the Jamendo and Magnatune services." #~ msgstr "" #~ "Etsi kappaleita paikallisesta kokoelmastasi, toista musiikkia DLNA-" #~ "palvelimilta tai löydä jotain uutta Jamendo- ja Magnatune-palveluista." #~ msgid "Inital state has been displayed" #~ msgstr "Alkutila on näytetty" #~ msgid "Set to true when initial state has been displayed" #~ msgstr "Aseta todeksi kun alkutila on näytetty" #~ msgid "Released" #~ msgstr "Julkaistu" #~ msgid "Running Length" #~ msgstr "Kesto" #~ msgid "Composer" #~ msgstr "Säveltäjä" #~ msgctxt "context menu item" #~ msgid "Play" #~ msgstr "Toista" #~ msgid "Hey DJ" #~ msgstr "Hei DJ" #~ msgid "Artist" #~ msgstr "Esittäjä" #~ msgid "Album" #~ msgstr "Albumi" #~ msgid "Track Title" #~ msgstr "Kappaleen nimi" #~ msgid "Local" #~ msgstr "Paikalliset" #~ msgid "Sources" #~ msgstr "Lähteet" #~ msgid "Match" #~ msgstr "Vastaavuus" #~ msgid "@icon@" #~ msgstr "@icon@" #~ msgid "Untitled" #~ msgstr "Nimetön" #~ msgid "_Quit" #~ msgstr "_Lopeta" #~ msgid "Music is the new GNOME music playing application." #~ msgstr "Musiikki on Gnomen uusi musiikintoistosovellus." #~| msgid "gnome-music" #~ msgid "org.gnome.Music" #~ msgstr "org.gnome.Music" #~ msgid "Search mode" #~ msgstr "Hakutila" #~ msgid "If true, the search bar is shown." #~ msgstr "Jos tosi, hakupalkki näytetään." #~ msgid "Notifications mode" #~ msgstr "Ilmoitustila" #~ msgid "Enables or disables playback notifications" #~ msgstr "Ota käyttöön/poista käytöstä ilmoitus toistettavista kappaleista" #~ msgid "Selected %d item" #~ msgid_plural "Selected %d items" #~ msgstr[0] "Valittu %d kohde" #~ msgstr[1] "Valittu %d kohdetta" #~ msgid "%d min" #~ msgstr "%d min" #~ msgid "Empty" #~ msgstr "Tyhjä" #~ msgid "Select Playlist" #~ msgstr "Valitse soittolista" #~ msgid "the|a|an" #~ msgstr "the|a|an" #~ msgid "Max chars to display in track name on Artist view" #~ msgstr "" #~ "Kappaleen nimessä näytettävien merkkien enimmäismäärä esittäjänäkymässä" #~ msgid "" #~ "This setting modifies the amount of chars for track title on Artist view " #~ "before its been ellipsized. Set this to -1 to disable" #~ msgstr "" #~ "Tämä asetus muokkaa näytettävien merkkien määrää esittäjänäkymän " #~ "kappalenimessä, ennen kuin nimi typistetään. Jos et halua typistää " #~ "kappaleen nimeä, aseta arvoksi -1." #~ msgid "the a an" #~ msgstr "the a an" #~ msgid "All Artists" #~ msgstr "Kaikki esittäjät" #~ msgid "Not playing" #~ msgstr "Ei toistoa" #~ msgid "by %s, from %s" #~ msgstr "esittäjä %s, levy %s" #~ msgid "" #~ "No Music found!\n" #~ " Put some files into the folder %s" #~ msgstr "" #~ "Musiikkia ei löytynyt!\n" #~ " Laita musiikkitiedostoja kansioon %s" #~ msgid "_New Playlist" #~ msgstr "_Uusi soittolista" #~ msgid "Load More" #~ msgstr "Lataa lisää" #~ msgid "Now _Playing" #~ msgstr "_Nyt toistetaan" #~ msgid "New" #~ msgstr "Uusi" #~ msgid "Quit" #~ msgstr "Lopeta" #~ msgid "A GNOME 3 application to listen and manage music playlists" #~ msgstr "Gnome 3 -sovellus musiikin kuunteluun ja soittolistojen hallintaan" #~ msgid "%02u:%02u:%02u" #~ msgstr "%02u:%02u:%02u" #~ msgid "%02u:%02u" #~ msgstr "%02u:%02u" 070701000000EA000081A400000000000000000000000166968E4E00004BAB000000000000000000000000000000000000001A00000000gnome-music-46.1/po/fr.po# French translation for gnome-music. # Copyright (C) 2013-2022 gnome-music's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-music package. # # Alain Lojewski , 2013-2015. # Erwan Georget , 2015. # Guillaume Bernard , 2017-2018. # William Oprandi , 2019. # Julien Humbert , 2020. # vanadiae , 2020. # Charles Monzat , 2018-2022. # msgid "" msgstr "" "Project-Id-Version: gnome-music master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-music/issues\n" "POT-Creation-Date: 2024-02-11 20:43+0000\n" "PO-Revision-Date: 2024-02-23 12:43+0100\n" "Last-Translator: Guillaume Bernard \n" "Language-Team: GNOME French Team \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "X-Generator: Poedit 3.3.1\n" #: data/org.gnome.Music.appdata.xml.in.in:6 #: data/org.gnome.Music.desktop.in.in:3 data/ui/StatusNavigationPage.ui:4 #: gnomemusic/about.py:138 gnomemusic/application.py:59 gnomemusic/window.py:65 msgid "Music" msgstr "Musique" #: data/org.gnome.Music.appdata.xml.in.in:7 #: data/org.gnome.Music.desktop.in.in:5 msgid "Play and organize your music collection" msgstr "Jouer et organiser votre discothèque" #: data/org.gnome.Music.appdata.xml.in.in:9 msgid "An easy and pleasant way to play your music." msgstr "Un moyen simple et agréable d’écouter votre musique." #: data/org.gnome.Music.appdata.xml.in.in:12 msgid "" "Find tracks in your local collection, use automatically generated playlists " "or curate a fresh one." msgstr "" "Trouvez les pistes dans votre collection locale, utilisez des listes de " "lecture générées automatiquement ou organisez-en une nouvelle." #. developer_name tag deprecated with Appstream 1.0 #: data/org.gnome.Music.appdata.xml.in.in:188 msgid "The GNOME Music developers" msgstr "Les développeurs de l’application Musique de GNOME" #: data/org.gnome.Music.desktop.in.in:4 msgid "Music Player" msgstr "Lecteur de musique" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Music.desktop.in.in:13 msgid "Music;Player;" msgstr "musique;lecteur;" #: data/org.gnome.Music.gschema.xml:12 msgid "Window size" msgstr "Taille de la fenêtre" #: data/org.gnome.Music.gschema.xml:13 msgid "Window size (width and height)." msgstr "La taille de la fenêtre (en largeur et hauteur)." #: data/org.gnome.Music.gschema.xml:17 msgid "Window maximized" msgstr "Fenêtre maximisée" #: data/org.gnome.Music.gschema.xml:18 msgid "Window maximized state." msgstr "État maximisé de la fenêtre." #: data/org.gnome.Music.gschema.xml:22 msgid "Playback repeat mode" msgstr "Mode de lecture répétition" #. Translators: Don't translate allowed values, just the description in the brackets #: data/org.gnome.Music.gschema.xml:24 msgid "" "Value identifies whether to repeat or randomize playback through the " "collection. Allowed values are: “none” (repeat and shuffle are off), " "“song” (repeat current song), “all” (repeat playlist, no shuffle), " "“shuffle” (shuffle playlist, presumes repeat all)." msgstr "" "Valeur indiquant s’il faut répéter ou rendre aléatoire la lecture des " "musiques de la discothèque. Les valeurs possibles sont : « none » (aucune, " "la répétition et le mélange sont désactivés), « song » (répète le morceau " "actuel), « all » (rejoue toute la liste de lecture, sans mélange), " "« shuffle » (mélange la liste de lecture, en supposant de tout rejouer)." #: data/org.gnome.Music.gschema.xml:28 data/ui/PreferencesDialog.ui:27 msgid "Enable ReplayGain" msgstr "Activer ReplayGain" #: data/org.gnome.Music.gschema.xml:29 msgid "Enables or disables ReplayGain for albums" msgstr "Active ou désactive ReplayGain pour les albums" #: data/org.gnome.Music.gschema.xml:33 msgid "Inhibit system suspend" msgstr "Inhiber la mise en veille du système" #: data/org.gnome.Music.gschema.xml:34 msgid "Enables or disables inhibiting system suspend while playing music" msgstr "" "Active ou désactive l’inhibition de la mise en veille lors de la lecture de " "musique" #: data/ui/AlbumsSearchNavigationPage.ui:5 data/ui/SearchView.ui:98 #: gnomemusic/views/albumsview.py:52 msgid "Albums" msgstr "Albums" #: data/ui/AlbumWidget.ui:84 data/ui/PlayerToolbar.ui:87 #: data/ui/PlaylistControls.ui:101 gnomemusic/widgets/playertoolbar.py:176 msgid "Play" msgstr "Lecture" #: data/ui/AlbumWidget.ui:130 data/ui/PlaylistControls.ui:5 #: data/ui/SongWidgetMenu.ui:11 msgid "_Play" msgstr "_Lire" #: data/ui/AlbumWidget.ui:134 msgid "Add to _Favorite Songs" msgstr "Ajouter aux morceaux _favoris" #: data/ui/AlbumWidget.ui:138 data/ui/SongWidgetMenu.ui:15 msgid "_Add to Playlist…" msgstr "_Ajouter à la liste de lecture…" #: data/ui/ArtistsSearchNavigationPage.ui:5 data/ui/SearchView.ui:41 #: gnomemusic/views/artistsview.py:51 msgid "Artists" msgstr "Artistes" #: data/ui/HeaderBar.ui:14 msgid "Menu" msgstr "Menu" #: data/ui/HeaderBar.ui:22 data/ui/SearchHeaderBar.ui:12 msgid "Search" msgstr "Rechercher" #: data/ui/HeaderBar.ui:31 data/ui/PreferencesDialog.ui:4 msgid "Preferences" msgstr "Préférences" #: data/ui/HeaderBar.ui:35 msgid "Keyboard Shortcuts" msgstr "Raccourcis clavier" #: data/ui/HeaderBar.ui:39 msgid "Help" msgstr "Aide" #: data/ui/HeaderBar.ui:43 msgid "About Music" msgstr "À propos de Musique" #: data/ui/help-overlay.ui:11 msgctxt "shortcut window" msgid "General" msgstr "Général" #: data/ui/help-overlay.ui:14 msgctxt "shortcut window" msgid "Close window" msgstr "Fermer la fenêtre" #: data/ui/help-overlay.ui:20 msgctxt "shortcut window" msgid "Search" msgstr "Recherche" #: data/ui/help-overlay.ui:26 msgctxt "shortcut window" msgid "Help" msgstr "Aide" #: data/ui/help-overlay.ui:32 msgctxt "shortcut window" msgid "Shortcuts" msgstr "Raccourcis" #: data/ui/help-overlay.ui:40 msgctxt "shortcut window" msgid "Playback" msgstr "Lecture" #: data/ui/help-overlay.ui:43 msgctxt "shortcut window" msgid "Play/Pause" msgstr "Lecture/Pause" #: data/ui/help-overlay.ui:49 msgctxt "shortcut window" msgid "Next song" msgstr "Morceau suivant" #: data/ui/help-overlay.ui:55 msgctxt "shortcut window" msgid "Previous song" msgstr "Morceau précédent" #: data/ui/help-overlay.ui:61 msgctxt "shortcut window" msgid "Toggle repeat" msgstr "Basculer la répétition" #: data/ui/help-overlay.ui:67 msgctxt "shortcut window" msgid "Toggle shuffle" msgstr "Basculer la lecture aléatoire" #: data/ui/help-overlay.ui:75 msgctxt "shortcut window" msgid "Navigation" msgstr "Navigation" #: data/ui/help-overlay.ui:78 msgctxt "shortcut window" msgid "Go to Albums" msgstr "Aller aux albums" #: data/ui/help-overlay.ui:84 msgctxt "shortcut window" msgid "Go to Artists" msgstr "Aller aux artistes" #: data/ui/help-overlay.ui:90 msgctxt "shortcut window" msgid "Go to Songs" msgstr "Aller aux morceaux" #: data/ui/help-overlay.ui:96 msgctxt "shortcut window" msgid "Go to Playlists" msgstr "Aller aux listes de lecture" #: data/ui/help-overlay.ui:102 msgctxt "shortcut window" msgid "Go back" msgstr "Revenir en arrière" #: data/ui/PlayerToolbar.ui:74 msgid "Previous" msgstr "Précédent" #: data/ui/PlayerToolbar.ui:106 msgid "Next" msgstr "Suivant" #: data/ui/PlaylistControls.ui:9 msgid "_Delete" msgstr "_Supprimer" #: data/ui/PlaylistControls.ui:13 msgid "_Rename…" msgstr "_Renommer…" #: data/ui/PlaylistControls.ui:28 msgid "Playlist Name" msgstr "Nom de la liste de lecture" #: data/ui/PlaylistControls.ui:62 msgid "_Done" msgstr "_Terminé" #: data/ui/PlaylistDialog.ui:16 msgid "Add to Playlist" msgstr "Ajouter à la liste de lecture" #: data/ui/PlaylistDialog.ui:27 msgid "_Cancel" msgstr "A_nnuler" #: data/ui/PlaylistDialog.ui:36 msgid "_Add" msgstr "_Ajouter" #: data/ui/PlaylistDialog.ui:91 msgid "Enter a name for your first playlist" msgstr "Saisissez un nom pour la première liste de lecture" #: data/ui/PlaylistDialog.ui:116 msgid "C_reate" msgstr "C_réer" #: data/ui/PlaylistDialog.ui:177 msgid "New Playlist…" msgstr "Nouvelle liste de lecture…" #: data/ui/PlaylistDialog.ui:189 msgid "Add" msgstr "Ajouter" #: data/ui/PreferencesDialog.ui:9 msgid "Player Settings" msgstr "Paramètres du lecteur" #: data/ui/PreferencesDialog.ui:12 msgid "Repeat Mode" msgstr "Mode de répétition" #: data/ui/PreferencesDialog.ui:16 msgid "None" msgstr "Aucune" #: data/ui/PreferencesDialog.ui:17 msgid "Song" msgstr "Morceaux" #: data/ui/PreferencesDialog.ui:18 msgid "All" msgstr "Tout" #: data/ui/PreferencesDialog.ui:19 gnomemusic/player.py:51 msgid "Shuffle" msgstr "Mélanger" #: data/ui/PreferencesDialog.ui:28 msgid "Balance loudness between songs if ReplayGain metadata is found" msgstr "Équilibrer l’intensité entre les morceaux si les métadonnées ReplayGain sont disponibles" #: data/ui/PreferencesDialog.ui:35 msgid "Power Settings" msgstr "Paramètres d’énergie" #: data/ui/PreferencesDialog.ui:38 msgid "Inhibit Suspend" msgstr "Inhiber la mise en veille" #: data/ui/PreferencesDialog.ui:39 msgid "Only while playing" msgstr "Seulement pendant la lecture" #: data/ui/SearchView.ui:55 data/ui/SearchView.ui:112 msgid "View All" msgstr "Tout afficher" #: data/ui/SearchView.ui:154 msgid "Songs" msgstr "Morceaux" #: data/ui/SongWidgetMenu.ui:19 msgid "_Remove from Playlist" msgstr "_Supprimer de la liste de lecture" #: data/ui/StatusNavigationPage.ui:36 msgid "Welcome to Music" msgstr "Bienvenue dans Musique" #: gnomemusic/about.py:140 msgid "The GNOME Project" msgstr "Le projet GNOME" #. Translators should localize the following string which #. will be displayed at the bottom of the about box to give #. credit to the translator(s). #: gnomemusic/about.py:146 msgid "translator-credits" msgstr "" "Alain Lojewski \n" "Erwan Georget \n" "Guillaume Bernard \n" "William Oprandi \n" "Julien Humbert \n" "vanadiae \n" "Charles Monzat " #: gnomemusic/about.py:150 msgid "© The GNOME Music Developers" msgstr "© Les développeurs de l’application Musique de GNOME" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:839 msgid "Most Played" msgstr "Les plus joués" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:893 msgid "Never Played" msgstr "Jamais joués" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:946 msgid "Recently Played" msgstr "Joués récemment" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1025 msgid "Recently Added" msgstr "Ajoutés récemment" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1088 msgid "Favorite Songs" msgstr "Morceaux favoris" #. TRANSLATORS: this is a playlist name indicating that the #. files are not tagged enough to be displayed in the albums #. or artists views. #: gnomemusic/grilowrappers/grltrackerplaylists.py:1142 msgid "Insufficiently Tagged" msgstr "Étiquetage insuffisant" #: gnomemusic/gstplayer.py:418 msgid "Unable to play the file" msgstr "Impossible de lire le fichier" #: gnomemusic/gstplayer.py:424 msgid "_Find in {}" msgstr "_Trouver dans {}" #. TRANSLATORS: separator for two codecs #: gnomemusic/gstplayer.py:434 msgid " and " msgstr " et " #. TRANSLATORS: separator for a list of codecs #: gnomemusic/gstplayer.py:437 msgid ", " msgstr ", " #: gnomemusic/gstplayer.py:439 msgid "{} is required to play the file, but is not installed." msgid_plural "{} are required to play the file, but are not installed." msgstr[0] "{} est nécessaire pour lire le fichier, mais il n’est pas installé." msgstr[1] "" "{} sont nécessaires pour lire le fichier, mais ils ne sont pas installés." #: gnomemusic/inhibitsuspend.py:69 msgid "Playing music" msgstr "Lecture de musique en cours" #. Translators: "shuffle" causes tracks to play in random order. #: gnomemusic/player.py:48 msgid "Shuffle/Repeat Off" msgstr "Désactiver mélanger/répéter" #: gnomemusic/player.py:49 msgid "Repeat Song" msgstr "Répéter le morceau" #: gnomemusic/player.py:50 msgid "Repeat All" msgstr "Tout répéter" #: gnomemusic/playlisttoast.py:55 msgid "Playlist {} removed" msgstr "Liste de lecture {} supprimée" #: gnomemusic/playlisttoast.py:56 gnomemusic/songtoast.py:65 msgid "Undo" msgstr "Annuler" #: gnomemusic/songtoast.py:64 msgid "{} removed from {}" msgstr "{} supprimé de {}" #: gnomemusic/utils.py:89 msgid "Unknown album" msgstr "Album inconnu" #: gnomemusic/utils.py:110 msgid "Unknown Artist" msgstr "Artiste inconnu" #: gnomemusic/views/playlistsview.py:45 msgid "Playlists" msgstr "Listes de lecture" #: gnomemusic/views/searchview.py:220 msgid "No Search Started" msgstr "Aucune recherche démarrée" #: gnomemusic/views/searchview.py:222 msgid "Use the searchbar to start searching for albums, artists or songs" msgstr "Utiliser la barre de recherche pour commencer à chercher des albums, artistes ou morceaux" #: gnomemusic/views/searchview.py:226 msgid "No Results Found" msgstr "Aucun résultat trouvé" #: gnomemusic/views/searchview.py:228 msgid "Try a different search" msgstr "Essayer une recherche différente" #: gnomemusic/widgets/albumwidget.py:230 msgid "{} minute" msgid_plural "{} minutes" msgstr[0] "{} minute" msgstr[1] "{} minutes" #: gnomemusic/widgets/discbox.py:74 msgid "Disc {}" msgstr "Disque {}" #: gnomemusic/widgets/playertoolbar.py:173 msgid "Pause" msgstr "Pause" #: gnomemusic/widgets/playlistcontrols.py:130 msgid "{} Song" msgid_plural "{} Songs" msgstr[0] "{} morceau" msgstr[1] "{} morceaux" #: gnomemusic/widgets/searchheaderbar.py:50 msgid "Search songs, artists and albums" msgstr "" "Rechercher des musiques, des artistes ou des albums" #. noqa: F841 #: gnomemusic/widgets/songwidgetmenu.py:94 msgid "_Open Location" msgstr "_Ouvrir un emplacement" #. TRANSLATORS: These are verbs, to (un)mark something as a #. favorite. #: gnomemusic/widgets/startoggle.py:36 msgid "Unstar" msgstr "Retirer l’étoile" #: gnomemusic/widgets/startoggle.py:36 msgid "Star" msgstr "Ajouter une étoile" #: gnomemusic/widgets/statusnavigationpage.py:51 msgid "Your XDG Music directory is not set." msgstr "Votre répertoire de musique XDG n’est pas défini." #: gnomemusic/widgets/statusnavigationpage.py:58 msgid "Music Folder" msgstr "Dossier de musique" #. TRANSLATORS: This is a label to display a link to open user's music #. folder. {} will be replaced with the translated text 'Music folder' #: gnomemusic/widgets/statusnavigationpage.py:66 msgid "The contents of your {} will appear here." msgstr "Le contenu de votre {} s’affichera ici." #: gnomemusic/widgets/statusnavigationpage.py:116 msgid "No Music Found" msgstr "Aucune musique trouvée" #: gnomemusic/widgets/statusnavigationpage.py:117 msgid "Try a Different Search" msgstr "Essayez une recherche différente" #: gnomemusic/widgets/statusnavigationpage.py:121 msgid "GNOME Music could not connect to Tracker." msgstr "Musique de GNOME ne peut pas se connecter à Tracker." #: gnomemusic/widgets/statusnavigationpage.py:123 msgid "Your music files cannot be indexed without Tracker running." msgstr "" "Vos musiques ne peuvent pas être indexées si Tracker ne fonctionne pas." #: gnomemusic/widgets/statusnavigationpage.py:129 msgid "Your system Tracker version seems outdated." msgstr "Votre version de Tracker semble obsolète." #: gnomemusic/widgets/statusnavigationpage.py:131 msgid "Music needs Tracker version 3.0.0 or higher." msgstr "Musique nécessite Tracker version 3.0.0 ou ultérieure." #~ msgid "Report music history to Last.fm" #~ msgstr "Informer Last.fm de l’historique des musiques écoutées" #~ msgid "" #~ "Enables or disables sending scrobbles and the “currently playing” info to " #~ "Last.fm." #~ msgstr "" #~ "Active ou désactive l’envoi à Last.fm des morceaux écoutés (scrobbles) et " #~ "de l’information « en cours de lecture »." #~ msgid "Last.fm Account" #~ msgstr "Compte Last.fm" #~ msgid "Report Music Listening" #~ msgstr "Informer Last.fm des morceaux écoutés" #~ msgid "_Help" #~ msgstr "Aid_e" #~ msgid "Select" #~ msgstr "Sélectionner" #~ msgid "Back" #~ msgstr "Retour" #~ msgid "" #~ "Last.fm is a music discovery service that gives you personalised " #~ "recommendations based on the music you listen to." #~ msgstr "" #~ "Last.fm est un service de découverte musicale qui vous donne des " #~ "recommandations personnalisées en fonction de la musique que vous écoutez." #~ msgid "Music Reporting Not Setup" #~ msgstr "Envoi de la musique non configuré" #~ msgid "Login to your Last.fm account to report your music listening." #~ msgstr "" #~ "Connectez-vous à votre compte Last.fm pour envoyer la musique que vous " #~ "écoutez." #~ msgid "Login" #~ msgstr "Se connecter" #~ msgid "Select All" #~ msgstr "Tout sélectionner" #~ msgid "Select None" #~ msgstr "Ne rien sélectionner" #~ msgid "Click on items to select them" #~ msgstr "Cliquez sur les éléments pour les sélectionner" #~ msgid "_Add to Playlist" #~ msgstr "_Ajouter à la liste de lecture" #~ msgid "Copyright The GNOME Music Developers" #~ msgstr "Copyright Développeurs de l’application Musique de GNOME" #~ msgid "Translated by" #~ msgstr "Traduit par" #~ msgid "Artists Results" #~ msgstr "Résultats pour Artistes" #~ msgid "Albums Results" #~ msgstr "Résultats pour Albums" #~ msgid "Selected {} song" #~ msgid_plural "Selected {} songs" #~ msgstr[0] "{} morceau sélectionné" #~ msgstr[1] "{} morceaux sélectionnés" #~ msgid "Your music listening is reported to Last.fm." #~ msgstr "La musique que vous écoutez est envoyée à Last.fm." #~ msgid "Your music listening is not reported to Last.fm." #~ msgstr "La musique que vous écoutez n’est pas envoyée à Last.fm." #~ msgid "Logged in as {}" #~ msgstr "Connecté en tant que {}" #~ msgid "Configure" #~ msgstr "Configurer" #~ msgid "A music player and management application for GNOME." #~ msgstr "Un lecteur de musique et une application de gestion pour GNOME." #~ msgid "Visit GNOME Music website" #~ msgstr "Visiter le site web de l’application Musique de GNOME" #~ msgid "The contents of your Music Folder will appear here" #~ msgstr "Le contenu de votre dossier Musique s’affichera ici" #~ msgid "" #~ "An easy way to play your music. Automatically discover music on your " #~ "computer, the local network and internet services." #~ msgstr "" #~ "Un moyen simple d’écouter votre musique. Découvrez automatiquement la " #~ "musique sur votre ordinateur, le réseau local et les services Internet." #~ msgid "Inital state has been displayed" #~ msgstr "L’état initial a été affiché" #~ msgid "Released" #~ msgstr "Publié" #~ msgid "Running Length" #~ msgstr "Durée" #~ msgid "Composer" #~ msgstr "Compositeur" 070701000000EB000081A400000000000000000000000166968E4E00005E29000000000000000000000000000000000000001B00000000gnome-music-46.1/po/fur.po# Friulian translation for gnome-music. # Copyright (C) 2015 gnome-music's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-music package. # Fabio Tomat , 2015. # msgid "" msgstr "" "Project-Id-Version: gnome-music master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-music/issues\n" "POT-Creation-Date: 2024-03-20 13:10+0000\n" "PO-Revision-Date: 2024-04-18 10:56+0200\n" "Last-Translator: Fabio Tomat \n" "Language-Team: Friulian \n" "Language: fur\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Editor: HaiPO 1.2 b1\n" "X-Generator: Poedit 3.4.2\n" #: data/org.gnome.Music.appdata.xml.in.in:6 #: data/org.gnome.Music.desktop.in.in:3 data/ui/StatusNavigationPage.ui:4 #: gnomemusic/about.py:138 gnomemusic/application.py:59 gnomemusic/window.py:65 msgid "Music" msgstr "Musiche" #: data/org.gnome.Music.appdata.xml.in.in:7 #: data/org.gnome.Music.desktop.in.in:5 msgid "Play and organize your music collection" msgstr "Sune e organize le tô colezion di musichis" #: data/org.gnome.Music.appdata.xml.in.in:9 msgid "An easy and pleasant way to play your music." msgstr "Une semplice e plasevule maniere par scoltâ la tô musiche." #: data/org.gnome.Music.appdata.xml.in.in:12 msgid "" "Find tracks in your local collection, use automatically generated playlists " "or curate a fresh one." msgstr "" "Cjate i tocs inte tô colezion locâl, dopre lis listis di riproduzion " "gjeneradis in automatic o cure une gnove." #. developer_name tag deprecated with Appstream 1.0 #: data/org.gnome.Music.appdata.xml.in.in:214 msgid "The GNOME Music developers" msgstr "I svilupadôrs di GNOME Musiche" #: data/org.gnome.Music.desktop.in.in:4 msgid "Music Player" msgstr "Letôr musicâl" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Music.desktop.in.in:13 msgid "Music;Player;" msgstr "Musiche;Riprodutôr;" #: data/org.gnome.Music.gschema.xml:12 msgid "Window size" msgstr "Dimension barcon" #: data/org.gnome.Music.gschema.xml:13 msgid "Window size (width and height)." msgstr "Dimension barcon (largjece e altece)." #: data/org.gnome.Music.gschema.xml:17 msgid "Window maximized" msgstr "Barcon slargjât" #: data/org.gnome.Music.gschema.xml:18 msgid "Window maximized state." msgstr "Stât barcon slargjât." #: data/org.gnome.Music.gschema.xml:22 msgid "Playback repeat mode" msgstr "Modalitât ripetizion" #. Translators: Don't translate allowed values, just the description in the brackets #: data/org.gnome.Music.gschema.xml:24 msgid "" "Value identifies whether to repeat or randomize playback through the " "collection. Allowed values are: “none” (repeat and shuffle are off), " "“song” (repeat current song), “all” (repeat playlist, no shuffle), " "“shuffle” (shuffle playlist, presumes repeat all)." msgstr "" "Il valôr al specifiche se ripeti o riprodusi a câs le colezion. I valôrs " "acetâts a son: “none” (ripetizion e messedât a son studâts), " "“song” (ripetizion de cjançon atuâl), “all” (ripetizion de liste des " "cjançons, cence messedâ), “shuffle” (messedâ l'ordin de liste des cjançons, " "si intint ancje ripeti dutis)." #: data/org.gnome.Music.gschema.xml:28 data/ui/PreferencesDialog.ui:27 msgid "Enable ReplayGain" msgstr "Abilite ReplayGain" #: data/org.gnome.Music.gschema.xml:29 msgid "Enables or disables ReplayGain for albums" msgstr "Abilite o disabilite ReplayGain pai album" #: data/org.gnome.Music.gschema.xml:33 msgid "Inhibit system suspend" msgstr "Inibìs la sospension dal sisteme" #: data/org.gnome.Music.gschema.xml:34 msgid "Enables or disables inhibiting system suspend while playing music" msgstr "" "Abilite o disabilite la inibizion a sospindi il sisteme intant che si scolte " "la musiche" #: data/ui/AlbumsSearchNavigationPage.ui:5 data/ui/SearchView.ui:98 #: gnomemusic/views/albumsview.py:52 msgid "Albums" msgstr "Album" #: data/ui/AlbumWidget.ui:84 data/ui/PlayerToolbar.ui:87 #: data/ui/PlaylistControls.ui:101 gnomemusic/widgets/playertoolbar.py:176 msgid "Play" msgstr "Sune" #: data/ui/AlbumWidget.ui:130 data/ui/PlaylistControls.ui:5 #: data/ui/SongWidgetMenu.ui:11 msgid "_Play" msgstr "_Sune" #: data/ui/AlbumWidget.ui:134 msgid "Add to _Favorite Songs" msgstr "Zonte ai _tocs preferîts" #: data/ui/AlbumWidget.ui:138 data/ui/SongWidgetMenu.ui:15 msgid "_Add to Playlist…" msgstr "_Zonte ae liste di riproduzion…" #: data/ui/ArtistsSearchNavigationPage.ui:5 data/ui/SearchView.ui:41 #: gnomemusic/views/artistsview.py:51 msgid "Artists" msgstr "Artiscj" #: data/ui/HeaderBar.ui:14 msgid "Menu" msgstr "Menù" #: data/ui/HeaderBar.ui:22 data/ui/SearchHeaderBar.ui:12 msgid "Search" msgstr "Cîr" #: data/ui/HeaderBar.ui:31 data/ui/PreferencesDialog.ui:4 msgid "Preferences" msgstr "Preferencis" #: data/ui/HeaderBar.ui:35 msgid "Keyboard Shortcuts" msgstr "Scurtis di tastiere" #: data/ui/HeaderBar.ui:39 msgid "Help" msgstr "Jutori" #: data/ui/HeaderBar.ui:43 msgid "About Music" msgstr "Informazions su Musiche" #: data/ui/help-overlay.ui:11 msgctxt "shortcut window" msgid "General" msgstr "Gjenerâl" #: data/ui/help-overlay.ui:14 msgctxt "shortcut window" msgid "Close window" msgstr "Siere barcon" #: data/ui/help-overlay.ui:20 msgctxt "shortcut window" msgid "Search" msgstr "Cîr" #: data/ui/help-overlay.ui:26 msgctxt "shortcut window" msgid "Help" msgstr "Jutori" #: data/ui/help-overlay.ui:32 msgctxt "shortcut window" msgid "Shortcuts" msgstr "Scurtis" #: data/ui/help-overlay.ui:40 msgctxt "shortcut window" msgid "Playback" msgstr "Riprodûs" #: data/ui/help-overlay.ui:43 msgctxt "shortcut window" msgid "Play/Pause" msgstr "Sune/Pause" #: data/ui/help-overlay.ui:49 msgctxt "shortcut window" msgid "Next song" msgstr "Prossim toc" #: data/ui/help-overlay.ui:55 msgctxt "shortcut window" msgid "Previous song" msgstr "Toc precedent" #: data/ui/help-overlay.ui:61 msgctxt "shortcut window" msgid "Toggle repeat" msgstr "Comutâ il ripeti" #: data/ui/help-overlay.ui:67 msgctxt "shortcut window" msgid "Toggle shuffle" msgstr "Comutâ il messedâ" #: data/ui/help-overlay.ui:75 msgctxt "shortcut window" msgid "Navigation" msgstr "Navigazion" #: data/ui/help-overlay.ui:78 msgctxt "shortcut window" msgid "Go to Albums" msgstr "Va ai album" #: data/ui/help-overlay.ui:84 msgctxt "shortcut window" msgid "Go to Artists" msgstr "Va ai artiscj" #: data/ui/help-overlay.ui:90 msgctxt "shortcut window" msgid "Go to Songs" msgstr "Va ai tocs" #: data/ui/help-overlay.ui:96 msgctxt "shortcut window" msgid "Go to Playlists" msgstr "Va ae liste dai tocs" #: data/ui/help-overlay.ui:102 msgctxt "shortcut window" msgid "Go back" msgstr "Torne indaûr" #: data/ui/PlayerToolbar.ui:74 msgid "Previous" msgstr "Precedent" #: data/ui/PlayerToolbar.ui:106 msgid "Next" msgstr "Prossim" #: data/ui/PlaylistControls.ui:9 msgid "_Delete" msgstr "_Scancele" #: data/ui/PlaylistControls.ui:13 msgid "_Rename…" msgstr "_Cambie non…" #: data/ui/PlaylistControls.ui:28 msgid "Playlist Name" msgstr "Non de liste des musichis" #: data/ui/PlaylistControls.ui:62 msgid "_Done" msgstr "_Fat" #: data/ui/PlaylistDialog.ui:16 msgid "Add to Playlist" msgstr "Zonte ae liste des musichis" #: data/ui/PlaylistDialog.ui:27 msgid "_Cancel" msgstr "_Anule" #: data/ui/PlaylistDialog.ui:36 msgid "_Add" msgstr "_Zonte" #: data/ui/PlaylistDialog.ui:91 msgid "Enter a name for your first playlist" msgstr "Scrîf un non pe tô prime liste di riproduzion" #: data/ui/PlaylistDialog.ui:116 msgid "C_reate" msgstr "C_ree" #: data/ui/PlaylistDialog.ui:177 msgid "New Playlist…" msgstr "Gnove liste di musichis…" #: data/ui/PlaylistDialog.ui:189 msgid "Add" msgstr "Zonte" #: data/ui/PreferencesDialog.ui:9 msgid "Player Settings" msgstr "Impostazions riprodutôr" #: data/ui/PreferencesDialog.ui:12 msgid "Repeat Mode" msgstr "Modalitât ripetizion" #: data/ui/PreferencesDialog.ui:16 msgid "None" msgstr "Nissun" #: data/ui/PreferencesDialog.ui:17 msgid "Song" msgstr "Cjancçon" #: data/ui/PreferencesDialog.ui:18 msgid "All" msgstr "Dut" #: data/ui/PreferencesDialog.ui:19 gnomemusic/player.py:51 msgid "Shuffle" msgstr "Messede" #: data/ui/PreferencesDialog.ui:28 msgid "Balance loudness between songs if ReplayGain metadata is found" msgstr "" "Belance il volum tra lis cjançons se al ven cjatât il metadât ReplayGain" #: data/ui/PreferencesDialog.ui:35 msgid "Power Settings" msgstr "Impostazions alimentazion" #: data/ui/PreferencesDialog.ui:38 msgid "Inhibit Suspend" msgstr "Inibìs la sospension" #: data/ui/PreferencesDialog.ui:39 msgid "Only while playing" msgstr "Dome intant de riproduzion" #: data/ui/SearchView.ui:55 data/ui/SearchView.ui:112 msgid "View All" msgstr "Visualize dut" #: data/ui/SearchView.ui:154 msgid "Songs" msgstr "Cjancçons" #: data/ui/SongWidgetMenu.ui:19 msgid "_Remove from Playlist" msgstr "_Gjave de liste des musichis" #: data/ui/StatusNavigationPage.ui:36 msgid "Welcome to Music" msgstr "Benvignûts su Musiche" #: gnomemusic/about.py:140 msgid "The GNOME Project" msgstr "Il progjet GNOME" #. Translators should localize the following string which #. will be displayed at the bottom of the about box to give #. credit to the translator(s). #: gnomemusic/about.py:146 msgid "translator-credits" msgstr "Fabio Tomat , 2024" #: gnomemusic/about.py:150 msgid "© The GNOME Music Developers" msgstr "I svilupadôrs di © GNOME Musiche" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:839 msgid "Most Played" msgstr "Plui scoltats" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:893 msgid "Never Played" msgstr "Mai scoltât" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:946 msgid "Recently Played" msgstr "Scoltât di recent" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1025 msgid "Recently Added" msgstr "Zontât di recent" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1088 msgid "Favorite Songs" msgstr "Tocs preferîts" #. TRANSLATORS: this is a playlist name indicating that the #. files are not tagged enough to be displayed in the albums #. or artists views. #: gnomemusic/grilowrappers/grltrackerplaylists.py:1142 msgid "Insufficiently Tagged" msgstr "Etichetât in mût insuficient" #: gnomemusic/gstplayer.py:418 msgid "Unable to play the file" msgstr "Impussibil riprodusi il file" #: gnomemusic/gstplayer.py:424 msgid "_Find in {}" msgstr "_Cjate in {}" #. TRANSLATORS: separator for two codecs #: gnomemusic/gstplayer.py:434 msgid " and " msgstr " e " #. TRANSLATORS: separator for a list of codecs #: gnomemusic/gstplayer.py:437 msgid ", " msgstr ", " #: gnomemusic/gstplayer.py:439 msgid "{} is required to play the file, but is not installed." msgid_plural "{} are required to play the file, but are not installed." msgstr[0] "Al covente {} par riprodusi il file, ma nol è instalât." msgstr[1] "A coventin {} par riprodusi il file, ma no son instalâts." #: gnomemusic/inhibitsuspend.py:69 msgid "Playing music" msgstr "Riproduzion musiche" #. Translators: "shuffle" causes tracks to play in random order. #: gnomemusic/player.py:48 msgid "Shuffle/Repeat Off" msgstr "Messede/ripet studâts" #: gnomemusic/player.py:49 msgid "Repeat Song" msgstr "Ripet cjançon" #: gnomemusic/player.py:50 msgid "Repeat All" msgstr "Ripet dut" #: gnomemusic/playlisttoast.py:55 msgid "Playlist {} removed" msgstr "Liste di musichis {} gjavade" #: gnomemusic/playlisttoast.py:56 gnomemusic/songtoast.py:65 msgid "Undo" msgstr "Anule" #: gnomemusic/songtoast.py:64 msgid "{} removed from {}" msgstr "{} gjavât di {}" #: gnomemusic/utils.py:89 msgid "Unknown album" msgstr "Album no cognossût" #: gnomemusic/utils.py:110 msgid "Unknown Artist" msgstr "Artist no cognossût" #: gnomemusic/views/playlistsview.py:45 msgid "Playlists" msgstr "Listis di musichis" #: gnomemusic/views/searchview.py:220 msgid "No Search Started" msgstr "Nissune ricercje scomençade" #: gnomemusic/views/searchview.py:222 msgid "Use the searchbar to start searching for albums, artists or songs" msgstr "" "Dopre la sbare di ricercje par scomençâ a cirî albums, artiscj o cjançons" #: gnomemusic/views/searchview.py:226 msgid "No Results Found" msgstr "Nissun risultât cjatât" #: gnomemusic/views/searchview.py:228 msgid "Try a different search" msgstr "Prove cuntune ricercje divierse" #: gnomemusic/widgets/albumwidget.py:230 msgid "{} minute" msgid_plural "{} minutes" msgstr[0] "{} minût" msgstr[1] "{} minûts" #: gnomemusic/widgets/discbox.py:74 msgid "Disc {}" msgstr "Disc {}" #: gnomemusic/widgets/playertoolbar.py:173 msgid "Pause" msgstr "Pause" #: gnomemusic/widgets/playlistcontrols.py:130 msgid "{} Song" msgid_plural "{} Songs" msgstr[0] "{} Cjançon" msgstr[1] "{} Cjançons" #: gnomemusic/widgets/searchheaderbar.py:50 msgid "Search songs, artists and albums" msgstr "Cîr cjançons, artiscj e albums" #. noqa: F841 #: gnomemusic/widgets/songwidgetmenu.py:94 msgid "_Open Location" msgstr "_Vierç posizion" #. TRANSLATORS: These are verbs, to (un)mark something as a #. favorite. #: gnomemusic/widgets/startoggle.py:36 msgid "Unstar" msgstr "Gjave preferît" #: gnomemusic/widgets/startoggle.py:36 msgid "Star" msgstr "Preferît" #: gnomemusic/widgets/statusnavigationpage.py:51 msgid "Your XDG Music directory is not set." msgstr "La tô cartele XDG di Musiche no je stabilide." # minuscul parce che al ven fûr la prime volte che si invie il program e il # test al è tal mieç di une frase: # Il contignût de tô cartele di musiche... #: gnomemusic/widgets/statusnavigationpage.py:58 msgid "Music Folder" msgstr "cartele de musiche" # %s o ai viodût che al ven fûr "cartele di musiche" #. TRANSLATORS: This is a label to display a link to open user's music #. folder. {} will be replaced with the translated text 'Music folder' #: gnomemusic/widgets/statusnavigationpage.py:66 msgid "The contents of your {} will appear here." msgstr "Il contignût de tô {} al vignarà mostrât achì." #: gnomemusic/widgets/statusnavigationpage.py:116 msgid "No Music Found" msgstr "Nissune musiche cjatade" #: gnomemusic/widgets/statusnavigationpage.py:117 msgid "Try a Different Search" msgstr "Prove une ricercje diferente" #: gnomemusic/widgets/statusnavigationpage.py:121 msgid "GNOME Music could not connect to Tracker." msgstr "GNOME Musiche nol è rivât a conetisi al Tracker." #: gnomemusic/widgets/statusnavigationpage.py:123 msgid "Your music files cannot be indexed without Tracker running." msgstr "" "I tiei files di musiche no puedin jessi metûts in tabele cence vê in " "esecuzion Tracker." #: gnomemusic/widgets/statusnavigationpage.py:129 msgid "Your system Tracker version seems outdated." msgstr "La version di Tracker dal to sisteme e somee sorpassade." #: gnomemusic/widgets/statusnavigationpage.py:131 msgid "Music needs Tracker version 3.0.0 or higher." msgstr "Musiche al à bisugne de version 3.0.0 (o plui resinte) di Tracker." #~ msgid "Report music history to Last.fm" #~ msgstr "Invie la cronologjie de musiche a Last.fm" #~ msgid "" #~ "Enables or disables sending scrobbles and the “currently playing” info to " #~ "Last.fm." #~ msgstr "" #~ "Al abilite o al disabilite l'inviâ i tiei gjenars di musiche preferide e " #~ "lis informazions ce che tu stâs scoltant a Last.fm." #~ msgid "Last.fm Account" #~ msgstr "Account Last.fm" #~ msgid "Report Music Listening" #~ msgstr "Invie la musiche che tu scoltis" #~ msgid "_Help" #~ msgstr "_Jutori" #~ msgid "Select" #~ msgstr "Selezione" #~ msgid "Back" #~ msgstr "Torne indaûr" #~ msgid "" #~ "Last.fm is a music discovery service that gives you personalised " #~ "recommendations based on the music you listen to." #~ msgstr "" #~ "Last.fm al è un servizi di scuvierte de musiche che ti da conseis " #~ "personalizâts in base ae musiche che tu scoltis." #~ msgid "Music Reporting Not Setup" #~ msgstr "Segnalazion de musiche, no configurade" #~ msgid "Login to your Last.fm account to report your music listening." #~ msgstr "Jentre tal to account Last.fm par inviâ la musiche che tu scoltis." #~ msgid "Login" #~ msgstr "Jentre" #~ msgid "Select All" #~ msgstr "Selezione dut" #~ msgid "Select None" #~ msgstr "Selezione nuie" #~ msgid "Click on items to select them" #~ msgstr "Cliche sui elements par selezionaju" #~ msgid "_Add to Playlist" #~ msgstr "_Zonte ae liste des musichis" #~ msgid "Copyright The GNOME Music Developers" #~ msgstr "Copyright i svilupadôrs di GNOME Musiche" #~ msgid "Translated by" #~ msgstr "Tradot di" #~ msgid "Artists Results" #~ msgstr "Risultâts artiscj" #~ msgid "Albums Results" #~ msgstr "Risultâts album" #~ msgid "Selected {} song" #~ msgid_plural "Selected {} songs" #~ msgstr[0] "Selezionât {} cjançon" #~ msgstr[1] "Selezionâts {} cjançons" #~ msgid "Your music listening is reported to Last.fm." #~ msgstr "La musiche che tu scoltis e ven segnalade a Last.fm." #~ msgid "Your music listening is not reported to Last.fm." #~ msgstr "La musiche che tu scoltis no ven inviade a Last.fm." #~ msgid "Logged in as {}" #~ msgstr "Jentrât come {}" #~ msgid "Configure" #~ msgstr "Configure" #~ msgid "A music player and management application for GNOME." #~ msgstr "Une aplicazion GNOME par sunâ e ministrâ le proprie musiche." #~ msgid "Visit GNOME Music website" #~ msgstr "Visite il sît di GNOME Musiche" #~ msgid "" #~ "GNOME Music 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.\n" #~ "\n" #~ "GNOME Music 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.\n" #~ "\n" #~ "You should have received a copy of the GNU General Public License along " #~ "with GNOME Music; if not, write to the Free Software Foundation, Inc., 51 " #~ "Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ "\n" #~ "The GNOME Music authors hereby grant permission for non-GPL compatible " #~ "GStreamer plugins to be used and distributed together with GStreamer and " #~ "GNOME Music. This permission is above and beyond the permissions granted " #~ "by the GPL license by which GNOME Music is covered. If you modify this " #~ "code, you may extend this exception to your version of the code, but you " #~ "are not obligated to do so. If you do not wish to do so, delete this " #~ "exception statement from your version." #~ msgstr "" #~ "GNOME Musiche al è software libar; al è pussibil tornâ a distribuîlu o " #~ "modificâlu sot i tiermins de licence GNU General Public License, come " #~ "publicade de Free Software Foundation, version 2 o (a tô sielte) " #~ "cualsisei sucessive.\n" #~ "\n" #~ "GNOME Musiche al è distribuît inte sperance che al sedi util, ma CENCE " #~ "NISSUNE GARANZIE, cence nancje la implicite garanzie di CUMIERÇABILITÂT o " #~ "IDONEITÂT A UNE FINALITÂT PARTICOLÂR. Consultâ la licence GNU General " #~ "Public License par vê plui detais.\n" #~ "\n" #~ "Cun GNOME Musiche ti varessin di vê dât ancje une copie de licence GNU " #~ "General Public License, in câs contrari al è pussibil domandâle scrivint " #~ "a: Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, " #~ "Boston, MA 02110-1301 USA.\n" #~ "\n" #~ "Cun cheste letare i autôrs di GNOME Musiche a concedin il permès di doprâ " #~ "e distribuî i plugin GStreamer, che no son compatibii cun la GPL, adun " #~ "cun GStreamer e GNOME Musiche. Chest permès al è parsore e di là dal " #~ "permès concedût de licence GPL che e cuvierç GNOME Musiche. Se tu " #~ "modifichis chest codiç, tu puedis estindi cheste ecezion ae tô version " #~ "dal codiç, ma no tu sês obleât a fâlu. Se no tu desideris fâlu, elimine " #~ "cheste declarazion di ecezion de tô version." # %s o ai viodût che al ven fûr "cartele di musiche" #~ msgid "The contents of your Music Folder will appear here" #~ msgstr "Il contignût de tô cartele Musiche al vignarà mostrât achì" #~ msgid "GNOME Music" #~ msgstr "GNOME Musiche" #~ msgid "Window position" #~ msgstr "Posizion barcon" #~ msgid "Window position (x and y)." #~ msgstr "Posizion barcon (x e y)." #~ msgid "Loading" #~ msgstr "Daûr a cjariâ" #~ msgid "Add to Playlist…" #~ msgstr "Zonte te liste des musichis…" #~ msgid "" #~ "An easy way to play your music. Automatically discover music on your " #~ "computer, the local network and internet services." #~ msgstr "" #~ "Une maniere semplice par riprodusi la tô musiche. Cjate in automatic la " #~ "musiche sul to computer, su pe rêt locâl e sui servizis internet." #~ msgid "" #~ "Find tracks in your local collection, get music from DLNA servers or try " #~ "something new with the Jamendo and Magnatune services." #~ msgstr "" #~ "Cjate i tocs te colezion locâl, oten musiche dai servidôrs DLNA o cîr alc " #~ "di gnûf cui servizis Jamendo e Magnatune." #~ msgid "Inital state has been displayed" #~ msgstr "Il stât iniziâl al è stât mostrât" #~ msgid "Set to true when initial state has been displayed" #~ msgstr "Imposte a vêr cuant che il stât iniziâl al è stât mostrât" #~ msgid "Released" #~ msgstr "Publicât" #~ msgid "Running Length" #~ msgstr "Durade" #~ msgid "Composer" #~ msgstr "Compositôr" #~ msgctxt "context menu item" #~ msgid "Play" #~ msgstr "Riprodûs" #~ msgid "Hey DJ" #~ msgstr "Hey DJ" #~ msgid "Artist" #~ msgstr "Artist" #~ msgid "Album" #~ msgstr "Album" #~ msgid "Track Title" #~ msgstr "Titul" #~ msgid "Local" #~ msgstr "Locâl" #~ msgid "Sources" #~ msgstr "Sorzints" #~ msgid "Match" #~ msgstr "Corispuindince" #~ msgid "@icon@" #~ msgstr "@icon@" #~ msgid "Untitled" #~ msgstr "Cence Titul" #~ msgid "_Quit" #~ msgstr "_Jes" #~ msgid "Music is the new GNOME music playing application." #~ msgstr "Musiche e je le gnove aplicazion GNOME par riprodusi musiche." #~ msgid "org.gnome.Music" #~ msgstr "org.gnome.Music" #~ msgid "Selected %d item" #~ msgid_plural "Selected %d items" #~ msgstr[0] "Selezionât %d element" #~ msgstr[1] "Selezionâts %d elements" #~ msgid "Empty" #~ msgstr "Vueit" #~ msgid "Search mode" #~ msgstr "Modalitât di ricercje" #~ msgid "If true, the search bar is shown." #~ msgstr "Se vêr, la sbare di ricercje a ven mostrade." #~ msgid "Notifications mode" #~ msgstr "Modalitât di notificazion" #~ msgid "Enables or disables playback notifications" #~ msgstr "Abilite o no lis notificazions di riproduzion" #~ msgid "%d min" #~ msgstr "%d min" #~ msgid "Select Playlist" #~ msgstr "Selezione liste des musichis" #~ msgid "the|a|an" #~ msgstr "the|a|an|il|i|la|lis|un|une|l'" #~ msgid "Max chars to display in track name on Artist view" #~ msgstr "" #~ "Numar massim di caratars di mostrâ tal non de cjançon inte visualizazion " #~ "Artist" #~ msgid "" #~ "This setting modifies the amount of chars for track title on Artist view " #~ "before its been ellipsized. Set this to -1 to disable" #~ msgstr "" #~ "Cheste impostazion a cambie il cuantitatîf di caratars par il titul de " #~ "cjançon inte visualizazion Artist prime che al sedi mitût intun elìs. Met " #~ "chest valôr come -1 par no abilitâ" #~ msgid "the a an" #~ msgstr "Il la i lis the a an un une" #~ msgid "All Artists" #~ msgstr "Ducj i artiscj" #~ msgid "Not playing" #~ msgstr "Cuiet" #~ msgid "by %s, from %s" #~ msgstr "di %s, dal album %s" #~ msgid "_New Playlist" #~ msgstr "_Gnove liste di musichis" 070701000000EC000081A400000000000000000000000166968E4E00004629000000000000000000000000000000000000001A00000000gnome-music-46.1/po/fy.pomsgid "" msgstr "" "Project-Id-Version: gnome-music master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-music/issues\n" "POT-Creation-Date: 2021-08-31 14:27+0000\n" "PO-Revision-Date: 2021-10-05 09:48+0000\n" "Last-Translator: Tjipke van der Heide \n" "Language-Team: Western Frisian\n" "Language: fy\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Loco-Source-Locale: fy_NL\n" "X-Generator: Loco https://localise.biz/\n" "X-DL-Team: fy\n" "X-DL-Module: gnome-music\n" "X-DL-Branch: master\n" "X-DL-Domain: po\n" "X-DL-State: Translating\n" "\n" "X-Loco-Parser: loco_parse_po" #: data/org.gnome.Music.appdata.xml.in.in:6 msgid "GNOME Music" msgstr "GNOME Music" #: data/org.gnome.Music.appdata.xml.in.in:7 #: data/org.gnome.Music.desktop.in.in:5 msgid "Play and organize your music collection" msgstr "Spylje jo muzyksamling ôf en organisearje it" #: data/org.gnome.Music.appdata.xml.in.in:9 msgid "An easy and pleasant way to play your music." msgstr "In maklik en noflik te brûken wize om jo muzyk ôf te spyljen." #: data/org.gnome.Music.appdata.xml.in.in:12 msgid "" "Find tracks in your local collection, use automatically generated playlists " "or curate a fresh one." msgstr "" "Fynt ferskes yn jo lokale samling, brûk automatysk oanmakke ôfspyllisten of " "meitsje jo eigen." #: data/org.gnome.Music.appdata.xml.in.in:140 msgid "The GNOME Music developers" msgstr "De GNOME Music-ûntwikkelers" #: data/org.gnome.Music.desktop.in.in:3 gnomemusic/application.py:60 #: gnomemusic/window.py:71 msgid "Music" msgstr "Muzyk" #: data/org.gnome.Music.desktop.in.in:4 msgid "Music Player" msgstr "Muzykspiler" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Music.desktop.in.in:13 msgid "Music;Player;" msgstr "Muzyk;Spiler;" #: data/org.gnome.Music.gschema.xml:12 msgid "Window size" msgstr "Finstergrutte" #: data/org.gnome.Music.gschema.xml:13 msgid "Window size (width and height)." msgstr "Finstergrutte (breedte en hichte)." #: data/org.gnome.Music.gschema.xml:17 msgid "Window position" msgstr "Finsterposysje" #: data/org.gnome.Music.gschema.xml:18 msgid "Window position (x and y)." msgstr "Finsterposysje (x en y)." #: data/org.gnome.Music.gschema.xml:22 msgid "Window maximized" msgstr "Finster maksimalisearre" #: data/org.gnome.Music.gschema.xml:23 msgid "Window maximized state." msgstr "Finster maksimalisearresteat." #: data/org.gnome.Music.gschema.xml:27 msgid "Playback repeat mode" msgstr "Opnij ôfspyljemodus" #. Translators: Don't translate allowed values, just the description in the brackets #: data/org.gnome.Music.gschema.xml:29 msgid "" "Value identifies whether to repeat or randomize playback through the " "collection. Allowed values are: “none” (repeat and shuffle are off), “song” " "(repeat current song), “all” (repeat playlist, no shuffle), “shuffle” " "(shuffle playlist, presumes repeat all)." msgstr "" "Wearde jout oan as de samling opnij ôfspile of mingd wurde moat. Jildige " "wearden binne: ‘gjin’ (opnij ôfspyljen en mingen binne útskeakele), ‘ferske’ " "(aktuele ferske opnij ôfspylje), ‘Alles’ (ôfspyllist opnij ôfspylje, net " "minge), ‘minge’ (ôfspyllist minge, giet der fan út dat alles opnij ôfspile " "wurdt)." #: data/org.gnome.Music.gschema.xml:33 msgid "Enable ReplayGain" msgstr "ReplayGain ynskeakelje" #: data/org.gnome.Music.gschema.xml:34 msgid "Enables or disables ReplayGain for albums" msgstr "Skeakelet ReplayGain foar albums yn of út" #: data/org.gnome.Music.gschema.xml:38 msgid "Inhibit system suspend" msgstr "Foarkomme dat de kompjûter yn skoftmodus giet" #: data/org.gnome.Music.gschema.xml:39 msgid "Enables or disables inhibiting system suspend while playing music" msgstr "" "Skeakelet it foarkommen fan dat it systeem yn de skoftstân giet yn of út." #: data/org.gnome.Music.gschema.xml:43 msgid "Report music history to Last.fm" msgstr "Muzykskiednis nei Last.fm ferstjoere" #: data/org.gnome.Music.gschema.xml:44 msgid "" "Enables or disables sending scrobbles and the “currently playing” info to " "Last.fm." msgstr "" "Skeakelet it ferstjoeren fan \"scrobbles\" en ‘No oan it ôfspyljen’ " "ynformaasje nei Last.fm yn of út." #: data/ui/AboutDialog.ui.in:9 msgid "Copyright © 2018 GNOME Music Developers" msgstr "Copyright © 2018 GNOME Music-ûntwikkelers" #: data/ui/AboutDialog.ui.in:10 msgid "A music player and management application for GNOME." msgstr "In muzykspiler en behearapplikaasje foar GNOME." #: data/ui/AboutDialog.ui.in:12 msgid "Visit GNOME Music website" msgstr "De GNOME Music-website besykje" #: data/ui/AboutDialog.ui.in:13 msgid "" "GNOME Music 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.\n" "\n" "GNOME Music 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.\n" "\n" "You should have received a copy of the GNU General Public License along with " "GNOME Music; if not, write to the Free Software Foundation, Inc., 51 " "Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" "\n" "The GNOME Music authors hereby grant permission for non-GPL compatible " "GStreamer plugins to be used and distributed together with GStreamer and " "GNOME Music. This permission is above and beyond the permissions granted by " "the GPL license by which GNOME Music is covered. If you modify this code, " "you may extend this exception to your version of the code, but you are not " "obligated to do so. If you do not wish to do so, delete this exception " "statement from your version." msgstr "" "GNOME Music is frije software; jo meie it fierder distribuearje en/of " "oanpasse ûnder de betingsten fan de GNU General Public License sa as útjûn " "troch de Free Software Foundation; ferzje 2 fan de lisinsje, of as jo dat " "wolle, elke nijere ferzje." #: data/ui/AlbumWidget.ui:104 data/ui/PlayerToolbar.ui:122 #: data/ui/PlaylistControls.ui:121 data/ui/SongWidgetMenu.ui:19 #: gnomemusic/widgets/playertoolbar.py:177 msgid "Play" msgstr "Ofspylje" #: data/ui/AlbumWidget.ui:163 data/ui/PlaylistControls.ui:6 msgid "_Play" msgstr "_Ofspylje" #: data/ui/AlbumWidget.ui:167 msgid "Add to _Favorite Songs" msgstr "Oan _favorite ferskes tafoegje" #: data/ui/AlbumWidget.ui:171 msgid "_Add to Playlist…" msgstr "_Oan ôfspyllist tafoegje…" #: data/ui/AppMenu.ui:23 data/ui/LastfmDialog.ui:8 msgid "Last.fm Account" msgstr "Last.fm-account" #: data/ui/AppMenu.ui:38 msgid "Report Music Listening" msgstr "Muzyk lústerje ferstjoere" #: data/ui/AppMenu.ui:63 msgid "_Keyboard Shortcuts" msgstr "_Fluchtoetsen" #: data/ui/AppMenu.ui:74 msgid "_Help" msgstr "_Help" #: data/ui/AppMenu.ui:85 msgid "_About Music" msgstr "_Oer Music" #: data/ui/EmptyView.ui:35 msgid "Welcome to Music" msgstr "Wolkom by Music" #: data/ui/HeaderBar.ui:16 msgid "Menu" msgstr "Menu" #: data/ui/HeaderBar.ui:39 data/ui/SearchHeaderBar.ui:16 msgid "Select" msgstr "Selektearje" #: data/ui/HeaderBar.ui:60 data/ui/PlaylistDialog.ui:211 #: data/ui/SearchHeaderBar.ui:37 msgid "_Cancel" msgstr "_Annulearje" #: data/ui/HeaderBar.ui:79 data/ui/SearchHeaderBar.ui:56 msgid "Search" msgstr "Sykje" #: data/ui/HeaderBar.ui:102 msgid "Back" msgstr "Tebek" #: data/ui/help-overlay.ui:13 msgctxt "shortcut window" msgid "General" msgstr "Algemien" #: data/ui/help-overlay.ui:17 msgctxt "shortcut window" msgid "Close window" msgstr "Finster slute" #: data/ui/help-overlay.ui:24 msgctxt "shortcut window" msgid "Search" msgstr "Sykje" #: data/ui/help-overlay.ui:31 msgctxt "shortcut window" msgid "Help" msgstr "Help" #: data/ui/help-overlay.ui:38 msgctxt "shortcut window" msgid "Shortcuts" msgstr "Fluchtoetsen" #: data/ui/help-overlay.ui:47 msgctxt "shortcut window" msgid "Playback" msgstr "Ofspylje" #: data/ui/help-overlay.ui:51 msgctxt "shortcut window" msgid "Play/Pause" msgstr "Ofspylje/Skoft" #: data/ui/help-overlay.ui:58 msgctxt "shortcut window" msgid "Next song" msgstr "Folgjende ferske" #: data/ui/help-overlay.ui:65 msgctxt "shortcut window" msgid "Previous song" msgstr "Foarige ferske" #: data/ui/help-overlay.ui:72 msgctxt "shortcut window" msgid "Toggle repeat" msgstr "Opnij ôfspylje yn- of útskeakelje" #: data/ui/help-overlay.ui:79 msgctxt "shortcut window" msgid "Toggle shuffle" msgstr "Minge yn- of útskeakelje" #: data/ui/help-overlay.ui:88 msgctxt "shortcut window" msgid "Navigation" msgstr "Navigaasje" #: data/ui/help-overlay.ui:92 msgctxt "shortcut window" msgid "Go to Albums" msgstr "Gean nei Albums" #: data/ui/help-overlay.ui:99 msgctxt "shortcut window" msgid "Go to Artists" msgstr "Gean nei Artysten" #: data/ui/help-overlay.ui:106 msgctxt "shortcut window" msgid "Go to Songs" msgstr "Gean nei Ferskes" #: data/ui/help-overlay.ui:113 msgctxt "shortcut window" msgid "Go to Playlists" msgstr "Gean nei Ofspyllisten" #: data/ui/help-overlay.ui:120 msgctxt "shortcut window" msgid "Go back" msgstr "Gean tebek" #: data/ui/LastfmDialog.ui:24 msgid "" "Last.fm is a music discovery service that gives you personalised " "recommendations based on the music you listen to." msgstr "" "Last.fm is in muzykûntdekkingstsjinst dy't jo persoanlike oanrekommandaasjes " "jout oan de hân fan de muzyk dêr't jo nei lústerje." #: data/ui/LastfmDialog.ui:35 gnomemusic/widgets/lastfmdialog.py:58 msgid "Music Reporting Not Setup" msgstr "Muzyk opstjoere net ynsteld" #: data/ui/LastfmDialog.ui:49 gnomemusic/widgets/lastfmdialog.py:61 msgid "Login to your Last.fm account to report your music listening." msgstr "" "Meld oan op jo Last.fm-account om de muzyk dêr't jo nei lústerje op te " "stjoeren." #: data/ui/LastfmDialog.ui:60 gnomemusic/widgets/lastfmdialog.py:59 msgid "Login" msgstr "Oanmelde" #: data/ui/LoadingNotification.ui:16 msgid "Loading" msgstr "Lade" #: data/ui/PlayerToolbar.ui:105 msgid "Previous" msgstr "Foarige" #: data/ui/PlayerToolbar.ui:139 msgid "Next" msgstr "Folgjende" #: data/ui/PlaylistControls.ui:10 msgid "_Delete" msgstr "_Fuortsmite" #: data/ui/PlaylistControls.ui:14 msgid "_Rename…" msgstr "_Omneame…" #: data/ui/PlaylistControls.ui:44 msgid "Playlist Name" msgstr "Namme fan de ôfspyllist" #: data/ui/PlaylistControls.ui:77 msgid "_Done" msgstr "_Dien" #: data/ui/PlaylistDialog.ui:66 msgid "Enter a name for your first playlist" msgstr "In namme foar jo ôfspyllist ynfiere" #: data/ui/PlaylistDialog.ui:88 msgid "C_reate" msgstr "_Oanmeitsje" #: data/ui/PlaylistDialog.ui:156 msgid "New Playlist…" msgstr "Nije ôfspyllist…" #: data/ui/PlaylistDialog.ui:167 msgid "Add" msgstr "Tafoegje" #: data/ui/PlaylistDialog.ui:208 msgid "Add to Playlist" msgstr "Oan ôfspyllist tafoegje" #: data/ui/PlaylistDialog.ui:224 msgid "_Add" msgstr "_Tafoegje" #: data/ui/PlaylistNotification.ui:22 msgid "_Undo" msgstr "_Ungedien meitsje" #: data/ui/SearchView.ui:47 gnomemusic/views/artistsview.py:46 msgid "Artists" msgstr "Artysten" #: data/ui/SearchView.ui:57 data/ui/SearchView.ui:108 msgid "View All" msgstr "Alles besjen" #: data/ui/SearchView.ui:98 gnomemusic/views/albumsview.py:50 msgid "Albums" msgstr "Albums" #: data/ui/SearchView.ui:149 gnomemusic/views/songsview.py:47 msgid "Songs" msgstr "Ferskes" #: data/ui/SelectionBarMenuButton.ui:7 msgid "Select All" msgstr "Alles selektearje" #: data/ui/SelectionBarMenuButton.ui:11 msgid "Select None" msgstr "Neat Selektearje" #: data/ui/SelectionBarMenuButton.ui:30 gnomemusic/widgets/headerbar.py:71 msgid "Click on items to select them" msgstr "Klik op items om se te selektearjen" #: data/ui/SelectionToolbar.ui:9 msgid "_Add to Playlist" msgstr "_Oan ôfspyllist tafoegje" #: data/ui/SongWidgetMenu.ui:29 msgid "Add to Playlist…" msgstr "Oan ôfspyllist tafoegje…" #: data/ui/SongWidgetMenu.ui:39 msgid "Remove From Playlist" msgstr "Ut ôfspyllist fuortsmite" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:898 msgid "Most Played" msgstr "Meast ôfspile" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:952 msgid "Never Played" msgstr "Nea ôfspile" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1005 msgid "Recently Played" msgstr "Koartlyn ôfspile" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1068 msgid "Recently Added" msgstr "Koartlyn tafoege" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1131 msgid "Favorite Songs" msgstr "Favorite ferskes" #: gnomemusic/gstplayer.py:408 msgid "Unable to play the file" msgstr "Kin it bestân net ôfspylje" #: gnomemusic/gstplayer.py:414 msgid "_Find in {}" msgstr "_Sykje yn {}" #. TRANSLATORS: separator for two codecs #: gnomemusic/gstplayer.py:424 msgid " and " msgstr "en" #. TRANSLATORS: separator for a list of codecs #: gnomemusic/gstplayer.py:427 msgid ", " msgstr "," #: gnomemusic/gstplayer.py:429 msgid "{} is required to play the file, but is not installed." msgid_plural "{} are required to play the file, but are not installed." msgstr[0] "" "{} is nedich om it bestân ôf te spyljen, mar it is net ynstallearre." msgstr[1] "" "{} binne nedich om it bestân ôf te spyljen, mar se binne net ynstallearre." #: gnomemusic/inhibitsuspend.py:63 msgid "Playing music" msgstr "Muzyk oan it ôfspyljen" #. Translators: "shuffle" causes tracks to play in random order. #: gnomemusic/player.py:45 msgid "Shuffle" msgstr "Minge" #: gnomemusic/player.py:46 msgid "Repeat Song" msgstr "Ferske opnij ôfspylje" #: gnomemusic/player.py:47 msgid "Repeat All" msgstr "Alles opnij ôfspylje" #: gnomemusic/player.py:48 msgid "Shuffle/Repeat Off" msgstr "Minge/Opnij ôfspylje út" #: gnomemusic/utils.py:80 msgid "Unknown album" msgstr "Unbekend album" #: gnomemusic/utils.py:101 msgid "Unknown Artist" msgstr "Unbekende artyst" #: gnomemusic/views/emptyview.py:65 msgid "Your XDG Music directory is not set." msgstr "Jo XDG Muzyk-map is net ynsteld." #: gnomemusic/views/emptyview.py:72 msgid "Music Folder" msgstr "Muzykmap" #. TRANSLATORS: This is a label to display a link to open user's music #. folder. {} will be replaced with the translated text 'Music folder' #: gnomemusic/views/emptyview.py:76 msgid "The contents of your {} will appear here." msgstr "De ynhâld fan jo {} sil hjir sichtber wurde." #: gnomemusic/views/emptyview.py:124 msgid "No Music Found" msgstr "Gjin muzyk fûn" #: gnomemusic/views/emptyview.py:125 msgid "Try a Different Search" msgstr "Probearje om wat oars te sykjen" #: gnomemusic/views/emptyview.py:129 msgid "GNOME Music could not connect to Tracker." msgstr "GNOME Music koe net mei Tracker ferbine." #: gnomemusic/views/emptyview.py:131 msgid "Your music files cannot be indexed without Tracker running." msgstr "" "Jo muzykbestannen kinne net yndeksearre wurde sûnder dat Tracker útfierd " "wurdt." #: gnomemusic/views/emptyview.py:137 msgid "Your system Tracker version seems outdated." msgstr "De ferzje fan Tracker op jo systeem liket ferâldere." #: gnomemusic/views/emptyview.py:139 msgid "Music needs Tracker version 3.0.0 or higher." msgstr "Muzyk hat Tracker ferzje 3.0.0 of heger nedich." #: gnomemusic/views/playlistsview.py:45 msgid "Playlists" msgstr "Ofspyllisten" #: gnomemusic/views/searchview.py:420 msgid "Artists Results" msgstr "Artystresultaten" #: gnomemusic/views/searchview.py:435 msgid "Albums Results" msgstr "Albumresultaten" #: gnomemusic/widgets/albumwidget.py:237 msgid "{} minute" msgid_plural "{} minutes" msgstr[0] "{} minút" msgstr[1] "{} minuten" #: gnomemusic/widgets/disclistboxwidget.py:75 msgid "Disc {}" msgstr "Skiif {}" #: gnomemusic/widgets/headerbar.py:68 msgid "Selected {} song" msgid_plural "Selected {} songs" msgstr[0] "No {} ferske selektearre" msgstr[1] "No {} ferskes selektearre" #: gnomemusic/widgets/lastfmdialog.py:65 msgid "Your music listening is reported to Last.fm." msgstr "De muzyk dêr't jo nei lústerje wurd nei Last.fm ferstjoerd." #: gnomemusic/widgets/lastfmdialog.py:67 msgid "Your music listening is not reported to Last.fm." msgstr "De muzyk dêr't jo nei lústerje, wurdt net nei Last.fm ferstjoerd." #. TRANSLATORS: displays the username of the Last.fm account #: gnomemusic/widgets/lastfmdialog.py:71 msgid "Logged in as {}" msgstr "Oanmeld as {}" #: gnomemusic/widgets/lastfmdialog.py:72 msgid "Configure" msgstr "Ynstelle" #: gnomemusic/widgets/notificationspopup.py:216 msgid "Playlist {} removed" msgstr "Ofspyllist {} fuortsmiten" #: gnomemusic/widgets/notificationspopup.py:220 msgid "{} removed from {}" msgstr "{} út {} fuortsmiten" #: gnomemusic/widgets/playertoolbar.py:174 msgid "Pause" msgstr "Skoft" #: gnomemusic/widgets/playlistcontrols.py:132 msgid "{} Song" msgid_plural "{} Songs" msgstr[0] "{} Ferske" msgstr[1] "{} Ferskes" 070701000000ED000081A400000000000000000000000166968E4E000018BD000000000000000000000000000000000000001A00000000gnome-music-46.1/po/ga.po# Irish translations for gnome-music package. # Copyright (C) 2013 Free Software Foundation, Inc. # This file is distributed under the same license as the gnome-music package. # Seán de Búrca , 2013. # msgid "" msgstr "" "Project-Id-Version: gnome-music.master\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-08-31 02:15-0600\n" "PO-Revision-Date: 2013-08-31 02:31-0600\n" "Last-Translator: Seán de Búrca \n" "Language-Team: Irish \n" "Language: ga\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=5; plural=n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : " "4;\n" #: ../data/org.gnome.Music.gschema.xml.h:1 msgid "Window size" msgstr "Méid na fuinneoige" #: ../data/org.gnome.Music.gschema.xml.h:2 msgid "Window size (width and height)." msgstr "Méid na fuinneoige (leithead agus airde)." #: ../data/org.gnome.Music.gschema.xml.h:3 msgid "Window position" msgstr "Ionad na fuinneoige" #: ../data/org.gnome.Music.gschema.xml.h:4 msgid "Window position (x and y)." msgstr "Ionad na fuinneoige (x agus y)." #: ../data/org.gnome.Music.gschema.xml.h:5 msgid "Window maximized" msgstr "Uasmhéadaíodh an fhuinneog" #: ../data/org.gnome.Music.gschema.xml.h:6 msgid "Window maximized state." msgstr "Staid uasmhéadaithe na fuinneoige." #: ../data/org.gnome.Music.gschema.xml.h:7 msgid "Playback repeat mode" msgstr "" #: ../data/org.gnome.Music.gschema.xml.h:8 msgid "" "Value identifies whether to repeat or randomize playback through the " "collection. Allowed values are: \"none\", \"song\", \"all\", \"shuffle\"." msgstr "" #: ../data/org.gnome.Music.gschema.xml.h:9 msgid "Search mode" msgstr "Mód cuardaigh" #: ../data/org.gnome.Music.gschema.xml.h:10 msgid "If true, the search bar is shown." msgstr "Má tá fíor, taispeántar an barra cuardaigh." #: ../data/gnome-music.desktop.in.h:1 ../gnomemusic/application.py:45 #: ../gnomemusic/window.py:53 ../data/AboutDialog.ui.in.h:1 msgid "Music" msgstr "Ceol" #: ../data/gnome-music.desktop.in.h:2 msgid "Music Player" msgstr "Seinnteoir Ceoil" #: ../data/gnome-music.desktop.in.h:3 msgid "Play and organize your music collection" msgstr "Seinn agus eagraigh do bhailiúchán ceoil" #: ../gnomemusic/albumArtCache.py:235 msgid "Untitled" msgstr "Gan Teideal" #: ../gnomemusic/player.py:271 ../gnomemusic/view.py:218 #: ../gnomemusic/view.py:571 msgid "Unknown Artist" msgstr "Ealaíontóir Anaithnid" #: ../gnomemusic/view.py:280 #, python-format msgid "" "No Music found!\n" " Put some files into the folder %s" msgstr "" "Ceol gan aimsiú!\n" " Cuir cúpla comhad isteach san fhillteán %s" #: ../gnomemusic/view.py:287 msgid "Albums" msgstr "Albaim" #: ../gnomemusic/view.py:317 msgid "Songs" msgstr "Amhráin" #: ../gnomemusic/view.py:462 msgid "Playlists" msgstr "Seinmliostaí" #: ../gnomemusic/view.py:468 msgid "Artists" msgstr "Ealaíontóirí" #: ../gnomemusic/view.py:506 ../gnomemusic/view.py:508 #: ../gnomemusic/widgets.py:436 msgid "All Artists" msgstr "Gach Ealaíontóir" #: ../gnomemusic/widgets.py:74 ../gnomemusic/widgets.py:94 msgid "Load More" msgstr "Luchtaigh Tuilleadh" #: ../gnomemusic/widgets.py:84 msgid "Loading..." msgstr "Á luchtú..." #: ../gnomemusic/window.py:134 msgid "Empty" msgstr "Folamh" #: ../data/AboutDialog.ui.in.h:2 msgid "Copyright © 2013 GNOME Music Developers" msgstr "Cóipcheart © 2013 Forbróirí Cheol GNOME" #: ../data/AboutDialog.ui.in.h:3 msgid "A music player and management application for GNOME." msgstr "Seinnteoir ceoil agus feidhmchlár bhainisteoireacht cheoil do GNOME." #: ../data/AboutDialog.ui.in.h:4 msgid "Visit GNOME Music website" msgstr "Féach an suíomh gréasáin do Cheol GNOME" #: ../data/AboutDialog.ui.in.h:5 msgid "" "GNOME Music 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.\n" "\n" "GNOME Music 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.\n" "\n" "You should have received a copy of the GNU General Public License along with " "GNOME Music; if not, write to the Free Software Foundation, Inc., 51 " "Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" "\n" "The GNOME Music authors hereby grant permission for non-GPL compatible " "GStreamer plugins to be used and distributed together with GStreamer and " "GNOME Music. This permission is above and beyond the permissions granted by " "the GPL license by which GNOME Music is covered. If you modify this code, " "you may extend this exception to your version of the code, but you are not " "obligated to do so. If you do not wish to do so, delete this exception " "statement from your version." msgstr "" #: ../data/AlbumWidget.ui.h:1 msgid "Released" msgstr "Eisithe" #: ../data/AlbumWidget.ui.h:2 msgid "Running Length" msgstr "Fad Reatha" #: ../data/app-menu.ui.h:1 msgid "_New Playlist" msgstr "Seinmliosta _Nua" #: ../data/app-menu.ui.h:2 msgid "_Now Playing" msgstr "Á Sheinm _Anois" #: ../data/app-menu.ui.h:3 msgid "_About Music" msgstr "_Maidir le Ceol" #: ../data/app-menu.ui.h:4 msgid "_Quit" msgstr "_Scoir" #: ../data/PlayerToolbar.ui.h:1 msgid "Shuffle" msgstr "Suaith" #: ../data/PlayerToolbar.ui.h:2 msgid "Repeat All" msgstr "Seinn Gach Amhrán Arís" #: ../data/PlayerToolbar.ui.h:3 msgid "Repeat Song" msgstr "Seinn an tAmhrán Arís" #: ../data/PlayerToolbar.ui.h:4 msgid "Shuffle/Repeat Off" msgstr "Ná Suaith/Seinn Arís" #: ../data/NoMusic.ui.h:1 msgid "No Music Found" msgstr "Ceol Gan Aimsiú" #: ../data/headerbar.ui.in.h:1 msgid "Select All" msgstr "Roghnaigh Uile" #: ../data/headerbar.ui.in.h:2 msgid "Select None" msgstr "Ná Roghnaigh" #: ../data/headerbar.ui.in.h:3 msgid "Click on items to select them" msgstr "Cliceáil ar mhíreanna chun iad a roghnú" #: ../data/headerbar.ui.in.h:4 msgid "Cancel" msgstr "Cealaigh" #: ../data/SelectionToolbar.ui.h:1 msgid "Add to Playlist" msgstr "Cuir le Seinmliosta" 070701000000EE000081A400000000000000000000000166968E4E00004E31000000000000000000000000000000000000001A00000000gnome-music-46.1/po/gd.po# Scottish Gaelic translation for gnome-music. # Copyright (C) 2016 gnome-music's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-music package. # GunChleoc , 2016, 2017, 2018. msgid "" msgstr "" "Project-Id-Version: gnome-music gnome-3-20\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-music/issues\n" "POT-Creation-Date: 2018-01-06 19:22+0000\n" "PO-Revision-Date: 2018-03-02 10:35+0100\n" "Last-Translator: GunChleoc \n" "Language-Team: Fòram na Gàidhlig\n" "Language: gd\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=(n==1 || n==11) ? 0 : (n==2 || n==12) ? 1 : " "(n > 2 && n < 20) ? 2 : 3;\n" "X-Generator: Virtaal 0.7.1\n" "X-Project-Style: gnome\n" #: ../data/org.gnome.Music.appdata.xml.in.h:1 msgid "GNOME Music" msgstr "Ceòl GNOME" #: ../data/org.gnome.Music.appdata.xml.in.h:2 #: ../data/org.gnome.Music.desktop.in.h:3 msgid "Play and organize your music collection" msgstr "Cluich is cum rian air a’ chruinneachadh ciùil agad" #: ../data/org.gnome.Music.appdata.xml.in.h:3 msgid "Music is the new GNOME music playing application." msgstr "’S e aplacaid ùr GNOME gus ceòl a chluich a th’ ann an Ceòl." #: ../data/org.gnome.Music.desktop.in.h:1 ../gnomemusic/application.py:53 #: ../gnomemusic/application.py:102 ../gnomemusic/toolbar.py:90 #: ../gnomemusic/window.py:68 ../data/AboutDialog.ui.in.h:1 msgid "Music" msgstr "Ceòl" #: ../data/org.gnome.Music.desktop.in.h:2 msgid "Music Player" msgstr "Cluicheadair ciùil" #: ../data/org.gnome.Music.desktop.in.h:4 msgid "Music;Player;" msgstr "Music;Player;ceòl;cluicheadair;inneal-cluich;" #: ../data/org.gnome.Music.gschema.xml.h:1 msgid "Window size" msgstr "Meud na h-uinneige" #: ../data/org.gnome.Music.gschema.xml.h:2 msgid "Window size (width and height)." msgstr "Meud na h-uinneige (leud is àirde)." #: ../data/org.gnome.Music.gschema.xml.h:3 msgid "Window position" msgstr "Ionad na h-uinneige" #: ../data/org.gnome.Music.gschema.xml.h:4 msgid "Window position (x and y)." msgstr "Ionad na h-uinneige (x is y)." #: ../data/org.gnome.Music.gschema.xml.h:5 msgid "Window maximized" msgstr "Làn-mheud air an uinneag" #: ../data/org.gnome.Music.gschema.xml.h:6 msgid "Window maximized state." msgstr "Staid làn-mheud na h-uinneige." #: ../data/org.gnome.Music.gschema.xml.h:7 msgid "Playback repeat mode" msgstr "Modh ath-chluich" #. Translators: Don't translate allowed values, just the description in the brackets #: ../data/org.gnome.Music.gschema.xml.h:9 #| msgid "" #| "Value identifies whether to repeat or randomize playback through the " #| "collection. Allowed values are: \"none\" (repeat and shuffle are off), " #| "\"song\" (repeat current song), \"all\" (repeat playlist, no shuffle), " #| "\"shuffle\" (shuffle playlist, presumes repeat all)." msgid "" "Value identifies whether to repeat or randomize playback through the " "collection. Allowed values are: “none” (repeat and shuffle are off), " "“song” (repeat current song), “all” (repeat playlist, no shuffle), " "“shuffle” (shuffle playlist, presumes repeat all)." msgstr "" "Innsidh an luach am bu chòir ath-chluich no nithean sa chruinneachadh a " "chluich air thuaiream. Seo na luachan ceadaichte: “none” (tha ath-chluich is " "cluich air thuaiream dheth), “song” (ath-chluich an t-òran làithreach), " "“all” (ath-chluich an liosta-chluich gun a bhith ’ga cluich air thuaiream), " "“shuffle” (cluich na h-òrain air an liosta-chluich air thuaiream, an dùil " "gun dèid na h-uile òran ath-chluich)." #: ../data/org.gnome.Music.gschema.xml.h:10 msgid "Search mode" msgstr "Modh an luirg" #: ../data/org.gnome.Music.gschema.xml.h:11 msgid "If true, the search bar is shown." msgstr "Mas e “true” a th’ ann, thèid am bàr-luirg a shealltainn." #: ../data/org.gnome.Music.gschema.xml.h:12 msgid "Notifications mode" msgstr "Modh nam brathan" #: ../data/org.gnome.Music.gschema.xml.h:13 msgid "Enables or disables playback notifications" msgstr "Cuiridh seo brathan na cluich an comas no à comas" #: ../data/org.gnome.Music.gschema.xml.h:14 msgid "Enable ReplayGain" msgstr "Cuir meudachadh fuaime an comas" #: ../data/org.gnome.Music.gschema.xml.h:15 msgid "Enables or disables ReplayGain for albums" msgstr "" "Cuiridh seo meudachadh air àirde na fuaime airson albaman an comas no à comas" #: ../data/org.gnome.Music.gschema.xml.h:16 msgid "Inital state has been displayed" msgstr "Chaidh an staid thùsail a shealltainn" #: ../data/org.gnome.Music.gschema.xml.h:17 msgid "Set to true when initial state has been displayed" msgstr "’S e “true” a th’ ann ma chaidh an staid thùsail a shealltainn" #: ../gnomemusic/notification.py:55 ../data/PlayerToolbar.ui.h:6 msgid "Previous" msgstr "Air ais" #: ../gnomemusic/notification.py:58 ../gnomemusic/player.py:558 msgid "Pause" msgstr "Cuir ’na stad" #: ../gnomemusic/notification.py:61 ../gnomemusic/player.py:561 #: ../data/PlayerToolbar.ui.h:7 msgid "Play" msgstr "Cluich" #: ../gnomemusic/notification.py:63 ../data/PlayerToolbar.ui.h:8 msgid "Next" msgstr "Air adhart" #: ../gnomemusic/player.py:1167 msgid "Unable to play the file" msgstr "Chan urrainn dhuinn am faidhle a chluich" #. TRANSLATORS: this is a button to launch a codec installer. #. %s will be replaced with the software installer's name, e.g. #. 'Software' in case of gnome-software. #: ../gnomemusic/player.py:1172 #, python-format msgid "_Find in %s" msgstr "_Lorg an-seo: %s" #. TRANSLATORS: separator for a list of codecs #: ../gnomemusic/player.py:1182 msgid " and " msgstr " ’s " #. TRANSLATORS: separator for a list of codecs #: ../gnomemusic/player.py:1185 msgid ", " msgstr ", " #: ../gnomemusic/player.py:1186 #, python-format msgid "%s is required to play the file, but is not installed." msgid_plural "%s are required to play the file, but are not installed." msgstr[0] "Tha %s riatanach gus am faidhle a chluich ach cha deach a stàladh." msgstr[1] "Tha %s riatanach gus am faidhle a chluich ach cha deach an stàladh." msgstr[2] "Tha %s riatanach gus am faidhle a chluich ach cha deach an stàladh." msgstr[3] "Tha %s riatanach gus am faidhle a chluich ach cha deach an stàladh." #. TRANSLATORS: this is a playlist name #: ../gnomemusic/playlists.py:59 msgid "Most Played" msgstr "’Ga chluich gu tric" #. TRANSLATORS: this is a playlist name #: ../gnomemusic/playlists.py:64 msgid "Never Played" msgstr "Gun chluich" #. TRANSLATORS: this is a playlist name #: ../gnomemusic/playlists.py:69 msgid "Recently Played" msgstr "O chionn ghoirid" #. TRANSLATORS: this is a playlist name #: ../gnomemusic/playlists.py:74 msgid "Recently Added" msgstr "Air a chur ris" #. TRANSLATORS: this is a playlist name #: ../gnomemusic/playlists.py:79 msgid "Favorite Songs" msgstr "Na h-òrain as annsa" #: ../gnomemusic/searchbar.py:63 ../gnomemusic/searchbar.py:111 msgid "All" msgstr "Na h-uile" #: ../gnomemusic/searchbar.py:64 msgid "Artist" msgstr "Neach-ciùil" #: ../gnomemusic/searchbar.py:65 msgid "Album" msgstr "Albam" #: ../gnomemusic/searchbar.py:66 ../data/AlbumWidget.ui.h:3 msgid "Composer" msgstr "Sgrìobhaiche ciùil" #: ../gnomemusic/searchbar.py:67 msgid "Track Title" msgstr "Tiotail an traca" #: ../gnomemusic/searchbar.py:112 msgid "Local" msgstr "Ionadail" #: ../gnomemusic/searchbar.py:224 msgid "Sources" msgstr "Tùsan" #: ../gnomemusic/searchbar.py:231 msgid "Match" msgstr "Maids" #: ../gnomemusic/utils.py:63 msgid "Unknown Artist" msgstr "Neach-ciùil nach aithne dhuinn" #: ../gnomemusic/utils.py:75 msgid "Untitled" msgstr "Gun tiotal" #: ../gnomemusic/views/albumsview.py:44 ../gnomemusic/views/searchview.py:454 msgid "Albums" msgstr "Albaman" #: ../gnomemusic/views/artistsview.py:55 ../gnomemusic/views/searchview.py:455 msgid "Artists" msgstr "Luchd-ciùil" #: ../gnomemusic/views/baseview.py:196 #| msgid "Selected %d item" #| msgid_plural "Selected %d items" msgid "Selected {} item" msgid_plural "Selected {} items" msgstr[0] "Chaidh {} nì a thaghadh" msgstr[1] "Chaidh {} nì a thaghadh" msgstr[2] "Chaidh {} nithean a thaghadh" msgstr[3] "Chaidh {} nì a thaghadh" #: ../gnomemusic/views/baseview.py:201 ../gnomemusic/views/baseview.py:303 #: ../gnomemusic/widgets/albumwidget.py:198 #: ../gnomemusic/widgets/artistalbumswidget.py:232 ../data/headerbar.ui.h:3 msgid "Click on items to select them" msgstr "Briog air nithean gus an taghadh" #: ../gnomemusic/views/emptyview.py:51 msgid "Music folder" msgstr "Pasgan a’ chiùil" #: ../gnomemusic/views/emptysearchview.py:50 msgid "Try a different search" msgstr "Feuch lorg eile" #: ../gnomemusic/views/initialstateview.py:50 msgid "Hey DJ" msgstr "Hey DJ" #: ../gnomemusic/views/playlistview.py:58 ../gnomemusic/views/searchview.py:457 msgid "Playlists" msgstr "Liostaichean-cluich" #: ../gnomemusic/views/playlistview.py:420 #, python-format msgid "%d Song" msgid_plural "%d Songs" msgstr[0] "%d òran" msgstr[1] "%d òran" msgstr[2] "%d òrain" msgstr[3] "%d òran" #: ../gnomemusic/views/searchview.py:456 ../gnomemusic/views/songsview.py:55 msgid "Songs" msgstr "Òrain" #: ../gnomemusic/widgets/albumwidget.py:194 #: ../gnomemusic/widgets/artistalbumswidget.py:228 #, python-format msgid "Selected %d item" msgid_plural "Selected %d items" msgstr[0] "Chaidh %d nì a thaghadh" msgstr[1] "Chaidh %d nì a thaghadh" msgstr[2] "Chaidh %d nithean a thaghadh" msgstr[3] "Chaidh %d nì a thaghadh" #: ../gnomemusic/widgets/albumwidget.py:291 #: ../gnomemusic/widgets/albumwidget.py:345 #, python-format msgid "%d min" msgstr "%d mion" #: ../gnomemusic/widgets/disclistboxwidget.py:189 msgid "Disc {}" msgstr "Diosg {}" #: ../gnomemusic/window.py:125 msgid "Loading" msgstr "’Ga luchdadh" #. Undo button #: ../gnomemusic/window.py:162 msgid "_Undo" msgstr "_Neo-dhèan" #: ../gnomemusic/window.py:314 msgid "Empty" msgstr "Falamh" #: ../gnomemusic/window.py:390 #| msgid "Playlist %s removed" msgid "Playlist {} removed" msgstr "Chaidh an liosta-chluich {} a thoirt air falbh" #: ../data/AboutDialog.ui.in.h:2 #| msgid "Copyright © 2013 GNOME Music Developers" msgid "Copyright © 2016 GNOME Music Developers" msgstr "Còir-lethbhreac © 2016 luchd-leasachaidh Ceòl GNOME" #: ../data/AboutDialog.ui.in.h:3 msgid "A music player and management application for GNOME." msgstr "Aplacaid cluich is stiùireadh ciùil airson GNOME." #: ../data/AboutDialog.ui.in.h:4 msgid "Visit GNOME Music website" msgstr "Tadhail air làrach-lìn Ceòl GNOME" #: ../data/AboutDialog.ui.in.h:5 #| msgid "" #| "GNOME Music 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.\n" #| "\n" #| "GNOME Music 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.\n" #| "\n" #| "You should have received a copy of the GNU General Public License along " #| "with GNOME Music; if not, write to the Free Software Foundation, Inc., 51 " #| "Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #| "\n" #| "The GNOME Music authors hereby grant permission for non-GPL compatible " #| "GStreamer plugins to be used and distributed together with GStreamer and " #| "GNOME Music. This permission is above and beyond the permissions granted " #| "by the GPL license by which GNOME Music is covered. If you modify this " #| "code, you may extend this exception to your version of the code, but you " #| "are not obligated to do so. If you do not wish to do so, delete this " #| "exception statement from your version.\n" #| "\n" #| "\"Magic of the vinyl\" by Sami Pyylampi image is licensed by CC-BY-SA 2.0 " #| "https://www.flickr.com/photos/_spy_/12270839403\n" msgid "" "GNOME Music 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.\n" "\n" "GNOME Music 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.\n" "\n" "You should have received a copy of the GNU General Public License along with " "GNOME Music; if not, write to the Free Software Foundation, Inc., 51 " "Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" "\n" "The GNOME Music authors hereby grant permission for non-GPL compatible " "GStreamer plugins to be used and distributed together with GStreamer and " "GNOME Music. This permission is above and beyond the permissions granted by " "the GPL license by which GNOME Music is covered. If you modify this code, " "you may extend this exception to your version of the code, but you are not " "obligated to do so. If you do not wish to do so, delete this exception " "statement from your version.\n" "\n" "“Magic of the vinyl” by Sami Pyylampi image is licensed by CC-BY-SA 2.0 " "https://www.flickr.com/photos/_spy_/12270839403\n" msgstr "" "’S e bathar-bog saor a th’ ann an Ceòl GNOME; faodaidh tu a sgaoileadh is/no " "atharrachadh fo cheadachas GNU General Public License mar a chaidh " "fhoillseachadh le Free Software Foundation; tionndadh 2 dhen cheadachas no " "(ma thogras tu) tionndadh sam bith nas àirde.\n" "\n" "Tha sinn a’ sgaoileadh Ceòl GNOME an dòchas gum bi e feumail ach GUN " "BHARANTAS SAM BITH; chan toir sinn eadhon barantas GUN GABH A REIC no gu " "bheil e FREAGARRACH AIRSON AMAIS SHÒNRAICHTE. Thoir sùil air GNU General " "Public License airson barrachd fiosrachaidh.\n" "\n" "Bu chòir do lethbhreac dhe GNU General Public License a bhith an cois Ceòl " "GNOME; mur eil, sgrìobh gun Free Software Foundation, Inc., 51 Franklin " "Street, Fifth Floor, Boston, MA 02110-1301, USA\n" "\n" "Le seo, tha ùghdaran Ceòl GNOME a’ toirt cead seachad gus na plugain " "GStreamer nach eil fo bhuaidh a’ GPL a chleachdadh ’s a sgaoileadh còmhla ri " "GStreamer agus Ceòl GNOME. Tha an cead seo thar nan ceadan a bheir " "ceadachas GPL seachad agus Ceòl GNOME fo a chòmhdachadh. Ma " "dh’atharraicheas tu an còd seo, faodaidh tu an eisgeachd seo a shìneadh air " "adhart dhan tionndadh agadsa dhen chòd ach cha leig thu leas. Mur eil thu " "airson seo a dèanamh, sguab às aithris na h-eisgeachd seo on tionndadh " "agadsa.\n" "\n" "Tha an dealbh “Magic of the vinyl” le Sami Pyylampi fo cheadachas CC-BY-SA " "2.0 https://www.flickr.com/photos/_spy_/12270839403\n" #: ../data/AlbumWidget.ui.h:1 msgid "Released" msgstr "Air a sgaoileadh" #: ../data/AlbumWidget.ui.h:2 msgid "Running Length" msgstr "Faide" #: ../data/app-menu.ui.h:1 msgid "_Keyboard Shortcuts" msgstr "Ath-ghoiridean a’ _mheur-chlàir" #: ../data/app-menu.ui.h:2 msgid "_Help" msgstr "Cob_hair" #: ../data/app-menu.ui.h:3 msgid "_About" msgstr "_Mu dhèidhinn" #: ../data/app-menu.ui.h:4 msgid "_Quit" msgstr "_Fàg an-seo" #: ../data/headerbar.ui.h:1 msgid "Select All" msgstr "Tagh na h-uile" #: ../data/headerbar.ui.h:2 msgid "Select None" msgstr "Dì-thagh na h-uile" #: ../data/headerbar.ui.h:4 msgid "Search" msgstr "Lorg" #: ../data/headerbar.ui.h:5 msgid "Select" msgstr "Tagh" #: ../data/headerbar.ui.h:6 ../data/PlaylistDialog.ui.h:6 #| msgid "Cancel" msgid "_Cancel" msgstr "S_guir dheth" #: ../data/headerbar.ui.h:7 msgid "Back" msgstr "Air ais" #: ../data/help-overlay.ui.h:1 msgctxt "shortcut window" msgid "General" msgstr "Coitcheann" #: ../data/help-overlay.ui.h:2 msgctxt "shortcut window" msgid "Close window" msgstr "Dùin an uinneag" #: ../data/help-overlay.ui.h:3 msgctxt "shortcut window" msgid "Search" msgstr "Lorg" #: ../data/help-overlay.ui.h:4 msgctxt "shortcut window" msgid "Help" msgstr "Cobhair" #: ../data/help-overlay.ui.h:5 msgctxt "shortcut window" msgid "Shortcuts" msgstr "Ath-ghoiridean" #: ../data/help-overlay.ui.h:6 msgctxt "shortcut window" msgid "Playback" msgstr "Cluich" #: ../data/help-overlay.ui.h:7 msgctxt "shortcut window" msgid "Play/Pause" msgstr "Cluich/Cuir ’na stad" #: ../data/help-overlay.ui.h:8 msgctxt "shortcut window" msgid "Next song" msgstr "An t-ath òran" #: ../data/help-overlay.ui.h:9 msgctxt "shortcut window" msgid "Previous song" msgstr "An òran roimhe" #: ../data/help-overlay.ui.h:10 msgctxt "shortcut window" msgid "Toggle repeat" msgstr "Toglaich an t-ath-chluiche" #: ../data/help-overlay.ui.h:11 msgctxt "shortcut window" msgid "Toggle shuffle" msgstr "Toglaich a’ chluich air thuaiream" #: ../data/help-overlay.ui.h:12 msgctxt "shortcut window" msgid "Navigation" msgstr "Seòladaireachd" #: ../data/help-overlay.ui.h:13 msgctxt "shortcut window" msgid "Go to Albums" msgstr "Rach dha na h-albaman" #: ../data/help-overlay.ui.h:14 msgctxt "shortcut window" msgid "Go to Artists" msgstr "Rach dhan luchd-ciùil" #: ../data/help-overlay.ui.h:15 msgctxt "shortcut window" msgid "Go to Songs" msgstr "Rach dha na h-òrain" #: ../data/help-overlay.ui.h:16 msgctxt "shortcut window" msgid "Go to Playlists" msgstr "Rach dha na liostaichean-cluich" #: ../data/help-overlay.ui.h:17 msgctxt "shortcut window" msgid "Go back" msgstr "Air ais" #: ../data/NoMusic.ui.h:1 msgid "No music found" msgstr "Cha deach ceòl a lorg" #. Translators: %s will be replaced with a link with text #: ../data/NoMusic.ui.h:4 #, no-c-format msgid "The contents of your %s will appear here." msgstr "Nochdaidh an t-susbaint a tha ann am %s agad an-seo." #: ../data/PlayerToolbar.ui.h:1 msgid "Shuffle" msgstr "Air thuaiream" #: ../data/PlayerToolbar.ui.h:2 msgid "Repeat All" msgstr "Ath-chluich na h-uile" #: ../data/PlayerToolbar.ui.h:3 msgid "Repeat Song" msgstr "Ath-chluich an t-òran" #. Causes tracks to play in random order #: ../data/PlayerToolbar.ui.h:5 msgid "Shuffle/Repeat Off" msgstr "Air thuaiream/ath-chluich dheth" #: ../data/PlaylistControls.ui.h:1 msgid "_Play" msgstr "_Cluich" #: ../data/PlaylistControls.ui.h:2 msgid "_Delete" msgstr "_Sguab às" #: ../data/PlaylistControls.ui.h:3 msgid "Playlist Name" msgstr "Dealbh na liosta-cluich" #: ../data/PlaylistDialog.ui.h:1 msgid "Enter a name for your first playlist" msgstr "Cuir a-steach ainm airson a’ chiad liosta-cluich agad" #: ../data/PlaylistDialog.ui.h:2 msgid "C_reate" msgstr "C_ruthaich" #: ../data/PlaylistDialog.ui.h:3 msgid "New Playlist" msgstr "Liosta-chluich ùr" #: ../data/PlaylistDialog.ui.h:4 msgid "Add" msgstr "Cuir ris" #: ../data/PlaylistDialog.ui.h:5 msgid "Select Playlist" msgstr "Tagh liosta-chluich" #: ../data/PlaylistDialog.ui.h:7 msgid "_Add" msgstr "_Cuir ris" #: ../data/SelectionToolbar.ui.h:1 #| msgid "Add to Playlist" msgid "_Add to Playlist" msgstr "_Cuir ris an liosta-chluich" #: ../data/SelectionToolbar.ui.h:2 #| msgid "Remove from Playlist" msgid "_Remove from Playlist" msgstr "Thoi_r air falbh on liosta-chluich" #~ msgid "Max chars to display in track name on Artist view" #~ msgstr "" #~ "An uiread as motha dhe charactaran a thèid a shealltainn ann an ainm " #~ "traca ann an sealladh an luchd-ciùil" #~ msgid "" #~ "This setting modifies the amount of chars for track title on Artist view " #~ "before its been ellipsized. Set this to -1 to disable" #~ msgstr "" #~ "Atharraichidh an roghainn seo an uiread dhe charactaran airson tiotal " #~ "traca ann an sealladh an luchd-ciùil mus dèid trì-phuing a shealltainn. " #~ "Cuir seo air -1 gus a chur à comas" #~ msgid "Unknown Album" #~ msgstr "Albam nach aithne dhuinn" #~ msgid "the a an" #~ msgstr "a' an am na the a" #~ msgid "All Artists" #~ msgstr "A h-uile luchd-ciùil" 070701000000EF000081A400000000000000000000000166968E4E00005752000000000000000000000000000000000000001A00000000gnome-music-46.1/po/gl.po# Galician translations for PACKAGE package. # Copyright (C) 2012 THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Fran Diéguez , 2012-2022. # Fran Dieguez , 2012-2022. # msgid "" msgstr "" "Project-Id-Version: gnome-music master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-music/issues\n" "POT-Creation-Date: 2024-02-11 20:43+0000\n" "PO-Revision-Date: 2024-02-15 00:56+0100\n" "Last-Translator: Fran Dieguez \n" "Language-Team: Galician \n" "Language: gl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Poedit 3.4.2\n" "X-Project-Style: gnome\n" "X-DL-Team: gl\n" "X-DL-Module: gnome-music\n" "X-DL-Branch: master\n" "X-DL-Domain: po\n" "X-DL-State: Translating\n" #: data/org.gnome.Music.appdata.xml.in.in:6 #: data/org.gnome.Music.desktop.in.in:3 data/ui/StatusNavigationPage.ui:4 #: gnomemusic/about.py:138 gnomemusic/application.py:59 gnomemusic/window.py:65 msgid "Music" msgstr "Música" #: data/org.gnome.Music.appdata.xml.in.in:7 #: data/org.gnome.Music.desktop.in.in:5 msgid "Play and organize your music collection" msgstr "Reproduce e organiza a súa colección de música" #: data/org.gnome.Music.appdata.xml.in.in:9 msgid "An easy and pleasant way to play your music." msgstr "Unha forma doada e pracenteira de reproducir a súa música." #: data/org.gnome.Music.appdata.xml.in.in:12 msgid "" "Find tracks in your local collection, use automatically generated playlists " "or curate a fresh one." msgstr "" "Atope pistas na súa colección local, use as listas de reprodución xeradas " "automaticamente ou cree unha nova." #. developer_name tag deprecated with Appstream 1.0 #: data/org.gnome.Music.appdata.xml.in.in:188 msgid "The GNOME Music developers" msgstr "Os desenvolvedores de GNOME Music" #: data/org.gnome.Music.desktop.in.in:4 msgid "Music Player" msgstr "Reprodutor de música" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Music.desktop.in.in:13 msgid "Music;Player;" msgstr "Música;Reprodutor;" #: data/org.gnome.Music.gschema.xml:12 msgid "Window size" msgstr "Tamaño da xanela" #: data/org.gnome.Music.gschema.xml:13 msgid "Window size (width and height)." msgstr "Tamaño da xanela (ancho e alto)." #: data/org.gnome.Music.gschema.xml:17 msgid "Window maximized" msgstr "Xanela maximizada" #: data/org.gnome.Music.gschema.xml:18 msgid "Window maximized state." msgstr "Estado da xanela maximizada." #: data/org.gnome.Music.gschema.xml:22 msgid "Playback repeat mode" msgstr "Modo de repetición da reprodución" #. Translators: Don't translate allowed values, just the description in the brackets #: data/org.gnome.Music.gschema.xml:24 msgid "" "Value identifies whether to repeat or randomize playback through the " "collection. Allowed values are: “none” (repeat and shuffle are off), " "“song” (repeat current song), “all” (repeat playlist, no shuffle), " "“shuffle” (shuffle playlist, presumes repeat all)." msgstr "" "O valor identifica se se debe repetir ou facer aleatoria a reprodución na " "colección. Os valores permitidos son: «none» (a repetición e aleatoreidade " "están desactivadas), «song» (repite a canción actual), «all» (repite a lista " "de reprodución, non de forma aleatoria), «shuffle» (reproduce " "aleatoriamente, presume repetir todo)." #: data/org.gnome.Music.gschema.xml:28 data/ui/PreferencesDialog.ui:27 msgid "Enable ReplayGain" msgstr "Activar ReplayGain" #: data/org.gnome.Music.gschema.xml:29 msgid "Enables or disables ReplayGain for albums" msgstr "Activa ou desactiva ReplayGain para os álbums" #: data/org.gnome.Music.gschema.xml:33 msgid "Inhibit system suspend" msgstr "Inhibit a suspensión do sistema" #: data/org.gnome.Music.gschema.xml:34 msgid "Enables or disables inhibiting system suspend while playing music" msgstr "" "Activa ou desactiva a inhibición da suspensión do sistema ao reproducir " "música" #: data/ui/AlbumsSearchNavigationPage.ui:5 data/ui/SearchView.ui:98 #: gnomemusic/views/albumsview.py:52 msgid "Albums" msgstr "Álbums" #: data/ui/AlbumWidget.ui:84 data/ui/PlayerToolbar.ui:87 #: data/ui/PlaylistControls.ui:101 gnomemusic/widgets/playertoolbar.py:176 msgid "Play" msgstr "Reproducir" #: data/ui/AlbumWidget.ui:130 data/ui/PlaylistControls.ui:5 #: data/ui/SongWidgetMenu.ui:11 msgid "_Play" msgstr "_Reproducir" #: data/ui/AlbumWidget.ui:134 msgid "Add to _Favorite Songs" msgstr "Engadir ás cancións _favoritas" #: data/ui/AlbumWidget.ui:138 data/ui/SongWidgetMenu.ui:15 msgid "_Add to Playlist…" msgstr "_Engadir á lista de reprodución…" #: data/ui/ArtistsSearchNavigationPage.ui:5 data/ui/SearchView.ui:41 #: gnomemusic/views/artistsview.py:51 msgid "Artists" msgstr "Artistas" #: data/ui/HeaderBar.ui:14 msgid "Menu" msgstr "Menú" #: data/ui/HeaderBar.ui:22 data/ui/SearchHeaderBar.ui:12 msgid "Search" msgstr "Buscar" #: data/ui/HeaderBar.ui:31 data/ui/PreferencesDialog.ui:4 msgid "Preferences" msgstr "Preferencias" #: data/ui/HeaderBar.ui:35 msgid "Keyboard Shortcuts" msgstr "Atallos de teclado" #: data/ui/HeaderBar.ui:39 msgid "Help" msgstr "Axuda" #: data/ui/HeaderBar.ui:43 msgid "About Music" msgstr "Sobre Música" #: data/ui/help-overlay.ui:11 msgctxt "shortcut window" msgid "General" msgstr "Xeral" #: data/ui/help-overlay.ui:14 msgctxt "shortcut window" msgid "Close window" msgstr "Pechar xanela" #: data/ui/help-overlay.ui:20 msgctxt "shortcut window" msgid "Search" msgstr "Buscar" #: data/ui/help-overlay.ui:26 msgctxt "shortcut window" msgid "Help" msgstr "Axuda" #: data/ui/help-overlay.ui:32 msgctxt "shortcut window" msgid "Shortcuts" msgstr "Atallos" #: data/ui/help-overlay.ui:40 msgctxt "shortcut window" msgid "Playback" msgstr "Reproducir" #: data/ui/help-overlay.ui:43 msgctxt "shortcut window" msgid "Play/Pause" msgstr "Reproducir/Pausar" #: data/ui/help-overlay.ui:49 msgctxt "shortcut window" msgid "Next song" msgstr "Seguinte canción" #: data/ui/help-overlay.ui:55 msgctxt "shortcut window" msgid "Previous song" msgstr "Anterior canción" #: data/ui/help-overlay.ui:61 msgctxt "shortcut window" msgid "Toggle repeat" msgstr "Trocar repetición" #: data/ui/help-overlay.ui:67 msgctxt "shortcut window" msgid "Toggle shuffle" msgstr "Trocar aleatorio" #: data/ui/help-overlay.ui:75 msgctxt "shortcut window" msgid "Navigation" msgstr "Navegación" #: data/ui/help-overlay.ui:78 msgctxt "shortcut window" msgid "Go to Albums" msgstr "Ir aos álbums" #: data/ui/help-overlay.ui:84 msgctxt "shortcut window" msgid "Go to Artists" msgstr "Ir aos artistas" #: data/ui/help-overlay.ui:90 msgctxt "shortcut window" msgid "Go to Songs" msgstr "Ir ás cancións" #: data/ui/help-overlay.ui:96 msgctxt "shortcut window" msgid "Go to Playlists" msgstr "Ir ás listas de reprodución" #: data/ui/help-overlay.ui:102 msgctxt "shortcut window" msgid "Go back" msgstr "Ir atrás" #: data/ui/PlayerToolbar.ui:74 msgid "Previous" msgstr "Anterior" #: data/ui/PlayerToolbar.ui:106 msgid "Next" msgstr "Seguinte" #: data/ui/PlaylistControls.ui:9 msgid "_Delete" msgstr "_Retirar" #: data/ui/PlaylistControls.ui:13 msgid "_Rename…" msgstr "_Renomear…" #: data/ui/PlaylistControls.ui:28 msgid "Playlist Name" msgstr "Nome da lista de reprodución" #: data/ui/PlaylistControls.ui:62 msgid "_Done" msgstr "_Feito" #: data/ui/PlaylistDialog.ui:16 msgid "Add to Playlist" msgstr "Engadir á lista de reprodución" #: data/ui/PlaylistDialog.ui:27 msgid "_Cancel" msgstr "_Cancelar" #: data/ui/PlaylistDialog.ui:36 msgid "_Add" msgstr "_Engadir" #: data/ui/PlaylistDialog.ui:91 msgid "Enter a name for your first playlist" msgstr "Escriba o nome para a súa primeira lista de reprodución" #: data/ui/PlaylistDialog.ui:116 msgid "C_reate" msgstr "Cr_ear" #: data/ui/PlaylistDialog.ui:177 msgid "New Playlist…" msgstr "Nova lista de reprodución…" #: data/ui/PlaylistDialog.ui:189 msgid "Add" msgstr "Engadir" #: data/ui/PreferencesDialog.ui:9 msgid "Player Settings" msgstr "Preferencias do reprodutor" #: data/ui/PreferencesDialog.ui:12 msgid "Repeat Mode" msgstr "Modo de reprodución" #: data/ui/PreferencesDialog.ui:16 msgid "None" msgstr "Ningún" #: data/ui/PreferencesDialog.ui:17 msgid "Song" msgstr "Canción" #: data/ui/PreferencesDialog.ui:18 msgid "All" msgstr "Todos" #: data/ui/PreferencesDialog.ui:19 gnomemusic/player.py:51 msgid "Shuffle" msgstr "Aleatorio" #: data/ui/PreferencesDialog.ui:28 msgid "Balance loudness between songs if ReplayGain metadata is found" msgstr "" "Balancea o volume entre as cancións se se atopan os metadatos ReplayGain" #: data/ui/PreferencesDialog.ui:35 msgid "Power Settings" msgstr "Preferencias de enerxía" #: data/ui/PreferencesDialog.ui:38 msgid "Inhibit Suspend" msgstr "Inhibir a suspensión" #: data/ui/PreferencesDialog.ui:39 msgid "Only while playing" msgstr "Só mentres se reproduce" #: data/ui/SearchView.ui:55 data/ui/SearchView.ui:112 msgid "View All" msgstr "Ver todo" #: data/ui/SearchView.ui:154 msgid "Songs" msgstr "Cancións" #: data/ui/SongWidgetMenu.ui:19 msgid "_Remove from Playlist" msgstr "_Quitar da lista de reprodución" #: data/ui/StatusNavigationPage.ui:36 msgid "Welcome to Music" msgstr "Benvida a Música" #: gnomemusic/about.py:140 msgid "The GNOME Project" msgstr "O Proxecto GNOME" #. Translators should localize the following string which #. will be displayed at the bottom of the about box to give #. credit to the translator(s). #: gnomemusic/about.py:146 msgid "translator-credits" msgstr "Fran Diéguez , 2022-2024" #: gnomemusic/about.py:150 msgid "© The GNOME Music Developers" msgstr "© Os desenvolvedores de GNOME Música" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:839 msgid "Most Played" msgstr "Máis reproducidos" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:893 msgid "Never Played" msgstr "Nunca reproducidos" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:946 msgid "Recently Played" msgstr "Reproducidos recentemente" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1025 msgid "Recently Added" msgstr "Engadidos recentemente" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1088 msgid "Favorite Songs" msgstr "Cancións favoritas" #. TRANSLATORS: this is a playlist name indicating that the #. files are not tagged enough to be displayed in the albums #. or artists views. #: gnomemusic/grilowrappers/grltrackerplaylists.py:1142 msgid "Insufficiently Tagged" msgstr "Non suficientemente etiquetado" #: gnomemusic/gstplayer.py:418 msgid "Unable to play the file" msgstr "Non foi posíbel reproducir o ficheiro" #: gnomemusic/gstplayer.py:424 msgid "_Find in {}" msgstr "_Buscar en {}" #. TRANSLATORS: separator for two codecs #: gnomemusic/gstplayer.py:434 msgid " and " msgstr " e " #. TRANSLATORS: separator for a list of codecs #: gnomemusic/gstplayer.py:437 msgid ", " msgstr ", " #: gnomemusic/gstplayer.py:439 msgid "{} is required to play the file, but is not installed." msgid_plural "{} are required to play the file, but are not installed." msgstr[0] "{} requírese para reproducir o ficheiro, pero non está instalado." msgstr[1] "" "{} requírense para reproducir o ficheiro, pero non están instalados." #: gnomemusic/inhibitsuspend.py:69 msgid "Playing music" msgstr "Reproducindo música" #. Translators: "shuffle" causes tracks to play in random order. #: gnomemusic/player.py:48 msgid "Shuffle/Repeat Off" msgstr "Desactivar Aleatorio/Repetir" #: gnomemusic/player.py:49 msgid "Repeat Song" msgstr "Repetir canción" #: gnomemusic/player.py:50 msgid "Repeat All" msgstr "Repetir todo" #: gnomemusic/playlisttoast.py:55 msgid "Playlist {} removed" msgstr "Eliminouse a lista de reprodución {}" #: gnomemusic/playlisttoast.py:56 gnomemusic/songtoast.py:65 msgid "Undo" msgstr "Desfacer" #: gnomemusic/songtoast.py:64 msgid "{} removed from {}" msgstr "{} eliminado de {}" #: gnomemusic/utils.py:89 msgid "Unknown album" msgstr "Álbum descoñecido" #: gnomemusic/utils.py:110 msgid "Unknown Artist" msgstr "Artista descoñecido" #: gnomemusic/views/playlistsview.py:45 msgid "Playlists" msgstr "Listas de reprodución" #: gnomemusic/views/searchview.py:220 msgid "No Search Started" msgstr "Non se iniciou unha busca" #: gnomemusic/views/searchview.py:222 msgid "Use the searchbar to start searching for albums, artists or songs" msgstr "" "Usar a barra de busca para comezar a busca dos álbums, artistas e cancións" #: gnomemusic/views/searchview.py:226 msgid "No Results Found" msgstr "Non se atoparon resultados" #: gnomemusic/views/searchview.py:228 msgid "Try a different search" msgstr "Probe unha busca diferente" #: gnomemusic/widgets/albumwidget.py:230 msgid "{} minute" msgid_plural "{} minutes" msgstr[0] "{}, {} minuto" msgstr[1] "{} minutos" #: gnomemusic/widgets/discbox.py:74 msgid "Disc {}" msgstr "Disco {}" #: gnomemusic/widgets/playertoolbar.py:173 msgid "Pause" msgstr "Pausar" #: gnomemusic/widgets/playlistcontrols.py:130 msgid "{} Song" msgid_plural "{} Songs" msgstr[0] "{} canción" msgstr[1] "{} cancións" #: gnomemusic/widgets/searchheaderbar.py:50 msgid "Search songs, artists and albums" msgstr "Buscar cancións, artistas e álbums" #. noqa: F841 #: gnomemusic/widgets/songwidgetmenu.py:94 msgid "_Open Location" msgstr "_Abrir localización" #. TRANSLATORS: These are verbs, to (un)mark something as a #. favorite. #: gnomemusic/widgets/startoggle.py:36 msgid "Unstar" msgstr "Desmarcar" #: gnomemusic/widgets/startoggle.py:36 msgid "Star" msgstr "Marcar" #: gnomemusic/widgets/statusnavigationpage.py:51 msgid "Your XDG Music directory is not set." msgstr "O seu cartafol «Música» de XDG non está estabelecido." #: gnomemusic/widgets/statusnavigationpage.py:58 msgid "Music Folder" msgstr "Cartafol de música" #. TRANSLATORS: This is a label to display a link to open user's music #. folder. {} will be replaced with the translated text 'Music folder' #: gnomemusic/widgets/statusnavigationpage.py:66 msgid "The contents of your {} will appear here." msgstr "Os contidos de {} aparecerán aquí." #: gnomemusic/widgets/statusnavigationpage.py:116 msgid "No Music Found" msgstr "Non se atopou música" #: gnomemusic/widgets/statusnavigationpage.py:117 msgid "Try a Different Search" msgstr "Probe unha busca diferente" #: gnomemusic/widgets/statusnavigationpage.py:121 msgid "GNOME Music could not connect to Tracker." msgstr "Música de GNOME non puido conectarse a Tracker." #: gnomemusic/widgets/statusnavigationpage.py:123 msgid "Your music files cannot be indexed without Tracker running." msgstr "" "Os seus ficheiros de música non poden indexarse sen ter Tracker executándose." #: gnomemusic/widgets/statusnavigationpage.py:129 msgid "Your system Tracker version seems outdated." msgstr "A versión de Tracker do seu sistema semella desfasada." #: gnomemusic/widgets/statusnavigationpage.py:131 msgid "Music needs Tracker version 3.0.0 or higher." msgstr "Música precisa Tracker versión 3.0.0 ou superior." #~ msgid "Select" #~ msgstr "Seleccionar" #~ msgid "Select All" #~ msgstr "Seleccionar todo" #~ msgid "Select None" #~ msgstr "Deseleccionar todo" #~ msgid "Click on items to select them" #~ msgstr "Prema nos elementos para seleccionalos" #~ msgid "_Add to Playlist" #~ msgstr "_Engadir á lista de reprodución" #~ msgid "Copyright The GNOME Music Developers" #~ msgstr "Copyright Os desenvolvedores de GNOME Music" #~ msgid "Translated by" #~ msgstr "Traducido por" #~ msgid "Selected {} song" #~ msgid_plural "Selected {} songs" #~ msgstr[0] "Canción {} seleccionadas" #~ msgstr[1] "Cancións {} seleccionadas" #~ msgid "Report music history to Last.fm" #~ msgstr "Informar do historial de música a Last.fm" #~ msgid "" #~ "Enables or disables sending scrobbles and the “currently playing” info to " #~ "Last.fm." #~ msgstr "" #~ "Activar ou desactivar o envío de «scrobbles» e o «reproducindo " #~ "actualmente» a Last.fm." #~ msgid "Last.fm Account" #~ msgstr "Conta de Last.fm" #~ msgid "Report Music Listening" #~ msgstr "Información da música que se escoita" #~ msgid "_Help" #~ msgstr "_Axuda" #~ msgid "Back" #~ msgstr "Atrás" #~ msgid "" #~ "Last.fm is a music discovery service that gives you personalised " #~ "recommendations based on the music you listen to." #~ msgstr "" #~ "Last.fm é un servizo de descubrimento de música que fornece " #~ "recomendacións personalizadas baseadas na música que escoita." #~ msgid "Music Reporting Not Setup" #~ msgstr "Informe de música non configurado" #~ msgid "Login to your Last.fm account to report your music listening." #~ msgstr "" #~ "Iniciar sesión na súa conta de Last.fm para informar da música que " #~ "escoita." #~ msgid "Login" #~ msgstr "Iniciar sesión" #~ msgid "Artists Results" #~ msgstr "Resultados de artistas" #~ msgid "Albums Results" #~ msgstr "Resultados de álbums" #~ msgid "Your music listening is reported to Last.fm." #~ msgstr "Estase informando a Last.fm da música que escoita." #~ msgid "Your music listening is not reported to Last.fm." #~ msgstr "Non se está informando a Last.fm da música que escoita." #~ msgid "Logged in as {}" #~ msgstr "Sesión iniciada como {}" #~ msgid "Configure" #~ msgstr "Configurar" #~ msgid "A music player and management application for GNOME." #~ msgstr "Unha aplicación de reprodución e xestión de música para GNOME." #~ msgid "Visit GNOME Music website" #~ msgstr "Visite o sitio web de GNOME Music" #~ msgid "" #~ "GNOME Music 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.\n" #~ "\n" #~ "GNOME Music 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.\n" #~ "\n" #~ "You should have received a copy of the GNU General Public License along " #~ "with GNOME Music; if not, write to the Free Software Foundation, Inc., 51 " #~ "Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ "\n" #~ "The GNOME Music authors hereby grant permission for non-GPL compatible " #~ "GStreamer plugins to be used and distributed together with GStreamer and " #~ "GNOME Music. This permission is above and beyond the permissions granted " #~ "by the GPL license by which GNOME Music is covered. If you modify this " #~ "code, you may extend this exception to your version of the code, but you " #~ "are not obligated to do so. If you do not wish to do so, delete this " #~ "exception statement from your version." #~ msgstr "" #~ "Música de GNOME é software libre; pode redistribuílo e/ou modificalo " #~ "baixo os termos da Licenza Pública Xeral de GNU como se foi publicada " #~ "pola Free Software Foundation; tanto na versión 2 da licenza, ou (baixo a " #~ "súa elección) unha versión posterior.\n" #~ "\n" #~ "Música de GNOME distribúese coa esperanza de que lle sexa útil, pero SEN " #~ "NINGUNHA GARANTÍA; incluso a garantía implicada de MERCANTIBILIDADE ou " #~ "AXEITAMENTE PARA UN PROPÓSITO PARTICULAR. Vexa a Licenza Pública Xeral " #~ "para obter máis detalles.\n" #~ "\n" #~ "Debería ter recibido unha copia da Licenza Pública Xeral de GNU xunto a " #~ "Música de GNOME; se non, escriba á Free Software Foundation, Inc., 51 " #~ "Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ "\n" #~ "Os autores de Música de GNOME concédenlle permiso para que os " #~ "complementos de GStreamer non compatíbeis con GPL sexan utilizados e " #~ "distribuídos xunto con GStreamer e Música de GNOME. Este permiso está por " #~ "enriba do permiso outorgado pola Licenza GPL pola que está cuberto Música " #~ "de GNOME. Se modifica este código, pode estender esta excepción á súa " #~ "versión do código, pero non está obrigado a facelo. Se non o desexa, " #~ "elimine esta declaración de excepción da súa versión.\n" #~ "A imaxe de “Magic of the vinyl” por Sami Pyylampi ten licenza CC-BY-SA " #~ "2.0 https://www.flickr.com/photos/_spy_/12270839403" #~| msgid "The contents of your {} will appear here." #~ msgid "The contents of your Music Folder will appear here" #~ msgstr "Os contidos do seu cartafol de Música aparecerán aquí" #~ msgid "GNOME Music" #~ msgstr "Música de GNOME" #~ msgid "Window position" #~ msgstr "Posición da xanela" #~ msgid "Window position (x and y)." #~ msgstr "Posición da xanela (x e y)." #~ msgid "Loading" #~ msgstr "Cargando" #~ msgid "Add to Playlist…" #~ msgstr "Engadir á lista de reprodución…" #~ msgid "" #~ "An easy way to play your music. Automatically discover music on your " #~ "computer, the local network and internet services." #~ msgstr "" #~ "Unha forma doada de reproducir a súa música. Descobre música " #~ "automaticamente no seu computador, rede local e servizos de internet." #~ msgid "" #~ "Find tracks in your local collection, get music from DLNA servers or try " #~ "something new with the Jamendo and Magnatune services." #~ msgstr "" #~ "Atope pistas na súa colección local, obteña música desde servidores DLNA " #~ "ou tente algo novo cos servizos Jamendo e Magnatune." #~ msgid "Inital state has been displayed" #~ msgstr "Mostrouse o estado inicial" #~ msgid "Set to true when initial state has been displayed" #~ msgstr "Estabelecese a verdadeiro cando o valor inicial se mostrou" #~ msgid "Released" #~ msgstr "Publicada" #~ msgid "Running Length" #~ msgstr "Lonxitude da execución" #~ msgid "Composer" #~ msgstr "Compositor" #~ msgctxt "context menu item" #~ msgid "Play" #~ msgstr "Reproducir" #~ msgid "Hey DJ" #~ msgstr "Ola DJ" 070701000000F0000081A400000000000000000000000166968E4E00006532000000000000000000000000000000000000001A00000000gnome-music-46.1/po/he.po# Hebrew translations for PACKAGE package. # Copyright (C) 2013 THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # Yaron Shahrabani , 2013. # Yosef Or Boczko , 2013-2024. # msgid "" msgstr "" "Project-Id-Version: GNOME Music\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-music/issues\n" "POT-Creation-Date: 2024-02-11 20:43+0000\n" "PO-Revision-Date: 2024-02-16 23:24+0200\n" "Last-Translator: Yaron Shahrabani \n" "Language-Team: Hebrew\n" "Language: he\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=(n==1 ? 0 : n==2 ? 1 : n>10 && n%10==0 ? 2 : " "3);\n" "X-Poedit-SourceCharset: UTF-8\n" "X-Generator: Poedit 3.4.1\n" #: data/org.gnome.Music.appdata.xml.in.in:6 data/org.gnome.Music.desktop.in.in:3 #: data/ui/StatusNavigationPage.ui:4 gnomemusic/about.py:138 #: gnomemusic/application.py:59 gnomemusic/window.py:65 msgid "Music" msgstr "מוזיקה" #: data/org.gnome.Music.appdata.xml.in.in:7 data/org.gnome.Music.desktop.in.in:5 msgid "Play and organize your music collection" msgstr "לנגן ולארגן את אוסף המוזיקה שלך" #: data/org.gnome.Music.appdata.xml.in.in:9 msgid "An easy and pleasant way to play your music." msgstr "דרך קלה ונעימה לנגן את המוזיקה שלך." #: data/org.gnome.Music.appdata.xml.in.in:12 msgid "" "Find tracks in your local collection, use automatically generated playlists " "or curate a fresh one." msgstr "" "איתור רצועות באוסף המקומי שלך, נעשה שימוש ברשימות נגינה שנוצרות אוטומטית או " "שאפשר להכין אחת חדשה." #. developer_name tag deprecated with Appstream 1.0 #: data/org.gnome.Music.appdata.xml.in.in:188 msgid "The GNOME Music developers" msgstr "מפתח GNOME Music" #: data/org.gnome.Music.desktop.in.in:4 msgid "Music Player" msgstr "נגן מוזיקה" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Music.desktop.in.in:13 msgid "Music;Player;" msgstr "מוזיקה;מוסיקה;נגן;" #: data/org.gnome.Music.gschema.xml:12 msgid "Window size" msgstr "גודל החלון" #: data/org.gnome.Music.gschema.xml:13 msgid "Window size (width and height)." msgstr "גודל החלון (רוחב וגובה)." #: data/org.gnome.Music.gschema.xml:17 msgid "Window maximized" msgstr "החלון מוגדל" #: data/org.gnome.Music.gschema.xml:18 msgid "Window maximized state." msgstr "החלון במצב מוגדל למילוי המסך." #: data/org.gnome.Music.gschema.xml:22 msgid "Playback repeat mode" msgstr "מצב חזרה על נגינה" #. Translators: Don't translate allowed values, just the description in the brackets #: data/org.gnome.Music.gschema.xml:24 msgid "" "Value identifies whether to repeat or randomize playback through the " "collection. Allowed values are: “none” (repeat and shuffle are off), " "“song” (repeat current song), “all” (repeat playlist, no shuffle), " "“shuffle” (shuffle playlist, presumes repeat all)." msgstr "" "Value identifies whether to repeat or randomize playback through the " "collection. Allowed values are: “none” (repeat and shuffle are off), " "“song” (repeat current song), “all” (repeat playlist, no shuffle), " "“shuffle” (shuffle playlist, presumes repeat all)." #: data/org.gnome.Music.gschema.xml:28 data/ui/PreferencesDialog.ui:27 msgid "Enable ReplayGain" msgstr "Enable ReplayGain" #: data/org.gnome.Music.gschema.xml:29 msgid "Enables or disables ReplayGain for albums" msgstr "Enables or disables ReplayGain for albums" #: data/org.gnome.Music.gschema.xml:33 msgid "Inhibit system suspend" msgstr "Inhibit system suspend" #: data/org.gnome.Music.gschema.xml:34 msgid "Enables or disables inhibiting system suspend while playing music" msgstr "Enables or disables inhibiting system suspend while playing music" #: data/ui/AlbumsSearchNavigationPage.ui:5 data/ui/SearchView.ui:98 #: gnomemusic/views/albumsview.py:52 msgid "Albums" msgstr "אלבומים" #: data/ui/AlbumWidget.ui:84 data/ui/PlayerToolbar.ui:87 #: data/ui/PlaylistControls.ui:101 gnomemusic/widgets/playertoolbar.py:176 msgid "Play" msgstr "ניגון" #: data/ui/AlbumWidget.ui:130 data/ui/PlaylistControls.ui:5 #: data/ui/SongWidgetMenu.ui:11 msgid "_Play" msgstr "_ניגון" #: data/ui/AlbumWidget.ui:134 msgid "Add to _Favorite Songs" msgstr "הוספה לשירים מו_עדפים" #: data/ui/AlbumWidget.ui:138 data/ui/SongWidgetMenu.ui:15 msgid "_Add to Playlist…" msgstr "הוספה לרשימת _נגינה…" #: data/ui/ArtistsSearchNavigationPage.ui:5 data/ui/SearchView.ui:41 #: gnomemusic/views/artistsview.py:51 msgid "Artists" msgstr "אומנים" #: data/ui/HeaderBar.ui:14 msgid "Menu" msgstr "תפריט" #: data/ui/HeaderBar.ui:22 data/ui/SearchHeaderBar.ui:12 msgid "Search" msgstr "חיפוש" #: data/ui/HeaderBar.ui:31 data/ui/PreferencesDialog.ui:4 msgid "Preferences" msgstr "העדפות" #: data/ui/HeaderBar.ui:35 msgid "Keyboard Shortcuts" msgstr "צירופי מקשים" # msgctxt "shortcut window" #: data/ui/HeaderBar.ui:39 msgid "Help" msgstr "עזרה" #: data/ui/HeaderBar.ui:43 msgid "About Music" msgstr "על אודות מוזיקה" #: data/ui/help-overlay.ui:11 msgctxt "shortcut window" msgid "General" msgstr "כללי" #: data/ui/help-overlay.ui:14 msgctxt "shortcut window" msgid "Close window" msgstr "סגירת חלון" #: data/ui/help-overlay.ui:20 msgctxt "shortcut window" msgid "Search" msgstr "חיפוש" #: data/ui/help-overlay.ui:26 msgctxt "shortcut window" msgid "Help" msgstr "עזרה" #: data/ui/help-overlay.ui:32 msgctxt "shortcut window" msgid "Shortcuts" msgstr "צירופי מקשים" #: data/ui/help-overlay.ui:40 msgctxt "shortcut window" msgid "Playback" msgstr "ניגון" #: data/ui/help-overlay.ui:43 msgctxt "shortcut window" msgid "Play/Pause" msgstr "ניגון/השהיה" #: data/ui/help-overlay.ui:49 msgctxt "shortcut window" msgid "Next song" msgstr "שיר הבא" #: data/ui/help-overlay.ui:55 msgctxt "shortcut window" msgid "Previous song" msgstr "שיר קודם" #: data/ui/help-overlay.ui:61 msgctxt "shortcut window" msgid "Toggle repeat" msgstr "חזרה על שיר" #: data/ui/help-overlay.ui:67 msgctxt "shortcut window" msgid "Toggle shuffle" msgstr "ערבוב שירים" #: data/ui/help-overlay.ui:75 msgctxt "shortcut window" msgid "Navigation" msgstr "ניווט" #: data/ui/help-overlay.ui:78 msgctxt "shortcut window" msgid "Go to Albums" msgstr "מעבר לאלבומים" #: data/ui/help-overlay.ui:84 msgctxt "shortcut window" msgid "Go to Artists" msgstr "מעבר לאמנים" #: data/ui/help-overlay.ui:90 msgctxt "shortcut window" msgid "Go to Songs" msgstr "מעבר לשירים" #: data/ui/help-overlay.ui:96 msgctxt "shortcut window" msgid "Go to Playlists" msgstr "מעבר לרשימות נגינה" #: data/ui/help-overlay.ui:102 msgctxt "shortcut window" msgid "Go back" msgstr "חזרה" #: data/ui/PlayerToolbar.ui:74 msgid "Previous" msgstr "הקודם" #: data/ui/PlayerToolbar.ui:106 msgid "Next" msgstr "הבא" #: data/ui/PlaylistControls.ui:9 msgid "_Delete" msgstr "מ_חיקה" #: data/ui/PlaylistControls.ui:13 msgid "_Rename…" msgstr "_שינוי שם…" #: data/ui/PlaylistControls.ui:28 msgid "Playlist Name" msgstr "שם רשימת נגינה" #: data/ui/PlaylistControls.ui:62 msgid "_Done" msgstr "_סיום" #: data/ui/PlaylistDialog.ui:16 msgid "Add to Playlist" msgstr "הוספה לרשימת נגינה" #: data/ui/PlaylistDialog.ui:27 msgid "_Cancel" msgstr "_ביטול" #: data/ui/PlaylistDialog.ui:36 msgid "_Add" msgstr "הו_ספה" #: data/ui/PlaylistDialog.ui:91 msgid "Enter a name for your first playlist" msgstr "נא לתת שם לרשימת הנגינה הראשונה שלך" #: data/ui/PlaylistDialog.ui:116 msgid "C_reate" msgstr "י_צירה" #: data/ui/PlaylistDialog.ui:177 msgid "New Playlist…" msgstr "רשימת נגינה חדשה…" #: data/ui/PlaylistDialog.ui:189 msgid "Add" msgstr "הוספה" #: data/ui/PreferencesDialog.ui:9 msgid "Player Settings" msgstr "הגדרות נגן" #: data/ui/PreferencesDialog.ui:12 msgid "Repeat Mode" msgstr "מצב חזרה" #: data/ui/PreferencesDialog.ui:16 msgid "None" msgstr "אין" #: data/ui/PreferencesDialog.ui:17 msgid "Song" msgstr "שיר" #: data/ui/PreferencesDialog.ui:18 msgid "All" msgstr "הכול" #: data/ui/PreferencesDialog.ui:19 gnomemusic/player.py:51 msgid "Shuffle" msgstr "ערבוב" #: data/ui/PreferencesDialog.ui:28 msgid "Balance loudness between songs if ReplayGain metadata is found" msgstr "איזון עוצמת השמע בין שירים אם לא נמצאו נתוני על של ReplayGain" #: data/ui/PreferencesDialog.ui:35 msgid "Power Settings" msgstr "הגדרות צריכת חשמל" #: data/ui/PreferencesDialog.ui:38 msgid "Inhibit Suspend" msgstr "מניעת השהיה" #: data/ui/PreferencesDialog.ui:39 msgid "Only while playing" msgstr "רק תוך כדי ניגון" #: data/ui/SearchView.ui:55 data/ui/SearchView.ui:112 msgid "View All" msgstr "להציג הכול" #: data/ui/SearchView.ui:154 msgid "Songs" msgstr "שירים" #: data/ui/SongWidgetMenu.ui:19 msgid "_Remove from Playlist" msgstr "ה_סרה מרשימת נגינה" #: data/ui/StatusNavigationPage.ui:36 msgid "Welcome to Music" msgstr "ברוך בואך למוזיקה" #: gnomemusic/about.py:140 msgid "The GNOME Project" msgstr "מיזם GNOME" #. Translators should localize the following string which #. will be displayed at the bottom of the about box to give #. credit to the translator(s). #: gnomemusic/about.py:146 msgid "translator-credits" msgstr "יוסף אור בוצ׳קו " #: gnomemusic/about.py:150 msgid "© The GNOME Music Developers" msgstr "© מפתחי GNOME Music" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:839 msgid "Most Played" msgstr "הושמע ביותר" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:893 msgid "Never Played" msgstr "לעולם לא הושמע" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:946 msgid "Recently Played" msgstr "הושמע לאחרונה" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1025 msgid "Recently Added" msgstr "נוסף לאחרונה" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1088 msgid "Favorite Songs" msgstr "שירים מועדפים" #. TRANSLATORS: this is a playlist name indicating that the #. files are not tagged enough to be displayed in the albums #. or artists views. #: gnomemusic/grilowrappers/grltrackerplaylists.py:1142 msgid "Insufficiently Tagged" msgstr "אין תיוג מספק" #: gnomemusic/gstplayer.py:418 msgid "Unable to play the file" msgstr "לא ניתן לנגן את הקובץ" #: gnomemusic/gstplayer.py:424 msgid "_Find in {}" msgstr "ל_מצוא בתוך {}" #. TRANSLATORS: separator for two codecs #: gnomemusic/gstplayer.py:434 msgid " and " msgstr " וגם " #. TRANSLATORS: separator for a list of codecs #: gnomemusic/gstplayer.py:437 msgid ", " msgstr ", " #: gnomemusic/gstplayer.py:439 msgid "{} is required to play the file, but is not installed." msgid_plural "{} are required to play the file, but are not installed." msgstr[0] "{} נדרש לניגון הקובץ, אך אינו מותקן." msgstr[1] "{} נדרשים לניגון הקובץ, אך אינם מותקנים." msgstr[2] "{} נדרשים לניגון הקובץ, אך אינם מותקנים." msgstr[3] "{} נדרשים לניגון הקובץ, אך אינם מותקנים." #: gnomemusic/inhibitsuspend.py:69 msgid "Playing music" msgstr "מנגן מוזיקה" #. Translators: "shuffle" causes tracks to play in random order. #: gnomemusic/player.py:48 msgid "Shuffle/Repeat Off" msgstr "ערבוב/חזרה כבוי" #: gnomemusic/player.py:49 msgid "Repeat Song" msgstr "חזרה על שיר" #: gnomemusic/player.py:50 msgid "Repeat All" msgstr "חזרה על הכול" #: gnomemusic/playlisttoast.py:55 msgid "Playlist {} removed" msgstr "רשימת הנגינה {} הוסרה" #: gnomemusic/playlisttoast.py:56 gnomemusic/songtoast.py:65 msgid "Undo" msgstr "ביטול" #: gnomemusic/songtoast.py:64 msgid "{} removed from {}" msgstr "‏{} הוסר מתוך {}" #: gnomemusic/utils.py:89 msgid "Unknown album" msgstr "אלבום לא ידוע" #: gnomemusic/utils.py:110 msgid "Unknown Artist" msgstr "אמן לא ידוע" #: gnomemusic/views/playlistsview.py:45 msgid "Playlists" msgstr "רשימות נגינה" #: gnomemusic/views/searchview.py:220 msgid "No Search Started" msgstr "לא החל חיפוש" #: gnomemusic/views/searchview.py:222 msgid "Use the searchbar to start searching for albums, artists or songs" msgstr "יש להשתמש בשורת החיפוש על מנת לחפש אלבומים, אומנים או שירים" #: gnomemusic/views/searchview.py:226 msgid "No Results Found" msgstr "לא נמצאו תוצאות" #: gnomemusic/views/searchview.py:228 msgid "Try a different search" msgstr "יש לנסות חיפוש שונה" #: gnomemusic/widgets/albumwidget.py:230 msgid "{} minute" msgid_plural "{} minutes" msgstr[0] "דקה" msgstr[1] "‫{} דקות" msgstr[2] "‫{} דקות" msgstr[3] "{} דקות" #: gnomemusic/widgets/discbox.py:74 msgid "Disc {}" msgstr "דיסק {}" #: gnomemusic/widgets/playertoolbar.py:173 msgid "Pause" msgstr "השהיה" #: gnomemusic/widgets/playlistcontrols.py:130 msgid "{} Song" msgid_plural "{} Songs" msgstr[0] "שיר" msgstr[1] "שני שירים" msgstr[2] "{} שירים" msgstr[3] "{} שירים" #: gnomemusic/widgets/searchheaderbar.py:50 msgid "Search songs, artists and albums" msgstr "חיפוש שירים, אומנים, אלבומים ורשימות נגינה" #. noqa: F841 #: gnomemusic/widgets/songwidgetmenu.py:94 msgid "_Open Location" msgstr "_פתיחת מקום" #. TRANSLATORS: These are verbs, to (un)mark something as a #. favorite. #: gnomemusic/widgets/startoggle.py:36 msgid "Unstar" msgstr "ביטול כוכב" #: gnomemusic/widgets/startoggle.py:36 msgid "Star" msgstr "סימון בכוכב" #: gnomemusic/widgets/statusnavigationpage.py:51 msgid "Your XDG Music directory is not set." msgstr "תיקיית המוזיקה ב־XDG שלך אינה מוגדרת." #: gnomemusic/widgets/statusnavigationpage.py:58 msgid "Music Folder" msgstr "תיקיית מוזיקה" #. TRANSLATORS: This is a label to display a link to open user's music #. folder. {} will be replaced with the translated text 'Music folder' #: gnomemusic/widgets/statusnavigationpage.py:66 msgid "The contents of your {} will appear here." msgstr "התוכן של {} שלך יופיע כאן." #: gnomemusic/widgets/statusnavigationpage.py:116 msgid "No Music Found" msgstr "לא נמצאה מוזיקה" #: gnomemusic/widgets/statusnavigationpage.py:117 msgid "Try a Different Search" msgstr "נא לנסות חיפוש שונה" #: gnomemusic/widgets/statusnavigationpage.py:121 msgid "GNOME Music could not connect to Tracker." msgstr "אין באפשרות GNOME Music התתחבר ל־Tracker." #: gnomemusic/widgets/statusnavigationpage.py:123 msgid "Your music files cannot be indexed without Tracker running." msgstr "לא ניתן לסדר את קובצי המוזיקה שלך באינדקס ללא הפעלת Tracker." #: gnomemusic/widgets/statusnavigationpage.py:129 msgid "Your system Tracker version seems outdated." msgstr "נראה כי גרסת ה־Tracker שבמערכת שלך אינה עדכנית." #: gnomemusic/widgets/statusnavigationpage.py:131 msgid "Music needs Tracker version 3.0.0 or higher." msgstr "יישום המוזיקה דורש Tracker בגרסה 3.0.0 ומעלה." #~ msgid "Select" #~ msgstr "בחירה" #~ msgid "Select All" #~ msgstr "בחירת הכול" #~ msgid "Select None" #~ msgstr "ביטול הבחירה" #~ msgid "Click on items to select them" #~ msgstr "יש ללחוץ על פריטים כדי לבחור אותם" #~ msgid "_Add to Playlist" #~ msgstr "_הוספה לרשימת נגינה" #~ msgid "Copyright The GNOME Music Developers" #~ msgstr "כל הזכויות שמורות למפתחי GNOME Music" #~ msgid "Translated by" #~ msgstr "תורגם על ידי" #~ msgid "Selected {} song" #~ msgid_plural "Selected {} songs" #~ msgstr[0] "שיר נבחר" #~ msgstr[1] "שני שירים נבחרו" #~ msgstr[2] "{} שירים נבחרו" #~ msgstr[3] "{} שירים נבחרו" #~ msgid "Report music history to Last.fm" #~ msgstr "דיווח על היסטוריית המוזיקה ל־Last.fm" #~ msgid "" #~ "Enables or disables sending scrobbles and the “currently playing” info to " #~ "Last.fm." #~ msgstr "" #~ "Enables or disables sending scrobbles and the “currently playing” info to " #~ "Last.fm." #~ msgid "Last.fm Account" #~ msgstr "חשבון Last.fm" #~ msgid "Report Music Listening" #~ msgstr "דיווח על האזנה למוזיקה" #~ msgid "_Help" #~ msgstr "ע_זרה" #~ msgid "Back" #~ msgstr "חזרה" #~ msgid "" #~ "Last.fm is a music discovery service that gives you personalised " #~ "recommendations based on the music you listen to." #~ msgstr "" #~ "‏Last.fm הוא שרת גילוי מוזיקה שמספק לך המלצות אישיות שמבוססות על המוזיקה לה " #~ "בחרת להאזין." #~ msgid "Music Reporting Not Setup" #~ msgstr "לא מוגדר דיווח מוזיקה" #~ msgid "Login to your Last.fm account to report your music listening." #~ msgstr "יש להיכנס לחשבון Last.fm שלך על מנת לדווח על המוזיקה שמושמעת." #~ msgid "Login" #~ msgstr "כניסה" #~ msgid "Artists Results" #~ msgstr "תוצאות אומנים" #~ msgid "Albums Results" #~ msgstr "תוצאות אלבומים" #~ msgid "Your music listening is reported to Last.fm." #~ msgstr "ההאזנה שלך למוזיקה מדווחת ל־Last.fm." #~ msgid "Your music listening is not reported to Last.fm." #~ msgstr "ההאזנה שלך למוזיקה אינה מדווחת ל־Last.fm." #~ msgid "Logged in as {}" #~ msgstr "נכנסת בשם {}" #~ msgid "Configure" #~ msgstr "הגדרה" #~ msgid "A music player and management application for GNOME." #~ msgstr "נגן ויישום לניהול מוזיקה עבור GNOME." #~ msgid "Visit GNOME Music website" #~ msgstr "ביקור באתר GNOME מוזיקה" #~ msgid "" #~ "GNOME Music 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.\n" #~ "\n" #~ "GNOME Music 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.\n" #~ "\n" #~ "You should have received a copy of the GNU General Public License along " #~ "with GNOME Music; if not, write to the Free Software Foundation, Inc., 51 " #~ "Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ "\n" #~ "The GNOME Music authors hereby grant permission for non-GPL compatible " #~ "GStreamer plugins to be used and distributed together with GStreamer and " #~ "GNOME Music. This permission is above and beyond the permissions granted " #~ "by the GPL license by which GNOME Music is covered. If you modify this " #~ "code, you may extend this exception to your version of the code, but you " #~ "are not obligated to do so. If you do not wish to do so, delete this " #~ "exception statement from your version." #~ msgstr "" #~ "‏GNOME Music היא תכנה חופשית; ניתן להפיצה מחדש ו/או לשנות אותה לפי תנאי " #~ "הרישיון הציבורי הכללי של GNU כפי שפורסם על ידי קרן התכנה החופשית; בין אם " #~ "גרסה 2 של הרישיון ובין אם (לבחירתך) כל גרסה מאוחרת יותר.\n" #~ "‬\n" #~ "‏‫\n" #~ "‬\n" #~ "‫תכנית זו מופצת בתקווה שתביא תועלת אך ללא אחריות כלשהי; אפילו לא האחריות " #~ "המשתמעת בדבר מסחריותה או התאמתה למטרה מסוימת. לפרטים נוספים ניתן לעיין " #~ "ברישיון הציבורי הכללי של GNU.\n" #~ "‬\n" #~ "‏‫\n" #~ "‬\n" #~ "‫עם GNOME Music אמור היה להיות מצורף עותק של הרישיון הציבורי הכללי של GNU; " #~ "במידה שלא, ניתן לכתוב ל־Free Software Foundation, Inc., 51 Franklin " #~ "Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ "‬\n" #~ "‏‫\n" #~ "‬\n" #~ "‫היוצרים של GNOME Music מצהירים בזאת כי הם מעניקים הרשאה להפצה של תוספי " #~ "GStreamer שאינם מעוגנים תחת ה־GPL יחד עם GStreamer ו־GNOME Music. הרשאה זו " #~ "תקפה על פני ההרשאה הניתנת על־ידי רישיון ה־GPL תחתיו מוגנת התכנית GNOME " #~ "Music. כל שינוי בקוד זה עשוי לאלץ אותך להרחיב את החריגה לקוד בגרסה שהכנת, " #~ "אך אין כל התחייבות לעשות זאת. אם אין לך עניין לעשות דבר שכזה, יש למחוק את " #~ "הצהרת החריגה הזאת מהגרסה שלך." #~| msgid "The contents of your {} will appear here." #~ msgid "The contents of your Music Folder will appear here" #~ msgstr "התוכן של תיקיית המוזיקה שלך שלך יופיע כאן" #~ msgid "GNOME Music" #~ msgstr "‏GNOME מוזיקה" #~ msgid "Window position" #~ msgstr "מיקום החלון" #~ msgid "Window position (x and y)." #~ msgstr "מיקום החלון (x ו־y)." #~ msgid "Loading" #~ msgstr "בטעינה" #~ msgid "Add to Playlist…" #~ msgstr "הוספה לרשימת נגינה…" #~ msgid "" #~ "An easy way to play your music. Automatically discover music on your " #~ "computer, the local network and internet services." #~ msgstr "" #~ "דרך קלה לנגן את המוזיקה שלךץ מזהה באופן אוטומטי מוזיקה במחשב שלך, ברשת " #~ "המקומית ובשרתי אינטרנט." #~ msgid "" #~ "Find tracks in your local collection, get music from DLNA servers or try " #~ "something new with the Jamendo and Magnatune services." #~ msgstr "" #~ "למצוא רצועות באוספים המקומיים שלך, לקבל מוזיקה משרתי DLNA או לנסות משהו " #~ "חדש עם שרתי Jamendo ו־Magnatune." #~ msgid "Inital state has been displayed" #~ msgstr "Inital state has been displayed" #~ msgid "Set to true when initial state has been displayed" #~ msgstr "Set to true when initial state has been displayed" #~ msgid "Released" #~ msgstr "הוצאה לאור" #~ msgid "Running Length" #~ msgstr "משך ההשמעה" #~ msgid "Composer" #~ msgstr "מלחין" #~ msgctxt "context menu item" #~ msgid "Play" #~ msgstr "ניגון" #~ msgid "Hey DJ" #~ msgstr "שלום תקליטן" #~ msgid "Search mode" #~ msgstr "Search mode" #~ msgid "If true, the search bar is shown." #~ msgstr "If true, the search bar is shown." #~ msgid "Notifications mode" #~ msgstr "Notifications mode" #~ msgid "Enables or disables playback notifications" #~ msgstr "Enables or disables playback notifications" #~ msgid "Max chars to display in track name on Artist view" #~ msgstr "Max chars to display in track name on Artist view" #~ msgid "" #~ "This setting modifies the amount of chars for track title on Artist view " #~ "before its been ellipsized. Set this to -1 to disable" #~ msgstr "" #~ "This setting modifies the amount of chars for track title on Artist view " #~ "before its been ellipsized. Set this to -1 to disable" #~ msgid "Music is the new GNOME music playing application." #~ msgstr "מוזיקה הוא נגן מוזיקה חדש עבור GNOME" #~ msgid "Untitled" #~ msgstr "ללא כותרת" #~ msgid "the a an" #~ msgstr "ה" #~ msgid "Artist" #~ msgstr "אמן" #~ msgid "Album" #~ msgstr "אלבום" #~ msgid "Track Title" #~ msgstr "כותרת רצועה" #~ msgid "Local" #~ msgstr "מקומי" #~ msgid "Sources" #~ msgstr "מקורות" #~ msgid "Match" #~ msgstr "התאמה" #~ msgid "%d min" #~ msgstr "%d דקות" #~ msgid "All Artists" #~ msgstr "כל האמנים" #~ msgid "Empty" #~ msgstr "ריק" #~ msgid "_Quit" #~ msgstr "י_ציאה" #~ msgid "Not playing" #~ msgstr "לא מתנגן" #~ msgid "by %s, from %s" #~ msgstr "של %s, מתוך %s" #~ msgid "Select Playlist" #~ msgstr "בחירת רשימת השמעה" #~ msgid "the" #~ msgstr "ה" #~ msgid "_New Playlist" #~ msgstr "_רשימת השמעה חדשה" #~ msgid "" #~ "No Music found!\n" #~ " Put some files into the folder %s" #~ msgstr "" #~ "לא נמצאה מוזיקה!\n" #~ " שים כמה קבצים בתיקייה %s" #~ msgid "Load More" #~ msgstr "טעינת עוד" #~ msgid "Now _Playing" #~ msgstr "מת_נגן כעת" #~ msgid "----" #~ msgstr "----" #~ msgid "--:--" #~ msgstr "--:--" #, fuzzy #~ msgid "0:00" #~ msgstr "00:00" #~ msgid "/" #~ msgstr "/" #~ msgid "If true, do randomized playback through the collection" #~ msgstr "If true, do randomized playback through the collection" 070701000000F1000081A400000000000000000000000166968E4E0000494C000000000000000000000000000000000000001A00000000gnome-music-46.1/po/hi.po# Hindi translation for gnome-music. # Copyright (C) 2024 gnome-music's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-music package. # Scrambled777 , 2024. # msgid "" msgstr "" "Project-Id-Version: gnome-music master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-music/issues\n" "POT-Creation-Date: 2024-04-14 10:12+0000\n" "PO-Revision-Date: 2024-04-17 12:34+0530\n" "Last-Translator: Scrambled777 \n" "Language-Team: Hindi\n" "Language: hi\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "X-Generator: Gtranslator 46.0\n" #: data/org.gnome.Music.appdata.xml.in.in:6 #: data/org.gnome.Music.desktop.in.in:3 data/ui/StatusNavigationPage.ui:4 #: gnomemusic/about.py:138 gnomemusic/application.py:59 gnomemusic/window.py:65 msgid "Music" msgstr "संगीत" #: data/org.gnome.Music.appdata.xml.in.in:7 #: data/org.gnome.Music.desktop.in.in:5 msgid "Play and organize your music collection" msgstr "अपना संगीत संग्रह चलायें और व्यवस्थित करें" #: data/org.gnome.Music.appdata.xml.in.in:9 msgid "An easy and pleasant way to play your music." msgstr "अपना संगीत बजाने का एक आसान और सुखद तरीका।" #: data/org.gnome.Music.appdata.xml.in.in:12 msgid "" "Find tracks in your local collection, use automatically generated playlists " "or curate a fresh one." msgstr "" "अपने स्थानीय संग्रह में गानें ढूंढें, स्वचालित रूप से जेनरेट की गई प्लेलिस्ट का उपयोग करें या एक " "ताज़ा प्लेलिस्ट तैयार करें।" #. developer_name tag deprecated with Appstream 1.0 #: data/org.gnome.Music.appdata.xml.in.in:214 msgid "The GNOME Music developers" msgstr "GNOME संगीत विकासकर्ता" #: data/org.gnome.Music.desktop.in.in:4 msgid "Music Player" msgstr "संगीत वादक" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Music.desktop.in.in:13 msgid "Music;Player;" msgstr "संगीत;वादक;" #: data/org.gnome.Music.gschema.xml:12 msgid "Window size" msgstr "विंडो का आकार" #: data/org.gnome.Music.gschema.xml:13 msgid "Window size (width and height)." msgstr "विंडो का आकार (चौड़ाई और ऊंचाई)।" #: data/org.gnome.Music.gschema.xml:17 msgid "Window maximized" msgstr "विंडो अधिकतमीकृत" #: data/org.gnome.Music.gschema.xml:18 msgid "Window maximized state." msgstr "विंडो अधिकतमीकरण अवस्था" #: data/org.gnome.Music.gschema.xml:22 msgid "Playback repeat mode" msgstr "प्लेबैक दोहराव मोड" #. Translators: Don't translate allowed values, just the description in the brackets #: data/org.gnome.Music.gschema.xml:24 msgid "" "Value identifies whether to repeat or randomize playback through the " "collection. Allowed values are: “none” (repeat and shuffle are off), " "“song” (repeat current song), “all” (repeat playlist, no shuffle), " "“shuffle” (shuffle playlist, presumes repeat all)." msgstr "" "मान पहचानता है कि संग्रह के माध्यम से प्लेबैक को दोहराना है या यादृच्छिक बनाना है। अनुमत " "मान हैं: \"कोई नहीं\" (दोहराना और शफ़ल बंद है), \"गीत\" (वर्तमान गीत दोहराएं), " "\"सभी\" (प्लेलिस्ट दोहराएं, कोई फेरबदल नहीं), \"शफ़ल\" (प्लेलिस्ट फेरबदल करें, मान लें कि " "सभी दोहराएं)।" #: data/org.gnome.Music.gschema.xml:28 data/ui/PreferencesDialog.ui:27 msgid "Enable ReplayGain" msgstr "रीप्लेगेन सक्षम करें" #: data/org.gnome.Music.gschema.xml:29 msgid "Enables or disables ReplayGain for albums" msgstr "एल्बम के लिए रीप्लेगैन को सक्षम या अक्षम करता है" #: data/org.gnome.Music.gschema.xml:33 msgid "Inhibit system suspend" msgstr "सिस्टम निलंबन रोकें" #: data/org.gnome.Music.gschema.xml:34 msgid "Enables or disables inhibiting system suspend while playing music" msgstr "संगीत बजाने के दौरान सिस्टम निलंबन को सक्षम या अक्षम करता है" #: data/ui/AlbumsSearchNavigationPage.ui:5 data/ui/SearchView.ui:98 #: gnomemusic/views/albumsview.py:52 msgid "Albums" msgstr "एलबम" #: data/ui/AlbumWidget.ui:84 data/ui/PlayerToolbar.ui:87 #: data/ui/PlaylistControls.ui:101 gnomemusic/widgets/playertoolbar.py:176 msgid "Play" msgstr "चलाएं" #: data/ui/AlbumWidget.ui:130 data/ui/PlaylistControls.ui:5 #: data/ui/SongWidgetMenu.ui:11 msgid "_Play" msgstr "चलाएं (_P)" #: data/ui/AlbumWidget.ui:134 msgid "Add to _Favorite Songs" msgstr "पसंदीदा गानों में जोड़ें (_F)" #: data/ui/AlbumWidget.ui:138 data/ui/SongWidgetMenu.ui:15 msgid "_Add to Playlist…" msgstr "प्लेलिस्ट में जोड़ें (_A)…" #: data/ui/ArtistsSearchNavigationPage.ui:5 data/ui/SearchView.ui:41 #: gnomemusic/views/artistsview.py:51 msgid "Artists" msgstr "कलाकार" #: data/ui/HeaderBar.ui:14 msgid "Menu" msgstr "मेनू" #: data/ui/HeaderBar.ui:22 data/ui/SearchHeaderBar.ui:12 msgid "Search" msgstr "खोजें" #: data/ui/HeaderBar.ui:31 data/ui/PreferencesDialog.ui:4 msgid "Preferences" msgstr "प्राथमिकताएं" #: data/ui/HeaderBar.ui:35 msgid "Keyboard Shortcuts" msgstr "कीबोर्ड शॉर्टकट" #: data/ui/HeaderBar.ui:39 msgid "Help" msgstr "सहायता" #: data/ui/HeaderBar.ui:43 msgid "About Music" msgstr "संगीत के बारे में" #: data/ui/help-overlay.ui:11 msgctxt "shortcut window" msgid "General" msgstr "सामान्य" #: data/ui/help-overlay.ui:14 msgctxt "shortcut window" msgid "Close window" msgstr "विंडो बंद करें" #: data/ui/help-overlay.ui:20 msgctxt "shortcut window" msgid "Search" msgstr "खोजें" #: data/ui/help-overlay.ui:26 msgctxt "shortcut window" msgid "Help" msgstr "सहायता" #: data/ui/help-overlay.ui:32 msgctxt "shortcut window" msgid "Shortcuts" msgstr "शॉर्टकट" #: data/ui/help-overlay.ui:40 msgctxt "shortcut window" msgid "Playback" msgstr "प्लेबैक" #: data/ui/help-overlay.ui:43 msgctxt "shortcut window" msgid "Play/Pause" msgstr "चलाएं/रोकें" #: data/ui/help-overlay.ui:49 msgctxt "shortcut window" msgid "Next song" msgstr "अगला गाना" #: data/ui/help-overlay.ui:55 msgctxt "shortcut window" msgid "Previous song" msgstr "पिछला गाना" #: data/ui/help-overlay.ui:61 msgctxt "shortcut window" msgid "Toggle repeat" msgstr "दोहराना टॉगल करें" #: data/ui/help-overlay.ui:67 msgctxt "shortcut window" msgid "Toggle shuffle" msgstr "शफ़ल टॉगल करें" #: data/ui/help-overlay.ui:75 msgctxt "shortcut window" msgid "Navigation" msgstr "नेविगेशन" #: data/ui/help-overlay.ui:78 msgctxt "shortcut window" msgid "Go to Albums" msgstr "एल्बम पर जाएं" #: data/ui/help-overlay.ui:84 msgctxt "shortcut window" msgid "Go to Artists" msgstr "कलाकारों पर जाएं" #: data/ui/help-overlay.ui:90 msgctxt "shortcut window" msgid "Go to Songs" msgstr "गानों पर जाएं" #: data/ui/help-overlay.ui:96 msgctxt "shortcut window" msgid "Go to Playlists" msgstr "प्लेलिस्ट पर जाएं" #: data/ui/help-overlay.ui:102 msgctxt "shortcut window" msgid "Go back" msgstr "पीछे जाएं" #: data/ui/PlayerToolbar.ui:74 msgid "Previous" msgstr "पिछला" #: data/ui/PlayerToolbar.ui:106 msgid "Next" msgstr "अगला" #: data/ui/PlaylistControls.ui:9 msgid "_Delete" msgstr "मिटाएं (_D)" #: data/ui/PlaylistControls.ui:13 msgid "_Rename…" msgstr "पुनर्नामित करें (_R)…" #: data/ui/PlaylistControls.ui:28 msgid "Playlist Name" msgstr "प्लेलिस्ट का नाम" #: data/ui/PlaylistControls.ui:62 msgid "_Done" msgstr "संपन्न (_D)" #: data/ui/PlaylistDialog.ui:16 msgid "Add to Playlist" msgstr "प्लेलिस्ट में जोड़ें" #: data/ui/PlaylistDialog.ui:27 msgid "_Cancel" msgstr "रद्द (_C)" #: data/ui/PlaylistDialog.ui:36 msgid "_Add" msgstr " जोड़ें (_A)" #: data/ui/PlaylistDialog.ui:91 msgid "Enter a name for your first playlist" msgstr "अपनी पहली प्लेलिस्ट के लिए नाम दर्ज करें" #: data/ui/PlaylistDialog.ui:116 msgid "C_reate" msgstr "बनाएं (_r)" #: data/ui/PlaylistDialog.ui:177 msgid "New Playlist…" msgstr "नई प्लेलिस्ट…" #: data/ui/PlaylistDialog.ui:189 msgid "Add" msgstr "जोड़ें" #: data/ui/PreferencesDialog.ui:9 msgid "Player Settings" msgstr "वादक सेटिंग्स" #: data/ui/PreferencesDialog.ui:12 msgid "Repeat Mode" msgstr "दोहराएं मोड" #: data/ui/PreferencesDialog.ui:16 msgid "None" msgstr "कोई नहीं" #: data/ui/PreferencesDialog.ui:17 msgid "Song" msgstr "गाना" #: data/ui/PreferencesDialog.ui:18 msgid "All" msgstr "सभी" #: data/ui/PreferencesDialog.ui:19 gnomemusic/player.py:51 msgid "Shuffle" msgstr "शफ़ल" #: data/ui/PreferencesDialog.ui:28 msgid "Balance loudness between songs if ReplayGain metadata is found" msgstr "यदि रिप्लेगेन मेटाडेटा मिलता है तो गानों के बीच ध्वनि की मात्रा को संतुलित करें" #: data/ui/PreferencesDialog.ui:35 msgid "Power Settings" msgstr "पावर सेटिंग्स" #: data/ui/PreferencesDialog.ui:38 msgid "Inhibit Suspend" msgstr "निलंबन रोकें" #: data/ui/PreferencesDialog.ui:39 msgid "Only while playing" msgstr "केवल बजाते समय" #: data/ui/SearchView.ui:55 data/ui/SearchView.ui:112 msgid "View All" msgstr "सब देखें" #: data/ui/SearchView.ui:154 msgid "Songs" msgstr "गाने" #: data/ui/SongWidgetMenu.ui:19 msgid "_Remove from Playlist" msgstr "प्लेलिस्ट से हटाएं (_R)" #: data/ui/StatusNavigationPage.ui:36 msgid "Welcome to Music" msgstr "संगीत में आपका स्वागत है" #: gnomemusic/about.py:140 msgid "The GNOME Project" msgstr "GNOME परियोजना" #. Translators should localize the following string which #. will be displayed at the bottom of the about box to give #. credit to the translator(s). #: gnomemusic/about.py:146 msgid "translator-credits" msgstr "Scrambled777 " #: gnomemusic/about.py:150 msgid "© The GNOME Music Developers" msgstr "© GNOME संगीत विकासकर्ता" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:839 msgid "Most Played" msgstr "सर्वाधिक बजाया गया" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:893 msgid "Never Played" msgstr "कभी बजाया नहीं गया" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:946 msgid "Recently Played" msgstr "हालिया बजाया गया" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1025 msgid "Recently Added" msgstr "हालिया जोड़ा गया" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1088 msgid "Favorite Songs" msgstr "पसंदीदा गाने" #. TRANSLATORS: this is a playlist name indicating that the #. files are not tagged enough to be displayed in the albums #. or artists views. #: gnomemusic/grilowrappers/grltrackerplaylists.py:1142 msgid "Insufficiently Tagged" msgstr "अपर्याप्त रूप से टैग किए गए" #: gnomemusic/gstplayer.py:418 msgid "Unable to play the file" msgstr "फाइल बजाने में असमर्थ" #: gnomemusic/gstplayer.py:424 msgid "_Find in {}" msgstr "{} में खोजें (_F)" #. TRANSLATORS: separator for two codecs #: gnomemusic/gstplayer.py:434 msgid " and " msgstr " और " #. TRANSLATORS: separator for a list of codecs #: gnomemusic/gstplayer.py:437 msgid ", " msgstr ", " #: gnomemusic/gstplayer.py:439 msgid "{} is required to play the file, but is not installed." msgid_plural "{} are required to play the file, but are not installed." msgstr[0] "फाइल को चलाने के लिए {} आवश्यक है, लेकिन स्थापित नहीं है।" msgstr[1] "फाइल को चलाने के लिए {} आवश्यक है, लेकिन वे स्थापित नहीं है।" #: gnomemusic/inhibitsuspend.py:69 msgid "Playing music" msgstr "बज रहा संगीत" #. Translators: "shuffle" causes tracks to play in random order. #: gnomemusic/player.py:48 msgid "Shuffle/Repeat Off" msgstr "शफ़ल/दोहराएं बंद करें" #: gnomemusic/player.py:49 msgid "Repeat Song" msgstr "गाना दोहराएं" #: gnomemusic/player.py:50 msgid "Repeat All" msgstr "सभी दोहराएं" #: gnomemusic/playlisttoast.py:55 msgid "Playlist {} removed" msgstr "प्लेलिस्ट {} हटा दी गई" #: gnomemusic/playlisttoast.py:56 gnomemusic/songtoast.py:65 msgid "Undo" msgstr "पूर्ववत करें" #: gnomemusic/songtoast.py:64 msgid "{} removed from {}" msgstr "{} को {} से हटाया गया" #: gnomemusic/utils.py:89 msgid "Unknown album" msgstr "अज्ञात एल्बम" #: gnomemusic/utils.py:110 msgid "Unknown Artist" msgstr "अज्ञात कलाकार" #: gnomemusic/views/playlistsview.py:45 msgid "Playlists" msgstr "प्लेलिस्ट" #: gnomemusic/views/searchview.py:220 msgid "No Search Started" msgstr "कोई खोज प्रारंभ नहीं हुई" #: gnomemusic/views/searchview.py:222 msgid "Use the searchbar to start searching for albums, artists or songs" msgstr "एल्बम, कलाकार या गाने खोजना शुरू करने के लिए खोजपट्टी का उपयोग करें" #: gnomemusic/views/searchview.py:226 msgid "No Results Found" msgstr "कोई परिणाम नहीं मिला" #: gnomemusic/views/searchview.py:228 msgid "Try a different search" msgstr "भिन्न खोज का प्रयास करें" #: gnomemusic/widgets/albumwidget.py:230 msgid "{} minute" msgid_plural "{} minutes" msgstr[0] "{} मिनट" msgstr[1] "{} मिनट" #: gnomemusic/widgets/discbox.py:74 msgid "Disc {}" msgstr "डिस्क {}" #: gnomemusic/widgets/playertoolbar.py:173 msgid "Pause" msgstr "विराम" #: gnomemusic/widgets/playlistcontrols.py:130 msgid "{} Song" msgid_plural "{} Songs" msgstr[0] "{} गाना" msgstr[1] "{} गाने" #: gnomemusic/widgets/searchheaderbar.py:50 msgid "Search songs, artists and albums" msgstr "गाने, कलाकार और एल्बम खोजें" #. noqa: F841 #: gnomemusic/widgets/songwidgetmenu.py:94 msgid "_Open Location" msgstr "स्थान खोलें (_O)" #. TRANSLATORS: These are verbs, to (un)mark something as a #. favorite. #: gnomemusic/widgets/startoggle.py:36 msgid "Unstar" msgstr "अतारांकित" #: gnomemusic/widgets/startoggle.py:36 msgid "Star" msgstr "तारांकित" #: gnomemusic/widgets/statusnavigationpage.py:51 msgid "Your XDG Music directory is not set." msgstr "आपकी XDG संगीत निर्देशिका निर्धारित नहीं है।" #: gnomemusic/widgets/statusnavigationpage.py:58 msgid "Music Folder" msgstr "संगीत फोल्डर" #. TRANSLATORS: This is a label to display a link to open user's music #. folder. {} will be replaced with the translated text 'Music folder' #: gnomemusic/widgets/statusnavigationpage.py:66 msgid "The contents of your {} will appear here." msgstr "आपके {} की सामग्री यहां दिखाई देगी।" #: gnomemusic/widgets/statusnavigationpage.py:116 msgid "No Music Found" msgstr "कोई संगीत नहीं मिला" #: gnomemusic/widgets/statusnavigationpage.py:117 msgid "Try a Different Search" msgstr "भिन्न खोज का प्रयास करें" #: gnomemusic/widgets/statusnavigationpage.py:121 msgid "GNOME Music could not connect to Tracker." msgstr "GNOME संगीत ट्रैकर से कनेक्ट नहीं हो सका।" #: gnomemusic/widgets/statusnavigationpage.py:123 msgid "Your music files cannot be indexed without Tracker running." msgstr "ट्रैकर चलाए बिना आपकी संगीत फाइलें अनुक्रमित नहीं की जा सकतीं।" #: gnomemusic/widgets/statusnavigationpage.py:129 msgid "Your system Tracker version seems outdated." msgstr "आपका सिस्टम ट्रैकर संस्करण पुराना लगता है।" #: gnomemusic/widgets/statusnavigationpage.py:131 msgid "Music needs Tracker version 3.0.0 or higher." msgstr "संगीत को ट्रैकर संस्करण 3.0.0 या उच्चतर की आवश्यकता है।" 070701000000F2000081A400000000000000000000000166968E4E000052B8000000000000000000000000000000000000001A00000000gnome-music-46.1/po/hr.po# Croatian translation for gnome-music. # Copyright (C) 2017 gnome-music's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-music package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: gnome-music master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-music/issues\n" "POT-Creation-Date: 2022-08-27 13:27+0000\n" "PO-Revision-Date: 2022-08-27 22:37+0200\n" "Last-Translator: gogo \n" "Language-Team: Croatian \n" "Language: hr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Generator: Poedit 3.1.1\n" #: data/org.gnome.Music.appdata.xml.in.in:6 #: data/org.gnome.Music.desktop.in.in:3 gnomemusic/about.py:236 #: gnomemusic/application.py:61 gnomemusic/window.py:71 msgid "Music" msgstr "Glazba" #: data/org.gnome.Music.appdata.xml.in.in:7 #: data/org.gnome.Music.desktop.in.in:5 msgid "Play and organize your music collection" msgstr "Slušajte i organizirajte svoju glazbenu kolekciju" #: data/org.gnome.Music.appdata.xml.in.in:9 msgid "An easy and pleasant way to play your music." msgstr "Jednostavan i ugodan način slušanja glazbe." #: data/org.gnome.Music.appdata.xml.in.in:12 msgid "" "Find tracks in your local collection, use automatically generated playlists " "or curate a fresh one." msgstr "" "Potražite pjesme u svojoj lokalnoj fonoteci, koristite automatski stvorene " "popise izvođenja ili stvorite nove." #: data/org.gnome.Music.appdata.xml.in.in:167 msgid "The GNOME Music developers" msgstr "GNOME Glazbeni razvijatelji" #: data/org.gnome.Music.desktop.in.in:4 msgid "Music Player" msgstr "Glazbeni svirač" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Music.desktop.in.in:13 msgid "Music;Player;" msgstr "Glazba;Svirač;" #: data/org.gnome.Music.gschema.xml:12 msgid "Window size" msgstr "Veličina prozora" #: data/org.gnome.Music.gschema.xml:13 msgid "Window size (width and height)." msgstr "Veličina prozora (širina i visina)." #: data/org.gnome.Music.gschema.xml:17 msgid "Window maximized" msgstr "Prozor uvećan" #: data/org.gnome.Music.gschema.xml:18 msgid "Window maximized state." msgstr "Stanje uvećanog prozora." #: data/org.gnome.Music.gschema.xml:22 msgid "Playback repeat mode" msgstr "Način ponavljanja reprodukcije" #. Translators: Don't translate allowed values, just the description in the brackets #: data/org.gnome.Music.gschema.xml:24 msgid "" "Value identifies whether to repeat or randomize playback through the " "collection. Allowed values are: “none” (repeat and shuffle are off), " "“song” (repeat current song), “all” (repeat playlist, no shuffle), " "“shuffle” (shuffle playlist, presumes repeat all)." msgstr "" "Vrijednost određuju treba li ponoviti ili naizmjenično reproducirati " "kolekciju. Dopuštene vrijednosti su: “none” (ponavljanje i naizmjenična " "reprodukcija su isključeni), “song” (ponovi trenutnu pjesmu), “all” (ponovi " "popis izvođenja, bez naizmjenične reprodukcije), “shuffle” (naizmjenična " "reprodukcija popisa izvođenja, pretpostavlja ponavljanje svega)." #: data/org.gnome.Music.gschema.xml:28 msgid "Enable ReplayGain" msgstr "Omogući normalizaciju zvuka" #: data/org.gnome.Music.gschema.xml:29 msgid "Enables or disables ReplayGain for albums" msgstr "Omogući ili onemogući normalizaciju zvuka za albume" #: data/org.gnome.Music.gschema.xml:33 msgid "Inhibit system suspend" msgstr "Opozovi suspendiranje sustava" #: data/org.gnome.Music.gschema.xml:34 msgid "Enables or disables inhibiting system suspend while playing music" msgstr "" "Omogućuje ili onemogućuje opoziv suspendiranja sustava pri slušanju glazbe" #: data/org.gnome.Music.gschema.xml:38 msgid "Report music history to Last.fm" msgstr "Prijavi povijest slušanja na Last.fm" #: data/org.gnome.Music.gschema.xml:39 msgid "" "Enables or disables sending scrobbles and the “currently playing” info to " "Last.fm." msgstr "" "Omogući ili onemogući slanje skroblanja i \"trenutne reprodukcije\" na Last." "fm." #: data/ui/AlbumWidget.ui:84 data/ui/PlayerToolbar.ui:87 #: data/ui/PlaylistControls.ui:101 gnomemusic/widgets/playertoolbar.py:170 msgid "Play" msgstr "Reproduciraj" #: data/ui/AlbumWidget.ui:130 data/ui/PlaylistControls.ui:5 #: data/ui/SongWidgetMenu.ui:11 msgid "_Play" msgstr "_Sviraj" #: data/ui/AlbumWidget.ui:134 msgid "Add to _Favorite Songs" msgstr "Dodaj u _omiljene pjesme" #: data/ui/AlbumWidget.ui:138 data/ui/SongWidgetMenu.ui:15 msgid "_Add to Playlist…" msgstr "_Dodaj na popis izvođenja…" #: data/ui/AppMenu.ui:23 data/ui/LastfmDialog.ui:8 msgid "Last.fm Account" msgstr "Last.fm račun" #: data/ui/AppMenu.ui:36 msgid "Report Music Listening" msgstr "Prijavi povijest slušanja" #: data/ui/AppMenu.ui:58 msgid "_Keyboard Shortcuts" msgstr "_Prečaci tipkovnice" #: data/ui/AppMenu.ui:68 msgid "_Help" msgstr "_Priručnik" #: data/ui/AppMenu.ui:78 msgid "_About Music" msgstr "_O Glazbi" #: data/ui/EmptyView.ui:30 msgid "Welcome to Music" msgstr "Dobrodošli u Glazbu" #: data/ui/HeaderBar.ui:16 msgid "Menu" msgstr "Izbornik" #: data/ui/HeaderBar.ui:24 data/ui/SearchHeaderBar.ui:15 msgid "Select" msgstr "Odaberi" #: data/ui/HeaderBar.ui:30 data/ui/PlaylistDialog.ui:213 #: data/ui/SearchHeaderBar.ui:20 msgid "_Cancel" msgstr "_Odustani" #: data/ui/HeaderBar.ui:42 data/ui/SearchHeaderBar.ui:32 msgid "Search" msgstr "Pretraga" #: data/ui/HeaderBar.ui:50 msgid "Back" msgstr "Natrag" #: data/ui/help-overlay.ui:11 msgctxt "shortcut window" msgid "General" msgstr "Općenito" #: data/ui/help-overlay.ui:14 msgctxt "shortcut window" msgid "Close window" msgstr "Zatvori prozor" #: data/ui/help-overlay.ui:20 msgctxt "shortcut window" msgid "Search" msgstr "Pretraga" #: data/ui/help-overlay.ui:26 msgctxt "shortcut window" msgid "Help" msgstr "Priručnik" #: data/ui/help-overlay.ui:32 msgctxt "shortcut window" msgid "Shortcuts" msgstr "Prečaci" #: data/ui/help-overlay.ui:40 msgctxt "shortcut window" msgid "Playback" msgstr "Reprodukcija" #: data/ui/help-overlay.ui:43 msgctxt "shortcut window" msgid "Play/Pause" msgstr "Reproduciraj/Pauziraj" #: data/ui/help-overlay.ui:49 msgctxt "shortcut window" msgid "Next song" msgstr "Sljedeća pjesma" #: data/ui/help-overlay.ui:55 msgctxt "shortcut window" msgid "Previous song" msgstr "Prijašnja pjesma" #: data/ui/help-overlay.ui:61 msgctxt "shortcut window" msgid "Toggle repeat" msgstr "Uklj/Isklj ponavljanje" #: data/ui/help-overlay.ui:67 msgctxt "shortcut window" msgid "Toggle shuffle" msgstr "Uklj/Isklj ponavljanje" #: data/ui/help-overlay.ui:75 msgctxt "shortcut window" msgid "Navigation" msgstr "Navigacija" #: data/ui/help-overlay.ui:78 msgctxt "shortcut window" msgid "Go to Albums" msgstr "Idi u albume" #: data/ui/help-overlay.ui:84 msgctxt "shortcut window" msgid "Go to Artists" msgstr "Idi u izvođače" #: data/ui/help-overlay.ui:90 msgctxt "shortcut window" msgid "Go to Songs" msgstr "Idi u pjesme" #: data/ui/help-overlay.ui:96 msgctxt "shortcut window" msgid "Go to Playlists" msgstr "Idi u popise izvođenja" #: data/ui/help-overlay.ui:102 msgctxt "shortcut window" msgid "Go back" msgstr "Idi natrag" #: data/ui/LastfmDialog.ui:21 msgid "" "Last.fm is a music discovery service that gives you personalised " "recommendations based on the music you listen to." msgstr "" "Last.fm je usluga za otkrivanje glazbe koja vam daje personalizirane " "preporuke na temelju glazbe koju slušate." #: data/ui/LastfmDialog.ui:31 gnomemusic/widgets/lastfmdialog.py:57 msgid "Music Reporting Not Setup" msgstr "Prijava glazbe nije postavljena" #: data/ui/LastfmDialog.ui:44 gnomemusic/widgets/lastfmdialog.py:60 msgid "Login to your Last.fm account to report your music listening." msgstr "" "Prijavite se u svoj Last.fm račun kako bi mogli prijaviti svoje slušanje " "glazbe." #: data/ui/LastfmDialog.ui:55 gnomemusic/widgets/lastfmdialog.py:58 msgid "Login" msgstr "Prijava" #: data/ui/PlayerToolbar.ui:74 msgid "Previous" msgstr "Prijašnja" #: data/ui/PlayerToolbar.ui:106 msgid "Next" msgstr "Sljedeća" #: data/ui/PlaylistControls.ui:9 msgid "_Delete" msgstr "_Obriši" #: data/ui/PlaylistControls.ui:13 msgid "_Rename…" msgstr "_Preimenuj…" #: data/ui/PlaylistControls.ui:28 msgid "Playlist Name" msgstr "Naziv popis izvođenja" #: data/ui/PlaylistControls.ui:62 msgid "_Done" msgstr "_Završeno" #: data/ui/PlaylistDialog.ui:52 msgid "Enter a name for your first playlist" msgstr "Upišite naziv za vaš prvi popis izvođenja" #: data/ui/PlaylistDialog.ui:77 msgid "C_reate" msgstr "S_tvori" #: data/ui/PlaylistDialog.ui:146 msgid "New Playlist…" msgstr "Novi popis izvođenja…" #: data/ui/PlaylistDialog.ui:161 msgid "Add" msgstr "Dodaj" #: data/ui/PlaylistDialog.ui:202 msgid "Add to Playlist" msgstr "Dodaj na popis izvođenja" #: data/ui/PlaylistDialog.ui:222 msgid "_Add" msgstr "_Dodaj" #: data/ui/SearchView.ui:33 gnomemusic/views/artistsview.py:51 msgid "Artists" msgstr "Izvođači" #: data/ui/SearchView.ui:42 data/ui/SearchView.ui:84 msgid "View All" msgstr "Prikaži sve" #: data/ui/SearchView.ui:75 gnomemusic/views/albumsview.py:56 msgid "Albums" msgstr "Albumi" #: data/ui/SearchView.ui:117 gnomemusic/views/songsview.py:52 msgid "Songs" msgstr "Pjesme" #: data/ui/SelectionBarMenuButton.ui:7 msgid "Select All" msgstr "Odaberi sve" #: data/ui/SelectionBarMenuButton.ui:11 msgid "Select None" msgstr "Bez odabira" #: data/ui/SelectionBarMenuButton.ui:19 gnomemusic/widgets/headerbar.py:69 msgid "Click on items to select them" msgstr "Kliknite na stavku za odabir" #: data/ui/SelectionToolbar.ui:8 msgid "_Add to Playlist" msgstr "_Dodaj na popis izvođenja" #: data/ui/SongWidgetMenu.ui:19 msgid "_Remove from Playlist" msgstr "_Ukloni s popisa izvođenja" #: gnomemusic/about.py:238 msgid "The GNOME Project" msgstr "GNOME projekt" #: gnomemusic/about.py:242 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " gogo https://launchpad.net/~trebelnik-stefina" #: gnomemusic/about.py:246 msgid "Copyright The GNOME Music Developers" msgstr "Autorsko pravo GNOME Glazbeni razvijatelji" #: gnomemusic/about.py:249 msgid "Translated by" msgstr "Preveli" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:894 msgid "Most Played" msgstr "Najslušanije" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:948 msgid "Never Played" msgstr "Nepreslušano" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1001 msgid "Recently Played" msgstr "Nedavno slušano" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1064 msgid "Recently Added" msgstr "Nedavno dodano" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1127 msgid "Favorite Songs" msgstr "Omiljene pjesme" #: gnomemusic/gstplayer.py:408 msgid "Unable to play the file" msgstr "Nemoguća reprodukcija datoteke" #: gnomemusic/gstplayer.py:414 msgid "_Find in {}" msgstr "_Pretraži u {}" #. TRANSLATORS: separator for two codecs #: gnomemusic/gstplayer.py:424 msgid " and " msgstr " i " #. TRANSLATORS: separator for a list of codecs #: gnomemusic/gstplayer.py:427 msgid ", " msgstr ", " #: gnomemusic/gstplayer.py:429 msgid "{} is required to play the file, but is not installed." msgid_plural "{} are required to play the file, but are not installed." msgstr[0] "{} je potreban za reprodukciju datoteke, ali nije instaliran." msgstr[1] "{} su potrebni za reprodukciju datoteke, ali nisu instalirani." msgstr[2] "{} su potrebni za reprodukciju datoteke, ali nisu instalirani." #: gnomemusic/inhibitsuspend.py:63 msgid "Playing music" msgstr "Reprodukcija glazbe" #. Translators: "shuffle" causes tracks to play in random order. #: gnomemusic/player.py:44 msgid "Shuffle" msgstr "Naizmjenično" #: gnomemusic/player.py:45 msgid "Repeat Song" msgstr "Ponovi pjesmu" #: gnomemusic/player.py:46 msgid "Repeat All" msgstr "Ponovni sve" #: gnomemusic/player.py:47 msgid "Shuffle/Repeat Off" msgstr "Naizmjenično/Ponovi isključi" #: gnomemusic/playlisttoast.py:55 msgid "Playlist {} removed" msgstr "Popis izvođenja {} uklonjen" #: gnomemusic/playlisttoast.py:56 gnomemusic/songtoast.py:65 msgid "Undo" msgstr "Vrati" #: gnomemusic/songtoast.py:64 msgid "{} removed from {}" msgstr "{} uklonjeno iz {}" #: gnomemusic/utils.py:92 msgid "Unknown album" msgstr "Nepoznat album" #: gnomemusic/utils.py:113 msgid "Unknown Artist" msgstr "Nepoznati izvođač" #: gnomemusic/views/emptyview.py:65 msgid "Your XDG Music directory is not set." msgstr "Vaš XDG glazbeni direktorij nije postavljen." #: gnomemusic/views/emptyview.py:72 msgid "Music Folder" msgstr "Glazbena mapa" #. TRANSLATORS: This is a label to display a link to open user's music #. folder. {} will be replaced with the translated text 'Music folder' #: gnomemusic/views/emptyview.py:76 msgid "The contents of your {} will appear here." msgstr "Sadržaj vaše {} će se pojaviti ovdje." #: gnomemusic/views/emptyview.py:124 msgid "No Music Found" msgstr "Glazba nije pronađena" #: gnomemusic/views/emptyview.py:125 msgid "Try a Different Search" msgstr "Pokušaj drugačiju pretragu" #: gnomemusic/views/emptyview.py:129 msgid "GNOME Music could not connect to Tracker." msgstr "GNOME Glazba se ne može povezati s Pratiteljem." #: gnomemusic/views/emptyview.py:131 msgid "Your music files cannot be indexed without Tracker running." msgstr "" "Ne može se stvoriti sadržaj vaših glazbenih datoteka bez pokrenutog " "Pratitelja." #: gnomemusic/views/emptyview.py:137 msgid "Your system Tracker version seems outdated." msgstr "Izgleda da je inačica vašeg Pratitelja sustava zastarjela." #: gnomemusic/views/emptyview.py:139 msgid "Music needs Tracker version 3.0.0 or higher." msgstr "Glazba treba Pratitelja inačice 3.0.0 ili novijeg." #: gnomemusic/views/playlistsview.py:45 msgid "Playlists" msgstr "Popis izvođenja" #: gnomemusic/views/searchview.py:304 msgid "Artists Results" msgstr "Rezultati izvođača" #: gnomemusic/views/searchview.py:318 msgid "Albums Results" msgstr "Rezultati albuma" #: gnomemusic/widgets/albumwidget.py:245 msgid "{} minute" msgid_plural "{} minutes" msgstr[0] "{} minuta" msgstr[1] "{} minute" msgstr[2] "{} minuta" #: gnomemusic/widgets/discbox.py:75 msgid "Disc {}" msgstr "Disk {}" #: gnomemusic/widgets/headerbar.py:66 msgid "Selected {} song" msgid_plural "Selected {} songs" msgstr[0] "Odabrana {} pjesma" msgstr[1] "Odabrane {} pjesme" msgstr[2] "Odabrane {} pjesama" #: gnomemusic/widgets/lastfmdialog.py:64 msgid "Your music listening is reported to Last.fm." msgstr "Vaše slušanje glazbe je prijavljeno na Last.fm." #: gnomemusic/widgets/lastfmdialog.py:66 msgid "Your music listening is not reported to Last.fm." msgstr "Vaše slušanje glazbe nije prijavljeno na Last.fm." #. TRANSLATORS: displays the username of the Last.fm account #: gnomemusic/widgets/lastfmdialog.py:70 msgid "Logged in as {}" msgstr "Prijavljeni kao {}" #: gnomemusic/widgets/lastfmdialog.py:71 msgid "Configure" msgstr "Podesi" #: gnomemusic/widgets/playertoolbar.py:167 msgid "Pause" msgstr "Pauziraj" #: gnomemusic/widgets/playlistcontrols.py:130 msgid "{} Song" msgid_plural "{} Songs" msgstr[0] "{} pjesma" msgstr[1] "{} pjesme" msgstr[2] "{} pjesama" #~ msgid "A music player and management application for GNOME." #~ msgstr "" #~ "Glazbeni svirač i aplikacija upravljanja glazbenom kolekcijom za GNOME." #~ msgid "Visit GNOME Music website" #~ msgstr "Posjeti GNOME Glazba web stranicu" #~ msgid "" #~ "GNOME Music 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.\n" #~ "\n" #~ "GNOME Music 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.\n" #~ "\n" #~ "You should have received a copy of the GNU General Public License along " #~ "with GNOME Music; if not, write to the Free Software Foundation, Inc., 51 " #~ "Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ "\n" #~ "The GNOME Music authors hereby grant permission for non-GPL compatible " #~ "GStreamer plugins to be used and distributed together with GStreamer and " #~ "GNOME Music. This permission is above and beyond the permissions granted " #~ "by the GPL license by which GNOME Music is covered. If you modify this " #~ "code, you may extend this exception to your version of the code, but you " #~ "are not obligated to do so. If you do not wish to do so, delete this " #~ "exception statement from your version." #~ msgstr "" #~ "GNOME Glazba je slobodan softver; možete ga redistribuirati i/ili " #~ "mijenjati pod uvjetima GNU Opće javne licence objavljene od Fundacije " #~ "slobodnog softvera; ili inačice 2 Licence ili (po vašemu mišljenju) svake " #~ "kasnije inačice.\n" #~ "\n" #~ "GNOME Glazba je distribuiran u nadi da će biti koristan ali BEZ IKAKVOG " #~ "JAMSTVA; čak i bez podrazumjevanog jamstva ili POGODNOSTI ZA ODREĐENU " #~ "NAMJENU. Pogledajte GNU Opću javnu licencu za više informacija.\n" #~ "\n" #~ "Trebali ste dobiti primjerak GNU Opće javne licence uz ovaj program; ako " #~ "niste, pišite na adresu Free Software Foundation, Inc., 51 Franklin " #~ "Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ "\n" #~ "Autori GNOME Glazbe ovime odobravaju dozvolu za ne-OJL kompatibilne " #~ "GStreamer priključke da se mogu koristiti i distribuirati zajedno s " #~ "GStreamerom i GNOME Glazbom. Ova dozvola je iznad i izvan dozvole " #~ "odobrene OJL licencom kojom je GNOME Glazba pokrivena. Ako mijenjate " #~ "ovaj kôd, morate istaknuti tu iznimku u vašoj inačici kôda, ali Vi niste " #~ "dužni to učiniti. Ako to ne želite učiniti, obrišite ovu izjavu iznimke " #~ "iz vaše inačice." #~ msgid "The contents of your Music Folder will appear here" #~ msgstr "Sadržaj vaše Glazbene mape će se pojaviti ovdje." #~ msgid "GNOME Music" #~ msgstr "GNOME Glazba" #~ msgid "Window position" #~ msgstr "Položaj prozora" #~ msgid "Window position (x and y)." #~ msgstr "Položaj prozora (x-os i y-os)" #~ msgid "Loading" #~ msgstr "Učitavanje" #~ msgid "Add to Playlist…" #~ msgstr "Dodaj na popis izvođenja…" #~ msgid "" #~ "An easy way to play your music. Automatically discover music on your " #~ "computer, the local network and internet services." #~ msgstr "" #~ "Jednostavan način slušanja glazbe. Automatski otkrijte svoju glazbu na " #~ "računalu, lokalnoj mreži i internetskim uslugama." #~ msgid "" #~ "Find tracks in your local collection, get music from DLNA servers or try " #~ "something new with the Jamendo and Magnatune services." #~ msgstr "" #~ "Potražite pjesme u svojoj lokalnoj kolekciji, nabavite glazbu na DLNA " #~ "poslužiteljima ili isprobajte nešto novo s Jamenado i Magnatune uslugama." #~ msgid "Inital state has been displayed" #~ msgstr "Početno stanje je prikazano" #~ msgid "Set to true when initial state has been displayed" #~ msgstr "Postavite na 'true' kada je početno stanje prikazano" #~ msgid "Released" #~ msgstr "Objavljeno" #~ msgid "Running Length" #~ msgstr "Trajanje" #~ msgid "Composer" #~ msgstr "Skladatelj" #~ msgctxt "context menu item" #~ msgid "Play" #~ msgstr "Reproduciraj" #~ msgid "Hey DJ" #~ msgstr "Hej DJ" #~ msgid "All" #~ msgstr "Svi" #~ msgid "Artist" #~ msgstr "Izvođač" #~ msgid "Album" #~ msgstr "Album" #~ msgid "Track Title" #~ msgstr "Naslov pjesme" #~ msgid "Local" #~ msgstr "Lokalno" #~ msgid "Sources" #~ msgstr "Izvori" #~ msgid "Match" #~ msgstr "Podudara se" #~ msgid "Untitled" #~ msgstr "Neimenovano" #~ msgid "@icon@" #~ msgstr "@icon@" #~ msgid "_Quit" #~ msgstr "_Zatvori" #~ msgid "Music is the new GNOME music playing application." #~ msgstr "Glazba je nova GNOME aplikacija za slušanje glazbe." #~ msgid "org.gnome.Music" #~ msgstr "org.gnome.Music" #~ msgid "Selected %d item" #~ msgid_plural "Selected %d items" #~ msgstr[0] "Odabrana je %d stavka" #~ msgstr[1] "Odabrane su %d stavke" #~ msgstr[2] "Odabrano je %d stavki" #~ msgid "%d min" #~ msgstr "%d min" #~ msgid "Empty" #~ msgstr "Prazna" #~ msgid "Search mode" #~ msgstr "Način pretraživanja" #~ msgid "If true, the search bar is shown." #~ msgstr "Ako je odabrano, traka pretrage je prikazana." #~ msgid "Notifications mode" #~ msgstr "Način obavijesti" #~ msgid "Enables or disables playback notifications" #~ msgstr "Omogući ili onemogući obavijesti reprodukcije" #~ msgid "Select Playlist" #~ msgstr "Odaberi popis izvođenja" 070701000000F3000081A400000000000000000000000166968E4E00003F4B000000000000000000000000000000000000001A00000000gnome-music-46.1/po/hu.po# Hungarian translation for gnome-music. # Copyright (C) 2013, 2014, 2015, 2016, 2018, 2019, 2020, 2021, 2022, 2023, 2024 Free Software Foundation, Inc. # This file is distributed under the same license as the gnome-music package. # # Gabor Kelemen , 2013, 2016. # Balázs Meskó , 2014, 2015, 2020, 2021, 2024. # Balázs Úr , 2013, 2014, 2015, 2016, 2018, 2019, 2020, 2021, 2022, 2023, 2024. msgid "" msgstr "" "Project-Id-Version: gnome-music master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-music/issues\n" "POT-Creation-Date: 2024-02-11 20:43+0000\n" "PO-Revision-Date: 2024-03-02 11:31+0100\n" "Last-Translator: Balázs Úr \n" "Language-Team: Hungarian \n" "Language: hu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Lokalize 23.08.4\n" #: data/org.gnome.Music.appdata.xml.in.in:6 #: data/org.gnome.Music.desktop.in.in:3 data/ui/StatusNavigationPage.ui:4 #: gnomemusic/about.py:138 gnomemusic/application.py:59 gnomemusic/window.py:65 msgid "Music" msgstr "Zene" #: data/org.gnome.Music.appdata.xml.in.in:7 #: data/org.gnome.Music.desktop.in.in:5 msgid "Play and organize your music collection" msgstr "Zenegyűjtemény rendszerezése és lejátszása" #: data/org.gnome.Music.appdata.xml.in.in:9 msgid "An easy and pleasant way to play your music." msgstr "Könnyű és kellemes módja a zenéje lejátszásának." #: data/org.gnome.Music.appdata.xml.in.in:12 msgid "" "Find tracks in your local collection, use automatically generated playlists " "or curate a fresh one." msgstr "" "Keressen számokat a helyi gyűjteményében, használjon automatikusan " "előállított lejátszólistákat vagy állítson össze egyet." #. developer_name tag deprecated with Appstream 1.0 #: data/org.gnome.Music.appdata.xml.in.in:188 msgid "The GNOME Music developers" msgstr "A GNOME Zene fejlesztői" #: data/org.gnome.Music.desktop.in.in:4 msgid "Music Player" msgstr "Zenelejátszó" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Music.desktop.in.in:13 msgid "Music;Player;" msgstr "Zene;Lejátszó;" #: data/org.gnome.Music.gschema.xml:12 msgid "Window size" msgstr "Ablakméret" #: data/org.gnome.Music.gschema.xml:13 msgid "Window size (width and height)." msgstr "Ablak mérete (szélesség és magasság)." #: data/org.gnome.Music.gschema.xml:17 msgid "Window maximized" msgstr "Ablak teljes méretű" #: data/org.gnome.Music.gschema.xml:18 msgid "Window maximized state." msgstr "Az ablak maximalizált állapota." #: data/org.gnome.Music.gschema.xml:22 msgid "Playback repeat mode" msgstr "Lejátszás ismétlési módja" #. Translators: Don't translate allowed values, just the description in the brackets #: data/org.gnome.Music.gschema.xml:24 msgid "" "Value identifies whether to repeat or randomize playback through the " "collection. Allowed values are: “none” (repeat and shuffle are off), " "“song” (repeat current song), “all” (repeat playlist, no shuffle), " "“shuffle” (shuffle playlist, presumes repeat all)." msgstr "" "Az érték megadja, hogy a gyűjtemény lejátszását ismételni vagy " "véletlenszerűsíteni kell. Engedélyezett értékek: „none” (ismétlés és keverés " "kikapcsolva), „song” (jelenlegi szám ismétlése), „all” (lejátszólista " "ismétlése, nincs keverés), „shuffle” (véletlenszerű lejátszólista, " "feltételezi az összes ismétlését)." #: data/org.gnome.Music.gschema.xml:28 data/ui/PreferencesDialog.ui:27 msgid "Enable ReplayGain" msgstr "ReplayGain engedélyezése" #: data/org.gnome.Music.gschema.xml:29 msgid "Enables or disables ReplayGain for albums" msgstr "Engedélyezi vagy letiltja a ReplayGain használatát az albumoknál" #: data/org.gnome.Music.gschema.xml:33 msgid "Inhibit system suspend" msgstr "Rendszer felfüggesztésének megakadályozása" #: data/org.gnome.Music.gschema.xml:34 msgid "Enables or disables inhibiting system suspend while playing music" msgstr "" "Engedélyezi vagy letiltja a rendszer felfüggesztésének megakadályozását " "zenelejátszás közben" #: data/ui/AlbumsSearchNavigationPage.ui:5 data/ui/SearchView.ui:98 #: gnomemusic/views/albumsview.py:52 msgid "Albums" msgstr "Albumok" #: data/ui/AlbumWidget.ui:84 data/ui/PlayerToolbar.ui:87 #: data/ui/PlaylistControls.ui:101 gnomemusic/widgets/playertoolbar.py:176 msgid "Play" msgstr "Lejátszás" #: data/ui/AlbumWidget.ui:130 data/ui/PlaylistControls.ui:5 #: data/ui/SongWidgetMenu.ui:11 msgid "_Play" msgstr "_Lejátszás" #: data/ui/AlbumWidget.ui:134 msgid "Add to _Favorite Songs" msgstr "Hozzáadás a _kedvenc számokhoz" #: data/ui/AlbumWidget.ui:138 data/ui/SongWidgetMenu.ui:15 msgid "_Add to Playlist…" msgstr "Hozzá_adás a lejátszólistához…" #: data/ui/ArtistsSearchNavigationPage.ui:5 data/ui/SearchView.ui:41 #: gnomemusic/views/artistsview.py:51 msgid "Artists" msgstr "Előadók" #: data/ui/HeaderBar.ui:14 msgid "Menu" msgstr "Menü" #: data/ui/HeaderBar.ui:22 data/ui/SearchHeaderBar.ui:12 msgid "Search" msgstr "Keresés" #: data/ui/HeaderBar.ui:31 data/ui/PreferencesDialog.ui:4 msgid "Preferences" msgstr "Beállítások" #: data/ui/HeaderBar.ui:35 #| msgid "_Keyboard Shortcuts" msgid "Keyboard Shortcuts" msgstr "Gyorsbillentyűk" #: data/ui/HeaderBar.ui:39 #| msgctxt "shortcut window" #| msgid "Help" msgid "Help" msgstr "Súgó" #: data/ui/HeaderBar.ui:43 #| msgid "_About Music" msgid "About Music" msgstr "A Zene névjegye" #: data/ui/help-overlay.ui:11 msgctxt "shortcut window" msgid "General" msgstr "Általános" #: data/ui/help-overlay.ui:14 msgctxt "shortcut window" msgid "Close window" msgstr "Ablak bezárása" #: data/ui/help-overlay.ui:20 msgctxt "shortcut window" msgid "Search" msgstr "Keresés" #: data/ui/help-overlay.ui:26 msgctxt "shortcut window" msgid "Help" msgstr "Súgó" #: data/ui/help-overlay.ui:32 msgctxt "shortcut window" msgid "Shortcuts" msgstr "Gyorsbillentyűk" #: data/ui/help-overlay.ui:40 msgctxt "shortcut window" msgid "Playback" msgstr "Lejátszás" #: data/ui/help-overlay.ui:43 msgctxt "shortcut window" msgid "Play/Pause" msgstr "Lejátszás/szünet" #: data/ui/help-overlay.ui:49 msgctxt "shortcut window" msgid "Next song" msgstr "Következő szám" #: data/ui/help-overlay.ui:55 msgctxt "shortcut window" msgid "Previous song" msgstr "Előző szám" #: data/ui/help-overlay.ui:61 msgctxt "shortcut window" msgid "Toggle repeat" msgstr "Ismétlés ki/be" #: data/ui/help-overlay.ui:67 msgctxt "shortcut window" msgid "Toggle shuffle" msgstr "Véletlenszerű lejátszás ki/be" #: data/ui/help-overlay.ui:75 msgctxt "shortcut window" msgid "Navigation" msgstr "Navigáció" #: data/ui/help-overlay.ui:78 msgctxt "shortcut window" msgid "Go to Albums" msgstr "Ugrás az albumokhoz" #: data/ui/help-overlay.ui:84 msgctxt "shortcut window" msgid "Go to Artists" msgstr "Ugrás az előadókhoz" #: data/ui/help-overlay.ui:90 msgctxt "shortcut window" msgid "Go to Songs" msgstr "Ugrás a számokhoz" #: data/ui/help-overlay.ui:96 msgctxt "shortcut window" msgid "Go to Playlists" msgstr "Ugrás a lejátszólistákhoz" #: data/ui/help-overlay.ui:102 msgctxt "shortcut window" msgid "Go back" msgstr "Vissza" #: data/ui/PlayerToolbar.ui:74 msgid "Previous" msgstr "Előző" #: data/ui/PlayerToolbar.ui:106 msgid "Next" msgstr "Következő" #: data/ui/PlaylistControls.ui:9 msgid "_Delete" msgstr "_Törlés" #: data/ui/PlaylistControls.ui:13 msgid "_Rename…" msgstr "Át_nevezés…" #: data/ui/PlaylistControls.ui:28 msgid "Playlist Name" msgstr "Lejátszólista neve" #: data/ui/PlaylistControls.ui:62 msgid "_Done" msgstr "_Kész" #: data/ui/PlaylistDialog.ui:16 msgid "Add to Playlist" msgstr "Hozzáadás a lejátszólistához" #: data/ui/PlaylistDialog.ui:27 msgid "_Cancel" msgstr "_Mégse" #: data/ui/PlaylistDialog.ui:36 msgid "_Add" msgstr "_Hozzáadás" #: data/ui/PlaylistDialog.ui:91 msgid "Enter a name for your first playlist" msgstr "Adjon nevet az első lejátszólistájának" #: data/ui/PlaylistDialog.ui:116 msgid "C_reate" msgstr "Lét_rehozás" #: data/ui/PlaylistDialog.ui:177 msgid "New Playlist…" msgstr "Új lejátszólista…" #: data/ui/PlaylistDialog.ui:189 msgid "Add" msgstr "Hozzáadás" #: data/ui/PreferencesDialog.ui:9 msgid "Player Settings" msgstr "Lejátszóbeállítások" #: data/ui/PreferencesDialog.ui:12 #| msgid "Repeat Song" msgid "Repeat Mode" msgstr "Ismétlési mód" #: data/ui/PreferencesDialog.ui:16 msgid "None" msgstr "Nincs" #: data/ui/PreferencesDialog.ui:17 #| msgid "Songs" msgid "Song" msgstr "Szám" #: data/ui/PreferencesDialog.ui:18 msgid "All" msgstr "Összes" #: data/ui/PreferencesDialog.ui:19 gnomemusic/player.py:51 msgid "Shuffle" msgstr "Véletlen sorrend" #: data/ui/PreferencesDialog.ui:28 msgid "Balance loudness between songs if ReplayGain metadata is found" msgstr "" "Hangosság kiegyenlítése a számok között, ha ReplayGain metaadatok találhatók" #: data/ui/PreferencesDialog.ui:35 msgid "Power Settings" msgstr "Energiagazdálkodási beállítások" #: data/ui/PreferencesDialog.ui:38 #| msgid "Inhibit system suspend" msgid "Inhibit Suspend" msgstr "Felfüggesztés megakadályozása" #: data/ui/PreferencesDialog.ui:39 msgid "Only while playing" msgstr "Csak lejátszás közben" #: data/ui/SearchView.ui:55 data/ui/SearchView.ui:112 msgid "View All" msgstr "Összes megtekintése" #: data/ui/SearchView.ui:154 msgid "Songs" msgstr "Számok" #: data/ui/SongWidgetMenu.ui:19 msgid "_Remove from Playlist" msgstr "_Eltávolítás a lejátszólistáról" #: data/ui/StatusNavigationPage.ui:36 msgid "Welcome to Music" msgstr "Üdvözli a Zene" #: gnomemusic/about.py:140 msgid "The GNOME Project" msgstr "A GNOME projekt" #. Translators should localize the following string which #. will be displayed at the bottom of the about box to give #. credit to the translator(s). #: gnomemusic/about.py:146 msgid "translator-credits" msgstr "" "Meskó Balázs , 2024.\n" "Úr Balázs , 2022, 2024." #: gnomemusic/about.py:150 #| msgid "The GNOME Music developers" msgid "© The GNOME Music Developers" msgstr "© A GNOME Zene fejlesztői" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:839 msgid "Most Played" msgstr "Legtöbbet lejátszott" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:893 msgid "Never Played" msgstr "Sosem lejátszott" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:946 msgid "Recently Played" msgstr "Legutóbb lejátszott" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1025 msgid "Recently Added" msgstr "Legutóbb hozzáadott" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1088 msgid "Favorite Songs" msgstr "Kedvenc számok" #. TRANSLATORS: this is a playlist name indicating that the #. files are not tagged enough to be displayed in the albums #. or artists views. #: gnomemusic/grilowrappers/grltrackerplaylists.py:1142 msgid "Insufficiently Tagged" msgstr "Hiányosan címkézve" #: gnomemusic/gstplayer.py:418 msgid "Unable to play the file" msgstr "Nem lehet lejátszani a fájlt" #: gnomemusic/gstplayer.py:424 msgid "_Find in {}" msgstr "_Keresés ebben: {}" #. TRANSLATORS: separator for two codecs #: gnomemusic/gstplayer.py:434 msgid " and " msgstr " és " #. TRANSLATORS: separator for a list of codecs #: gnomemusic/gstplayer.py:437 msgid ", " msgstr ", " #: gnomemusic/gstplayer.py:439 msgid "{} is required to play the file, but is not installed." msgid_plural "{} are required to play the file, but are not installed." msgstr[0] "{} szükséges a fájl lejátszásához, de nincs telepítve." msgstr[1] "{} szükségesek a fájl lejátszásához, de nincsenek telepítve." #: gnomemusic/inhibitsuspend.py:69 msgid "Playing music" msgstr "Zene lejátszása" #. Translators: "shuffle" causes tracks to play in random order. #: gnomemusic/player.py:48 msgid "Shuffle/Repeat Off" msgstr "Véletlen/Ismétlés kikapcsolva" #: gnomemusic/player.py:49 msgid "Repeat Song" msgstr "Szám ismétlése" #: gnomemusic/player.py:50 msgid "Repeat All" msgstr "Összes ismétlése" #: gnomemusic/playlisttoast.py:55 msgid "Playlist {} removed" msgstr "A(z) {} lejátszólista eltávolítva" #: gnomemusic/playlisttoast.py:56 gnomemusic/songtoast.py:65 msgid "Undo" msgstr "Visszavonás" #: gnomemusic/songtoast.py:64 msgid "{} removed from {}" msgstr "{} eltávolítva innen: {}" #: gnomemusic/utils.py:89 msgid "Unknown album" msgstr "Ismeretlen album" #: gnomemusic/utils.py:110 msgid "Unknown Artist" msgstr "Ismeretlen előadó" #: gnomemusic/views/playlistsview.py:45 msgid "Playlists" msgstr "Lejátszólisták" #: gnomemusic/views/searchview.py:220 msgid "No Search Started" msgstr "Nincs keresés indítva" #: gnomemusic/views/searchview.py:222 msgid "Use the searchbar to start searching for albums, artists or songs" msgstr "Használja a keresősávot az albumok, előadók és számok kereséséhez" #: gnomemusic/views/searchview.py:226 #| msgid "No Music Found" msgid "No Results Found" msgstr "Nincs találat" #: gnomemusic/views/searchview.py:228 #| msgid "Try a Different Search" msgid "Try a different search" msgstr "Próbáljon egy másik keresést" #: gnomemusic/widgets/albumwidget.py:230 msgid "{} minute" msgid_plural "{} minutes" msgstr[0] "{} perc" msgstr[1] "{} perc" # FIXME ez lehet, hogy egy lemezcím, vagy sorszám, akkor nem lesz szép. #: gnomemusic/widgets/discbox.py:74 msgid "Disc {}" msgstr "Lemez {}" #: gnomemusic/widgets/playertoolbar.py:173 msgid "Pause" msgstr "Szünet" #: gnomemusic/widgets/playlistcontrols.py:130 msgid "{} Song" msgid_plural "{} Songs" msgstr[0] "{} szám" msgstr[1] "{} szám" #: gnomemusic/widgets/searchheaderbar.py:50 #| msgid "Search songs, artists, albums and playlists" msgid "Search songs, artists and albums" msgstr "Számok, előadók és albumok keresése" #. noqa: F841 #: gnomemusic/widgets/songwidgetmenu.py:94 msgid "_Open Location" msgstr "_Hely megnyitása" #. TRANSLATORS: These are verbs, to (un)mark something as a #. favorite. #: gnomemusic/widgets/startoggle.py:36 msgid "Unstar" msgstr "Csillagozás megszüntetése" #: gnomemusic/widgets/startoggle.py:36 msgid "Star" msgstr "Csillagozás" #: gnomemusic/widgets/statusnavigationpage.py:51 msgid "Your XDG Music directory is not set." msgstr "Az XDG Zenék könyvtára nincs beállítva." # A ~/Zenék #: gnomemusic/widgets/statusnavigationpage.py:58 msgid "Music Folder" msgstr "Zenék mappa" # %s = "Zenék mappa" #. TRANSLATORS: This is a label to display a link to open user's music #. folder. {} will be replaced with the translated text 'Music folder' #: gnomemusic/widgets/statusnavigationpage.py:66 msgid "The contents of your {} will appear here." msgstr "A {} tartalma itt fog megjelenni." #: gnomemusic/widgets/statusnavigationpage.py:116 msgid "No Music Found" msgstr "Nem található zene" #: gnomemusic/widgets/statusnavigationpage.py:117 msgid "Try a Different Search" msgstr "Próbáljon egy másik keresést" #: gnomemusic/widgets/statusnavigationpage.py:121 msgid "GNOME Music could not connect to Tracker." msgstr "A GNOME Zene nem tudott kapcsolódni a Trackerhez." #: gnomemusic/widgets/statusnavigationpage.py:123 msgid "Your music files cannot be indexed without Tracker running." msgstr "A zenefájlokat nem lehet indexelni a Tracker futtatása nélkül." #: gnomemusic/widgets/statusnavigationpage.py:129 msgid "Your system Tracker version seems outdated." msgstr "A rendszer Tracker verziója elavultnak tűnik." #: gnomemusic/widgets/statusnavigationpage.py:131 msgid "Music needs Tracker version 3.0.0 or higher." msgstr "A Zene a Tracker 3.0.0 vagy újabb verzióját igényli." 070701000000F4000081A400000000000000000000000166968E4E00005768000000000000000000000000000000000000001A00000000gnome-music-46.1/po/id.po# Indonesian translation for gnome-music. # Copyright (C) 2013 gnome-music's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-music package. # # Andika Triwidada , 2013, 2014, 2015. # Dirgita , 2013. # Kukuh Syafaat , 2017-2024. msgid "" msgstr "" "Project-Id-Version: gnome-music master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-music/issues\n" "POT-Creation-Date: 2024-02-11 20:43+0000\n" "PO-Revision-Date: 2024-02-16 21:14+0700\n" "Last-Translator: Kukuh Syafaat \n" "Language-Team: Indonesian \n" "Language: id\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Poedit 3.4.2\n" #: data/org.gnome.Music.appdata.xml.in.in:6 #: data/org.gnome.Music.desktop.in.in:3 data/ui/StatusNavigationPage.ui:4 #: gnomemusic/about.py:138 gnomemusic/application.py:59 gnomemusic/window.py:65 msgid "Music" msgstr "Musik" #: data/org.gnome.Music.appdata.xml.in.in:7 #: data/org.gnome.Music.desktop.in.in:5 msgid "Play and organize your music collection" msgstr "Putar dan tata koleksi musik Anda" #: data/org.gnome.Music.appdata.xml.in.in:9 msgid "An easy and pleasant way to play your music." msgstr "Cara mudah dan menyenangkan untuk memainkan musik Anda." #: data/org.gnome.Music.appdata.xml.in.in:12 msgid "" "Find tracks in your local collection, use automatically generated playlists " "or curate a fresh one." msgstr "" "Temukan trek di koleksi lokal Anda, gunakan daftar putar yang dibuat secara " "otomatis atau kurasi yang baru." #. developer_name tag deprecated with Appstream 1.0 #: data/org.gnome.Music.appdata.xml.in.in:188 msgid "The GNOME Music developers" msgstr "Para Pengembang GNOME Musik" #: data/org.gnome.Music.desktop.in.in:4 msgid "Music Player" msgstr "Pemutar Musik" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Music.desktop.in.in:13 msgid "Music;Player;" msgstr "Pemutar;Musik;" #: data/org.gnome.Music.gschema.xml:12 msgid "Window size" msgstr "Ukuran jendela" #: data/org.gnome.Music.gschema.xml:13 msgid "Window size (width and height)." msgstr "Ukuran jendela (lebar dan tinggi)." #: data/org.gnome.Music.gschema.xml:17 msgid "Window maximized" msgstr "Jendela dimaksimalkan" #: data/org.gnome.Music.gschema.xml:18 msgid "Window maximized state." msgstr "Keadaan dimaksimalkan jendela." #: data/org.gnome.Music.gschema.xml:22 msgid "Playback repeat mode" msgstr "Mode ulang pemutaran" #. Translators: Don't translate allowed values, just the description in the brackets #: data/org.gnome.Music.gschema.xml:24 msgid "" "Value identifies whether to repeat or randomize playback through the " "collection. Allowed values are: “none” (repeat and shuffle are off), " "“song” (repeat current song), “all” (repeat playlist, no shuffle), " "“shuffle” (shuffle playlist, presumes repeat all)." msgstr "" "Nilai yang mengidentifikasi apakah mengulang atau mengacak pemutaran ulang " "koleksi. Nilai yang diizinkan adalah: \"none\" (tanpa pengulangan atau " "pengacakan), \"song\" (ulangi lagu saat ini), \"all\" (ulang daftar putar, " "tanpa pengacakan), \"shuffle\" (acak daftar putar, mengasumsikan ulang " "semua)." #: data/org.gnome.Music.gschema.xml:28 data/ui/PreferencesDialog.ui:27 msgid "Enable ReplayGain" msgstr "Fungsikan ReplayGain" #: data/org.gnome.Music.gschema.xml:29 msgid "Enables or disables ReplayGain for albums" msgstr "Mengaktifkan atau menonaktifkan pemberitahuan pemutaran" #: data/org.gnome.Music.gschema.xml:33 msgid "Inhibit system suspend" msgstr "Cegah suspensi sistem" #: data/org.gnome.Music.gschema.xml:34 msgid "Enables or disables inhibiting system suspend while playing music" msgstr "" "Mengaktifkan atau menonaktifkan pencegah suspensi sistem saat memutar musik" #: data/ui/AlbumsSearchNavigationPage.ui:5 data/ui/SearchView.ui:98 #: gnomemusic/views/albumsview.py:52 msgid "Albums" msgstr "Album" #: data/ui/AlbumWidget.ui:84 data/ui/PlayerToolbar.ui:87 #: data/ui/PlaylistControls.ui:101 gnomemusic/widgets/playertoolbar.py:176 msgid "Play" msgstr "Putar" #: data/ui/AlbumWidget.ui:130 data/ui/PlaylistControls.ui:5 #: data/ui/SongWidgetMenu.ui:11 msgid "_Play" msgstr "_Putar" #: data/ui/AlbumWidget.ui:134 msgid "Add to _Favorite Songs" msgstr "Tambah ke Lagu _Favorit" #: data/ui/AlbumWidget.ui:138 data/ui/SongWidgetMenu.ui:15 msgid "_Add to Playlist…" msgstr "T_ambah ke Daftar Putar…" #: data/ui/ArtistsSearchNavigationPage.ui:5 data/ui/SearchView.ui:41 #: gnomemusic/views/artistsview.py:51 msgid "Artists" msgstr "Artis" #: data/ui/HeaderBar.ui:14 msgid "Menu" msgstr "Menu" #: data/ui/HeaderBar.ui:22 data/ui/SearchHeaderBar.ui:12 msgid "Search" msgstr "Cari" #: data/ui/HeaderBar.ui:31 data/ui/PreferencesDialog.ui:4 msgid "Preferences" msgstr "Preferensi" #: data/ui/HeaderBar.ui:35 msgid "Keyboard Shortcuts" msgstr "Pintasan Papan Tik" #: data/ui/HeaderBar.ui:39 msgid "Help" msgstr "Bantuan" #: data/ui/HeaderBar.ui:43 msgid "About Music" msgstr "Tentang Musik" #: data/ui/help-overlay.ui:11 msgctxt "shortcut window" msgid "General" msgstr "Umum" #: data/ui/help-overlay.ui:14 msgctxt "shortcut window" msgid "Close window" msgstr "Tutup jendela" #: data/ui/help-overlay.ui:20 msgctxt "shortcut window" msgid "Search" msgstr "Cari" #: data/ui/help-overlay.ui:26 msgctxt "shortcut window" msgid "Help" msgstr "Bantuan" #: data/ui/help-overlay.ui:32 msgctxt "shortcut window" msgid "Shortcuts" msgstr "Pintasan" #: data/ui/help-overlay.ui:40 msgctxt "shortcut window" msgid "Playback" msgstr "Putar" #: data/ui/help-overlay.ui:43 msgctxt "shortcut window" msgid "Play/Pause" msgstr "Putar/Tahan" #: data/ui/help-overlay.ui:49 msgctxt "shortcut window" msgid "Next song" msgstr "Lagu selanjutnya" #: data/ui/help-overlay.ui:55 msgctxt "shortcut window" msgid "Previous song" msgstr "Lagu sebelumnya" #: data/ui/help-overlay.ui:61 msgctxt "shortcut window" msgid "Toggle repeat" msgstr "Jungkitkan pengulangan" #: data/ui/help-overlay.ui:67 msgctxt "shortcut window" msgid "Toggle shuffle" msgstr "Jungkitkan pengacakan" #: data/ui/help-overlay.ui:75 msgctxt "shortcut window" msgid "Navigation" msgstr "Navigasi" #: data/ui/help-overlay.ui:78 msgctxt "shortcut window" msgid "Go to Albums" msgstr "Ke Album" #: data/ui/help-overlay.ui:84 msgctxt "shortcut window" msgid "Go to Artists" msgstr "Ke Artis" #: data/ui/help-overlay.ui:90 msgctxt "shortcut window" msgid "Go to Songs" msgstr "Ke Lagu" #: data/ui/help-overlay.ui:96 msgctxt "shortcut window" msgid "Go to Playlists" msgstr "Ke Daftar Putar" #: data/ui/help-overlay.ui:102 msgctxt "shortcut window" msgid "Go back" msgstr "Mundur" #: data/ui/PlayerToolbar.ui:74 msgid "Previous" msgstr "Sebelumnya" #: data/ui/PlayerToolbar.ui:106 msgid "Next" msgstr "Selanjutnya" #: data/ui/PlaylistControls.ui:9 msgid "_Delete" msgstr "_Hapus" #: data/ui/PlaylistControls.ui:13 msgid "_Rename…" msgstr "_Ubah Nama…" #: data/ui/PlaylistControls.ui:28 msgid "Playlist Name" msgstr "Nama Daftar Putar" #: data/ui/PlaylistControls.ui:62 msgid "_Done" msgstr "_Selesai" #: data/ui/PlaylistDialog.ui:16 msgid "Add to Playlist" msgstr "Tambah ke Daftar Putar" #: data/ui/PlaylistDialog.ui:27 msgid "_Cancel" msgstr "_Batal" #: data/ui/PlaylistDialog.ui:36 msgid "_Add" msgstr "T_ambah" #: data/ui/PlaylistDialog.ui:91 msgid "Enter a name for your first playlist" msgstr "Masukkan nama daftar putar pertama Anda" #: data/ui/PlaylistDialog.ui:116 msgid "C_reate" msgstr "B_uat" #: data/ui/PlaylistDialog.ui:177 msgid "New Playlist…" msgstr "Daftar Putar Baru…" #: data/ui/PlaylistDialog.ui:189 msgid "Add" msgstr "Tambah" #: data/ui/PreferencesDialog.ui:9 msgid "Player Settings" msgstr "Pengaturan Pemutar" #: data/ui/PreferencesDialog.ui:12 msgid "Repeat Mode" msgstr "Modus Berulang" #: data/ui/PreferencesDialog.ui:16 msgid "None" msgstr "Nihil" #: data/ui/PreferencesDialog.ui:17 msgid "Song" msgstr "Lagu" #: data/ui/PreferencesDialog.ui:18 msgid "All" msgstr "Semua" #: data/ui/PreferencesDialog.ui:19 gnomemusic/player.py:51 msgid "Shuffle" msgstr "Acak" #: data/ui/PreferencesDialog.ui:28 msgid "Balance loudness between songs if ReplayGain metadata is found" msgstr "" "Menyeimbangkan kenyaringan di antara lagu jika metadata ReplayGain ditemukan" #: data/ui/PreferencesDialog.ui:35 msgid "Power Settings" msgstr "Pengaturan Daya" #: data/ui/PreferencesDialog.ui:38 msgid "Inhibit Suspend" msgstr "Cegah Suspensi" #: data/ui/PreferencesDialog.ui:39 msgid "Only while playing" msgstr "Hanya ketika memutar" #: data/ui/SearchView.ui:55 data/ui/SearchView.ui:112 msgid "View All" msgstr "Tampilkan Semua" #: data/ui/SearchView.ui:154 msgid "Songs" msgstr "Lagu" #: data/ui/SongWidgetMenu.ui:19 msgid "_Remove from Playlist" msgstr "Hapus dari Daftar Puta_r" #: data/ui/StatusNavigationPage.ui:36 msgid "Welcome to Music" msgstr "Selamat Datang di Musik" #: gnomemusic/about.py:140 msgid "The GNOME Project" msgstr "Proyek GNOME" #. Translators should localize the following string which #. will be displayed at the bottom of the about box to give #. credit to the translator(s). #: gnomemusic/about.py:146 msgid "translator-credits" msgstr "" "Andika Triwidada , 2013, 2014, 2015.\n" "Dirgita , 2013.\n" "Kukuh Syafaat , 2017-2024." #: gnomemusic/about.py:150 msgid "© The GNOME Music Developers" msgstr "© Para Pengembang GNOME Musik" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:839 msgid "Most Played" msgstr "Paling Sering Diputar" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:893 msgid "Never Played" msgstr "Tak Pernah Diputar" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:946 msgid "Recently Played" msgstr "Baru-baru Ini Diputar" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1025 msgid "Recently Added" msgstr "Baru-baru Ini Ditambahkan" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1088 msgid "Favorite Songs" msgstr "Lagu Favorit" #. TRANSLATORS: this is a playlist name indicating that the #. files are not tagged enough to be displayed in the albums #. or artists views. #: gnomemusic/grilowrappers/grltrackerplaylists.py:1142 msgid "Insufficiently Tagged" msgstr "Penandaan Tak Memadai" #: gnomemusic/gstplayer.py:418 msgid "Unable to play the file" msgstr "Tak dapat memutar berkas" #: gnomemusic/gstplayer.py:424 msgid "_Find in {}" msgstr "_Cari di {}" #. TRANSLATORS: separator for two codecs #: gnomemusic/gstplayer.py:434 msgid " and " msgstr " dan " #. TRANSLATORS: separator for a list of codecs #: gnomemusic/gstplayer.py:437 msgid ", " msgstr ", " #: gnomemusic/gstplayer.py:439 msgid "{} is required to play the file, but is not installed." msgid_plural "{} are required to play the file, but are not installed." msgstr[0] "{} diperlukan untuk memutar berkas, tapi tak terpasang." #: gnomemusic/inhibitsuspend.py:69 msgid "Playing music" msgstr "Memutar musik" #. Translators: "shuffle" causes tracks to play in random order. #: gnomemusic/player.py:48 msgid "Shuffle/Repeat Off" msgstr "Acak/Ulang Mati" #: gnomemusic/player.py:49 msgid "Repeat Song" msgstr "Ulangi Lagu" #: gnomemusic/player.py:50 msgid "Repeat All" msgstr "Ulangi Semua" #: gnomemusic/playlisttoast.py:55 msgid "Playlist {} removed" msgstr "Daftar putar {} dihapus" #: gnomemusic/playlisttoast.py:56 gnomemusic/songtoast.py:65 msgid "Undo" msgstr "Tak Jadi" #: gnomemusic/songtoast.py:64 msgid "{} removed from {}" msgstr "{} dihapus dari {}" #: gnomemusic/utils.py:89 msgid "Unknown album" msgstr "Album tak dikenal" #: gnomemusic/utils.py:110 msgid "Unknown Artist" msgstr "Artis Tak Dikenal" #: gnomemusic/views/playlistsview.py:45 msgid "Playlists" msgstr "Daftar Putar" #: gnomemusic/views/searchview.py:220 msgid "No Search Started" msgstr "Tak Ada Pencarian Dimulai" #: gnomemusic/views/searchview.py:222 msgid "Use the searchbar to start searching for albums, artists or songs" msgstr "Gunakan bilah pencarian untuk mulai mencari album, artis, atau lagu" #: gnomemusic/views/searchview.py:226 msgid "No Results Found" msgstr "Tak Ada Hasil yang Ditemukan" #: gnomemusic/views/searchview.py:228 msgid "Try a different search" msgstr "Coba pencarian lain" #: gnomemusic/widgets/albumwidget.py:230 msgid "{} minute" msgid_plural "{} minutes" msgstr[0] "{} menit" #: gnomemusic/widgets/discbox.py:74 msgid "Disc {}" msgstr "Cakram {}" #: gnomemusic/widgets/playertoolbar.py:173 msgid "Pause" msgstr "Tahan" #: gnomemusic/widgets/playlistcontrols.py:130 msgid "{} Song" msgid_plural "{} Songs" msgstr[0] "{} Lagu" #: gnomemusic/widgets/searchheaderbar.py:50 msgid "Search songs, artists and albums" msgstr "Cari lagu, artis, dan album" #. noqa: F841 #: gnomemusic/widgets/songwidgetmenu.py:94 msgid "_Open Location" msgstr "Buka L_okasi" #. TRANSLATORS: These are verbs, to (un)mark something as a #. favorite. #: gnomemusic/widgets/startoggle.py:36 msgid "Unstar" msgstr "Hapus Bintang" #: gnomemusic/widgets/startoggle.py:36 msgid "Star" msgstr "Bintangi" #: gnomemusic/widgets/statusnavigationpage.py:51 msgid "Your XDG Music directory is not set." msgstr "Direktori XDG Music Anda tidak disetel." #: gnomemusic/widgets/statusnavigationpage.py:58 msgid "Music Folder" msgstr "Folder Musik" #. TRANSLATORS: This is a label to display a link to open user's music #. folder. {} will be replaced with the translated text 'Music folder' #: gnomemusic/widgets/statusnavigationpage.py:66 msgid "The contents of your {} will appear here." msgstr "Konten {} Anda akan muncul di sini." #: gnomemusic/widgets/statusnavigationpage.py:116 msgid "No Music Found" msgstr "Tak Ada Musik" #: gnomemusic/widgets/statusnavigationpage.py:117 msgid "Try a Different Search" msgstr "Cobalah Pencarian Lain" #: gnomemusic/widgets/statusnavigationpage.py:121 msgid "GNOME Music could not connect to Tracker." msgstr "GNOME Musik tidak dapat terhubung ke Pelacak." #: gnomemusic/widgets/statusnavigationpage.py:123 msgid "Your music files cannot be indexed without Tracker running." msgstr "Berkas musik Anda tidak dapat diindeks tanpa Pelacak berjalan." #: gnomemusic/widgets/statusnavigationpage.py:129 msgid "Your system Tracker version seems outdated." msgstr "Versi Pelacak sistem Anda tampaknya sudah usang." #: gnomemusic/widgets/statusnavigationpage.py:131 msgid "Music needs Tracker version 3.0.0 or higher." msgstr "Musik membutuhkan Pelacak versi 3.0.0 atau lebih tinggi." #~ msgid "Report music history to Last.fm" #~ msgstr "Laporkan riwayat musik ke Last.fm" #~ msgid "" #~ "Enables or disables sending scrobbles and the “currently playing” info to " #~ "Last.fm." #~ msgstr "" #~ "Aktifkan atau nonaktifkan pengiriman scrobbles dan info \"sedang " #~ "diputar\" ke Last.fm." #~ msgid "Last.fm Account" #~ msgstr "Akun Last.fm" #~ msgid "Report Music Listening" #~ msgstr "Laporkan Mendengarkan Musik" #~ msgid "_Help" #~ msgstr "_Bantuan" #~ msgid "Select" #~ msgstr "Pilih" #~ msgid "Back" #~ msgstr "Mundur" #~ msgid "" #~ "Last.fm is a music discovery service that gives you personalised " #~ "recommendations based on the music you listen to." #~ msgstr "" #~ "Last.fm adalah layanan penemuan musik yang memberi Anda rekomendasi hasil " #~ "personalisasi berdasarkan musik yang Anda dengarkan." #~ msgid "Music Reporting Not Setup" #~ msgstr "Pelaporan Musik Tidak Disetel" #~ msgid "Login to your Last.fm account to report your music listening." #~ msgstr "Masuk ke akun Last.fm Anda untuk melaporkan musik yang Anda dengar." #~ msgid "Login" #~ msgstr "Masuk" #~ msgid "Select All" #~ msgstr "Pilih Semua" #~ msgid "Select None" #~ msgstr "Pilih Tak Satupun" #~ msgid "Click on items to select them" #~ msgstr "Klik pada butir untuk memilihnya" #~ msgid "_Add to Playlist" #~ msgstr "T_ambah ke Daftar Putar" #~ msgid "Copyright The GNOME Music Developers" #~ msgstr "Hak Cipta Para Pengembang GNOME Musik" #~ msgid "Translated by" #~ msgstr "Diterjemahkan oleh" #~ msgid "Artists Results" #~ msgstr "Hasil Artis" #~ msgid "Albums Results" #~ msgstr "Hasil Album" #~ msgid "Selected {} song" #~ msgid_plural "Selected {} songs" #~ msgstr[0] "Dipilih {} lagu" #~ msgid "Your music listening is reported to Last.fm." #~ msgstr "Musik yang Anda dengar dilaporkan ke Last.fm." #~ msgid "Your music listening is not reported to Last.fm." #~ msgstr "Musik yang Anda dengar tidak dilaporkan ke Last.fm." #~ msgid "Logged in as {}" #~ msgstr "Masuk sebagai {}" #~ msgid "Configure" #~ msgstr "Konfigurasikan" #~ msgid "A music player and management application for GNOME." #~ msgstr "Aplikasi manajemen dan pemutar musik bagi GNOME." #~ msgid "Visit GNOME Music website" #~ msgstr "Kunjungi situs web Musik GNOME" #~ msgid "" #~ "GNOME Music 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.\n" #~ "\n" #~ "GNOME Music 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.\n" #~ "\n" #~ "You should have received a copy of the GNU General Public License along " #~ "with GNOME Music; if not, write to the Free Software Foundation, Inc., 51 " #~ "Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ "\n" #~ "The GNOME Music authors hereby grant permission for non-GPL compatible " #~ "GStreamer plugins to be used and distributed together with GStreamer and " #~ "GNOME Music. This permission is above and beyond the permissions granted " #~ "by the GPL license by which GNOME Music is covered. If you modify this " #~ "code, you may extend this exception to your version of the code, but you " #~ "are not obligated to do so. If you do not wish to do so, delete this " #~ "exception statement from your version." #~ msgstr "" #~ "GNOME Musik adalah perangkat lunak bebas; Anda dapat mendistribusikannya " #~ "dan/atau mengubahnya di bawah persyaratan GNU General Public License " #~ "sebagaimana dipublikasikan oleh Free Software Foundation; dengan Lisensi " #~ "versi 2, atau (sesuai pilihan Anda) sebarang versi lebih baru.\n" #~ "\n" #~ "GNOME Musik didistribusikan dengan harapan dapat berguna, tetapi TANPA " #~ "ADANYA JAMINAN; termasuk tanpa jaminan DAYA JUAL atau KELAIKAN UNTUK " #~ "TUJUAN TERTENTU. Lihat GNU General Public License untuk rincian lebih " #~ "lanjut.\n" #~ "\n" #~ "Anda seharusnya menerima salinan dari GNU General Public License bersama " #~ "GNOME Musik; jika tidak, kirimkan surat Anda ke Free Software Foundation, " #~ "Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n" #~ "\n" #~ "Para penulis GNOME Musik dengan ini memberikan ijin untuk plugin " #~ "GStreamer yang tak kompatibel dengan GPL untuk dipakai dan " #~ "didistribusikan bersama dengan GStreamer dan GNOME Musik. Ijin ini di " #~ "atas dan di luar hak yang diberikan oleh lisensi GPL yang mencakup GNOME " #~ "Musik. Bila Anda mengubah kode ini, Anda boleh memperluas pengecualian " #~ "ini ke versi kode Anda, tapi Anda tidak wajib melakukannya. Bila Anda " #~ "tak ingin seperti itu, hapuslah pernyataan pengecualian ini dari versi " #~ "Anda." #~ msgid "The contents of your Music Folder will appear here" #~ msgstr "Isi Folder Musik Anda akan muncul di sini" #~ msgid "GNOME Music" #~ msgstr "GNOME Musik" #~ msgid "Window position" #~ msgstr "Posisi jendela" #~ msgid "Window position (x and y)." #~ msgstr "Posisi jendela (x dan y)." #~ msgid "Loading" #~ msgstr "Memuat" #~ msgid "Add to Playlist…" #~ msgstr "Tambah ke Daftar Putar…" #~ msgid "" #~ "An easy way to play your music. Automatically discover music on your " #~ "computer, the local network and internet services." #~ msgstr "" #~ "Cara mudah memainkan musik Anda. Secara otomatis menemukan musik di " #~ "komputer Anda, jaringan lokal, dan layanan internet." #~ msgid "" #~ "Find tracks in your local collection, get music from DLNA servers or try " #~ "something new with the Jamendo and Magnatune services." #~ msgstr "" #~ "Temukan trek di koleksi lokal Anda, dapatkan musik dari server DLNA atau " #~ "coba sesuatu yang baru dengan layanan Jamendo dan Magnatune." #~ msgid "Inital state has been displayed" #~ msgstr "Keadaan awal telah ditampilkan" #~ msgid "Set to true when initial state has been displayed" #~ msgstr "Diisi dengan true ketika keadaan awal telah ditampilkan" #~ msgid "Hey DJ" #~ msgstr "Hey DJ" #~ msgid "Released" #~ msgstr "Dirilis" #~ msgid "Running Length" #~ msgstr "Lama Putar" #~ msgid "Composer" #~ msgstr "Pencipta" #~ msgctxt "context menu item" #~ msgid "Play" #~ msgstr "Putar" #~ msgid "Artist" #~ msgstr "Artis" #~ msgid "Album" #~ msgstr "Album" #~ msgid "Track Title" #~ msgstr "Judul Trek" #~ msgid "Local" #~ msgstr "Lokal" #~ msgid "Sources" #~ msgstr "Sumber" #~ msgid "Match" #~ msgstr "Cocok" #~ msgid "Untitled" #~ msgstr "Tanpa judul" #~ msgid "@icon@" #~ msgstr "@icon@" #~ msgid "_Quit" #~ msgstr "_Keluar" #~ msgid "Music is the new GNOME music playing application." #~ msgstr "Musik adalah aplikasi pemutar musik GNOME yang baru." #~ msgid "org.gnome.Music" #~ msgstr "org.gnome.Music" #~ msgid "Selected %d item" #~ msgid_plural "Selected %d items" #~ msgstr[0] "Dipilih %d butir" #~ msgid "Empty" #~ msgstr "Kosong" #~ msgid "Search mode" #~ msgstr "Mode cari" #~ msgid "If true, the search bar is shown." #~ msgstr "Bila berisi true, bilah pencarian ditampilkan." #~ msgid "Notifications mode" #~ msgstr "Mode pemberitahuan" #~ msgid "Enables or disables playback notifications" #~ msgstr "Mengaktifkan atau menonaktifkan pemberitahuan pemutaran" #~ msgid "%d min" #~ msgstr "%d mnt" #~ msgid "Select Playlist" #~ msgstr "Pilih Daftar Putar" 070701000000F5000081A400000000000000000000000166968E4E00005449000000000000000000000000000000000000001A00000000gnome-music-46.1/po/is.po# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Sveinn í Felli , 2015, 2017, 2018, 2019, 2021, 2022. msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-music/issues\n" "POT-Creation-Date: 2022-08-27 13:27+0000\n" "PO-Revision-Date: 2022-10-17 14:03+0000\n" "Last-Translator: Sveinn í Felli \n" "Language-Team: Icelandic\n" "Language: is\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Lokalize 21.12.3\n" #: data/org.gnome.Music.appdata.xml.in.in:6 #: data/org.gnome.Music.desktop.in.in:3 gnomemusic/about.py:236 #: gnomemusic/application.py:61 gnomemusic/window.py:71 msgid "Music" msgstr "Tónlist" #: data/org.gnome.Music.appdata.xml.in.in:7 #: data/org.gnome.Music.desktop.in.in:5 msgid "Play and organize your music collection" msgstr "Spila og skipuleggja tónlistarsafnið þitt" #: data/org.gnome.Music.appdata.xml.in.in:9 msgid "An easy and pleasant way to play your music." msgstr "Einföld og þægileg leið til að spila tónlistina þína." #: data/org.gnome.Music.appdata.xml.in.in:12 msgid "" "Find tracks in your local collection, use automatically generated playlists " "or curate a fresh one." msgstr "" "Finnur lög í safninu þínu á tölvunni, notar sjálfvirkt útbúna spilunarlista " "eða útbýr nýja." #: data/org.gnome.Music.appdata.xml.in.in:167 msgid "The GNOME Music developers" msgstr "GNOME Music forritararnir" #: data/org.gnome.Music.desktop.in.in:4 msgid "Music Player" msgstr "Tónlistarspilari" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Music.desktop.in.in:13 msgid "Music;Player;" msgstr "Tónlist;spilari;" #: data/org.gnome.Music.gschema.xml:12 msgid "Window size" msgstr "Gluggastærð" #: data/org.gnome.Music.gschema.xml:13 msgid "Window size (width and height)." msgstr "Breidd og hæð glugga." #: data/org.gnome.Music.gschema.xml:17 msgid "Window maximized" msgstr "Gluggi hámarkaður" #: data/org.gnome.Music.gschema.xml:18 msgid "Window maximized state." msgstr "Hámörkunargildi glugga." #: data/org.gnome.Music.gschema.xml:22 msgid "Playback repeat mode" msgstr "Endurtekningarhamur afspilunar" #. Translators: Don't translate allowed values, just the description in the brackets #: data/org.gnome.Music.gschema.xml:24 msgid "" "Value identifies whether to repeat or randomize playback through the " "collection. Allowed values are: “none” (repeat and shuffle are off), " "“song” (repeat current song), “all” (repeat playlist, no shuffle), " "“shuffle” (shuffle playlist, presumes repeat all)." msgstr "" "Gildið gefur til kynna hvort afspilun safnsins sé endurtekin eða gerð " "handahófskennd. Leyfð gildi eru: “ekkert” (slökkt er á endurtekningu og " "stokkun), “lag” (endurtaka núverandi lag), “allt” (endurtaka spilunarlista, " "engin stokkun), “stokkun” (stokka spilunarlista, gerir ráð fyrir að " "endurtaka allt)." #: data/org.gnome.Music.gschema.xml:28 msgid "Enable ReplayGain" msgstr "Virkja ReplayGain styrkjöfnun" #: data/org.gnome.Music.gschema.xml:29 msgid "Enables or disables ReplayGain for albums" msgstr "Virkjar eða gerir óvirka ReplayGain-styrkjöfnun fyrir hljómplötur" #: data/org.gnome.Music.gschema.xml:33 msgid "Inhibit system suspend" msgstr "Koma í veg fyrir svæfingu kerfis" #: data/org.gnome.Music.gschema.xml:34 msgid "Enables or disables inhibiting system suspend while playing music" msgstr "" "Virkjar eða gerir óvirkt kerfi sem setur í hvíld á meðan tónlist er spiluð" #: data/org.gnome.Music.gschema.xml:38 msgid "Report music history to Last.fm" msgstr "Tilkynna tónlistarspilun ti Last.fm" #: data/org.gnome.Music.gschema.xml:39 msgid "" "Enables or disables sending scrobbles and the “currently playing” info to " "Last.fm." msgstr "" "Virkjar eða gerir óvirkt að senda til Last.fm upplýsingar um tónlistarspilun " "(scrobbling) og upplýsingar um \"í spilun núna\"." #: data/ui/AlbumWidget.ui:84 data/ui/PlayerToolbar.ui:87 #: data/ui/PlaylistControls.ui:101 gnomemusic/widgets/playertoolbar.py:170 msgid "Play" msgstr "Spila" #: data/ui/AlbumWidget.ui:130 data/ui/PlaylistControls.ui:5 #: data/ui/SongWidgetMenu.ui:11 msgid "_Play" msgstr "S_pila" #: data/ui/AlbumWidget.ui:134 msgid "Add to _Favorite Songs" msgstr "Bæta við í U_ppáhaldslög" #: data/ui/AlbumWidget.ui:138 data/ui/SongWidgetMenu.ui:15 msgid "_Add to Playlist…" msgstr "Bæt_a við spilunarlista…" #: data/ui/AppMenu.ui:23 data/ui/LastfmDialog.ui:8 msgid "Last.fm Account" msgstr "Last.fm notandaaðgangur" #: data/ui/AppMenu.ui:36 msgid "Report Music Listening" msgstr "Tilkynna tónlistarspilun" #: data/ui/AppMenu.ui:58 msgid "_Keyboard Shortcuts" msgstr "_Flýtivísanir á lyklaborði" #: data/ui/AppMenu.ui:68 msgid "_Help" msgstr "_Hjálp" #: data/ui/AppMenu.ui:78 msgid "_About Music" msgstr "_Um Music tónlistarhugbúnaðinn" #: data/ui/EmptyView.ui:30 msgid "Welcome to Music" msgstr "Velkomin í Music-tónlistarspilarann" #: data/ui/HeaderBar.ui:16 msgid "Menu" msgstr "Valmynd" #: data/ui/HeaderBar.ui:24 data/ui/SearchHeaderBar.ui:15 msgid "Select" msgstr "Velja" #: data/ui/HeaderBar.ui:30 data/ui/PlaylistDialog.ui:213 #: data/ui/SearchHeaderBar.ui:20 msgid "_Cancel" msgstr "_Hætta við" #: data/ui/HeaderBar.ui:42 data/ui/SearchHeaderBar.ui:32 msgid "Search" msgstr "Leita" #: data/ui/HeaderBar.ui:50 msgid "Back" msgstr "Til baka" #: data/ui/help-overlay.ui:11 msgctxt "shortcut window" msgid "General" msgstr "Almennt" #: data/ui/help-overlay.ui:14 msgctxt "shortcut window" msgid "Close window" msgstr "Loka glugga" #: data/ui/help-overlay.ui:20 msgctxt "shortcut window" msgid "Search" msgstr "Leita" #: data/ui/help-overlay.ui:26 msgctxt "shortcut window" msgid "Help" msgstr "Hjálp" #: data/ui/help-overlay.ui:32 msgctxt "shortcut window" msgid "Shortcuts" msgstr "Flýtilyklar" #: data/ui/help-overlay.ui:40 msgctxt "shortcut window" msgid "Playback" msgstr "Afspilun" #: data/ui/help-overlay.ui:43 msgctxt "shortcut window" msgid "Play/Pause" msgstr "Spila / Bíða" #: data/ui/help-overlay.ui:49 msgctxt "shortcut window" msgid "Next song" msgstr "Næsta lag" #: data/ui/help-overlay.ui:55 msgctxt "shortcut window" msgid "Previous song" msgstr "Fyrra lag" #: data/ui/help-overlay.ui:61 msgctxt "shortcut window" msgid "Toggle repeat" msgstr "Víxla endurtekningu af/á" #: data/ui/help-overlay.ui:67 msgctxt "shortcut window" msgid "Toggle shuffle" msgstr "Víxla stokkun af/á" #: data/ui/help-overlay.ui:75 msgctxt "shortcut window" msgid "Navigation" msgstr "Flakk" #: data/ui/help-overlay.ui:78 msgctxt "shortcut window" msgid "Go to Albums" msgstr "Fara í Hljómplötur" #: data/ui/help-overlay.ui:84 msgctxt "shortcut window" msgid "Go to Artists" msgstr "Fara í Flytjendur" #: data/ui/help-overlay.ui:90 msgctxt "shortcut window" msgid "Go to Songs" msgstr "Fara í Lög" #: data/ui/help-overlay.ui:96 msgctxt "shortcut window" msgid "Go to Playlists" msgstr "Fara í Spilunarlistar" #: data/ui/help-overlay.ui:102 msgctxt "shortcut window" msgid "Go back" msgstr "Fara til baka" #: data/ui/LastfmDialog.ui:21 msgid "" "Last.fm is a music discovery service that gives you personalised " "recommendations based on the music you listen to." msgstr "" "Last.fm er tónlistarveita sem gefur þér perónulegar ráðleggingar byggðar á " "þeirri tónlist sem þú hlustar á." #: data/ui/LastfmDialog.ui:31 gnomemusic/widgets/lastfmdialog.py:57 msgid "Music Reporting Not Setup" msgstr "Ekki búið að setja upp tilkynningar um tónlistarspilun" #: data/ui/LastfmDialog.ui:44 gnomemusic/widgets/lastfmdialog.py:60 msgid "Login to your Last.fm account to report your music listening." msgstr "" "Skráðu þig inn á Last.fm aðganginn þinn til að tilkynna tónlistarspilunina " "þína." #: data/ui/LastfmDialog.ui:55 gnomemusic/widgets/lastfmdialog.py:58 msgid "Login" msgstr "Innskráning" #: data/ui/PlayerToolbar.ui:74 msgid "Previous" msgstr "Fyrra" #: data/ui/PlayerToolbar.ui:106 msgid "Next" msgstr "Næsta" #: data/ui/PlaylistControls.ui:9 msgid "_Delete" msgstr "_Eyða" #: data/ui/PlaylistControls.ui:13 msgid "_Rename…" msgstr "Endu_rnefna…" #: data/ui/PlaylistControls.ui:28 msgid "Playlist Name" msgstr "Heiti spilunarlista" #: data/ui/PlaylistControls.ui:62 msgid "_Done" msgstr "_Lokið" #: data/ui/PlaylistDialog.ui:52 msgid "Enter a name for your first playlist" msgstr "Settu inn heiti á fyrsta spilunarlistann þinn" #: data/ui/PlaylistDialog.ui:77 msgid "C_reate" msgstr "_Búa til" #: data/ui/PlaylistDialog.ui:146 msgid "New Playlist…" msgstr "Nýr spilunarlisti…" #: data/ui/PlaylistDialog.ui:161 msgid "Add" msgstr "Bæta við" #: data/ui/PlaylistDialog.ui:202 msgid "Add to Playlist" msgstr "Bæta við spilunarlista" #: data/ui/PlaylistDialog.ui:222 msgid "_Add" msgstr "Bæt_a við" #: data/ui/SearchView.ui:33 gnomemusic/views/artistsview.py:51 msgid "Artists" msgstr "Flytjendur" #: data/ui/SearchView.ui:42 data/ui/SearchView.ui:84 msgid "View All" msgstr "Skoða allt" #: data/ui/SearchView.ui:75 gnomemusic/views/albumsview.py:56 msgid "Albums" msgstr "Hljómplötur" #: data/ui/SearchView.ui:117 gnomemusic/views/songsview.py:52 msgid "Songs" msgstr "Lög" #: data/ui/SelectionBarMenuButton.ui:7 msgid "Select All" msgstr "Velja allt" #: data/ui/SelectionBarMenuButton.ui:11 msgid "Select None" msgstr "Velja ekkert" #: data/ui/SelectionBarMenuButton.ui:19 gnomemusic/widgets/headerbar.py:69 msgid "Click on items to select them" msgstr "Smelltu á atriði til að velja þau" #: data/ui/SelectionToolbar.ui:8 msgid "_Add to Playlist" msgstr "Bæt_a við spilunarlista" #: data/ui/SongWidgetMenu.ui:19 msgid "_Remove from Playlist" msgstr "Fja_rlægja af spilunarlista" #: gnomemusic/about.py:238 msgid "The GNOME Project" msgstr "GNOME-verkefnið" #: gnomemusic/about.py:242 msgid "translator-credits" msgstr "Sveinn í Felli, sv1@fellsnet.is" #: gnomemusic/about.py:246 #| msgid "Copyright © 2018 GNOME Music Developers" msgid "Copyright The GNOME Music Developers" msgstr "Höfundarréttur © GNOME Music forritararnir" #: gnomemusic/about.py:249 msgid "Translated by" msgstr "Þýtt af" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:894 msgid "Most Played" msgstr "Mest spilað" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:948 msgid "Never Played" msgstr "Aldrei spilað" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1001 msgid "Recently Played" msgstr "Nýlega spilað" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1064 msgid "Recently Added" msgstr "Nýlega bætt við" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1127 msgid "Favorite Songs" msgstr "Uppáhaldslög" #: gnomemusic/gstplayer.py:408 msgid "Unable to play the file" msgstr "Gat ekki spilað skrána" #: gnomemusic/gstplayer.py:414 msgid "_Find in {}" msgstr "_Finna í {}" #. TRANSLATORS: separator for two codecs #: gnomemusic/gstplayer.py:424 msgid " and " msgstr " og " #. TRANSLATORS: separator for a list of codecs #: gnomemusic/gstplayer.py:427 msgid ", " msgstr ", " #: gnomemusic/gstplayer.py:429 msgid "{} is required to play the file, but is not installed." msgid_plural "{} are required to play the file, but are not installed." msgstr[0] "{} er nauðsynlegt til að spila skrána, en er ekki uppsett." msgstr[1] "{} eru nauðsynleg til að spila skrána, en eru ekki uppsett." #: gnomemusic/inhibitsuspend.py:63 msgid "Playing music" msgstr "Spilandi tónlist" #. Translators: "shuffle" causes tracks to play in random order. #: gnomemusic/player.py:44 msgid "Shuffle" msgstr "Stokka" #: gnomemusic/player.py:45 msgid "Repeat Song" msgstr "Endurtaka lag" #: gnomemusic/player.py:46 msgid "Repeat All" msgstr "Endurtaka allt" #: gnomemusic/player.py:47 msgid "Shuffle/Repeat Off" msgstr "Stokkun/Endurtekning af" #: gnomemusic/playlisttoast.py:55 msgid "Playlist {} removed" msgstr "Spilunarlisti {} fjarlægður" #: gnomemusic/playlisttoast.py:56 gnomemusic/songtoast.py:65 msgid "Undo" msgstr "Afturkalla" #: gnomemusic/songtoast.py:64 msgid "{} removed from {}" msgstr "{} fjarlægt úr {}" #: gnomemusic/utils.py:92 msgid "Unknown album" msgstr "Óþekkt hljómplata" #: gnomemusic/utils.py:113 msgid "Unknown Artist" msgstr "Óþekktur flytjandi" #: gnomemusic/views/emptyview.py:65 msgid "Your XDG Music directory is not set." msgstr "XDG-tónlistarmappa hefur ekki verið skilgreind." #: gnomemusic/views/emptyview.py:72 msgid "Music Folder" msgstr "Tónlistarmappa" #. TRANSLATORS: This is a label to display a link to open user's music #. folder. {} will be replaced with the translated text 'Music folder' #: gnomemusic/views/emptyview.py:76 msgid "The contents of your {} will appear here." msgstr "Innihald {} birtist hér." #: gnomemusic/views/emptyview.py:124 msgid "No Music Found" msgstr "Engin tónlist fannst" #: gnomemusic/views/emptyview.py:125 msgid "Try a Different Search" msgstr "Reyna aðra leit" #: gnomemusic/views/emptyview.py:129 msgid "GNOME Music could not connect to Tracker." msgstr "GNOME tónlistarspilarinn gat ekki tengst Tracker-kerfinu." #: gnomemusic/views/emptyview.py:131 msgid "Your music files cannot be indexed without Tracker running." msgstr "" "Ekki er hægt að gera yfirlitsskrá yfir tónlistarskrár nema Tracker sé í " "gangi." #: gnomemusic/views/emptyview.py:137 msgid "Your system Tracker version seems outdated." msgstr "Tracker-útgáfa kerfisins þíns lítur út fyrir að vera úrelt." #: gnomemusic/views/emptyview.py:139 msgid "Music needs Tracker version 3.0.0 or higher." msgstr "Tónlistarspilarinn þarf Tracker útgáfu 3.0.0 eða hærri." #: gnomemusic/views/playlistsview.py:45 msgid "Playlists" msgstr "Spilunarlistar" #: gnomemusic/views/searchview.py:304 msgid "Artists Results" msgstr "Niðurstöður um flytjendur" #: gnomemusic/views/searchview.py:318 msgid "Albums Results" msgstr "Niðurstöður um hljómplötur" #: gnomemusic/widgets/albumwidget.py:245 msgid "{} minute" msgid_plural "{} minutes" msgstr[0] "{} mínúta" msgstr[1] "{} mínútur" #: gnomemusic/widgets/discbox.py:75 msgid "Disc {}" msgstr "Diskur {}" #: gnomemusic/widgets/headerbar.py:66 msgid "Selected {} song" msgid_plural "Selected {} songs" msgstr[0] "Valdi {} lag" msgstr[1] "Valdi {} lög" #: gnomemusic/widgets/lastfmdialog.py:64 msgid "Your music listening is reported to Last.fm." msgstr "Tónlistarspilun þín er tilkynnt til Last.fm." #: gnomemusic/widgets/lastfmdialog.py:66 msgid "Your music listening is not reported to Last.fm." msgstr "Tónlistarspilun þín er ekki tilkynnt til Last.fm." #. TRANSLATORS: displays the username of the Last.fm account #: gnomemusic/widgets/lastfmdialog.py:70 msgid "Logged in as {}" msgstr "Skráð inn sem {}" #: gnomemusic/widgets/lastfmdialog.py:71 msgid "Configure" msgstr "Stilla" #: gnomemusic/widgets/playertoolbar.py:167 msgid "Pause" msgstr "Hlé" #: gnomemusic/widgets/playlistcontrols.py:130 msgid "{} Song" msgid_plural "{} Songs" msgstr[0] "{} lag" msgstr[1] "{} lög" #~ msgid "A music player and management application for GNOME." #~ msgstr "Tónlistarspilari og forrit fyrir umsýslu tónlistar fyrir GNOME." #~ msgid "Visit GNOME Music website" #~ msgstr "Fara á heimasíðu GNOME tónlistarspilarans" #~ msgid "" #~ "GNOME Music 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.\n" #~ "\n" #~ "GNOME Music 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.\n" #~ "\n" #~ "You should have received a copy of the GNU General Public License along " #~ "with GNOME Music; if not, write to the Free Software Foundation, Inc., 51 " #~ "Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ "\n" #~ "The GNOME Music authors hereby grant permission for non-GPL compatible " #~ "GStreamer plugins to be used and distributed together with GStreamer and " #~ "GNOME Music. This permission is above and beyond the permissions granted " #~ "by the GPL license by which GNOME Music is covered. If you modify this " #~ "code, you may extend this exception to your version of the code, but you " #~ "are not obligated to do so. If you do not wish to do so, delete this " #~ "exception statement from your version." #~ msgstr "" #~ "Þetta er frjáls hugbúnaður; þú mátt dreifa honum og/eða breyta samkvæmt " #~ "skilmálum í almenna GNU GPL notkunarleyfinu eins og það er gefið út af " #~ "Frjálsu hugbúnaðarstofnuninni; annaðhvort útgáfu 2 af GPL-leyfinu, eða " #~ "(ef þér sýnist svo) einhverja nýrri útgáfu leyfisins.\n" #~ "\n" #~ "Hugbúnaðnum er dreift í þeirri von að hann geti verið gagnlegur, en ÁN " #~ "ALLRAR ÁBYRGÐAR; einnig án þeirrar ábyrgðar sem gefin er í skyn með " #~ "SELJANLEIKA eða EIGINLEIKUM TIL TILTEKINNA NOTA. Sjá almenna GNU GPL " #~ "notkunarleyfið fyrir nánari upplýsingar.\n" #~ "\n" #~ "Það ætti að hafa fylgt afrit af almenna GNU GPL notkunarleyfinu með " #~ "forritinu; ef ekki skrifið þá Fjálsu hugbúnarstofnuninni: Free Software " #~ "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, " #~ "USA.\n" #~ "\n" #~ "Höfundar GNOME Music gefa hér með leyfi sitt fyrir því að nota megi " #~ "GStreamer viðbætur sem ekki falla undir GPL-notkunarleyfi eða sé ekki " #~ "dreift með GStreamer og GNOME Music. Þessi heimild er rétthærri en " #~ "kvaðir GPL-skilmálanna sem GNOME Music fellur undir. Ef þú breytir " #~ "þessum kóða, geturðu víkkað þessa undanþágu til að ná yfir þína útgáfu " #~ "kóðans, en slíkt er ekki skylda. Ef þú ákveður að gera það ekki, eyddu " #~ "þá þessari undanþágu út úr þinni útgáfu." #~| msgid "The contents of your {} will appear here." #~ msgid "The contents of your Music Folder will appear here" #~ msgstr "Innihald Tónlist-möppunnar þinnar birtist hér" #~ msgid "GNOME Music" #~ msgstr "GNOME tónlistarspilari" #~ msgid "Window position" #~ msgstr "Staðsetning glugga" #~ msgid "Window position (x and y)." #~ msgstr "Staðsetning glugga (x og y)." #~ msgid "Loading" #~ msgstr "Hleð inn" #~ msgid "Add to Playlist…" #~ msgstr "Bæta við spilunarlista…" #~ msgid "" #~ "An easy way to play your music. Automatically discover music on your " #~ "computer, the local network and internet services." #~ msgstr "" #~ "Einföld leið til að spila tónlistina þína. Finndu sjálfkrafa tónlist á " #~ "tölvunni þinni, staðarnetinu og internetþjónustum." #~ msgid "" #~ "Find tracks in your local collection, get music from DLNA servers or try " #~ "something new with the Jamendo and Magnatune services." #~ msgstr "" #~ "Finndu lög í þínu eigin safni, náðu í tónlist af DLNA-þjónum eða prófaðu " #~ "eitthvað alveg nýtt frá þjónustum á borð við Jamendo og Magnatune." #~ msgid "Inital state has been displayed" #~ msgstr "Upphafsstaða var birt" #~ msgid "Set to true when initial state has been displayed" #~ msgstr "Setja sem satt þegar upphafsstaða hefur verið birt" #~ msgid "Released" #~ msgstr "Útgefið" #~ msgid "Running Length" #~ msgstr "Spilunartími" #~ msgid "Composer" #~ msgstr "Tónskáld" #~ msgctxt "context menu item" #~ msgid "Play" #~ msgstr "Spila" #~ msgid "Untitled" #~ msgstr "Ónefnt" #~ msgid "Hey DJ" #~ msgstr "Plötusnúður" #~ msgid "All" #~ msgstr "Allt" #~ msgid "Artist" #~ msgstr "Flytjandi" #~ msgid "Album" #~ msgstr "Albúm" #~ msgid "Track Title" #~ msgstr "Heiti lags" #~ msgid "Local" #~ msgstr "Staðvært" #~ msgid "Sources" #~ msgstr "Uppruni" #~ msgid "Match" #~ msgstr "Samsvörun" #~ msgid "@icon@" #~ msgstr "@icon@" #~ msgid "_Quit" #~ msgstr "_Hætta" #~ msgid "Music is the new GNOME music playing application." #~ msgstr "Tónlist/Music er nýi GNOME tónlistarspilarinn." #~| msgid "gnome-music" #~ msgid "org.gnome.Music" #~ msgstr "org.gnome.Music" #~ msgid "Search mode" #~ msgstr "Leitarhamur" #~ msgid "If true, the search bar is shown." #~ msgstr "Ef hakað er við þetta, birtist leitarstikan." #~ msgid "Notifications mode" #~ msgstr "Tilkynningahamur" #~ msgid "Enables or disables playback notifications" #~ msgstr "Virkjar eða gerir óvirkar tilkynningar um afspilun" #~ msgid "Selected %d item" #~ msgid_plural "Selected %d items" #~ msgstr[0] "Valdi %d atriði" #~ msgstr[1] "Valdi %d atriði" #~ msgid "%d min" #~ msgstr "%d mín" #~ msgid "Empty" #~ msgstr "Tómt" #~ msgid "Select Playlist" #~ msgstr "Veldu spilunarlista" #~ msgid "the|a|an" #~ msgstr "the|a|an" #~ msgid "the a an" #~ msgstr "the a an hin" #~ msgid "All Artists" #~ msgstr "Allir flytjendur" #~ msgid "Not playing" #~ msgstr "Ekki í spilun" #~ msgid "by %s, from %s" #~ msgstr "eftir %s, af %s" 070701000000F6000081A400000000000000000000000166968E4E00003D32000000000000000000000000000000000000001A00000000gnome-music-46.1/po/it.po# Italian translation of Gnome Music. # Copyright (C) 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Free Software Foundation, Inc. # Copyright (C) 2020, 2022, 2023, 2024 Free Software Foundation, Inc. # # Convenzioni usate: # # song & track # Tradurre entrambi come brano tranne i casi # in cui traccia è più adeguato. # # browser # Ce ne sono due tipi: quello per condivisioni su # Bonjour/Zeroconf ed il widget che permette di filtrare # per artista/album/autore. Il primo è browser, il # secondo catalogo (ove possibile distinguere) # Milo Casagrande , 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2022, 2023, 2024. # Gianvito Cavasoli , 2023. # msgid "" msgstr "" "Project-Id-Version: gnome-music\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-music/issues\n" "POT-Creation-Date: 2024-02-11 20:43+0000\n" "PO-Revision-Date: 2024-03-01 14:17+0100\n" "Last-Translator: Milo Casagrande \n" "Language-Team: Italian \n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Launchpad-Export-Date: 2012-03-06 09:28+0000\n" "X-Generator: Poedit 3.4.1\n" #: data/org.gnome.Music.appdata.xml.in.in:6 #: data/org.gnome.Music.desktop.in.in:3 data/ui/StatusNavigationPage.ui:4 #: gnomemusic/about.py:138 gnomemusic/application.py:59 gnomemusic/window.py:65 msgid "Music" msgstr "Musica" #: data/org.gnome.Music.appdata.xml.in.in:7 #: data/org.gnome.Music.desktop.in.in:5 msgid "Play and organize your music collection" msgstr "Riproduce e organizza la collezione musicale" #: data/org.gnome.Music.appdata.xml.in.in:9 msgid "An easy and pleasant way to play your music." msgstr "Un modo semplice e piacevole per riprodurre la propria musica." #: data/org.gnome.Music.appdata.xml.in.in:12 msgid "" "Find tracks in your local collection, use automatically generated playlists " "or curate a fresh one." msgstr "" "Trova i brani nella tua raccolta locale, usa le playlist generate " "automaticamente o curane una nuova." #. developer_name tag deprecated with Appstream 1.0 #: data/org.gnome.Music.appdata.xml.in.in:188 msgid "The GNOME Music developers" msgstr "Gli sviluppatori di GNOME Musica" #: data/org.gnome.Music.desktop.in.in:4 msgid "Music Player" msgstr "Riproduttore musicale" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Music.desktop.in.in:13 msgid "Music;Player;" msgstr "Musica;Riproduttore;" #: data/org.gnome.Music.gschema.xml:12 msgid "Window size" msgstr "Dimensione finestra" #: data/org.gnome.Music.gschema.xml:13 msgid "Window size (width and height)." msgstr "La dimensione della finestra (larghezza e altezza)." #: data/org.gnome.Music.gschema.xml:17 msgid "Window maximized" msgstr "Finestra massimizzata" #: data/org.gnome.Music.gschema.xml:18 msgid "Window maximized state." msgstr "Lo stato di massimizzazione della finestra." #: data/org.gnome.Music.gschema.xml:22 msgid "Playback repeat mode" msgstr "Modalità ripetizione" #. Translators: Don't translate allowed values, just the description in the brackets #: data/org.gnome.Music.gschema.xml:24 msgid "" "Value identifies whether to repeat or randomize playback through the " "collection. Allowed values are: “none” (repeat and shuffle are off), “song” " "(repeat current song), “all” (repeat playlist, no shuffle), “shuffle” " "(shuffle playlist, presumes repeat all)." msgstr "" "Indica se ripetere o riprodurre a caso la libreria musicale. Valori " "consentiti sono: \"none\" (ripetizione e riproduzione casuale disabilitati), " "\"song\" (ripete il brano corrente), \"all\" (ripete playlist, niente " "riproduzione casuale), \"shuffle\" (riproduzione casuale della playlist, " "assume di ripetere tutto)." #: data/org.gnome.Music.gschema.xml:28 data/ui/PreferencesDialog.ui:27 msgid "Enable ReplayGain" msgstr "Abilita ReplayGain" #: data/org.gnome.Music.gschema.xml:29 msgid "Enables or disables ReplayGain for albums" msgstr "Abilita o disabilita il ReplayGain per gli album" #: data/org.gnome.Music.gschema.xml:33 msgid "Inhibit system suspend" msgstr "Inibisce la sospensione del sistema" #: data/org.gnome.Music.gschema.xml:34 msgid "Enables or disables inhibiting system suspend while playing music" msgstr "" "Abilita/Disabilita la sospensione del sistema quando viene riprodotta della " "musica" #: data/ui/AlbumsSearchNavigationPage.ui:5 data/ui/SearchView.ui:98 #: gnomemusic/views/albumsview.py:52 msgid "Albums" msgstr "Album" #: data/ui/AlbumWidget.ui:84 data/ui/PlayerToolbar.ui:87 #: data/ui/PlaylistControls.ui:101 gnomemusic/widgets/playertoolbar.py:176 msgid "Play" msgstr "Riproduci" #: data/ui/AlbumWidget.ui:130 data/ui/PlaylistControls.ui:5 #: data/ui/SongWidgetMenu.ui:11 msgid "_Play" msgstr "_Riproduci" #: data/ui/AlbumWidget.ui:134 msgid "Add to _Favorite Songs" msgstr "Aggiungi ai _brani preferiti" #: data/ui/AlbumWidget.ui:138 data/ui/SongWidgetMenu.ui:15 msgid "_Add to Playlist…" msgstr "Aggiungi a _playlist…" #: data/ui/ArtistsSearchNavigationPage.ui:5 data/ui/SearchView.ui:41 #: gnomemusic/views/artistsview.py:51 msgid "Artists" msgstr "Artisti" #: data/ui/HeaderBar.ui:14 msgid "Menu" msgstr "Menù" #: data/ui/HeaderBar.ui:22 data/ui/SearchHeaderBar.ui:12 msgid "Search" msgstr "Cerca" #: data/ui/HeaderBar.ui:31 data/ui/PreferencesDialog.ui:4 msgid "Preferences" msgstr "Preferenze" #: data/ui/HeaderBar.ui:35 msgid "Keyboard Shortcuts" msgstr "Scorciatoie da tastiera" #: data/ui/HeaderBar.ui:39 msgid "Help" msgstr "Aiuto" #: data/ui/HeaderBar.ui:43 msgid "About Music" msgstr "Informazioni su Musica" #: data/ui/help-overlay.ui:11 msgctxt "shortcut window" msgid "General" msgstr "Generale" #: data/ui/help-overlay.ui:14 msgctxt "shortcut window" msgid "Close window" msgstr "Chiude la finestra" #: data/ui/help-overlay.ui:20 msgctxt "shortcut window" msgid "Search" msgstr "Cerca" #: data/ui/help-overlay.ui:26 msgctxt "shortcut window" msgid "Help" msgstr "Aiuto" #: data/ui/help-overlay.ui:32 msgctxt "shortcut window" msgid "Shortcuts" msgstr "Scorciatoie" #: data/ui/help-overlay.ui:40 msgctxt "shortcut window" msgid "Playback" msgstr "Riproduzione" #: data/ui/help-overlay.ui:43 msgctxt "shortcut window" msgid "Play/Pause" msgstr "Riproduci/Pausa" #: data/ui/help-overlay.ui:49 msgctxt "shortcut window" msgid "Next song" msgstr "Brano successivo" #: data/ui/help-overlay.ui:55 msgctxt "shortcut window" msgid "Previous song" msgstr "Brano precedente" #: data/ui/help-overlay.ui:61 msgctxt "shortcut window" msgid "Toggle repeat" msgstr "Attiva/Disattiva ripetizione" #: data/ui/help-overlay.ui:67 msgctxt "shortcut window" msgid "Toggle shuffle" msgstr "Attiva/Disattiva riproduzione casuale" #: data/ui/help-overlay.ui:75 msgctxt "shortcut window" msgid "Navigation" msgstr "Navigazione" #: data/ui/help-overlay.ui:78 msgctxt "shortcut window" msgid "Go to Albums" msgstr "Va agli album" #: data/ui/help-overlay.ui:84 msgctxt "shortcut window" msgid "Go to Artists" msgstr "Va agli artisti" #: data/ui/help-overlay.ui:90 msgctxt "shortcut window" msgid "Go to Songs" msgstr "Va ai brani" #: data/ui/help-overlay.ui:96 msgctxt "shortcut window" msgid "Go to Playlists" msgstr "Va alle playlist" #: data/ui/help-overlay.ui:102 msgctxt "shortcut window" msgid "Go back" msgstr "Indietro" #: data/ui/PlayerToolbar.ui:74 msgid "Previous" msgstr "Precedente" #: data/ui/PlayerToolbar.ui:106 msgid "Next" msgstr "Successiva" #: data/ui/PlaylistControls.ui:9 msgid "_Delete" msgstr "_Elimina" #: data/ui/PlaylistControls.ui:13 msgid "_Rename…" msgstr "_Rinomina…" #: data/ui/PlaylistControls.ui:28 msgid "Playlist Name" msgstr "Nome playlist" #: data/ui/PlaylistControls.ui:62 msgid "_Done" msgstr "_Fatto" #: data/ui/PlaylistDialog.ui:16 msgid "Add to Playlist" msgstr "Aggiungi a playlist" #: data/ui/PlaylistDialog.ui:27 msgid "_Cancel" msgstr "A_nnulla" #: data/ui/PlaylistDialog.ui:36 msgid "_Add" msgstr "A_ggiungi" #: data/ui/PlaylistDialog.ui:91 msgid "Enter a name for your first playlist" msgstr "Inserire un nome per la prima playlist" #: data/ui/PlaylistDialog.ui:116 msgid "C_reate" msgstr "C_rea" #: data/ui/PlaylistDialog.ui:177 msgid "New Playlist…" msgstr "Nuova playlist…" #: data/ui/PlaylistDialog.ui:189 msgid "Add" msgstr "Aggiungi" #: data/ui/PreferencesDialog.ui:9 msgid "Player Settings" msgstr "Preferenze riproduttore" #: data/ui/PreferencesDialog.ui:12 msgid "Repeat Mode" msgstr "Modalità ripetizione" #: data/ui/PreferencesDialog.ui:16 msgid "None" msgstr "Nessuno" #: data/ui/PreferencesDialog.ui:17 msgid "Song" msgstr "Brano" #: data/ui/PreferencesDialog.ui:18 msgid "All" msgstr "Tutto" #: data/ui/PreferencesDialog.ui:19 gnomemusic/player.py:51 msgid "Shuffle" msgstr "Mischia" #: data/ui/PreferencesDialog.ui:28 msgid "Balance loudness between songs if ReplayGain metadata is found" msgstr "" "Bilancia l'audio tra le canzoni se vengono trovati meta-dati ReplayGain" #: data/ui/PreferencesDialog.ui:35 msgid "Power Settings" msgstr "Impostazioni alimentazione" #: data/ui/PreferencesDialog.ui:38 msgid "Inhibit Suspend" msgstr "Inibire la sospensione" #: data/ui/PreferencesDialog.ui:39 msgid "Only while playing" msgstr "Solo quando in riproduzione" #: data/ui/SearchView.ui:55 data/ui/SearchView.ui:112 msgid "View All" msgstr "Visualizza tutti" #: data/ui/SearchView.ui:154 msgid "Songs" msgstr "Brani" #: data/ui/SongWidgetMenu.ui:19 msgid "_Remove from Playlist" msgstr "_Rimuovi da playlist" #: data/ui/StatusNavigationPage.ui:36 msgid "Welcome to Music" msgstr "Benvenuti in Musica" #: gnomemusic/about.py:140 msgid "The GNOME Project" msgstr "Il progetto GNOME" #. Translators should localize the following string which #. will be displayed at the bottom of the about box to give #. credit to the translator(s). #: gnomemusic/about.py:146 msgid "translator-credits" msgstr "Milo Casagrande " #: gnomemusic/about.py:150 #| msgid "The GNOME Music developers" msgid "© The GNOME Music Developers" msgstr "© Gli sviluppatori di GNOME Musica" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:839 msgid "Most Played" msgstr "Più ascoltati" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:893 msgid "Never Played" msgstr "Mai ascoltati" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:946 msgid "Recently Played" msgstr "Ascoltati di recente" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1025 msgid "Recently Added" msgstr "Aggiunti di recente" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1088 msgid "Favorite Songs" msgstr "Brani preferiti" #. TRANSLATORS: this is a playlist name indicating that the #. files are not tagged enough to be displayed in the albums #. or artists views. #: gnomemusic/grilowrappers/grltrackerplaylists.py:1142 msgid "Insufficiently Tagged" msgstr "Tag insufficienti" #: gnomemusic/gstplayer.py:418 msgid "Unable to play the file" msgstr "Impossibile riprodurre il file" #: gnomemusic/gstplayer.py:424 msgid "_Find in {}" msgstr "_Trova in {}" #. TRANSLATORS: separator for two codecs #: gnomemusic/gstplayer.py:434 msgid " and " msgstr " e " #. TRANSLATORS: separator for a list of codecs #: gnomemusic/gstplayer.py:437 msgid ", " msgstr ", " #: gnomemusic/gstplayer.py:439 msgid "{} is required to play the file, but is not installed." msgid_plural "{} are required to play the file, but are not installed." msgstr[0] "{} è richiesto per riprodurre i file, ma non è installato." msgstr[1] "{} sono richiesti per riprodurre il file, ma non sono installati." #: gnomemusic/inhibitsuspend.py:69 msgid "Playing music" msgstr "Musica in riproduzione" #. Translators: "shuffle" causes tracks to play in random order. #: gnomemusic/player.py:48 msgid "Shuffle/Repeat Off" msgstr "Mischia/Ripeti disattivati" #: gnomemusic/player.py:49 msgid "Repeat Song" msgstr "Ripeti brano" #: gnomemusic/player.py:50 msgid "Repeat All" msgstr "Ripeti tutto" #: gnomemusic/playlisttoast.py:55 msgid "Playlist {} removed" msgstr "Playlist {} rimossa" #: gnomemusic/playlisttoast.py:56 gnomemusic/songtoast.py:65 msgid "Undo" msgstr "Annulla" #: gnomemusic/songtoast.py:64 msgid "{} removed from {}" msgstr "{} rimosso da {}" #: gnomemusic/utils.py:89 msgid "Unknown album" msgstr "Album sconosciuto" #: gnomemusic/utils.py:110 msgid "Unknown Artist" msgstr "Artista sconosciuto" #: gnomemusic/views/playlistsview.py:45 msgid "Playlists" msgstr "Playlist" #: gnomemusic/views/searchview.py:220 msgid "No Search Started" msgstr "Nessuna ricerca avviata" #: gnomemusic/views/searchview.py:222 msgid "Use the searchbar to start searching for albums, artists or songs" msgstr "Usare la barra di ricerca per trovare album, artisti e brani" #: gnomemusic/views/searchview.py:226 msgid "No Results Found" msgstr "Nessun risultato trovato" #: gnomemusic/views/searchview.py:228 msgid "Try a different search" msgstr "Provare un altro criterio di ricerca" #: gnomemusic/widgets/albumwidget.py:230 msgid "{} minute" msgid_plural "{} minutes" msgstr[0] "{} minuto" msgstr[1] "{} minuti" #: gnomemusic/widgets/discbox.py:74 msgid "Disc {}" msgstr "Disco {}" #: gnomemusic/widgets/playertoolbar.py:173 msgid "Pause" msgstr "Pausa" #: gnomemusic/widgets/playlistcontrols.py:130 msgid "{} Song" msgid_plural "{} Songs" msgstr[0] "{} brano" msgstr[1] "{} brani" #: gnomemusic/widgets/searchheaderbar.py:50 msgid "Search songs, artists and albums" msgstr "Cerca brani, artisti e album" #. noqa: F841 #: gnomemusic/widgets/songwidgetmenu.py:94 msgid "_Open Location" msgstr "A_pri posizione" #. TRANSLATORS: These are verbs, to (un)mark something as a #. favorite. #: gnomemusic/widgets/startoggle.py:36 msgid "Unstar" msgstr "Non preferito" #: gnomemusic/widgets/startoggle.py:36 msgid "Star" msgstr "Preferito" #: gnomemusic/widgets/statusnavigationpage.py:51 msgid "Your XDG Music directory is not set." msgstr "La directory Musica di XDG non è impostata." #: gnomemusic/widgets/statusnavigationpage.py:58 msgid "Music Folder" msgstr "Cartella Musica" #. TRANSLATORS: This is a label to display a link to open user's music #. folder. {} will be replaced with the translated text 'Music folder' #: gnomemusic/widgets/statusnavigationpage.py:66 msgid "The contents of your {} will appear here." msgstr "Il contenuto della propria «{}» apparirà qui." #: gnomemusic/widgets/statusnavigationpage.py:116 msgid "No Music Found" msgstr "Nessuna musica trovata" #: gnomemusic/widgets/statusnavigationpage.py:117 msgid "Try a Different Search" msgstr "Provare con un'altra ricerca" #: gnomemusic/widgets/statusnavigationpage.py:121 msgid "GNOME Music could not connect to Tracker." msgstr "Impossibile collegarsi a Tracker." #: gnomemusic/widgets/statusnavigationpage.py:123 msgid "Your music files cannot be indexed without Tracker running." msgstr "" "Non è possibile indicizzare i propri file musicali senza Tracker in " "esecuzione." #: gnomemusic/widgets/statusnavigationpage.py:129 msgid "Your system Tracker version seems outdated." msgstr "La versione di Tracker del sistema non sembra essere recente." #: gnomemusic/widgets/statusnavigationpage.py:131 msgid "Music needs Tracker version 3.0.0 or higher." msgstr "Musica necessita della versione 3.0.0, o successive, di Tracker." 070701000000F7000081A400000000000000000000000166968E4E000049FD000000000000000000000000000000000000001A00000000gnome-music-46.1/po/ja.po# Japanese translation for gnome-music. # Copyright (C) 2013-2015, 2019-2020, 2022 gnome-music's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-music package. # DanielaHidemiOyafuso , 2013. # Ikuya Awashiro , 2014. # Kento Tsuji , 2014. # Hajime Taira , 2015. # Jiro Matsuzawa , 2015. # sicklylife , 2019-2020, 2022. # msgid "" msgstr "" "Project-Id-Version: gnome-music master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-music/issues\n" "POT-Creation-Date: 2022-02-19 12:39+0000\n" "PO-Revision-Date: 2022-03-13 20:50+0900\n" "Last-Translator: sicklylife \n" "Language-Team: Japanese \n" "Language: ja\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" #: data/org.gnome.Music.appdata.xml.in.in:6 #: data/org.gnome.Music.desktop.in.in:3 gnomemusic/application.py:61 #: gnomemusic/window.py:71 msgid "Music" msgstr "ミュージック" #: data/org.gnome.Music.appdata.xml.in.in:7 #: data/org.gnome.Music.desktop.in.in:5 msgid "Play and organize your music collection" msgstr "音楽コレクションの再生と整理" #: data/org.gnome.Music.appdata.xml.in.in:9 msgid "An easy and pleasant way to play your music." msgstr "" #: data/org.gnome.Music.appdata.xml.in.in:12 msgid "" "Find tracks in your local collection, use automatically generated playlists " "or curate a fresh one." msgstr "" #: data/org.gnome.Music.appdata.xml.in.in:149 msgid "The GNOME Music developers" msgstr "The GNOME Music developers" #: data/org.gnome.Music.desktop.in.in:4 msgid "Music Player" msgstr "音楽プレーヤー" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Music.desktop.in.in:13 msgid "Music;Player;" msgstr "Music;Player;音楽;楽曲;ミュージック;再生;プレーヤー;" #: data/org.gnome.Music.gschema.xml:12 msgid "Window size" msgstr "ウィンドウのサイズ" #: data/org.gnome.Music.gschema.xml:13 msgid "Window size (width and height)." msgstr "ウィンドウのサイズ (幅と高さ) です。" #: data/org.gnome.Music.gschema.xml:17 msgid "Window maximized" msgstr "ウィンドウの最大化" #: data/org.gnome.Music.gschema.xml:18 msgid "Window maximized state." msgstr "ウィンドウの最大化状態です。" #: data/org.gnome.Music.gschema.xml:22 msgid "Playback repeat mode" msgstr "プレイバックリピートモード" #. Translators: Don't translate allowed values, just the description in the brackets #: data/org.gnome.Music.gschema.xml:24 msgid "" "Value identifies whether to repeat or randomize playback through the " "collection. Allowed values are: “none” (repeat and shuffle are off), " "“song” (repeat current song), “all” (repeat playlist, no shuffle), " "“shuffle” (shuffle playlist, presumes repeat all)." msgstr "" "コレクションをリピートかランダム再生するかどうかの値です。使用可能な値: " "“none” (リピートとシャッフルを無効にする), “song” (再生中の曲をリピートす" "る), “all” (プレイリストをリピート、シャッフルしない), “shuffle” (プレイリス" "トをシャッフル、 プレイリストの全曲をリピートする)" #: data/org.gnome.Music.gschema.xml:28 msgid "Enable ReplayGain" msgstr "ReplayGain を有効にする" #: data/org.gnome.Music.gschema.xml:29 msgid "Enables or disables ReplayGain for albums" msgstr "アルバムの ReplayGain を有効にするかどうか" #: data/org.gnome.Music.gschema.xml:33 msgid "Inhibit system suspend" msgstr "" #: data/org.gnome.Music.gschema.xml:34 msgid "Enables or disables inhibiting system suspend while playing music" msgstr "" #: data/org.gnome.Music.gschema.xml:38 msgid "Report music history to Last.fm" msgstr "" #: data/org.gnome.Music.gschema.xml:39 msgid "" "Enables or disables sending scrobbles and the “currently playing” info to " "Last.fm." msgstr "" #: data/ui/AboutDialog.ui.in:9 msgid "Copyright © 2018 GNOME Music Developers" msgstr "Copyright © 2018 GNOME Music Developers" #: data/ui/AboutDialog.ui.in:10 msgid "A music player and management application for GNOME." msgstr "音楽の再生と管理をするための GNOME アプリケーションです。" #: data/ui/AboutDialog.ui.in:12 msgid "Visit GNOME Music website" msgstr "GNOME ミュージックのウェブサイトにアクセスする" #: data/ui/AboutDialog.ui.in:13 msgid "" "GNOME Music 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.\n" "\n" "GNOME Music 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.\n" "\n" "You should have received a copy of the GNU General Public License along with " "GNOME Music; if not, write to the Free Software Foundation, Inc., 51 " "Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" "\n" "The GNOME Music authors hereby grant permission for non-GPL compatible " "GStreamer plugins to be used and distributed together with GStreamer and " "GNOME Music. This permission is above and beyond the permissions granted by " "the GPL license by which GNOME Music is covered. If you modify this code, " "you may extend this exception to your version of the code, but you are not " "obligated to do so. If you do not wish to do so, delete this exception " "statement from your version." msgstr "" #: data/ui/AlbumWidget.ui:86 data/ui/PlayerToolbar.ui:88 #: data/ui/PlaylistControls.ui:101 gnomemusic/widgets/playertoolbar.py:168 msgid "Play" msgstr "再生" #: data/ui/AlbumWidget.ui:132 data/ui/PlaylistControls.ui:5 #: data/ui/SongWidgetMenu.ui:11 msgid "_Play" msgstr "再生(_P)" #: data/ui/AlbumWidget.ui:136 msgid "Add to _Favorite Songs" msgstr "お気に入りの曲に追加(_F)" #: data/ui/AlbumWidget.ui:140 data/ui/SongWidgetMenu.ui:15 msgid "_Add to Playlist…" msgstr "プレイリストに追加(_A)…" #: data/ui/AppMenu.ui:23 data/ui/LastfmDialog.ui:8 msgid "Last.fm Account" msgstr "Last.fm アカウント" #: data/ui/AppMenu.ui:36 msgid "Report Music Listening" msgstr "鑑賞した音楽を報告" #: data/ui/AppMenu.ui:58 msgid "_Keyboard Shortcuts" msgstr "キーボードショートカット(_K)" #: data/ui/AppMenu.ui:68 msgid "_Help" msgstr "ヘルプ(_H)" #: data/ui/AppMenu.ui:78 msgid "_About Music" msgstr "“ミュージック”について(_A)" #: data/ui/EmptyView.ui:26 data/ui/InitialState.ui:13 msgid "Welcome to Music" msgstr "“ミュージック”へようこそ" #: data/ui/HeaderBar.ui:16 msgid "Menu" msgstr "メニュー" #: data/ui/HeaderBar.ui:24 data/ui/SearchHeaderBar.ui:15 msgid "Select" msgstr "選択" #: data/ui/HeaderBar.ui:30 data/ui/PlaylistDialog.ui:211 #: data/ui/SearchHeaderBar.ui:20 msgid "_Cancel" msgstr "キャンセル(_C)" #: data/ui/HeaderBar.ui:42 data/ui/SearchHeaderBar.ui:32 msgid "Search" msgstr "検索" #: data/ui/HeaderBar.ui:50 msgid "Back" msgstr "戻る" #: data/ui/help-overlay.ui:11 msgctxt "shortcut window" msgid "General" msgstr "全般" #: data/ui/help-overlay.ui:14 msgctxt "shortcut window" msgid "Close window" msgstr "ウィンドウを閉じる" #: data/ui/help-overlay.ui:20 msgctxt "shortcut window" msgid "Search" msgstr "検索する" #: data/ui/help-overlay.ui:26 msgctxt "shortcut window" msgid "Help" msgstr "ヘルプを表示する" #: data/ui/help-overlay.ui:32 msgctxt "shortcut window" msgid "Shortcuts" msgstr "ショートカットを表示する" #: data/ui/help-overlay.ui:40 msgctxt "shortcut window" msgid "Playback" msgstr "再生" #: data/ui/help-overlay.ui:43 msgctxt "shortcut window" msgid "Play/Pause" msgstr "再生/一時停止" #: data/ui/help-overlay.ui:49 msgctxt "shortcut window" msgid "Next song" msgstr "次の曲へ" #: data/ui/help-overlay.ui:55 msgctxt "shortcut window" msgid "Previous song" msgstr "前の曲へ" #: data/ui/help-overlay.ui:61 msgctxt "shortcut window" msgid "Toggle repeat" msgstr "リピートを切り替える" #: data/ui/help-overlay.ui:67 msgctxt "shortcut window" msgid "Toggle shuffle" msgstr "シャッフルを切り替える" #: data/ui/help-overlay.ui:75 msgctxt "shortcut window" msgid "Navigation" msgstr "ナビゲーション" #: data/ui/help-overlay.ui:78 msgctxt "shortcut window" msgid "Go to Albums" msgstr "アルバムに移動する" #: data/ui/help-overlay.ui:84 msgctxt "shortcut window" msgid "Go to Artists" msgstr "アーティストに移動する" #: data/ui/help-overlay.ui:90 msgctxt "shortcut window" msgid "Go to Songs" msgstr "曲に移動する" #: data/ui/help-overlay.ui:96 msgctxt "shortcut window" msgid "Go to Playlists" msgstr "プレイリストに移動する" #: data/ui/help-overlay.ui:102 msgctxt "shortcut window" msgid "Go back" msgstr "戻る" #: data/ui/InitialState.ui:25 msgid "The contents of your Music Folder will appear here" msgstr "ミュージックフォルダーの内容がここに表示されます" #: data/ui/LastfmDialog.ui:21 msgid "" "Last.fm is a music discovery service that gives you personalised " "recommendations based on the music you listen to." msgstr "" "Last.fm は、あなたの鑑賞した音楽の傾向からお勧めの音楽を探し出して提示してく" "れる、音楽ディスカバリーサービスです。" #: data/ui/LastfmDialog.ui:31 gnomemusic/widgets/lastfmdialog.py:57 msgid "Music Reporting Not Setup" msgstr "音楽の報告をセットアップしていません" #: data/ui/LastfmDialog.ui:44 gnomemusic/widgets/lastfmdialog.py:60 msgid "Login to your Last.fm account to report your music listening." msgstr "" "鑑賞した音楽を報告するために Last.fm のアカウントへログインしてください。" #: data/ui/LastfmDialog.ui:55 gnomemusic/widgets/lastfmdialog.py:58 msgid "Login" msgstr "ログイン" #: data/ui/PlayerToolbar.ui:75 msgid "Previous" msgstr "前" #: data/ui/PlayerToolbar.ui:107 msgid "Next" msgstr "次" #: data/ui/PlaylistControls.ui:9 msgid "_Delete" msgstr "削除(_D)" #: data/ui/PlaylistControls.ui:13 msgid "_Rename…" msgstr "名前を変更(_R)…" #: data/ui/PlaylistControls.ui:28 msgid "Playlist Name" msgstr "プレイリスト名" #: data/ui/PlaylistControls.ui:62 msgid "_Done" msgstr "完了(_D)" #: data/ui/PlaylistDialog.ui:52 msgid "Enter a name for your first playlist" msgstr "プレイリスト名を入力してください" #: data/ui/PlaylistDialog.ui:77 msgid "C_reate" msgstr "作成(_R)" #: data/ui/PlaylistDialog.ui:146 msgid "New Playlist…" msgstr "新しいプレイリスト…" #: data/ui/PlaylistDialog.ui:161 msgid "Add" msgstr "追加" #: data/ui/PlaylistDialog.ui:200 msgid "Add to Playlist" msgstr "プレイリストに追加" #: data/ui/PlaylistDialog.ui:220 msgid "_Add" msgstr "追加(_A)" #: data/ui/SearchView.ui:33 gnomemusic/views/artistsview.py:51 msgid "Artists" msgstr "アーティスト" #: data/ui/SearchView.ui:42 data/ui/SearchView.ui:84 msgid "View All" msgstr "すべて表示" #: data/ui/SearchView.ui:75 gnomemusic/views/albumsview.py:54 msgid "Albums" msgstr "アルバム" #: data/ui/SearchView.ui:117 gnomemusic/views/songsview.py:52 msgid "Songs" msgstr "曲" #: data/ui/SelectionBarMenuButton.ui:7 msgid "Select All" msgstr "すべて選択" #: data/ui/SelectionBarMenuButton.ui:11 msgid "Select None" msgstr "選択なし" #: data/ui/SelectionBarMenuButton.ui:19 gnomemusic/widgets/headerbar.py:69 msgid "Click on items to select them" msgstr "アイテムをクリックして選択" #: data/ui/SelectionToolbar.ui:8 msgid "_Add to Playlist" msgstr "プレイリストに追加(_A)" #: data/ui/SongWidgetMenu.ui:19 msgid "_Remove from Playlist" msgstr "プレイリストから削除(_R)" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:894 msgid "Most Played" msgstr "最も再生した曲" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:948 msgid "Never Played" msgstr "未再生の曲" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1001 msgid "Recently Played" msgstr "最近再生した曲" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1064 msgid "Recently Added" msgstr "最近追加した曲" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1127 msgid "Favorite Songs" msgstr "お気に入りの曲" #: gnomemusic/gstplayer.py:408 msgid "Unable to play the file" msgstr "ファイルを再生できません" #: gnomemusic/gstplayer.py:414 msgid "_Find in {}" msgstr "{} で検索(_F)" #. TRANSLATORS: separator for two codecs #: gnomemusic/gstplayer.py:424 msgid " and " msgstr " と " #. TRANSLATORS: separator for a list of codecs #: gnomemusic/gstplayer.py:427 msgid ", " msgstr ", " #: gnomemusic/gstplayer.py:429 msgid "{} is required to play the file, but is not installed." msgid_plural "{} are required to play the file, but are not installed." msgstr[0] "ファイルの再生には {} が必要ですが、インストールされていません。" #: gnomemusic/inhibitsuspend.py:63 msgid "Playing music" msgstr "再生中" #. Translators: "shuffle" causes tracks to play in random order. #: gnomemusic/player.py:44 msgid "Shuffle" msgstr "シャッフル" #: gnomemusic/player.py:45 msgid "Repeat Song" msgstr "1曲リピート" #: gnomemusic/player.py:46 msgid "Repeat All" msgstr "すべてリピート" #: gnomemusic/player.py:47 msgid "Shuffle/Repeat Off" msgstr "シャッフル/リピートオフ" #: gnomemusic/playlisttoast.py:55 msgid "Playlist {} removed" msgstr "プレイリスト {} を削除しました" #: gnomemusic/playlisttoast.py:56 gnomemusic/songtoast.py:65 msgid "Undo" msgstr "元に戻す" #: gnomemusic/songtoast.py:64 msgid "{} removed from {}" msgstr "{} を {} から削除しました" #: gnomemusic/utils.py:92 msgid "Unknown album" msgstr "不明なアルバム" #: gnomemusic/utils.py:113 msgid "Unknown Artist" msgstr "不明なアーティスト" #: gnomemusic/views/emptyview.py:65 msgid "Your XDG Music directory is not set." msgstr "XDG の Music ディレクトリを設定していません。" #: gnomemusic/views/emptyview.py:72 msgid "Music Folder" msgstr "ミュージックフォルダー" #. TRANSLATORS: This is a label to display a link to open user's music #. folder. {} will be replaced with the translated text 'Music folder' #: gnomemusic/views/emptyview.py:76 msgid "The contents of your {} will appear here." msgstr "{}の内容がここに表示されます。" #: gnomemusic/views/emptyview.py:124 msgid "No Music Found" msgstr "曲が見つかりませんでした" #: gnomemusic/views/emptyview.py:125 msgid "Try a Different Search" msgstr "他のキーワードを試してください" #: gnomemusic/views/emptyview.py:129 msgid "GNOME Music could not connect to Tracker." msgstr "GNOME ミュージックが Tracker に接続できませんでした。" #: gnomemusic/views/emptyview.py:131 msgid "Your music files cannot be indexed without Tracker running." msgstr "Tracker を実行していないと音楽ファイルはインデックスされません。" #: gnomemusic/views/emptyview.py:137 msgid "Your system Tracker version seems outdated." msgstr "Tracker のバージョンが古すぎます。" #: gnomemusic/views/emptyview.py:139 msgid "Music needs Tracker version 3.0.0 or higher." msgstr "Tracker のバージョン 3.0.0 以降が必要です。" #: gnomemusic/views/playlistsview.py:45 msgid "Playlists" msgstr "プレイリスト" #: gnomemusic/views/searchview.py:304 msgid "Artists Results" msgstr "アーティストの検索結果" #: gnomemusic/views/searchview.py:318 msgid "Albums Results" msgstr "アルバムの検索結果" #: gnomemusic/widgets/albumwidget.py:240 msgid "{} minute" msgid_plural "{} minutes" msgstr[0] "{} 分" #: gnomemusic/widgets/discbox.py:75 msgid "Disc {}" msgstr "ディスク {}" #: gnomemusic/widgets/headerbar.py:66 msgid "Selected {} song" msgid_plural "Selected {} songs" msgstr[0] "{} 曲選択" #: gnomemusic/widgets/lastfmdialog.py:64 msgid "Your music listening is reported to Last.fm." msgstr "鑑賞した音楽が Last.fm に報告されます。" #: gnomemusic/widgets/lastfmdialog.py:66 msgid "Your music listening is not reported to Last.fm." msgstr "鑑賞した音楽が Last.fm に報告されません。" #. TRANSLATORS: displays the username of the Last.fm account #: gnomemusic/widgets/lastfmdialog.py:70 msgid "Logged in as {}" msgstr "{} でログイン" #: gnomemusic/widgets/lastfmdialog.py:71 msgid "Configure" msgstr "設定" #: gnomemusic/widgets/playertoolbar.py:165 msgid "Pause" msgstr "一時停止" #: gnomemusic/widgets/playlistcontrols.py:130 msgid "{} Song" msgid_plural "{} Songs" msgstr[0] "{} 曲" #~ msgid "GNOME Music" #~ msgstr "GNOME ミュージック" #~ msgid "Window position" #~ msgstr "ウィンドウの位置" #~ msgid "Window position (x and y)." #~ msgstr "ウィンドウの位置 (X 軸と Y 軸) です。" #~ msgid "Released" #~ msgstr "リリース日" #~ msgid "Running Length" #~ msgstr "再生時間" #~ msgid "Composer" #~ msgstr "作曲者" #~ msgid "Loading" #~ msgstr "読み込み中" #~ msgctxt "context menu item" #~ msgid "Play" #~ msgstr "再生" #~ msgid "Enables or disables playback notifications" #~ msgstr "再生中の曲の通知を有効にするかどうかの設定です。" #~ msgid "Max chars to display in track name on Artist view" #~ msgstr "アーティストビューに表示するトラック名の最大文字数" #~ msgid "" #~ "This setting modifies the amount of chars for track title on Artist view " #~ "before its been ellipsized. Set this to -1 to disable" #~ msgstr "" #~ "アーティストビューに表示されるトラック名の文字数を設定します。設定値を超え" #~ "るとトラック名が省略されます。無効にするには -1 を設定します" #~ msgid "Untitled" #~ msgstr "タイトルなし" #~ msgid "Not playing" #~ msgstr "再生していません" #~ msgid "Track Title" #~ msgstr "トラック名" #~ msgid "Match" #~ msgstr "一致項目" #~ msgid "All Artists" #~ msgstr "すべてのアーティスト" #~ msgid "Load More" #~ msgstr "さらに読み込む" 070701000000F8000081A400000000000000000000000166968E4E00005B94000000000000000000000000000000000000001A00000000gnome-music-46.1/po/ka.po# Georgian translation for gnome-music. # Copyright (C) 2024 gnome-music's authors # This file is distributed under the same license as the gnome-music package. # Ekaterine Papava , 2024. # msgid "" msgstr "" "Project-Id-Version: gnome-music\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-music/issues\n" "POT-Creation-Date: 2024-02-11 20:43+0000\n" "PO-Revision-Date: 2024-02-12 15:08+0100\n" "Last-Translator: Ekaterine Papava \n" "Language-Team: Georgian <(nothing)>\n" "Language: ka\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Poedit 3.3.2\n" #: data/org.gnome.Music.appdata.xml.in.in:6 #: data/org.gnome.Music.desktop.in.in:3 data/ui/StatusNavigationPage.ui:4 #: gnomemusic/about.py:138 gnomemusic/application.py:59 gnomemusic/window.py:65 msgid "Music" msgstr "მუსიკა" #: data/org.gnome.Music.appdata.xml.in.in:7 #: data/org.gnome.Music.desktop.in.in:5 msgid "Play and organize your music collection" msgstr "მუსიკის თქვენი კოლექციის დაკვრა და დალაგება" #: data/org.gnome.Music.appdata.xml.in.in:9 msgid "An easy and pleasant way to play your music." msgstr "ადვილი და სასიამოვნო გზა მუსიკის დასაკრავად." #: data/org.gnome.Music.appdata.xml.in.in:12 msgid "" "Find tracks in your local collection, use automatically generated playlists " "or curate a fresh one." msgstr "" "იპოვეთ მუსიკა თქვენს ლოკალურ კოლექციაში და გამოიყენეთ ავტომატურად შექმნილი " "დასაკრავი სიები. ან შექმენით საკუთარი." #. developer_name tag deprecated with Appstream 1.0 #: data/org.gnome.Music.appdata.xml.in.in:188 msgid "The GNOME Music developers" msgstr "GNOME Music-ის პროგრამისტები" #: data/org.gnome.Music.desktop.in.in:4 msgid "Music Player" msgstr "მედია დამკვრელი" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Music.desktop.in.in:13 msgid "Music;Player;" msgstr "Music;Player;" #: data/org.gnome.Music.gschema.xml:12 msgid "Window size" msgstr "ფანჯრის ზომა" #: data/org.gnome.Music.gschema.xml:13 msgid "Window size (width and height)." msgstr "ფანჯრის ზომა (სიგანე, სიმაღლე)" #: data/org.gnome.Music.gschema.xml:17 msgid "Window maximized" msgstr "გადიდებული ფანჯარა" #: data/org.gnome.Music.gschema.xml:18 msgid "Window maximized state." msgstr "ფანჯრის სრულად გაშლილი მდგომარეობა." #: data/org.gnome.Music.gschema.xml:22 msgid "Playback repeat mode" msgstr "დაკვრის გამეორების რეჟიმი" #. Translators: Don't translate allowed values, just the description in the brackets #: data/org.gnome.Music.gschema.xml:24 msgid "" "Value identifies whether to repeat or randomize playback through the " "collection. Allowed values are: “none” (repeat and shuffle are off), " "“song” (repeat current song), “all” (repeat playlist, no shuffle), " "“shuffle” (shuffle playlist, presumes repeat all)." msgstr "" "მნიშვნელობა განსაზღვრავს, კოლექციაში დაკვრა შემთხვევითი წესით მოხდება, თუ " "განმეორებითი. დასაშვები მნიშვნელობებია: \"none\" (შემთხვევითობა და " "განმეორებადობა გამორთულია), \"song\" (მიმდინარე სიმღერის გამეორება), " "\"all\" (კოლექციის გამეორება, შემთხვევითობის გარეშე), \"shuffle\" (სიმღერის " "შემთხვევით არჩევა. ყველას დაკვრა ისედაც იგულისხმება)." #: data/org.gnome.Music.gschema.xml:28 data/ui/PreferencesDialog.ui:27 msgid "Enable ReplayGain" msgstr "ReplayGain-ის ჩართვა" #: data/org.gnome.Music.gschema.xml:29 msgid "Enables or disables ReplayGain for albums" msgstr "ალბომებისთვის ReplayGain-ის ჩართვა/გამორთვა" #: data/org.gnome.Music.gschema.xml:33 msgid "Inhibit system suspend" msgstr "სისტემის დაძინების გათიშვა" #: data/org.gnome.Music.gschema.xml:34 msgid "Enables or disables inhibiting system suspend while playing music" msgstr "მუსიკის დაკვრის მიმდინარეობისას სისტემის დაძინების აკრძალვა" #: data/ui/AlbumsSearchNavigationPage.ui:5 data/ui/SearchView.ui:98 #: gnomemusic/views/albumsview.py:52 msgid "Albums" msgstr "ალბომები" #: data/ui/AlbumWidget.ui:84 data/ui/PlayerToolbar.ui:87 #: data/ui/PlaylistControls.ui:101 gnomemusic/widgets/playertoolbar.py:176 msgid "Play" msgstr "დაკვრა" #: data/ui/AlbumWidget.ui:130 data/ui/PlaylistControls.ui:5 #: data/ui/SongWidgetMenu.ui:11 msgid "_Play" msgstr "_დაკვრა" #: data/ui/AlbumWidget.ui:134 msgid "Add to _Favorite Songs" msgstr "საყვარელი _სიმღერებში ჩამატება" #: data/ui/AlbumWidget.ui:138 data/ui/SongWidgetMenu.ui:15 msgid "_Add to Playlist…" msgstr "_დასაკრავი სიაში დამატება…" #: data/ui/ArtistsSearchNavigationPage.ui:5 data/ui/SearchView.ui:41 #: gnomemusic/views/artistsview.py:51 msgid "Artists" msgstr "შემსრულებლები" #: data/ui/HeaderBar.ui:14 msgid "Menu" msgstr "მენიუ" #: data/ui/HeaderBar.ui:22 data/ui/SearchHeaderBar.ui:12 msgid "Search" msgstr "ძებნა" #: data/ui/HeaderBar.ui:31 data/ui/PreferencesDialog.ui:4 msgid "Preferences" msgstr "პარამეტრები" #: data/ui/HeaderBar.ui:35 msgid "Keyboard Shortcuts" msgstr "კლავიატურის მალსახმობები" #: data/ui/HeaderBar.ui:39 msgid "Help" msgstr "დახმარება" #: data/ui/HeaderBar.ui:43 msgid "About Music" msgstr "Music-ის შესახებ" #: data/ui/help-overlay.ui:11 msgctxt "shortcut window" msgid "General" msgstr "მთავარი" #: data/ui/help-overlay.ui:14 msgctxt "shortcut window" msgid "Close window" msgstr "ფანჯრის დახურვა" #: data/ui/help-overlay.ui:20 msgctxt "shortcut window" msgid "Search" msgstr "ძებნა" #: data/ui/help-overlay.ui:26 msgctxt "shortcut window" msgid "Help" msgstr "დახმარება" #: data/ui/help-overlay.ui:32 msgctxt "shortcut window" msgid "Shortcuts" msgstr "მალსახმობები" #: data/ui/help-overlay.ui:40 msgctxt "shortcut window" msgid "Playback" msgstr "დაკვრა" #: data/ui/help-overlay.ui:43 msgctxt "shortcut window" msgid "Play/Pause" msgstr "დაკვრა/პაუზა" #: data/ui/help-overlay.ui:49 msgctxt "shortcut window" msgid "Next song" msgstr "შემდეგი სიმღერა" #: data/ui/help-overlay.ui:55 msgctxt "shortcut window" msgid "Previous song" msgstr "წინა სიმღერა" #: data/ui/help-overlay.ui:61 msgctxt "shortcut window" msgid "Toggle repeat" msgstr "გამეორების გადართვა" #: data/ui/help-overlay.ui:67 msgctxt "shortcut window" msgid "Toggle shuffle" msgstr "შემთხვევითობის გადართვა" #: data/ui/help-overlay.ui:75 msgctxt "shortcut window" msgid "Navigation" msgstr "ნავიგაცია" #: data/ui/help-overlay.ui:78 msgctxt "shortcut window" msgid "Go to Albums" msgstr "ალბომებზე გადასვლა" #: data/ui/help-overlay.ui:84 msgctxt "shortcut window" msgid "Go to Artists" msgstr "შემსრულებლებზე გადასვლა" #: data/ui/help-overlay.ui:90 msgctxt "shortcut window" msgid "Go to Songs" msgstr "სიმღერებზე გადართვა" #: data/ui/help-overlay.ui:96 msgctxt "shortcut window" msgid "Go to Playlists" msgstr "დასაკრავ სიებზე გადართვა" #: data/ui/help-overlay.ui:102 msgctxt "shortcut window" msgid "Go back" msgstr "უკან გადასვლა" #: data/ui/PlayerToolbar.ui:74 msgid "Previous" msgstr "წინა" #: data/ui/PlayerToolbar.ui:106 msgid "Next" msgstr "შემდეგი" #: data/ui/PlaylistControls.ui:9 msgid "_Delete" msgstr "_წაშლა" #: data/ui/PlaylistControls.ui:13 msgid "_Rename…" msgstr "_გადარქმევა…" #: data/ui/PlaylistControls.ui:28 msgid "Playlist Name" msgstr "დასაკრავი სიის სახელი" #: data/ui/PlaylistControls.ui:62 msgid "_Done" msgstr "_დასრულებულია" #: data/ui/PlaylistDialog.ui:16 msgid "Add to Playlist" msgstr "დასაკრავი სიაში დამატება" #: data/ui/PlaylistDialog.ui:27 msgid "_Cancel" msgstr "_გაუქმება" #: data/ui/PlaylistDialog.ui:36 msgid "_Add" msgstr "_დამატება" #: data/ui/PlaylistDialog.ui:91 msgid "Enter a name for your first playlist" msgstr "შეიყვანეთ თქვენი პირველი დასაკრავი სიის სახელი" #: data/ui/PlaylistDialog.ui:116 msgid "C_reate" msgstr "_შექმნა" #: data/ui/PlaylistDialog.ui:177 msgid "New Playlist…" msgstr "ახალი დასაკრავი სია…" #: data/ui/PlaylistDialog.ui:189 msgid "Add" msgstr "დამატება" #: data/ui/PreferencesDialog.ui:9 msgid "Player Settings" msgstr "დამკვრელის მორგება" #: data/ui/PreferencesDialog.ui:12 msgid "Repeat Mode" msgstr "გამეორების რეჟიმი" #: data/ui/PreferencesDialog.ui:16 msgid "None" msgstr "არაფერი" #: data/ui/PreferencesDialog.ui:17 msgid "Song" msgstr "სიმღერა" #: data/ui/PreferencesDialog.ui:18 msgid "All" msgstr "ყველა" #: data/ui/PreferencesDialog.ui:19 gnomemusic/player.py:51 msgid "Shuffle" msgstr "შემთხვევით" #: data/ui/PreferencesDialog.ui:28 msgid "Balance loudness between songs if ReplayGain metadata is found" msgstr "" "ხმის სიძლიერის ბალანსი სიმღერებს შორის, თუ აღმოჩენილია ReplayGain " "მეტამონაცემები" #: data/ui/PreferencesDialog.ui:35 msgid "Power Settings" msgstr "კვების პარამეტრები" #: data/ui/PreferencesDialog.ui:38 msgid "Inhibit Suspend" msgstr "დაძინების გათიშვა" #: data/ui/PreferencesDialog.ui:39 msgid "Only while playing" msgstr "მხოლოდ, დაკვრისას" #: data/ui/SearchView.ui:55 data/ui/SearchView.ui:112 msgid "View All" msgstr "ყველას ნახვა" #: data/ui/SearchView.ui:154 msgid "Songs" msgstr "სიმღერები" #: data/ui/SongWidgetMenu.ui:19 msgid "_Remove from Playlist" msgstr "_დასაკრავი სიიდან წაშლა" #: data/ui/StatusNavigationPage.ui:36 msgid "Welcome to Music" msgstr "მოგესალმებით Music-ში" #: gnomemusic/about.py:140 msgid "The GNOME Project" msgstr "პროექტი \"GNOME\"" #. Translators should localize the following string which #. will be displayed at the bottom of the about box to give #. credit to the translator(s). #: gnomemusic/about.py:146 msgid "translator-credits" msgstr "თემური დოღონაძე" #: gnomemusic/about.py:150 msgid "© The GNOME Music Developers" msgstr "© GNOME Music-ის პროგრამისტები" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:839 msgid "Most Played" msgstr "ხშირად დაკრული" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:893 msgid "Never Played" msgstr "არასდროს-დაკრული" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:946 msgid "Recently Played" msgstr "ახლახანს დაკრული" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1025 msgid "Recently Added" msgstr "ახლახანს დამატებული" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1088 msgid "Favorite Songs" msgstr "საყვარელი სიმღერები" #. TRANSLATORS: this is a playlist name indicating that the #. files are not tagged enough to be displayed in the albums #. or artists views. #: gnomemusic/grilowrappers/grltrackerplaylists.py:1142 msgid "Insufficiently Tagged" msgstr "არასაკმარისი ჭდეები" #: gnomemusic/gstplayer.py:418 msgid "Unable to play the file" msgstr "ფაილის დაკვრის შეცდომა" #: gnomemusic/gstplayer.py:424 msgid "_Find in {}" msgstr "{}-ში _მოძებნა" #. TRANSLATORS: separator for two codecs #: gnomemusic/gstplayer.py:434 msgid " and " msgstr " და " #. TRANSLATORS: separator for a list of codecs #: gnomemusic/gstplayer.py:437 msgid ", " msgstr ", " #: gnomemusic/gstplayer.py:439 msgid "{} is required to play the file, but is not installed." msgid_plural "{} are required to play the file, but are not installed." msgstr[0] "ფაილის დასაკრავად საჭიროა {}, მაგრამ დაყენებული არაა." #: gnomemusic/inhibitsuspend.py:69 msgid "Playing music" msgstr "მიმდინარეობს დაკვრა" #. Translators: "shuffle" causes tracks to play in random order. #: gnomemusic/player.py:48 msgid "Shuffle/Repeat Off" msgstr "შემთხვევითი/გამეორება გამორთულია" #: gnomemusic/player.py:49 msgid "Repeat Song" msgstr "სიმღერის გამეორება" #: gnomemusic/player.py:50 msgid "Repeat All" msgstr "ყველას გამეორება" #: gnomemusic/playlisttoast.py:55 msgid "Playlist {} removed" msgstr "დასაკრავი სია წაიშალა: {}" #: gnomemusic/playlisttoast.py:56 gnomemusic/songtoast.py:65 msgid "Undo" msgstr "დაბრუნება" #: gnomemusic/songtoast.py:64 msgid "{} removed from {}" msgstr "{} წაიშალა {}-დან" #: gnomemusic/utils.py:89 msgid "Unknown album" msgstr "უცნობი ალბომი" #: gnomemusic/utils.py:110 msgid "Unknown Artist" msgstr "უცნობი შემსრულებელი" #: gnomemusic/views/playlistsview.py:45 msgid "Playlists" msgstr "დასაკრავი სიები" #: gnomemusic/views/searchview.py:220 msgid "No Search Started" msgstr "ძებნა არ დაწყებულა" #: gnomemusic/views/searchview.py:222 msgid "Use the searchbar to start searching for albums, artists or songs" msgstr "" "გამოიყენეთ ძებნის პანელი ალბომების, შემსრულებლებისა და სიმღერების ძებნის " "დასაწყებად" #: gnomemusic/views/searchview.py:226 msgid "No Results Found" msgstr "შედეგების გარეშე" #: gnomemusic/views/searchview.py:228 msgid "Try a different search" msgstr "სცადეთ სხვა ძებნა" #: gnomemusic/widgets/albumwidget.py:230 msgid "{} minute" msgid_plural "{} minutes" msgstr[0] "{} წუთი" #: gnomemusic/widgets/discbox.py:74 msgid "Disc {}" msgstr "დისკი {}" #: gnomemusic/widgets/playertoolbar.py:173 msgid "Pause" msgstr "შეჩერება" #: gnomemusic/widgets/playlistcontrols.py:130 msgid "{} Song" msgid_plural "{} Songs" msgstr[0] "{} სიმღერა" #: gnomemusic/widgets/searchheaderbar.py:50 msgid "Search songs, artists and albums" msgstr "მოძებნეთ სიმღერები, შემსრულებლები და ალბომები" #. noqa: F841 #: gnomemusic/widgets/songwidgetmenu.py:94 msgid "_Open Location" msgstr "მდებარე_ობის გახსნა" #. TRANSLATORS: These are verbs, to (un)mark something as a #. favorite. #: gnomemusic/widgets/startoggle.py:36 msgid "Unstar" msgstr "ვარსკვლავის მოხსნა" #: gnomemusic/widgets/startoggle.py:36 msgid "Star" msgstr "ვარსკვლავი" #: gnomemusic/widgets/statusnavigationpage.py:51 msgid "Your XDG Music directory is not set." msgstr "XDG Music-ის საქაღალდე მითითებული არაა." #: gnomemusic/widgets/statusnavigationpage.py:58 msgid "Music Folder" msgstr "მუსიკის საქაღალდე" #. TRANSLATORS: This is a label to display a link to open user's music #. folder. {} will be replaced with the translated text 'Music folder' #: gnomemusic/widgets/statusnavigationpage.py:66 msgid "The contents of your {} will appear here." msgstr "თქვენი {}-ის შემცველობა აქ გამოჩნდება." #: gnomemusic/widgets/statusnavigationpage.py:116 msgid "No Music Found" msgstr "მუსიკა ნაპოვნი არაა" #: gnomemusic/widgets/statusnavigationpage.py:117 msgid "Try a Different Search" msgstr "სცადეთ სხვა ძებნა" #: gnomemusic/widgets/statusnavigationpage.py:121 msgid "GNOME Music could not connect to Tracker." msgstr "GNOME Music-ი ტრეკერს ვერ მიუერთდა." #: gnomemusic/widgets/statusnavigationpage.py:123 msgid "Your music files cannot be indexed without Tracker running." msgstr "მუსიკის ფაილების ინდექსაცია გაშვებული ტრეკერის გარეშე შეუძლებელია." #: gnomemusic/widgets/statusnavigationpage.py:129 msgid "Your system Tracker version seems outdated." msgstr "როგორც ჩანს თქვენი სისტემური ტრეკერი მოძველებულია." #: gnomemusic/widgets/statusnavigationpage.py:131 msgid "Music needs Tracker version 3.0.0 or higher." msgstr "Music-ს ტრეკერის 3.0.0 ან უფრო ახალი ვერსია სჭირდება." #~ msgid "Report music history to Last.fm" #~ msgstr "გადაეცით მოსმენილი მუსიკა Last.fm-ზე" #~ msgid "" #~ "Enables or disables sending scrobbles and the “currently playing” info to " #~ "Last.fm." #~ msgstr "" #~ "მიმდინარე სიმღერის შესახებ ინფორმაციის Last.fm-ზე გაგზავნის ჩართვა/" #~ "გამორთვა." #~ msgid "Last.fm Account" #~ msgstr "Last.fm-ის ანგარიში" #~ msgid "Report Music Listening" #~ msgstr "გადაეცით მოსმენილი მუსიკა" #~ msgid "_Help" #~ msgstr "_დახმარება" #~ msgid "Artist" #~ msgstr "შემსრულებელი" #~ msgid "Select" #~ msgstr "მონიშნეთ" #~ msgid "Back" #~ msgstr "უკან" #~ msgid "" #~ "Last.fm is a music discovery service that gives you personalised " #~ "recommendations based on the music you listen to." #~ msgstr "" #~ "Last.fm არის მუსიკალური სერვისი, რომელიც გაძლევთ პერსონალურ " #~ "რეკომენდაციებს თქვენს მიერ მოსმენილი მუსიკის საფუძველზე." #~ msgid "Music Reporting Not Setup" #~ msgstr "დაკრული მუსიკის გადაცემა მორგებული არაა" #~ msgid "Login to your Last.fm account to report your music listening." #~ msgstr "" #~ "შედით Last.fm-ის თქვენს ანგარიშში დაკრული სიმღერების სიის გადასაცემად." #~ msgid "Login" #~ msgstr "შესვლა" #~ msgid "Select All" #~ msgstr "ყველას მონიშვნა" #~ msgid "Select None" #~ msgstr "მონიშვნის მოხსნა" #~ msgid "Click on items to select them" #~ msgstr "მოსანიშნად დააწკაპუნეთ ელემენტებზე" #~ msgid "_Add to Playlist" #~ msgstr "_დასაკრავი სიაში დამატება" #~ msgid "Copyright The GNOME Music Developers" #~ msgstr "GNOME Music-ის პროგრამისტები, ყველა უფლება დაცულია" #~ msgid "Translated by" #~ msgstr "თარგმნა" #~ msgid "Artists Results" #~ msgstr "ნაპოვნი შემსრულებლები" #~ msgid "Albums Results" #~ msgstr "ნაპოვნი ალბომები" #~ msgid "Selected {} song" #~ msgid_plural "Selected {} songs" #~ msgstr[0] "არჩეულია {} სიმღერა" #~ msgid "Your music listening is reported to Last.fm." #~ msgstr "თქვენი მოსმენილი სიმღერების სახელები იგზავნება Last.fm-ზე." #~ msgid "Your music listening is not reported to Last.fm." #~ msgstr "თქვენი მოსმენილი სიმღერების სახელები არ იგზავნება Last.fm-ზე." #~ msgid "Logged in as {}" #~ msgstr "შესული ბრძანდებით, როგორც {}" #~ msgid "Configure" #~ msgstr "მორგება" #~ msgid "A music player and management application for GNOME." #~ msgstr "მუსიკის დაკვრისა და მართვის აპლიკაცია GNOME-სთვის." #~ msgid "Visit GNOME Music website" #~ msgstr "GNOME Music-ის ვებ-გვერდზე გადასვლა" #~ msgid "The contents of your Music Folder will appear here" #~ msgstr "მუსიკის თქვენი საქაღალდის შემცველობა აქ გამოჩნდება" 070701000000F9000081A400000000000000000000000166968E4E00003981000000000000000000000000000000000000001B00000000gnome-music-46.1/po/kab.po# Kabyle translation for gnome-music. # Copyright (C) 2024 gnome-music's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-music package. # Rachida SACI , 2024. # msgid "" msgstr "" "Project-Id-Version: gnome-music master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-music/issues\n" "POT-Creation-Date: 2024-03-17 10:49+0000\n" "PO-Revision-Date: 2024-03-19 20:04+0100\n" "Last-Translator: sa\n" "Language-Team: Kabyle \n" "Language: kab\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n>1;\n" "X-Generator: Poedit 3.4.2\n" #: data/org.gnome.Music.appdata.xml.in.in:6 #: data/org.gnome.Music.desktop.in.in:3 data/ui/StatusNavigationPage.ui:4 #: gnomemusic/about.py:138 gnomemusic/application.py:59 gnomemusic/window.py:65 msgid "Music" msgstr "Aẓawan" #: data/org.gnome.Music.appdata.xml.in.in:7 #: data/org.gnome.Music.desktop.in.in:5 msgid "Play and organize your music collection" msgstr "Γeṛ neɣ suddes tafrayt-ik n uẓawan" #: data/org.gnome.Music.appdata.xml.in.in:9 msgid "An easy and pleasant way to play your music." msgstr "D abrid fessusen, yessedhayen i tɣuri n uẓawan." #: data/org.gnome.Music.appdata.xml.in.in:12 msgid "" "Find tracks in your local collection, use automatically generated playlists " "or curate a fresh one." msgstr "" "Af tubbiyin deg tefrayt-ik tadigant, seqdec taggayin yettusirwen s wudem " "awurman neɣ rnu tamaynut." #. developer_name tag deprecated with Appstream 1.0 #: data/org.gnome.Music.appdata.xml.in.in:214 msgid "The GNOME Music developers" msgstr "Ineflayen n uẓawan GNOME" #: data/org.gnome.Music.desktop.in.in:4 msgid "Music Player" msgstr "Ameɣri n uẓawan" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Music.desktop.in.in:13 msgid "Music;Player;" msgstr "Aẓawan;Ameɣri;" #: data/org.gnome.Music.gschema.xml:12 msgid "Window size" msgstr "Teɣzi n usfaylu" #: data/org.gnome.Music.gschema.xml:13 msgid "Window size (width and height)." msgstr "Teɣzi n usfaylu (tehri d teɣzi)." #: data/org.gnome.Music.gschema.xml:17 msgid "Window maximized" msgstr "Asfaylu meqqren" #: data/org.gnome.Music.gschema.xml:18 msgid "Window maximized state." msgstr "Addad n usfaylu meqqren." #: data/org.gnome.Music.gschema.xml:22 msgid "Playback repeat mode" msgstr "Askar n wallus tɣuri" #. Translators: Don't translate allowed values, just the description in the brackets #: data/org.gnome.Music.gschema.xml:24 msgid "" "Value identifies whether to repeat or randomize playback through the " "collection. Allowed values are: “none” (repeat and shuffle are off), " "“song” (repeat current song), “all” (repeat playlist, no shuffle), " "“shuffle” (shuffle playlist, presumes repeat all)." msgstr "" "Azal yesbaduy ma yella ad yili wallus neɣ taɣuri tagacurant deg taggayt. " "Azalen yettusirgen d: \"ulac\" (allus d tɣuri tagacurant nsan), " "\"tizlit\" (ales i tezlit tamirant), \"akk\" (ales i taggayt, ulac taɣuri " "tagacurant), \"tagacurant\"(taɣuri tagacurant n taggayt, dmu allus n kullec)." #: data/org.gnome.Music.gschema.xml:28 data/ui/PreferencesDialog.ui:27 msgid "Enable ReplayGain" msgstr "Rmed ReplayGain" #: data/org.gnome.Music.gschema.xml:29 msgid "Enables or disables ReplayGain for albums" msgstr "Iremmed neɣ isnusuy ReplayGain seg walbumen" #: data/org.gnome.Music.gschema.xml:33 msgid "Inhibit system suspend" msgstr "Agi anegzum n unagraw" #: data/org.gnome.Music.gschema.xml:34 msgid "Enables or disables inhibiting system suspend while playing music" msgstr "Iremmed neɣ isnusuy anegzum n unagraw mi ara d-yeqqar aẓawan" #: data/ui/AlbumsSearchNavigationPage.ui:5 data/ui/SearchView.ui:98 #: gnomemusic/views/albumsview.py:52 msgid "Albums" msgstr "Albumen" #: data/ui/AlbumWidget.ui:84 data/ui/PlayerToolbar.ui:87 #: data/ui/PlaylistControls.ui:101 gnomemusic/widgets/playertoolbar.py:176 msgid "Play" msgstr "Taɣuri" #: data/ui/AlbumWidget.ui:130 data/ui/PlaylistControls.ui:5 #: data/ui/SongWidgetMenu.ui:11 msgid "_Play" msgstr "_Urar" #: data/ui/AlbumWidget.ui:134 msgid "Add to _Favorite Songs" msgstr "Rnu ɣer _Tizlatin i ḥemmleɣ" #: data/ui/AlbumWidget.ui:138 data/ui/SongWidgetMenu.ui:15 msgid "_Add to Playlist…" msgstr "_Rnu ɣer taggayt…" #: data/ui/ArtistsSearchNavigationPage.ui:5 data/ui/SearchView.ui:41 #: gnomemusic/views/artistsview.py:51 msgid "Artists" msgstr "Inaẓuren" #: data/ui/HeaderBar.ui:14 msgid "Menu" msgstr "Umuɣ" #: data/ui/HeaderBar.ui:22 data/ui/SearchHeaderBar.ui:12 msgid "Search" msgstr "Nadi" #: data/ui/HeaderBar.ui:31 data/ui/PreferencesDialog.ui:4 msgid "Preferences" msgstr "Isemenyifen" #: data/ui/HeaderBar.ui:35 msgid "Keyboard Shortcuts" msgstr "Inegzumen n unasiw" #: data/ui/HeaderBar.ui:39 msgid "Help" msgstr "Tallalt" #: data/ui/HeaderBar.ui:43 msgid "About Music" msgstr "Γef uẓawan" #: data/ui/help-overlay.ui:11 msgctxt "shortcut window" msgid "General" msgstr "Amatu" #: data/ui/help-overlay.ui:14 msgctxt "shortcut window" msgid "Close window" msgstr "Mdel asfaylu" #: data/ui/help-overlay.ui:20 msgctxt "shortcut window" msgid "Search" msgstr "Nadi" #: data/ui/help-overlay.ui:26 msgctxt "shortcut window" msgid "Help" msgstr "Tallalt" #: data/ui/help-overlay.ui:32 msgctxt "shortcut window" msgid "Shortcuts" msgstr "Inegzumen" #: data/ui/help-overlay.ui:40 msgctxt "shortcut window" msgid "Playback" msgstr "Taɣuri" #: data/ui/help-overlay.ui:43 msgctxt "shortcut window" msgid "Play/Pause" msgstr "Ɣer/Bedd" #: data/ui/help-overlay.ui:49 msgctxt "shortcut window" msgid "Next song" msgstr "Tizlit tuḍfirt" #: data/ui/help-overlay.ui:55 msgctxt "shortcut window" msgid "Previous song" msgstr "Tizlit tudfirt" #: data/ui/help-overlay.ui:61 msgctxt "shortcut window" msgid "Toggle repeat" msgstr "Uɣal ɣer wallus" #: data/ui/help-overlay.ui:67 msgctxt "shortcut window" msgid "Toggle shuffle" msgstr "Rmed taɣuri tagacurant" #: data/ui/help-overlay.ui:75 msgctxt "shortcut window" msgid "Navigation" msgstr "Tunigin" #: data/ui/help-overlay.ui:78 msgctxt "shortcut window" msgid "Go to Albums" msgstr "Ddu ɣer walbumen" #: data/ui/help-overlay.ui:84 msgctxt "shortcut window" msgid "Go to Artists" msgstr "Ddu ɣer yinaẓuren" #: data/ui/help-overlay.ui:90 msgctxt "shortcut window" msgid "Go to Songs" msgstr "Ddu ɣer tezlatin" #: data/ui/help-overlay.ui:96 msgctxt "shortcut window" msgid "Go to Playlists" msgstr "Ddu ɣer taggayin" #: data/ui/help-overlay.ui:102 msgctxt "shortcut window" msgid "Go back" msgstr "Uɣal ɣer deffir" #: data/ui/PlayerToolbar.ui:74 msgid "Previous" msgstr "Udfir" #: data/ui/PlayerToolbar.ui:106 msgid "Next" msgstr "Uḍfir" #: data/ui/PlaylistControls.ui:9 msgid "_Delete" msgstr "_Kkes" #: data/ui/PlaylistControls.ui:13 msgid "_Rename…" msgstr "_Beddel isem…" #: data/ui/PlaylistControls.ui:28 msgid "Playlist Name" msgstr "Isem n taggayt" #: data/ui/PlaylistControls.ui:62 msgid "_Done" msgstr "_Immed" #: data/ui/PlaylistDialog.ui:16 msgid "Add to Playlist" msgstr "Rnu taggayt" #: data/ui/PlaylistDialog.ui:27 msgid "_Cancel" msgstr "_Sefsex" #: data/ui/PlaylistDialog.ui:36 msgid "_Add" msgstr "_Rnu" #: data/ui/PlaylistDialog.ui:91 msgid "Enter a name for your first playlist" msgstr "Sekcem isem i taggayt-ik tamezwarut" #: data/ui/PlaylistDialog.ui:116 msgid "C_reate" msgstr "Snulfu-d (_R)" #: data/ui/PlaylistDialog.ui:177 msgid "New Playlist…" msgstr "Taggayt tamaynut…" #: data/ui/PlaylistDialog.ui:189 msgid "Add" msgstr "Rnu" #: data/ui/PreferencesDialog.ui:9 msgid "Player Settings" msgstr "Iɣewwaren n umeɣri" #: data/ui/PreferencesDialog.ui:12 msgid "Repeat Mode" msgstr "Askar n wallus" #: data/ui/PreferencesDialog.ui:16 msgid "None" msgstr "Ula yiwen" #: data/ui/PreferencesDialog.ui:17 msgid "Song" msgstr "Tizlit" #: data/ui/PreferencesDialog.ui:18 msgid "All" msgstr "Akk" #: data/ui/PreferencesDialog.ui:19 gnomemusic/player.py:51 msgid "Shuffle" msgstr "Sexleḍ" #: data/ui/PreferencesDialog.ui:28 msgid "Balance loudness between songs if ReplayGain metadata is found" msgstr "Seεdel ableɣ gar tezlatin ma yella aɣefisefka ReplayGain ttwafen" #: data/ui/PreferencesDialog.ui:35 msgid "Power Settings" msgstr "Iɣewwaren usečči" #: data/ui/PreferencesDialog.ui:38 msgid "Inhibit Suspend" msgstr "Agi anegzum" #: data/ui/PreferencesDialog.ui:39 msgid "Only while playing" msgstr "Slid lawan n tɣuri" #: data/ui/SearchView.ui:55 data/ui/SearchView.ui:112 msgid "View All" msgstr "Beqqeḍ kulec" #: data/ui/SearchView.ui:154 msgid "Songs" msgstr "Tizlatin" #: data/ui/SongWidgetMenu.ui:19 msgid "_Remove from Playlist" msgstr "_Kkes seg taggayt" #: data/ui/StatusNavigationPage.ui:36 msgid "Welcome to Music" msgstr "Ansuf ɣer uẓawan" #: gnomemusic/about.py:140 msgid "The GNOME Project" msgstr "Asenfar n GNOME" #. Translators should localize the following string which #. will be displayed at the bottom of the about box to give #. credit to the translator(s). #: gnomemusic/about.py:146 msgid "translator-credits" msgstr "amsuqqel-isemdan" #: gnomemusic/about.py:150 msgid "© The GNOME Music Developers" msgstr "© Ineflayen n uẓawan GNOME" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:839 msgid "Most Played" msgstr "Tid yettwaɣran s waṭas" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:893 msgid "Never Played" msgstr "Urǧin tettwaɣra" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:946 msgid "Recently Played" msgstr "Tettwaɣra melmi kan" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1025 msgid "Recently Added" msgstr "Tettwarna melmi kan" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1088 msgid "Favorite Songs" msgstr "Tizlatin i ḥemmleɣ" #. TRANSLATORS: this is a playlist name indicating that the #. files are not tagged enough to be displayed in the albums #. or artists views. #: gnomemusic/grilowrappers/grltrackerplaylists.py:1142 msgid "Insufficiently Tagged" msgstr "Ur tettwacreḍ ara s tudet" #: gnomemusic/gstplayer.py:418 msgid "Unable to play the file" msgstr "Yegguma ad iɣer afaylu" #: gnomemusic/gstplayer.py:424 msgid "_Find in {}" msgstr "_Af deg {}" #. TRANSLATORS: separator for two codecs #: gnomemusic/gstplayer.py:434 msgid " and " msgstr " akked " #. TRANSLATORS: separator for a list of codecs #: gnomemusic/gstplayer.py:437 msgid ", " msgstr ", " #: gnomemusic/gstplayer.py:439 msgid "{} is required to play the file, but is not installed." msgid_plural "{} are required to play the file, but are not installed." msgstr[0] "{} yesra ad d-iɣer afaylu, maca ur yebdid ara." msgstr[1] "{} sran ad d-ɣren afaylu, maca ur bdiden ara." #: gnomemusic/inhibitsuspend.py:69 msgid "Playing music" msgstr "Taɣuri n uẓawan" #. Translators: "shuffle" causes tracks to play in random order. #: gnomemusic/player.py:48 msgid "Shuffle/Repeat Off" msgstr "Seḥbes/Ales" #: gnomemusic/player.py:49 msgid "Repeat Song" msgstr "Ales i tezlit" #: gnomemusic/player.py:50 msgid "Repeat All" msgstr "Ales kullec" #: gnomemusic/playlisttoast.py:55 msgid "Playlist {} removed" msgstr "Taggayt {} tettwakkes" #: gnomemusic/playlisttoast.py:56 gnomemusic/songtoast.py:65 msgid "Undo" msgstr "Semmet" #: gnomemusic/songtoast.py:64 msgid "{} removed from {}" msgstr "{} tettwakkes seg {}" #: gnomemusic/utils.py:89 msgid "Unknown album" msgstr "Album arussin" #: gnomemusic/utils.py:110 msgid "Unknown Artist" msgstr "Anaẓur arussin" #: gnomemusic/views/playlistsview.py:45 msgid "Playlists" msgstr "Taggayin" #: gnomemusic/views/searchview.py:220 msgid "No Search Started" msgstr "Ulac anadi i yebdan" #: gnomemusic/views/searchview.py:222 msgid "Use the searchbar to start searching for albums, artists or songs" msgstr "" "Seqdec afeggag n unadi i wakken ad tebduḍ anadi ɣef walbumen, inaẓuren d " "tezlatin" #: gnomemusic/views/searchview.py:226 msgid "No Results Found" msgstr "Ulac igmad i yettwafen" #: gnomemusic/views/searchview.py:228 msgid "Try a different search" msgstr "Ɛreḍ inadiyen yemgaraden" #: gnomemusic/widgets/albumwidget.py:230 msgid "{} minute" msgid_plural "{} minutes" msgstr[0] "{} tasint" msgstr[1] "{} tsinin" #: gnomemusic/widgets/discbox.py:74 msgid "Disc {}" msgstr "Aḍebsi {}" #: gnomemusic/widgets/playertoolbar.py:173 msgid "Pause" msgstr "Seḥbes" #: gnomemusic/widgets/playlistcontrols.py:130 msgid "{} Song" msgid_plural "{} Songs" msgstr[0] "{} tezlit" msgstr[1] "{} tezlatin" #: gnomemusic/widgets/searchheaderbar.py:50 msgid "Search songs, artists and albums" msgstr "Nadi tizlatin, inaẓuren akked walbumen" #. noqa: F841 #: gnomemusic/widgets/songwidgetmenu.py:94 msgid "_Open Location" msgstr "_Ldi adig" #. TRANSLATORS: These are verbs, to (un)mark something as a #. favorite. #: gnomemusic/widgets/startoggle.py:36 msgid "Unstar" msgstr "Kkes itri" #: gnomemusic/widgets/startoggle.py:36 msgid "Star" msgstr "Itri" #: gnomemusic/widgets/statusnavigationpage.py:51 msgid "Your XDG Music directory is not set." msgstr "Akaram-ikn uẓawan XDG ur yettusbadu ara." #: gnomemusic/widgets/statusnavigationpage.py:58 msgid "Music Folder" msgstr "Akaram n uẓawan" #. TRANSLATORS: This is a label to display a link to open user's music #. folder. {} will be replaced with the translated text 'Music folder' #: gnomemusic/widgets/statusnavigationpage.py:66 msgid "The contents of your {} will appear here." msgstr "Igburen n {} inek ad d-iban dagi." #: gnomemusic/widgets/statusnavigationpage.py:116 msgid "No Music Found" msgstr "Ulac aẓawan i yettwafen" #: gnomemusic/widgets/statusnavigationpage.py:117 msgid "Try a Different Search" msgstr "Ԑreḍ anadi niḍen" #: gnomemusic/widgets/statusnavigationpage.py:121 msgid "GNOME Music could not connect to Tracker." msgstr "Aẓawan GNOME ur yezmir ara ad iqqen ɣer Tracker." #: gnomemusic/widgets/statusnavigationpage.py:123 msgid "Your music files cannot be indexed without Tracker running." msgstr "Ifuyla n uẓawan ur zmiren ara ad smitren war aselkem n Tracker." #: gnomemusic/widgets/statusnavigationpage.py:129 msgid "Your system Tracker version seems outdated." msgstr "Lqem n unagraw-ik n Tracker yettban d agbur." #: gnomemusic/widgets/statusnavigationpage.py:131 msgid "Music needs Tracker version 3.0.0 or higher." msgstr "Aẓawan yesra lqem Tracker 3.0.0 n Tracker neɣ ugar." 070701000000FA000081A400000000000000000000000166968E4E00006C80000000000000000000000000000000000000001A00000000gnome-music-46.1/po/kk.po# Kazakh translation for gnome-music. # Copyright (C) 2014 gnome-music's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-music package. # Baurzhan Muftakhidinov , 2014-2021. # msgid "" msgstr "" "Project-Id-Version: gnome-music master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-music/issues\n" "POT-Creation-Date: 2024-02-11 20:43+0000\n" "PO-Revision-Date: 2024-02-25 00:08+0600\n" "Last-Translator: Baurzhan Muftakhidinov \n" "Language-Team: Kazakh \n" "Language: kk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Poedit 3.4.2\n" #: data/org.gnome.Music.appdata.xml.in.in:6 #: data/org.gnome.Music.desktop.in.in:3 data/ui/StatusNavigationPage.ui:4 #: gnomemusic/about.py:138 gnomemusic/application.py:59 gnomemusic/window.py:65 msgid "Music" msgstr "Музыка" #: data/org.gnome.Music.appdata.xml.in.in:7 #: data/org.gnome.Music.desktop.in.in:5 msgid "Play and organize your music collection" msgstr "Музыкалық жинағыңызды ойнау және реттеу" #: data/org.gnome.Music.appdata.xml.in.in:9 msgid "An easy and pleasant way to play your music." msgstr "Музыканы ойнатудың оңай әрі жағымды жолы." #: data/org.gnome.Music.appdata.xml.in.in:12 msgid "" "Find tracks in your local collection, use automatically generated playlists " "or curate a fresh one." msgstr "" "Жергілікті жинақтағы тректерді тауып, автоматты түрде жасалған ойнату " "тізімдерін пайдаланыңыз немесе жаңасын жасаңыз." #. developer_name tag deprecated with Appstream 1.0 #: data/org.gnome.Music.appdata.xml.in.in:188 msgid "The GNOME Music developers" msgstr "GNOME музыкасы әзірлеушілері" #: data/org.gnome.Music.desktop.in.in:4 msgid "Music Player" msgstr "Музыка ойнатқышы" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Music.desktop.in.in:13 msgid "Music;Player;" msgstr "Music;Player;Музыка;Плеер;" #: data/org.gnome.Music.gschema.xml:12 msgid "Window size" msgstr "Терезе өлшемі" #: data/org.gnome.Music.gschema.xml:13 msgid "Window size (width and height)." msgstr "Терезе өлшемі (ені мен биіктігі)." #: data/org.gnome.Music.gschema.xml:17 msgid "Window maximized" msgstr "Терезе максималды етілген" #: data/org.gnome.Music.gschema.xml:18 msgid "Window maximized state." msgstr "Терезенің максималды күйі." #: data/org.gnome.Music.gschema.xml:22 msgid "Playback repeat mode" msgstr "Ойнату қайталау режимі" #. Translators: Don't translate allowed values, just the description in the brackets #: data/org.gnome.Music.gschema.xml:24 msgid "" "Value identifies whether to repeat or randomize playback through the " "collection. Allowed values are: “none” (repeat and shuffle are off), " "“song” (repeat current song), “all” (repeat playlist, no shuffle), " "“shuffle” (shuffle playlist, presumes repeat all)." msgstr "" "Бұл мән ойнату кезінде жинақ ішінде қайталау және араластыру режимдерін " "көрсетеді. Рұқсат етілген мәндері: \"none\" (қайталау және араластыру жоқ), " "\"song\" (ағымдағы өлеңді қайталау), \"all\" (ойнату тізімін қайталау, " "араластыру жоқ), \"shuffle\" (ойнату тізімін араластырып қолдану, барлығын " "қайталауды білдіреді)." #: data/org.gnome.Music.gschema.xml:28 data/ui/PreferencesDialog.ui:27 msgid "Enable ReplayGain" msgstr "ReplayGain іске қосу" #: data/org.gnome.Music.gschema.xml:29 msgid "Enables or disables ReplayGain for albums" msgstr "Альбомдар үшін ReplayGain іске қосу не сөндіру" #: data/org.gnome.Music.gschema.xml:33 msgid "Inhibit system suspend" msgstr "Жүйелік ұйықтатуды болдырмау" #: data/org.gnome.Music.gschema.xml:34 msgid "Enables or disables inhibiting system suspend while playing music" msgstr "" "Музыканы ойнату кезінде жүйелік ұйықтату режиміне өтуді іске қосады немесе " "сөндіреді" #: data/ui/AlbumsSearchNavigationPage.ui:5 data/ui/SearchView.ui:98 #: gnomemusic/views/albumsview.py:52 msgid "Albums" msgstr "Альбомдар" #: data/ui/AlbumWidget.ui:84 data/ui/PlayerToolbar.ui:87 #: data/ui/PlaylistControls.ui:101 gnomemusic/widgets/playertoolbar.py:176 msgid "Play" msgstr "Ойнату" #: data/ui/AlbumWidget.ui:130 data/ui/PlaylistControls.ui:5 #: data/ui/SongWidgetMenu.ui:11 msgid "_Play" msgstr "Ой_нату" #: data/ui/AlbumWidget.ui:134 msgid "Add to _Favorite Songs" msgstr "_Таңдамалы өлеңдерге қосу" #: data/ui/AlbumWidget.ui:138 data/ui/SongWidgetMenu.ui:15 msgid "_Add to Playlist…" msgstr "Ойнату тізіміне қ_осу…" #: data/ui/ArtistsSearchNavigationPage.ui:5 data/ui/SearchView.ui:41 #: gnomemusic/views/artistsview.py:51 msgid "Artists" msgstr "Әртістер" #: data/ui/HeaderBar.ui:14 msgid "Menu" msgstr "Мәзір" #: data/ui/HeaderBar.ui:22 data/ui/SearchHeaderBar.ui:12 msgid "Search" msgstr "Іздеу" #: data/ui/HeaderBar.ui:31 data/ui/PreferencesDialog.ui:4 msgid "Preferences" msgstr "Баптаулар" #: data/ui/HeaderBar.ui:35 msgid "Keyboard Shortcuts" msgstr "Пернетақта жарлықтары" #: data/ui/HeaderBar.ui:39 msgid "Help" msgstr "Көмек" #: data/ui/HeaderBar.ui:43 msgid "About Music" msgstr "Музыка қолданбасы туралы" #: data/ui/help-overlay.ui:11 msgctxt "shortcut window" msgid "General" msgstr "Жалпы" #: data/ui/help-overlay.ui:14 msgctxt "shortcut window" msgid "Close window" msgstr "Терезені жабу" #: data/ui/help-overlay.ui:20 msgctxt "shortcut window" msgid "Search" msgstr "Іздеу" #: data/ui/help-overlay.ui:26 msgctxt "shortcut window" msgid "Help" msgstr "Көмек" #: data/ui/help-overlay.ui:32 msgctxt "shortcut window" msgid "Shortcuts" msgstr "Жарлықтар" #: data/ui/help-overlay.ui:40 msgctxt "shortcut window" msgid "Playback" msgstr "Ойнату" #: data/ui/help-overlay.ui:43 msgctxt "shortcut window" msgid "Play/Pause" msgstr "Аялдату" #: data/ui/help-overlay.ui:49 msgctxt "shortcut window" msgid "Next song" msgstr "Келесі өлең" #: data/ui/help-overlay.ui:55 msgctxt "shortcut window" msgid "Previous song" msgstr "Алдыңғы өлең" #: data/ui/help-overlay.ui:61 msgctxt "shortcut window" msgid "Toggle repeat" msgstr "Қайталауды іске қосу/сөндіру" #: data/ui/help-overlay.ui:67 msgctxt "shortcut window" msgid "Toggle shuffle" msgstr "Араластыруды іске қосу/сөндіру" #: data/ui/help-overlay.ui:75 msgctxt "shortcut window" msgid "Navigation" msgstr "Навигация" #: data/ui/help-overlay.ui:78 msgctxt "shortcut window" msgid "Go to Albums" msgstr "Альбомдарға өту" #: data/ui/help-overlay.ui:84 msgctxt "shortcut window" msgid "Go to Artists" msgstr "Әртістерге өту" #: data/ui/help-overlay.ui:90 msgctxt "shortcut window" msgid "Go to Songs" msgstr "Өлеңдерге өту" #: data/ui/help-overlay.ui:96 msgctxt "shortcut window" msgid "Go to Playlists" msgstr "Ойнату тізімдеріне өту" #: data/ui/help-overlay.ui:102 msgctxt "shortcut window" msgid "Go back" msgstr "Артқа өту" #: data/ui/PlayerToolbar.ui:74 msgid "Previous" msgstr "Алдыңғы" #: data/ui/PlayerToolbar.ui:106 msgid "Next" msgstr "Келесі" #: data/ui/PlaylistControls.ui:9 msgid "_Delete" msgstr "Ө_шіру" #: data/ui/PlaylistControls.ui:13 msgid "_Rename…" msgstr "Атын ө_згерту…" #: data/ui/PlaylistControls.ui:28 msgid "Playlist Name" msgstr "Ойнату тізімінің аты" #: data/ui/PlaylistControls.ui:62 msgid "_Done" msgstr "_Дайын" #: data/ui/PlaylistDialog.ui:16 msgid "Add to Playlist" msgstr "Ойнату тізіміне қосу" #: data/ui/PlaylistDialog.ui:27 msgid "_Cancel" msgstr "Ба_с тарту" #: data/ui/PlaylistDialog.ui:36 msgid "_Add" msgstr "Қо_су" #: data/ui/PlaylistDialog.ui:91 msgid "Enter a name for your first playlist" msgstr "Бірінші ойнату тізіміңіздің атын енгізіңіз" #: data/ui/PlaylistDialog.ui:116 msgid "C_reate" msgstr "_Жасау" #: data/ui/PlaylistDialog.ui:177 msgid "New Playlist…" msgstr "Жаңа ойнату тізімі…" #: data/ui/PlaylistDialog.ui:189 msgid "Add" msgstr "Қосу" #: data/ui/PreferencesDialog.ui:9 msgid "Player Settings" msgstr "Ойнатқыш баптаулары" #: data/ui/PreferencesDialog.ui:12 msgid "Repeat Mode" msgstr "Қайталау режимі" #: data/ui/PreferencesDialog.ui:16 msgid "None" msgstr "Ешнәрсе" #: data/ui/PreferencesDialog.ui:17 msgid "Song" msgstr "Өлең" #: data/ui/PreferencesDialog.ui:18 msgid "All" msgstr "Барлығы" #: data/ui/PreferencesDialog.ui:19 gnomemusic/player.py:51 msgid "Shuffle" msgstr "Араластыру" #: data/ui/PreferencesDialog.ui:28 msgid "Balance loudness between songs if ReplayGain metadata is found" msgstr "" "Егер ReplayGain метадеректер табылса, өлеңдер арасындағы дыбыс деңгейін " "баланстау" #: data/ui/PreferencesDialog.ui:35 msgid "Power Settings" msgstr "Қорек баптаулары" #: data/ui/PreferencesDialog.ui:38 msgid "Inhibit Suspend" msgstr "Ұйықтатуды болдырмау" #: data/ui/PreferencesDialog.ui:39 msgid "Only while playing" msgstr "Тек ойнап тұрғанда ғана" #: data/ui/SearchView.ui:55 data/ui/SearchView.ui:112 msgid "View All" msgstr "Барлығын қарау" #: data/ui/SearchView.ui:154 msgid "Songs" msgstr "Өлеңдер" #: data/ui/SongWidgetMenu.ui:19 msgid "_Remove from Playlist" msgstr "Ойнату тізімінен өші_ру" #: data/ui/StatusNavigationPage.ui:36 msgid "Welcome to Music" msgstr "Музыкаға қош келдіңіз" #: gnomemusic/about.py:140 msgid "The GNOME Project" msgstr "GNOME жобасы" #. Translators should localize the following string which #. will be displayed at the bottom of the about box to give #. credit to the translator(s). #: gnomemusic/about.py:146 msgid "translator-credits" msgstr "Baurzhan Muftakhidinov " #: gnomemusic/about.py:150 msgid "© The GNOME Music Developers" msgstr "© GNOME музыкасы әзірлеушілері" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:839 msgid "Most Played" msgstr "Ең жиі ойнатылған" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:893 msgid "Never Played" msgstr "Ешқашан ойналмаған" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:946 msgid "Recently Played" msgstr "Жақында ойналған" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1025 msgid "Recently Added" msgstr "Жақында қосылған" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1088 msgid "Favorite Songs" msgstr "Таңдамалы өлеңдер" #. TRANSLATORS: this is a playlist name indicating that the #. files are not tagged enough to be displayed in the albums #. or artists views. #: gnomemusic/grilowrappers/grltrackerplaylists.py:1142 msgid "Insufficiently Tagged" msgstr "Жеткіліксіз тегтелген" #: gnomemusic/gstplayer.py:418 msgid "Unable to play the file" msgstr "Файлды ойнату мүмкін емес" #: gnomemusic/gstplayer.py:424 msgid "_Find in {}" msgstr "{} ішінен _табу" #. TRANSLATORS: separator for two codecs #: gnomemusic/gstplayer.py:434 msgid " and " msgstr " және " #. TRANSLATORS: separator for a list of codecs #: gnomemusic/gstplayer.py:437 msgid ", " msgstr ", " #: gnomemusic/gstplayer.py:439 msgid "{} is required to play the file, but is not installed." msgid_plural "{} are required to play the file, but are not installed." msgstr[0] "файлды ойнату үшін {} керек, бірақ, ол орнатылмаған." #: gnomemusic/inhibitsuspend.py:69 msgid "Playing music" msgstr "Музыканы ойнату" #. Translators: "shuffle" causes tracks to play in random order. #: gnomemusic/player.py:48 msgid "Shuffle/Repeat Off" msgstr "Араластыру/қайталау сөндірілген" #: gnomemusic/player.py:49 msgid "Repeat Song" msgstr "Тректі қайталау" #: gnomemusic/player.py:50 msgid "Repeat All" msgstr "Барлығын қайталау" #: gnomemusic/playlisttoast.py:55 msgid "Playlist {} removed" msgstr "{} ойнату тізімі өшірілген" #: gnomemusic/playlisttoast.py:56 gnomemusic/songtoast.py:65 msgid "Undo" msgstr "Болдырмау" #: gnomemusic/songtoast.py:64 msgid "{} removed from {}" msgstr "{} {} ішінен өшірілді" #: gnomemusic/utils.py:89 msgid "Unknown album" msgstr "Белгісіз альбом" #: gnomemusic/utils.py:110 msgid "Unknown Artist" msgstr "Белгісіз әртіс" #: gnomemusic/views/playlistsview.py:45 msgid "Playlists" msgstr "Ойнату тізімдері" #: gnomemusic/views/searchview.py:220 msgid "No Search Started" msgstr "Ешбір іздеу басталмады" #: gnomemusic/views/searchview.py:222 msgid "Use the searchbar to start searching for albums, artists or songs" msgstr "" "Альбомдарды, әртістерді немесе өлеңдерді іздеуді бастау үшін іздеу панелін " "пайдалану" #: gnomemusic/views/searchview.py:226 msgid "No Results Found" msgstr "Нәтижелер табылмады" #: gnomemusic/views/searchview.py:228 msgid "Try a different search" msgstr "Басқа сөздерді іздеп көріңіз" #: gnomemusic/widgets/albumwidget.py:230 msgid "{} minute" msgid_plural "{} minutes" msgstr[0] "{} минут" #: gnomemusic/widgets/discbox.py:74 msgid "Disc {}" msgstr "Диск {}" #: gnomemusic/widgets/playertoolbar.py:173 msgid "Pause" msgstr "Аялдату" #: gnomemusic/widgets/playlistcontrols.py:130 msgid "{} Song" msgid_plural "{} Songs" msgstr[0] "{} өлең" #: gnomemusic/widgets/searchheaderbar.py:50 msgid "Search songs, artists and albums" msgstr "Өлеңдер, әртістер және альбомдардан іздеу" #. noqa: F841 #: gnomemusic/widgets/songwidgetmenu.py:94 msgid "_Open Location" msgstr "Орналасуды а_шу" #. TRANSLATORS: These are verbs, to (un)mark something as a #. favorite. #: gnomemusic/widgets/startoggle.py:36 msgid "Unstar" msgstr "Жұлдызшаны алып тастау" #: gnomemusic/widgets/startoggle.py:36 msgid "Star" msgstr "Жұлдызшаны орнату" #: gnomemusic/widgets/statusnavigationpage.py:51 msgid "Your XDG Music directory is not set." msgstr "Сіздің XDG музыкалық бумаңыз орнатылмаған." #: gnomemusic/widgets/statusnavigationpage.py:58 msgid "Music Folder" msgstr "Музыка бумасы" #. TRANSLATORS: This is a label to display a link to open user's music #. folder. {} will be replaced with the translated text 'Music folder' #: gnomemusic/widgets/statusnavigationpage.py:66 msgid "The contents of your {} will appear here." msgstr "{} құрамасы осында көрсетіледі." #: gnomemusic/widgets/statusnavigationpage.py:116 msgid "No Music Found" msgstr "Музыка табылмады" #: gnomemusic/widgets/statusnavigationpage.py:117 msgid "Try a Different Search" msgstr "Басқа сөздерді іздеп көріңіз" #: gnomemusic/widgets/statusnavigationpage.py:121 msgid "GNOME Music could not connect to Tracker." msgstr "GNOME музыка қолданбасы Трекерге байланыса алмады." #: gnomemusic/widgets/statusnavigationpage.py:123 msgid "Your music files cannot be indexed without Tracker running." msgstr "" "Сіздің музыка файлдарыңызды Трекер орындалып тұрмаса индекстеу мүмкін емес." #: gnomemusic/widgets/statusnavigationpage.py:129 msgid "Your system Tracker version seems outdated." msgstr "Жүйелік Tracker нұсқасы ескірген сияқты." #: gnomemusic/widgets/statusnavigationpage.py:131 msgid "Music needs Tracker version 3.0.0 or higher." msgstr "Музыка қолданбасы Tracker 3.0.0 немесе жоғарылау нұсқасын талап етеді." #~ msgid "Report music history to Last.fm" #~ msgstr "Музыка тарихын Last.fm қызметіне хабарлау" #~ msgid "" #~ "Enables or disables sending scrobbles and the “currently playing” info to " #~ "Last.fm." #~ msgstr "" #~ "Тыңдау тарихын және \"ағымдағы ойналуда\" ақпаратын Last.fm қызметіне " #~ "жіберуді іске қосады немесе сөндіреді." #~ msgid "Last.fm Account" #~ msgstr "Last.fm тіркелгісі" #~ msgid "Report Music Listening" #~ msgstr "Музыканы тыңдауды хабарлау" #~ msgid "_Help" #~ msgstr "_Көмек" #~ msgid "Select" #~ msgstr "Таңдау" #~ msgid "Back" #~ msgstr "Кері" #~ msgid "" #~ "Last.fm is a music discovery service that gives you personalised " #~ "recommendations based on the music you listen to." #~ msgstr "" #~ "Last.fm – сіз тыңдаған музыкаға негізделген жеке ұсыныстар беретін " #~ "музыканы табу қызметі." #~ msgid "Music Reporting Not Setup" #~ msgstr "Музыканы тыңдауды хабарлау бапталмаған" #~ msgid "Login to your Last.fm account to report your music listening." #~ msgstr "Музыка тыңдау туралы хабарлау үшін Last.fm тіркелгісіне кіріңіз." #~ msgid "Login" #~ msgstr "Кіру" #~ msgid "Select All" #~ msgstr "Барлығын таңдау" #~ msgid "Select None" #~ msgstr "Ештеңе таңдамау" #~ msgid "Click on items to select them" #~ msgstr "Бірнәрсені таңдау үшін оның үстіне шертіңіз" #~ msgid "_Add to Playlist" #~ msgstr "Ойнату тізіміне қ_осу" #~ msgid "Copyright The GNOME Music Developers" #~ msgstr "Copyright © GNOME музыкасы әзірлеушілері" #~ msgid "Translated by" #~ msgstr "Аударған" #~ msgid "Artists Results" #~ msgstr "Әртістер нәтижелері" #~ msgid "Albums Results" #~ msgstr "Альбомдар нәтижелері" #~ msgid "Selected {} song" #~ msgid_plural "Selected {} songs" #~ msgstr[0] "{} өлең таңдалды" #~ msgid "Your music listening is reported to Last.fm." #~ msgstr "Сіздің музыканы тыңдау тарихыңыз Last.fm қызметіне хабарланады." #~ msgid "Your music listening is not reported to Last.fm." #~ msgstr "Сіздің музыканы тыңдау тарихыңыз Last.fm қызметіне хабарланбайды." #~ msgid "Logged in as {}" #~ msgstr "{} ретінде кірген" #~ msgid "Configure" #~ msgstr "Баптау" #~ msgid "A music player and management application for GNOME." #~ msgstr "Музыканы ойнау және басқаруға арналған GNOME қолданбасы." #~ msgid "Visit GNOME Music website" #~ msgstr "GNOME музыкасы веб сайтын шолу" #~ msgid "" #~ "GNOME Music 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.\n" #~ "\n" #~ "GNOME Music 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.\n" #~ "\n" #~ "You should have received a copy of the GNU General Public License along " #~ "with GNOME Music; if not, write to the Free Software Foundation, Inc., 51 " #~ "Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ "\n" #~ "The GNOME Music authors hereby grant permission for non-GPL compatible " #~ "GStreamer plugins to be used and distributed together with GStreamer and " #~ "GNOME Music. This permission is above and beyond the permissions granted " #~ "by the GPL license by which GNOME Music is covered. If you modify this " #~ "code, you may extend this exception to your version of the code, but you " #~ "are not obligated to do so. If you do not wish to do so, delete this " #~ "exception statement from your version." #~ msgstr "" #~ "GNOME музыкасы еркін бағдарлама; сіз оны Free Software Foundation " #~ "шығарған GNU General Public License аясында еркін тарата не/және өзгерте " #~ "аласыз; лицензия нұсқасы 2 не (тандауыңызша) кез-келген кейін шыққан.\n" #~ "\n" #~ "GNOME музыкасы пайдалы болады деген сеніммен таратылады, бірақ ЕШҚАНДАЙ " #~ "КЕПІЛДЕМЕ берілмейді; КОММЕРЦИЯЛЫҚ ҚҰНДЫЛЫҚ немесе белгілі бір " #~ "МАҚСАТТАРҒА СӘЙКЕС КЕЛЕТІНІ үшін де. Көбірек білу үшін GNU General " #~ "Public License қараңыз.\n" #~ "\n" #~ "Сіз осы GNOME музыкасы бағдарламасымен бірге GNU General Public License " #~ "көшірмесін алуыңыз керек еді; олай болмаса, Free Software Foundation, " #~ "Inc. ұйымына, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA " #~ "адресі бойынша хабарласыңыз.\n" #~ "\n" #~ "GNOME музыкасы авторлары GPL үйлесімсіз GStreamer плагиндерін GStreamer " #~ "және GNOME музыкасы қолданбасымен бірге қолданылып, таратылу құқығын " #~ "рұқсат етеді. Бұл рұқсат GNOME музыкасы өзінің GPL лицензиясынан басымды " #~ "болады. Егер сіз бұл кодты түрлендіретін болсаңыз, осы рұқсатты кодтың өз " #~ "бөлігіңізге де іске асыра аласыз, бірақ бұл міндетті емес. Егер сіз оны " #~ "жасамауды таңдасаңыз, лицензияның бұл ерекше бөлігін өз нұсқаңыздан алып " #~ "тастаңыз." #~ msgid "The contents of your Music Folder will appear here" #~ msgstr "Музыка бумаңыздың құрамасы осында көрсетіледі" #~ msgid "GNOME Music" #~ msgstr "GNOME музыкасы" #~ msgid "Window position" #~ msgstr "Терезе орны" #~ msgid "Window position (x and y)." #~ msgstr "Терезе орны (x және y)." #~ msgid "Loading" #~ msgstr "Жүктелуде" #~ msgid "Add to Playlist…" #~ msgstr "Ойнату тізіміне қосу…" #~ msgid "" #~ "An easy way to play your music. Automatically discover music on your " #~ "computer, the local network and internet services." #~ msgstr "" #~ "Музыкаңызды ойнатудың оңай жолы. Компьютеріңізде, жергілікті желіде және " #~ "интернет қызметтерінде музыканы автоматты түрде табуға болады." #~ msgid "" #~ "Find tracks in your local collection, get music from DLNA servers or try " #~ "something new with the Jamendo and Magnatune services." #~ msgstr "" #~ "Жергілікті жинақтан тректерді тауып, музыканы DLNA серверлерден алыңыз " #~ "немесе Jamendo мен Magnatune қызметтері арқылы бірнәрсе жаңаны қолданып " #~ "көріңіз." #~ msgid "Inital state has been displayed" #~ msgstr "Бастапқы қалып-күйі көрсетілген" #~ msgid "Set to true when initial state has been displayed" #~ msgstr "Бастапқы қалып-күйі көрсетілген кезде true болады" #~ msgid "Released" #~ msgstr "Шығарылған" #~ msgid "Running Length" #~ msgstr "Ұзақтығы" #~ msgid "Composer" #~ msgstr "Композитор" #~ msgctxt "context menu item" #~ msgid "Play" #~ msgstr "Ойнату" #~ msgid "Hey DJ" #~ msgstr "Сәлем DJ" #~ msgid "@icon@" #~ msgstr "@icon@" #~ msgid "Untitled" #~ msgstr "Атаусыз" #~ msgid "Artist" #~ msgstr "Әртіс" #~ msgid "Album" #~ msgstr "Альбом" #~ msgid "Track Title" #~ msgstr "Трек аты" #~ msgid "Local" #~ msgstr "Жергілікті" #~ msgid "Sources" #~ msgstr "Қайнар көздер" #~ msgid "Match" #~ msgstr "Сәйкес" #~ msgid "_Quit" #~ msgstr "_Шығу" #~ msgid "Music is the new GNOME music playing application." #~ msgstr "GNOME музыкасы - бұл музыканы ойнайтын жаңа қолданба." #~ msgid "org.gnome.Music" #~ msgstr "org.gnome.Music" #~ msgid "Search mode" #~ msgstr "Іздеу режимі" #~ msgid "If true, the search bar is shown." #~ msgstr "Ақиқат болса, іздеу панелі көрсетіледі." #~ msgid "Notifications mode" #~ msgstr "Хабарламалар режимі" #~ msgid "Enables or disables playback notifications" #~ msgstr "Ойнату хабарламаларын іске қосу не сөндіру" #~ msgid "Selected %d item" #~ msgid_plural "Selected %d items" #~ msgstr[0] "%d нәрсе таңдалды" #~ msgid "%d min" #~ msgstr "%d мин" #~ msgid "Empty" #~ msgstr "Бос" #~ msgid "Select Playlist" #~ msgstr "Ойнату тізімін таңдау" #~ msgid "the|a|an" #~ msgstr "the|a|an" #~ msgid "Max chars to display in track name on Artist view" #~ msgstr "Әртіс көрінісінде трек атында көрсетілетін таңбалар саны" #~ msgid "" #~ "This setting modifies the amount of chars for track title on Artist view " #~ "before its been ellipsized. Set this to -1 to disable" #~ msgstr "" #~ "Бұл баптау әртіс көрінісінде трек атында қысқартылғанша дейін " #~ "көрсетілетін таңбалар санын анықтайды. Сөндіру үшін -1 етіп орнатыңыз" #~ msgid "the a an" #~ msgstr "the a an" #~ msgid "All Artists" #~ msgstr "Барлық әртістер" #~ msgid "Not playing" #~ msgstr "Ойнап тұрған жоқ" #~ msgid "by %s, from %s" #~ msgstr "%s әртісі, %s альбомынан" #~ msgid "_New Playlist" #~ msgstr "_Жаңа ойнату тізімі" 070701000000FB000081A400000000000000000000000166968E4E00002A23000000000000000000000000000000000000001A00000000gnome-music-46.1/po/kn.po# Kannada translation for gnome-music. # Copyright (C) 2013 gnome-music's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-music package. # karthik339 , 2013 # Shankar Prasad , 2013. msgid "" msgstr "" "Project-Id-Version: gnome-music master\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" "music&keywords=I18N+L10N&component=general\n" "POT-Creation-Date: 2013-09-18 02:30+0000\n" "PO-Revision-Date: 2013-09-18 19:27+0530\n" "Last-Translator: Shankar Prasad \n" "Language-Team: Kannada \n" "Language: kn\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Lokalize 1.5\n" #: ../data/org.gnome.Music.gschema.xml.h:1 msgid "Window size" msgstr "ಕಿಟಕಿಯ ಗಾತ್ರ" #: ../data/org.gnome.Music.gschema.xml.h:2 msgid "Window size (width and height)." msgstr "ಕಿಟಕಿಯ ಗಾತ್ರ (ಅಗಲ ಹಾಗು ಎತ್ತರ)." #: ../data/org.gnome.Music.gschema.xml.h:3 msgid "Window position" msgstr "ಕಿಟಕಿಯ ಸ್ಥಾನ" #: ../data/org.gnome.Music.gschema.xml.h:4 msgid "Window position (x and y)." msgstr "ಕಿಟಕಿಯ ಸ್ಥಾನ (x ಮತ್ತು y)." #: ../data/org.gnome.Music.gschema.xml.h:5 msgid "Window maximized" msgstr "ಕಿಟಕಿಯನ್ನು ಗರಿಷ್ಟಗೊಳಿಸಲಾಗಿದ" #: ../data/org.gnome.Music.gschema.xml.h:6 msgid "Window maximized state." msgstr "ಕಿಟಕಿಯ ಗರಿಷ್ಟಗೊಳಿಸಿದ ಸ್ಥಿತಿ." #: ../data/org.gnome.Music.gschema.xml.h:7 msgid "Playback repeat mode" msgstr "ಸಂಗೀತ ಪುನಃ ಚಲಾಯಿಸುವ ಸ್ಥಿತಿ" #: ../data/org.gnome.Music.gschema.xml.h:8 msgid "" "Value identifies whether to repeat or randomize playback through the " "collection. Allowed values are: \"none\", \"song\", \"all\", \"shuffle\"." msgstr "" "ಸಂಗ್ರಹದ ಮೂಲಕ ಪ್ಲೇಬ್ಯಾಕ್ ಅನ್ನು ಪುನರಾವರ್ತಿಸಬೇಕೆ ಅಥವ ಮನಸ್ಸಿಗೆ ಬಂದಂತೆ ಚಲಾಯಿಸಬೇಕೆ " "ಎನ್ನುವುದನ್ನು ಈ ಮೌಲ್ಯವು ಸೂಚಿಸುತ್ತದೆ. ಅನುಮತಿ ಇರುವ ಮೌಲ್ಯಗಳೆಂದರೆ: \"none\", " "\"song\", \"all\", \"shuffle\"." #: ../data/org.gnome.Music.gschema.xml.h:9 msgid "Search mode" msgstr "ಹುಡುಕು ಸ್ಥಿತಿ" #: ../data/org.gnome.Music.gschema.xml.h:10 msgid "If true, the search bar is shown." msgstr "ಟ್ರು ಆಗಿದ್ದಲ್ಲಿ, ಹುಡುಕುಪಟ್ಟಿಯನ್ನು ತೋರಿಸಲಾಗುತ್ತದೆ." #: ../data/gnome-music.desktop.in.h:1 ../gnomemusic/application.py:46 #: ../gnomemusic/application.py:102 ../gnomemusic/window.py:54 #: ../data/AboutDialog.ui.in.h:1 msgid "Music" msgstr "ಸಂಗೀತ " #: ../data/gnome-music.desktop.in.h:2 msgid "Music Player" msgstr "ಸಂಗೀತ ಚಾಲಕ" #: ../data/gnome-music.desktop.in.h:3 ../data/gnome-music.appdata.xml.in.h:2 msgid "Play and organize your music collection" msgstr "ನಿಮ್ಮ ಸಂಗ್ರಹದಿಂದ ಸಂಗೀತವನ್ನು ಆಲಿಸಿ ಮತ್ತು ವ್ಯವಸ್ಥಿವಾಗಿರಿಸಿಕೊಳ್ಳಿ" #: ../data/gnome-music.appdata.xml.in.h:1 msgid "GNOME Music" msgstr "GNOME ಮ್ಯೂಸಿಕ್" #: ../data/gnome-music.appdata.xml.in.h:3 msgid "Music is the new GNOME music playing application." msgstr "ಮ್ಯೂಸಿಕ್ ಎನ್ನುವುದು GNOMEನ ಹೊಸ ಸಂಗೀತ ಚಾಲನಾ ಅನ್ವಯ" #: ../gnomemusic/albumArtCache.py:235 msgid "Untitled" msgstr "ಹೆಸರಿಲ್ಲದ" #: ../gnomemusic/notification.py:70 msgid "Not playing" msgstr "ಚಾಲನೆಯಲ್ಲಿಲ್ಲ" #: ../gnomemusic/notification.py:77 ../gnomemusic/player.py:349 #: ../gnomemusic/view.py:228 ../gnomemusic/view.py:373 #: ../gnomemusic/view.py:587 msgid "Unknown Artist" msgstr "ಗೊತ್ತಿರದ ಕಲಾವಿದ" #: ../gnomemusic/notification.py:79 ../gnomemusic/view.py:471 msgid "Unknown Album" msgstr "ಗೊತ್ತಿರದ ಆಲ್ಬಮ್" #. TRANSLATORS: by refers to the artist, from to the album #: ../gnomemusic/notification.py:83 #, python-format msgid "by %s, from %s" msgstr "%s ರವರ, %s ಇಂದ" #: ../gnomemusic/notification.py:130 msgid "Previous" msgstr "ಹಿಂದಿನ" #: ../gnomemusic/notification.py:133 msgid "Pause" msgstr "ವಿರಮಿಸು" #: ../gnomemusic/notification.py:136 msgid "Play" msgstr "ಚಾಲನೆ ಮಾಡು" #: ../gnomemusic/notification.py:138 msgid "Next" msgstr "ಮುಂದಿನ" #: ../gnomemusic/view.py:290 #, python-format msgid "" "No Music found!\n" " Put some files into the folder %s" msgstr "" "ಯಾವುದೆ ಸಂಗೀತ ಕಂಡುಬಂದಿಲ್ಲ!\n" " %s ಕಡತಕೋಶದಲ್ಲಿ ಕೆಲವು ಕಡತಗಳನ್ನು ಇರಿಸಿ" #: ../gnomemusic/view.py:297 msgid "Albums" msgstr "ಆಲ್ಬಮ್‌ಗಳು" #: ../gnomemusic/view.py:329 msgid "Songs" msgstr "ಹಾಡುಗಳು" #: ../gnomemusic/view.py:480 msgid "Playlists" msgstr "ಸಂಗೀತಪಟ್ಟಿ" #: ../gnomemusic/view.py:486 msgid "Artists" msgstr "ಕಲಾವಿದರು" #: ../gnomemusic/view.py:522 ../gnomemusic/view.py:524 #: ../gnomemusic/widgets.py:443 msgid "All Artists" msgstr "ಎಲ್ಲಾ ಕಲಾವಿದರು" #: ../gnomemusic/widgets.py:73 ../gnomemusic/widgets.py:93 msgid "Load More" msgstr "ಇನ್ನಷ್ಟು ಸೇರಿಸು" #: ../gnomemusic/widgets.py:83 msgid "Loading..." msgstr "ಲೋಡ್ ಆಗುತ್ತಿದೆ..." #: ../gnomemusic/window.py:138 msgid "Empty" msgstr "ಖಾಲಿ" #: ../data/AboutDialog.ui.in.h:2 msgid "Copyright © 2013 GNOME Music Developers" msgstr "ಹಕ್ಕು © 2013 GNOME ಮ್ಯೂಸಿಕ್ ವಿಕಸನಗಾರರು" #: ../data/AboutDialog.ui.in.h:3 msgid "A music player and management application for GNOME." msgstr "GNOME ಗಾಗಿನ ಒಂದು ಸಂಗೀತ ಚಾಲಕ ಮತ್ತು ವ್ಯವಸ್ಥಾಪನಾ ಅನ್ವಯವಾಗಿದೆ." #: ../data/AboutDialog.ui.in.h:4 msgid "Visit GNOME Music website" msgstr "GNOME ಮ್ಯೂಸಿಕ್ ಜಾಲತಾಣಕ್ಕೆ ಭೇಟಿಕೊಡಿ" #: ../data/AboutDialog.ui.in.h:5 msgid "" "GNOME Music 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.\n" "\n" "GNOME Music 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.\n" "\n" "You should have received a copy of the GNU General Public License along with " "GNOME Music; if not, write to the Free Software Foundation, Inc., 51 " "Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" "\n" "The GNOME Music authors hereby grant permission for non-GPL compatible " "GStreamer plugins to be used and distributed together with GStreamer and " "GNOME Music. This permission is above and beyond the permissions granted by " "the GPL license by which GNOME Music is covered. If you modify this code, " "you may extend this exception to your version of the code, but you are not " "obligated to do so. If you do not wish to do so, delete this exception " "statement from your version." msgstr "" "GNOME Music 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.\n" "\n" "GNOME Music 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.\n" "\n" "You should have received a copy of the GNU General Public License along with " "GNOME Music; if not, write to the Free Software Foundation, Inc., 51 " "Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" "\n" "The GNOME Music authors hereby grant permission for non-GPL compatible " "GStreamer plugins to be used and distributed together with GStreamer and " "GNOME Music. This permission is above and beyond the permissions granted by " "the GPL license by which GNOME Music is covered. If you modify this code, " "you may extend this exception to your version of the code, but you are not " "obligated to do so. If you do not wish to do so, delete this exception " "statement from your version." #: ../data/AlbumWidget.ui.h:1 msgid "Released" msgstr "ಬಿಡುಗಡೆಯಾಗಿರುವುದು" #: ../data/AlbumWidget.ui.h:2 msgid "Running Length" msgstr "ಚಾಲನಾ ಸಮಯ" #: ../data/app-menu.ui.h:1 msgid "_New Playlist" msgstr "ಹೊಸ ಸಂಗೀತಪಟ್ಟಿ (_N)" #: ../data/app-menu.ui.h:2 msgid "_Now Playing" msgstr "ಈಗ ಚಲಾಯಿಸುತ್ತಿರುವುದು (_N)" #: ../data/app-menu.ui.h:3 msgid "_About Music" msgstr "ಸಂಗೀತದ ಬಗೆಗೆ (_A)" #: ../data/app-menu.ui.h:4 msgid "_Quit" msgstr "ನಿರ್ಗಮಿಸು (_Q)" #: ../data/PlayerToolbar.ui.h:1 msgid "Shuffle" msgstr "ಶಫಲ್" #: ../data/PlayerToolbar.ui.h:2 msgid "Repeat All" msgstr "ಎಲ್ಲಾ ಮರಳಿ ಚಲಾಯಿಸು" #: ../data/PlayerToolbar.ui.h:3 msgid "Repeat Song" msgstr "ಹಾಡನ್ನು ಪುನಃ ಚಲಾಯಿಸು" #: ../data/PlayerToolbar.ui.h:4 msgid "Shuffle/Repeat Off" msgstr "ಶಫಲ್/ಪುನರಾವರ್ತನೆ ಆಫ್" #: ../data/NoMusic.ui.h:1 msgid "No Music Found" msgstr "ಯಾವುದೆ ಸಂಗೀತ ಕಂಡುಬಂದಿಲ್ಲ" #: ../data/headerbar.ui.in.h:1 msgid "Select All" msgstr "ಎಲ್ಲಾ ಆರಿಸು" #: ../data/headerbar.ui.in.h:2 msgid "Select None" msgstr "ಏನನ್ನೂ ಆರಿಸಬೇಡ" #: ../data/headerbar.ui.in.h:3 msgid "Click on items to select them" msgstr "ಅಂಶಗಳನ್ನು ಆಯ್ಕೆ ಮಾಡಲು ಅವುಗಳನ್ನು ಕ್ಲಿಕ್ ಮಾಡಿ" #: ../data/headerbar.ui.in.h:4 msgid "Cancel" msgstr "ರದ್ದುಗೊಳಿಸು" #: ../data/SelectionToolbar.ui.h:1 msgid "Add to Playlist" msgstr "ಸಂಗೀತಪಟ್ಟಿಗೆ ಸೇರಿಸು" 070701000000FC000081A400000000000000000000000166968E4E00005DF8000000000000000000000000000000000000001A00000000gnome-music-46.1/po/ko.po# Korean translation for gnome-music. # Copyright (C) 2013 gnome-music's authors and many contributors. # This file is distributed under the same license as the gnome-music package. # Seong-ho Cho , 2013-2024. # msgid "" msgstr "" "Project-Id-Version: gnome-music master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-music/issues\n" "POT-Creation-Date: 2024-02-11 20:43+0000\n" "PO-Revision-Date: 2024-03-02 02:49+0900\n" "Last-Translator: Seong-ho Cho \n" "Language-Team: Korean \n" "Language: ko\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Poedit 3.4.2\n" #: data/org.gnome.Music.appdata.xml.in.in:6 #: data/org.gnome.Music.desktop.in.in:3 data/ui/StatusNavigationPage.ui:4 #: gnomemusic/about.py:138 gnomemusic/application.py:59 gnomemusic/window.py:65 msgid "Music" msgstr "음악" #: data/org.gnome.Music.appdata.xml.in.in:7 #: data/org.gnome.Music.desktop.in.in:5 msgid "Play and organize your music collection" msgstr "음악 모음을 재생하고 정리합니다" #: data/org.gnome.Music.appdata.xml.in.in:9 msgid "An easy and pleasant way to play your music." msgstr "음악을 들을 수 있는 쉽고 즐거운 수단입니다." #: data/org.gnome.Music.appdata.xml.in.in:12 msgid "" "Find tracks in your local collection, use automatically generated playlists " "or curate a fresh one." msgstr "" "로컬 모음집에서 트랙을 찾거나 자동으로 미리 만든 재생 목록을 활용하거나 새 목" "록을 구성합니다." #. developer_name tag deprecated with Appstream 1.0 #: data/org.gnome.Music.appdata.xml.in.in:188 msgid "The GNOME Music developers" msgstr "The GNOME Music developers" #: data/org.gnome.Music.desktop.in.in:4 msgid "Music Player" msgstr "음악 재생기" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Music.desktop.in.in:13 msgid "Music;Player;" msgstr "Music;음악;Player;재생기;" #: data/org.gnome.Music.gschema.xml:12 msgid "Window size" msgstr "창 크기" #: data/org.gnome.Music.gschema.xml:13 msgid "Window size (width and height)." msgstr "창 크기(너비 및 높이)." #: data/org.gnome.Music.gschema.xml:17 msgid "Window maximized" msgstr "창 최대화" #: data/org.gnome.Music.gschema.xml:18 msgid "Window maximized state." msgstr "창 최대화 상태." #: data/org.gnome.Music.gschema.xml:22 msgid "Playback repeat mode" msgstr "재생 반복 모드" #. Translators: Don't translate allowed values, just the description in the brackets #: data/org.gnome.Music.gschema.xml:24 msgid "" "Value identifies whether to repeat or randomize playback through the " "collection. Allowed values are: “none” (repeat and shuffle are off), " "“song” (repeat current song), “all” (repeat playlist, no shuffle), " "“shuffle” (shuffle playlist, presumes repeat all)." msgstr "" "모아놓은 음악을 반복 재생할 지 무작위로 재생할 지 나타내는 값입니다. 사용할 " "수 있는 값은 “none”(반복 및 임의 재생 끔), “song”(현재 노래 반복), “all”(재" "생 목록 반복, 임의 재생 안함), “shuffle”(재생 목록 임의 재생, 모든 곡 반복으" "로 간주)입니다." #: data/org.gnome.Music.gschema.xml:28 data/ui/PreferencesDialog.ui:27 msgid "Enable ReplayGain" msgstr "리플레이 게인 활성" #: data/org.gnome.Music.gschema.xml:29 msgid "Enables or disables ReplayGain for albums" msgstr "앨범의 리플레이 게인을 켜거나 끕니다" #: data/org.gnome.Music.gschema.xml:33 msgid "Inhibit system suspend" msgstr "시스템 대기 모드 진입 중단" #: data/org.gnome.Music.gschema.xml:34 msgid "Enables or disables inhibiting system suspend while playing music" msgstr "" "음악을 재생하는 동안 시스템 대기모드 진입 중단 여부를 활성화하거나 비활성화합" "니다" #: data/ui/AlbumsSearchNavigationPage.ui:5 data/ui/SearchView.ui:98 #: gnomemusic/views/albumsview.py:52 msgid "Albums" msgstr "앨범" #: data/ui/AlbumWidget.ui:84 data/ui/PlayerToolbar.ui:87 #: data/ui/PlaylistControls.ui:101 gnomemusic/widgets/playertoolbar.py:176 msgid "Play" msgstr "재생" #: data/ui/AlbumWidget.ui:130 data/ui/PlaylistControls.ui:5 #: data/ui/SongWidgetMenu.ui:11 msgid "_Play" msgstr "재생(_P)" #: data/ui/AlbumWidget.ui:134 msgid "Add to _Favorite Songs" msgstr "즐겨찾는 곡 추가(_F)" #: data/ui/AlbumWidget.ui:138 data/ui/SongWidgetMenu.ui:15 msgid "_Add to Playlist…" msgstr "재생 목록에 추가(_A)…" #: data/ui/ArtistsSearchNavigationPage.ui:5 data/ui/SearchView.ui:41 #: gnomemusic/views/artistsview.py:51 msgid "Artists" msgstr "음악가" #: data/ui/HeaderBar.ui:14 msgid "Menu" msgstr "메뉴" #: data/ui/HeaderBar.ui:22 data/ui/SearchHeaderBar.ui:12 msgid "Search" msgstr "검색" #: data/ui/HeaderBar.ui:31 data/ui/PreferencesDialog.ui:4 msgid "Preferences" msgstr "기본 설정" #: data/ui/HeaderBar.ui:35 msgid "Keyboard Shortcuts" msgstr "키보드 바로 가기 키" #: data/ui/HeaderBar.ui:39 msgid "Help" msgstr "도움말" #: data/ui/HeaderBar.ui:43 msgid "About Music" msgstr "음악 정보" #: data/ui/help-overlay.ui:11 msgctxt "shortcut window" msgid "General" msgstr "일반" #: data/ui/help-overlay.ui:14 msgctxt "shortcut window" msgid "Close window" msgstr "창 닫기" #: data/ui/help-overlay.ui:20 msgctxt "shortcut window" msgid "Search" msgstr "검색" #: data/ui/help-overlay.ui:26 msgctxt "shortcut window" msgid "Help" msgstr "도움말" #: data/ui/help-overlay.ui:32 msgctxt "shortcut window" msgid "Shortcuts" msgstr "바로 가기 키" #: data/ui/help-overlay.ui:40 msgctxt "shortcut window" msgid "Playback" msgstr "재생" #: data/ui/help-overlay.ui:43 msgctxt "shortcut window" msgid "Play/Pause" msgstr "재생/일시 정지" #: data/ui/help-overlay.ui:49 msgctxt "shortcut window" msgid "Next song" msgstr "다음 곡" #: data/ui/help-overlay.ui:55 msgctxt "shortcut window" msgid "Previous song" msgstr "이전 곡" #: data/ui/help-overlay.ui:61 msgctxt "shortcut window" msgid "Toggle repeat" msgstr "반복 재생 전환" #: data/ui/help-overlay.ui:67 msgctxt "shortcut window" msgid "Toggle shuffle" msgstr "임의 재생 모드 전환" #: data/ui/help-overlay.ui:75 msgctxt "shortcut window" msgid "Navigation" msgstr "탐색" #: data/ui/help-overlay.ui:78 msgctxt "shortcut window" msgid "Go to Albums" msgstr "앨범으로 이동" #: data/ui/help-overlay.ui:84 msgctxt "shortcut window" msgid "Go to Artists" msgstr "음악가로 이동" #: data/ui/help-overlay.ui:90 msgctxt "shortcut window" msgid "Go to Songs" msgstr "즐겨찾는 곡으로 이동" #: data/ui/help-overlay.ui:96 msgctxt "shortcut window" msgid "Go to Playlists" msgstr "재생 목록으로 이동" #: data/ui/help-overlay.ui:102 msgctxt "shortcut window" msgid "Go back" msgstr "뒤로" #: data/ui/PlayerToolbar.ui:74 msgid "Previous" msgstr "이전" #: data/ui/PlayerToolbar.ui:106 msgid "Next" msgstr "다음" #: data/ui/PlaylistControls.ui:9 msgid "_Delete" msgstr "삭제(_D)" #: data/ui/PlaylistControls.ui:13 msgid "_Rename…" msgstr "이름 바꾸기(_R)…" #: data/ui/PlaylistControls.ui:28 msgid "Playlist Name" msgstr "재생 목록 이름" #: data/ui/PlaylistControls.ui:62 msgid "_Done" msgstr "완료(_D)" #: data/ui/PlaylistDialog.ui:16 msgid "Add to Playlist" msgstr "재생 목록에 추가" #: data/ui/PlaylistDialog.ui:27 msgid "_Cancel" msgstr "취소(_C)" #: data/ui/PlaylistDialog.ui:36 msgid "_Add" msgstr "추가(_A)" #: data/ui/PlaylistDialog.ui:91 msgid "Enter a name for your first playlist" msgstr "첫 재생 목록 이름을 입력하십시오" #: data/ui/PlaylistDialog.ui:116 msgid "C_reate" msgstr "만들기(_R)" #: data/ui/PlaylistDialog.ui:177 msgid "New Playlist…" msgstr "새 재생 목록…" #: data/ui/PlaylistDialog.ui:189 msgid "Add" msgstr "추가" #: data/ui/PreferencesDialog.ui:9 msgid "Player Settings" msgstr "재생기 설정" #: data/ui/PreferencesDialog.ui:12 msgid "Repeat Mode" msgstr "반복 모드" #: data/ui/PreferencesDialog.ui:16 msgid "None" msgstr "없음" #: data/ui/PreferencesDialog.ui:17 msgid "Song" msgstr "곡" #: data/ui/PreferencesDialog.ui:18 msgid "All" msgstr "모두" #: data/ui/PreferencesDialog.ui:19 gnomemusic/player.py:51 msgid "Shuffle" msgstr "뒤섞기" #: data/ui/PreferencesDialog.ui:28 msgid "Balance loudness between songs if ReplayGain metadata is found" msgstr "리플레이 게인 메타데이터가 있을 경우 곡간 음량 균형 조정" #: data/ui/PreferencesDialog.ui:35 msgid "Power Settings" msgstr "전원 설정" #: data/ui/PreferencesDialog.ui:38 msgid "Inhibit Suspend" msgstr "대기 모드 진입 방지" #: data/ui/PreferencesDialog.ui:39 msgid "Only while playing" msgstr "재생하는 동안에만" #: data/ui/SearchView.ui:55 data/ui/SearchView.ui:112 msgid "View All" msgstr "모두 보기" #: data/ui/SearchView.ui:154 msgid "Songs" msgstr "노래" #: data/ui/SongWidgetMenu.ui:19 msgid "_Remove from Playlist" msgstr "재생 목록에서 제거(_R)" #: data/ui/StatusNavigationPage.ui:36 msgid "Welcome to Music" msgstr "그놈 음악 사용을 환영합니다" #: gnomemusic/about.py:140 msgid "The GNOME Project" msgstr "그놈 프로젝트" #. Translators should localize the following string which #. will be displayed at the bottom of the about box to give #. credit to the translator(s). #: gnomemusic/about.py:146 msgid "translator-credits" msgstr "조성호 " #: gnomemusic/about.py:150 #| msgid "The GNOME Music developers" msgid "© The GNOME Music Developers" msgstr "© The GNOME Music Developers" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:839 msgid "Most Played" msgstr "가장 많이 재생함" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:893 msgid "Never Played" msgstr "재생 안함" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:946 msgid "Recently Played" msgstr "최근 재생함" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1025 msgid "Recently Added" msgstr "최근 추가함" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1088 msgid "Favorite Songs" msgstr "즐겨찾는 곡" #. TRANSLATORS: this is a playlist name indicating that the #. files are not tagged enough to be displayed in the albums #. or artists views. #: gnomemusic/grilowrappers/grltrackerplaylists.py:1142 msgid "Insufficiently Tagged" msgstr "충분치 못한 태깅" #: gnomemusic/gstplayer.py:418 msgid "Unable to play the file" msgstr "파일을 재생할 수 없습니다" #: gnomemusic/gstplayer.py:424 msgid "_Find in {}" msgstr "{}에서 찾기(_F)" #. TRANSLATORS: separator for two codecs #: gnomemusic/gstplayer.py:434 msgid " and " msgstr " 및 " #. TRANSLATORS: separator for a list of codecs #: gnomemusic/gstplayer.py:437 msgid ", " msgstr ", " #: gnomemusic/gstplayer.py:439 msgid "{} is required to play the file, but is not installed." msgid_plural "{} are required to play the file, but are not installed." msgstr[0] "파일을 재생하려면 {}이(가) 필요하지만 설치하지 않았습니다." #: gnomemusic/inhibitsuspend.py:69 msgid "Playing music" msgstr "음악 재생 중" #. Translators: "shuffle" causes tracks to play in random order. #: gnomemusic/player.py:48 msgid "Shuffle/Repeat Off" msgstr "뒤섞기/반복 끔" #: gnomemusic/player.py:49 msgid "Repeat Song" msgstr "한 곡만 반복" #: gnomemusic/player.py:50 msgid "Repeat All" msgstr "모두 반복" #: gnomemusic/playlisttoast.py:55 msgid "Playlist {} removed" msgstr "{} 재생 목록을 제거했습니다" #: gnomemusic/playlisttoast.py:56 gnomemusic/songtoast.py:65 msgid "Undo" msgstr "실행 취소" #: gnomemusic/songtoast.py:64 msgid "{} removed from {}" msgstr "{} 항목을 {}에서 제거했습니다" #: gnomemusic/utils.py:89 msgid "Unknown album" msgstr "알 수 없는 앨범" #: gnomemusic/utils.py:110 msgid "Unknown Artist" msgstr "알 수 없는 음악가" #: gnomemusic/views/playlistsview.py:45 msgid "Playlists" msgstr "재생 목록" #: gnomemusic/views/searchview.py:220 msgid "No Search Started" msgstr "시작한 검색 없음" #: gnomemusic/views/searchview.py:222 msgid "Use the searchbar to start searching for albums, artists or songs" msgstr "앨범, 음악가, 곡 검색을 시작하려면 검색 표시줄을 활용 하십시오" #: gnomemusic/views/searchview.py:226 msgid "No Results Found" msgstr "결과가 없습니다" #: gnomemusic/views/searchview.py:228 msgid "Try a different search" msgstr "다른 단어/문장으로 검색해보십시오" #: gnomemusic/widgets/albumwidget.py:230 msgid "{} minute" msgid_plural "{} minutes" msgstr[0] "{}분" #: gnomemusic/widgets/discbox.py:74 msgid "Disc {}" msgstr "디스크 {}" #: gnomemusic/widgets/playertoolbar.py:173 msgid "Pause" msgstr "일시 정지" #: gnomemusic/widgets/playlistcontrols.py:130 msgid "{} Song" msgid_plural "{} Songs" msgstr[0] "노래 {}곡" #: gnomemusic/widgets/searchheaderbar.py:50 msgid "Search songs, artists and albums" msgstr "곡, 음악가, 앨범을 검색합니다" #. noqa: F841 #: gnomemusic/widgets/songwidgetmenu.py:94 msgid "_Open Location" msgstr "위치 열기(_O)" #. TRANSLATORS: These are verbs, to (un)mark something as a #. favorite. #: gnomemusic/widgets/startoggle.py:36 msgid "Unstar" msgstr "별 표시 해제" #: gnomemusic/widgets/startoggle.py:36 msgid "Star" msgstr "별 표시" #: gnomemusic/widgets/statusnavigationpage.py:51 msgid "Your XDG Music directory is not set." msgstr "XDG 음악 디렉터리를 설정하지 않았습니다." #: gnomemusic/widgets/statusnavigationpage.py:58 msgid "Music Folder" msgstr "음악 폴더" #. TRANSLATORS: This is a label to display a link to open user's music #. folder. {} will be replaced with the translated text 'Music folder' #: gnomemusic/widgets/statusnavigationpage.py:66 msgid "The contents of your {} will appear here." msgstr "{} 내용은 여기에 나타납니다." #: gnomemusic/widgets/statusnavigationpage.py:116 msgid "No Music Found" msgstr "음악이 없습니다" #: gnomemusic/widgets/statusnavigationpage.py:117 msgid "Try a Different Search" msgstr "다른 단어/문장으로 검색해보십시오" #: gnomemusic/widgets/statusnavigationpage.py:121 msgid "GNOME Music could not connect to Tracker." msgstr "그놈 음악을 트래커에 연결할 수 없습니다." #: gnomemusic/widgets/statusnavigationpage.py:123 msgid "Your music files cannot be indexed without Tracker running." msgstr "트래커를 실행하지 않으면 음악 파일을 색인 처리할 수 없습니다." #: gnomemusic/widgets/statusnavigationpage.py:129 msgid "Your system Tracker version seems outdated." msgstr "시스템에 설치한 트래커 버전이 오래됐습니다." #: gnomemusic/widgets/statusnavigationpage.py:131 msgid "Music needs Tracker version 3.0.0 or higher." msgstr "그놈 음악에서는 버전 3.0.0 이상의 트래커가 필요합니다." #~ msgid "Report music history to Last.fm" #~ msgstr "last.fm에 음악 재생 기록 보고" #~ msgid "" #~ "Enables or disables sending scrobbles and the “currently playing” info to " #~ "Last.fm." #~ msgstr "last.fm에 음악 취향과 “현재 재생 중” 정보 보내기를 켜거나 끕니다." #~ msgid "Last.fm Account" #~ msgstr "last.fm 계정" #~ msgid "Report Music Listening" #~ msgstr "감상 음악 보고" #~ msgid "_Help" #~ msgstr "도움말(_H)" #~ msgid "Select" #~ msgstr "선택" #~ msgid "Back" #~ msgstr "뒤로" #~ msgid "" #~ "Last.fm is a music discovery service that gives you personalised " #~ "recommendations based on the music you listen to." #~ msgstr "" #~ "last.fm은 감상곡에 따라 개인화 추천 서비스를 제공하는 음악 검색 서비스입니" #~ "다." #~ msgid "Music Reporting Not Setup" #~ msgstr "음악 보고를 설정하지 않음" #~ msgid "Login to your Last.fm account to report your music listening." #~ msgstr "감상 음악을 보고하려면 last.fm 계정으로 로그인하십시오." #~ msgid "Login" #~ msgstr "로그인" #~ msgid "Select All" #~ msgstr "모두 선택" #~ msgid "Select None" #~ msgstr "선택 안함" #~ msgid "Click on items to select them" #~ msgstr "선택할 항목을 누르십시오" #~ msgid "_Add to Playlist" #~ msgstr "재생 목록에 추가(_A)" #~ msgid "Copyright The GNOME Music Developers" #~ msgstr "Copyright The GNOME Music Developers" #~ msgid "Translated by" #~ msgstr "번역자" #~ msgid "Artists Results" #~ msgstr "음악가 결과" #~ msgid "Albums Results" #~ msgstr "앨범 결과" #~ msgid "Selected {} song" #~ msgid_plural "Selected {} songs" #~ msgstr[0] "음악 {}곡 선택함" #~ msgid "Your music listening is reported to Last.fm." #~ msgstr "감상 음악을 last.fm으로 보고합니다." #~ msgid "Your music listening is not reported to Last.fm." #~ msgstr "감상 음악을 last.fm으로 보고하지 않습니다." #~ msgid "Logged in as {}" #~ msgstr "{} 사용자로 로그인했습니다" #~ msgid "Configure" #~ msgstr "설정" #~ msgid "A music player and management application for GNOME." #~ msgstr "그놈용 음악 재생기 및 관리 프로그램." #~ msgid "Visit GNOME Music website" #~ msgstr "그놈 음악 웹사이트를 방문하세요" #~ msgid "" #~ "GNOME Music 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.\n" #~ "\n" #~ "GNOME Music 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.\n" #~ "\n" #~ "You should have received a copy of the GNU General Public License along " #~ "with GNOME Music; if not, write to the Free Software Foundation, Inc., 51 " #~ "Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ "\n" #~ "The GNOME Music authors hereby grant permission for non-GPL compatible " #~ "GStreamer plugins to be used and distributed together with GStreamer and " #~ "GNOME Music. This permission is above and beyond the permissions granted " #~ "by the GPL license by which GNOME Music is covered. If you modify this " #~ "code, you may extend this exception to your version of the code, but you " #~ "are not obligated to do so. If you do not wish to do so, delete this " #~ "exception statement from your version." #~ msgstr "" #~ "그놈 음악은 자유 소프트웨어 입니다. 자유 소프트웨어 재단이 발표한 GNU 일" #~ "반 공중 사용허가서 라이선스 버전 2 또는(여러분의 취향에 따라) 그 이상의 조" #~ "항에 따라 재배포 또는 수정할 수 있습니다.\n" #~ "\n" #~ "그놈 음악을 여러분께서 쓸모 있게 사용하길 바라며 배포하지만, 그 어떤 보증" #~ "을 하지 않으며 심지어 상업성 또는 일부 목적의 적합성에 대한 암시적 보증도 " #~ "하지 않습니다. 자세한 내용은 GNU 일반 공중 사용허가서를 참조하십시오.\n" #~ "\n" #~ "그놈 음악과 함께 GNU 일반 공중 사용허가서의 사본을 받아야 합니다. 만약 받" #~ "지 못했다면 Free Software Foundation, Inc., 51 Franklin Street, Fifth " #~ "Floor, Boston, MA 02110-1301 USA로 요청하십시오.\n" #~ "\n" #~ "그놈 음악 제작자는 비 GPL 호환 지스트리머 플러그인에 대한 사용을 허가 받았" #~ "으며, 지스트리머와 그놈 음악을 함께 배포합니다. 이 권한은 그놈 음악에 대" #~ "해 효력을 미치는 GNU 일반 공중 사용허가서에 따라 허가받습니다. 이 코드를 " #~ "수정하면, 여러분 버전의 코드에 이 예외를 확장할 수 있겠지만, 의무적인 것" #~ "은 아닙니다. 원치 않는다면 여러분의 코드 버전에서 예외 조항을 삭제하십시" #~ "오." #~ msgid "The contents of your Music Folder will appear here" #~ msgstr "음악 폴더의 내용은 여기에 나타납니다" #~ msgid "GNOME Music" #~ msgstr "그놈 음악" #~ msgid "Window position" #~ msgstr "창 위치" #~ msgid "Window position (x and y)." #~ msgstr "창 위치(가로 및 세로)." #~ msgid "Loading" #~ msgstr "불러오는 중" #~ msgid "Add to Playlist…" #~ msgstr "재생 목록에 추가…" #~ msgid "" #~ "An easy way to play your music. Automatically discover music on your " #~ "computer, the local network and internet services." #~ msgstr "" #~ "음악을 재생하는 간편한 수단입니다. 여러분의 컴퓨터, 로컬 네트워크, 인터넷 " #~ "서비스 계정에서 음악을 자동으로 찾습니다." #~ msgid "" #~ "Find tracks in your local collection, get music from DLNA servers or try " #~ "something new with the Jamendo and Magnatune services." #~ msgstr "" #~ "로컬 음악 모음에서 트랙을 찾거나, DLNA 서버에서 음악을 가져오거나, 쟈멘도" #~ "와 매그너튠 서비스에서 새 음악을 갖아보십시오." #~ msgid "Inital state has been displayed" #~ msgstr "초기 화면을 표시함" #~ msgid "Set to true when initial state has been displayed" #~ msgstr "초기 화면을 이미 표시했으면 참으로 설정합니다" #~ msgid "Released" #~ msgstr "발매일" #~ msgid "Running Length" #~ msgstr "재생 시간" #~ msgid "Composer" #~ msgstr "작곡가" #~ msgctxt "context menu item" #~ msgid "Play" #~ msgstr "재생" #~ msgid "Hey DJ" #~ msgstr "안녕 DJ~" #~ msgid "Artist" #~ msgstr "음악가" #~ msgid "Album" #~ msgstr "앨범" #~ msgid "Track Title" #~ msgstr "트랙 제목" #~ msgid "Local" #~ msgstr "로컬" #~ msgid "Sources" #~ msgstr "원본" #~ msgid "Match" #~ msgstr "일치" #~ msgid "@icon@" #~ msgstr "@icon@" #~ msgid "Untitled" #~ msgstr "제목 없음" #~ msgid "_Quit" #~ msgstr "끝내기(_Q)" #~ msgid "Music is the new GNOME music playing application." #~ msgstr "음악은 새로운 그놈 음악 재생 프로그램입니다." #~ msgid "org.gnome.Music" #~ msgstr "org.gnome.Music" #~ msgid "Search mode" #~ msgstr "검색 모드" #~ msgid "If true, the search bar is shown." #~ msgstr "참이면, 검색 표시줄이 나타납니다." #~ msgid "Notifications mode" #~ msgstr "알림 모드" #~ msgid "Enables or disables playback notifications" #~ msgstr "재생 알림을 켜거나 끕니다" #~ msgid "Selected %d item" #~ msgid_plural "Selected %d items" #~ msgstr[0] "항목 %d개 선택함" #~ msgid "%d min" #~ msgstr "%d분" #~ msgid "Empty" #~ msgstr "비어 있음" #~ msgid "Select Playlist" #~ msgstr "재생 목록 선택" # 한국어에는 the, a, an을 사용하는 문법이 없으므로 U+200B(zero-width space)를 입력합니다(invisible character,번역함). 손대지 마십시오. #~ msgid "the|a|an" #~ msgstr " ​" #~ msgid "Max chars to display in track name on Artist view" #~ msgstr "음악가 보기에서 트랙 이름을 표시할 때 최대 글자 수" #~ msgid "" #~ "This setting modifies the amount of chars for track title on Artist view " #~ "before its been ellipsized. Set this to -1 to disable" #~ msgstr "" #~ "이 설정은 음악가 보기 화면에서 트랙 제목 나머지 부분을 날리기 전에 허용할 " #~ "글자수를 조정합니다. -1 값을 설정하면 제한 글자수가 없어집니다" #~ msgid "the a an" #~ msgstr "the a an" #~ msgid "All Artists" #~ msgstr "모든 음악가" #~ msgid "Not playing" #~ msgstr "재생 중 아님" #~ msgid "by %s, from %s" #~ msgstr "%s 음악가, %s 앨범" 070701000000FD000081A400000000000000000000000166968E4E00005D27000000000000000000000000000000000000001A00000000gnome-music-46.1/po/lt.po# Lithuanian translation for gnome-music. # Copyright (C) 2013 gnome-music's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-music package. # Aurimas Černius , 2013-2022. # msgid "" msgstr "" "Project-Id-Version: gnome-music master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-music/issues\n" "POT-Creation-Date: 2024-02-11 20:43+0000\n" "PO-Revision-Date: 2024-02-26 22:18+0200\n" "Last-Translator: Aurimas Černius \n" "Language-Team: Lietuvių \n" "Language: lt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "(n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Generator: Poedit 3.4.2\n" #: data/org.gnome.Music.appdata.xml.in.in:6 #: data/org.gnome.Music.desktop.in.in:3 data/ui/StatusNavigationPage.ui:4 #: gnomemusic/about.py:138 gnomemusic/application.py:59 gnomemusic/window.py:65 msgid "Music" msgstr "Muzika" #: data/org.gnome.Music.appdata.xml.in.in:7 #: data/org.gnome.Music.desktop.in.in:5 msgid "Play and organize your music collection" msgstr "Groti ir tvarkyti muzikos kolekciją" #: data/org.gnome.Music.appdata.xml.in.in:9 msgid "An easy and pleasant way to play your music." msgstr "Lengvas ir malonus būdas klausytis muzikos." #: data/org.gnome.Music.appdata.xml.in.in:12 msgid "" "Find tracks in your local collection, use automatically generated playlists " "or curate a fresh one." msgstr "" "Raskite takelius savo vietinėje kolekcijoje, naudokite automatiškai sukurtus " "grojaraščius arba kurkite naujus." #. developer_name tag deprecated with Appstream 1.0 #: data/org.gnome.Music.appdata.xml.in.in:188 msgid "The GNOME Music developers" msgstr "GNOME Muzikos kūrėjai" #: data/org.gnome.Music.desktop.in.in:4 msgid "Music Player" msgstr "Muzikos grotuvas" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Music.desktop.in.in:13 msgid "Music;Player;" msgstr "Muzika;Grotuvas;" #: data/org.gnome.Music.gschema.xml:12 msgid "Window size" msgstr "Lango dydis" #: data/org.gnome.Music.gschema.xml:13 msgid "Window size (width and height)." msgstr "Lango dydis (plotis ir aukštis)." #: data/org.gnome.Music.gschema.xml:17 msgid "Window maximized" msgstr "Langas išdidintas" #: data/org.gnome.Music.gschema.xml:18 msgid "Window maximized state." msgstr "Lango išdidinimo būsena." #: data/org.gnome.Music.gschema.xml:22 msgid "Playback repeat mode" msgstr "Grojimo kartojimo veiksena" #. Translators: Don't translate allowed values, just the description in the brackets #: data/org.gnome.Music.gschema.xml:24 msgid "" "Value identifies whether to repeat or randomize playback through the " "collection. Allowed values are: “none” (repeat and shuffle are off), " "“song” (repeat current song), “all” (repeat playlist, no shuffle), " "“shuffle” (shuffle playlist, presumes repeat all)." msgstr "" "Vertė nurodo, ar kartoti bei atsitiktine tvarka šokinėti per kolekciją. " "Galimos vertės yra: „none“ (kartojimas ir maišymas yra išjungti), " "„song“ (kartoti dabartinę dainą), „all“ (kartoti grojaraštį, nemaišyti), " "„shuffle“ (maišyti grojaraštį, kartoja viską)." #: data/org.gnome.Music.gschema.xml:28 data/ui/PreferencesDialog.ui:27 msgid "Enable ReplayGain" msgstr "Įjungti ReplayGain" #: data/org.gnome.Music.gschema.xml:29 msgid "Enables or disables ReplayGain for albums" msgstr "Įjungia arba išjungia ReplayGain albumams" #: data/org.gnome.Music.gschema.xml:33 msgid "Inhibit system suspend" msgstr "Neleisti užmigdyti sistemos" #: data/org.gnome.Music.gschema.xml:34 msgid "Enables or disables inhibiting system suspend while playing music" msgstr "Įjungia arba išjungia sistemos užmigdymo draudimą, kol grojama muzika" #: data/ui/AlbumsSearchNavigationPage.ui:5 data/ui/SearchView.ui:98 #: gnomemusic/views/albumsview.py:52 msgid "Albums" msgstr "Albumai" #: data/ui/AlbumWidget.ui:84 data/ui/PlayerToolbar.ui:87 #: data/ui/PlaylistControls.ui:101 gnomemusic/widgets/playertoolbar.py:176 msgid "Play" msgstr "Groti" #: data/ui/AlbumWidget.ui:130 data/ui/PlaylistControls.ui:5 #: data/ui/SongWidgetMenu.ui:11 msgid "_Play" msgstr "_Groti" #: data/ui/AlbumWidget.ui:134 msgid "Add to _Favorite Songs" msgstr "Pridėti prie _mėgiamų dainų" #: data/ui/AlbumWidget.ui:138 data/ui/SongWidgetMenu.ui:15 msgid "_Add to Playlist…" msgstr "_Pridėti į grojaraštį…" #: data/ui/ArtistsSearchNavigationPage.ui:5 data/ui/SearchView.ui:41 #: gnomemusic/views/artistsview.py:51 msgid "Artists" msgstr "Atlikėjai" #: data/ui/HeaderBar.ui:14 msgid "Menu" msgstr "Meniu" #: data/ui/HeaderBar.ui:22 data/ui/SearchHeaderBar.ui:12 msgid "Search" msgstr "Paieška" #: data/ui/HeaderBar.ui:31 data/ui/PreferencesDialog.ui:4 msgid "Preferences" msgstr "Nuostatos" #: data/ui/HeaderBar.ui:35 msgid "Keyboard Shortcuts" msgstr "Klaviatūros trumpiniai" #: data/ui/HeaderBar.ui:39 msgid "Help" msgstr "Žinynas" #: data/ui/HeaderBar.ui:43 msgid "About Music" msgstr "Apie muziką" #: data/ui/help-overlay.ui:11 msgctxt "shortcut window" msgid "General" msgstr "Bendra" #: data/ui/help-overlay.ui:14 msgctxt "shortcut window" msgid "Close window" msgstr "Užverti langą" #: data/ui/help-overlay.ui:20 msgctxt "shortcut window" msgid "Search" msgstr "Paieška" #: data/ui/help-overlay.ui:26 msgctxt "shortcut window" msgid "Help" msgstr "Žinynas" #: data/ui/help-overlay.ui:32 msgctxt "shortcut window" msgid "Shortcuts" msgstr "Trumpiniai" #: data/ui/help-overlay.ui:40 msgctxt "shortcut window" msgid "Playback" msgstr "Grojimas" #: data/ui/help-overlay.ui:43 msgctxt "shortcut window" msgid "Play/Pause" msgstr "Groti/Pristabdyti" #: data/ui/help-overlay.ui:49 msgctxt "shortcut window" msgid "Next song" msgstr "Kita daina" #: data/ui/help-overlay.ui:55 msgctxt "shortcut window" msgid "Previous song" msgstr "Ankstesnė daina" #: data/ui/help-overlay.ui:61 msgctxt "shortcut window" msgid "Toggle repeat" msgstr "Perjungti kartojimą" #: data/ui/help-overlay.ui:67 msgctxt "shortcut window" msgid "Toggle shuffle" msgstr "Perjungti maišymą" #: data/ui/help-overlay.ui:75 msgctxt "shortcut window" msgid "Navigation" msgstr "Naršymas" #: data/ui/help-overlay.ui:78 msgctxt "shortcut window" msgid "Go to Albums" msgstr "Pereiti į albumus" #: data/ui/help-overlay.ui:84 msgctxt "shortcut window" msgid "Go to Artists" msgstr "Pereiti į atlikėjus" #: data/ui/help-overlay.ui:90 msgctxt "shortcut window" msgid "Go to Songs" msgstr "Pereiti į dainas" #: data/ui/help-overlay.ui:96 msgctxt "shortcut window" msgid "Go to Playlists" msgstr "Pereiti į grojaraščius" #: data/ui/help-overlay.ui:102 msgctxt "shortcut window" msgid "Go back" msgstr "Grįžti" #: data/ui/PlayerToolbar.ui:74 msgid "Previous" msgstr "Ankstesnė" #: data/ui/PlayerToolbar.ui:106 msgid "Next" msgstr "Kita" #: data/ui/PlaylistControls.ui:9 msgid "_Delete" msgstr "_Trinti" #: data/ui/PlaylistControls.ui:13 msgid "_Rename…" msgstr "Pe_rvadinti…" #: data/ui/PlaylistControls.ui:28 msgid "Playlist Name" msgstr "Grojaraščio pavadinimas" #: data/ui/PlaylistControls.ui:62 msgid "_Done" msgstr "A_tlikta" #: data/ui/PlaylistDialog.ui:16 msgid "Add to Playlist" msgstr "Pridėti į grojaraštį" #: data/ui/PlaylistDialog.ui:27 msgid "_Cancel" msgstr "_Atsisakyti" #: data/ui/PlaylistDialog.ui:36 msgid "_Add" msgstr "_Pridėti" #: data/ui/PlaylistDialog.ui:91 msgid "Enter a name for your first playlist" msgstr "Įveskite savo pirmojo grojaraščio pavadinimą" #: data/ui/PlaylistDialog.ui:116 msgid "C_reate" msgstr "Suku_rti" #: data/ui/PlaylistDialog.ui:177 msgid "New Playlist…" msgstr "Naujas grojaraštis…" #: data/ui/PlaylistDialog.ui:189 msgid "Add" msgstr "Pridėti" #: data/ui/PreferencesDialog.ui:9 msgid "Player Settings" msgstr "Grotuvo nuostatos" #: data/ui/PreferencesDialog.ui:12 msgid "Repeat Mode" msgstr "Kartojimo veiksena" #: data/ui/PreferencesDialog.ui:16 msgid "None" msgstr "Nėra" #: data/ui/PreferencesDialog.ui:17 msgid "Song" msgstr "Daina" #: data/ui/PreferencesDialog.ui:18 msgid "All" msgstr "Visi" #: data/ui/PreferencesDialog.ui:19 gnomemusic/player.py:51 msgid "Shuffle" msgstr "Maišyti" #: data/ui/PreferencesDialog.ui:28 msgid "Balance loudness between songs if ReplayGain metadata is found" msgstr "Balansuoti garsumą tarp dainų jei randami ReplayGain meta duomenys." #: data/ui/PreferencesDialog.ui:35 msgid "Power Settings" msgstr "Energijos nuostatos" #: data/ui/PreferencesDialog.ui:38 msgid "Inhibit Suspend" msgstr "Neleisti užmigdyti sistemos" #: data/ui/PreferencesDialog.ui:39 msgid "Only while playing" msgstr "Tik grojant" #: data/ui/SearchView.ui:55 data/ui/SearchView.ui:112 msgid "View All" msgstr "Rodyti viską" #: data/ui/SearchView.ui:154 msgid "Songs" msgstr "Dainos" #: data/ui/SongWidgetMenu.ui:19 msgid "_Remove from Playlist" msgstr "_Pašalinti iš grojaraščio" #: data/ui/StatusNavigationPage.ui:36 msgid "Welcome to Music" msgstr "Sveiki pradėję naudoti Muziką" #: gnomemusic/about.py:140 msgid "The GNOME Project" msgstr "GNOME projektas" #. Translators should localize the following string which #. will be displayed at the bottom of the about box to give #. credit to the translator(s). #: gnomemusic/about.py:146 msgid "translator-credits" msgstr "" "Išvertė:\n" "Aurimas Černius " #: gnomemusic/about.py:150 msgid "© The GNOME Music Developers" msgstr "© GNOME Muzikos kūrėjai" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:839 msgid "Most Played" msgstr "Dažniausiai grojama" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:893 msgid "Never Played" msgstr "Niekada negrota" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:946 msgid "Recently Played" msgstr "Neseniai grota" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1025 msgid "Recently Added" msgstr "Neseniai pridėta" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1088 msgid "Favorite Songs" msgstr "Mėgiama daina" #. TRANSLATORS: this is a playlist name indicating that the #. files are not tagged enough to be displayed in the albums #. or artists views. #: gnomemusic/grilowrappers/grltrackerplaylists.py:1142 msgid "Insufficiently Tagged" msgstr "Nepakankamai pažymėta" #: gnomemusic/gstplayer.py:418 msgid "Unable to play the file" msgstr "Nepavyksta groti failo" #: gnomemusic/gstplayer.py:424 msgid "_Find in {}" msgstr "_Rasti {}" #. TRANSLATORS: separator for two codecs #: gnomemusic/gstplayer.py:434 msgid " and " msgstr " ir " #. TRANSLATORS: separator for a list of codecs #: gnomemusic/gstplayer.py:437 msgid ", " msgstr ", " #: gnomemusic/gstplayer.py:439 msgid "{} is required to play the file, but is not installed." msgid_plural "{} are required to play the file, but are not installed." msgstr[0] "Failui pagroti reikalingas {}, bet jis neįdiegtas." msgstr[1] "Failui pagroti reikalingi {}, bet jie neįdiegti." msgstr[2] "Failui pagroti reikalingi {}, bet jie neįdiegti." #: gnomemusic/inhibitsuspend.py:69 msgid "Playing music" msgstr "Grojama muzika" #. Translators: "shuffle" causes tracks to play in random order. #: gnomemusic/player.py:48 msgid "Shuffle/Repeat Off" msgstr "Maišyti/nekartoti" #: gnomemusic/player.py:49 msgid "Repeat Song" msgstr "Kartoti dainą" #: gnomemusic/player.py:50 msgid "Repeat All" msgstr "Kartoti visus" #: gnomemusic/playlisttoast.py:55 msgid "Playlist {} removed" msgstr "Grojaraštis {} pašalintas" #: gnomemusic/playlisttoast.py:56 gnomemusic/songtoast.py:65 msgid "Undo" msgstr "Atšaukti" #: gnomemusic/songtoast.py:64 msgid "{} removed from {}" msgstr "{} pašalinta iš {}" #: gnomemusic/utils.py:89 msgid "Unknown album" msgstr "Nežinomas albumas" #: gnomemusic/utils.py:110 msgid "Unknown Artist" msgstr "Nežinomas atlikėjas" #: gnomemusic/views/playlistsview.py:45 msgid "Playlists" msgstr "Grojaraščiai" #: gnomemusic/views/searchview.py:220 msgid "No Search Started" msgstr "Nepaleista paieška" #: gnomemusic/views/searchview.py:222 msgid "Use the searchbar to start searching for albums, artists or songs" msgstr "Naudokite paieškos juostą albumų, atlikėjų ar dainų paieškai pradėti" #: gnomemusic/views/searchview.py:226 msgid "No Results Found" msgstr "Nerasta rezultatų" #: gnomemusic/views/searchview.py:228 msgid "Try a different search" msgstr "Bandykite kitą paiešką" #: gnomemusic/widgets/albumwidget.py:230 msgid "{} minute" msgid_plural "{} minutes" msgstr[0] "{} minutė" msgstr[1] "{} minutės" msgstr[2] "{} minučių" #: gnomemusic/widgets/discbox.py:74 msgid "Disc {}" msgstr "Diskas {}" #: gnomemusic/widgets/playertoolbar.py:173 msgid "Pause" msgstr "Pristabdyti" #: gnomemusic/widgets/playlistcontrols.py:130 msgid "{} Song" msgid_plural "{} Songs" msgstr[0] "{} daina" msgstr[1] "{} dainos" msgstr[2] "{} dainų" #: gnomemusic/widgets/searchheaderbar.py:50 msgid "Search songs, artists and albums" msgstr "Ieškoti dainų, atlikėjų bei albumų" #. noqa: F841 #: gnomemusic/widgets/songwidgetmenu.py:94 msgid "_Open Location" msgstr "_Atverti vietą" #. TRANSLATORS: These are verbs, to (un)mark something as a #. favorite. #: gnomemusic/widgets/startoggle.py:36 msgid "Unstar" msgstr "Nuimti žvaigždutę" #: gnomemusic/widgets/startoggle.py:36 msgid "Star" msgstr "Pažymėti žvaigždute" #: gnomemusic/widgets/statusnavigationpage.py:51 msgid "Your XDG Music directory is not set." msgstr "Jūsų XDG muzikos katalogas nenustatytas." #: gnomemusic/widgets/statusnavigationpage.py:58 msgid "Music Folder" msgstr "Muzikos aplankas" #. TRANSLATORS: This is a label to display a link to open user's music #. folder. {} will be replaced with the translated text 'Music folder' #: gnomemusic/widgets/statusnavigationpage.py:66 msgid "The contents of your {} will appear here." msgstr "Čia matysite savo {} aplanko turinį." #: gnomemusic/widgets/statusnavigationpage.py:116 msgid "No Music Found" msgstr "Nerasta muzikos" #: gnomemusic/widgets/statusnavigationpage.py:117 msgid "Try a Different Search" msgstr "Bandykite kitą paiešką" #: gnomemusic/widgets/statusnavigationpage.py:121 msgid "GNOME Music could not connect to Tracker." msgstr "GNOME Muzikai nepavyko prisijungti prie Tracker sistemos." #: gnomemusic/widgets/statusnavigationpage.py:123 msgid "Your music files cannot be indexed without Tracker running." msgstr "" "Jūsų muzikos failų negalima indeksuoti be veikiančios Tracker sistemos." #: gnomemusic/widgets/statusnavigationpage.py:129 msgid "Your system Tracker version seems outdated." msgstr "Jūsų sistemos Tracker versija atrodo pasenusi." #: gnomemusic/widgets/statusnavigationpage.py:131 msgid "Music needs Tracker version 3.0.0 or higher." msgstr "Muzikai reikia Tracker versijos 3.0.0 arba naujesnės." #~ msgid "Report music history to Last.fm" #~ msgstr "Pranešti muzikos istoriją Last.fm" #~ msgid "" #~ "Enables or disables sending scrobbles and the “currently playing” info to " #~ "Last.fm." #~ msgstr "" #~ "Įjungia arba išjungia santraukų „šiuo metu grojama“ siuntimą į Last.fm." #~ msgid "Last.fm Account" #~ msgstr "Last.fm paskyra" #~ msgid "Report Music Listening" #~ msgstr "Pranešti klausomą muziką" #~ msgid "_Help" #~ msgstr "_Žinynas" #~ msgid "Select" #~ msgstr "Žymėti" #~ msgid "Back" #~ msgstr "Grįžti" #~ msgid "" #~ "Last.fm is a music discovery service that gives you personalised " #~ "recommendations based on the music you listen to." #~ msgstr "" #~ "Last.fm yra muzikos aptikimo tarnyba, kuri jums suteikia asmenines " #~ "rekomendacijas pagal jūsų klausomą muziką." #~ msgid "Music Reporting Not Setup" #~ msgstr "Pranešimas apie muziką nenustatytas" #~ msgid "Login to your Last.fm account to report your music listening." #~ msgstr "" #~ "Prisijunkite prie savo Last.fm paskyros ir praneškite apie savo klausomą " #~ "muziką." #~ msgid "Login" #~ msgstr "Prisijungti" #~ msgid "Select All" #~ msgstr "Žymėti viską" #~ msgid "Select None" #~ msgstr "Nieko nežymėti" #~ msgid "Click on items to select them" #~ msgstr "Spauskite ant elementų jiems pažymėti" #~ msgid "_Add to Playlist" #~ msgstr "_Pridėti į grojaraštį" #~ msgid "Copyright The GNOME Music Developers" #~ msgstr "Autorių teisės priklauso GNOME Muzikos kūrėjams" #~ msgid "Translated by" #~ msgstr "" #~ "Išvertė:\n" #~ "Aurimas Černius" #~ msgid "Artists Results" #~ msgstr "Atlikėjų rezultatai" #~ msgid "Albums Results" #~ msgstr "Albumų rezultatai" #~ msgid "Selected {} song" #~ msgid_plural "Selected {} songs" #~ msgstr[0] "Pažymėta {} daina" #~ msgstr[1] "Pažymėtos {} dainos" #~ msgstr[2] "Pažymėta {} dainų" #~ msgid "Your music listening is reported to Last.fm." #~ msgstr "Apie jūsų klausomą muziką bus pranešama Last.fm." #~ msgid "Your music listening is not reported to Last.fm." #~ msgstr "Apie jūsų klausomą muziką nėra pranešama Last.fm." #~ msgid "Logged in as {}" #~ msgstr "Prisijungta kaip {}" #~ msgid "Configure" #~ msgstr "Nustatyti" #~ msgid "A music player and management application for GNOME." #~ msgstr "Muzikos grotuvas ir tvarkymo programa GNOME aplinkai." #~ msgid "Visit GNOME Music website" #~ msgstr "Apsilankykite GNOME Muzikos tinklalapyje" #~ msgid "" #~ "GNOME Music 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.\n" #~ "\n" #~ "GNOME Music 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.\n" #~ "\n" #~ "You should have received a copy of the GNU General Public License along " #~ "with GNOME Music; if not, write to the Free Software Foundation, Inc., 51 " #~ "Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ "\n" #~ "The GNOME Music authors hereby grant permission for non-GPL compatible " #~ "GStreamer plugins to be used and distributed together with GStreamer and " #~ "GNOME Music. This permission is above and beyond the permissions granted " #~ "by the GPL license by which GNOME Music is covered. If you modify this " #~ "code, you may extend this exception to your version of the code, but you " #~ "are not obligated to do so. If you do not wish to do so, delete this " #~ "exception statement from your version." #~ msgstr "" #~ "GNOME Muzika yra laisva programinė įranga; galite ją platinti ir(arba) " #~ "keisti pagal GNU bendrosios viešosios licencijos (GPL) sąlygas, kaip jas " #~ "pateikia Free Software Foundation; licencijos versija 2 arba (jūsų " #~ "pasirinkta) bet kuri vėlesnė versija.\n" #~ "\n" #~ "GNOME Muzika yra platinama tikintis kad ji bus naudinga, bet BE JOKIŲ " #~ "GARANTIJŲ; netgi be numanomų PREKYBINIŲ ar TINKAMUMO KONKREČIAM TIKSLUI " #~ "garantijų. Daugiau informacijos rasite GNU bendrojoje viešojoje " #~ "licencijoje.\n" #~ "\n" #~ "Jūs turėjote gauti GNU bendrosios viešosios licencijos kopiją kartu su " #~ "GNOME Muzika; jei negavote, parašykite Free Software Foundation, Inc., 51 " #~ "Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ "\n" #~ "GNOME Muzikos autoriai taip pat leidžia kartu su GNOME Muzika ir " #~ "GStreamer platinti ir naudoti su GStreamer suderinamus ne-GPL įskiepius. " #~ "Šis leidimas yra aukščiau ir plačiau GPL licencijos teikiamų leidimų, " #~ "kurie galioja GNOME Muzikai. Jei pakeisite šį kodą, galite šią išimtį " #~ "pritaikyti savo kodo versijai, bet neprivalote to daryti. Jei " #~ "nepageidaujate, ištrinkite šį punktą iš savo versijos." #~| msgid "The contents of your {} will appear here." #~ msgid "The contents of your Music Folder will appear here" #~ msgstr "Čia matysite savo muzikos aplanko turinį" #~ msgid "GNOME Music" #~ msgstr "GNOME muzika" #~ msgid "Window position" #~ msgstr "Lango padėtis" #~ msgid "Window position (x and y)." #~ msgstr "Lango padėtis (x ir y)." #~ msgid "Loading" #~ msgstr "Įkeliama" #~ msgid "Add to Playlist…" #~ msgstr "Pridėti į grojaraštį…" #~ msgid "" #~ "An easy way to play your music. Automatically discover music on your " #~ "computer, the local network and internet services." #~ msgstr "" #~ "Paprastas būdas groti muziką. Automatiškai aptinka muziką jūsų " #~ "kompiuteryje, vietiniame tinkle bei internetinėse tarnybose." #~ msgid "" #~ "Find tracks in your local collection, get music from DLNA servers or try " #~ "something new with the Jamendo and Magnatune services." #~ msgstr "" #~ "Raskite takelius savo vietinėje kolekcijoje, gaukite muziką iš DLNA " #~ "serverių arba pabandykite ką nors naujo su Jamendo ir Magnatune " #~ "paslaugomis." #~ msgid "Inital state has been displayed" #~ msgstr "Pradinė būsena buvo parodyta" #~ msgid "Set to true when initial state has been displayed" #~ msgstr "Nustatyti teigiamai kai pradinė būsena buvo parodyta" #~ msgid "Released" #~ msgstr "Išleista" #~ msgid "Running Length" #~ msgstr "Grojimo trukmė" #~ msgid "Composer" #~ msgstr "Kompozitorius" #~ msgctxt "context menu item" #~ msgid "Play" #~ msgstr "Groti" #~ msgid "Hey DJ" #~ msgstr "Sveikas, DJ" #~ msgid "Artist" #~ msgstr "Atlikėjai" #~ msgid "Album" #~ msgstr "Albumai" #~ msgid "Track Title" #~ msgstr "Takelio pavadinimas" #~ msgid "Local" #~ msgstr "Vietinis" #~ msgid "Sources" #~ msgstr "Šaltiniai" #~ msgid "Match" #~ msgstr "Atitikmuo" #~ msgid "@icon@" #~ msgstr "@icon@" #~ msgid "Untitled" #~ msgstr "Nepavadinta" #~ msgid "_Quit" #~ msgstr "_Išeiti" #~ msgid "Music is the new GNOME music playing application." #~ msgstr "Muzika yra nauja GNOME muzikos grojimo programa." #~ msgid "org.gnome.Music" #~ msgstr "org.gnome.Music" #~ msgid "Search mode" #~ msgstr "Paieškos veiksena" #~ msgid "If true, the search bar is shown." #~ msgstr "Jei teigiama, paieškos juosta yra rodoma." #~ msgid "Notifications mode" #~ msgstr "Pranešimų veiksena" #~ msgid "Enables or disables playback notifications" #~ msgstr "Įjungia arba išjungia grojimo pranešimus" #~ msgid "Selected %d item" #~ msgid_plural "Selected %d items" #~ msgstr[0] "Pasirinktas %d elementas" #~ msgstr[1] "Pasirinkti %d elementai" #~ msgstr[2] "Pasirinkta %d elementų" #~ msgid "%d min" #~ msgstr "%d min" #~ msgid "Empty" #~ msgstr "Tuščia" #~ msgid "Select Playlist" #~ msgstr "Žymėti grojaraštį" #~ msgid "the|a|an" #~ msgstr "the|a|an" #~ msgid "Max chars to display in track name on Artist view" #~ msgstr "Daugiausiai simbolių takelio pavadinimui atlikėjo vaizde" #~ msgid "" #~ "This setting modifies the amount of chars for track title on Artist view " #~ "before its been ellipsized. Set this to -1 to disable" #~ msgstr "" #~ "Šis nustatymas keičia simbolių skaičių takelio pavadinime atlikėjo vaizde " #~ "iki jo trumpinimo. Išjungimui nustatykite į -1" #~ msgid "the a an" #~ msgstr "the" #~ msgid "All Artists" #~ msgstr "Visi atlikėjai" #~ msgid "Not playing" #~ msgstr "Negroja" #~ msgid "by %s, from %s" #~ msgstr "atlieka %s iš albumo %s" #~ msgid "" #~ "No Music found!\n" #~ " Put some files into the folder %s" #~ msgstr "" #~ "Nerasta muzikos!\n" #~ " Įdėkite failų į aplanką %s" #~ msgid "_New Playlist" #~ msgstr "_Naujas grojaraštis" 070701000000FE000081A400000000000000000000000166968E4E00005AC0000000000000000000000000000000000000001A00000000gnome-music-46.1/po/lv.po# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # SPDX-FileCopyrightText: 2013, 2014, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024 Rūdolfs Mazurs msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-music/issues\n" "POT-Creation-Date: 2024-02-24 23:18+0000\n" "PO-Revision-Date: 2024-03-08 22:24+0200\n" "Last-Translator: Rūdolfs Mazurs \n" "Language-Team: Latvian \n" "Language: lv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 :" " 2);\n" "X-Generator: Lokalize 23.08.1\n" #: data/org.gnome.Music.appdata.xml.in.in:6 #: data/org.gnome.Music.desktop.in.in:3 data/ui/StatusNavigationPage.ui:4 #: gnomemusic/about.py:138 gnomemusic/application.py:59 gnomemusic/window.py:65 msgid "Music" msgstr "Mūzika" #: data/org.gnome.Music.appdata.xml.in.in:7 #: data/org.gnome.Music.desktop.in.in:5 msgid "Play and organize your music collection" msgstr "Atskaņo un organizē savu mūzikas kolekciju" #: data/org.gnome.Music.appdata.xml.in.in:9 msgid "An easy and pleasant way to play your music." msgstr "Vienkāršs un patīkams veids, kā atskaņot savu mūziku." #: data/org.gnome.Music.appdata.xml.in.in:12 msgid "" "Find tracks in your local collection, use automatically generated playlists " "or curate a fresh one." msgstr "" "Atrodi celiņus savā lokālajā kolekcijā, automātiski veido repertuārus vai " "izveido jaunus." #. developer_name tag deprecated with Appstream 1.0 #: data/org.gnome.Music.appdata.xml.in.in:188 msgid "The GNOME Music developers" msgstr "GNOME Mūzikas izstrādātāji" #: data/org.gnome.Music.desktop.in.in:4 msgid "Music Player" msgstr "Mūzikas atskaņotājs" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Music.desktop.in.in:13 msgid "Music;Player;" msgstr "Mūzika;Atskaņotājs;" #: data/org.gnome.Music.gschema.xml:12 msgid "Window size" msgstr "Loga izmērs" #: data/org.gnome.Music.gschema.xml:13 msgid "Window size (width and height)." msgstr "Loga izmērs (platums un augstums)." #: data/org.gnome.Music.gschema.xml:17 msgid "Window maximized" msgstr "Logs maksimizēts" #: data/org.gnome.Music.gschema.xml:18 msgid "Window maximized state." msgstr "Loga stāvoklis — maksimizēts." #: data/org.gnome.Music.gschema.xml:22 msgid "Playback repeat mode" msgstr "Atskaņot atkārtošanās režīmā" #. Translators: Don't translate allowed values, just the description in the brackets #: data/org.gnome.Music.gschema.xml:24 msgid "" "Value identifies whether to repeat or randomize playback through the " "collection. Allowed values are: “none” (repeat and shuffle are off), " "“song” (repeat current song), “all” (repeat playlist, no shuffle), " "“shuffle” (shuffle playlist, presumes repeat all)." msgstr "" "Vērtība nosaka, vai kolekciju atskaņot atkārtojot vai nejauši samaisot. " "Atļautās vērtības ir “none” (atkārtošana un samaisīšana ir izslēgta) , " "“song” (atkārtot atskaņoto dziesmu), “all” (atkārtot visu repertuāru, " "nemaisīt), “shuffle” (samaisīt repertuāru, arī atkārtot)." #: data/org.gnome.Music.gschema.xml:28 data/ui/PreferencesDialog.ui:27 msgid "Enable ReplayGain" msgstr "Ieslēgt ReplayGain" #: data/org.gnome.Music.gschema.xml:29 msgid "Enables or disables ReplayGain for albums" msgstr "Ieslēdz vai izslēdz ReplayGain albumiem" #: data/org.gnome.Music.gschema.xml:33 msgid "Inhibit system suspend" msgstr "Nomākt sistēmas iesnaušanu" #: data/org.gnome.Music.gschema.xml:34 msgid "Enables or disables inhibiting system suspend while playing music" msgstr "Ieslēdz vai izslēdz sistēmas iesnaušanas nomākšanu, kad atskaņo mūziku" #: data/ui/AlbumsSearchNavigationPage.ui:5 data/ui/SearchView.ui:98 #: gnomemusic/views/albumsview.py:52 msgid "Albums" msgstr "Albumi" #: data/ui/AlbumWidget.ui:84 data/ui/PlayerToolbar.ui:87 #: data/ui/PlaylistControls.ui:101 gnomemusic/widgets/playertoolbar.py:176 msgid "Play" msgstr "Atskaņot" #: data/ui/AlbumWidget.ui:130 data/ui/PlaylistControls.ui:5 #: data/ui/SongWidgetMenu.ui:11 msgid "_Play" msgstr "_Atskaņot" #: data/ui/AlbumWidget.ui:134 msgid "Add to _Favorite Songs" msgstr "Pievienot _iecienītajām dziesmām" #: data/ui/AlbumWidget.ui:138 data/ui/SongWidgetMenu.ui:15 msgid "_Add to Playlist…" msgstr "_Pievienot repertuāram…" #: data/ui/ArtistsSearchNavigationPage.ui:5 data/ui/SearchView.ui:41 #: gnomemusic/views/artistsview.py:51 msgid "Artists" msgstr "Izpildītāji" #: data/ui/HeaderBar.ui:14 msgid "Menu" msgstr "Izvēlne" #: data/ui/HeaderBar.ui:22 data/ui/SearchHeaderBar.ui:12 msgid "Search" msgstr "Meklēt" #: data/ui/HeaderBar.ui:31 data/ui/PreferencesDialog.ui:4 msgid "Preferences" msgstr "Iestatījumi" #: data/ui/HeaderBar.ui:35 msgid "Keyboard Shortcuts" msgstr "Tastatūras īsinājumtaustiņi" #: data/ui/HeaderBar.ui:39 msgid "Help" msgstr "Palīdzība" #: data/ui/HeaderBar.ui:43 msgid "About Music" msgstr "Par Mūziku" #: data/ui/help-overlay.ui:11 msgctxt "shortcut window" msgid "General" msgstr "Vispārīgi" #: data/ui/help-overlay.ui:14 msgctxt "shortcut window" msgid "Close window" msgstr "Aizvērt logu" #: data/ui/help-overlay.ui:20 msgctxt "shortcut window" msgid "Search" msgstr "Meklēt" #: data/ui/help-overlay.ui:26 msgctxt "shortcut window" msgid "Help" msgstr "Palīdzība" #: data/ui/help-overlay.ui:32 msgctxt "shortcut window" msgid "Shortcuts" msgstr "Saīsnes" #: data/ui/help-overlay.ui:40 msgctxt "shortcut window" msgid "Playback" msgstr "Atskaņošana" #: data/ui/help-overlay.ui:43 msgctxt "shortcut window" msgid "Play/Pause" msgstr "Atskaņot / pauzēt" #: data/ui/help-overlay.ui:49 msgctxt "shortcut window" msgid "Next song" msgstr "Nākamā dziesma" #: data/ui/help-overlay.ui:55 msgctxt "shortcut window" msgid "Previous song" msgstr "Iepriekšējā dziesma" #: data/ui/help-overlay.ui:61 msgctxt "shortcut window" msgid "Toggle repeat" msgstr "Pārslēgt atkārtošanu" #: data/ui/help-overlay.ui:67 msgctxt "shortcut window" msgid "Toggle shuffle" msgstr "Pārslēgt sajaukšanu" #: data/ui/help-overlay.ui:75 msgctxt "shortcut window" msgid "Navigation" msgstr "Navigācija" #: data/ui/help-overlay.ui:78 msgctxt "shortcut window" msgid "Go to Albums" msgstr "Iet uz albumiem" #: data/ui/help-overlay.ui:84 msgctxt "shortcut window" msgid "Go to Artists" msgstr "Iet uz izpildītājiem" #: data/ui/help-overlay.ui:90 msgctxt "shortcut window" msgid "Go to Songs" msgstr "Iet uz dziesmām" #: data/ui/help-overlay.ui:96 msgctxt "shortcut window" msgid "Go to Playlists" msgstr "Iet uz repertuāriem" #: data/ui/help-overlay.ui:102 msgctxt "shortcut window" msgid "Go back" msgstr "Iet atpakaļ" #: data/ui/PlayerToolbar.ui:74 msgid "Previous" msgstr "Iepriekšējais" #: data/ui/PlayerToolbar.ui:106 msgid "Next" msgstr "Nākamais" #: data/ui/PlaylistControls.ui:9 msgid "_Delete" msgstr "_Dzēst" #: data/ui/PlaylistControls.ui:13 msgid "_Rename…" msgstr "Pā_rdēvēt…" #: data/ui/PlaylistControls.ui:28 msgid "Playlist Name" msgstr "Repertuāra nosaukums" #: data/ui/PlaylistControls.ui:62 msgid "_Done" msgstr "_Gatavs" #: data/ui/PlaylistDialog.ui:16 msgid "Add to Playlist" msgstr "Pievienot repertuāram" #: data/ui/PlaylistDialog.ui:27 msgid "_Cancel" msgstr "At_celt" #: data/ui/PlaylistDialog.ui:36 msgid "_Add" msgstr "_Pievienot" #: data/ui/PlaylistDialog.ui:91 msgid "Enter a name for your first playlist" msgstr "Ievadiet sava pirmā repertuāra nosaukumu" #: data/ui/PlaylistDialog.ui:116 msgid "C_reate" msgstr "Iz_veidot" #: data/ui/PlaylistDialog.ui:177 msgid "New Playlist…" msgstr "Jauns repertuārs…" #: data/ui/PlaylistDialog.ui:189 msgid "Add" msgstr "Pievienot" #: data/ui/PreferencesDialog.ui:9 msgid "Player Settings" msgstr "Atskaņotāja iestatījumi" #: data/ui/PreferencesDialog.ui:12 msgid "Repeat Mode" msgstr "Atkārtošanas režīms" #: data/ui/PreferencesDialog.ui:16 msgid "None" msgstr "Nekas" #: data/ui/PreferencesDialog.ui:17 msgid "Song" msgstr "Dziesma" #: data/ui/PreferencesDialog.ui:18 msgid "All" msgstr "Visi" #: data/ui/PreferencesDialog.ui:19 gnomemusic/player.py:51 msgid "Shuffle" msgstr "Sajaukt" #: data/ui/PreferencesDialog.ui:28 msgid "Balance loudness between songs if ReplayGain metadata is found" msgstr "Balansēt skaļumu starp dziesmām, ja ir atrasti ReplayGain metadati" #: data/ui/PreferencesDialog.ui:35 msgid "Power Settings" msgstr "Barošanas iestatījumi" #: data/ui/PreferencesDialog.ui:38 msgid "Inhibit Suspend" msgstr "Nomākt iesnaušanu" #: data/ui/PreferencesDialog.ui:39 msgid "Only while playing" msgstr "Tikai, kad atskaņo" #: data/ui/SearchView.ui:55 data/ui/SearchView.ui:112 msgid "View All" msgstr "Rādīt visu" #: data/ui/SearchView.ui:154 msgid "Songs" msgstr "Dziesmas" #: data/ui/SongWidgetMenu.ui:19 msgid "_Remove from Playlist" msgstr "Izņemt no _repertuāra" #: data/ui/StatusNavigationPage.ui:36 msgid "Welcome to Music" msgstr "Laipni lūdzam Mūzikā" #: gnomemusic/about.py:140 msgid "The GNOME Project" msgstr "GNOME projekts" #. Translators should localize the following string which #. will be displayed at the bottom of the about box to give #. credit to the translator(s). #: gnomemusic/about.py:146 msgid "translator-credits" msgstr "Rūdolfs Mazurs " #: gnomemusic/about.py:150 msgid "© The GNOME Music Developers" msgstr "© GNOME Mūzikas izstrādātāji" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:839 msgid "Most Played" msgstr "Visbiežāk atskaņotās" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:893 msgid "Never Played" msgstr "Nekad neatskaņotās" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:946 msgid "Recently Played" msgstr "Nesen atskaņotās" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1025 msgid "Recently Added" msgstr "Nesen pievienotās" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1088 msgid "Favorite Songs" msgstr "Iecienītās dziesmas" #. TRANSLATORS: this is a playlist name indicating that the #. files are not tagged enough to be displayed in the albums #. or artists views. #: gnomemusic/grilowrappers/grltrackerplaylists.py:1142 msgid "Insufficiently Tagged" msgstr "Nepietiekami tagoti" #: gnomemusic/gstplayer.py:418 msgid "Unable to play the file" msgstr "Neizdevās atskaņot datni" #: gnomemusic/gstplayer.py:424 msgid "_Find in {}" msgstr "_Meklēt mapē {}" #. TRANSLATORS: separator for two codecs #: gnomemusic/gstplayer.py:434 msgid " and " msgstr " un " #. TRANSLATORS: separator for a list of codecs #: gnomemusic/gstplayer.py:437 msgid ", " msgstr ", " #: gnomemusic/gstplayer.py:439 msgid "{} is required to play the file, but is not installed." msgid_plural "{} are required to play the file, but are not installed." msgstr[0] "Lai atskaņotu datni, nepieciešams {}, bet tas nav uzinstalēts." msgstr[1] "Lai atskaņotu datni, nepieciešami {}, bet tie nav uzinstalēti." msgstr[2] "Lai atskaņotu datni, nepieciešami {}, bet tie nav uzinstalēti." #: gnomemusic/inhibitsuspend.py:69 msgid "Playing music" msgstr "Atskaņo mūziku" #. Translators: "shuffle" causes tracks to play in random order. #: gnomemusic/player.py:48 msgid "Shuffle/Repeat Off" msgstr "Izslēgt jaukšanu/atkārtošanu" #: gnomemusic/player.py:49 msgid "Repeat Song" msgstr "Atkārtot dziesmu" #: gnomemusic/player.py:50 msgid "Repeat All" msgstr "Atkārtot visas" #: gnomemusic/playlisttoast.py:55 msgid "Playlist {} removed" msgstr "Repertuāra {} ir izņemts" #: gnomemusic/playlisttoast.py:56 gnomemusic/songtoast.py:65 msgid "Undo" msgstr "Atsaukt" #: gnomemusic/songtoast.py:64 msgid "{} removed from {}" msgstr "{} izņemts no {}" #: gnomemusic/utils.py:89 msgid "Unknown album" msgstr "Nezināms albums" #: gnomemusic/utils.py:110 msgid "Unknown Artist" msgstr "Nezināms izpildītājs" #: gnomemusic/views/playlistsview.py:45 msgid "Playlists" msgstr "Repertuāri" #: gnomemusic/views/searchview.py:220 msgid "No Search Started" msgstr "Meklēšana nav sākta" #: gnomemusic/views/searchview.py:222 msgid "Use the searchbar to start searching for albums, artists or songs" msgstr "" "Izmantojiet meklēšanas joslu, lai sāktu meklēt albumus, izpildītājus vai " "dziesmas" #: gnomemusic/views/searchview.py:226 msgid "No Results Found" msgstr "Nav atrastu rezultātu" #: gnomemusic/views/searchview.py:228 msgid "Try a different search" msgstr "Mēģiniet ar citu meklējamo vārdu" #: gnomemusic/widgets/albumwidget.py:230 msgid "{} minute" msgid_plural "{} minutes" msgstr[0] "{} minūte" msgstr[1] "{} minūtes" msgstr[2] "{} minūšu" #: gnomemusic/widgets/discbox.py:74 msgid "Disc {}" msgstr "Disks (}" #: gnomemusic/widgets/playertoolbar.py:173 msgid "Pause" msgstr "Pauzēt" #: gnomemusic/widgets/playlistcontrols.py:130 msgid "{} Song" msgid_plural "{} Songs" msgstr[0] "{} dziesma" msgstr[1] "{} dziesmas" msgstr[2] "{} dziesmu" #: gnomemusic/widgets/searchheaderbar.py:50 msgid "Search songs, artists and albums" msgstr "Meklēt dziesmas, izpildītājus un albumus" #. noqa: F841 #: gnomemusic/widgets/songwidgetmenu.py:94 msgid "_Open Location" msgstr "_Atvērt vietu" #. TRANSLATORS: These are verbs, to (un)mark something as a #. favorite. #: gnomemusic/widgets/startoggle.py:36 msgid "Unstar" msgstr "Noņemt zvaigzni" #: gnomemusic/widgets/startoggle.py:36 msgid "Star" msgstr "Pievienot zvaigzni" #: gnomemusic/widgets/statusnavigationpage.py:51 msgid "Your XDG Music directory is not set." msgstr "Jūsu XDG mūzikas direktorijs nav iestatīts." #: gnomemusic/widgets/statusnavigationpage.py:58 msgid "Music Folder" msgstr "Mūzikas mape" #. TRANSLATORS: This is a label to display a link to open user's music #. folder. {} will be replaced with the translated text 'Music folder' #: gnomemusic/widgets/statusnavigationpage.py:66 msgid "The contents of your {} will appear here." msgstr "Jūsu {} saturs parādīsies šeit" #: gnomemusic/widgets/statusnavigationpage.py:116 msgid "No Music Found" msgstr "Nav atrasta mūzika" #: gnomemusic/widgets/statusnavigationpage.py:117 msgid "Try a Different Search" msgstr "Mēģiniet ar citu meklējamo vārdu" #: gnomemusic/widgets/statusnavigationpage.py:121 msgid "GNOME Music could not connect to Tracker." msgstr "GNOME Mūzika nevarēja savienoties ar Tracker." #: gnomemusic/widgets/statusnavigationpage.py:123 msgid "Your music files cannot be indexed without Tracker running." msgstr "Nevar indeksēt jūsu mūzikas datnes, ja nedarbojas Tracker." #: gnomemusic/widgets/statusnavigationpage.py:129 msgid "Your system Tracker version seems outdated." msgstr "Jūsu sistēmas Tracker versija ir novecojusi." #: gnomemusic/widgets/statusnavigationpage.py:131 msgid "Music needs Tracker version 3.0.0 or higher." msgstr "Mūzikai vajag Tracker vismaz versiju 3.0.0." #~ msgid "Report music history to Last.fm" #~ msgstr "Ziņot Last.fm par mūzikas vēsturi" #~ msgid "" #~ "Enables or disables sending scrobbles and the “currently playing” info to " #~ "Last.fm." #~ msgstr "" #~ "Ieslēdz vai izslēdz scrobbles un “palšaik atskaņo” informācijas sūtīšanu " #~ "uz Last.fm." #~ msgid "Last.fm Account" #~ msgstr "Last.fm konts" #~ msgid "Report Music Listening" #~ msgstr "Ziņot par mūzikas klausīšanos" #~ msgid "_Help" #~ msgstr "_Palīdzība" #~ msgid "Select" #~ msgstr "Izvēlēties" #~ msgid "Back" #~ msgstr "Atpakaļ" #~ msgid "" #~ "Last.fm is a music discovery service that gives you personalised " #~ "recommendations based on the music you listen to." #~ msgstr "" #~ "Last.fm ir mūzikas atklāšanas pakalpojums, kas jums dod personalizētus " #~ "ieteikumus balstoties uz tā, kādu mūziku jūs klausāties." #~ msgid "Music Reporting Not Setup" #~ msgstr "Mūzikas ziņošana nav iestatīta" #~ msgid "Login to your Last.fm account to report your music listening." #~ msgstr "" #~ "Ierakstieties savā Last.fm kontā, lai ziņotu par savu mūzikas klausīšanos." #~ msgid "Login" #~ msgstr "Ierakstīties" #~ msgid "Select All" #~ msgstr "Izvēlēties visu" #~ msgid "Select None" #~ msgstr "Iezīmēt neko" #~ msgid "Click on items to select them" #~ msgstr "Spiediet uz vienumiem, lai tos izvēlētos" #~ msgid "_Add to Playlist" #~ msgstr "_Pievienot repertuāram" #~ msgid "Copyright The GNOME Music Developers" #~ msgstr "Autortiesības pieder GNOME Mūzikas izstrādātājiem" #~ msgid "Translated by" #~ msgstr "Tulkojuši" #~ msgid "Artists Results" #~ msgstr "Izpildītāju rezultāti" #~ msgid "Albums Results" #~ msgstr "Albumu rezultāti" #~ msgid "Selected {} song" #~ msgid_plural "Selected {} songs" #~ msgstr[0] "Izvēlēta {} dziesma" #~ msgstr[1] "Izvēlētas {} dziesmas" #~ msgstr[2] "Izvēlētas {} dziesmas" #~ msgid "Your music listening is reported to Last.fm." #~ msgstr "Jūsu mūzikas klausīšanās tiek ziņota uz Last.fm." #~ msgid "Your music listening is not reported to Last.fm." #~ msgstr "Jūsu mūzikas klausīšanās netiek tiek ziņota uz Last.fm." #~ msgid "Logged in as {}" #~ msgstr "Ierakstījies kā {}" #~ msgid "Configure" #~ msgstr "Konfigurēt" #~ msgid "A music player and management application for GNOME." #~ msgstr "Mūzikas atskaņošanas un pārvaldības lietotne GNOME vidē." #~ msgid "Visit GNOME Music website" #~ msgstr "Apmeklēt GNOME Mūzikas tīmekļa vietni" #~ msgid "" #~ "GNOME Music 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.\n" #~ "\n" #~ "GNOME Music 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.\n" #~ "\n" #~ "You should have received a copy of the GNU General Public License along " #~ "with GNOME Music; if not, write to the Free Software Foundation, Inc., 51 " #~ "Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ "\n" #~ "The GNOME Music authors hereby grant permission for non-GPL compatible " #~ "GStreamer plugins to be used and distributed together with GStreamer and " #~ "GNOME Music. This permission is above and beyond the permissions granted " #~ "by the GPL license by which GNOME Music is covered. If you modify this " #~ "code, you may extend this exception to your version of the code, but you " #~ "are not obligated to do so. If you do not wish to do so, delete this " #~ "exception statement from your version." #~ msgstr "" #~ "GNOME Mūzika ir brīvā programmatūra; jūs varat izplatīt un/vai modificēt " #~ "to saskaņā ar GNU Vispārējās Publiskās Licences 2. vai kādas vēlākas " #~ "versijas noteikumiem.\n" #~ "\n" #~ "GNOME Mūzika tiek izplatīts ar cerību, ka tas būs noderīgs. Tas tiek " #~ "izplatīts BEZ jebkādas garantijas vai iekļautas ražotāja atbildības par " #~ "šo produktu. Sīkāku informāciju meklējiet GNU Vispārējās Publiskās " #~ "Licences tekstā.\n" #~ "GNU Vispārējās Publiskās Licence ir pieejama kopā ar GNOME Mūzika " #~ "instalāciju. Ja tā jums nav pieejama, jūs to varat iegūt no Free Software " #~ "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 " #~ "USA.\n" #~ "\n" #~ "GNOME Mūzika autori dod tiesības ar GPL nesavietojamiem GStreamer " #~ "spraudņiem tik izplatītiem kopā ar GStreamer un GNOME Mūziku. Šīs " #~ "tiesības ir plašākas kā tās, ko sniedz GPL licence, ko izmanto GNOME " #~ "Mūzika. Ja vēlaties mainīt šo kodu, jūs varat šo izņēmumu attiecināt arī " #~ "uz savas programmas pirmkodu, bet jums nav pienākuma to darīt. Ja " #~ "nevēlaties iekļaut izņēmumu, izdzēsiet šo izņēmuma teikumu no savas " #~ "versijas." #~| msgid "The contents of your {} will appear here." #~ msgid "The contents of your Music Folder will appear here" #~ msgstr "Jūsu mūzikas mapes saturs parādīsies šeit" #~ msgid "GNOME Music" #~ msgstr "GNOME Mūzika" #~ msgid "Window position" #~ msgstr "Loga novietojums" #~ msgid "Window position (x and y)." #~ msgstr "Loga novietojums (x un y)." #~ msgid "Loading" #~ msgstr "Ielādē" #~ msgid "Add to Playlist…" #~ msgstr "Pievienot repertuāram…" #~ msgid "" #~ "An easy way to play your music. Automatically discover music on your " #~ "computer, the local network and internet services." #~ msgstr "" #~ "Vienkāršs veids, kā atskaņot jūsu mūziku. Automātiski atklājiet mūziku uz " #~ "sava datora, lokālajā tīklā vai interneta pakalpojumos." #~ msgid "" #~ "Find tracks in your local collection, get music from DLNA servers or try " #~ "something new with the Jamendo and Magnatune services." #~ msgstr "" #~ "Atrodiet celiņus jūsu lokālajā kolekcijā, saņemiet mūziku no DLNA " #~ "serveriem vai no Jamendo un Magnatune pakalpojumiem." #~ msgid "Inital state has been displayed" #~ msgstr "Sākotnējais stāvoklis tika parādīts" #~ msgid "Set to true when initial state has been displayed" #~ msgstr "Iestatiet uz “patiess”, kad sākotnējais stāvoklis ir parādīts" #~ msgid "Released" #~ msgstr "Izlaists" #~ msgid "Running Length" #~ msgstr "Atskaņošanas ilgums" #~ msgid "Composer" #~ msgstr "Komponists" #~ msgctxt "context menu item" #~ msgid "Play" #~ msgstr "Atskaņot" #~ msgid "Hey DJ" #~ msgstr "Eu DJ" #~ msgid "Artist" #~ msgstr "Izpildītājs" #~ msgid "Album" #~ msgstr "Albums" #~ msgid "Track Title" #~ msgstr "Celiņa nosaukums" #~ msgid "Local" #~ msgstr "Lokāls" #~ msgid "Sources" #~ msgstr "Avoti" #~ msgid "Match" #~ msgstr "Atbilst" #~ msgid "@icon@" #~ msgstr "@icon@" #~ msgid "Untitled" #~ msgstr "Nenosaukts" #~ msgid "_Quit" #~ msgstr "I_ziet" #~ msgid "Music is the new GNOME music playing application." #~ msgstr "Mūzika ir jaunā GNOME mūzikas atskaņošanas lietotne." #~ msgid "org.gnome.Music" #~ msgstr "org.gnome.Music" #~ msgid "Search mode" #~ msgstr "Meklēšanas režīms" #~ msgid "If true, the search bar is shown." #~ msgstr "Ja patiess, tiks rādīta meklēšanas josla." #~ msgid "Notifications mode" #~ msgstr "Paziņojumu režīms" #~ msgid "Enables or disables playback notifications" #~ msgstr "Ieslēdz vai izslēdz atskaņošanas paziņojumus" #~ msgid "Selected %d item" #~ msgid_plural "Selected %d items" #~ msgstr[0] "Izvēlēts %d vienums" #~ msgstr[1] "Izvēlēti %d vienumi" #~ msgstr[2] "Izvēlēti %d vienumi" #~ msgid "%d min" #~ msgstr "%d minūte" #~ msgid "Empty" #~ msgstr "Tukšs" #~ msgid "Select Playlist" #~ msgstr "Izvēlieties repertuāru" 070701000000FF000081A400000000000000000000000166968E4E0000002C000000000000000000000000000000000000002000000000gnome-music-46.1/po/meson.buildi18n.gettext(APPLICATION_ID, preset:'glib') 07070100000100000081A400000000000000000000000166968E4E0000377B000000000000000000000000000000000000001B00000000gnome-music-46.1/po/mjw.po# Karbi translation for gnome-music. # Copyright (C) 2019 gnome-music's Free Software Foundation, Inc. # This file is distributed under the same license as the gnome-music package. # Jor Teron , 2019. # msgid "" msgstr "" "Project-Id-Version: gnome-music master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-music/issues\n" "POT-Creation-Date: 2019-08-06 10:28+0000\n" "PO-Revision-Date: 2019-08-06 20:59+0530\n" "Last-Translator: Jor Teron , Biju Rongpi , Prodip Rongphar " "\n" "Language-Team: Karbi \n" "Language: mjw\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2 ; plural=( n!=1 )\n" "X-Generator: Gtranslator 2.91.7\n" #: data/org.gnome.Music.appdata.xml.in.in:6 msgid "GNOME Music" msgstr "GNOME Music" #: data/org.gnome.Music.appdata.xml.in.in:7 #: data/org.gnome.Music.desktop.in.in:5 msgid "Play and organize your music collection" msgstr "" #: data/org.gnome.Music.appdata.xml.in.in:9 msgid "" "An easy way to play your music. Automatically discover music on your " "computer, the local network and internet services." msgstr "" #: data/org.gnome.Music.appdata.xml.in.in:12 msgid "" "Find tracks in your local collection, get music from DLNA servers or try " "something new with the Jamendo and Magnatune services." msgstr "" #: data/org.gnome.Music.appdata.xml.in.in:52 msgid "The GNOME Music developers" msgstr "GNOME Music developers" #: data/org.gnome.Music.desktop.in.in:3 gnomemusic/application.py:59 #: gnomemusic/window.py:77 msgid "Music" msgstr "Lotun" #: data/org.gnome.Music.desktop.in.in:4 msgid "Music Player" msgstr "" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Music.desktop.in.in:13 msgid "Music;Player;" msgstr "Music;Player;" #: data/org.gnome.Music.gschema.xml:12 msgid "Window size" msgstr "Window apun" #: data/org.gnome.Music.gschema.xml:13 msgid "Window size (width and height)." msgstr "Window apun (arpan pen arjon)" #: data/org.gnome.Music.gschema.xml:17 msgid "Window position" msgstr "" #: data/org.gnome.Music.gschema.xml:18 msgid "Window position (x and y)." msgstr "Window position (x pen y)." #: data/org.gnome.Music.gschema.xml:22 msgid "Window maximized" msgstr "Windows pathetan" #: data/org.gnome.Music.gschema.xml:23 msgid "Window maximized state." msgstr "" #: data/org.gnome.Music.gschema.xml:27 msgid "Playback repeat mode" msgstr "" #. Translators: Don't translate allowed values, just the description in the brackets #: data/org.gnome.Music.gschema.xml:29 msgid "" "Value identifies whether to repeat or randomize playback through the " "collection. Allowed values are: “none” (repeat and shuffle are off), " "“song” (repeat current song), “all” (repeat playlist, no shuffle), " "“shuffle” (shuffle playlist, presumes repeat all)." msgstr "" #: data/org.gnome.Music.gschema.xml:33 msgid "Enable ReplayGain" msgstr "" #: data/org.gnome.Music.gschema.xml:34 msgid "Enables or disables ReplayGain for albums" msgstr "" #: data/org.gnome.Music.gschema.xml:38 msgid "Inital state has been displayed" msgstr "" #: data/org.gnome.Music.gschema.xml:39 msgid "Set to true when initial state has been displayed" msgstr "" #: data/org.gnome.Music.gschema.xml:43 msgid "Inhibit system suspend" msgstr "" #: data/org.gnome.Music.gschema.xml:44 msgid "Enables or disables inhibiting system suspend while playing music" msgstr "" #: data/ui/AboutDialog.ui.in:9 msgid "Copyright © 2018 GNOME Music Developers" msgstr "Copyright © 2018 GNOME Music Developers" #: data/ui/AboutDialog.ui.in:10 msgid "A music player and management application for GNOME." msgstr "Lun-kerot player pen lun management application GNOME phan" #: data/ui/AboutDialog.ui.in:12 msgid "Visit GNOME Music website" msgstr "GNOME Music website kevur" #: data/ui/AboutDialog.ui.in:13 msgid "" "GNOME Music 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.\n" "\n" "GNOME Music 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.\n" "\n" "You should have received a copy of the GNU General Public License along with " "GNOME Music; if not, write to the Free Software Foundation, Inc., 51 " "Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" "\n" "The GNOME Music authors hereby grant permission for non-GPL compatible " "GStreamer plugins to be used and distributed together with GStreamer and " "GNOME Music. This permission is above and beyond the permissions granted by " "the GPL license by which GNOME Music is covered. If you modify this code, " "you may extend this exception to your version of the code, but you are not " "obligated to do so. If you do not wish to do so, delete this exception " "statement from your version.\n" "\n" "“Magic of the vinyl” by Sami Pyylampi image is licensed by CC-BY-SA 2.0 " "https://www.flickr.com/photos/_spy_/12270839403" msgstr "" #: data/ui/AlbumWidget.ui:105 msgid "Released" msgstr "Klang" #: data/ui/AlbumWidget.ui:121 msgid "Running Length" msgstr "Lun-apor athui" #: data/ui/AlbumWidget.ui:166 gnomemusic/widgets/searchbar.py:70 msgid "Composer" msgstr "Lunsonsebang" #: data/ui/AppMenu.ui:21 msgid "_Keyboard Shortcuts" msgstr "" #: data/ui/AppMenu.ui:35 msgid "_Help" msgstr "_Help" #: data/ui/AppMenu.ui:49 msgid "_About Music" msgstr "Music _Aputhak" #: data/ui/HeaderBar.ui:13 msgid "Menu" msgstr "Ason-amung" #: data/ui/HeaderBar.ui:36 msgid "Select" msgstr "Chongvai" #: data/ui/HeaderBar.ui:58 data/ui/PlaylistDialog.ui:244 msgid "_Cancel" msgstr "" #: data/ui/HeaderBar.ui:77 msgid "Search" msgstr "Kiri" #: data/ui/HeaderBar.ui:100 msgid "Back" msgstr "Aphi" #: data/ui/help-overlay.ui:13 msgctxt "shortcut window" msgid "General" msgstr "" #: data/ui/help-overlay.ui:17 msgctxt "shortcut window" msgid "Close window" msgstr "" #: data/ui/help-overlay.ui:24 msgctxt "shortcut window" msgid "Search" msgstr "Kiri" #: data/ui/help-overlay.ui:31 msgctxt "shortcut window" msgid "Help" msgstr "Help" #: data/ui/help-overlay.ui:38 msgctxt "shortcut window" msgid "Shortcuts" msgstr "Shortcuts" #: data/ui/help-overlay.ui:47 msgctxt "shortcut window" msgid "Playback" msgstr "Kerot-thu" #: data/ui/help-overlay.ui:51 msgctxt "shortcut window" msgid "Play/Pause" msgstr "Ke-rot/Kesang" #: data/ui/help-overlay.ui:58 msgctxt "shortcut window" msgid "Next song" msgstr "Dunthu alun" #: data/ui/help-overlay.ui:65 msgctxt "shortcut window" msgid "Previous song" msgstr "Aphi lun" #: data/ui/help-overlay.ui:72 msgctxt "shortcut window" msgid "Toggle repeat" msgstr "Cherui" #: data/ui/help-overlay.ui:79 msgctxt "shortcut window" msgid "Toggle shuffle" msgstr "Parlin-parlo" #: data/ui/help-overlay.ui:88 msgctxt "shortcut window" msgid "Navigation" msgstr "Navigation" #: data/ui/help-overlay.ui:92 msgctxt "shortcut window" msgid "Go to Albums" msgstr "Lun-athui long dam" #: data/ui/help-overlay.ui:99 msgctxt "shortcut window" msgid "Go to Artists" msgstr "Lunse long dam" #: data/ui/help-overlay.ui:106 msgctxt "shortcut window" msgid "Go to Songs" msgstr "Lun long dam" #: data/ui/help-overlay.ui:113 msgctxt "shortcut window" msgid "Go to Playlists" msgstr "Playlists long dam" #: data/ui/help-overlay.ui:120 msgctxt "shortcut window" msgid "Go back" msgstr "Aphi dam" #: data/ui/PlayerToolbar.ui:6 msgid "Shuffle" msgstr "Parlin-parlo" #: data/ui/PlayerToolbar.ui:11 msgid "Repeat All" msgstr "Kado-kawe cherui" #: data/ui/PlayerToolbar.ui:16 msgid "Repeat Song" msgstr "Isi lun cherui" #. Causes tracks to play in random order #: data/ui/PlayerToolbar.ui:21 msgid "Shuffle/Repeat Off" msgstr "Cherui/Parlin kerot kanghap" #: data/ui/PlayerToolbar.ui:70 msgid "Previous" msgstr "Aphi" #: data/ui/PlayerToolbar.ui:86 gnomemusic/widgets/playertoolbar.py:153 msgid "Play" msgstr "" #: data/ui/PlayerToolbar.ui:102 msgid "Next" msgstr "Dunthu" #: data/ui/PlaylistContextMenu.ui:5 msgctxt "context menu item" msgid "Play" msgstr "" #: data/ui/PlaylistContextMenu.ui:9 msgid "Add to Playlist…" msgstr "" #: data/ui/PlaylistContextMenu.ui:13 msgid "Remove From Playlist" msgstr "" #: data/ui/PlaylistControls.ui:6 msgid "_Play" msgstr "" #: data/ui/PlaylistControls.ui:10 msgid "_Delete" msgstr "" #: data/ui/PlaylistControls.ui:14 msgid "_Rename…" msgstr "Amen kela_r…" #: data/ui/PlaylistControls.ui:40 msgid "Playlist Name" msgstr "Playlist men" #: data/ui/PlaylistControls.ui:74 msgid "_Done" msgstr "Tanglo" #: data/ui/PlaylistDialog.ui:66 msgid "Enter a name for your first playlist" msgstr "Nangli playlist cheng men tok ik nangji." #: data/ui/PlaylistDialog.ui:92 msgid "C_reate" msgstr "" #: data/ui/PlaylistDialog.ui:155 msgid "New Playlist…" msgstr "" #: data/ui/PlaylistDialog.ui:169 msgid "Add" msgstr "Kethap" #: data/ui/PlaylistDialog.ui:241 msgid "Add to Playlist" msgstr "" #: data/ui/PlaylistDialog.ui:257 msgid "_Add" msgstr "Keth_ap" #: data/ui/SelectionBarMenuButton.ui:7 msgid "Select All" msgstr "Kado-kawe chongvai" #: data/ui/SelectionBarMenuButton.ui:11 msgid "Select None" msgstr "" #: data/ui/SelectionBarMenuButton.ui:31 gnomemusic/widgets/headerbar.py:75 msgid "Click on items to select them" msgstr "" #: data/ui/SelectionToolbar.ui:9 msgid "_Add to Playlist" msgstr "" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:673 msgid "Most Played" msgstr "rot ver alun" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:707 msgid "Never Played" msgstr "Rot re pin lun" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:740 msgid "Recently Played" msgstr "Non rot ver lun" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:784 msgid "Recently Added" msgstr "" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:827 msgid "Favorite Songs" msgstr "Ningdok lun" #: gnomemusic/gstplayer.py:403 msgid "Unable to play the file" msgstr "Rot un-eh" #: gnomemusic/gstplayer.py:409 msgid "_Find in {}" msgstr "" #. TRANSLATORS: separator for two codecs #: gnomemusic/gstplayer.py:420 msgid " and " msgstr " pen " #. TRANSLATORS: separator for a list of codecs #: gnomemusic/gstplayer.py:423 msgid ", " msgstr ", " #: gnomemusic/gstplayer.py:425 msgid "{} is required to play the file, but is not installed." msgid_plural "{} are required to play the file, but are not installed." msgstr[0] "" msgstr[1] "" #: gnomemusic/inhibitsuspend.py:72 msgid "Playing music" msgstr "Lun kerot" #: gnomemusic/utils.py:62 msgid "Unknown album" msgstr "Lun-athui chinine" #: gnomemusic/utils.py:83 msgid "Unknown Artist" msgstr "Lunse chinine" #: gnomemusic/views/albumsview.py:61 msgid "Albums" msgstr "Lun-athui" #: gnomemusic/views/artistsview.py:59 msgid "Artists" msgstr "Lunse" #: gnomemusic/views/emptyview.py:79 msgid "Music folder" msgstr "Music folder" #. TRANSLATORS: This is a label to display a link to open user's music #. folder. {} will be replaced with the translated text 'Music folder' #: gnomemusic/views/emptyview.py:83 msgid "The contents of your {} will appear here." msgstr "Lun ason {} long pen dak klang po." #: gnomemusic/views/emptyview.py:119 msgid "Hey DJ" msgstr "Oi DJ" #: gnomemusic/views/emptyview.py:129 gnomemusic/views/emptyview.py:135 msgid "No music found" msgstr "Isi lun ta longle" #: gnomemusic/views/emptyview.py:137 msgid "Try a different search" msgstr "Kaprek pen ri tha" #: gnomemusic/views/emptyview.py:143 msgid "GNOME Music could not connect to Tracker" msgstr "" #: gnomemusic/views/emptyview.py:146 msgid "Your music files cannot be indexed without Tracker running" msgstr "" #: gnomemusic/views/emptyview.py:154 msgid "Your system Tracker version seems outdated" msgstr "" #: gnomemusic/views/emptyview.py:157 msgid "Music needs Tracker version 2.2.0 or higher" msgstr "" #: gnomemusic/views/playlistsview.py:58 msgid "Playlists" msgstr "" #: gnomemusic/views/searchview.py:363 msgid "Artists Results" msgstr "Lunse Keklang" #: gnomemusic/views/searchview.py:377 msgid "Albums Results" msgstr "Lun-athui keklang" #: gnomemusic/views/songsview.py:57 msgid "Songs" msgstr "Lun" #: gnomemusic/widgets/albumwidget.py:147 msgid "{} minute" msgid_plural "{} minutes" msgstr[0] "{} minute" msgstr[1] "{} minutes" #: gnomemusic/widgets/disclistboxwidget.py:82 msgid "Disc {}" msgstr "Disc {}" #: gnomemusic/widgets/headerbar.py:72 msgid "Selected {} item" msgid_plural "Selected {} items" msgstr[0] "Chongvai tang {} hormu" msgstr[1] "Chongvai tang son {} hormu" #: gnomemusic/widgets/notificationspopup.py:168 msgid "Loading" msgstr "Wang bomlo" #: gnomemusic/widgets/notificationspopup.py:241 msgid "_Undo" msgstr "" #: gnomemusic/widgets/notificationspopup.py:256 msgid "Playlist {} removed" msgstr "" #: gnomemusic/widgets/notificationspopup.py:260 msgid "{} removed from {}" msgstr "{} phan {} long pen musi lo" #: gnomemusic/widgets/playertoolbar.py:150 msgid "Pause" msgstr "Kesang" #: gnomemusic/widgets/playlistcontrols.py:83 msgid "{} Song" msgid_plural "{} Songs" msgstr[0] "{} Lun" msgstr[1] "(} Lun" #: gnomemusic/widgets/searchbar.py:67 gnomemusic/widgets/searchbar.py:116 msgid "All" msgstr "" #: gnomemusic/widgets/searchbar.py:68 msgid "Artist" msgstr "Lunse" #: gnomemusic/widgets/searchbar.py:69 msgid "Album" msgstr "Lun-athui" #: gnomemusic/widgets/searchbar.py:71 msgid "Track Title" msgstr "Lun amen" #: gnomemusic/widgets/searchbar.py:117 msgid "Local" msgstr "" #: gnomemusic/widgets/searchbar.py:286 msgid "Sources" msgstr "" #: gnomemusic/widgets/searchbar.py:297 msgid "Match" msgstr "Homan" 07070100000101000081A400000000000000000000000166968E4E0000605B000000000000000000000000000000000000001A00000000gnome-music-46.1/po/ml.po# Malayalam translation for gnome-music. # Copyright (C) 2013 gnome-music's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-music package. # Mohammed Sadiq , 2013. # Akhilan , 2013 # Anish Sheela , 2017. msgid "" msgstr "" "Project-Id-Version: gnome-music master\n" "Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" "music&keywords=I18N+L10N&component=general\n" "POT-Creation-Date: 2017-07-31 18:57+0000\n" "PO-Revision-Date: 2017-08-05 22:25+0530\n" "Last-Translator: Anish Sheela \n" "Language-Team: Swatantra Malayalam Computing \n" "Language: ml\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Virtaal 0.7.1\n" "X-Project-Style: gnome\n" #: ../data/org.gnome.Music.appdata.xml.in.h:1 msgid "GNOME Music" msgstr "ഗ്നോം മ്യൂസിക്ക്" #: ../data/org.gnome.Music.appdata.xml.in.h:2 #: ../data/org.gnome.Music.desktop.in.h:3 msgid "Play and organize your music collection" msgstr "ഗാനശേഖരം ക്രമീകരിച്ച് പ്ലേ ചെയ്യുക" #: ../data/org.gnome.Music.appdata.xml.in.h:3 msgid "Music is the new GNOME music playing application." msgstr "മ്യൂസിക്ക് പുതിയ സംഗീതം പ്ലേ ചെയ്യാന്നുള്ള ഗ്നോം അപ്ലിക്കേഷന്‍ ആണു. " #: ../data/org.gnome.Music.desktop.in.h:1 ../gnomemusic/application.py:53 #: ../gnomemusic/application.py:101 ../gnomemusic/toolbar.py:90 #: ../gnomemusic/window.py:68 ../data/AboutDialog.ui.in.h:1 msgid "Music" msgstr "മ്യൂസിക്ക്" #: ../data/org.gnome.Music.desktop.in.h:2 msgid "Music Player" msgstr "മ്യൂസിക്ക് പ്ലേയര്‍" #: ../data/org.gnome.Music.desktop.in.h:4 #| msgid "Music Player" msgid "Music;Player;" msgstr "മ്യൂസിക്ക്; പ്ലേയര്‍;" #: ../data/org.gnome.Music.gschema.xml.h:1 msgid "Window size" msgstr "ജാലകത്തിന്റെ വലിപ്പം" #: ../data/org.gnome.Music.gschema.xml.h:2 msgid "Window size (width and height)." msgstr "ജാലകത്തിന്റെ വലിപ്പം (വീതിയും ഉയരവും)." #: ../data/org.gnome.Music.gschema.xml.h:3 msgid "Window position" msgstr "ജാലകത്തിന്റെ സ്ഥാനം" #: ../data/org.gnome.Music.gschema.xml.h:4 msgid "Window position (x and y)." msgstr "ജാലകത്തിന്റെ സ്ഥാനം (xഉം yഉം)" #: ../data/org.gnome.Music.gschema.xml.h:5 msgid "Window maximized" msgstr "ജാലകം പരമാവധിയാക്കി" #: ../data/org.gnome.Music.gschema.xml.h:6 msgid "Window maximized state." msgstr "ജാലകം പരമാവധിയാക്കിയ സ്ഥിതി." #: ../data/org.gnome.Music.gschema.xml.h:7 msgid "Playback repeat mode" msgstr "പ്ലേബാക്ക് തുടരുന്ന വിധം" #. Translators: Don't translate allowed values, just the description in the brackets #: ../data/org.gnome.Music.gschema.xml.h:9 #| msgid "" #| "Value identifies whether to repeat or randomize playback through the " #| "collection. Allowed values are: \"none\" (repeat and shuffle are off), " #| "\"song\" (repeat current song), \"all\" (repeat playlist, no shuffle), " #| "\"shuffle\" (shuffle playlist, presumes repeat all)." msgid "" "Value identifies whether to repeat or randomize playback through the " "collection. Allowed values are: “none” (repeat and shuffle are off), " "“song” (repeat current song), “all” (repeat playlist, no shuffle), " "“shuffle” (shuffle playlist, presumes repeat all)." msgstr "" "പാട്ടുകള്‍ വീണ്ടും കേള്‍ക്കണമോ അതോ ക്രമമല്ലാത്ത കേള്‍ക്കണമോ എന്ന് നോക്കാം. " "അനുവദിക്കപ്പെട്ട രീതിക്കള്‍: “none” (ആവര്‍ത്തനവും കലര്‍ത്തലും ഇല്ല), “song” " "(നിലവിലെ ഗാനം ആവര്‍ത്തിക്കുക), “all” (ഗാനനിര ആവര്‍ത്തിക്കുക, കലര്‍ത്തല്‍ " "ഇല്ല), “shuffle” (ഗാനനിര കലര്‍ത്തുക, ഊഹപ്രകാരം എല്ലാം ആവര്‍ത്തിക്കുക)." #: ../data/org.gnome.Music.gschema.xml.h:10 msgid "Search mode" msgstr "തിരച്ചില്‍ നടപടി" #: ../data/org.gnome.Music.gschema.xml.h:11 msgid "If true, the search bar is shown." msgstr "ശരിയാണെങ്കില്‍, തിരച്ചില്‍ പട്ട കാണിക്കുന്നതാണ്." #: ../data/org.gnome.Music.gschema.xml.h:12 msgid "Notifications mode" msgstr "അറിയിപ്പ് മോഡ്" #: ../data/org.gnome.Music.gschema.xml.h:13 msgid "Enables or disables playback notifications" msgstr "കേള്‍ക്കുന്നതിന്റെ അറിയിപ്പുകള്‍ വേണോ, വേണ്ടയോ" #: ../data/org.gnome.Music.gschema.xml.h:14 msgid "Enable ReplayGain" msgstr "ReplayGain വേണം" #: ../data/org.gnome.Music.gschema.xml.h:15 msgid "Enables or disables ReplayGain for albums" msgstr "ആല്‍ബങ്ങള്‍ക്ക് ReplayGain വേണമോ വേണ്ടയോ എന്ന്" #: ../data/org.gnome.Music.gschema.xml.h:16 msgid "Inital state has been displayed" msgstr "ആദ്യത്തെ അവസ്ഥ കാണിക്കുന്നു" #: ../data/org.gnome.Music.gschema.xml.h:17 msgid "Set to true when initial state has been displayed" msgstr "ആദ്യത്തെ അവസ്ഥ കാണിക്കുമ്പോള്‍ ട്രൂ ആയി സജ്ജികരിക്കുന്നു" #: ../gnomemusic/notification.py:55 ../data/PlayerToolbar.ui.h:6 msgid "Previous" msgstr "മുമ്പിലത്തെ" #: ../gnomemusic/notification.py:58 ../gnomemusic/player.py:558 msgid "Pause" msgstr "വിരാമം" #: ../gnomemusic/notification.py:61 ../gnomemusic/player.py:561 #: ../data/PlayerToolbar.ui.h:7 msgid "Play" msgstr "പ്ലേ" #: ../gnomemusic/notification.py:63 ../data/PlayerToolbar.ui.h:8 msgid "Next" msgstr "അടുത്തത്" #: ../gnomemusic/player.py:1167 msgid "Unable to play the file" msgstr "ഫയല്‍ കേള്‍പ്പിക്കാന്‍ പറ്റുന്നില്ല" #. TRANSLATORS: this is a button to launch a codec installer. #. %s will be replaced with the software installer's name, e.g. #. 'Software' in case of gnome-software. #: ../gnomemusic/player.py:1172 #, python-format msgid "_Find in %s" msgstr "%s ല്‍ കണ്ടുപിടിക്കുക (_F)" #. TRANSLATORS: separator for a list of codecs #: ../gnomemusic/player.py:1182 msgid " and " msgstr " ഉം " #. TRANSLATORS: separator for a list of codecs #: ../gnomemusic/player.py:1185 msgid ", " msgstr ", " #: ../gnomemusic/player.py:1186 #, python-format msgid "%s is required to play the file, but is not installed." msgid_plural "%s are required to play the file, but are not installed." msgstr[0] "ഫയല്‍ കേള്‍പ്പിക്കാന്‍ %s വേണം, പക്ഷേ ഇന്‍സ്റ്റാള്‍ ചെയ്തിട്ടില്ല." msgstr[1] "ഫയല്‍ കേള്‍പ്പിക്കാന്‍ %s വേണം, പക്ഷേ ഇന്‍സ്റ്റാള്‍ ചെയ്തിട്ടില്ല." #. TRANSLATORS: this is a playlist name #: ../gnomemusic/playlists.py:59 #| msgid "Music Player" msgid "Most Played" msgstr "എറ്റവും കുടുതല്‍ കേട്ടത്" #. TRANSLATORS: this is a playlist name #: ../gnomemusic/playlists.py:64 msgid "Never Played" msgstr "ഇത് വരെ കേള്‍ക്കാത്തത്" #. TRANSLATORS: this is a playlist name #: ../gnomemusic/playlists.py:69 msgid "Recently Played" msgstr "അടുത്തിടെ കേട്ടത്" #. TRANSLATORS: this is a playlist name #: ../gnomemusic/playlists.py:74 msgid "Recently Added" msgstr "അടുത്തിടെ ചേര്‍ത്തത്" #. TRANSLATORS: this is a playlist name #: ../gnomemusic/playlists.py:79 msgid "Favorite Songs" msgstr "പ്രിയപ്പെട്ട പാട്ടുകള്‍" #. TRANSLATORS: The following translatable string should be a #. vertical bar-separated list of all-lowercase articles that #. should be ignored when alphabetizing artists/albums. This #. list should include the basic english translatable strings #. regardless of language because they are so universal. #. If some articles occur more frequently than others, the most #. common one should appear first, the least common one last. #: ../gnomemusic/query.py:90 msgid "the|a|an" msgstr "the|a|an" #: ../gnomemusic/searchbar.py:63 ../gnomemusic/searchbar.py:111 msgid "All" msgstr "എല്ലാം" #: ../gnomemusic/searchbar.py:64 #| msgid "Artists" msgid "Artist" msgstr "ഗായകര്‍" #: ../gnomemusic/searchbar.py:65 #| msgid "Albums" msgid "Album" msgstr "ആല്‍ബം" #: ../gnomemusic/searchbar.py:66 ../data/AlbumWidget.ui.h:3 msgid "Composer" msgstr "സംഗീതജ്ഞന്‍" #: ../gnomemusic/searchbar.py:67 msgid "Track Title" msgstr "പാട്ടിന്റെ തലക്കെട്ട്" #: ../gnomemusic/searchbar.py:112 msgid "Local" msgstr "ലോക്കല്‍" #: ../gnomemusic/searchbar.py:224 msgid "Sources" msgstr "സ്തോതസ്സുകള്‍" #: ../gnomemusic/searchbar.py:231 msgid "Match" msgstr "ചേര്‍ച്ച" #: ../gnomemusic/utils.py:63 msgid "Unknown Artist" msgstr "അജ്ഞാത ഗായകന്‍" #: ../gnomemusic/utils.py:75 msgid "Untitled" msgstr "പേരില്ലാത്തത്" #: ../gnomemusic/views/albumsview.py:44 ../gnomemusic/views/searchview.py:454 msgid "Albums" msgstr "ആല്‍ബം" #: ../gnomemusic/views/artistsview.py:52 ../gnomemusic/views/searchview.py:455 msgid "Artists" msgstr "ഗായകര്‍" #: ../gnomemusic/views/baseview.py:196 msgid "Selected {} item" msgid_plural "Selected {} items" msgstr[0] "തെരഞ്ഞെടുത്ത {} ഇനം" msgstr[1] "തെരഞ്ഞെടുത്ത {} ഇനങ്ങള്‍" #: ../gnomemusic/views/baseview.py:201 ../gnomemusic/views/baseview.py:303 #: ../gnomemusic/widgets/albumwidget.py:198 #: ../gnomemusic/widgets/artistalbumswidget.py:232 ../data/headerbar.ui.h:3 msgid "Click on items to select them" msgstr "തിരഞ്ഞെടുക്കാനായി ആ ഇനങ്ങളില്‍ ക്ലിക്ക് ചെയ്യുക" #: ../gnomemusic/views/emptyview.py:51 #| msgid "Music Player" msgid "Music folder" msgstr "പാട്ടിന്റെ ഫോള്‍ഡര്‍" #: ../gnomemusic/views/emptysearchview.py:50 msgid "Try a different search" msgstr "വേറെ തെരച്ചില്‍ നോക്കുക" #: ../gnomemusic/views/initialstateview.py:50 msgid "Hey DJ" msgstr "ഹായ് ഡിജെ" #: ../gnomemusic/views/playlistview.py:58 ../gnomemusic/views/searchview.py:457 msgid "Playlists" msgstr "ഗാനനിരകള്‍" #: ../gnomemusic/views/playlistview.py:420 #, python-format #| msgid "Songs" msgid "%d Song" msgid_plural "%d Songs" msgstr[0] "%d പാട്ട്" msgstr[1] "%d പാട്ടുകള്‍" #: ../gnomemusic/views/searchview.py:456 ../gnomemusic/views/songsview.py:52 msgid "Songs" msgstr "പാട്ടുകള്‍" #: ../gnomemusic/widgets/albumwidget.py:194 #: ../gnomemusic/widgets/artistalbumswidget.py:228 #, python-format msgid "Selected %d item" msgid_plural "Selected %d items" msgstr[0] "തെരഞ്ഞെടുത്ത %d ഇനം" msgstr[1] "തെരഞ്ഞെടുത്ത %d ഇനങ്ങള്‍" #: ../gnomemusic/widgets/albumwidget.py:291 #: ../gnomemusic/widgets/albumwidget.py:345 #, python-format msgid "%d min" msgstr "%d മിനിറ്റ്" #: ../gnomemusic/widgets/disclistboxwidget.py:189 msgid "Disc {}" msgstr "ഡിസ്ക്ക് {}" #: ../gnomemusic/window.py:125 #| msgid "Loading..." msgid "Loading" msgstr "ലഭ്യമാക്കിക്കൊണ്ടിരിക്കുന്നു" #. Undo button #: ../gnomemusic/window.py:162 msgid "_Undo" msgstr "തിരിച്ചാക്കുക (_U)" #: ../gnomemusic/window.py:314 msgid "Empty" msgstr "കാലിയാണ്" #: ../gnomemusic/window.py:390 msgid "Playlist {} removed" msgstr "പാട്ട് പട്ടിക {} കളഞ്ഞു" #: ../data/AboutDialog.ui.in.h:2 #| msgid "Copyright © 2013 GNOME Music Developers" msgid "Copyright © 2016 GNOME Music Developers" msgstr "പകര്‍പ്പാവകാശം © 2016 GNOME Music Developers" #: ../data/AboutDialog.ui.in.h:3 msgid "A music player and management application for GNOME." msgstr "" "ഗ്നോംനു വേണ്ടിയുള്ള സംഗീതം കേള്‍ക്കാനും നടത്തിപ്പിനും വേണ്ടിയുള്ള " "അപ്ലിക്കേഷന്‍." #: ../data/AboutDialog.ui.in.h:4 msgid "Visit GNOME Music website" msgstr "ഗ്നോം മ്യൂസിക്ക് വെബ്താള്‍ സന്ദര്‍ശിക്കുക" #: ../data/AboutDialog.ui.in.h:5 #, fuzzy #| msgid "" #| "GNOME Music 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.\n" #| "\n" #| "GNOME Music 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.\n" #| "\n" #| "You should have received a copy of the GNU General Public License along " #| "with GNOME Music; if not, write to the Free Software Foundation, Inc., 51 " #| "Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #| "\n" #| "The GNOME Music authors hereby grant permission for non-GPL compatible " #| "GStreamer plugins to be used and distributed together with GStreamer and " #| "GNOME Music. This permission is above and beyond the permissions granted " #| "by the GPL license by which GNOME Music is covered. If you modify this " #| "code, you may extend this exception to your version of the code, but you " #| "are not obligated to do so. If you do not wish to do so, delete this " #| "exception statement from your version." msgid "" "GNOME Music 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.\n" "\n" "GNOME Music 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.\n" "\n" "You should have received a copy of the GNU General Public License along with " "GNOME Music; if not, write to the Free Software Foundation, Inc., 51 " "Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" "\n" "The GNOME Music authors hereby grant permission for non-GPL compatible " "GStreamer plugins to be used and distributed together with GStreamer and " "GNOME Music. This permission is above and beyond the permissions granted by " "the GPL license by which GNOME Music is covered. If you modify this code, " "you may extend this exception to your version of the code, but you are not " "obligated to do so. If you do not wish to do so, delete this exception " "statement from your version.\n" "\n" "“Magic of the vinyl” by Sami Pyylampi image is licensed by CC-BY-SA 2.0 " "https://www.flickr.com/photos/_spy_/12270839403\n" msgstr "" "ഗ്നോം മ്യൂസിക്ക് ഒരു സൗജന്യ സോഫ്റ്റ്വെയര്‍ ആണ്. ഫ്രീ സോഫ്റ്റ്‍വെയര്‍ " "ഫൌണ്ടേഷന്‍‍ പ്രസിദ്ധീകരിക്കുന്ന ഗ്നു ജനറല്‍ പബ്ലിക്ക് ലൈസന്‍സനു കീഴെ " "വ്യവസ്ഥകള്‍ അനുസരിച്ചു് താങ്കള്‍ക്കു വീണ്ടും വിതരണം ചെയ്യാനും മാറ്റം " "വരുത്താനും കഴിയും; രണ്ടാം പതിപ്പോ (താങ്കളുടെ അഭിപ്രായപ്രകാരം)അല്ലെങ്കില്‍ " "അതില്‍ പുതിയ പതിപ്പോ ഉപയോഗിക്കാം.\n" "\n" "ഗ്നോം മ്യൂസിക്ക് ഉപയോഗപ്പെടും എന്ന വിശ്വാസത്തോടെയാണു വിതരണം ചെയ്തിരിക്കുന്നത്" ", എന്നാല്‍ ഒരു വാറന്റിയും ഇല്ല." #: ../data/AlbumWidget.ui.h:1 msgid "Released" msgstr "പുറത്തിറങ്ങിയത്" #: ../data/AlbumWidget.ui.h:2 msgid "Running Length" msgstr "സമയദൈര്‍ഘ്യം" #: ../data/app-menu.ui.h:1 msgid "_Keyboard Shortcuts" msgstr "കീബോഡ് എളുപ്പവഴികള്‍ (_K)" #: ../data/app-menu.ui.h:2 msgid "_Help" msgstr "സഹായം (_H)" #: ../data/app-menu.ui.h:3 #| msgid "_About Music" msgid "_About" msgstr "ഗ്നോം സംഗീതത്തെ കുറിച്ച് (_H)" #: ../data/app-menu.ui.h:4 msgid "_Quit" msgstr "പൂട്ടുക (_Q)" #: ../data/headerbar.ui.h:1 msgid "Select All" msgstr "എല്ലാം തിരഞ്ഞെടുക്കുക" #: ../data/headerbar.ui.h:2 msgid "Select None" msgstr "ഒന്നും തിരഞ്ഞെടുക്കരുത്" #: ../data/headerbar.ui.h:4 #| msgid "Search mode" msgid "Search" msgstr "തിരച്ചില്‍" #: ../data/headerbar.ui.h:5 #| msgid "Select All" msgid "Select" msgstr "തിരഞ്ഞെടുക്കുക" #: ../data/headerbar.ui.h:6 ../data/PlaylistDialog.ui.h:6 #| msgid "Cancel" msgid "_Cancel" msgstr "റദ്ദാക്കുക (_C)" #: ../data/headerbar.ui.h:7 msgid "Back" msgstr "പുറകോട്ട്" #: ../data/help-overlay.ui.h:1 msgctxt "shortcut window" msgid "General" msgstr "സാധാരണ" #: ../data/help-overlay.ui.h:2 msgctxt "shortcut window" msgid "Close window" msgstr "ജാലകം അടയ്ക്കുക" #: ../data/help-overlay.ui.h:3 #| msgid "Search mode" msgctxt "shortcut window" msgid "Search" msgstr "തിരച്ചില്‍" #: ../data/help-overlay.ui.h:4 msgctxt "shortcut window" msgid "Help" msgstr "സഹായം" #: ../data/help-overlay.ui.h:5 msgctxt "shortcut window" msgid "Shortcuts" msgstr "കുറുക്ക് വഴികള്‍" #: ../data/help-overlay.ui.h:6 #| msgid "Play" msgctxt "shortcut window" msgid "Playback" msgstr "കേള്‍ക്കുക" #: ../data/help-overlay.ui.h:7 #| msgid "Pause" msgctxt "shortcut window" msgid "Play/Pause" msgstr "കേള്‍ക്കുക/നിര്‍ത്തുക" #: ../data/help-overlay.ui.h:8 #| msgid "Next" msgctxt "shortcut window" msgid "Next song" msgstr "അടുത്ത പാട്ട്" #: ../data/help-overlay.ui.h:9 #| msgid "Previous" msgctxt "shortcut window" msgid "Previous song" msgstr "മുമ്പിലത്തെ പാട്ട്" #: ../data/help-overlay.ui.h:10 msgctxt "shortcut window" msgid "Toggle repeat" msgstr "വീണ്ടും കേള്‍ക്കുക/വേണ്ട" #: ../data/help-overlay.ui.h:11 msgctxt "shortcut window" msgid "Toggle shuffle" msgstr "ക്രമമില്ലാത്താക്കുക/ക്രമമാക്കുക" #: ../data/help-overlay.ui.h:12 msgctxt "shortcut window" msgid "Navigation" msgstr "" #: ../data/help-overlay.ui.h:13 #| msgid "Albums" msgctxt "shortcut window" msgid "Go to Albums" msgstr "ആല്‍ബത്തിലോട്ട് പോവുക" #: ../data/help-overlay.ui.h:14 #| msgid "Artists" msgctxt "shortcut window" msgid "Go to Artists" msgstr "ഗായകരിലോട്ട് പോവുക" #: ../data/help-overlay.ui.h:15 #| msgid "Songs" msgctxt "shortcut window" msgid "Go to Songs" msgstr "പാട്ടുകളിലോട്ട് പോവുക" #: ../data/help-overlay.ui.h:16 #| msgid "Add to Playlist" msgctxt "shortcut window" msgid "Go to Playlists" msgstr "ഗാനനിരയിലേക്കു പോവുക" #: ../data/help-overlay.ui.h:17 msgctxt "shortcut window" msgid "Go back" msgstr "പുറകിലോട്ട് പോവുക" #: ../data/NoMusic.ui.h:1 #| msgid "No Music Found" msgid "No music found" msgstr "പാട്ട് ഒന്നും കണ്ടില്ല" #. Translators: %s will be replaced with a link with text #: ../data/NoMusic.ui.h:4 #, no-c-format msgid "The contents of your %s will appear here." msgstr "%s ലെ ഉള്ളടക്കം ഇവിടെ വരും." #: ../data/PlayerToolbar.ui.h:1 msgid "Shuffle" msgstr "കലര്‍ത്തുക" #: ../data/PlayerToolbar.ui.h:2 msgid "Repeat All" msgstr "എല്ലാം ആവര്‍ത്തിക്കുക" #: ../data/PlayerToolbar.ui.h:3 msgid "Repeat Song" msgstr "പാട്ട് ആവര്‍ത്തിക്കുക" #. Causes tracks to play in random order #: ../data/PlayerToolbar.ui.h:5 msgid "Shuffle/Repeat Off" msgstr "കലര്‍ത്തല്‍/ആവര്‍ത്തനം നിര്‍ത്തുക" #: ../data/PlaylistControls.ui.h:1 #| msgid "Play" msgid "_Play" msgstr "പ്ലേ (_P)" #: ../data/PlaylistControls.ui.h:2 msgid "_Delete" msgstr "കളയുക (_D)" #: ../data/PlaylistControls.ui.h:3 #| msgid "Playlists" msgid "Playlist Name" msgstr "ഗാനനിരയുടെ പേര്" #: ../data/PlaylistDialog.ui.h:1 msgid "Enter a name for your first playlist" msgstr "നിങ്ങളുടെ ആദ്യത്തെ പാട്ട് പട്ടികയ്ക്ക് പേര് തരിക" #: ../data/PlaylistDialog.ui.h:2 msgid "C_reate" msgstr "ഉണ്ടാക്കുക (_r)" #: ../data/PlaylistDialog.ui.h:3 #| msgid "_New Playlist" msgid "New Playlist" msgstr "പു‌തിയ ഗാനനിര (_N)" #: ../data/PlaylistDialog.ui.h:4 msgid "Add" msgstr "ചേര്‍ക്കുക" #: ../data/PlaylistDialog.ui.h:5 #| msgid "Select All" msgid "Select Playlist" msgstr "ഗാനനിര തിരഞ്ഞെടുക്കുക" #: ../data/PlaylistDialog.ui.h:7 msgid "_Add" msgstr "ചേര്‍ക്കുക (_A)" #: ../data/SelectionToolbar.ui.h:1 #| msgid "Add to Playlist" msgid "_Add to Playlist" msgstr "ഗാനനിരയിലേക്കു ചേര്‍ക്കുക (_A)" #: ../data/SelectionToolbar.ui.h:2 #| msgid "_New Playlist" msgid "_Remove from Playlist" msgstr "‌ഗാനനിരയില്‍ നിന്ന് മാറ്റുക" #~ msgid "Not playing" #~ msgstr "പാടുന്നില്ല" #~ msgid "Unknown Album" #~ msgstr "അജ്ഞാത ആല്‍ബം" #~ msgid "by %s, from %s" #~ msgstr "%s കൊണ്ട്‌, %s നിന്നും" #~ msgid "" #~ "No Music found!\n" #~ " Put some files into the folder %s" #~ msgstr "" #~ "സംഗീതമൊന്നും കണ്ടെത്തിയില്ല\n" #~ "%s എന്ന ഫോള്‍ഡറിലേക്ക് കുറച്ച് രേഖകള്‍ ചേര്‍ക്കുക" #~ msgid "All Artists" #~ msgstr "എല്ലാ ഗായകരും" #~ msgid "Load More" #~ msgstr "കൂടുതല്‍ ലഭ്യമാക്കുക" #~ msgid "Now _Playing" #~ msgstr "ഇപ്പോള്‍ പാടുന്നത്" 07070100000102000081A400000000000000000000000166968E4E000044C6000000000000000000000000000000000000001A00000000gnome-music-46.1/po/ms.po# Malay translation for gnome-music. # Copyright (C) 2020 gnome-music's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-music package. # abuyop , 2020. # msgid "" msgstr "" "Project-Id-Version: gnome-music master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-music/issues\n" "POT-Creation-Date: 2020-01-27 08:27+0000\n" "PO-Revision-Date: 2020-01-27 17:58+0800\n" "Language-Team: Pasukan Terjemahan GNOME Malaysia\n" "Language: ms\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "Last-Translator: abuyop \n" "X-Generator: Poedit 2.0.6\n" #: data/org.gnome.Music.appdata.xml.in.in:6 msgid "GNOME Music" msgstr "Muzik GNOME" #: data/org.gnome.Music.appdata.xml.in.in:7 #: data/org.gnome.Music.desktop.in.in:5 msgid "Play and organize your music collection" msgstr "Main dan urus koleksi muzik anda" #: data/org.gnome.Music.appdata.xml.in.in:9 msgid "" "An easy way to play your music. Automatically discover music on your " "computer, the local network and internet services." msgstr "" "Satu cara mudah memainkan muzik anda. Temui muzik di dalam komputer anda, " "rangkaian setempat dan perkhidmatan internet secara automatik." #: data/org.gnome.Music.appdata.xml.in.in:12 msgid "" "Find tracks in your local collection, get music from DLNA servers or try " "something new with the Jamendo and Magnatune services." msgstr "" "Cari trek-trek dalam koleksi setempat anda, dapatkan muzik menerusi pelayan-" "pelayan DLNA atau cuba sesuatu yang baharu dengan perkhidmatan Jamendo dan " "Magnatune." #: data/org.gnome.Music.appdata.xml.in.in:67 msgid "The GNOME Music developers" msgstr "Para Pembangun Muzik GNOME" #: data/org.gnome.Music.desktop.in.in:3 gnomemusic/application.py:60 #: gnomemusic/window.py:77 msgid "Music" msgstr "Muzik" #: data/org.gnome.Music.desktop.in.in:4 msgid "Music Player" msgstr "Pemain Muzik" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Music.desktop.in.in:13 msgid "Music;Player;" msgstr "Muzik;Pemain;" #: data/org.gnome.Music.gschema.xml:12 msgid "Window size" msgstr "Saiz tetingkap" #: data/org.gnome.Music.gschema.xml:13 msgid "Window size (width and height)." msgstr "Saiz tetingkap (lebar dan tinggi)." #: data/org.gnome.Music.gschema.xml:17 msgid "Window position" msgstr "Kedudukan tetingkap" #: data/org.gnome.Music.gschema.xml:18 msgid "Window position (x and y)." msgstr "Kedudukan tetingkap (x dan y)." #: data/org.gnome.Music.gschema.xml:22 msgid "Window maximized" msgstr "Tetingkap dimaksimumkan" #: data/org.gnome.Music.gschema.xml:23 msgid "Window maximized state." msgstr "Keadaan tetingkap dimaksimumkan." #: data/org.gnome.Music.gschema.xml:27 msgid "Playback repeat mode" msgstr "Mod ulang main balik" #. Translators: Don't translate allowed values, just the description in the brackets #: data/org.gnome.Music.gschema.xml:29 msgid "" "Value identifies whether to repeat or randomize playback through the " "collection. Allowed values are: “none” (repeat and shuffle are off), " "“song” (repeat current song), “all” (repeat playlist, no shuffle), " "“shuffle” (shuffle playlist, presumes repeat all)." msgstr "" "Nilai dikenal pasti sama ada mahu ulang atau rawakkan main balik menyeluruhi " "koleksi. Nilai-nilai dibenarkan adalah: none” (ulang dan kocok dimatikan), " "“song” (ulang lagu semasa), “all” (ulang senarai main, tanpa kocok), " "“shuffle” (kocok senarai main, sambung ulang semua)." #: data/org.gnome.Music.gschema.xml:33 msgid "Enable ReplayGain" msgstr "Benarkan Gandaan Main Semula" #: data/org.gnome.Music.gschema.xml:34 msgid "Enables or disables ReplayGain for albums" msgstr "Benarkan atau lumpuhkan Gandaan Main Semula untuk album" #: data/org.gnome.Music.gschema.xml:38 msgid "Inital state has been displayed" msgstr "Keadaan awal telah dipaparkan" #: data/org.gnome.Music.gschema.xml:39 msgid "Set to true when initial state has been displayed" msgstr "Tetapkan pada benar ketika keadaan awal telah dipaparkan" #: data/org.gnome.Music.gschema.xml:43 msgid "Inhibit system suspend" msgstr "Rencat tangguh sistem" #: data/org.gnome.Music.gschema.xml:44 msgid "Enables or disables inhibiting system suspend while playing music" msgstr "Benar atau lumpuhkan perencatan tangguh sistem ketika memainkan muzik" #: data/org.gnome.Music.gschema.xml:48 msgid "Report music history to Last.fm" msgstr "Lapor sejarah muzik ke Last.fm" #: data/org.gnome.Music.gschema.xml:49 msgid "" "Enables or disables sending scrobbles and the “currently playing” info to " "Last.fm." msgstr "" "Benar atau lumpuhkan penghantaran scrobble dan maklumat \"semasa dimainkan\" " "ke Last.fm." #: data/ui/AboutDialog.ui.in:9 msgid "Copyright © 2018 GNOME Music Developers" msgstr "Hak cipta © 2018 Para Pembangun Muzik GNOME" #: data/ui/AboutDialog.ui.in:10 msgid "A music player and management application for GNOME." msgstr "Sebuah pemain muzik dan aplikasi pengurusan untuk GNOME." #: data/ui/AboutDialog.ui.in:12 msgid "Visit GNOME Music website" msgstr "Lawati tapak sesawang Muzik GNOME" #: data/ui/AboutDialog.ui.in:13 msgid "" "GNOME Music 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.\n" "\n" "GNOME Music 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.\n" "\n" "You should have received a copy of the GNU General Public License along with " "GNOME Music; if not, write to the Free Software Foundation, Inc., 51 " "Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" "\n" "The GNOME Music authors hereby grant permission for non-GPL compatible " "GStreamer plugins to be used and distributed together with GStreamer and " "GNOME Music. This permission is above and beyond the permissions granted by " "the GPL license by which GNOME Music is covered. If you modify this code, " "you may extend this exception to your version of the code, but you are not " "obligated to do so. If you do not wish to do so, delete this exception " "statement from your version.\n" "\n" "“Magic of the vinyl” by Sami Pyylampi image is licensed by CC-BY-SA 2.0 " "https://www.flickr.com/photos/_spy_/12270839403" msgstr "" "Muzik GNOME merupakan perisian bebas; anda boleh mengedar ia semula dan/atau " "mengubah suainya di bawah terma-terma Lesen Awam Am GNU sepertimana yang " "diterbitkan oleh Free Software Foundation; sama ada versi 2 dari Lesen, atau " "(mengikut pilihan anda) mana-mana versi terkemudian.\n" "\n" "Muzik GNOME diedarkan dengan harapan ia akan berguna, tetapi TANPA APA-APA " "JAMINAN; tanpa jaminan dikenakan terhadap KEBOLEHDAGANGAN atau KESESUAIAN " "ATAS TUJUAN TERTENTU. Sila rujuk Lesen Awam Am GNU untuk perincian lanjut.\n" "\n" "Anda seharusnya telah menerima satu salinan Lesen Awam Am GNU bersama-sama " "dengan Muzik GNOME; jika tiada, sila rujuk kepada Free Software Foundation, " "Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" "\n" "Para pengarang Muzik GNOME dengan ini memberi keizinan penggunaan pemalam-" "pemalam GStreamer serasi bukan-GPL dan diedar bersama-sama dengan GStreamer " "dan Muzik GNOME. Keizinan ini melangkaui keizinan yang diberikan oleh lesen " "GPL yang mana Muzik GNOME diliputi. Jika anda mengubah suai kod ini, anda " "boleh lanjutkan pengecualian ini pada versi kod anda, tetapi anda tidak " "diwajibkan membuatnya. Jika anda tidak mahu membuatnya, maka padam penyataan " "pengecualian ini dari versi anda.\n" "\n" "“Magic of the vinyl” oleh Sami Pyylampi image dilesenkan oleh CC-BY-SA 2.0 " "https://www.flickr.com/photos/_spy_/12270839403" #: data/ui/AlbumWidget.ui:105 msgid "Released" msgstr "Dilepaskan" #: data/ui/AlbumWidget.ui:121 msgid "Running Length" msgstr "Tempoh Dijalankan" #: data/ui/AlbumWidget.ui:166 msgid "Composer" msgstr "Penggubah" #: data/ui/AppMenu.ui:20 msgid "Last.fm Account" msgstr "Akaun Last.fm" #: data/ui/AppMenu.ui:39 msgid "Report Music Listening" msgstr "Lapor Pendengaran Muzik" #: data/ui/AppMenu.ui:70 msgid "_Keyboard Shortcuts" msgstr "Pintasan Papan _Kekunci" #: data/ui/AppMenu.ui:84 msgid "_Help" msgstr "_Bantuan" #: data/ui/AppMenu.ui:98 msgid "_About Music" msgstr "Perih_al Muzik" #: data/ui/HeaderBar.ui:16 msgid "Menu" msgstr "Menu" #: data/ui/HeaderBar.ui:39 data/ui/SearchHeaderBar.ui:16 msgid "Select" msgstr "Pilih" #: data/ui/HeaderBar.ui:61 data/ui/PlaylistDialog.ui:244 #: data/ui/SearchHeaderBar.ui:38 msgid "_Cancel" msgstr "_Batal" #: data/ui/HeaderBar.ui:80 data/ui/SearchHeaderBar.ui:57 msgid "Search" msgstr "Gelintar" #: data/ui/HeaderBar.ui:103 msgid "Back" msgstr "Undur" #: data/ui/help-overlay.ui:13 msgctxt "shortcut window" msgid "General" msgstr "Am" #: data/ui/help-overlay.ui:17 msgctxt "shortcut window" msgid "Close window" msgstr "Tutup tetingkap" #: data/ui/help-overlay.ui:24 msgctxt "shortcut window" msgid "Search" msgstr "Gelintar" #: data/ui/help-overlay.ui:31 msgctxt "shortcut window" msgid "Help" msgstr "Bantuan" #: data/ui/help-overlay.ui:38 msgctxt "shortcut window" msgid "Shortcuts" msgstr "Pintasan" #: data/ui/help-overlay.ui:47 msgctxt "shortcut window" msgid "Playback" msgstr "Main Balik" #: data/ui/help-overlay.ui:51 msgctxt "shortcut window" msgid "Play/Pause" msgstr "Main/Jeda" #: data/ui/help-overlay.ui:58 msgctxt "shortcut window" msgid "Next song" msgstr "Lagu berikutnya" #: data/ui/help-overlay.ui:65 msgctxt "shortcut window" msgid "Previous song" msgstr "Lagu terdahulu" #: data/ui/help-overlay.ui:72 msgctxt "shortcut window" msgid "Toggle repeat" msgstr "Togol ulang" #: data/ui/help-overlay.ui:79 msgctxt "shortcut window" msgid "Toggle shuffle" msgstr "Togol kocok" #: data/ui/help-overlay.ui:88 msgctxt "shortcut window" msgid "Navigation" msgstr "Navigasi" #: data/ui/help-overlay.ui:92 msgctxt "shortcut window" msgid "Go to Albums" msgstr "Pergi ke Album" #: data/ui/help-overlay.ui:99 msgctxt "shortcut window" msgid "Go to Artists" msgstr "Pergi ke Artis" #: data/ui/help-overlay.ui:106 msgctxt "shortcut window" msgid "Go to Songs" msgstr "Pergi ke Lagu" #: data/ui/help-overlay.ui:113 msgctxt "shortcut window" msgid "Go to Playlists" msgstr "Pergi ke Senarai-Main" #: data/ui/help-overlay.ui:120 msgctxt "shortcut window" msgid "Go back" msgstr "Kembali" #: data/ui/PlayerToolbar.ui:6 msgid "Shuffle" msgstr "Kocok" #: data/ui/PlayerToolbar.ui:11 msgid "Repeat All" msgstr "Ulang Semua" #: data/ui/PlayerToolbar.ui:16 msgid "Repeat Song" msgstr "Ulang Lagu" #. Causes tracks to play in random order #: data/ui/PlayerToolbar.ui:21 msgid "Shuffle/Repeat Off" msgstr "Kocok/Ulang Mati" #: data/ui/PlayerToolbar.ui:70 msgid "Previous" msgstr "Terdahulu" #: data/ui/PlayerToolbar.ui:86 gnomemusic/widgets/playertoolbar.py:159 msgid "Play" msgstr "Main" #: data/ui/PlayerToolbar.ui:102 msgid "Next" msgstr "Berikutnya" #: data/ui/PlaylistContextMenu.ui:5 msgctxt "context menu item" msgid "Play" msgstr "Main" #: data/ui/PlaylistContextMenu.ui:9 msgid "Add to Playlist…" msgstr "Tambah ke Senarai Main…" #: data/ui/PlaylistContextMenu.ui:13 msgid "Remove From Playlist" msgstr "Buang dari Senarai Main" #: data/ui/PlaylistControls.ui:6 msgid "_Play" msgstr "_Main" #: data/ui/PlaylistControls.ui:10 msgid "_Delete" msgstr "Pa_dam" #: data/ui/PlaylistControls.ui:14 msgid "_Rename…" msgstr "_Nama Semula…" #: data/ui/PlaylistControls.ui:40 msgid "Playlist Name" msgstr "Nama Senarai Main" #: data/ui/PlaylistControls.ui:74 msgid "_Done" msgstr "_Selesai" #: data/ui/PlaylistDialog.ui:66 msgid "Enter a name for your first playlist" msgstr "Masukkan satu nama untuk senarai main pertama anda" #: data/ui/PlaylistDialog.ui:92 msgid "C_reate" msgstr "C_ipta" #: data/ui/PlaylistDialog.ui:155 msgid "New Playlist…" msgstr "Senarai Main Baharu…" #: data/ui/PlaylistDialog.ui:169 msgid "Add" msgstr "Tambah" #: data/ui/PlaylistDialog.ui:241 msgid "Add to Playlist" msgstr "Tambah ke Senarai Main" #: data/ui/PlaylistDialog.ui:257 msgid "_Add" msgstr "T_ambah" #: data/ui/SearchView.ui:44 gnomemusic/views/artistsview.py:59 msgid "Artists" msgstr "Artis" #: data/ui/SearchView.ui:54 data/ui/SearchView.ui:107 msgid "View All" msgstr "Lihat Semua" #: data/ui/SearchView.ui:97 gnomemusic/views/albumsview.py:62 msgid "Albums" msgstr "Album" #: data/ui/SearchView.ui:150 gnomemusic/views/songsview.py:57 msgid "Songs" msgstr "Lagu" #: data/ui/SelectionBarMenuButton.ui:7 msgid "Select All" msgstr "Pilih Semua" #: data/ui/SelectionBarMenuButton.ui:11 msgid "Select None" msgstr "Jangan Pilih Apa-apa" #: data/ui/SelectionBarMenuButton.ui:31 gnomemusic/widgets/headerbar.py:75 msgid "Click on items to select them" msgstr "Klik pada item-item untuk memilihnya" #: data/ui/SelectionToolbar.ui:9 msgid "_Add to Playlist" msgstr "T_ambah ke Senarai Main" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:749 msgid "Most Played" msgstr "Terbanyak Dimainkan" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:786 msgid "Never Played" msgstr "Tidak Sesekali Dimainkan" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:822 msgid "Recently Played" msgstr "Dimainkan Baru-Baru Ini" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:868 msgid "Recently Added" msgstr "Ditambah Baru-Baru Ini" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:913 msgid "Favorite Songs" msgstr "Lagu Kegemaran" #: gnomemusic/gstplayer.py:403 msgid "Unable to play the file" msgstr "Tidak boleh memainkan fail" #: gnomemusic/gstplayer.py:409 msgid "_Find in {}" msgstr "_Cari dalam {}" #. TRANSLATORS: separator for two codecs #: gnomemusic/gstplayer.py:420 msgid " and " msgstr " dan " #. TRANSLATORS: separator for a list of codecs #: gnomemusic/gstplayer.py:423 msgid ", " msgstr ", " #: gnomemusic/gstplayer.py:425 msgid "{} is required to play the file, but is not installed." msgid_plural "{} are required to play the file, but are not installed." msgstr[0] "{} diperlukan untuk memainkan fail, tetapi tidak dipasang." msgstr[1] "{} diperlukan untuk memainkan fail, tetapi tidak dipasang." #: gnomemusic/inhibitsuspend.py:72 msgid "Playing music" msgstr "Memainkan muzik" #: gnomemusic/utils.py:64 msgid "Unknown album" msgstr "Album tidak diketahui" #: gnomemusic/utils.py:85 msgid "Unknown Artist" msgstr "Artis Tidak Diketahui" #: gnomemusic/views/emptyview.py:73 msgid "Your XDG Music directory is not set." msgstr "Direktori Muzik XDG anda tidak ditetapkan." #: gnomemusic/views/emptyview.py:80 msgid "Music folder" msgstr "Folder muzik" #. TRANSLATORS: This is a label to display a link to open user's music #. folder. {} will be replaced with the translated text 'Music folder' #: gnomemusic/views/emptyview.py:84 msgid "The contents of your {} will appear here." msgstr "Kandungan {} anda akan muncul di sini." #: gnomemusic/views/emptyview.py:120 msgid "Hey DJ" msgstr "Hai DJ" #: gnomemusic/views/emptyview.py:130 gnomemusic/views/emptyview.py:136 msgid "No music found" msgstr "Tiada muzik ditemui" #: gnomemusic/views/emptyview.py:138 msgid "Try a different search" msgstr "Cuba gelintar lain" #: gnomemusic/views/emptyview.py:144 msgid "GNOME Music could not connect to Tracker" msgstr "Muzik GNOME tidak dapat bersambung dengan Penjejak" #: gnomemusic/views/emptyview.py:147 msgid "Your music files cannot be indexed without Tracker running" msgstr "Fail muzik anda tidak dapat diindekskan tanpa menjalankan Penjejak" #: gnomemusic/views/emptyview.py:155 msgid "Your system Tracker version seems outdated" msgstr "Versi Penjejak sistem anda nampaknya telah lapuk" #: gnomemusic/views/emptyview.py:158 msgid "Music needs Tracker version 2.3.0 or higher" msgstr "Muzik memerlukan Penjejak versi 2.3.0 atau lebih terkini" #: gnomemusic/views/playlistsview.py:58 msgid "Playlists" msgstr "Senarai Main" #: gnomemusic/views/searchview.py:363 msgid "Artists Results" msgstr "Keputusan Artis" #: gnomemusic/views/searchview.py:377 msgid "Albums Results" msgstr "Keputusan Album" #: gnomemusic/widgets/albumwidget.py:165 msgid "{} minute" msgid_plural "{} minutes" msgstr[0] "{} minit" msgstr[1] "{} minit" #: gnomemusic/widgets/disclistboxwidget.py:76 msgid "Disc {}" msgstr "Cakera {}" #: gnomemusic/widgets/headerbar.py:72 msgid "Selected {} item" msgid_plural "Selected {} items" msgstr[0] "{} item terpilih" msgstr[1] "{} item terpilih" #: gnomemusic/widgets/notificationspopup.py:171 msgid "Loading" msgstr "Memuatkan" #: gnomemusic/widgets/notificationspopup.py:244 msgid "_Undo" msgstr "_Buat asal" #: gnomemusic/widgets/notificationspopup.py:259 msgid "Playlist {} removed" msgstr "Senarai main {} telah dibuang" #: gnomemusic/widgets/notificationspopup.py:263 msgid "{} removed from {}" msgstr "{} telah dibuang daripada {}" #: gnomemusic/widgets/playertoolbar.py:156 msgid "Pause" msgstr "Jeda" #: gnomemusic/widgets/playlistcontrols.py:112 msgid "{} Song" msgid_plural "{} Songs" msgstr[0] "{} Lagu" msgstr[1] "{} Lagu" 07070100000103000081A400000000000000000000000166968E4E0000450B000000000000000000000000000000000000001A00000000gnome-music-46.1/po/nb.po# Norwegian bokmål translation of gnome-music. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # Kjartan Maraas , 2012-2022. # Åka Sikrom , 2014. # msgid "" msgstr "" "Project-Id-Version: gnome-music 4.2\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-music/issues\n" "POT-Creation-Date: 2022-02-19 12:39+0000\n" "PO-Revision-Date: 2022-03-17 14:12+0100\n" "Last-Translator: Kjartan Maraas \n" "Language-Team: Norwegian bokmål \n" "Language: no\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: data/org.gnome.Music.appdata.xml.in.in:6 #: data/org.gnome.Music.desktop.in.in:3 gnomemusic/application.py:61 #: gnomemusic/window.py:71 msgid "Music" msgstr "Musikk" #: data/org.gnome.Music.appdata.xml.in.in:7 #: data/org.gnome.Music.desktop.in.in:5 msgid "Play and organize your music collection" msgstr "Spill av og organiser musikksamlingen din" #: data/org.gnome.Music.appdata.xml.in.in:9 msgid "An easy and pleasant way to play your music." msgstr "En enkel og fornøyelig måte å spille din musikk." #: data/org.gnome.Music.appdata.xml.in.in:12 msgid "" "Find tracks in your local collection, use automatically generated playlists " "or curate a fresh one." msgstr "Finn spor i din lokale samling, bruk automatisk genererte spillelister eller lage en ny." #: data/org.gnome.Music.appdata.xml.in.in:149 msgid "The GNOME Music developers" msgstr "GNOME Music-utviklerene" #: data/org.gnome.Music.desktop.in.in:4 msgid "Music Player" msgstr "Musikkavspiller" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Music.desktop.in.in:13 msgid "Music;Player;" msgstr "Musikk;Spiller;" #: data/org.gnome.Music.gschema.xml:12 msgid "Window size" msgstr "Vindustørrelse" #: data/org.gnome.Music.gschema.xml:13 msgid "Window size (width and height)." msgstr "Vindustørrelse (bredde og høyde)." #: data/org.gnome.Music.gschema.xml:17 msgid "Window maximized" msgstr "Vindu maksimert" #: data/org.gnome.Music.gschema.xml:18 msgid "Window maximized state." msgstr "Vindu maksimert." #: data/org.gnome.Music.gschema.xml:22 msgid "Playback repeat mode" msgstr "Repeteringsmodus for avspilling" #. Translators: Don't translate allowed values, just the description in the brackets #: data/org.gnome.Music.gschema.xml:24 msgid "" "Value identifies whether to repeat or randomize playback through the " "collection. Allowed values are: “none” (repeat and shuffle are off), " "“song” (repeat current song), “all” (repeat playlist, no shuffle), " "“shuffle” (shuffle playlist, presumes repeat all)." msgstr "" "Verdien bestemmer om samlingen skal spilles av i blandet rekkefølge og/eller " "om avspilling skal gjentas. Gyldige verdier er «none» (gjentakelse og " "blanding er slått av), «song» (gjenta sangen som spilles av nå), " "«all» (gjenta spillelista, uten å blande den) og «shuffle» (bland " "spillelista, og - implisitt - gjenta den)." #: data/org.gnome.Music.gschema.xml:28 msgid "Enable ReplayGain" msgstr "Slå på ReplayGain" #: data/org.gnome.Music.gschema.xml:29 msgid "Enables or disables ReplayGain for albums" msgstr "Slår på eller av ReplayGain for album" #: data/org.gnome.Music.gschema.xml:33 msgid "Inhibit system suspend" msgstr "Hindre hvilemodus" #: data/org.gnome.Music.gschema.xml:34 msgid "Enables or disables inhibiting system suspend while playing music" msgstr "Slår av eller på hindring av hvilemodus når musikk blir spilt av" #: data/org.gnome.Music.gschema.xml:38 msgid "Report music history to Last.fm" msgstr "Rapporter musikkhistorikk til Last.fm" #: data/org.gnome.Music.gschema.xml:39 msgid "" "Enables or disables sending scrobbles and the “currently playing” info to " "Last.fm." msgstr "Slår av eller på sending av musikkinfo og låt som spilles til Last.fm." #: data/ui/AboutDialog.ui.in:9 msgid "Copyright © 2018 GNOME Music Developers" msgstr "Opphavsrett © 2016 GNOME Music-utviklerene" #: data/ui/AboutDialog.ui.in:10 msgid "A music player and management application for GNOME." msgstr "Et program for avspilling og håndtering av musikk for GNOME." #: data/ui/AboutDialog.ui.in:12 msgid "Visit GNOME Music website" msgstr "Besøk nettstedet for GNOME Music" #: data/ui/AboutDialog.ui.in:13 msgid "" "GNOME Music 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.\n" "\n" "GNOME Music 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.\n" "\n" "You should have received a copy of the GNU General Public License along with " "GNOME Music; if not, write to the Free Software Foundation, Inc., 51 " "Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" "\n" "The GNOME Music authors hereby grant permission for non-GPL compatible " "GStreamer plugins to be used and distributed together with GStreamer and " "GNOME Music. This permission is above and beyond the permissions granted by " "the GPL license by which GNOME Music is covered. If you modify this code, " "you may extend this exception to your version of the code, but you are not " "obligated to do so. If you do not wish to do so, delete this exception " "statement from your version." msgstr "" "GNOME musikk er fri programvare. Du kan redistribuere og/eller endre programmet under betingelsene gitt i GNU General Public License som utgitt av Free Software Foundation; enten versjon 2 av lisensen, eller (hvis du ønsker det) enhver senere versjon.\n" "\n" "GNOME musikk distribueres i håp om at programmet er nyttig, men uten NOEN GARANTI, ikke engang implisitt garanti om at det er SALGBART eller PASSER ET BESTEMT FORMÅL. Se GNU General Public License for detaljer.\n" "\n" "Du skal ha mottatt en kopi av GNU General Public License sammen med dette programmet. Hvis dette ikke er tilfelle, kan du skrive til Free Software Foundation, Inc. 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n" "\n" "GNOME musikk utviklerene gir herved rettigheter for bruk og distribusjon av GStreamer-tillegg som ikke er kompatible med GPL sammen med GStreamer og GNOME musikk. Denne rettigheten går foran rettighetene som gis av GPL-lisensen som gjelder for GNOME musikk. Hvis du endrer denne koden kan du bruke dette unntaket for din versjon av koden, men du er ikke pliktig til gjøre dette. Hvis du ikke ønsker å gjøre dette kan du slette denne teksten fra din versjon." #: data/ui/AlbumWidget.ui:86 data/ui/PlayerToolbar.ui:88 #: data/ui/PlaylistControls.ui:101 gnomemusic/widgets/playertoolbar.py:168 msgid "Play" msgstr "Spill av" #: data/ui/AlbumWidget.ui:132 data/ui/PlaylistControls.ui:5 #: data/ui/SongWidgetMenu.ui:11 msgid "_Play" msgstr "S_pill av" #: data/ui/AlbumWidget.ui:136 msgid "Add to _Favorite Songs" msgstr "Legg til i _favorittlåter" #: data/ui/AlbumWidget.ui:140 data/ui/SongWidgetMenu.ui:15 msgid "_Add to Playlist…" msgstr "_Legg til i spilleliste …" #: data/ui/AppMenu.ui:23 data/ui/LastfmDialog.ui:8 msgid "Last.fm Account" msgstr "Last.fm konto" #: data/ui/AppMenu.ui:36 msgid "Report Music Listening" msgstr "Rapporter det du lytter til" #: data/ui/AppMenu.ui:58 msgid "_Keyboard Shortcuts" msgstr "_Tastatursnarveier" #: data/ui/AppMenu.ui:68 msgid "_Help" msgstr "_Hjelp" #: data/ui/AppMenu.ui:78 msgid "_About Music" msgstr "_Om Musikk" #: data/ui/EmptyView.ui:26 data/ui/InitialState.ui:13 msgid "Welcome to Music" msgstr "Velkommen til Musikk" #: data/ui/HeaderBar.ui:16 msgid "Menu" msgstr "Meny" #: data/ui/HeaderBar.ui:24 data/ui/SearchHeaderBar.ui:15 msgid "Select" msgstr "Velg" #: data/ui/HeaderBar.ui:30 data/ui/PlaylistDialog.ui:211 #: data/ui/SearchHeaderBar.ui:20 msgid "_Cancel" msgstr "A_vbryt" #: data/ui/HeaderBar.ui:42 data/ui/SearchHeaderBar.ui:32 msgid "Search" msgstr "Søk" #: data/ui/HeaderBar.ui:50 msgid "Back" msgstr "Tilbake" #: data/ui/help-overlay.ui:11 msgctxt "shortcut window" msgid "General" msgstr "Generelt" #: data/ui/help-overlay.ui:14 msgctxt "shortcut window" msgid "Close window" msgstr "Lukk vindu" #: data/ui/help-overlay.ui:20 msgctxt "shortcut window" msgid "Search" msgstr "Søk" #: data/ui/help-overlay.ui:26 msgctxt "shortcut window" msgid "Help" msgstr "Hjelp" #: data/ui/help-overlay.ui:32 msgctxt "shortcut window" msgid "Shortcuts" msgstr "Snarveier" #: data/ui/help-overlay.ui:40 msgctxt "shortcut window" msgid "Playback" msgstr "Avspilling" #: data/ui/help-overlay.ui:43 msgctxt "shortcut window" msgid "Play/Pause" msgstr "Spill av/pause" #: data/ui/help-overlay.ui:49 msgctxt "shortcut window" msgid "Next song" msgstr "Neste sang" #: data/ui/help-overlay.ui:55 msgctxt "shortcut window" msgid "Previous song" msgstr "Forrige sang" #: data/ui/help-overlay.ui:61 msgctxt "shortcut window" msgid "Toggle repeat" msgstr "Slå av/på gjenta" #: data/ui/help-overlay.ui:67 msgctxt "shortcut window" msgid "Toggle shuffle" msgstr "Slå av/på tilfeldig rekkefølge" #: data/ui/help-overlay.ui:75 msgctxt "shortcut window" msgid "Navigation" msgstr "Navigasjon" #: data/ui/help-overlay.ui:78 msgctxt "shortcut window" msgid "Go to Albums" msgstr "Gå til album" #: data/ui/help-overlay.ui:84 msgctxt "shortcut window" msgid "Go to Artists" msgstr "Gå til artister" #: data/ui/help-overlay.ui:90 msgctxt "shortcut window" msgid "Go to Songs" msgstr "Gå til sanger" #: data/ui/help-overlay.ui:96 msgctxt "shortcut window" msgid "Go to Playlists" msgstr "Gå til spillelister" #: data/ui/help-overlay.ui:102 msgctxt "shortcut window" msgid "Go back" msgstr "Gå tilbake" #: data/ui/InitialState.ui:25 msgid "The contents of your Music Folder will appear here" msgstr "Innholdet i din musikkmappe vises her." #: data/ui/LastfmDialog.ui:21 msgid "" "Last.fm is a music discovery service that gives you personalised " "recommendations based on the music you listen to." msgstr "" "Last.fm er en tjeneste for utforsking av musikk som gir deg personlige " "anbefalinger basert på det du lytter til." #: data/ui/LastfmDialog.ui:31 gnomemusic/widgets/lastfmdialog.py:57 msgid "Music Reporting Not Setup" msgstr "Musikkrapportering er ikke satt opp" #: data/ui/LastfmDialog.ui:44 gnomemusic/widgets/lastfmdialog.py:60 msgid "Login to your Last.fm account to report your music listening." msgstr "Logg in på din Last.fm konto for å rapportere det du lytter til." #: data/ui/LastfmDialog.ui:55 gnomemusic/widgets/lastfmdialog.py:58 msgid "Login" msgstr "Logg inn" #: data/ui/PlayerToolbar.ui:75 msgid "Previous" msgstr "Forrige" #: data/ui/PlayerToolbar.ui:107 msgid "Next" msgstr "Neste" #: data/ui/PlaylistControls.ui:9 msgid "_Delete" msgstr "_Slett" #: data/ui/PlaylistControls.ui:13 msgid "_Rename…" msgstr "End_re navn …" #: data/ui/PlaylistControls.ui:28 msgid "Playlist Name" msgstr "Navn på spilleliste" #: data/ui/PlaylistControls.ui:62 msgid "_Done" msgstr "Fer_dig" #: data/ui/PlaylistDialog.ui:52 msgid "Enter a name for your first playlist" msgstr "Oppgi et navn for din første spilleliste" #: data/ui/PlaylistDialog.ui:77 msgid "C_reate" msgstr "_Lag" #: data/ui/PlaylistDialog.ui:146 msgid "New Playlist…" msgstr "Ny spilleliste …" #: data/ui/PlaylistDialog.ui:161 msgid "Add" msgstr "Legg til" #: data/ui/PlaylistDialog.ui:200 msgid "Add to Playlist" msgstr "Legg til i spilleliste" #: data/ui/PlaylistDialog.ui:220 msgid "_Add" msgstr "_Legg til" #: data/ui/SearchView.ui:33 gnomemusic/views/artistsview.py:51 msgid "Artists" msgstr "Artister" #: data/ui/SearchView.ui:42 data/ui/SearchView.ui:84 msgid "View All" msgstr "Vis alle" #: data/ui/SearchView.ui:75 gnomemusic/views/albumsview.py:54 msgid "Albums" msgstr "Album" #: data/ui/SearchView.ui:117 gnomemusic/views/songsview.py:52 msgid "Songs" msgstr "Sanger" #: data/ui/SelectionBarMenuButton.ui:7 msgid "Select All" msgstr "Velg alle" #: data/ui/SelectionBarMenuButton.ui:11 msgid "Select None" msgstr "Velg ingen" #: data/ui/SelectionBarMenuButton.ui:19 gnomemusic/widgets/headerbar.py:69 msgid "Click on items to select them" msgstr "Klikk på oppføringer for å velge dem" #: data/ui/SelectionToolbar.ui:8 msgid "_Add to Playlist" msgstr "_Legg til i spilleliste" #: data/ui/SongWidgetMenu.ui:19 msgid "_Remove from Playlist" msgstr "Fje_rn fra spilleliste" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:894 msgid "Most Played" msgstr "Mest spilt" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:948 msgid "Never Played" msgstr "Aldri spilt" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1001 msgid "Recently Played" msgstr "Nylig spilt" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1064 msgid "Recently Added" msgstr "Nylig lagt til" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1127 msgid "Favorite Songs" msgstr "Favorittlåter" #: gnomemusic/gstplayer.py:408 msgid "Unable to play the file" msgstr "Kan ikke spille av filen" #: gnomemusic/gstplayer.py:414 msgid "_Find in {}" msgstr "_Finn i {}" #. TRANSLATORS: separator for two codecs #: gnomemusic/gstplayer.py:424 msgid " and " msgstr " og " #. TRANSLATORS: separator for a list of codecs #: gnomemusic/gstplayer.py:427 msgid ", " msgstr ", " #: gnomemusic/gstplayer.py:429 msgid "{} is required to play the file, but is not installed." msgid_plural "{} are required to play the file, but are not installed." msgstr[0] "{} kreves for å spille av filen, men er ikke installert." msgstr[1] "{} kreves for å spille av filen, men er ikke installert." #: gnomemusic/inhibitsuspend.py:63 msgid "Playing music" msgstr "Spiller musikk" #. Translators: "shuffle" causes tracks to play in random order. #: gnomemusic/player.py:44 msgid "Shuffle" msgstr "Bland" #: gnomemusic/player.py:45 msgid "Repeat Song" msgstr "Gjenta sang" #: gnomemusic/player.py:46 msgid "Repeat All" msgstr "Gjenta alle" #: gnomemusic/player.py:47 msgid "Shuffle/Repeat Off" msgstr "Bland/Gjenta av" #: gnomemusic/playlisttoast.py:55 msgid "Playlist {} removed" msgstr "Spilleliste {} fjernet" #: gnomemusic/playlisttoast.py:56 gnomemusic/songtoast.py:65 msgid "Undo" msgstr "Angre" #: gnomemusic/songtoast.py:64 msgid "{} removed from {}" msgstr "{} fjernet fra {}" #: gnomemusic/utils.py:92 msgid "Unknown album" msgstr "Ukjent album" #: gnomemusic/utils.py:113 msgid "Unknown Artist" msgstr "Ukjent artist" #: gnomemusic/views/emptyview.py:65 msgid "Your XDG Music directory is not set." msgstr "Din XDG-mappe er ikke satt." #: gnomemusic/views/emptyview.py:72 msgid "Music Folder" msgstr "Musikkmappe" #. TRANSLATORS: This is a label to display a link to open user's music #. folder. {} will be replaced with the translated text 'Music folder' #: gnomemusic/views/emptyview.py:76 msgid "The contents of your {} will appear here." msgstr "Innholdet i din {} vises her." #: gnomemusic/views/emptyview.py:124 msgid "No Music Found" msgstr "Fant ingen musikk" #: gnomemusic/views/emptyview.py:125 msgid "Try a Different Search" msgstr "Prøv et annet søk" #: gnomemusic/views/emptyview.py:129 msgid "GNOME Music could not connect to Tracker." msgstr "GNOME musikk kunne ikke koble til Tracker." #: gnomemusic/views/emptyview.py:131 msgid "Your music files cannot be indexed without Tracker running." msgstr "Musikkfilene dine kan ikke indekseres hvis ikke Tracker kjører." #: gnomemusic/views/emptyview.py:137 msgid "Your system Tracker version seems outdated." msgstr "Systemets versjon av Tracker ser ut til å være utdatert." #: gnomemusic/views/emptyview.py:139 msgid "Music needs Tracker version 3.0.0 or higher." msgstr "Musikk trenger Tracker versjon 3.0.0 eller høyere." #: gnomemusic/views/playlistsview.py:45 msgid "Playlists" msgstr "Spillelister" #: gnomemusic/views/searchview.py:304 msgid "Artists Results" msgstr "Artistresultater" #: gnomemusic/views/searchview.py:318 msgid "Albums Results" msgstr "Albumresultater" #: gnomemusic/widgets/albumwidget.py:240 msgid "{} minute" msgid_plural "{} minutes" msgstr[0] "{} minutt" msgstr[1] "{} minutter" #: gnomemusic/widgets/discbox.py:75 msgid "Disc {}" msgstr "Plate {}" #: gnomemusic/widgets/headerbar.py:66 msgid "Selected {} song" msgid_plural "Selected {} songs" msgstr[0] "{} sang valgt" msgstr[1] "{} sanger valgt" #: gnomemusic/widgets/lastfmdialog.py:64 msgid "Your music listening is reported to Last.fm." msgstr "Det du lytter til rapporteres til Last.fm" #: gnomemusic/widgets/lastfmdialog.py:66 msgid "Your music listening is not reported to Last.fm." msgstr "Det du lytter til rapporteres ikke til Last.fm" #. TRANSLATORS: displays the username of the Last.fm account #: gnomemusic/widgets/lastfmdialog.py:70 msgid "Logged in as {}" msgstr "Logget in som {}" #: gnomemusic/widgets/lastfmdialog.py:71 msgid "Configure" msgstr "Konfigurer" #: gnomemusic/widgets/playertoolbar.py:165 msgid "Pause" msgstr "Pause" #: gnomemusic/widgets/playlistcontrols.py:130 msgid "{} Song" msgid_plural "{} Songs" msgstr[0] "{} sang" msgstr[1] "{} sanger" 07070100000104000081A400000000000000000000000166968E4E00005852000000000000000000000000000000000000001A00000000gnome-music-46.1/po/ne.po# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: gnome-music gnome 3.14\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-music/issues\n" "POT-Creation-Date: 2022-08-27 13:27+0000\n" "PO-Revision-Date: 2022-09-08 02:34+0545\n" "Last-Translator: Pawan Chitrakar \n" "Language-Team: Nepali Translation Team \n" "Language: ne\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Poedit 3.0.1\n" #: data/org.gnome.Music.appdata.xml.in.in:6 data/org.gnome.Music.desktop.in.in:3 #: gnomemusic/about.py:236 gnomemusic/application.py:61 gnomemusic/window.py:71 msgid "Music" msgstr "सङ्गीत" #: data/org.gnome.Music.appdata.xml.in.in:7 data/org.gnome.Music.desktop.in.in:5 msgid "Play and organize your music collection" msgstr "तपाईँको सङ्गीत सङ्ग्रह बजाउनुहोस् र सङ्गठित गर्नुहोस्" #: data/org.gnome.Music.appdata.xml.in.in:9 msgid "An easy and pleasant way to play your music." msgstr "तपाईंको संगीत बजाउने सजिलो र रमाइलो तरिका।" #: data/org.gnome.Music.appdata.xml.in.in:12 msgid "" "Find tracks in your local collection, use automatically generated playlists or curate a " "fresh one." msgstr "" "तपाईँको स्थानीय सङ्कलनमा ट्रयाकहरू फेला पार्नुहोस्, स्वचालित रूपमा सिर्जना गरिएको बजाउने सूची प्रयोग " "गर्नुहोस् वा नया सिर्जना गर्नुहोस् ।" #: data/org.gnome.Music.appdata.xml.in.in:167 msgid "The GNOME Music developers" msgstr "जिनोम सङ्गीत विकासकर्ता" #: data/org.gnome.Music.desktop.in.in:4 msgid "Music Player" msgstr "सङ्गीत बजाउने" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Music.desktop.in.in:13 msgid "Music;Player;" msgstr "सङ्गीत प्लेयर." #: data/org.gnome.Music.gschema.xml:12 msgid "Window size" msgstr "सञ्झ्याल साइज" #: data/org.gnome.Music.gschema.xml:13 msgid "Window size (width and height)." msgstr "सञ्झ्यालको उचाइ र चौडाई." #: data/org.gnome.Music.gschema.xml:17 msgid "Window maximized" msgstr "सञ्झ्यालको अधिकतम स्थिति" #: data/org.gnome.Music.gschema.xml:18 msgid "Window maximized state." msgstr "सञ्झ्यालको अधिकतम स्थिति." #: data/org.gnome.Music.gschema.xml:22 msgid "Playback repeat mode" msgstr "मोड दोहोर्याउनुहोस्" #. Translators: Don't translate allowed values, just the description in the brackets #: data/org.gnome.Music.gschema.xml:24 msgid "" "Value identifies whether to repeat or randomize playback through the collection. Allowed " "values are: “none” (repeat and shuffle are off), “song” (repeat current song), " "“all” (repeat playlist, no shuffle), “shuffle” (shuffle playlist, presumes repeat all)." msgstr "" "मानले संग्रहको माध्यमबाट प्लेब्याक दोहोर्याउने वा अनियमित गर्ने कि नगर्ने पहिचान गर्दछ। अनुमति प्राप्त " "मानहरू हुन्: \"कुनै पनि छैन\" (पुनरावृत्ति र शफल बन्द छन्), \"गीत\" (पुनरावृत्ति हालको गीत), \"सबै" "\" (प्लेलिस्ट दोहोर्याउनुहोस्, कुनै शफल छैन), \"शफल\" (शफल प्लेलिस्ट, सबै दोहोर्याउनुहोस् अनुमान गर्नुहोस्)।" #: data/org.gnome.Music.gschema.xml:28 msgid "Enable ReplayGain" msgstr "पुन: प्लेगेन सक्षम पार्नुहोस्" #: data/org.gnome.Music.gschema.xml:29 msgid "Enables or disables ReplayGain for albums" msgstr "एल्बमका लागि पुन: प्लेगेन सक्षम वा अक्षम पार्दछ" #: data/org.gnome.Music.gschema.xml:33 msgid "Inhibit system suspend" msgstr "प्रणाली निलम्बन रोक्नुहोस्" #: data/org.gnome.Music.gschema.xml:34 msgid "Enables or disables inhibiting system suspend while playing music" msgstr "सङ्गीत बजाउँदा अवरोध प्रणाली निलम्बन सक्षम वा अक्षम पार्दछ" #: data/org.gnome.Music.gschema.xml:38 msgid "Report music history to Last.fm" msgstr "Last.fm सङ्गीत इतिहास प्रतिवेदन गर्नुहोस्" #: data/org.gnome.Music.gschema.xml:39 msgid "Enables or disables sending scrobbles and the “currently playing” info to Last.fm." msgstr "Last.fm पठाउन स्क्रोब्ल्स र \"हालै बजिरहेको\" सूचना सक्षम वा असक्षम पार्दछ ।" #: data/ui/AlbumWidget.ui:84 data/ui/PlayerToolbar.ui:87 data/ui/PlaylistControls.ui:101 #: gnomemusic/widgets/playertoolbar.py:170 msgid "Play" msgstr "प्ले गर्नुहोस्" #: data/ui/AlbumWidget.ui:130 data/ui/PlaylistControls.ui:5 data/ui/SongWidgetMenu.ui:11 msgid "_Play" msgstr "प्ले गर्नुहोस्" #: data/ui/AlbumWidget.ui:134 msgid "Add to _Favorite Songs" msgstr "मनपर्ने गीतहरू थप्नुहोस्" #: data/ui/AlbumWidget.ui:138 data/ui/SongWidgetMenu.ui:15 msgid "_Add to Playlist…" msgstr "बजाइने सुचिमा थप्नुहोस्…" #: data/ui/AppMenu.ui:23 data/ui/LastfmDialog.ui:8 msgid "Last.fm Account" msgstr "Last.fm खाता" #: data/ui/AppMenu.ui:36 msgid "Report Music Listening" msgstr "सङ्गीत सुन्ने प्रतिवेदन गर्नुहोस्" #: data/ui/AppMenu.ui:58 msgid "_Keyboard Shortcuts" msgstr "कुञ्जीपाटी सर्टकट" #: data/ui/AppMenu.ui:68 msgid "_Help" msgstr "सहयोग" #: data/ui/AppMenu.ui:78 msgid "_About Music" msgstr "सङ्गीत बारेमा" #: data/ui/EmptyView.ui:30 msgid "Welcome to Music" msgstr "सङ्गीतमा स्वागत छ" #: data/ui/HeaderBar.ui:16 msgid "Menu" msgstr "सूची" #: data/ui/HeaderBar.ui:24 data/ui/SearchHeaderBar.ui:15 msgid "Select" msgstr "चयन गर्नुहोस्" #: data/ui/HeaderBar.ui:30 data/ui/PlaylistDialog.ui:213 data/ui/SearchHeaderBar.ui:20 msgid "_Cancel" msgstr "_रद्द" #: data/ui/HeaderBar.ui:42 data/ui/SearchHeaderBar.ui:32 msgid "Search" msgstr "खोजी" #: data/ui/HeaderBar.ui:50 msgid "Back" msgstr "पछाडि" #: data/ui/help-overlay.ui:11 msgctxt "shortcut window" msgid "General" msgstr "सामान्य" #: data/ui/help-overlay.ui:14 msgctxt "shortcut window" msgid "Close window" msgstr "सञ्झ्याल बन्द गर्नुहोस्" #: data/ui/help-overlay.ui:20 msgctxt "shortcut window" msgid "Search" msgstr "खोज" #: data/ui/help-overlay.ui:26 msgctxt "shortcut window" msgid "Help" msgstr "मद्दत" #: data/ui/help-overlay.ui:32 msgctxt "shortcut window" msgid "Shortcuts" msgstr "सर्टकटहरू" #: data/ui/help-overlay.ui:40 msgctxt "shortcut window" msgid "Playback" msgstr "प्लेब्याक" #: data/ui/help-overlay.ui:43 msgctxt "shortcut window" msgid "Play/Pause" msgstr "प्ले/पज गर्नुहोस्" #: data/ui/help-overlay.ui:49 msgctxt "shortcut window" msgid "Next song" msgstr "अर्को गीत" #: data/ui/help-overlay.ui:55 msgctxt "shortcut window" msgid "Previous song" msgstr "_अघिल्लो गीत" #: data/ui/help-overlay.ui:61 msgctxt "shortcut window" msgid "Toggle repeat" msgstr "दोहोर्याउने टगल गर्नुहोस्" #: data/ui/help-overlay.ui:67 msgctxt "shortcut window" msgid "Toggle shuffle" msgstr "फेरबदल टगल गर्नुहोस्" #: data/ui/help-overlay.ui:75 msgctxt "shortcut window" msgid "Navigation" msgstr "नेभिगेशन" #: data/ui/help-overlay.ui:78 msgctxt "shortcut window" msgid "Go to Albums" msgstr "एल्बममा जानुहोस्" #: data/ui/help-overlay.ui:84 msgctxt "shortcut window" msgid "Go to Artists" msgstr "कलाकारहरू मा जानुहोस्" #: data/ui/help-overlay.ui:90 msgctxt "shortcut window" msgid "Go to Songs" msgstr "गीतहरूमा जानुहोस्" #: data/ui/help-overlay.ui:96 msgctxt "shortcut window" msgid "Go to Playlists" msgstr "बजाइने सुचिमा जानुहोस्" #: data/ui/help-overlay.ui:102 msgctxt "shortcut window" msgid "Go back" msgstr "पछाडी जानुहोस्" #: data/ui/LastfmDialog.ui:21 msgid "" "Last.fm is a music discovery service that gives you personalised recommendations based " "on the music you listen to." msgstr "" "Last.fm एउटा सङ्गीत आविष्कार सेवा हो जसले तपाईँले सुन्नुभएको सङ्गीतको आधारमा व्यक्तिगत सिफारिस दिन्छ।" #: data/ui/LastfmDialog.ui:31 gnomemusic/widgets/lastfmdialog.py:57 msgid "Music Reporting Not Setup" msgstr "सङ्गीत रिपोर्टिङ सेटअप छैन" #: data/ui/LastfmDialog.ui:44 gnomemusic/widgets/lastfmdialog.py:60 msgid "Login to your Last.fm account to report your music listening." msgstr "तपाईँको सङ्गीत सुन्न प्रतिवेदन गर्न तपाईँको Last.fm खातामा लगइन गर्नुहोस् ।" #: data/ui/LastfmDialog.ui:55 gnomemusic/widgets/lastfmdialog.py:58 msgid "Login" msgstr "लगइन" #: data/ui/PlayerToolbar.ui:74 msgid "Previous" msgstr "अघिल्लो" #: data/ui/PlayerToolbar.ui:106 msgid "Next" msgstr "पछिल्लो" #: data/ui/PlaylistControls.ui:9 msgid "_Delete" msgstr "मेट्नुहोस्" #: data/ui/PlaylistControls.ui:13 msgid "_Rename…" msgstr "पुन: नामाकरण गर्नुहोस्…" #: data/ui/PlaylistControls.ui:28 msgid "Playlist Name" msgstr "बजाउने सूची नाम" #: data/ui/PlaylistControls.ui:62 msgid "_Done" msgstr "गरियो" #: data/ui/PlaylistDialog.ui:52 msgid "Enter a name for your first playlist" msgstr "तपाईँको पहिलो बजाउने सूचीका लागि नाम प्रविष्ट गर्नुहोस्" #: data/ui/PlaylistDialog.ui:77 msgid "C_reate" msgstr "सिर्जना गर्नुहोस्" #: data/ui/PlaylistDialog.ui:146 msgid "New Playlist…" msgstr "नया बजाउने सूची…" #: data/ui/PlaylistDialog.ui:161 msgid "Add" msgstr "थप्नुहोस्" #: data/ui/PlaylistDialog.ui:202 msgid "Add to Playlist" msgstr "बजाइने सुचिमा थप्नुहोस्" #: data/ui/PlaylistDialog.ui:222 msgid "_Add" msgstr "थप्नुहोस्" #: data/ui/SearchView.ui:33 gnomemusic/views/artistsview.py:51 msgid "Artists" msgstr "कलाकारहरू" #: data/ui/SearchView.ui:42 data/ui/SearchView.ui:84 msgid "View All" msgstr "सबै हेर्नुहोस्" #: data/ui/SearchView.ui:75 gnomemusic/views/albumsview.py:56 msgid "Albums" msgstr "एल्बमहरू" #: data/ui/SearchView.ui:117 gnomemusic/views/songsview.py:52 msgid "Songs" msgstr "गीतहरू" #: data/ui/SelectionBarMenuButton.ui:7 msgid "Select All" msgstr "सबै छान्नुहोस्" #: data/ui/SelectionBarMenuButton.ui:11 msgid "Select None" msgstr "कुनै पनि चयन नगर्नुहोस्" #: data/ui/SelectionBarMenuButton.ui:19 gnomemusic/widgets/headerbar.py:69 msgid "Click on items to select them" msgstr "वस्तुहरू चयनका लागि क्लिक गर्नुहोस्" #: data/ui/SelectionToolbar.ui:8 msgid "_Add to Playlist" msgstr "बजाइने सुचिमा थप्नुहोस्" #: data/ui/SongWidgetMenu.ui:19 msgid "_Remove from Playlist" msgstr "बजाउने सूची हटाउनुहोस्" #: gnomemusic/about.py:238 msgid "The GNOME Project" msgstr "जिनोम परियोजना" #: gnomemusic/about.py:242 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Michael Terry https://launchpad.net/~mterry\n" " Yogesh Ojha https://launchpad.net/~yogeshojha\n" " sarojdhakal https://launchpad.net/~lotusnagarkot" #: gnomemusic/about.py:246 msgid "Copyright The GNOME Music Developers" msgstr "प्रतिलिपि अधिकार जिनोम सङ्गीत विकासकर्ताहरू" #: gnomemusic/about.py:249 msgid "Translated by" msgstr "अनुवाद" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:894 msgid "Most Played" msgstr "धेरै जसो बजाईने" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:948 msgid "Never Played" msgstr "कहिल्यै नबजेको" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1001 msgid "Recently Played" msgstr "हालै बजेको" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1064 msgid "Recently Added" msgstr "हालै थपेको" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1127 msgid "Favorite Songs" msgstr "मनपर्ने गीतहरू" #: gnomemusic/gstplayer.py:408 msgid "Unable to play the file" msgstr "फाइल बजाउन असक्षम" #: gnomemusic/gstplayer.py:414 msgid "_Find in {}" msgstr "{} फेला पार्नुहोस्" #. TRANSLATORS: separator for two codecs #: gnomemusic/gstplayer.py:424 msgid " and " msgstr " र " #. TRANSLATORS: separator for a list of codecs #: gnomemusic/gstplayer.py:427 msgid ", " msgstr ", " #: gnomemusic/gstplayer.py:429 msgid "{} is required to play the file, but is not installed." msgid_plural "{} are required to play the file, but are not installed." msgstr[0] "फाइल बजाउम {} आवश्यक छ, तर स्थापना गरिएको छैन ।" msgstr[1] "फाइल बजाउम {} आवश्यक छ, तर स्थापना गरिएको छैन ।" #: gnomemusic/inhibitsuspend.py:63 msgid "Playing music" msgstr "सङ्गीत बजाइने" #. Translators: "shuffle" causes tracks to play in random order. #: gnomemusic/player.py:44 msgid "Shuffle" msgstr "फिट्नुहोस्" #: gnomemusic/player.py:45 msgid "Repeat Song" msgstr "गाना दोहोर्याउनुस्" #: gnomemusic/player.py:46 msgid "Repeat All" msgstr "सबै दोहोर्याउनुस्" #: gnomemusic/player.py:47 msgid "Shuffle/Repeat Off" msgstr "फिट्नुहोस्/दोहोर्याउनुस् बन्द" #: gnomemusic/playlisttoast.py:55 msgid "Playlist {} removed" msgstr "बजाउने सूची {} हटाइयो" #: gnomemusic/playlisttoast.py:56 gnomemusic/songtoast.py:65 msgid "Undo" msgstr "पुर्वस्थितिमा फर्काउनुहोस्" #: gnomemusic/songtoast.py:64 msgid "{} removed from {}" msgstr "{} बाट {} हटाइयो" #: gnomemusic/utils.py:92 msgid "Unknown album" msgstr "अज्ञात एल्बम" #: gnomemusic/utils.py:113 msgid "Unknown Artist" msgstr "अज्ञात कलाकार" #: gnomemusic/views/emptyview.py:65 msgid "Your XDG Music directory is not set." msgstr "तपाईँको XDG सङ्गीत डाइरेक्टरी सेट गरिएको छैन ।" #: gnomemusic/views/emptyview.py:72 msgid "Music Folder" msgstr "सङ्गीत फोल्डर" #. TRANSLATORS: This is a label to display a link to open user's music #. folder. {} will be replaced with the translated text 'Music folder' #: gnomemusic/views/emptyview.py:76 msgid "The contents of your {} will appear here." msgstr "तपाईँको {} का सामग्रीहरू यहाँ देखा पर्नेछन् ।" #: gnomemusic/views/emptyview.py:124 msgid "No Music Found" msgstr "सङ्गीत भेटिएन" #: gnomemusic/views/emptyview.py:125 msgid "Try a Different Search" msgstr "फरक खोज कोशिश गर्नुहोस्" #: gnomemusic/views/emptyview.py:129 msgid "GNOME Music could not connect to Tracker." msgstr "जिनोम सङ्गीत ट्र्याकरमा जडान गर्न सकेन ।" #: gnomemusic/views/emptyview.py:131 msgid "Your music files cannot be indexed without Tracker running." msgstr "ट्र्याकर नचलाईकन तपाईँको सङ्गीत फाइलहरू अनुक्रमण गर्न सकिँदैन ।" #: gnomemusic/views/emptyview.py:137 msgid "Your system Tracker version seems outdated." msgstr "तपाईँको प्रणाली ट्र्याकर संस्करण पुरानो जस्तो देखिन्छ ।" #: gnomemusic/views/emptyview.py:139 msgid "Music needs Tracker version 3.0.0 or higher." msgstr "सङ्गीतलाई ट्रयाकर संस्करण 3.0.0 वा उच्चको आवश्यकता पर्दछ।" #: gnomemusic/views/playlistsview.py:45 msgid "Playlists" msgstr "सुचिहरू" #: gnomemusic/views/searchview.py:304 msgid "Artists Results" msgstr "कलाकारहरू नतिजा" #: gnomemusic/views/searchview.py:318 msgid "Albums Results" msgstr "एल्बमहरूको नतिजा" #: gnomemusic/widgets/albumwidget.py:245 msgid "{} minute" msgid_plural "{} minutes" msgstr[0] "{} मिनेट" msgstr[1] "{} मिनेट" #: gnomemusic/widgets/discbox.py:75 msgid "Disc {}" msgstr "डिस्क {}" #: gnomemusic/widgets/headerbar.py:66 msgid "Selected {} song" msgid_plural "Selected {} songs" msgstr[0] "{} गीत छानियो" msgstr[1] "{} गीतहरू छानियो" #: gnomemusic/widgets/lastfmdialog.py:64 msgid "Your music listening is reported to Last.fm." msgstr "तपाईंको संगीत सुन्ने Last.fm मा रिपोर्ट गरिएको छ।" #: gnomemusic/widgets/lastfmdialog.py:66 msgid "Your music listening is not reported to Last.fm." msgstr "तपाईँको सङ्गीत सुन्ने Last.fm मा रिपोर्ट गरिएको छैन ।" #. TRANSLATORS: displays the username of the Last.fm account #: gnomemusic/widgets/lastfmdialog.py:70 msgid "Logged in as {}" msgstr "{} लगईन गरियो" #: gnomemusic/widgets/lastfmdialog.py:71 msgid "Configure" msgstr "कन्फिगर" #: gnomemusic/widgets/playertoolbar.py:167 msgid "Pause" msgstr "पज गर्नुहोस्" #: gnomemusic/widgets/playlistcontrols.py:130 msgid "{} Song" msgid_plural "{} Songs" msgstr[0] "{} गीत" msgstr[1] "{} गीतहरू" #~ msgid "A music player and management application for GNOME." #~ msgstr "जिनोम सङ्गीत बजाउने र व्यवस्थापन अनुप्रयोग." #~ msgid "Visit GNOME Music website" #~ msgstr "जिनोम सङ्गीत वेबसाइट हेर्नुहोस्" #~ msgid "The contents of your Music Folder will appear here" #~ msgstr "तपाईँको सङ्गीत फोल्डरको सामाग्री यहाँ देखा पर्नेछ ।" #~ msgid "Window position" #~ msgstr "सञ्झ्यालको स्थिति" #~ msgid "Window position (x and y)." #~ msgstr "सञ्झ्यालको स्थान(X र Y)." #, fuzzy #~ msgid "Search mode" #~ msgstr "मोड:" #, fuzzy #~ msgid "If true, the search bar is shown." #~ msgstr "विण्डो टास्कबारमा छैनभने ठीक " #~ msgid "GNOME Music" #~ msgstr "जिनोम सङ्गित" #~ msgid "Untitled" #~ msgstr "शीर्षक नदिएको" #~ msgid "Not playing" #~ msgstr "बजेन" #~ msgid "by %s, from %s" #~ msgstr "%s बाट %s देखि" #~ msgid "All" #~ msgstr "सबै" #~ msgid "Artist" #~ msgstr "कलाकार:" #~ msgid "Album" #~ msgstr "एल्बम:" #~ msgid "Track Title" #~ msgstr "गाना शीर्षक" #~ msgid "Local" #~ msgstr "स्थानीय" #~ msgid "Sources" #~ msgstr "स्रोत" #~ msgid "Match" #~ msgstr "सबै मिलाउनुहोस्" #~ msgid "Selected %d item" #~ msgid_plural "Selected %d items" #~ msgstr[0] "%d बस्तु चयन भयो" #~ msgstr[1] "%d बस्तु चयन भयो" #~ msgid "All Artists" #~ msgstr "कलाकारहरू" #~ msgid "%d min" #~ msgstr "%d min" #~ msgid "Empty" #~ msgstr "खाली" #, fuzzy #~ msgid "Running Length" #~ msgstr "चलिरहेको" #~ msgid "_New Playlist" #~ msgstr "नयाँ सूची" #~ msgid "_Quit" #~ msgstr "अन्त्य गर्नुहोस्" #~ msgid "Select Playlist" #~ msgstr "सूचिचयन गर्नुहोस्..." 07070100000105000081A400000000000000000000000166968E4E00005E2F000000000000000000000000000000000000001A00000000gnome-music-46.1/po/nl.po# Dutch translation for gnome-music. # # This file is distributed under the same license as the gnome-music package. # # Erwin Poeze , 2013, 2014. # Reinout van Schouwen , 2013. # Wouter Bolsterlee , 2013. # Hannie Dumoleyn , 2015. # Justin van Steijn , 2016. # Nathan Follens , 2018-2024. # msgid "" msgstr "" "Project-Id-Version: gnome-music\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-music/issues\n" "POT-Creation-Date: 2024-02-11 20:43+0000\n" "PO-Revision-Date: 2024-02-18 12:49+0100\n" "Last-Translator: Nathan Follens \n" "Language-Team: GNOME-NL https://matrix.to/#/#nl:gnome.org\n" "Language: nl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Poedit 3.4.2\n" "X-Project-Style: gnome\n" #: data/org.gnome.Music.appdata.xml.in.in:6 #: data/org.gnome.Music.desktop.in.in:3 data/ui/StatusNavigationPage.ui:4 #: gnomemusic/about.py:138 gnomemusic/application.py:59 gnomemusic/window.py:65 msgid "Music" msgstr "Muziek" #: data/org.gnome.Music.appdata.xml.in.in:7 #: data/org.gnome.Music.desktop.in.in:5 msgid "Play and organize your music collection" msgstr "Beluister en beheer uw muziekverzameling" #: data/org.gnome.Music.appdata.xml.in.in:9 msgid "An easy and pleasant way to play your music." msgstr "Een eenvoudige en aangename manier om uw muziek af te spelen." #: data/org.gnome.Music.appdata.xml.in.in:12 msgid "" "Find tracks in your local collection, use automatically generated playlists " "or curate a fresh one." msgstr "" "Vind nummers in uw lokale bibliotheek, maak gebruik van automatisch " "gegenereerde afspeellijsten of stel er zelf eentje samen." #. developer_name tag deprecated with Appstream 1.0 #: data/org.gnome.Music.appdata.xml.in.in:188 msgid "The GNOME Music developers" msgstr "De GNOME Muziek-ontwikkelaars" #: data/org.gnome.Music.desktop.in.in:4 msgid "Music Player" msgstr "Muziekspeler" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Music.desktop.in.in:13 msgid "Music;Player;" msgstr "Music;Player;Muziek;Speler;" #: data/org.gnome.Music.gschema.xml:12 msgid "Window size" msgstr "Venstergrootte" #: data/org.gnome.Music.gschema.xml:13 msgid "Window size (width and height)." msgstr "Venstergrootte (breedte en hoogte)." #: data/org.gnome.Music.gschema.xml:17 msgid "Window maximized" msgstr "Venster gemaximaliseerd" #: data/org.gnome.Music.gschema.xml:18 msgid "Window maximized state." msgstr "Venster is gemaximaliseerd." #: data/org.gnome.Music.gschema.xml:22 msgid "Playback repeat mode" msgstr "Modus herhaald afspelen" #. Translators: Don't translate allowed values, just the description in the brackets #: data/org.gnome.Music.gschema.xml:24 msgid "" "Value identifies whether to repeat or randomize playback through the " "collection. Allowed values are: “none” (repeat and shuffle are off), " "“song” (repeat current song), “all” (repeat playlist, no shuffle), " "“shuffle” (shuffle playlist, presumes repeat all)." msgstr "" "Waarde bepaalt of de verzameling herhaald of gehusseld afgespeeld moet " "worden. Toegestaan zijn: ‘none’ (uit), ‘song’ (huidige nummer herhalen), " "’all’ (afspeellijst herhalen), ‘shuffle’ (speellijst husselen en herhalen)." #: data/org.gnome.Music.gschema.xml:28 data/ui/PreferencesDialog.ui:27 msgid "Enable ReplayGain" msgstr "ReplayGain inschakelen" #: data/org.gnome.Music.gschema.xml:29 msgid "Enables or disables ReplayGain for albums" msgstr "Schakelt ReplayGain in of uit voor albums" #: data/org.gnome.Music.gschema.xml:33 msgid "Inhibit system suspend" msgstr "Pauzestand verhinderen" #: data/org.gnome.Music.gschema.xml:34 msgid "Enables or disables inhibiting system suspend while playing music" msgstr "" "Schakelt het verhinderen van de pauzestand van het systeem in of uit tijdens " "het afspelen van muziek" #: data/ui/AlbumsSearchNavigationPage.ui:5 data/ui/SearchView.ui:98 #: gnomemusic/views/albumsview.py:52 msgid "Albums" msgstr "Muziekalbum" #: data/ui/AlbumWidget.ui:84 data/ui/PlayerToolbar.ui:87 #: data/ui/PlaylistControls.ui:101 gnomemusic/widgets/playertoolbar.py:176 msgid "Play" msgstr "Afspelen" #: data/ui/AlbumWidget.ui:130 data/ui/PlaylistControls.ui:5 #: data/ui/SongWidgetMenu.ui:11 msgid "_Play" msgstr "Afs_pelen" #: data/ui/AlbumWidget.ui:134 msgid "Add to _Favorite Songs" msgstr "Toevoegen aan _favoriete nummers" #: data/ui/AlbumWidget.ui:138 data/ui/SongWidgetMenu.ui:15 msgid "_Add to Playlist…" msgstr "Toevoegen aan _afspeellijst…" #: data/ui/ArtistsSearchNavigationPage.ui:5 data/ui/SearchView.ui:41 #: gnomemusic/views/artistsview.py:51 msgid "Artists" msgstr "Artiesten" #: data/ui/HeaderBar.ui:14 msgid "Menu" msgstr "Menu" #: data/ui/HeaderBar.ui:22 data/ui/SearchHeaderBar.ui:12 msgid "Search" msgstr "Zoeken" #: data/ui/HeaderBar.ui:31 data/ui/PreferencesDialog.ui:4 msgid "Preferences" msgstr "Voorkeuren" #: data/ui/HeaderBar.ui:35 msgid "Keyboard Shortcuts" msgstr "Sneltoetsen" #: data/ui/HeaderBar.ui:39 msgid "Help" msgstr "Hulp" #: data/ui/HeaderBar.ui:43 msgid "About Music" msgstr "Over Muziek" #: data/ui/help-overlay.ui:11 msgctxt "shortcut window" msgid "General" msgstr "Algemeen" #: data/ui/help-overlay.ui:14 msgctxt "shortcut window" msgid "Close window" msgstr "Venster sluiten" #: data/ui/help-overlay.ui:20 msgctxt "shortcut window" msgid "Search" msgstr "Zoeken" #: data/ui/help-overlay.ui:26 msgctxt "shortcut window" msgid "Help" msgstr "Hulp" #: data/ui/help-overlay.ui:32 msgctxt "shortcut window" msgid "Shortcuts" msgstr "Sneltoetsen" #: data/ui/help-overlay.ui:40 msgctxt "shortcut window" msgid "Playback" msgstr "Afspelen" #: data/ui/help-overlay.ui:43 msgctxt "shortcut window" msgid "Play/Pause" msgstr "Afspelen/pauzeren" #: data/ui/help-overlay.ui:49 msgctxt "shortcut window" msgid "Next song" msgstr "Volgend nummer" #: data/ui/help-overlay.ui:55 msgctxt "shortcut window" msgid "Previous song" msgstr "Vorig nummer" #: data/ui/help-overlay.ui:61 msgctxt "shortcut window" msgid "Toggle repeat" msgstr "Herhalen in-/uitschakelen" #: data/ui/help-overlay.ui:67 msgctxt "shortcut window" msgid "Toggle shuffle" msgstr "Willekeurig in-/uitschakelen" #: data/ui/help-overlay.ui:75 msgctxt "shortcut window" msgid "Navigation" msgstr "Navigatie" #: data/ui/help-overlay.ui:78 msgctxt "shortcut window" msgid "Go to Albums" msgstr "Naar Albums gaan" #: data/ui/help-overlay.ui:84 msgctxt "shortcut window" msgid "Go to Artists" msgstr "Naar Artiesten gaan" #: data/ui/help-overlay.ui:90 msgctxt "shortcut window" msgid "Go to Songs" msgstr "Naar Nummers gaan" #: data/ui/help-overlay.ui:96 msgctxt "shortcut window" msgid "Go to Playlists" msgstr "Naar Afspeellijsten gaan" #: data/ui/help-overlay.ui:102 msgctxt "shortcut window" msgid "Go back" msgstr "Teruggaan" #: data/ui/PlayerToolbar.ui:74 msgid "Previous" msgstr "Vorige" #: data/ui/PlayerToolbar.ui:106 msgid "Next" msgstr "Volgende" #: data/ui/PlaylistControls.ui:9 msgid "_Delete" msgstr "Verwij_deren" #: data/ui/PlaylistControls.ui:13 msgid "_Rename…" msgstr "He_rnoemen…" #: data/ui/PlaylistControls.ui:28 msgid "Playlist Name" msgstr "Afspeellijstnaam" #: data/ui/PlaylistControls.ui:62 msgid "_Done" msgstr "_Klaar" #: data/ui/PlaylistDialog.ui:16 msgid "Add to Playlist" msgstr "Toevoegen aan afspeellijst" #: data/ui/PlaylistDialog.ui:27 msgid "_Cancel" msgstr "_Annuleren" #: data/ui/PlaylistDialog.ui:36 msgid "_Add" msgstr "_Toevoegen" #: data/ui/PlaylistDialog.ui:91 msgid "Enter a name for your first playlist" msgstr "Voer een naam in voor uw eerste afspeellijst" #: data/ui/PlaylistDialog.ui:116 msgid "C_reate" msgstr "_Maken" #: data/ui/PlaylistDialog.ui:177 msgid "New Playlist…" msgstr "Nieuwe afspeellijst…" #: data/ui/PlaylistDialog.ui:189 msgid "Add" msgstr "Toevoegen" #: data/ui/PreferencesDialog.ui:9 msgid "Player Settings" msgstr "Afspeelinstellingen" #: data/ui/PreferencesDialog.ui:12 msgid "Repeat Mode" msgstr "Herhaalmodus" #: data/ui/PreferencesDialog.ui:16 msgid "None" msgstr "Geen" #: data/ui/PreferencesDialog.ui:17 msgid "Song" msgstr "Nummer" #: data/ui/PreferencesDialog.ui:18 msgid "All" msgstr "Alles" #: data/ui/PreferencesDialog.ui:19 gnomemusic/player.py:51 msgid "Shuffle" msgstr "Willekeurig" #: data/ui/PreferencesDialog.ui:28 msgid "Balance loudness between songs if ReplayGain metadata is found" msgstr "" "Balanceer het geluidsniveau tussen nummers wanneer ReplayGain-metadata " "aanwezig is" #: data/ui/PreferencesDialog.ui:35 msgid "Power Settings" msgstr "Energie-instellingen" #: data/ui/PreferencesDialog.ui:38 msgid "Inhibit Suspend" msgstr "Pauzestand verhinderen" #: data/ui/PreferencesDialog.ui:39 msgid "Only while playing" msgstr "Enkel tijdens afspelen" #: data/ui/SearchView.ui:55 data/ui/SearchView.ui:112 msgid "View All" msgstr "Alles tonen" #: data/ui/SearchView.ui:154 msgid "Songs" msgstr "Nummers" #: data/ui/SongWidgetMenu.ui:19 msgid "_Remove from Playlist" msgstr "Ve_rwijderen uit afspeellijst" #: data/ui/StatusNavigationPage.ui:36 msgid "Welcome to Music" msgstr "Welkom bij Muziek" #: gnomemusic/about.py:140 msgid "The GNOME Project" msgstr "Het GNOME-project" #. Translators should localize the following string which #. will be displayed at the bottom of the about box to give #. credit to the translator(s). #: gnomemusic/about.py:146 msgid "translator-credits" msgstr "" "Erwin Poeze \n" "Reinout van Schouwen \n" "Wouter Bolsterlee \n" "Hannie Dumoleyn \n" "Justin van Steijn \n" "Nathan Follens \n" "Meer info over GNOME-NL https://nl.gnome.org" #: gnomemusic/about.py:150 msgid "© The GNOME Music Developers" msgstr "© de ontwikkelaars van GNOME Muziek" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:839 msgid "Most Played" msgstr "Meest afgespeeld" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:893 msgid "Never Played" msgstr "Nooit afgespeeld" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:946 msgid "Recently Played" msgstr "Onlangs afgespeeld" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1025 msgid "Recently Added" msgstr "Onlangs toegevoegd" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1088 msgid "Favorite Songs" msgstr "Favoriete nummers" #. TRANSLATORS: this is a playlist name indicating that the #. files are not tagged enough to be displayed in the albums #. or artists views. #: gnomemusic/grilowrappers/grltrackerplaylists.py:1142 msgid "Insufficiently Tagged" msgstr "Ontbrekende tags" #: gnomemusic/gstplayer.py:418 msgid "Unable to play the file" msgstr "Kan het bestand niet afspelen" #: gnomemusic/gstplayer.py:424 msgid "_Find in {}" msgstr "_Zoeken in {}" #. TRANSLATORS: separator for two codecs #: gnomemusic/gstplayer.py:434 msgid " and " msgstr " en " #. TRANSLATORS: separator for a list of codecs #: gnomemusic/gstplayer.py:437 msgid ", " msgstr ", " #: gnomemusic/gstplayer.py:439 msgid "{} is required to play the file, but is not installed." msgid_plural "{} are required to play the file, but are not installed." msgstr[0] "" "{} is vereist om het bestand af te spelen, maar is niet geïnstalleerd." msgstr[1] "" "{} zijn vereist om het bestand af te spelen, maar zijn niet geïnstalleerd." #: gnomemusic/inhibitsuspend.py:69 msgid "Playing music" msgstr "Muziek wordt afgespeeld" #. Translators: "shuffle" causes tracks to play in random order. #: gnomemusic/player.py:48 msgid "Shuffle/Repeat Off" msgstr "Willekeurig/herhalen uit" #: gnomemusic/player.py:49 msgid "Repeat Song" msgstr "Nummer herhalen" #: gnomemusic/player.py:50 msgid "Repeat All" msgstr "Alles herhalen" #: gnomemusic/playlisttoast.py:55 msgid "Playlist {} removed" msgstr "Afspeellijst {} verwijderd" #: gnomemusic/playlisttoast.py:56 gnomemusic/songtoast.py:65 msgid "Undo" msgstr "Ongedaan maken" #: gnomemusic/songtoast.py:64 msgid "{} removed from {}" msgstr "{} verwijderd uit {}" #: gnomemusic/utils.py:89 msgid "Unknown album" msgstr "Onbekend album" #: gnomemusic/utils.py:110 msgid "Unknown Artist" msgstr "Onbekende artiest" #: gnomemusic/views/playlistsview.py:45 msgid "Playlists" msgstr "Afspeellijsten" #: gnomemusic/views/searchview.py:220 msgid "No Search Started" msgstr "Geen zoekopdracht gestart" #: gnomemusic/views/searchview.py:222 msgid "Use the searchbar to start searching for albums, artists or songs" msgstr "Gebruik de zoekbalk om te zoeken naar albums, artiesten of nummers" #: gnomemusic/views/searchview.py:226 msgid "No Results Found" msgstr "Geen resultaten gevonden" #: gnomemusic/views/searchview.py:228 msgid "Try a different search" msgstr "Probeer een andere zoekopdracht" #: gnomemusic/widgets/albumwidget.py:230 msgid "{} minute" msgid_plural "{} minutes" msgstr[0] "{} minuut" msgstr[1] "{} minuten" #: gnomemusic/widgets/discbox.py:74 msgid "Disc {}" msgstr "Schijf {}" #: gnomemusic/widgets/playertoolbar.py:173 msgid "Pause" msgstr "Pauzeren" #: gnomemusic/widgets/playlistcontrols.py:130 msgid "{} Song" msgid_plural "{} Songs" msgstr[0] "{} nummer" msgstr[1] "{} nummers" #: gnomemusic/widgets/searchheaderbar.py:50 msgid "Search songs, artists and albums" msgstr "Zoek naar nummers, artiesten en albums" #. noqa: F841 #: gnomemusic/widgets/songwidgetmenu.py:94 msgid "_Open Location" msgstr "Locatie _openen" #. TRANSLATORS: These are verbs, to (un)mark something as a #. favorite. #: gnomemusic/widgets/startoggle.py:36 msgid "Unstar" msgstr "Verwijderen uit favorieten" #: gnomemusic/widgets/startoggle.py:36 msgid "Star" msgstr "Toevoegen aan favorieten" #: gnomemusic/widgets/statusnavigationpage.py:51 msgid "Your XDG Music directory is not set." msgstr "Uw XDG-muziekmap is niet ingesteld." #: gnomemusic/widgets/statusnavigationpage.py:58 msgid "Music Folder" msgstr "Muziekmap" #. TRANSLATORS: This is a label to display a link to open user's music #. folder. {} will be replaced with the translated text 'Music folder' #: gnomemusic/widgets/statusnavigationpage.py:66 msgid "The contents of your {} will appear here." msgstr "De inhoud van uw {} zal hier verschijnen." #: gnomemusic/widgets/statusnavigationpage.py:116 msgid "No Music Found" msgstr "Geen muziek gevonden" #: gnomemusic/widgets/statusnavigationpage.py:117 msgid "Try a Different Search" msgstr "Probeer een andere zoekopdracht" #: gnomemusic/widgets/statusnavigationpage.py:121 msgid "GNOME Music could not connect to Tracker." msgstr "GNOME Muziek kon geen verbinding maken met Tracker." #: gnomemusic/widgets/statusnavigationpage.py:123 msgid "Your music files cannot be indexed without Tracker running." msgstr "" "Uw muziekbestanden kunnen niet geïndexeerd worden zonder dat Tracker wordt " "uitgevoerd." #: gnomemusic/widgets/statusnavigationpage.py:129 msgid "Your system Tracker version seems outdated." msgstr "Uw versie van Tracker is verouderd." #: gnomemusic/widgets/statusnavigationpage.py:131 msgid "Music needs Tracker version 3.0.0 or higher." msgstr "Muziek vereist versie 3.0.0 of hoger van Tracker." #~ msgid "Report music history to Last.fm" #~ msgstr "Luistergeschiedenis doorgeven aan Last.fm" #~ msgid "" #~ "Enables or disables sending scrobbles and the “currently playing” info to " #~ "Last.fm." #~ msgstr "" #~ "Schakelt het verzenden van scrobbles en de ‘Luistert nu naar’-informatie " #~ "naar Last.fm in of uit." #~ msgid "Last.fm Account" #~ msgstr "Last.fm-account" #~ msgid "Report Music Listening" #~ msgstr "Luistergeschiedenis doorgeven" #~ msgid "_Help" #~ msgstr "_Hulp" #~ msgid "Select" #~ msgstr "Selecteren" #~ msgid "Back" #~ msgstr "Terug" #~ msgid "" #~ "Last.fm is a music discovery service that gives you personalised " #~ "recommendations based on the music you listen to." #~ msgstr "" #~ "Last.fm is een muziekontdekkingsdienst die u gepersonaliseerde " #~ "aanbevelingen geeft op basis van de muziek die u beluistert." #~ msgid "Music Reporting Not Setup" #~ msgstr "Luistergeschiedenis doorgeven is niet ingesteld" #~ msgid "Login to your Last.fm account to report your music listening." #~ msgstr "" #~ "Meld u aan bij uw Last.fm-account om uw luistergeschiedenis door te geven." #~ msgid "Login" #~ msgstr "Aanmelden" #~ msgid "Select All" #~ msgstr "Alles selecteren" #~ msgid "Select None" #~ msgstr "Niets selecteren" #~ msgid "Click on items to select them" #~ msgstr "Klik op items om deze te selecteren" #~ msgid "_Add to Playlist" #~ msgstr "Toevoegen aan _afspeellijst" #~ msgid "Copyright The GNOME Music Developers" #~ msgstr "Copyright de GNOME Muziek-ontwikkelaars" #~ msgid "Translated by" #~ msgstr "Vertaald door" #~ msgid "Artists Results" #~ msgstr "Artiestresultaten" #~ msgid "Albums Results" #~ msgstr "Albumresultaten" #~ msgid "Selected {} song" #~ msgid_plural "Selected {} songs" #~ msgstr[0] "{} nummer geselecteerd" #~ msgstr[1] "{} nummers geselecteerd" #~ msgid "Your music listening is reported to Last.fm." #~ msgstr "Uw luistergeschiedenis wordt doorgegeven aan Last.fm." #~ msgid "Your music listening is not reported to Last.fm." #~ msgstr "Uw luistergeschiedenis wordt niet doorgegeven aan Last.fm." #~ msgid "Logged in as {}" #~ msgstr "Aangemeld als {}" #~ msgid "Configure" #~ msgstr "Configureren" #~ msgid "A music player and management application for GNOME." #~ msgstr "Een muziekspeler en beheertoepassing voor Gnome." #~ msgid "Visit GNOME Music website" #~ msgstr "Bezoek de Gnome Muziek-website" #~ msgid "" #~ "GNOME Music 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.\n" #~ "\n" #~ "GNOME Music 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.\n" #~ "\n" #~ "You should have received a copy of the GNU General Public License along " #~ "with GNOME Music; if not, write to the Free Software Foundation, Inc., 51 " #~ "Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ "\n" #~ "The GNOME Music authors hereby grant permission for non-GPL compatible " #~ "GStreamer plugins to be used and distributed together with GStreamer and " #~ "GNOME Music. This permission is above and beyond the permissions granted " #~ "by the GPL license by which GNOME Music is covered. If you modify this " #~ "code, you may extend this exception to your version of the code, but you " #~ "are not obligated to do so. If you do not wish to do so, delete this " #~ "exception statement from your version." #~ msgstr "" #~ "Gnome Muziek is vrije software; u mag het verder verspreiden en/of " #~ "wijzigen onder de voorwaarden van de GNU General Public License zoals " #~ "gepubliceerd door de Free Software Foundation, naar keuze ofwel onder " #~ "versie 2 ofwel onder een nieuwere versie van die licentie.\n" #~ "\n" #~ "Gnome Muziek wordt uitgegeven in de hoop dat het nuttig is, maar ZONDER " #~ "ENIGE GARANTIE; zelfs zonder de impliciete garantie van VERKOOPBAARHEID " #~ "of GESCHIKTHEID VOOR EEN BEPAALD DOEL. Zie de GNU General Public License " #~ "voor meer details.\n" #~ "\n" #~ "U zou een kopie van de GNU General Public Licence ontvangen moeten hebben " #~ "samen met Gnome Muziek; indien dit niet zo is, schrijf dan naar de Free " #~ "Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA " #~ "02110-1301 USA.\n" #~ "\n" #~ "De makers van Gnome Muziek verlenen hierbij toestemming om niet-GPL-" #~ "verenigbare GStreamer-plugins te gebruiken en te distribueren samen met " #~ "GStreamer en Gnome Muziek. Deze toestemming overstijgt en gaat verder dan " #~ "de toestemming verleend door de GPL-licentie waaronder Gnome Muziek " #~ "ressorteert. Als u deze code bewerkt kunt u deze uitzondering van " #~ "toepassing verklaren op uw versie van de code, maar u bent hiertoe niet " #~ "verplicht. Als u besluit de uitzondering niet van toepassing te " #~ "verklaring, verwijder dan deze verklaring uit uw versie." #~ msgid "The contents of your Music Folder will appear here" #~ msgstr "De inhoud van uw muziekmap zal hier verschijnen" #~ msgid "GNOME Music" #~ msgstr "Gnome Muziek" #~ msgid "Window position" #~ msgstr "Vensterpositie" #~ msgid "Window position (x and y)." #~ msgstr "Vensterpositie (x en y)." #~ msgid "Loading" #~ msgstr "Laden" #~ msgid "Add to Playlist…" #~ msgstr "Toevoegen aan afspeellijst…" #~ msgid "" #~ "An easy way to play your music. Automatically discover music on your " #~ "computer, the local network and internet services." #~ msgstr "" #~ "Een eenvoudige manier om uw muziek af te spelen. Ontdek automatisch " #~ "muziek op uw computer, op het lokale netwerk en bij internetdiensten." #~ msgid "" #~ "Find tracks in your local collection, get music from DLNA servers or try " #~ "something new with the Jamendo and Magnatune services." #~ msgstr "" #~ "Zoek nummers in uw lokale verzameling, haal muziek op van DLNA-servers of " #~ "probeer eens iets nieuws met de Jamendo- en Magnatune-diensten." #~ msgid "Inital state has been displayed" #~ msgstr "Initiële status is al weergegeven" #~ msgid "Set to true when initial state has been displayed" #~ msgstr "Inschakelen wanneer de initiële status al is weergegeven" #~ msgid "Released" #~ msgstr "Uitgegeven" #~ msgid "Running Length" #~ msgstr "Speelduur" #~ msgid "Composer" #~ msgstr "Componist" #~ msgctxt "context menu item" #~ msgid "Play" #~ msgstr "Afspelen" #~ msgid "Hey DJ" #~ msgstr "Hoi DJ" #~ msgid "Artist" #~ msgstr "Artiest" #~ msgid "Album" #~ msgstr "Album" #~ msgid "Track Title" #~ msgstr "Titel van het nummer" #~ msgid "Local" #~ msgstr "Lokaal" #~ msgid "Sources" #~ msgstr "Bronnen" #~ msgid "Match" #~ msgstr "Overeenkomst" #~ msgid "@icon@" #~ msgstr "@icon@" #~ msgid "Untitled" #~ msgstr "Naamloos" #~ msgid "Music is the new GNOME music playing application." #~ msgstr "Muziek is de nieuwe muziekspeler van Gnome." #~ msgid "org.gnome.Music" #~ msgstr "org.gnome.Music" #~ msgid "Search mode" #~ msgstr "Zoekmodus" #~ msgid "If true, the search bar is shown." #~ msgstr "Bij ‘true’ wordt de zoekbalk getoond." #~ msgid "Notifications mode" #~ msgstr "Notificatiemodus" #~ msgid "Enables or disables playback notifications" #~ msgstr "Schakelt afspeelnotificaties in of uit" #~ msgid "Selected %d item" #~ msgid_plural "Selected %d items" #~ msgstr[0] "%d item geselecteerd" #~ msgstr[1] "%d items geselecteerd" #~ msgid "%d min" #~ msgstr "%d min" #~ msgid "Empty" #~ msgstr "Leeg" #~ msgid "_Quit" #~ msgstr "_Afsluiten" #~ msgid "Select Playlist" #~ msgstr "Afspeellijst selecteren" #~ msgid "the|a|an" #~ msgstr "the|a|an|de|het|een" #~ msgid "Max chars to display in track name on Artist view" #~ msgstr "" #~ "Maximum aantal weer te geven tekens in de naam van het nummer in " #~ "artiestweergave" #~ msgid "" #~ "This setting modifies the amount of chars for track title on Artist view " #~ "before its been ellipsized. Set this to -1 to disable" #~ msgstr "" #~ "Deze instelling wijzigt het aantal tekens dat wordt weergegeven in de " #~ "titel van het nummer in artiestweergave voor deze wordt afgekort. Stel in " #~ "als -1 om uit te schakelen" #~ msgid "the a an" #~ msgstr "the de het een a an" #~ msgid "All Artists" #~ msgstr "Alle artiesten" #~ msgid "Not playing" #~ msgstr "Afspelen gestopt" #~ msgid "by %s, from %s" #~ msgstr "door %s, van %s" 07070100000106000081A400000000000000000000000166968E4E00005B69000000000000000000000000000000000000001A00000000gnome-music-46.1/po/oc.po# Occitan translation for gnome-music. # Copyright (C) 2013 gnome-music's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-music package. # Cédric Valmary (totenoc.eu) , 2016, 2017. msgid "" msgstr "" "Project-Id-Version: gnome-music master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-music/issues\n" "POT-Creation-Date: 2024-02-11 20:43+0000\n" "PO-Revision-Date: 2024-03-09 23:08+0100\n" "Last-Translator: Quentin PAGÈS\n" "Language-Team: Tot En Òc\n" "Language: oc\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "X-Generator: Poedit 3.4.2\n" "X-Project-Style: gnome\n" #: data/org.gnome.Music.appdata.xml.in.in:6 #: data/org.gnome.Music.desktop.in.in:3 data/ui/StatusNavigationPage.ui:4 #: gnomemusic/about.py:138 gnomemusic/application.py:59 gnomemusic/window.py:65 msgid "Music" msgstr "Musica" #: data/org.gnome.Music.appdata.xml.in.in:7 #: data/org.gnome.Music.desktop.in.in:5 msgid "Play and organize your music collection" msgstr "Jogar e organizar vòstra discotèca" #: data/org.gnome.Music.appdata.xml.in.in:9 msgid "An easy and pleasant way to play your music." msgstr "Un biais simple e agradiu de jogar vòstra musica." #: data/org.gnome.Music.appdata.xml.in.in:12 msgid "" "Find tracks in your local collection, use automatically generated playlists " "or curate a fresh one." msgstr "" "Trobatz las pistas de vòstra colleccion locala, utilizatz las listas " "d’escota generadas automaticament o creatz-ne una novèla." #. developer_name tag deprecated with Appstream 1.0 #: data/org.gnome.Music.appdata.xml.in.in:188 msgid "The GNOME Music developers" msgstr "Los desvolopaires de l'aplicacion Musica de GNOME" #: data/org.gnome.Music.desktop.in.in:4 msgid "Music Player" msgstr "Lector de musica" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Music.desktop.in.in:13 msgid "Music;Player;" msgstr "musica;lector;" #: data/org.gnome.Music.gschema.xml:12 msgid "Window size" msgstr "Talha de la fenèstra" #: data/org.gnome.Music.gschema.xml:13 msgid "Window size (width and height)." msgstr "La talha de la fenèstra (en largor e nautor)." #: data/org.gnome.Music.gschema.xml:17 msgid "Window maximized" msgstr "Fenèstra maximizada" #: data/org.gnome.Music.gschema.xml:18 msgid "Window maximized state." msgstr "Estat maximizat de la fenèstra." #: data/org.gnome.Music.gschema.xml:22 msgid "Playback repeat mode" msgstr "Mòde de lectura repeticion" #. Translators: Don't translate allowed values, just the description in the brackets #: data/org.gnome.Music.gschema.xml:24 msgid "" "Value identifies whether to repeat or randomize playback through the " "collection. Allowed values are: “none” (repeat and shuffle are off), " "“song” (repeat current song), “all” (repeat playlist, no shuffle), " "“shuffle” (shuffle playlist, presumes repeat all)." msgstr "" "Valor qu'indican se cal repetir o rendre aleatòria la lectura de las musicas " "de la discotèca. Las valors possiblas son : « none » (pas cap, la repeticion " "e la mescla son desactivats), « song » (repetís lo tròç actual), « all " "» (rejòga tota la lista de lectura, sens mescla), « shuffle » (mescla la " "lista de lectura, en supausant de tot rejogar)." #: data/org.gnome.Music.gschema.xml:28 data/ui/PreferencesDialog.ui:27 msgid "Enable ReplayGain" msgstr "Activar ReplayGain" #: data/org.gnome.Music.gschema.xml:29 msgid "Enables or disables ReplayGain for albums" msgstr "Activa o desactiva ReplayGain pels albums" #: data/org.gnome.Music.gschema.xml:33 msgid "Inhibit system suspend" msgstr "" "Permet a las aplicacions d'empachar l'ivernacion automatica del sistèma" #: data/org.gnome.Music.gschema.xml:34 msgid "Enables or disables inhibiting system suspend while playing music" msgstr "" "Activa o desactiva l’inibicion de la velha del sistèma quand la musica jòga" #: data/ui/AlbumsSearchNavigationPage.ui:5 data/ui/SearchView.ui:98 #: gnomemusic/views/albumsview.py:52 msgid "Albums" msgstr "Albums" #: data/ui/AlbumWidget.ui:84 data/ui/PlayerToolbar.ui:87 #: data/ui/PlaylistControls.ui:101 gnomemusic/widgets/playertoolbar.py:176 msgid "Play" msgstr "Lectura" #: data/ui/AlbumWidget.ui:130 data/ui/PlaylistControls.ui:5 #: data/ui/SongWidgetMenu.ui:11 msgid "_Play" msgstr "_Legir" #: data/ui/AlbumWidget.ui:134 msgid "Add to _Favorite Songs" msgstr "Apondre als _favorits" #: data/ui/AlbumWidget.ui:138 data/ui/SongWidgetMenu.ui:15 msgid "_Add to Playlist…" msgstr "_Apondre a la lista de lectura…" #: data/ui/ArtistsSearchNavigationPage.ui:5 data/ui/SearchView.ui:41 #: gnomemusic/views/artistsview.py:51 msgid "Artists" msgstr "Artistas" #: data/ui/HeaderBar.ui:14 msgid "Menu" msgstr "Menú" #: data/ui/HeaderBar.ui:22 data/ui/SearchHeaderBar.ui:12 msgid "Search" msgstr "Recercar" #: data/ui/HeaderBar.ui:31 data/ui/PreferencesDialog.ui:4 msgid "Preferences" msgstr "Preferéncias" #: data/ui/HeaderBar.ui:35 msgid "Keyboard Shortcuts" msgstr "Acorchis de clavièr" #: data/ui/HeaderBar.ui:39 msgid "Help" msgstr "Ajuda" #: data/ui/HeaderBar.ui:43 msgid "About Music" msgstr "A prepaus de Musica" #: data/ui/help-overlay.ui:11 msgctxt "shortcut window" msgid "General" msgstr "General" #: data/ui/help-overlay.ui:14 msgctxt "shortcut window" msgid "Close window" msgstr "Tampar la fenèstra" #: data/ui/help-overlay.ui:20 msgctxt "shortcut window" msgid "Search" msgstr "Recèrca" #: data/ui/help-overlay.ui:26 msgctxt "shortcut window" msgid "Help" msgstr "Ajuda" #: data/ui/help-overlay.ui:32 msgctxt "shortcut window" msgid "Shortcuts" msgstr "Acorchis" #: data/ui/help-overlay.ui:40 msgctxt "shortcut window" msgid "Playback" msgstr "Lectura" #: data/ui/help-overlay.ui:43 msgctxt "shortcut window" msgid "Play/Pause" msgstr "Lectura/Pausa" #: data/ui/help-overlay.ui:49 msgctxt "shortcut window" msgid "Next song" msgstr "Tròç seguent" #: data/ui/help-overlay.ui:55 msgctxt "shortcut window" msgid "Previous song" msgstr "Tròç precedent" #: data/ui/help-overlay.ui:61 msgctxt "shortcut window" msgid "Toggle repeat" msgstr "Bascular la repeticion" #: data/ui/help-overlay.ui:67 msgctxt "shortcut window" msgid "Toggle shuffle" msgstr "Bascular la lectura aleatòri" #: data/ui/help-overlay.ui:75 msgctxt "shortcut window" msgid "Navigation" msgstr "Navigacion" #: data/ui/help-overlay.ui:78 msgctxt "shortcut window" msgid "Go to Albums" msgstr "Anar als albums" #: data/ui/help-overlay.ui:84 msgctxt "shortcut window" msgid "Go to Artists" msgstr "Anar als artistas" #: data/ui/help-overlay.ui:90 msgctxt "shortcut window" msgid "Go to Songs" msgstr "Anar a las cançons" #: data/ui/help-overlay.ui:96 msgctxt "shortcut window" msgid "Go to Playlists" msgstr "Anar a las listas de lectura" #: data/ui/help-overlay.ui:102 msgctxt "shortcut window" msgid "Go back" msgstr "Tornar en arrièr" #: data/ui/PlayerToolbar.ui:74 msgid "Previous" msgstr "Precedent" #: data/ui/PlayerToolbar.ui:106 msgid "Next" msgstr "Seguent" #: data/ui/PlaylistControls.ui:9 msgid "_Delete" msgstr "_Suprimir" #: data/ui/PlaylistControls.ui:13 msgid "_Rename…" msgstr "_Renomenar…" #: data/ui/PlaylistControls.ui:28 msgid "Playlist Name" msgstr "Nom de la lista de lectura" #: data/ui/PlaylistControls.ui:62 msgid "_Done" msgstr "_Acabat" #: data/ui/PlaylistDialog.ui:16 msgid "Add to Playlist" msgstr "Apondre a la lista de lectura" #: data/ui/PlaylistDialog.ui:27 msgid "_Cancel" msgstr "A_nullar" #: data/ui/PlaylistDialog.ui:36 msgid "_Add" msgstr "_Apondre" #: data/ui/PlaylistDialog.ui:91 msgid "Enter a name for your first playlist" msgstr "Sasissètz un nom per la primièra lista de lectura" #: data/ui/PlaylistDialog.ui:116 msgid "C_reate" msgstr "C_rear" #: data/ui/PlaylistDialog.ui:177 msgid "New Playlist…" msgstr "Lista de lectura novèla…" #: data/ui/PlaylistDialog.ui:189 msgid "Add" msgstr "Apondre" #: data/ui/PreferencesDialog.ui:9 msgid "Player Settings" msgstr "Paramètres del lector" #: data/ui/PreferencesDialog.ui:12 msgid "Repeat Mode" msgstr "Mòde repeticion" #: data/ui/PreferencesDialog.ui:16 msgid "None" msgstr "Pas cap" #: data/ui/PreferencesDialog.ui:17 msgid "Song" msgstr "Cançon" #: data/ui/PreferencesDialog.ui:18 msgid "All" msgstr "Tot" #: data/ui/PreferencesDialog.ui:19 gnomemusic/player.py:51 msgid "Shuffle" msgstr "Mesclar" #: data/ui/PreferencesDialog.ui:28 msgid "Balance loudness between songs if ReplayGain metadata is found" msgstr "" "Equilibrar lo volum entre cançons se la metadonadas ReplayGain es trobada" #: data/ui/PreferencesDialog.ui:35 msgid "Power Settings" msgstr "Opcions d'alimentacion" #: data/ui/PreferencesDialog.ui:38 msgid "Inhibit Suspend" msgstr "Empachar la velha" #: data/ui/PreferencesDialog.ui:39 msgid "Only while playing" msgstr "Sonque pendent la lectura" #: data/ui/SearchView.ui:55 data/ui/SearchView.ui:112 msgid "View All" msgstr "Afichar tot" #: data/ui/SearchView.ui:154 msgid "Songs" msgstr "Tròces" #: data/ui/SongWidgetMenu.ui:19 msgid "_Remove from Playlist" msgstr "_Suprimir de la lista de lectura" #: data/ui/StatusNavigationPage.ui:36 msgid "Welcome to Music" msgstr "La benvenguda a Musica" #: gnomemusic/about.py:140 msgid "The GNOME Project" msgstr "Lo projècte GNOME" #. Translators should localize the following string which #. will be displayed at the bottom of the about box to give #. credit to the translator(s). #: gnomemusic/about.py:146 msgid "translator-credits" msgstr "Quentin PAGÈS" #: gnomemusic/about.py:150 msgid "© The GNOME Music Developers" msgstr "© Los desvolopaires de l'aplicacion Musica de GNOME" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:839 msgid "Most Played" msgstr "Los mai jogats" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:893 msgid "Never Played" msgstr "Pas jamai jogats" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:946 msgid "Recently Played" msgstr "Jogats recentament" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1025 msgid "Recently Added" msgstr "Aponduts recentament" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1088 msgid "Favorite Songs" msgstr "Tròces favorits" #. TRANSLATORS: this is a playlist name indicating that the #. files are not tagged enough to be displayed in the albums #. or artists views. #: gnomemusic/grilowrappers/grltrackerplaylists.py:1142 msgid "Insufficiently Tagged" msgstr "Pas pro d’etiquetas" #: gnomemusic/gstplayer.py:418 msgid "Unable to play the file" msgstr "Impossible de legir lo fichièr" #: gnomemusic/gstplayer.py:424 msgid "_Find in {}" msgstr "_Trobar dins {}" #. TRANSLATORS: separator for two codecs #: gnomemusic/gstplayer.py:434 msgid " and " msgstr " e " #. TRANSLATORS: separator for a list of codecs #: gnomemusic/gstplayer.py:437 msgid ", " msgstr ", " #: gnomemusic/gstplayer.py:439 msgid "{} is required to play the file, but is not installed." msgid_plural "{} are required to play the file, but are not installed." msgstr[0] "{} es necessari per legir lo fichièr, mas es pas installat." msgstr[1] "{} son necessaris per legir lo fichièr, mas son pas installats." #: gnomemusic/inhibitsuspend.py:69 msgid "Playing music" msgstr "Lectura" #. Translators: "shuffle" causes tracks to play in random order. #: gnomemusic/player.py:48 msgid "Shuffle/Repeat Off" msgstr "Desactivar mesclar/repetir" #: gnomemusic/player.py:49 msgid "Repeat Song" msgstr "Repetir lo tròç" #: gnomemusic/player.py:50 msgid "Repeat All" msgstr "Repetir tot" #: gnomemusic/playlisttoast.py:55 msgid "Playlist {} removed" msgstr "Lista de lectura {} suprimida" #: gnomemusic/playlisttoast.py:56 gnomemusic/songtoast.py:65 msgid "Undo" msgstr "Anullar" #: gnomemusic/songtoast.py:64 msgid "{} removed from {}" msgstr "{} tirat de {}" #: gnomemusic/utils.py:89 msgid "Unknown album" msgstr "Album desconegut" #: gnomemusic/utils.py:110 msgid "Unknown Artist" msgstr "Artista desconegut" #: gnomemusic/views/playlistsview.py:45 msgid "Playlists" msgstr "Listas de lectura" #: gnomemusic/views/searchview.py:220 msgid "No Search Started" msgstr "Cap de recèrca pas començada" #: gnomemusic/views/searchview.py:222 msgid "Use the searchbar to start searching for albums, artists or songs" msgstr "" "Utilizatz la barra de recèrca per començar de cercar d’albums, artistas o " "cançons" #: gnomemusic/views/searchview.py:226 msgid "No Results Found" msgstr "Cap de resultat pas trobat" #: gnomemusic/views/searchview.py:228 msgid "Try a different search" msgstr "Ensajatz una recèrca diferenta" #: gnomemusic/widgets/albumwidget.py:230 msgid "{} minute" msgid_plural "{} minutes" msgstr[0] "{} minuta" msgstr[1] "{} minutas" #: gnomemusic/widgets/discbox.py:74 msgid "Disc {}" msgstr "Disc {}" #: gnomemusic/widgets/playertoolbar.py:173 msgid "Pause" msgstr "Pausa" #: gnomemusic/widgets/playlistcontrols.py:130 msgid "{} Song" msgid_plural "{} Songs" msgstr[0] "{} cançon" msgstr[1] "{} cançons" #: gnomemusic/widgets/searchheaderbar.py:50 msgid "Search songs, artists and albums" msgstr "Recercar de cançons, artistas e albums" #. noqa: F841 #: gnomemusic/widgets/songwidgetmenu.py:94 msgid "_Open Location" msgstr "_Dobrir un l’emplaçament" #. TRANSLATORS: These are verbs, to (un)mark something as a #. favorite. #: gnomemusic/widgets/startoggle.py:36 msgid "Unstar" msgstr "Tirar dels favorits" #: gnomemusic/widgets/startoggle.py:36 msgid "Star" msgstr "Marcar coma favorit" #: gnomemusic/widgets/statusnavigationpage.py:51 msgid "Your XDG Music directory is not set." msgstr "Lo repertòri de musica XDG es pas definit." #: gnomemusic/widgets/statusnavigationpage.py:58 msgid "Music Folder" msgstr "Dorsièr de musica" #. TRANSLATORS: This is a label to display a link to open user's music #. folder. {} will be replaced with the translated text 'Music folder' #: gnomemusic/widgets/statusnavigationpage.py:66 msgid "The contents of your {} will appear here." msgstr "Lo contengut de vòstre {} s'aficharà aicí." #: gnomemusic/widgets/statusnavigationpage.py:116 msgid "No Music Found" msgstr "Cap de musica pas trobada" #: gnomemusic/widgets/statusnavigationpage.py:117 msgid "Try a Different Search" msgstr "Ensajatz una recèrca diferenta" #: gnomemusic/widgets/statusnavigationpage.py:121 msgid "GNOME Music could not connect to Tracker." msgstr "Musica de GNOME a pas pogut se connectar a Tracker." #: gnomemusic/widgets/statusnavigationpage.py:123 msgid "Your music files cannot be indexed without Tracker running." msgstr "" "Vòstres fichièrs musicals pòdon pas s'indexar sens aver Tracker en execucion." #: gnomemusic/widgets/statusnavigationpage.py:129 msgid "Your system Tracker version seems outdated." msgstr "La version de Tracker de vòstre sistèma sembla despassada." #: gnomemusic/widgets/statusnavigationpage.py:131 msgid "Music needs Tracker version 3.0.0 or higher." msgstr "Musica requerís Tracker version 3.0.0 o superiora." #~ msgid "Report music history to Last.fm" #~ msgstr "Enviar l'istoric musical a Last.fm" #~ msgid "" #~ "Enables or disables sending scrobbles and the “currently playing” info to " #~ "Last.fm." #~ msgstr "" #~ "Activa o desactiva lo mandadís de scrobbles e d’informacion « " #~ "en lectura » a Last.fm." #~ msgid "Last.fm Account" #~ msgstr "Compte Last.fm" #~ msgid "Report Music Listening" #~ msgstr "Senhalar las escotas musicalas" #~ msgid "_Help" #~ msgstr "A_juda" #~ msgid "Select" #~ msgstr "Seleccionar" #~ msgid "Back" #~ msgstr "Retorn" #~ msgid "" #~ "Last.fm is a music discovery service that gives you personalised " #~ "recommendations based on the music you listen to." #~ msgstr "" #~ "Last.fm es un servici de descobèrta de musica que vos dòna de " #~ "recomandacions personalizadas segon la musica qu’escotatz." #~ msgid "Music Reporting Not Setup" #~ msgstr "Lo senhalament musical es pas configurat" #~ msgid "Login to your Last.fm account to report your music listening." #~ msgstr "" #~ "Connectatz-vos a vòstre compte Last.fm per enviar vòstras escotas " #~ "musicalas." #~ msgid "Login" #~ msgstr "Identificant" #~ msgid "Select All" #~ msgstr "Seleccionar tot" #~ msgid "Select None" #~ msgstr "Seleccionar pas res" #~ msgid "Click on items to select them" #~ msgstr "Clicatz suls elements per los seleccionar" #~ msgid "_Add to Playlist" #~ msgstr "_Apondre a la lista de lectura" #~ msgid "Copyright The GNOME Music Developers" #~ msgstr "Copyright Los desvolopaires de l'aplicacion Musica de GNOME" #~ msgid "Translated by" #~ msgstr "Traduch per" #~ msgid "Artists Results" #~ msgstr "Resultats artistas" #~ msgid "Albums Results" #~ msgstr "Resultats albums" #~ msgid "Selected {} song" #~ msgid_plural "Selected {} songs" #~ msgstr[0] "{} cançon seleccionada" #~ msgstr[1] "{} cançons seleccionadas" #~ msgid "Your music listening is reported to Last.fm." #~ msgstr "Vòstra escotas musicalas son senhaladas a Last.fm." #~ msgid "Your music listening is not reported to Last.fm." #~ msgstr "Vòstra escotas musicalas son senhaladas a Last.fm." #~ msgid "Logged in as {}" #~ msgstr "Connectat coma {}" #~ msgid "Configure" #~ msgstr "Configurar" #~ msgid "A music player and management application for GNOME." #~ msgstr "Un lector de musica e una aplicacion de gestion per GNOME." #~ msgid "Visit GNOME Music website" #~ msgstr "Visitar lo site Web de GNOME Musica" #~ msgid "" #~ "GNOME Music 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.\n" #~ "\n" #~ "GNOME Music 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.\n" #~ "\n" #~ "You should have received a copy of the GNU General Public License along " #~ "with GNOME Music; if not, write to the Free Software Foundation, Inc., 51 " #~ "Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ "\n" #~ "The GNOME Music authors hereby grant permission for non-GPL compatible " #~ "GStreamer plugins to be used and distributed together with GStreamer and " #~ "GNOME Music. This permission is above and beyond the permissions granted " #~ "by the GPL license by which GNOME Music is covered. If you modify this " #~ "code, you may extend this exception to your version of the code, but you " #~ "are not obligated to do so. If you do not wish to do so, delete this " #~ "exception statement from your version." #~ msgstr "" #~ "GNOME Musica es un logicial liure ; podètz lo redistribuir e/o lo " #~ "modificar al títol de las clausas de la Licéncia Publica Generala GNU, " #~ "tala coma publicada per la Free Software Foundation ; siá la version 2 de " #~ "la Licéncia, o (coma voldretz) una version ulteriora quina que foguèsse.\n" #~ "\n" #~ "Aqueste programa es distribuit dins l'esper que serà utile, mas SENS CAP " #~ "DE GARANTIDA ; sens la quita garantida implicita de COMERCIABILITAT o DE " #~ "CONFORMITAT A UNA UTILIZACION PARTICULARA. Vejatz la Licéncia Publica " #~ "Generala GNU per mai de detalhs.\n" #~ "\n" #~ "Deuriatz aver recebut un exemplar de la Licéncia Publica Generala GNU amb " #~ "aqueste programa ; se es pas lo cas, escrivètz a la Free Software " #~ "Foundation Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, " #~ "USA.\n" #~ "\n" #~ "Los autors de l'aplicacion Musica de GNOME acòrdan per la presenta " #~ "l'autorizacion d'utilizar d'empeutons GStreamer non compatibles amb la " #~ "licéncia GPL e de los distribuir conjuntament a GStreamer e a " #~ "l'aplicacion Musica de GNOME. Aquesta permission suplanta e va de delà de " #~ "las autorizacions acordadas per la licéncia GPL que cobrís l'aplicacion " #~ "Musica de GNOME. Se modificatz aqueste còdi, podètz espandir aquesta " #~ "autorizacion a vòstra version del còdi, mas i sètz pas obligats. Se o " #~ "desiratz pas, suprimissètz aquesta mencion d'excepcion de vòstra version." #~ msgid "The contents of your Music Folder will appear here" #~ msgstr "Lo contengut de vòstre dossièr Musica s'aficharà aicí" #~ msgid "GNOME Music" #~ msgstr "GNOME Musica" #~ msgid "Window position" #~ msgstr "Posicion de la fenèstra" #~ msgid "Window position (x and y)." #~ msgstr "La posicion de la fenèstra (en x e y)." #~ msgid "Loading" #~ msgstr "Cargament en cors" #~ msgid "Add to Playlist…" #~ msgstr "Apondre a la lista de lectura…" #~ msgid "Inital state has been displayed" #~ msgstr "L'estat initial es estat afichat" #~ msgid "Set to true when initial state has been displayed" #~ msgstr "Val « true » (verai) se l'estat inicial es estat afichat" #~ msgid "Released" #~ msgstr "Publicat" #~ msgid "Running Length" #~ msgstr "Durada" #~ msgid "Composer" #~ msgstr "Compositor" #~ msgctxt "context menu item" #~ msgid "Play" #~ msgstr "Lectura" #~ msgid "Hey DJ" #~ msgstr "È DJ" #~ msgid "Search mode" #~ msgstr "Mòde de recèrca" #~ msgid "If true, the search bar is shown." #~ msgstr "Se true (verai), la barra de recèrca s'aficha." #~ msgid "Notifications mode" #~ msgstr "Mòde de notificacions" #~ msgid "Enables or disables playback notifications" #~ msgstr "Activa o desactiva las notificacions de lectura" #~ msgid "Music is the new GNOME music playing application." #~ msgstr "Musica es la novèla aplicacion de lectura de musica de GNOME." #~ msgid "the|a|an" #~ msgstr "the|a|an|lo|la|l'|un|una" #~ msgid "Artist" #~ msgstr "Artistas" #~ msgid "Album" #~ msgstr "Albums" #~ msgid "Track Title" #~ msgstr "Títol del tròç" #~ msgid "Local" #~ msgstr "Locala" #~ msgid "Sources" #~ msgstr "Fonts" #~ msgid "Match" #~ msgstr "Correspondéncia" #~ msgid "Untitled" #~ msgstr "Sens títol" #~ msgid "Selected %d item" #~ msgid_plural "Selected %d items" #~ msgstr[0] "%d element es seleccionat" #~ msgstr[1] "%d elements son seleccionats" #~ msgid "%d min" #~ msgstr "%d min" #~ msgid "Empty" #~ msgstr "Void" #~ msgid "_Quit" #~ msgstr "_Quitar" #~ msgid "Max chars to display in track name on Artist view" #~ msgstr "" #~ "Nombre maximum de caractèrs d'afichar dins lo títol del tròç en mòde " #~ "vista per artista" #~ msgid "" #~ "This setting modifies the amount of chars for track title on Artist view " #~ "before its been ellipsized. Set this to -1 to disable" #~ msgstr "" #~ "Aqueste paramètre determina lo nombre de caractèrs dins lo títol del tròç " #~ "en mòde vista per artista abans que siá acorchit. Definissètz-lo a -1 per " #~ "lo desactivar." #~ msgid "the a an" #~ msgstr "the a an la lo lo les las" #~ msgid "All Artists" #~ msgstr "Totes los artistas" #~ msgid "Select Playlist" #~ msgstr "Seleccionar la lista de lectura" #~ msgid "Not playing" #~ msgstr "Pas de lectura en cors" #~ msgid "by %s, from %s" #~ msgstr "per %s, sus %s" 07070100000107000081A400000000000000000000000166968E4E00006F92000000000000000000000000000000000000001A00000000gnome-music-46.1/po/pa.po# Punjabi translation for gnome-music. # Copyright (C) 2013 gnome-music's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-music package. # # A S Alam , 2013, 2014, 2021, 2023. msgid "" msgstr "" "Project-Id-Version: gnome-music master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-music/issues\n" "POT-Creation-Date: 2023-07-04 07:49+0000\n" "PO-Revision-Date: 2023-09-01 19:48-0700\n" "Last-Translator: A S Alam \n" "Language-Team: Punjabi \n" "Language: pa\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-DamnedLies-Scope: partial\n" "X-Generator: Lokalize 23.04.3\n" #: data/org.gnome.Music.appdata.xml.in.in:6 #: data/org.gnome.Music.desktop.in.in:3 gnomemusic/about.py:243 #: gnomemusic/application.py:61 gnomemusic/window.py:71 msgid "Music" msgstr "ਸੰਗੀਤ" #: data/org.gnome.Music.appdata.xml.in.in:7 #: data/org.gnome.Music.desktop.in.in:5 msgid "Play and organize your music collection" msgstr "ਆਪਣੇ ਸੰਗੀਤ ਭੰਡਾਰ ਨੂੰ ਚਲਾਉ ਅਤੇ ਪਰਬੰਧ ਕਰੋ" #: data/org.gnome.Music.appdata.xml.in.in:9 msgid "An easy and pleasant way to play your music." msgstr "ਤੁਹਾਡੇ ਸੰਗੀਤ ਨੂੰ ਚਲਾਉਣ ਲਈ ਸਰਲ ਅਤੇ ਸੌਖਾ ਢੰਗ ਹੈ।" #: data/org.gnome.Music.appdata.xml.in.in:12 msgid "" "Find tracks in your local collection, use automatically generated playlists " "or curate a fresh one." msgstr "" #: data/org.gnome.Music.appdata.xml.in.in:182 msgid "The GNOME Music developers" msgstr "ਗਨੋਮ ਸੰਗੀਤ ਡਿਵੈਲਪਰ" #: data/org.gnome.Music.desktop.in.in:4 msgid "Music Player" msgstr "ਸੰਗੀਤ ਪਲੇਅਰ" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Music.desktop.in.in:13 msgid "Music;Player;" msgstr "ਸੰਗੀਤ;ਪਲੇਅਰ;" #: data/org.gnome.Music.gschema.xml:12 msgid "Window size" msgstr "ਵਿੰਡੋ ਆਕਾਰ" #: data/org.gnome.Music.gschema.xml:13 msgid "Window size (width and height)." msgstr "ਵਿੰਡੋ ਆਕਾਰ (ਚੌੜਾਈ ਅਤੇ ਉਚਾਈ)" #: data/org.gnome.Music.gschema.xml:17 msgid "Window maximized" msgstr "ਵਿੰਡੋ ਵੱਧੋ-ਵੱਧ ਕੀਤੀ" #: data/org.gnome.Music.gschema.xml:18 msgid "Window maximized state." msgstr "ਵਿੰਡੋ ਵੱਧੋ-ਵੱਧ ਆਕਾਰ ਸਥਿਤੀ।" #: data/org.gnome.Music.gschema.xml:22 msgid "Playback repeat mode" msgstr "ਪਲੇਅਬੈਕ ਦੁਹਰਾਓ ਢੰਗ" #. Translators: Don't translate allowed values, just the description in the brackets #: data/org.gnome.Music.gschema.xml:24 msgid "" "Value identifies whether to repeat or randomize playback through the " "collection. Allowed values are: “none” (repeat and shuffle are off), " "“song” (repeat current song), “all” (repeat playlist, no shuffle), " "“shuffle” (shuffle playlist, presumes repeat all)." msgstr "" "ਭੰਡਾਰ ਰਾਹੀਂ ਦੁਹਰਾਉਣ ਜਾਂ ਰਲਵੇਂ ਰੂਪ ਵਿੱਚ ਚਲਾਉਣ ਦੀ ਚੋਣ ਵਾਸਤੇ ਮੁੱਲ ਪਛਾਣਕਰਤਾ।" " ਮਨਜ਼ੂਰ ਮੁੱਲ ਹਨ: " "”none” (ਦੁਹਰਾਉਣਾ ਤੇ ਰਲਾਉਣਾ ਬੰਦ ਹੈ), ”song” (ਮੌਜੂਦਾ ਗੀਤ ਦੁਹਰਾਉ), ”all”" " (ਪਲੇਅਲਿਸਟ " "ਦੁਹਰਾਉ, ਰਲਵੇਂ ਨਹੀਂ), “shuffle” (ਪਲੇਅਲਿਸਟ ਰਲਵਾ ਕੇ ਚਲਾਉ ਅਤੇ ਸਭ ਦੁਹਰਾਉ)।" #: data/org.gnome.Music.gschema.xml:28 msgid "Enable ReplayGain" msgstr "" #: data/org.gnome.Music.gschema.xml:29 msgid "Enables or disables ReplayGain for albums" msgstr "" #: data/org.gnome.Music.gschema.xml:33 msgid "Inhibit system suspend" msgstr "ਸਿਸਟਮ ਸਸਪੈਂਡ ਤੋਂ ਰੋਕੋ" #: data/org.gnome.Music.gschema.xml:34 msgid "Enables or disables inhibiting system suspend while playing music" msgstr "" #: data/org.gnome.Music.gschema.xml:38 #| msgid "Your music listening is reported to Last.fm." msgid "Report music history to Last.fm" msgstr "ਸੰਗੀਤ ਅਤੀਤ Last.fm ਨੂੰ ਰਿਪੋਰਟ ਕਰੋ" #: data/org.gnome.Music.gschema.xml:39 msgid "" "Enables or disables sending scrobbles and the “currently playing” info to " "Last.fm." msgstr "" #: data/ui/AlbumWidget.ui:84 data/ui/PlayerToolbar.ui:87 #: data/ui/PlaylistControls.ui:101 gnomemusic/widgets/playertoolbar.py:170 msgid "Play" msgstr "ਚਲਾਓ" #: data/ui/AlbumWidget.ui:130 data/ui/PlaylistControls.ui:5 #: data/ui/SongWidgetMenu.ui:11 msgid "_Play" msgstr "ਚਲਾਓ(_P)" #: data/ui/AlbumWidget.ui:134 #| msgid "Favorite Songs" msgid "Add to _Favorite Songs" msgstr "ਮਨਪਸੰਦ ਗੀਤ ਵਿੱਚ ਜੋੜੋ(_F)" #: data/ui/AlbumWidget.ui:138 data/ui/SongWidgetMenu.ui:15 #| msgid "Add to Playlist…" msgid "_Add to Playlist…" msgstr "ਪਲੇਅਲਿਸਟ ਵਿੱਚ ਜੋੜੋ(_A)…" #: data/ui/AppMenu.ui:23 data/ui/LastfmDialog.ui:8 msgid "Last.fm Account" msgstr "Last.fm ਖਾਤਾ" #: data/ui/AppMenu.ui:36 msgid "Report Music Listening" msgstr "ਸੰਗੀਤ ਸੁਣਨ ਬਾਰੇ ਰਿਪੋਰਟ" #: data/ui/AppMenu.ui:58 msgid "_Keyboard Shortcuts" msgstr "ਕੀਬੋਰਡ ਸ਼ਾਰਟਕੱਟ(_K)" #: data/ui/AppMenu.ui:68 msgid "_Help" msgstr "ਮਦਦ(_H)" #: data/ui/AppMenu.ui:78 msgid "_About Music" msgstr "ਸੰਗੀਤ ਬਾਰੇ(_A)" #: data/ui/EmptyView.ui:30 msgid "Welcome to Music" msgstr "ਸੰਗੀਤ ਲਈ ਜੀ ਆਇਆਂ ਨੂੰ" #: data/ui/HeaderBar.ui:17 msgid "Menu" msgstr "ਮੇਨੂ" #: data/ui/HeaderBar.ui:25 data/ui/SearchHeaderBar.ui:15 msgid "Select" msgstr "ਚੁਣੋ" #: data/ui/HeaderBar.ui:31 data/ui/PlaylistDialog.ui:213 #: data/ui/SearchHeaderBar.ui:20 msgid "_Cancel" msgstr "ਰੱਦ ਕਰੋ(_C)" #: data/ui/HeaderBar.ui:43 data/ui/SearchHeaderBar.ui:32 msgid "Search" msgstr "ਖੋਜ" #: data/ui/HeaderBar.ui:51 msgid "Back" msgstr "ਪਿੱਛੇ" #: data/ui/help-overlay.ui:11 msgctxt "shortcut window" msgid "General" msgstr "ਆਮ" #: data/ui/help-overlay.ui:14 msgctxt "shortcut window" msgid "Close window" msgstr "ਵਿੰਡੋ ਬੰਦ ਕਰੋ" #: data/ui/help-overlay.ui:20 msgctxt "shortcut window" msgid "Search" msgstr "ਖੋਜੋ" #: data/ui/help-overlay.ui:26 msgctxt "shortcut window" msgid "Help" msgstr "ਮਦਦ" #: data/ui/help-overlay.ui:32 msgctxt "shortcut window" msgid "Shortcuts" msgstr "ਸ਼ਾਰਟਕੱਟ" #: data/ui/help-overlay.ui:40 msgctxt "shortcut window" msgid "Playback" msgstr "ਚਲਾਓ" #: data/ui/help-overlay.ui:43 msgctxt "shortcut window" msgid "Play/Pause" msgstr "ਚਲਾਓ/ਵਿਰਾਮ" #: data/ui/help-overlay.ui:49 msgctxt "shortcut window" msgid "Next song" msgstr "ਅਗਲਾ ਗੀਤ" #: data/ui/help-overlay.ui:55 msgctxt "shortcut window" msgid "Previous song" msgstr "ਪਿਛਲਾ ਗੀਤ" #: data/ui/help-overlay.ui:61 msgctxt "shortcut window" msgid "Toggle repeat" msgstr "ਦੁਹਰਾਉਣਾ ਬਦਲੋ" #: data/ui/help-overlay.ui:67 msgctxt "shortcut window" msgid "Toggle shuffle" msgstr "ਰਲਾਉਣ ਨੂੰ ਬਦਲੋ" #: data/ui/help-overlay.ui:75 msgctxt "shortcut window" msgid "Navigation" msgstr "ਨੇਵੀਗੇਸ਼ਨ" #: data/ui/help-overlay.ui:78 msgctxt "shortcut window" msgid "Go to Albums" msgstr "ਐਲਬਮ ਉੱਤੇ ਜਾਓ" #: data/ui/help-overlay.ui:84 msgctxt "shortcut window" msgid "Go to Artists" msgstr "ਕਲਾਕਾਰ ਉੱਤੇ ਜਾਓ" #: data/ui/help-overlay.ui:90 msgctxt "shortcut window" msgid "Go to Songs" msgstr "ਗੀਤ ਉੱਤੇ ਜਾਓ" #: data/ui/help-overlay.ui:96 msgctxt "shortcut window" msgid "Go to Playlists" msgstr "ਪਲੇਅਲਿਸਟ ਉੱਤੇ ਜਾਓ" #: data/ui/help-overlay.ui:102 msgctxt "shortcut window" msgid "Go back" msgstr "ਪਿੱਛੇ ਜਾਓ" #: data/ui/LastfmDialog.ui:21 msgid "" "Last.fm is a music discovery service that gives you personalised " "recommendations based on the music you listen to." msgstr "" "Last.fm ਸੰਗੀ ਖੋਜ ਸੇਵਾ ਹੈ, ਜੋ ਕਿ ਤੁਹਾਨੂੰ ਤੁਹਾਡੇ ਵਲੋਂ ਸੁਣੇ ਗਏ ਸੰਗੀਤ ਦੇ ਮੁਤਾਬਕ" " ਤੁਹਾਡੀਆਂ ਨਿੱਜੀ " "ਸਿਫਾਰਸ਼ਾਂ ਪੇਸ਼ ਕਰਦੀ ਹੈ।" #: data/ui/LastfmDialog.ui:31 gnomemusic/widgets/lastfmdialog.py:57 msgid "Music Reporting Not Setup" msgstr "ਸੰਗੀਤ ਰਿਪੋਰਟ ਕਰਨਾ ਸੈਟਅੱਪ ਨਹੀਂ ਹੈ" #: data/ui/LastfmDialog.ui:44 gnomemusic/widgets/lastfmdialog.py:60 msgid "Login to your Last.fm account to report your music listening." msgstr "ਆਪਣੇ ਸੰਗੀਤ ਸੁਣਨ ਬਾਰੇ ਰਿਪੋਰਟ ਦੇਣ ਲਈ ਆਪਣੇ Last.fm ਖਾਤੇ ਵਿੱਚ ਲਾਗਇਨ ਕਰੋ।" #: data/ui/LastfmDialog.ui:55 gnomemusic/widgets/lastfmdialog.py:58 msgid "Login" msgstr "ਲਾਗਇਨ" #: data/ui/PlayerToolbar.ui:74 msgid "Previous" msgstr "ਪਿੱਛੇ" #: data/ui/PlayerToolbar.ui:106 msgid "Next" msgstr "ਅੱਗੇ" #: data/ui/PlaylistControls.ui:9 msgid "_Delete" msgstr "ਹਟਾਓ(_D)" #: data/ui/PlaylistControls.ui:13 msgid "_Rename…" msgstr "ਨਾਂ ਬਦਲੋ(_R)…" #: data/ui/PlaylistControls.ui:28 msgid "Playlist Name" msgstr "ਪਲੇਅਲਿਸਟ ਨਾਂ" #: data/ui/PlaylistControls.ui:62 msgid "_Done" msgstr "ਮੁਕੰਮਲ(_D)" #: data/ui/PlaylistDialog.ui:52 msgid "Enter a name for your first playlist" msgstr "ਆਪਣੀ ਪਹਿਲੀ ਪਲੇਅਲਿਸਟ ਲਈ ਨਾਂ ਦਿਓ" #: data/ui/PlaylistDialog.ui:77 msgid "C_reate" msgstr "ਬਣਾਓ(_r)" #: data/ui/PlaylistDialog.ui:146 msgid "New Playlist…" msgstr "...ਨਵੀਂ ਪਲੇਅਲਿਸਟ" #: data/ui/PlaylistDialog.ui:161 msgid "Add" msgstr "ਜੋੜੋ" #: data/ui/PlaylistDialog.ui:202 msgid "Add to Playlist" msgstr "ਪਲੇਅਲਿਸਟ ਵਿੱਚ ਜੋੜੋ" #: data/ui/PlaylistDialog.ui:222 msgid "_Add" msgstr "ਜੋੜੋ(_A)" #: data/ui/SearchView.ui:33 gnomemusic/views/artistsview.py:51 msgid "Artists" msgstr "ਕਲਾਕਾਰ" #: data/ui/SearchView.ui:42 data/ui/SearchView.ui:84 msgid "View All" msgstr "ਸਭ ਵੇਖੋ" #: data/ui/SearchView.ui:75 gnomemusic/views/albumsview.py:56 msgid "Albums" msgstr "ਐਲਬਮ" #: data/ui/SearchView.ui:117 gnomemusic/views/songsview.py:52 msgid "Songs" msgstr "ਗੀਤ" #: data/ui/SelectionBarMenuButton.ui:7 msgid "Select All" msgstr "ਸਭ ਚੁਣੋ" #: data/ui/SelectionBarMenuButton.ui:11 msgid "Select None" msgstr "ਕੋਈ ਨਾ ਚੁਣੋ" #: data/ui/SelectionBarMenuButton.ui:19 gnomemusic/widgets/headerbar.py:69 msgid "Click on items to select them" msgstr "ਆਈਟਮਾਂ ਨੂੰ ਚੁਣਨ ਲਈ ਉਹਨਾਂ ਉੱਤੇ ਕਲਿੱਕ ਕਰੋ" #: data/ui/SelectionToolbar.ui:8 msgid "_Add to Playlist" msgstr "ਪਲੇਅਲਿਸਟ ਵਿੱਚ ਜੋੜੋ(_A)" #: data/ui/SongWidgetMenu.ui:19 #| msgid "Remove From Playlist" msgid "_Remove from Playlist" msgstr "ਪਲੇਅਲਿਸਟ ਵਿੱਚੋਂ ਹਟਾਓ(_R)" #: gnomemusic/about.py:245 msgid "The GNOME Project" msgstr "ਗਨੋਮ ਪਰੋਜੈਕਟ" #: gnomemusic/about.py:249 msgid "translator-credits" msgstr "" "ਅਮਨਪਰੀਤ ਸਿੰਘ ਆਲਮ (Amanpreet Singh)\n" "ਪੰਜਾਬੀ ਓਪਨਸੋਰਸ ਟੀਮ (POST)" #: gnomemusic/about.py:253 #| msgid "Copyright © 2018 GNOME Music Developers" msgid "Copyright The GNOME Music Developers" msgstr "ਕਾਪੀਰਾਈਟ ਗਨੋਮ ਸੰਗੀਤ ਡਿਵੈਲਪਰ" #: gnomemusic/about.py:256 msgid "Translated by" msgstr "ਉਲੱਥਾ ਕੀਤਾ" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:894 msgid "Most Played" msgstr "ਸਭ ਤੋਂ ਵੱਧ ਚਲਾਏ" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:948 msgid "Never Played" msgstr "ਕਦੇ ਨਹੀਂ ਚਲਾਏ" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1001 msgid "Recently Played" msgstr "ਹੁਣੇ ਹੁਣੇ ਚਲਾਏ" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1064 msgid "Recently Added" msgstr "ਹੁਣੇ ਹੁਣੇ ਜੋੜੇ" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1127 msgid "Favorite Songs" msgstr "ਮਨਪਸੰਦ ਗੀਤ" #: gnomemusic/gstplayer.py:408 msgid "Unable to play the file" msgstr "ਫਾਇਲ ਚਲਾਉਣ ਲਈ ਅਸਮਰੱਥ ਹੈ" #: gnomemusic/gstplayer.py:414 msgid "_Find in {}" msgstr "{} ਵਿੱਚ ਲੱਭੋ(_F)" #. TRANSLATORS: separator for two codecs #: gnomemusic/gstplayer.py:424 msgid " and " msgstr " ਅਤੇ " #. TRANSLATORS: separator for a list of codecs #: gnomemusic/gstplayer.py:427 msgid ", " msgstr ", " #: gnomemusic/gstplayer.py:429 msgid "{} is required to play the file, but is not installed." msgid_plural "{} are required to play the file, but are not installed." msgstr[0] "ਫਾਇਲ ਚਲਾਉਣ ਲਈ {} ਚਾਹੀਦਾ ਹੈ, ਪਰ ਇੰਸਟਾਲ ਨਹੀਂ ਹੈ।" msgstr[1] "ਫਾਇਲ ਚਲਾਉਣ ਲਈ {} ਚਾਹੀਦੇ ਹਨ, ਪਰ ਇੰਸਟਾਲ ਨਹੀਂ ਹਨ।" #: gnomemusic/inhibitsuspend.py:63 msgid "Playing music" msgstr "ਸੰਗੀਤ ਚੱਲ ਰਿਹਾ ਹੈ" #. Translators: "shuffle" causes tracks to play in random order. #: gnomemusic/player.py:44 msgid "Shuffle/Repeat Off" msgstr "ਰਲਵਾਂ/ਦੁਹਰਾਉਣਾ ਬੰਦ" #: gnomemusic/player.py:45 msgid "Repeat Song" msgstr "ਗਾਣਾ ਦੁਹਰਾਓ" #: gnomemusic/player.py:46 msgid "Repeat All" msgstr "ਸਭ ਦੁਹਰਾਓ" #: gnomemusic/player.py:47 msgid "Shuffle" msgstr "ਰਲਵੇਂ" #: gnomemusic/playlisttoast.py:55 msgid "Playlist {} removed" msgstr "ਪਲੇਅਲਿਸਟ {} ਹਟਾਈ" #: gnomemusic/playlisttoast.py:56 gnomemusic/songtoast.py:65 #| msgid "_Undo" msgid "Undo" msgstr "ਵਾਪਸ" #: gnomemusic/songtoast.py:64 msgid "{} removed from {}" msgstr "{} ਨੂੰ {} ਤੋਂ ਹਟਾਇਆ" #: gnomemusic/utils.py:92 msgid "Unknown album" msgstr "ਅਣਪਛਾਤੀ ਐਲਬਮ" #: gnomemusic/utils.py:113 msgid "Unknown Artist" msgstr "ਅਣਪਛਾਤਾ ਕਲਾਕਾਰ" #: gnomemusic/views/emptyview.py:65 msgid "Your XDG Music directory is not set." msgstr "ਤੁਹਾਡਾ XDG ਸੰਗੀਤ ਡਾਇਰੈਕਟਰੀ ਸੈੱਟ ਨਹੀਂ ਹੈ।" #: gnomemusic/views/emptyview.py:72 #| msgid "Music folder" msgid "Music Folder" msgstr "ਸੰਗੀਤ ਫੋਲਡਰ" #. TRANSLATORS: This is a label to display a link to open user's music #. folder. {} will be replaced with the translated text 'Music folder' #: gnomemusic/views/emptyview.py:76 msgid "The contents of your {} will appear here." msgstr "ਤੁਹਾਡੀ {} ਦੀ ਸਮੱਗਰੀ ਇੱਥੇ ਦਿਖਾਈ ਦੇਵੇਗੀ।" #: gnomemusic/views/emptyview.py:124 #| msgid "No music found" msgid "No Music Found" msgstr "ਕੋਈ ਸੰਗੀਤ ਨਹੀਂ ਲੱਭਿਆ" #: gnomemusic/views/emptyview.py:125 #| msgid "Try a different search" msgid "Try a Different Search" msgstr "ਵੱਖਰੀ ਖੋਜ ਕਰਕੇ ਵੇਖੋ" #: gnomemusic/views/emptyview.py:129 #| msgid "GNOME Music could not connect to Tracker" msgid "GNOME Music could not connect to Tracker." msgstr "ਗਨੋਮ ਸੰਗੀਤ ਟਰੈਕਰ ਨਾਲ ਕਨੈਕਟ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ।" #: gnomemusic/views/emptyview.py:131 #| msgid "Your music files cannot be indexed without Tracker running" msgid "Your music files cannot be indexed without Tracker running." msgstr "" "ਤੁਹਾਡੀਆਂ ਸੰਗੀਤ ਫਾਇਲਾਂ ਨੂੰ ਟਰੈਕਰ ਚਲਾਏ ਬਿਨਾਂ ਇੰਡੈਕਸ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ।" #: gnomemusic/views/emptyview.py:137 #| msgid "Your system Tracker version seems outdated" msgid "Your system Tracker version seems outdated." msgstr "ਤੁਹਾਡੇ ਸਿਸਟਮ ਦਾ ਟਰੈਕਰ ਵਰਜ਼ਨ ਪੁਰਾਣਾ ਜਾਪਦਾ ਹੈ।" #: gnomemusic/views/emptyview.py:139 #| msgid "Music needs Tracker version 3.0.0 or higher" msgid "Music needs Tracker version 3.0.0 or higher." msgstr "ਸੰਗੀਤ ਨੂੰ ਟਰੈਕਰ ਵਰਜ਼ਨ 3.0.0 ਜਾਂ ਨਵਾਂ ਚਾਹੀਦਾ ਹੈ।" #: gnomemusic/views/playlistsview.py:45 msgid "Playlists" msgstr "ਪਲੇਅਲਿਸਟਾਂ" #: gnomemusic/views/searchview.py:304 msgid "Artists Results" msgstr "ਕਲਾਕਾਰ ਨਤੀਜੇ" #: gnomemusic/views/searchview.py:318 msgid "Albums Results" msgstr "ਐਲਬਮ ਨਤੀਜੇ" #: gnomemusic/widgets/albumwidget.py:245 msgid "{} minute" msgid_plural "{} minutes" msgstr[0] "{} ਮਿੰਟ" msgstr[1] "{} ਮਿੰਟ" #: gnomemusic/widgets/discbox.py:75 msgid "Disc {}" msgstr "ਡਿਸਕ {}" #: gnomemusic/widgets/headerbar.py:66 msgid "Selected {} song" msgid_plural "Selected {} songs" msgstr[0] "ਚੁਣਿਆ {} ਗੀਤ" msgstr[1] "ਚੁਣੇ {} ਗੀਤ" #: gnomemusic/widgets/lastfmdialog.py:64 msgid "Your music listening is reported to Last.fm." msgstr "ਤੁਹਾਡਾ ਸੰਗੀਤ ਸੁਣਨਾ Last.fm ਨੂੰ ਰਿਪੋਰਟ ਕੀਤਾ ਹੈ" #: gnomemusic/widgets/lastfmdialog.py:66 msgid "Your music listening is not reported to Last.fm." msgstr "ਤੁਹਾਡਾ ਸੰਗੀਤ ਸੁਣਨਾ Last.fm ਨੂੰ ਰਿਪੋਰਟ ਨਹੀਂ ਕੀਤਾ" #. TRANSLATORS: displays the username of the Last.fm account #: gnomemusic/widgets/lastfmdialog.py:70 msgid "Logged in as {}" msgstr "{} ਵਜੋਂ ਲਾਗਇਨ ਕੀਤਾ" #: gnomemusic/widgets/lastfmdialog.py:71 msgid "Configure" msgstr "ਸੰਰਚਨਾ" #: gnomemusic/widgets/playertoolbar.py:167 msgid "Pause" msgstr "ਵਿਰਾਮ" #: gnomemusic/widgets/playlistcontrols.py:130 msgid "{} Song" msgid_plural "{} Songs" msgstr[0] "{} ਗੀਤ" msgstr[1] "{} ਗੀਤ" #: gnomemusic/widgets/searchheaderbar.py:66 msgid "Search songs, artists, albums and playlists" msgstr "ਗੀਤ, ਕਲਾਕਾਰ, ਐਲਬਮ ਅਤੇ ਪਲੇਅਲਿਸਟ ਖੋਜੋ" #~ msgid "GNOME Music" #~ msgstr "ਗਨੋਮ ਸੰਗੀਤ" #~ msgid "" #~ "An easy way to play your music. Automatically discover music on your " #~ "computer, the local network and internet services." #~ msgstr "" #~ "ਤੁਹਾਡੇ ਸੰਗੀਤ ਨੂੰ ਚਲਾਉਣ ਦਾ ਸੌਖਾ ਢੰਗ ਹੈ। ਤੁਹਾਡੇ ਕੰਪਿਊਟਰ, ਲੋਕਲ ਨੈੱਟਵਰਕ ਅਤੇ ਇੰਟਰਨੈੱਟ ਸੇਵਾਵਾਂ ਉੱਤੇ " #~ "ਆਪਣੇ-ਆਪ ਸੰਗੀਤ ਲੱਭੋ।" #~ msgid "" #~ "Find tracks in your local collection, get music from DLNA servers or try " #~ "something new with the Jamendo and Magnatune services." #~ msgstr "" #~ "ਆਪਣੇ ਲੋਕਲ ਭੰਡਾਰ ਵਿੱਚ ਟਰੈਕ ਲੱਭੋ, DLNA ਸਰਵਰਾਂ ਤੋਂ ਲਵੋ ਜਾਂ Jamendo ਅਤੇ Magnatune ਸੇਵਾਵਾਂ " #~ "ਨਾਲ ਕੁਝ ਨਵਾਂ ਵਰਤ ਕੇ ਵੇਖੋ।" #~ msgid "Window position" #~ msgstr "ਵਿੰਡੋ ਸਥਿਤੀ" #~ msgid "Window position (x and y)." #~ msgstr "ਵਿੰਡੋ ਸਥਿਤੀ (x ਅਤੇ y)" #~ msgid "A music player and management application for GNOME." #~ msgstr "ਗਨੋਮ ਲਈ ਸੰਗੀਤ ਪਲੇਅਰ ਅਤੇ ਪ੍ਰਬੰਧਕ ਐਪਲੀਕੇਸ਼ਨ ਹੈ।" #~ msgid "Visit GNOME Music website" #~ msgstr "ਗਨੋਮ ਸੰਗੀਤ ਵੈੱਬਸਾਈਟ ਵੇਖੋ" #~| msgid "" #~| "GNOME Music 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.\n" #~| "\n" #~| "GNOME Music 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.\n" #~| "\n" #~| "You should have received a copy of the GNU General Public License along " #~| "with GNOME Music; if not, write to the Free Software Foundation, Inc., " #~| "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~| "\n" #~| "The GNOME Music authors hereby grant permission for non-GPL compatible " #~| "GStreamer plugins to be used and distributed together with GStreamer and " #~| "GNOME Music. This permission is above and beyond the permissions " #~| "granted by the GPL license by which GNOME Music is covered. If you " #~| "modify this code, you may extend this exception to your version of the " #~| "code, but you are not obligated to do so. If you do not wish to do so, " #~| "delete this exception statement from your version." #~ msgid "" #~ "GNOME Music 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.\n" #~ "\n" #~ "GNOME Music 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.\n" #~ "\n" #~ "You should have received a copy of the GNU General Public License along " #~ "with GNOME Music; if not, write to the Free Software Foundation, Inc., 51 " #~ "Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ "\n" #~ "The GNOME Music authors hereby grant permission for non-GPL compatible " #~ "GStreamer plugins to be used and distributed together with GStreamer and " #~ "GNOME Music. This permission is above and beyond the permissions granted " #~ "by the GPL license by which GNOME Music is covered. If you modify this " #~ "code, you may extend this exception to your version of the code, but you " #~ "are not obligated to do so. If you do not wish to do so, delete this " #~ "exception statement from your version.\n" #~ "\n" #~ "“Magic of the vinyl” by Sami Pyylampi image is licensed by CC-BY-SA 2.0 " #~ "https://www.flickr.com/photos/_spy_/12270839403" #~ msgstr "" #~ "ਗਨੋਮ ਸੰਗੀਤ ਇੱਕ ਮੁਕਤ ਸਾਫਟਵੇਅਰ ਹੈ, ਜਿਸ ਨੂੰ ਤੁਸੀਂ ਫਰੀ ਸਾਫਟਵੇਅਰ ਫਾਊਂਨਡੇਸ਼ਨ ਵਲੋਂ ਜਾਰੀ ਗਨੂ ਜਰਨਲ " #~ "ਪਬਲਿਕ ਲਾਇਸੈਂਸ ਦੇ ਵਰਜਨ ੨ ਜਾਂ (ਤੁਹਾਡੀ ਚੋਣ ਮੁਤਾਬਕ) ਨਵੇਂ ਵਰਜਨ ਅਧੀਨ ਵੰਡ ਅਤੇ/ਜਾਂ ਸੋਧ ਜਾ ਸਕਦੇ " #~ "ਹੋ।\n" #~ "\n" #~ "ਗਨੋਮ ਸੰਗੀਤ ਨੂੰ ਇਸ ਭਰੋਸੇ ਨਾਲ ਵੰਡਿਆ ਜਾ ਰਿਹਾ ਹੈ ਕਿ ਉਹ ਲਾਭਦਾਇਕ ਹੋਵੇਗਾ, ਪਰ ਬਿਨਾਂ ਕਿਸੇ " #~ "ਵਾਰੰਟੀ ਦੇ, ਬਿਨਾਂ ਕਿਸੇ ਖਾਸ ਮਕਸਦ ਲਈ ਠੀਕ ਜਾਂ ਲਾਭਦਾਇਕ ਰਹਿਣ ਦੇ। ਵਧੇਰੇ ਜਾਣਕਾਰੀ ਲਈ ਗਨੂ " #~ "ਜਰਨਲ ਪਬਲਿਕ ਲਾਇਸੈਂਸ ਨੂੰ ਵੇਖੋ।\n" #~ "\n" #~ "ਤੁਸੀਂ ਗਨੂ ਜਰਨਲ ਪਬਲਿਕ ਲਾਇਸੈਂਸ ਦੀ ਨਕਲ ਗਨੋਮ ਸੰਗੀਤ ਨਾਲ ਪਰਾਪਤ ਕੀਤੀ ਹੋਵੇਗੀ, ਜੇਕਰ ਨਹੀਂ ਤਾਂ " #~ "ਫਰੀ ਸਾਫਟਵੇਅਰ ਫਾਊਂਨਡੇਸ਼ਨ ੫੧ ਫਰੈਕਲਿਨ ਸਟਰੀਟ, ਪੰਜਵੀਂ ਮੰਜ਼ਲ, ਬੋਸਟਨ, ਐਮ ਏ ੦੨੧੧੦-੧੩੦੧ " #~ "ਅਮਰੀਕਾ ਤੋਂ ਪਰਾਪਤ ਕਰਨ ਲਈ ਲਿਖੋ।\n" #~ "\n" #~ "ਗਨੋਮ ਸੰਗੀਤ ਲੇਖਕਾਂ ਨੇ ਗ਼ੈਰ-GPL ਅਨੁਕੂਲ ਜੀਸਟਰੀਮਰ ਪਲੱਗਇਨ ਨੂੰ ਜੀਸਟਰੀਮਰ ਅਤੇ ਗਨੋਮ ਸੰਗੀਤ ਨਾਲ " #~ "ਵਰਤਣ ਅਤੇ ਵੰਡਣ ਲਈ ਮਨਜ਼ੂਰੀ ਦਿੱਤੀ ਹੈ। ਇਹ ਮਨਜ਼ੂਰੀ ਜੀਪੀਐਲ ਲਾਈਸੈਂਸ ਰਾਹੀਂ ਦਿੱਤੀ ਗਈ ਮਨਜੂਰੀ ਤੋਂ " #~ "ਉੱਤੇ ਅਤੇ ਵੱਧ ਹੈ, ਜਿਸ ਅਧੀਨ ਗਨੋਮ ਸੰਗੀਤ ਆਉਂਦਾ ਹੈ। ਜੇ ਤੁਸੀਂ ਇਹ ਕੋਡ ਵਿੱਚ ਸੋਧ ਕਰਦੇ ਹੋ, ਤਾਂ ਤੁਸੀਂ ਕੋਡ " #~ "ਦੇ ਆਪਣੇ ਵਰਜਨ ਲਈ ਇਹ ਛੋਟ ਨੂੰ ਵਧਾ ਸਕਦੇ ਹੋ, ਪਰ ਇਹ ਕਰਨ ਲਈ ਤੁਹਾਡੇ ਉੱਤੇ ਕੋਈ ਪਾਬੰਦੀ ਨਹੀਂ ਹੈ। ਜੇ " #~ "ਤੁਸੀਂ ਇੰਝ ਨਹੀਂ ਚਾਹੁੰਦੇ ਹੋ ਤਾਂ ਤੁਸੀਂ ਆਪਣੇ ਵਰਜਨ ਤੋਂ ਇਹ ਛੋਟ ਬਿਆਨ ਨੂੰ ਹਟਾ ਸਕਦੇ ਹੋ।\n" #~ "\n" #~ "ਸਾਮੀ ਪਿਆਲੰਪੀ ਵਲੋਂ “Magic of the vinyl” ਚਿੱਤਰ ਦਾ ਲਸੰਸ CC-BY-SA 2.0 ਦੇ ਅਧੀਨ ਦਿੱਤਾ " #~ "ਹੈhttps://www.flickr.com/photos/_spy_/12270839403" #~ msgid "Released" #~ msgstr "ਰੀਲਿਜ਼" #~ msgid "Running Length" #~ msgstr "ਚੱਲਣ ਲੰਬਾਈ" #~ msgid "Composer" #~ msgstr "ਕੰਪੋਜ਼ਰ" #~| msgid "Loading..." #~ msgid "Loading" #~ msgstr "ਲੋਡ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ" #~| msgid "Play" #~ msgctxt "context menu item" #~ msgid "Play" #~ msgstr "ਚਲਾਓ" #~ msgid "Hey DJ" #~ msgstr "ਹੈਲੋ ਡੀਜੇ" #~ msgid "Search mode" #~ msgstr "ਖੋਜ ਢੰਗ" #~ msgid "If true, the search bar is shown." #~ msgstr "ਜੇ ਸਹੀਂ ਹੈ ਤਾਂ ਖੋਜ ਪੱਟੀ ਵੇਖਾਈ ਜਾਂਦੀ ਹੈ।" #~ msgid "Music is the new GNOME music playing application." #~ msgstr "ਸੰਗੀਤ ਨਵੀਂ ਗਨੋਮ ਸੰਗੀਤ ਚਲਾਉਣ ਵਾਲੀ ਐਪਲੀਕੇਸ਼ਨ ਹੈ।" #~ msgid "Untitled" #~ msgstr "ਬਿਨ-ਟਾਈਟਲ" #~ msgid "Not playing" #~ msgstr "ਚੱਲ ਨਹੀਂ ਰਿਹਾ" #~ msgid "by %s, from %s" #~ msgstr "%s ਵਲੋਂ, %s ਵਿੱਚੋਂ" #~ msgid "All" #~ msgstr "ਸਭ" #~ msgid "Artist" #~ msgstr "ਕਲਾਕਾਰ" #~ msgid "Album" #~ msgstr "ਐਲਬਮ" #~ msgid "Track Title" #~ msgstr "ਟਰੈਕ ਨਾਂ" #~ msgid "Local" #~ msgstr "ਲੋਕਲ" #~ msgid "Sources" #~ msgstr "ਸਰੋਤ" #~ msgid "Match" #~ msgstr "ਮੇਲ" #~ msgid "Selected %d item" #~ msgid_plural "Selected %d items" #~ msgstr[0] "ਚੁਣੀ %d ਆਈਟਮ" #~ msgstr[1] "ਚੁਣੀਆਂ %d ਆਈਟਮਾਂ" #~ msgid "" #~ "No Music found!\n" #~ " Put some files into the folder %s" #~ msgstr "" #~ "ਕੋਈ ਸੰਗੀਤ ਨਹੀਂ ਲੱਭਿਆ!\n" #~ " %s ਫੋਲਡਰ ਵਿੱਚ ਕੁਝ ਫਾਇਲਾਂ ਰੱਖੋ" #~ msgid "All Artists" #~ msgstr "ਸਭ ਕਲਾਕਾਰ" #~ msgid "%d min" #~ msgstr "%d ਮਿੰਟ" #~ msgid "Empty" #~ msgstr "ਖਾਲੀ" #~ msgid "_New Playlist" #~ msgstr "ਨਵੀਂ ਪਲੇਅਲਿਸਟ(_N)" #~ msgid "_Quit" #~ msgstr "ਬੰਦ ਕਰੋ(_Q)" #~ msgid "Select Playlist" #~ msgstr "ਪਲੇਅਲਿਸਟ ਚੁਣੋ" #~ msgid "Load More" #~ msgstr "ਹੋਰ ਲੋਡ ਕਰੋ" #~ msgid "New" #~ msgstr "ਨਵਾਂ" #~ msgid "Quit" #~ msgstr "ਬਾਹਰ" #~ msgid "A GNOME 3 application to listen and manage music playlists" #~ msgstr "ਸੰਗੀਤ ਪਲੇਅਲਿਸਟ ਸੁਣਨ ਅਤੇ ਉਹਨਾਂ ਦੇ ਪਰਬੰਧ ਲਈ ਗਨੋਮ 3 ਐਪਲੀਕੇਸ਼ਨ" #~ msgid "%02u:%02u:%02u" #~ msgstr "%02u:%02u:%02u" #~ msgid "%02u:%02u" #~ msgstr "%02u:%02u" 07070100000108000081A400000000000000000000000166968E4E00003E1E000000000000000000000000000000000000001A00000000gnome-music-46.1/po/pl.po# Polish translation for gnome-music. # Copyright © 2012-2024 the gnome-music authors. # This file is distributed under the same license as the gnome-music package. # Piotr Drąg , 2012-2024. # Paweł Żołnowski , 2014-2015. # Aviary.pl , 2012-2024. # msgid "" msgstr "" "Project-Id-Version: gnome-music\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-music/issues\n" "POT-Creation-Date: 2024-02-11 20:43+0000\n" "PO-Revision-Date: 2024-03-10 14:12+0100\n" "Last-Translator: Piotr Drąg \n" "Language-Team: Polish \n" "Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2);\n" #: data/org.gnome.Music.appdata.xml.in.in:6 #: data/org.gnome.Music.desktop.in.in:3 data/ui/StatusNavigationPage.ui:4 #: gnomemusic/about.py:138 gnomemusic/application.py:59 gnomemusic/window.py:65 msgid "Music" msgstr "Muzyka" #: data/org.gnome.Music.appdata.xml.in.in:7 #: data/org.gnome.Music.desktop.in.in:5 msgid "Play and organize your music collection" msgstr "Odtwarzanie i organizowanie kolekcji muzyki" #: data/org.gnome.Music.appdata.xml.in.in:9 msgid "An easy and pleasant way to play your music." msgstr "Łatwy i przyjemny sposób na odtwarzanie muzyki." #: data/org.gnome.Music.appdata.xml.in.in:12 msgid "" "Find tracks in your local collection, use automatically generated playlists " "or curate a fresh one." msgstr "" "Znajduj utwory w swojej lokalnej kolekcji, korzystaj z automatycznie " "tworzonych list odtwarzania lub utwórz własne." #. developer_name tag deprecated with Appstream 1.0 #: data/org.gnome.Music.appdata.xml.in.in:188 msgid "The GNOME Music developers" msgstr "Programiści odtwarzacza muzyki GNOME" #: data/org.gnome.Music.desktop.in.in:4 msgid "Music Player" msgstr "Odtwarzacz muzyki" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Music.desktop.in.in:13 msgid "Music;Player;" msgstr "" "Muzyka;Odtwarzacz;Dźwięk;Audio;Piosenka;Utwór;MP3;Ogg;Vorbis;FLAC;CD;Płyta;" "Playlista;Lista;odtwarzania;Last.fm;Lastfm;Jamendo;Magnatune;UPnP;DLNA;MPRIS;" "ReplayGain;" #: data/org.gnome.Music.gschema.xml:12 msgid "Window size" msgstr "Rozmiar okna" #: data/org.gnome.Music.gschema.xml:13 msgid "Window size (width and height)." msgstr "Rozmiar okna (szerokość i wysokość)." #: data/org.gnome.Music.gschema.xml:17 msgid "Window maximized" msgstr "Maksymalizacja okna" #: data/org.gnome.Music.gschema.xml:18 msgid "Window maximized state." msgstr "Stan maksymalizacji okna." #: data/org.gnome.Music.gschema.xml:22 msgid "Playback repeat mode" msgstr "Tryb powtarzania odtwarzania" #. Translators: Don't translate allowed values, just the description in the brackets #: data/org.gnome.Music.gschema.xml:24 msgid "" "Value identifies whether to repeat or randomize playback through the " "collection. Allowed values are: “none” (repeat and shuffle are off), " "“song” (repeat current song), “all” (repeat playlist, no shuffle), " "“shuffle” (shuffle playlist, presumes repeat all)." msgstr "" "Wartość określa, czy powtarzać lub losować kolejność odtwarzania kolekcji. " "Dozwolone wartości: „none” (powtarzanie i odtwarzanie losowe wyłączone), " "„song” (powtarzanie bieżącego utworu), „all” (powtarzanie listy odtwarzania, " "bez odtwarzania losowego), „shuffle” (odtwarzanie losowe i powtarzanie listy " "odtwarzania)." #: data/org.gnome.Music.gschema.xml:28 data/ui/PreferencesDialog.ui:27 msgid "Enable ReplayGain" msgstr "ReplayGain" #: data/org.gnome.Music.gschema.xml:29 msgid "Enables or disables ReplayGain for albums" msgstr "Normalizacja poziomu głośności ReplayGain dla albumów" #: data/org.gnome.Music.gschema.xml:33 msgid "Inhibit system suspend" msgstr "Wstrzymanie uśpienia komputera" #: data/org.gnome.Music.gschema.xml:34 msgid "Enables or disables inhibiting system suspend while playing music" msgstr "Wstrzymuje uśpienie komputera podczas odtwarzania muzyki" #: data/ui/AlbumsSearchNavigationPage.ui:5 data/ui/SearchView.ui:98 #: gnomemusic/views/albumsview.py:52 msgid "Albums" msgstr "Albumy" #: data/ui/AlbumWidget.ui:84 data/ui/PlayerToolbar.ui:87 #: data/ui/PlaylistControls.ui:101 gnomemusic/widgets/playertoolbar.py:176 msgid "Play" msgstr "Odtwarza" #: data/ui/AlbumWidget.ui:130 data/ui/PlaylistControls.ui:5 #: data/ui/SongWidgetMenu.ui:11 msgid "_Play" msgstr "O_dtwórz" #: data/ui/AlbumWidget.ui:134 msgid "Add to _Favorite Songs" msgstr "Dodaj do _ulubionych utworów" #: data/ui/AlbumWidget.ui:138 data/ui/SongWidgetMenu.ui:15 msgid "_Add to Playlist…" msgstr "_Dodaj do listy odtwarzania…" #: data/ui/ArtistsSearchNavigationPage.ui:5 data/ui/SearchView.ui:41 #: gnomemusic/views/artistsview.py:51 msgid "Artists" msgstr "Wykonawcy" #: data/ui/HeaderBar.ui:14 msgid "Menu" msgstr "Menu" #: data/ui/HeaderBar.ui:22 data/ui/SearchHeaderBar.ui:12 msgid "Search" msgstr "Wyszukuje" #: data/ui/HeaderBar.ui:31 data/ui/PreferencesDialog.ui:4 msgid "Preferences" msgstr "Preferencje" #: data/ui/HeaderBar.ui:35 msgid "Keyboard Shortcuts" msgstr "Skróty klawiszowe" #: data/ui/HeaderBar.ui:39 msgid "Help" msgstr "Pomoc" #: data/ui/HeaderBar.ui:43 msgid "About Music" msgstr "O programie" #: data/ui/help-overlay.ui:11 msgctxt "shortcut window" msgid "General" msgstr "Ogólne" #: data/ui/help-overlay.ui:14 msgctxt "shortcut window" msgid "Close window" msgstr "Zamknięcie okna" #: data/ui/help-overlay.ui:20 msgctxt "shortcut window" msgid "Search" msgstr "Wyszukiwanie" #: data/ui/help-overlay.ui:26 msgctxt "shortcut window" msgid "Help" msgstr "Pomoc" #: data/ui/help-overlay.ui:32 msgctxt "shortcut window" msgid "Shortcuts" msgstr "Skróty" #: data/ui/help-overlay.ui:40 msgctxt "shortcut window" msgid "Playback" msgstr "Odtwarzanie" #: data/ui/help-overlay.ui:43 msgctxt "shortcut window" msgid "Play/Pause" msgstr "Odtwarzanie/wstrzymanie" #: data/ui/help-overlay.ui:49 msgctxt "shortcut window" msgid "Next song" msgstr "Następny utwór" #: data/ui/help-overlay.ui:55 msgctxt "shortcut window" msgid "Previous song" msgstr "Poprzedni utwór" #: data/ui/help-overlay.ui:61 msgctxt "shortcut window" msgid "Toggle repeat" msgstr "Przełączenie powtarzania" #: data/ui/help-overlay.ui:67 msgctxt "shortcut window" msgid "Toggle shuffle" msgstr "Przełączenie losowania" #: data/ui/help-overlay.ui:75 msgctxt "shortcut window" msgid "Navigation" msgstr "Nawigacja" #: data/ui/help-overlay.ui:78 msgctxt "shortcut window" msgid "Go to Albums" msgstr "Przejście do albumów" #: data/ui/help-overlay.ui:84 msgctxt "shortcut window" msgid "Go to Artists" msgstr "Przejście do wykonawców" #: data/ui/help-overlay.ui:90 msgctxt "shortcut window" msgid "Go to Songs" msgstr "Przejście do utworów" #: data/ui/help-overlay.ui:96 msgctxt "shortcut window" msgid "Go to Playlists" msgstr "Przejście do list odtwarzania" #: data/ui/help-overlay.ui:102 msgctxt "shortcut window" msgid "Go back" msgstr "Wstecz" #: data/ui/PlayerToolbar.ui:74 msgid "Previous" msgstr "Poprzedni" #: data/ui/PlayerToolbar.ui:106 msgid "Next" msgstr "Następny" #: data/ui/PlaylistControls.ui:9 msgid "_Delete" msgstr "_Usuń" #: data/ui/PlaylistControls.ui:13 msgid "_Rename…" msgstr "_Zmień nazwę…" #: data/ui/PlaylistControls.ui:28 msgid "Playlist Name" msgstr "Nazwa listy odtwarzania" #: data/ui/PlaylistControls.ui:62 msgid "_Done" msgstr "_Gotowe" #: data/ui/PlaylistDialog.ui:16 msgid "Add to Playlist" msgstr "Dodanie do listy odtwarzania" #: data/ui/PlaylistDialog.ui:27 msgid "_Cancel" msgstr "_Anuluj" #: data/ui/PlaylistDialog.ui:36 msgid "_Add" msgstr "_Dodaj" #: data/ui/PlaylistDialog.ui:91 msgid "Enter a name for your first playlist" msgstr "Nazwa pierwszej listy odtwarzania" #: data/ui/PlaylistDialog.ui:116 msgid "C_reate" msgstr "_Utwórz" #: data/ui/PlaylistDialog.ui:177 msgid "New Playlist…" msgstr "Nowa lista odtwarzania…" #: data/ui/PlaylistDialog.ui:189 msgid "Add" msgstr "Dodaj" #: data/ui/PreferencesDialog.ui:9 msgid "Player Settings" msgstr "Ustawienia odtwarzacza" #: data/ui/PreferencesDialog.ui:12 msgid "Repeat Mode" msgstr "Tryb powtarzania" #: data/ui/PreferencesDialog.ui:16 msgid "None" msgstr "Wyłączone" #: data/ui/PreferencesDialog.ui:17 msgid "Song" msgstr "Utwór" #: data/ui/PreferencesDialog.ui:18 msgid "All" msgstr "Wszystkie utwory" #: data/ui/PreferencesDialog.ui:19 gnomemusic/player.py:51 msgid "Shuffle" msgstr "Odtwarzanie losowe" #: data/ui/PreferencesDialog.ui:28 msgid "Balance loudness between songs if ReplayGain metadata is found" msgstr "Równoważenie głośności między utworami, jeśli mają metadane ReplayGain" #: data/ui/PreferencesDialog.ui:35 msgid "Power Settings" msgstr "Ustawienia zasilania" #: data/ui/PreferencesDialog.ui:38 msgid "Inhibit Suspend" msgstr "Wstrzymywanie uśpienia" #: data/ui/PreferencesDialog.ui:39 msgid "Only while playing" msgstr "Tylko podczas odtwarzania" #: data/ui/SearchView.ui:55 data/ui/SearchView.ui:112 msgid "View All" msgstr "Wyświetl wszystko" #: data/ui/SearchView.ui:154 msgid "Songs" msgstr "Utwory" #: data/ui/SongWidgetMenu.ui:19 msgid "_Remove from Playlist" msgstr "_Usuń z listy odtwarzania" #: data/ui/StatusNavigationPage.ui:36 msgid "Welcome to Music" msgstr "Witamy w odtwarzaczu muzyki" #: gnomemusic/about.py:140 msgid "The GNOME Project" msgstr "Projekt GNOME" #. Translators should localize the following string which #. will be displayed at the bottom of the about box to give #. credit to the translator(s). #: gnomemusic/about.py:146 msgid "translator-credits" msgstr "" "Piotr Drąg , 2012-2024\n" "Paweł Żołnowski , 2014-2015\n" "Aviary.pl , 2012-2024" #: gnomemusic/about.py:150 msgid "© The GNOME Music Developers" msgstr "© programiści odtwarzacza muzyki GNOME" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:839 msgid "Most Played" msgstr "Najczęściej odtwarzane" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:893 msgid "Never Played" msgstr "Nigdy nieodtworzone" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:946 msgid "Recently Played" msgstr "Ostatnio odtwarzane" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1025 msgid "Recently Added" msgstr "Ostatnio dodane" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1088 msgid "Favorite Songs" msgstr "Ulubione utwory" #. TRANSLATORS: this is a playlist name indicating that the #. files are not tagged enough to be displayed in the albums #. or artists views. #: gnomemusic/grilowrappers/grltrackerplaylists.py:1142 msgid "Insufficiently Tagged" msgstr "Za mało etykiet" #: gnomemusic/gstplayer.py:418 msgid "Unable to play the file" msgstr "Nie można odtworzyć pliku" #: gnomemusic/gstplayer.py:424 msgid "_Find in {}" msgstr "_Znajdź w „{}”" #. TRANSLATORS: separator for two codecs #: gnomemusic/gstplayer.py:434 msgid " and " msgstr " i " #. TRANSLATORS: separator for a list of codecs #: gnomemusic/gstplayer.py:437 msgid ", " msgstr ", " #: gnomemusic/gstplayer.py:439 msgid "{} is required to play the file, but is not installed." msgid_plural "{} are required to play the file, but are not installed." msgstr[0] "{} jest wymagane do odtworzenia pliku, ale nie jest zainstalowane." msgstr[1] "{} są wymagane do odtworzenia pliku, ale nie są zainstalowane." msgstr[2] "{} są wymagane do odtworzenia pliku, ale nie są zainstalowane." #: gnomemusic/inhibitsuspend.py:69 msgid "Playing music" msgstr "Odtwarzanie muzyki" #. Translators: "shuffle" causes tracks to play in random order. #: gnomemusic/player.py:48 msgid "Shuffle/Repeat Off" msgstr "Wyłączenie losowania/powtarzania" #: gnomemusic/player.py:49 msgid "Repeat Song" msgstr "Powtarzanie utworu" #: gnomemusic/player.py:50 msgid "Repeat All" msgstr "Powtarzanie wszystkich" #: gnomemusic/playlisttoast.py:55 msgid "Playlist {} removed" msgstr "Usunięto listę odtwarzania „{}”" #: gnomemusic/playlisttoast.py:56 gnomemusic/songtoast.py:65 msgid "Undo" msgstr "Cofnij" #: gnomemusic/songtoast.py:64 msgid "{} removed from {}" msgstr "Usunięto utwór „{}” z listy „{}”" #: gnomemusic/utils.py:89 msgid "Unknown album" msgstr "Nieznany album" #: gnomemusic/utils.py:110 msgid "Unknown Artist" msgstr "Nieznany wykonawca" #: gnomemusic/views/playlistsview.py:45 msgid "Playlists" msgstr "Listy odtwarzania" #: gnomemusic/views/searchview.py:220 msgid "No Search Started" msgstr "Nie rozpoczęto wyszukiwania" #: gnomemusic/views/searchview.py:222 msgid "Use the searchbar to start searching for albums, artists or songs" msgstr "Pasek wyszukiwania umożliwia znalezienie albumów, wykonawców i utworów" #: gnomemusic/views/searchview.py:226 msgid "No Results Found" msgstr "Brak wyników" #: gnomemusic/views/searchview.py:228 msgid "Try a different search" msgstr "Proszę spróbować innych słów" #: gnomemusic/widgets/albumwidget.py:230 msgid "{} minute" msgid_plural "{} minutes" msgstr[0] "{} minuta" msgstr[1] "{} minuty" msgstr[2] "{} minut" #: gnomemusic/widgets/discbox.py:74 msgid "Disc {}" msgstr "{}. płyta" #: gnomemusic/widgets/playertoolbar.py:173 msgid "Pause" msgstr "Wstrzymuje" #: gnomemusic/widgets/playlistcontrols.py:130 msgid "{} Song" msgid_plural "{} Songs" msgstr[0] "{} utwór" msgstr[1] "{} utwory" msgstr[2] "{} utworów" #: gnomemusic/widgets/searchheaderbar.py:50 msgid "Search songs, artists and albums" msgstr "Wyszukiwanie utworów, wykonawców i albumów" #. noqa: F841 #: gnomemusic/widgets/songwidgetmenu.py:94 msgid "_Open Location" msgstr "_Otwórz położenie" #. TRANSLATORS: These are verbs, to (un)mark something as a #. favorite. #: gnomemusic/widgets/startoggle.py:36 msgid "Unstar" msgstr "Usuwa z ulubionych" #: gnomemusic/widgets/startoggle.py:36 msgid "Star" msgstr "Dodaje do ulubionych" #: gnomemusic/widgets/statusnavigationpage.py:51 msgid "Your XDG Music directory is not set." msgstr "Katalog „Muzyka” standardu XDG nie jest ustawiony." #: gnomemusic/widgets/statusnavigationpage.py:58 msgid "Music Folder" msgstr "katalogu z muzyką" #. TRANSLATORS: This is a label to display a link to open user's music #. folder. {} will be replaced with the translated text 'Music folder' #: gnomemusic/widgets/statusnavigationpage.py:66 msgid "The contents of your {} will appear here." msgstr "W tym miejscu będzie znajdować się zawartość {}." #: gnomemusic/widgets/statusnavigationpage.py:116 msgid "No Music Found" msgstr "Nie odnaleziono plików muzycznych" #: gnomemusic/widgets/statusnavigationpage.py:117 msgid "Try a Different Search" msgstr "Proszę spróbować innych słów" #: gnomemusic/widgets/statusnavigationpage.py:121 msgid "GNOME Music could not connect to Tracker." msgstr "Odtwarzacz muzyki GNOME nie może połączyć się z usługą Tracker." #: gnomemusic/widgets/statusnavigationpage.py:123 msgid "Your music files cannot be indexed without Tracker running." msgstr "Bez działającej usługi Tracker nie można wykryć plików z muzyką." #: gnomemusic/widgets/statusnavigationpage.py:129 msgid "Your system Tracker version seems outdated." msgstr "Wersja usługi Tracker zainstalowana na komputerze jest przestarzała." #: gnomemusic/widgets/statusnavigationpage.py:131 msgid "Music needs Tracker version 3.0.0 or higher." msgstr "Odtwarzacz muzyki wymaga wersji 3.0.0 lub wyższej." 07070100000109000081A400000000000000000000000166968E4E00005EBE000000000000000000000000000000000000001A00000000gnome-music-46.1/po/pt.po# Portuguese translation for gnome-music. # Copyright © 2013-2024 gnome-music # This file is distributed under the same license as the gnome-music package. # António Lima , 2013. # Tiago Santos , 2014 - 2017. # Pedro Albuquerque , 2015. # Juliano de Souza Camargo , 2020. # Hugo Carvalho , 2021, 2022, 2023, 2024. # msgid "" msgstr "" "Project-Id-Version: gnome-music master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-music/issues\n" "POT-Creation-Date: 2024-03-20 13:10+0000\n" "PO-Revision-Date: 2024-05-07 16:06+0100\n" "Last-Translator: Hugo Carvalho \n" "Language-Team: Portuguese <>\n" "Language: pt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Poedit 3.4.2\n" #: data/org.gnome.Music.appdata.xml.in.in:6 #: data/org.gnome.Music.desktop.in.in:3 data/ui/StatusNavigationPage.ui:4 #: gnomemusic/about.py:138 gnomemusic/application.py:59 gnomemusic/window.py:65 msgid "Music" msgstr "Música" #: data/org.gnome.Music.appdata.xml.in.in:7 #: data/org.gnome.Music.desktop.in.in:5 msgid "Play and organize your music collection" msgstr "Reproduz e organiza a sua coleção de música" #: data/org.gnome.Music.appdata.xml.in.in:9 msgid "An easy and pleasant way to play your music." msgstr "Uma maneira fácil e agradável de tocar a sua música." #: data/org.gnome.Music.appdata.xml.in.in:12 msgid "" "Find tracks in your local collection, use automatically generated playlists " "or curate a fresh one." msgstr "" "Encontre faixas na sua coleção local, use listas de reprodução geradas " "automaticamente ou categorize uma nova." #. developer_name tag deprecated with Appstream 1.0 #: data/org.gnome.Music.appdata.xml.in.in:214 msgid "The GNOME Music developers" msgstr "Os Programadores do Música GNOME" #: data/org.gnome.Music.desktop.in.in:4 msgid "Music Player" msgstr "Reprodutor de música" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Music.desktop.in.in:13 msgid "Music;Player;" msgstr "Reprodutor;Música;" #: data/org.gnome.Music.gschema.xml:12 msgid "Window size" msgstr "Tamanho da janela" #: data/org.gnome.Music.gschema.xml:13 msgid "Window size (width and height)." msgstr "Tamanho da janela (largura e altura)." #: data/org.gnome.Music.gschema.xml:17 msgid "Window maximized" msgstr "Janela maximizada" #: data/org.gnome.Music.gschema.xml:18 msgid "Window maximized state." msgstr "Estado maximizado da janela." #: data/org.gnome.Music.gschema.xml:22 msgid "Playback repeat mode" msgstr "Modo de repetição de reprodução" #. Translators: Don't translate allowed values, just the description in the brackets #: data/org.gnome.Music.gschema.xml:24 msgid "" "Value identifies whether to repeat or randomize playback through the " "collection. Allowed values are: “none” (repeat and shuffle are off), " "“song” (repeat current song), “all” (repeat playlist, no shuffle), " "“shuffle” (shuffle playlist, presumes repeat all)." msgstr "" "O valor identifica se deve repetir ou tornar a reprodução da coleção " "aleatória. Os valores permitidos são: “none” (repetir e misturar são " "desligados), “song” (repete a música atual), “all” (repete a lista sem " "misturar), “shuffle” (misturar a lista e assumir repetir todas)." #: data/org.gnome.Music.gschema.xml:28 data/ui/PreferencesDialog.ui:27 msgid "Enable ReplayGain" msgstr "Ativar ReplayGain" #: data/org.gnome.Music.gschema.xml:29 msgid "Enables or disables ReplayGain for albums" msgstr "Ativa ou desativa ReplyGain para álbuns" #: data/org.gnome.Music.gschema.xml:33 msgid "Inhibit system suspend" msgstr "Inibir suspensão do sistema" #: data/org.gnome.Music.gschema.xml:34 msgid "Enables or disables inhibiting system suspend while playing music" msgstr "Ativa ou desativa a suspensão do sistema quando a tocar música" #: data/ui/AlbumsSearchNavigationPage.ui:5 data/ui/SearchView.ui:98 #: gnomemusic/views/albumsview.py:52 msgid "Albums" msgstr "Álbuns" #: data/ui/AlbumWidget.ui:84 data/ui/PlayerToolbar.ui:87 #: data/ui/PlaylistControls.ui:101 gnomemusic/widgets/playertoolbar.py:176 msgid "Play" msgstr "Reproduzir" #: data/ui/AlbumWidget.ui:130 data/ui/PlaylistControls.ui:5 #: data/ui/SongWidgetMenu.ui:11 msgid "_Play" msgstr "Re_Produzir" #: data/ui/AlbumWidget.ui:134 msgid "Add to _Favorite Songs" msgstr "Adicionar às músicas _favoritas" #: data/ui/AlbumWidget.ui:138 data/ui/SongWidgetMenu.ui:15 msgid "_Add to Playlist…" msgstr "_Adicionar à lista de reprodução…" #: data/ui/ArtistsSearchNavigationPage.ui:5 data/ui/SearchView.ui:41 #: gnomemusic/views/artistsview.py:51 msgid "Artists" msgstr "Artistas" #: data/ui/HeaderBar.ui:14 msgid "Menu" msgstr "Menu" #: data/ui/HeaderBar.ui:22 data/ui/SearchHeaderBar.ui:12 msgid "Search" msgstr "Procurar" #: data/ui/HeaderBar.ui:31 data/ui/PreferencesDialog.ui:4 msgid "Preferences" msgstr "Preferências" #: data/ui/HeaderBar.ui:35 msgid "Keyboard Shortcuts" msgstr "Teclas de atalho" #: data/ui/HeaderBar.ui:39 msgid "Help" msgstr "Ajuda" #: data/ui/HeaderBar.ui:43 msgid "About Music" msgstr "_Acerca de Música" #: data/ui/help-overlay.ui:11 msgctxt "shortcut window" msgid "General" msgstr "Geral" #: data/ui/help-overlay.ui:14 msgctxt "shortcut window" msgid "Close window" msgstr "Fechar janela" #: data/ui/help-overlay.ui:20 msgctxt "shortcut window" msgid "Search" msgstr "Procurar" #: data/ui/help-overlay.ui:26 msgctxt "shortcut window" msgid "Help" msgstr "Ajuda" #: data/ui/help-overlay.ui:32 msgctxt "shortcut window" msgid "Shortcuts" msgstr "Atalhos" #: data/ui/help-overlay.ui:40 msgctxt "shortcut window" msgid "Playback" msgstr "Reproduzir" #: data/ui/help-overlay.ui:43 msgctxt "shortcut window" msgid "Play/Pause" msgstr "Reproduzir/Pausa" #: data/ui/help-overlay.ui:49 msgctxt "shortcut window" msgid "Next song" msgstr "Música seguinte" #: data/ui/help-overlay.ui:55 msgctxt "shortcut window" msgid "Previous song" msgstr "Música anterior" #: data/ui/help-overlay.ui:61 msgctxt "shortcut window" msgid "Toggle repeat" msgstr "Alternar repetir" #: data/ui/help-overlay.ui:67 msgctxt "shortcut window" msgid "Toggle shuffle" msgstr "Alternar baralhar" #: data/ui/help-overlay.ui:75 msgctxt "shortcut window" msgid "Navigation" msgstr "Navegação" #: data/ui/help-overlay.ui:78 msgctxt "shortcut window" msgid "Go to Albums" msgstr "Ir para Álbuns" #: data/ui/help-overlay.ui:84 msgctxt "shortcut window" msgid "Go to Artists" msgstr "Ir para Artistas" #: data/ui/help-overlay.ui:90 msgctxt "shortcut window" msgid "Go to Songs" msgstr "Ir para Canções" #: data/ui/help-overlay.ui:96 msgctxt "shortcut window" msgid "Go to Playlists" msgstr "Adicionar à lista de reprodução" #: data/ui/help-overlay.ui:102 msgctxt "shortcut window" msgid "Go back" msgstr "Voltar atrás" #: data/ui/PlayerToolbar.ui:74 msgid "Previous" msgstr "Anterior" #: data/ui/PlayerToolbar.ui:106 msgid "Next" msgstr "Seguinte" #: data/ui/PlaylistControls.ui:9 msgid "_Delete" msgstr "_Eliminar" #: data/ui/PlaylistControls.ui:13 msgid "_Rename…" msgstr "_Renomear…" #: data/ui/PlaylistControls.ui:28 msgid "Playlist Name" msgstr "Nome da lista de reprodução" #: data/ui/PlaylistControls.ui:62 msgid "_Done" msgstr "_Terminado" #: data/ui/PlaylistDialog.ui:16 msgid "Add to Playlist" msgstr "Adicionar à lista de reprodução" #: data/ui/PlaylistDialog.ui:27 msgid "_Cancel" msgstr "_Cancelar" #: data/ui/PlaylistDialog.ui:36 msgid "_Add" msgstr "_Adicionar" #: data/ui/PlaylistDialog.ui:91 msgid "Enter a name for your first playlist" msgstr "Introduza um nome para a sua primeira lista de reprodução" #: data/ui/PlaylistDialog.ui:116 msgid "C_reate" msgstr "C_riar" #: data/ui/PlaylistDialog.ui:177 msgid "New Playlist…" msgstr "Nova lista de reprodução…" #: data/ui/PlaylistDialog.ui:189 msgid "Add" msgstr "Adicionar" #: data/ui/PreferencesDialog.ui:9 msgid "Player Settings" msgstr "Definições do reprodutor" #: data/ui/PreferencesDialog.ui:12 msgid "Repeat Mode" msgstr "Modo de repetição" #: data/ui/PreferencesDialog.ui:16 msgid "None" msgstr "Nenhuma" #: data/ui/PreferencesDialog.ui:17 msgid "Song" msgstr "Música" #: data/ui/PreferencesDialog.ui:18 msgid "All" msgstr "Todas" #: data/ui/PreferencesDialog.ui:19 gnomemusic/player.py:51 msgid "Shuffle" msgstr "Misturar" #: data/ui/PreferencesDialog.ui:28 msgid "Balance loudness between songs if ReplayGain metadata is found" msgstr "" "Equilibrar o volume entre músicas se os metadados ReplayGain forem " "encontrados" #: data/ui/PreferencesDialog.ui:35 msgid "Power Settings" msgstr "Definições de energia" #: data/ui/PreferencesDialog.ui:38 msgid "Inhibit Suspend" msgstr "Inibir suspensão" #: data/ui/PreferencesDialog.ui:39 msgid "Only while playing" msgstr "Apenas durante a reprodução" #: data/ui/SearchView.ui:55 data/ui/SearchView.ui:112 msgid "View All" msgstr "Ver tudo" #: data/ui/SearchView.ui:154 msgid "Songs" msgstr "Músicas" #: data/ui/SongWidgetMenu.ui:19 msgid "_Remove from Playlist" msgstr "_Remover da lista de reprodução" #: data/ui/StatusNavigationPage.ui:36 msgid "Welcome to Music" msgstr "Bem-vindo ao Música" #: gnomemusic/about.py:140 msgid "The GNOME Project" msgstr "O Projeto GNOME" #. Translators should localize the following string which #. will be displayed at the bottom of the about box to give #. credit to the translator(s). #: gnomemusic/about.py:146 msgid "translator-credits" msgstr "Hugo Carvalho " #: gnomemusic/about.py:150 #| msgid "The GNOME Music developers" msgid "© The GNOME Music Developers" msgstr "© Os criadores de Música GNOME" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:839 msgid "Most Played" msgstr "Mais ouvidos" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:893 msgid "Never Played" msgstr "Nunca ouvidos" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:946 msgid "Recently Played" msgstr "Ouvidos recentemente" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1025 msgid "Recently Added" msgstr "Adicionados recentemente" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1088 msgid "Favorite Songs" msgstr "Músicas favoritas" #. TRANSLATORS: this is a playlist name indicating that the #. files are not tagged enough to be displayed in the albums #. or artists views. #: gnomemusic/grilowrappers/grltrackerplaylists.py:1142 msgid "Insufficiently Tagged" msgstr "Insuficientemente marcada" #: gnomemusic/gstplayer.py:418 msgid "Unable to play the file" msgstr "Impossível reproduzir o ficheiro" #: gnomemusic/gstplayer.py:424 msgid "_Find in {}" msgstr "_Localizar em {}" #. TRANSLATORS: separator for two codecs #: gnomemusic/gstplayer.py:434 msgid " and " msgstr " e " #. TRANSLATORS: separator for a list of codecs #: gnomemusic/gstplayer.py:437 msgid ", " msgstr ", " #: gnomemusic/gstplayer.py:439 msgid "{} is required to play the file, but is not installed." msgid_plural "{} are required to play the file, but are not installed." msgstr[0] "{} é requerido para reproduzir o ficheiro, mas não está instalado." msgstr[1] "" "{} são requeridos para reproduzir o ficheiro, mas não estão instalados." #: gnomemusic/inhibitsuspend.py:69 msgid "Playing music" msgstr "A tocar música" #. Translators: "shuffle" causes tracks to play in random order. #: gnomemusic/player.py:48 msgid "Shuffle/Repeat Off" msgstr "Desligar Misturar/Repetir" #: gnomemusic/player.py:49 msgid "Repeat Song" msgstr "Repetir música" #: gnomemusic/player.py:50 msgid "Repeat All" msgstr "Repetir todas" #: gnomemusic/playlisttoast.py:55 msgid "Playlist {} removed" msgstr "Lista {} removida" #: gnomemusic/playlisttoast.py:56 gnomemusic/songtoast.py:65 msgid "Undo" msgstr "Anular" #: gnomemusic/songtoast.py:64 msgid "{} removed from {}" msgstr "{} removida de {}" #: gnomemusic/utils.py:89 msgid "Unknown album" msgstr "Álbum desconhecido" #: gnomemusic/utils.py:110 msgid "Unknown Artist" msgstr "Artista desconhecido" #: gnomemusic/views/playlistsview.py:45 msgid "Playlists" msgstr "Listas de reprodução" #: gnomemusic/views/searchview.py:220 msgid "No Search Started" msgstr "Nenhuma pesquisa iniciada" #: gnomemusic/views/searchview.py:222 msgid "Use the searchbar to start searching for albums, artists or songs" msgstr "" "Use a barra de pesquisa para começar a procurar álbuns, artistas ou canções" #: gnomemusic/views/searchview.py:226 msgid "No Results Found" msgstr "Nenhum resultado encontrado" #: gnomemusic/views/searchview.py:228 msgid "Try a different search" msgstr "Tente uma pesquisa diferente" #: gnomemusic/widgets/albumwidget.py:230 msgid "{} minute" msgid_plural "{} minutes" msgstr[0] "{} minuto" msgstr[1] "{} minutos" #: gnomemusic/widgets/discbox.py:74 msgid "Disc {}" msgstr "Disco {}" #: gnomemusic/widgets/playertoolbar.py:173 msgid "Pause" msgstr "Pausa" #: gnomemusic/widgets/playlistcontrols.py:130 msgid "{} Song" msgid_plural "{} Songs" msgstr[0] "{} música" msgstr[1] "{} músicas" #: gnomemusic/widgets/searchheaderbar.py:50 msgid "Search songs, artists and albums" msgstr "Procurar músicas, artistas e álbuns" #. noqa: F841 #: gnomemusic/widgets/songwidgetmenu.py:94 msgid "_Open Location" msgstr "A_brir localização" #. TRANSLATORS: These are verbs, to (un)mark something as a #. favorite. #: gnomemusic/widgets/startoggle.py:36 msgid "Unstar" msgstr "Remover dos favoritos" #: gnomemusic/widgets/startoggle.py:36 msgid "Star" msgstr "Adicionar aos favoritos" #: gnomemusic/widgets/statusnavigationpage.py:51 msgid "Your XDG Music directory is not set." msgstr "Seu diretório XDG Music não está definido." #: gnomemusic/widgets/statusnavigationpage.py:58 msgid "Music Folder" msgstr "Pasta de música" #. TRANSLATORS: This is a label to display a link to open user's music #. folder. {} will be replaced with the translated text 'Music folder' #: gnomemusic/widgets/statusnavigationpage.py:66 msgid "The contents of your {} will appear here." msgstr "O conteúdo de {} aparece aqui." #: gnomemusic/widgets/statusnavigationpage.py:116 msgid "No Music Found" msgstr "Nenhuma música encontrada" #: gnomemusic/widgets/statusnavigationpage.py:117 msgid "Try a Different Search" msgstr "Tente uma pesquisa diferente" #: gnomemusic/widgets/statusnavigationpage.py:121 msgid "GNOME Music could not connect to Tracker." msgstr "Não foi possível ao Música GNOME estabelecer ligação com o rastreador." #: gnomemusic/widgets/statusnavigationpage.py:123 msgid "Your music files cannot be indexed without Tracker running." msgstr "" "Os seus ficheiros de música não podem ser indexados sem que o rastreador " "esteja em execução." #: gnomemusic/widgets/statusnavigationpage.py:129 msgid "Your system Tracker version seems outdated." msgstr "A versão do rastreador no sistema parece desatualizada." #: gnomemusic/widgets/statusnavigationpage.py:131 msgid "Music needs Tracker version 3.0.0 or higher." msgstr "O Música precisa de um rastreador com a versão 3.0.0 ou superior." #~ msgid "Report music history to Last.fm" #~ msgstr "Relatar histórico de músicas ao Last.fm" #~ msgid "" #~ "Enables or disables sending scrobbles and the “currently playing” info to " #~ "Last.fm." #~ msgstr "" #~ "Ativa ou desativa envio de \"scrobbles\" e informações de “a tocar” ao " #~ "Last.fm." #~ msgid "Last.fm Account" #~ msgstr "Conta Last.fm" #~ msgid "Report Music Listening" #~ msgstr "Relatar músicas tocadas" #~ msgid "_Help" #~ msgstr "A_Juda" #~ msgid "Select" #~ msgstr "Selecionar" #~ msgid "Back" #~ msgstr "Recuar" #~ msgid "" #~ "Last.fm is a music discovery service that gives you personalised " #~ "recommendations based on the music you listen to." #~ msgstr "" #~ "O Last.fm é um serviço de localização de músicas que dá-lhe recomendações " #~ "personalizadas baseadas nas músicas que ouve." #~ msgid "Music Reporting Not Setup" #~ msgstr "Relatar músicas não configurado" #~ msgid "Login to your Last.fm account to report your music listening." #~ msgstr "" #~ "Inicie sessão na sua conta Last.fm para relatar as músicas que ouve." #~ msgid "Login" #~ msgstr "Início de sessão" #~ msgid "Select All" #~ msgstr "Selecionar todas" #~ msgid "Select None" #~ msgstr "Não selecionar nenhuma" #~ msgid "Click on items to select them" #~ msgstr "Clique nos itens para os selecionar" #~ msgid "_Add to Playlist" #~ msgstr "_Adicionar à lista de reprodução" #~ msgid "Copyright The GNOME Music Developers" #~ msgstr "Direitos de autor Os Programadores do Música GNOME" #~ msgid "Translated by" #~ msgstr "Traduzido por" #~ msgid "Artists Results" #~ msgstr "Artistas encontrados" #~ msgid "Albums Results" #~ msgstr "Álbuns encontrados" #~ msgid "Selected {} song" #~ msgid_plural "Selected {} songs" #~ msgstr[0] "Música {} selecionada" #~ msgstr[1] "Musicas {} selecionadas" #~ msgid "Your music listening is reported to Last.fm." #~ msgstr "As músicas que ouve são relatadas ao Last.fm." #~ msgid "Your music listening is not reported to Last.fm." #~ msgstr "As músicas que ouve não são relatadas ao Last.fm." #~ msgid "Logged in as {}" #~ msgstr "Sessão iniciada como {}" #~ msgid "Configure" #~ msgstr "Configurar" #~ msgid "A music player and management application for GNOME." #~ msgstr "Uma aplicação para reprodução e gestão de música para o GNOME." #~ msgid "Visit GNOME Music website" #~ msgstr "Visite a página web do Música" #~ msgid "" #~ "GNOME Music 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.\n" #~ "\n" #~ "GNOME Music 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.\n" #~ "\n" #~ "You should have received a copy of the GNU General Public License along " #~ "with GNOME Music; if not, write to the Free Software Foundation, Inc., 51 " #~ "Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ "\n" #~ "The GNOME Music authors hereby grant permission for non-GPL compatible " #~ "GStreamer plugins to be used and distributed together with GStreamer and " #~ "GNOME Music. This permission is above and beyond the permissions granted " #~ "by the GPL license by which GNOME Music is covered. If you modify this " #~ "code, you may extend this exception to your version of the code, but you " #~ "are not obligated to do so. If you do not wish to do so, delete this " #~ "exception statement from your version." #~ msgstr "" #~ "O GNOME Música é uma aplicação livre; pode redistribuí-la e/ou alterá-la " #~ "sob os termos da Licença Pública Genérica GNU tal como publicada pela " #~ "Free Software Foundation; ou a versão 2 da Licença, ou (à sua discrição) " #~ "qualquer versão posterior.\n" #~ "\n" #~ "O GNOME Música é distribuído na esperança de ser útil, mas SEM QUALQUER " #~ "GARANTIA; nem mesmo a garantia implícita de COMERCIALIZAÇÃO ou ADEQUAÇÃO " #~ "A QUALQUER PROPÓSITO. Veja a Licença Pública Genérica GNU para mais " #~ "detalhes.\n" #~ "\n" #~ "Deverá ter recebido uma cópia da Licença Pública Genérica GNU juntamente " #~ "com o GNOME Música; se não, escreva (em Inglês) para a Free Software " #~ "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 " #~ "USA.\n" #~ "\n" #~ "Os autores do GNOME Música concedem aqui permissão para que extensões " #~ "compatíveis com o GStreamer não GPL sejam usadas e distribuídas com o " #~ "GStreamer e o GNOME Música. Esta permissão está acima das permissões " #~ "concedidas pela licença GPL pela qual o GNOME Música é coberto. Se " #~ "modificar este código, pode estender a exceção à sua versão do código, " #~ "mas não é obrigado a fazê-lo. Se não o quiser fazer, apague esta " #~ "declaração de exceção da sua versão." #~ msgid "The contents of your Music Folder will appear here" #~ msgstr "O conteúdo da pasta Música aparecerá aqui" #~ msgid "GNOME Music" #~ msgstr "Música" #~ msgid "Window position" #~ msgstr "Posição da janela" #~ msgid "Window position (x and y)." #~ msgstr "Posição da janela (x e y)." #~ msgid "Loading" #~ msgstr "A carregar" #~ msgid "Add to Playlist…" #~ msgstr "Adicionar à lista de reprodução…" #~ msgid "Inital state has been displayed" #~ msgstr "O estado inicial foi mostrado" #~ msgid "Set to true when initial state has been displayed" #~ msgstr "Definido como verdadeiro quando o estado inicial foi mostrado" #~ msgid "Hey DJ" #~ msgstr "Hey DJ" #~ msgid "" #~ "An easy way to play your music. Automatically discover music on your " #~ "computer, the local network and internet services." #~ msgstr "" #~ "Uma maneira fácil de tocar música. Descobre músicas automaticamente em " #~ "seu computador, na rede local ou em serviços na Internet." #~ msgid "" #~ "Find tracks in your local collection, get music from DLNA servers or try " #~ "something new with the Jamendo and Magnatune services." #~ msgstr "" #~ "Encontre faixas em seu repertório local, transfira músicas de servidores " #~ "DLNA ou tente algo novo com os serviços Jamendo e Magnatune." #~ msgid "Released" #~ msgstr "Lançado" #~ msgid "Running Length" #~ msgstr "Duração da execução" #~ msgid "Composer" #~ msgstr "Compositor" #~ msgctxt "context menu item" #~ msgid "Play" #~ msgstr "Reproduzir" #~ msgid "Search mode" #~ msgstr "Modo de procura" #~ msgid "If true, the search bar is shown." #~ msgstr "Se verdadeiro, a barra de procura é mostrada." #~ msgid "Notifications mode" #~ msgstr "Modo de notificações" #~ msgid "Enables or disables playback notifications" #~ msgstr "Ativa ou desativa notificações de reprodução" #~ msgid "Music is the new GNOME music playing application." #~ msgstr "Música é a nova aplicação de reprodução de música do GNOME" #~ msgid "the|a|an" #~ msgstr "a|um|uma" #~ msgid "Artist" #~ msgstr "Artista" #~ msgid "Album" #~ msgstr "Álbum" #~ msgid "Track Title" #~ msgstr "Título da faixa" #~ msgid "Local" #~ msgstr "Local" #~ msgid "Sources" #~ msgstr "Fontes" #~ msgid "Match" #~ msgstr "Comparar" #~ msgid "Untitled" #~ msgstr "Sem nome" #~ msgid "Selected %d item" #~ msgid_plural "Selected %d items" #~ msgstr[0] "%d item selecionado" #~ msgstr[1] "%d itens selecionados" #~ msgid "%d min" #~ msgstr "%d min" #~ msgid "Empty" #~ msgstr "Vazia" #~ msgid "_Quit" #~ msgstr "_Sair" #~ msgid "Max chars to display in track name on Artist view" #~ msgstr "Nº máximo de caracteres a mostrar no nome da faixa na vista Artista" #~ msgid "" #~ "This setting modifies the amount of chars for track title on Artist view " #~ "before its been ellipsized. Set this to -1 to disable" #~ msgstr "" #~ "Esta definição modifica a quantidade de caracteres do título da faixa na " #~ "vista Artista. Defina como -1 para desativar." #~ msgid "the a an" #~ msgstr "o a um uma" #~ msgid "All Artists" #~ msgstr "Todos os artistas" #~ msgid "Not playing" #~ msgstr "Não está a reproduzir" #~ msgid "by %s, from %s" #~ msgstr "por %s, de %s" #~ msgid "Select Playlist" #~ msgstr "Selecionar lista de reprodução" #~ msgid "" #~ "No Music found!\n" #~ " Put some files into the folder %s" #~ msgstr "" #~ "Nenhuma música encontrada!\n" #~ " Coloque alguns ficheiros na pasta %s" #~ msgid "_New Playlist" #~ msgstr "_Nova Lista de Reprodução" #~ msgid "Load More" #~ msgstr "Carregar Mais" #~ msgid "_Now Playing" #~ msgstr "_Agora a Reproduzir" 0707010000010A000081A400000000000000000000000166968E4E000049C7000000000000000000000000000000000000001D00000000gnome-music-46.1/po/pt_BR.po# Brazilian Portuguese translation for gnome-music. # Copyright (C) 2022 gnome-music's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-music package. # Georges Basile Stavracas Neto , 2013. # Antonio Fernandes C. Neto , 2013. # Avelino , 2013. # Ricardo Barbosa , 2014. # Felipe Braga , 2015. # Fábio Nogueira 2018. # Henrique Machado Campos , 2020. # Rafael Fontenelle , 2012-2021. # Enrico Nicoletto , 2013-2016, 2021-2022. # Matheus Barbosa , 2022. # Leônidas Araújo , 2022. # Alex Jr , 2023. # Matheus Polkorny , 2024. # msgid "" msgstr "" "Project-Id-Version: gnome-music master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-music/issues\n" "POT-Creation-Date: 2024-03-29 14:48+0000\n" "PO-Revision-Date: 2024-03-31 23:21-0300\n" "Last-Translator: Matheus Polkorny \n" "Language-Team: Brazilian Portuguese \n" "Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "X-Generator: Gtranslator 45.3\n" "X-Project-Style: gnome\n" "X-DL-Team: pt_BR\n" "X-DL-Module: gnome-music\n" "X-DL-Branch: master\n" "X-DL-Domain: po\n" "X-DL-State: Translating\n" #: data/org.gnome.Music.appdata.xml.in.in:6 #: data/org.gnome.Music.desktop.in.in:3 data/ui/StatusNavigationPage.ui:4 #: gnomemusic/about.py:138 gnomemusic/application.py:59 gnomemusic/window.py:65 msgid "Music" msgstr "Música" #: data/org.gnome.Music.appdata.xml.in.in:7 #: data/org.gnome.Music.desktop.in.in:5 msgid "Play and organize your music collection" msgstr "Reproduza e organize sua coleção de músicas" #: data/org.gnome.Music.appdata.xml.in.in:9 msgid "An easy and pleasant way to play your music." msgstr "Uma maneira fácil e agradável de reproduzir sua música." #: data/org.gnome.Music.appdata.xml.in.in:12 msgid "" "Find tracks in your local collection, use automatically generated playlists " "or curate a fresh one." msgstr "" "Localize faixas na sua coleção local, use listas de reprodução geradas " "automaticamente ou faça a curadoria de uma nova." #. developer_name tag deprecated with Appstream 1.0 #: data/org.gnome.Music.appdata.xml.in.in:214 msgid "The GNOME Music developers" msgstr "Os Desenvolvedores do GNOME Música" #: data/org.gnome.Music.desktop.in.in:4 msgid "Music Player" msgstr "Reprodutor de músicas" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Music.desktop.in.in:13 msgid "Music;Player;" msgstr "Música;Músicas;Music;Reprodutor;Tocador;Player;" #: data/org.gnome.Music.gschema.xml:12 msgid "Window size" msgstr "Tamanho da janela" #: data/org.gnome.Music.gschema.xml:13 msgid "Window size (width and height)." msgstr "Tamanho da janela (largura e altura)." #: data/org.gnome.Music.gschema.xml:17 msgid "Window maximized" msgstr "Janela maximizada" #: data/org.gnome.Music.gschema.xml:18 msgid "Window maximized state." msgstr "Estado de janela maximizada." #: data/org.gnome.Music.gschema.xml:22 msgid "Playback repeat mode" msgstr "Modo de repetição de reprodução" #. Translators: Don't translate allowed values, just the description in the brackets #: data/org.gnome.Music.gschema.xml:24 msgid "" "Value identifies whether to repeat or randomize playback through the " "collection. Allowed values are: “none” (repeat and shuffle are off), " "“song” (repeat current song), “all” (repeat playlist, no shuffle), " "“shuffle” (shuffle playlist, presumes repeat all)." msgstr "" "O valor identifica se deve ou não repetir ou embaralhar a reprodução pela " "coleção. Valores aceitos são: “none” (repete e embaralha), “song” (repete a " "música atual), “all” (repete a lista de reprodução, sem embaralhar), " "“shuffle” (embaralha lista de reprodução, supõe repetição de tudo)." #: data/org.gnome.Music.gschema.xml:28 data/ui/PreferencesDialog.ui:27 msgid "Enable ReplayGain" msgstr "Habilitar ReplayGain" #: data/org.gnome.Music.gschema.xml:29 msgid "Enables or disables ReplayGain for albums" msgstr "Habilita ou desabilita ReplayGain por álbuns" #: data/org.gnome.Music.gschema.xml:33 msgid "Inhibit system suspend" msgstr "Inibir suspensão do sistema" #: data/org.gnome.Music.gschema.xml:34 msgid "Enables or disables inhibiting system suspend while playing music" msgstr "" "Habilita ou desabilita inibição de suspensão do sistema enquanto reproduz " "música" #: data/ui/AlbumsSearchNavigationPage.ui:5 data/ui/SearchView.ui:98 #: gnomemusic/views/albumsview.py:52 msgid "Albums" msgstr "Álbuns" #: data/ui/AlbumWidget.ui:84 data/ui/PlayerToolbar.ui:87 #: data/ui/PlaylistControls.ui:101 gnomemusic/widgets/playertoolbar.py:176 msgid "Play" msgstr "Reproduzir" #: data/ui/AlbumWidget.ui:130 data/ui/PlaylistControls.ui:5 #: data/ui/SongWidgetMenu.ui:11 msgid "_Play" msgstr "_Reproduzir" #: data/ui/AlbumWidget.ui:134 msgid "Add to _Favorite Songs" msgstr "Adicionar para músicas _favoritas" #: data/ui/AlbumWidget.ui:138 data/ui/SongWidgetMenu.ui:15 msgid "_Add to Playlist…" msgstr "_Adicionar para lista de reprodução…" #: data/ui/ArtistsSearchNavigationPage.ui:5 data/ui/SearchView.ui:41 #: gnomemusic/views/artistsview.py:51 msgid "Artists" msgstr "Artistas" #: data/ui/HeaderBar.ui:14 msgid "Menu" msgstr "Menu" #: data/ui/HeaderBar.ui:22 data/ui/SearchHeaderBar.ui:12 msgid "Search" msgstr "Pesquisar" #: data/ui/HeaderBar.ui:31 data/ui/PreferencesDialog.ui:4 msgid "Preferences" msgstr "Preferências" #: data/ui/HeaderBar.ui:35 msgid "Keyboard Shortcuts" msgstr "Atalhos de teclado" #: data/ui/HeaderBar.ui:39 msgid "Help" msgstr "Ajuda" #: data/ui/HeaderBar.ui:43 msgid "About Music" msgstr "Sobre o Música" #: data/ui/help-overlay.ui:11 msgctxt "shortcut window" msgid "General" msgstr "Geral" #: data/ui/help-overlay.ui:14 msgctxt "shortcut window" msgid "Close window" msgstr "Fecha a janela" #: data/ui/help-overlay.ui:20 msgctxt "shortcut window" msgid "Search" msgstr "Pesquisa" #: data/ui/help-overlay.ui:26 msgctxt "shortcut window" msgid "Help" msgstr "Ajuda" #: data/ui/help-overlay.ui:32 msgctxt "shortcut window" msgid "Shortcuts" msgstr "Atalhos" #: data/ui/help-overlay.ui:40 msgctxt "shortcut window" msgid "Playback" msgstr "Reprodução" #: data/ui/help-overlay.ui:43 msgctxt "shortcut window" msgid "Play/Pause" msgstr "Reproduz/pausa" #: data/ui/help-overlay.ui:49 msgctxt "shortcut window" msgid "Next song" msgstr "Próxima música" #: data/ui/help-overlay.ui:55 msgctxt "shortcut window" msgid "Previous song" msgstr "Música anterior" #: data/ui/help-overlay.ui:61 msgctxt "shortcut window" msgid "Toggle repeat" msgstr "Alterna a repetição" #: data/ui/help-overlay.ui:67 msgctxt "shortcut window" msgid "Toggle shuffle" msgstr "Alterna o embaralhamento" #: data/ui/help-overlay.ui:75 msgctxt "shortcut window" msgid "Navigation" msgstr "Navegação" #: data/ui/help-overlay.ui:78 msgctxt "shortcut window" msgid "Go to Albums" msgstr "Vai para álbuns" #: data/ui/help-overlay.ui:84 msgctxt "shortcut window" msgid "Go to Artists" msgstr "Vai para artistas" #: data/ui/help-overlay.ui:90 msgctxt "shortcut window" msgid "Go to Songs" msgstr "Vai para músicas" #: data/ui/help-overlay.ui:96 msgctxt "shortcut window" msgid "Go to Playlists" msgstr "Vai para listas de reprodução" #: data/ui/help-overlay.ui:102 msgctxt "shortcut window" msgid "Go back" msgstr "Volta" #: data/ui/PlayerToolbar.ui:74 msgid "Previous" msgstr "Anterior" #: data/ui/PlayerToolbar.ui:106 msgid "Next" msgstr "Próxima" #: data/ui/PlaylistControls.ui:9 msgid "_Delete" msgstr "E_xcluir" #: data/ui/PlaylistControls.ui:13 msgid "_Rename…" msgstr "_Renomear…" #: data/ui/PlaylistControls.ui:28 msgid "Playlist Name" msgstr "Nome da lista de reprodução" #: data/ui/PlaylistControls.ui:62 msgid "_Done" msgstr "_Finalizado" #: data/ui/PlaylistDialog.ui:16 msgid "Add to Playlist" msgstr "Adicionar para lista de reprodução" #: data/ui/PlaylistDialog.ui:27 msgid "_Cancel" msgstr "_Cancelar" #: data/ui/PlaylistDialog.ui:36 msgid "_Add" msgstr "_Adicionar" #: data/ui/PlaylistDialog.ui:91 msgid "Enter a name for your first playlist" msgstr "Digite um nome para sua primeira lista de reprodução" #: data/ui/PlaylistDialog.ui:116 msgid "C_reate" msgstr "C_riar" #: data/ui/PlaylistDialog.ui:177 msgid "New Playlist…" msgstr "Nova lista de reprodução…" #: data/ui/PlaylistDialog.ui:189 msgid "Add" msgstr "Adicionar" #: data/ui/PreferencesDialog.ui:9 msgid "Player Settings" msgstr "Configurações do reprodutor" #: data/ui/PreferencesDialog.ui:12 msgid "Repeat Mode" msgstr "Modo repetição" #: data/ui/PreferencesDialog.ui:16 msgid "None" msgstr "Nenhum" #: data/ui/PreferencesDialog.ui:17 msgid "Song" msgstr "Músicas" #: data/ui/PreferencesDialog.ui:18 msgid "All" msgstr "Todas" #: data/ui/PreferencesDialog.ui:19 gnomemusic/player.py:51 msgid "Shuffle" msgstr "Embaralhar" #: data/ui/PreferencesDialog.ui:28 msgid "Balance loudness between songs if ReplayGain metadata is found" msgstr "Nivelar volume entre músicas se dados ReplayGain forem encontrados" #: data/ui/PreferencesDialog.ui:35 msgid "Power Settings" msgstr "Configurações de Energia" #: data/ui/PreferencesDialog.ui:38 msgid "Inhibit Suspend" msgstr "Inibir suspensão" #: data/ui/PreferencesDialog.ui:39 msgid "Only while playing" msgstr "Enquanto estiver tocando" #: data/ui/SearchView.ui:55 data/ui/SearchView.ui:112 msgid "View All" msgstr "Ver tudo" #: data/ui/SearchView.ui:154 msgid "Songs" msgstr "Músicas" #: data/ui/SongWidgetMenu.ui:19 msgid "_Remove from Playlist" msgstr "_Remover da lista de reprodução" #: data/ui/StatusNavigationPage.ui:36 msgid "Welcome to Music" msgstr "Boas vindas ao Música" #: gnomemusic/about.py:140 msgid "The GNOME Project" msgstr "O Projeto GNOME" #. Translators should localize the following string which #. will be displayed at the bottom of the about box to give #. credit to the translator(s). #: gnomemusic/about.py:146 msgid "translator-credits" msgstr "" "Georges Basile Stavracas Neto \n" "Antonio Fernandes C. Neto \n" "Avelino \n" "Ricardo Barbosa \n" "Felipe Braga \n" "Fábio Nogueira \n" "Henrique Machado Campos \n" "Rafael Fontenelle \n" "Enrico Nicoletto \n" "Matheus Barbosa \n" "Leônidas Araújo \n" "Alex Jr " #: gnomemusic/about.py:150 msgid "© The GNOME Music Developers" msgstr "© Os desenvolvedores do GNOME Música" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:839 msgid "Most Played" msgstr "Mais tocadas" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:893 msgid "Never Played" msgstr "Nunca tocadas" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:946 msgid "Recently Played" msgstr "Recentemente tocadas" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1025 msgid "Recently Added" msgstr "Recentemente adicionadas" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1088 msgid "Favorite Songs" msgstr "Músicas favoritas" #. TRANSLATORS: this is a playlist name indicating that the #. files are not tagged enough to be displayed in the albums #. or artists views. #: gnomemusic/grilowrappers/grltrackerplaylists.py:1142 msgid "Insufficiently Tagged" msgstr "Marcação insuficiente" #: gnomemusic/gstplayer.py:418 msgid "Unable to play the file" msgstr "Não foi possível reproduzir o arquivo" #: gnomemusic/gstplayer.py:424 msgid "_Find in {}" msgstr "_Procurar em {}" #. TRANSLATORS: separator for two codecs #: gnomemusic/gstplayer.py:434 msgid " and " msgstr " e " #. TRANSLATORS: separator for a list of codecs #: gnomemusic/gstplayer.py:437 msgid ", " msgstr ", " #: gnomemusic/gstplayer.py:439 msgid "{} is required to play the file, but is not installed." msgid_plural "{} are required to play the file, but are not installed." msgstr[0] "{} é necessário para reproduzir o arquivo, mas não está instalado." msgstr[1] "" "{} são necessários para reproduzir o arquivo, mas não estão instalados." #: gnomemusic/inhibitsuspend.py:69 msgid "Playing music" msgstr "Reproduzindo música" #. Translators: "shuffle" causes tracks to play in random order. #: gnomemusic/player.py:48 msgid "Shuffle/Repeat Off" msgstr "Desligar embaralhar/repetir" #: gnomemusic/player.py:49 msgid "Repeat Song" msgstr "Repetir música" #: gnomemusic/player.py:50 msgid "Repeat All" msgstr "Repetir tudo" #: gnomemusic/playlisttoast.py:55 msgid "Playlist {} removed" msgstr "Lista de reprodução {} removida" #: gnomemusic/playlisttoast.py:56 gnomemusic/songtoast.py:65 msgid "Undo" msgstr "Desfazer" #: gnomemusic/songtoast.py:64 msgid "{} removed from {}" msgstr "{} removida de {}" #: gnomemusic/utils.py:89 msgid "Unknown album" msgstr "Álbum desconhecido" #: gnomemusic/utils.py:110 msgid "Unknown Artist" msgstr "Artista desconhecido" #: gnomemusic/views/playlistsview.py:45 msgid "Playlists" msgstr "Listas de reprodução" #: gnomemusic/views/searchview.py:220 msgid "No Search Started" msgstr "Nenhuma busca iniciada" #: gnomemusic/views/searchview.py:222 msgid "Use the searchbar to start searching for albums, artists or songs" msgstr "Utilize a barra de pesquisa para buscar álbuns, artistas ou músicas" #: gnomemusic/views/searchview.py:226 msgid "No Results Found" msgstr "Nenhum resultado encontrado" #: gnomemusic/views/searchview.py:228 msgid "Try a different search" msgstr "Tente uma pesquisa diferente" #: gnomemusic/widgets/albumwidget.py:230 msgid "{} minute" msgid_plural "{} minutes" msgstr[0] "{} minuto" msgstr[1] "{} minutos" #: gnomemusic/widgets/discbox.py:74 msgid "Disc {}" msgstr "Disco {}" #: gnomemusic/widgets/playertoolbar.py:173 msgid "Pause" msgstr "Pausar" #: gnomemusic/widgets/playlistcontrols.py:130 msgid "{} Song" msgid_plural "{} Songs" msgstr[0] "{} música" msgstr[1] "{} músicas" #: gnomemusic/widgets/searchheaderbar.py:50 msgid "Search songs, artists and albums" msgstr "Pesquisar músicas, artistas e álbuns" #. noqa: F841 #: gnomemusic/widgets/songwidgetmenu.py:94 msgid "_Open Location" msgstr "_Abrir local do arquivo" #. TRANSLATORS: These are verbs, to (un)mark something as a #. favorite. #: gnomemusic/widgets/startoggle.py:36 msgid "Unstar" msgstr "Desfavoritar" #: gnomemusic/widgets/startoggle.py:36 msgid "Star" msgstr "Favoritar" #: gnomemusic/widgets/statusnavigationpage.py:51 msgid "Your XDG Music directory is not set." msgstr "Seu diretório de XDG Músicas não está definido." #: gnomemusic/widgets/statusnavigationpage.py:58 msgid "Music Folder" msgstr "Pasta Músicas" #. TRANSLATORS: This is a label to display a link to open user's music #. folder. {} will be replaced with the translated text 'Music folder' #: gnomemusic/widgets/statusnavigationpage.py:66 msgid "The contents of your {} will appear here." msgstr "O conteúdo da sua {} irá aparecer aqui." #: gnomemusic/widgets/statusnavigationpage.py:116 msgid "No Music Found" msgstr "Nenhuma música encontrada" #: gnomemusic/widgets/statusnavigationpage.py:117 msgid "Try a Different Search" msgstr "Tente uma pesquisa diferente" #: gnomemusic/widgets/statusnavigationpage.py:121 msgid "GNOME Music could not connect to Tracker." msgstr "O GNOME Música não conseguiu se conectar ao Tracker." #: gnomemusic/widgets/statusnavigationpage.py:123 msgid "Your music files cannot be indexed without Tracker running." msgstr "" "Seus arquivos de música não podem ser indexados sem o Tracker em execução." #: gnomemusic/widgets/statusnavigationpage.py:129 msgid "Your system Tracker version seems outdated." msgstr "A versão do Tracker do seu sistema parece estar desatualizada." #: gnomemusic/widgets/statusnavigationpage.py:131 msgid "Music needs Tracker version 3.0.0 or higher." msgstr "O Música precisa do Tracker na versão 3.0.0 ou mais novo." #~ msgid "Report music history to Last.fm" #~ msgstr "Relatar histórico de músicas para o Last.fm" #~ msgid "" #~ "Enables or disables sending scrobbles and the “currently playing” info to " #~ "Last.fm." #~ msgstr "" #~ "Habilita ou desabilita enviar scrobbles e a informação “currently " #~ "playing” para o Last.fm." #~ msgid "Last.fm Account" #~ msgstr "Conta do Last.fm" #~ msgid "Report Music Listening" #~ msgstr "Relatar música sendo ouvida" #~ msgid "_Help" #~ msgstr "A_juda" #~ msgid "Select" #~ msgstr "Selecionar" #~ msgid "Back" #~ msgstr "Voltar" #~ msgid "" #~ "Last.fm is a music discovery service that gives you personalised " #~ "recommendations based on the music you listen to." #~ msgstr "" #~ "Last.fm é um serviço de descoberta de músicas que fornece recomendações " #~ "personalizadas com base nas músicas que você ouve." #~ msgid "Music Reporting Not Setup" #~ msgstr "Relatório de música não configurado" #~ msgid "Login to your Last.fm account to report your music listening." #~ msgstr "Faça login sua conta do Last.fm para relatar suas músicas." #~ msgid "Login" #~ msgstr "Entrar" #~ msgid "Select All" #~ msgstr "Selecionar todos" #~ msgid "Select None" #~ msgstr "Selecionar nenhum" #~ msgid "Click on items to select them" #~ msgstr "Clique nos itens para selecioná-los" #~ msgid "_Add to Playlist" #~ msgstr "_Adicionar para lista de reprodução" #~ msgid "Copyright The GNOME Music Developers" #~ msgstr "Direitos autorais dos desenvolvedores do GNOME Música" #~ msgid "Translated by" #~ msgstr "Traduzido por" #~ msgid "Artists Results" #~ msgstr "Resultados de artistas" #~ msgid "Albums Results" #~ msgstr "Resultados de álbuns" #~ msgid "Selected {} song" #~ msgid_plural "Selected {} songs" #~ msgstr[0] "{} música selecionada" #~ msgstr[1] "{} músicas selecionadas" #~ msgid "Your music listening is reported to Last.fm." #~ msgstr "A música sendo ouvida é relatada à Last.fm." #~ msgid "Your music listening is not reported to Last.fm." #~ msgstr "A música sendo ouvida não é relatada à Last.fm." #~ msgid "Logged in as {}" #~ msgstr "Autenticado como {}" #~ msgid "Configure" #~ msgstr "Configurar" 0707010000010B000081A400000000000000000000000166968E4E00005757000000000000000000000000000000000000001A00000000gnome-music-46.1/po/ro.po# Romanian translation for gnome-music. # Copyright (C) 2014 gnome-music's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-music package. # Bogdan Mințoi , 2014. # Daniel Șerbănescu , 2017. msgid "" msgstr "" "Project-Id-Version: gnome-music master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-music/issues\n" "POT-Creation-Date: 2023-07-04 07:49+0000\n" "PO-Revision-Date: 2023-07-29 14:15+0300\n" "Last-Translator: Florentina Mușat \n" "Language-Team: Gnome Romanian Translation Team \n" "Language: ro\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " "20)) ? 1 : 2);\n" "X-Generator: Poedit 3.3.2\n" "X-Project-Style: gnome\n" "X-Poedit-SourceCharset: UTF-8\n" #: data/org.gnome.Music.appdata.xml.in.in:6 #: data/org.gnome.Music.desktop.in.in:3 gnomemusic/about.py:243 #: gnomemusic/application.py:61 gnomemusic/window.py:71 msgid "Music" msgstr "Muzică" #: data/org.gnome.Music.appdata.xml.in.in:7 #: data/org.gnome.Music.desktop.in.in:5 msgid "Play and organize your music collection" msgstr "Redă și organizează colecția dumneavoastră de muzică" #: data/org.gnome.Music.appdata.xml.in.in:9 msgid "An easy and pleasant way to play your music." msgstr "Un mod ușor și plăcut de a reda muzica." #: data/org.gnome.Music.appdata.xml.in.in:12 msgid "" "Find tracks in your local collection, use automatically generated playlists " "or curate a fresh one." msgstr "" "Găsiți piese în colecția locală, utilizați liste de redare generate automat " "sau creeați una manual." #: data/org.gnome.Music.appdata.xml.in.in:182 msgid "The GNOME Music developers" msgstr "Dezvoltatorii Muzică GNOME" #: data/org.gnome.Music.desktop.in.in:4 msgid "Music Player" msgstr "Player pentru muzică" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Music.desktop.in.in:13 msgid "Music;Player;" msgstr "Music;Player;Muzică;Redare;" #: data/org.gnome.Music.gschema.xml:12 msgid "Window size" msgstr "Dimensiune fereastră" #: data/org.gnome.Music.gschema.xml:13 msgid "Window size (width and height)." msgstr "Dimensiune fereastră (lățime și înălțime)." #: data/org.gnome.Music.gschema.xml:17 msgid "Window maximized" msgstr "Fereastră maximizată" #: data/org.gnome.Music.gschema.xml:18 msgid "Window maximized state." msgstr "Starea ferestrei maximizată." #: data/org.gnome.Music.gschema.xml:22 msgid "Playback repeat mode" msgstr "Mod de repetare a redării" #. Translators: Don't translate allowed values, just the description in the brackets #: data/org.gnome.Music.gschema.xml:24 msgid "" "Value identifies whether to repeat or randomize playback through the " "collection. Allowed values are: “none” (repeat and shuffle are off), " "“song” (repeat current song), “all” (repeat playlist, no shuffle), " "“shuffle” (shuffle playlist, presumes repeat all)." msgstr "" "Valoarea identifică dacă redarea se face repetitiv sau aleatoriu din " "colecție. Valorile permise sunt: „nimic” (repetiția și redarea aleatorie " "sunt dezactivate), „melodie” (se repetă doar melodia actuală), „tot” (se " "repetă toată lista de redare, fără amestecare), „amestecare” (amestecă lista " "de redare, implică repetarea întregii liste)." #: data/org.gnome.Music.gschema.xml:28 msgid "Enable ReplayGain" msgstr "Activează ReplayGain" #: data/org.gnome.Music.gschema.xml:29 msgid "Enables or disables ReplayGain for albums" msgstr "Activează sau dezactivează ReplayGain pentru albume" #: data/org.gnome.Music.gschema.xml:33 msgid "Inhibit system suspend" msgstr "Inhibă suspendarea sistemului" #: data/org.gnome.Music.gschema.xml:34 msgid "Enables or disables inhibiting system suspend while playing music" msgstr "" "Activează sau dezactivează inhibarea suspendării sistemului în timpul " "redării de muzică" #: data/org.gnome.Music.gschema.xml:38 msgid "Report music history to Last.fm" msgstr "Raportează istoricul muzicii la Last.fm" #: data/org.gnome.Music.gschema.xml:39 msgid "" "Enables or disables sending scrobbles and the “currently playing” info to " "Last.fm." msgstr "" "Activează sau dezactivează trimiterea de scrobbles și de informații de la " "„se redă acum” către Last.fm." #: data/ui/AlbumWidget.ui:84 data/ui/PlayerToolbar.ui:87 #: data/ui/PlaylistControls.ui:101 gnomemusic/widgets/playertoolbar.py:170 msgid "Play" msgstr "Redă" #: data/ui/AlbumWidget.ui:130 data/ui/PlaylistControls.ui:5 #: data/ui/SongWidgetMenu.ui:11 msgid "_Play" msgstr "_Redare" #: data/ui/AlbumWidget.ui:134 msgid "Add to _Favorite Songs" msgstr "Adaugă la Melodii _favorite" #: data/ui/AlbumWidget.ui:138 data/ui/SongWidgetMenu.ui:15 msgid "_Add to Playlist…" msgstr "_Adaugă în lista de redare…" #: data/ui/AppMenu.ui:23 data/ui/LastfmDialog.ui:8 msgid "Last.fm Account" msgstr "Cont Last.fm" #: data/ui/AppMenu.ui:36 msgid "Report Music Listening" msgstr "Raportează ascultarea de muzică" #: data/ui/AppMenu.ui:58 msgid "_Keyboard Shortcuts" msgstr "S_curtături de tastatură" #: data/ui/AppMenu.ui:68 msgid "_Help" msgstr "_Ajutor" #: data/ui/AppMenu.ui:78 msgid "_About Music" msgstr "_Despre Muzică" #: data/ui/EmptyView.ui:30 msgid "Welcome to Music" msgstr "Bine ați venit la Muzică" #: data/ui/HeaderBar.ui:17 msgid "Menu" msgstr "Meniu" #: data/ui/HeaderBar.ui:25 data/ui/SearchHeaderBar.ui:15 msgid "Select" msgstr "Selectează" #: data/ui/HeaderBar.ui:31 data/ui/PlaylistDialog.ui:213 #: data/ui/SearchHeaderBar.ui:20 msgid "_Cancel" msgstr "_Anulează" #: data/ui/HeaderBar.ui:43 data/ui/SearchHeaderBar.ui:32 msgid "Search" msgstr "Caută" #: data/ui/HeaderBar.ui:51 msgid "Back" msgstr "Înapoi" #: data/ui/help-overlay.ui:11 msgctxt "shortcut window" msgid "General" msgstr "Generale" #: data/ui/help-overlay.ui:14 msgctxt "shortcut window" msgid "Close window" msgstr "Închide fereastra" #: data/ui/help-overlay.ui:20 msgctxt "shortcut window" msgid "Search" msgstr "Caută" #: data/ui/help-overlay.ui:26 msgctxt "shortcut window" msgid "Help" msgstr "Ajutor" #: data/ui/help-overlay.ui:32 msgctxt "shortcut window" msgid "Shortcuts" msgstr "Scurtături" #: data/ui/help-overlay.ui:40 msgctxt "shortcut window" msgid "Playback" msgstr "Redare" #: data/ui/help-overlay.ui:43 msgctxt "shortcut window" msgid "Play/Pause" msgstr "Redare/Pauză" #: data/ui/help-overlay.ui:49 msgctxt "shortcut window" msgid "Next song" msgstr "Melodia următoare" #: data/ui/help-overlay.ui:55 msgctxt "shortcut window" msgid "Previous song" msgstr "Melodia precedentă" #: data/ui/help-overlay.ui:61 msgctxt "shortcut window" msgid "Toggle repeat" msgstr "Comută repetarea" #: data/ui/help-overlay.ui:67 msgctxt "shortcut window" msgid "Toggle shuffle" msgstr "Comută amestecarea" #: data/ui/help-overlay.ui:75 msgctxt "shortcut window" msgid "Navigation" msgstr "Navigare" #: data/ui/help-overlay.ui:78 msgctxt "shortcut window" msgid "Go to Albums" msgstr "Navighează la albume" #: data/ui/help-overlay.ui:84 msgctxt "shortcut window" msgid "Go to Artists" msgstr "Navighează la artiști" #: data/ui/help-overlay.ui:90 msgctxt "shortcut window" msgid "Go to Songs" msgstr "Navighează la melodii" #: data/ui/help-overlay.ui:96 msgctxt "shortcut window" msgid "Go to Playlists" msgstr "Navighează la listele de redare" #: data/ui/help-overlay.ui:102 msgctxt "shortcut window" msgid "Go back" msgstr "Înapoi" #: data/ui/LastfmDialog.ui:21 msgid "" "Last.fm is a music discovery service that gives you personalised " "recommendations based on the music you listen to." msgstr "" "Last.fm este un serviciu de descoperire de muzică ce vă oferă recomandări " "personalizate pe baza muzicii pe care o ascultați." #: data/ui/LastfmDialog.ui:31 gnomemusic/widgets/lastfmdialog.py:57 msgid "Music Reporting Not Setup" msgstr "Raportarea de muzică nu este stabilită" #: data/ui/LastfmDialog.ui:44 gnomemusic/widgets/lastfmdialog.py:60 msgid "Login to your Last.fm account to report your music listening." msgstr "" "Autentificați-vă la contul Last.fm pentru a raporta ascultarea de muzică." #: data/ui/LastfmDialog.ui:55 gnomemusic/widgets/lastfmdialog.py:58 msgid "Login" msgstr "Autentificare" #: data/ui/PlayerToolbar.ui:74 msgid "Previous" msgstr "Precedenta" #: data/ui/PlayerToolbar.ui:106 msgid "Next" msgstr "Următoarea" #: data/ui/PlaylistControls.ui:9 msgid "_Delete" msgstr "Ș_terge" #: data/ui/PlaylistControls.ui:13 msgid "_Rename…" msgstr "_Redenumește…" #: data/ui/PlaylistControls.ui:28 msgid "Playlist Name" msgstr "Numele listei de redare" #: data/ui/PlaylistControls.ui:62 msgid "_Done" msgstr "_Gata" #: data/ui/PlaylistDialog.ui:52 msgid "Enter a name for your first playlist" msgstr "Introduceți un nume pentru prima listă de redare" #: data/ui/PlaylistDialog.ui:77 msgid "C_reate" msgstr "C_reează" #: data/ui/PlaylistDialog.ui:146 msgid "New Playlist…" msgstr "Listă de redare nouă…" #: data/ui/PlaylistDialog.ui:161 msgid "Add" msgstr "Adaugă" #: data/ui/PlaylistDialog.ui:202 msgid "Add to Playlist" msgstr "Adaugă în lista de redare" #: data/ui/PlaylistDialog.ui:222 msgid "_Add" msgstr "_Adaugă" #: data/ui/SearchView.ui:33 gnomemusic/views/artistsview.py:51 msgid "Artists" msgstr "Artiști" #: data/ui/SearchView.ui:42 data/ui/SearchView.ui:84 msgid "View All" msgstr "Vizualizează toate" #: data/ui/SearchView.ui:75 gnomemusic/views/albumsview.py:56 msgid "Albums" msgstr "Albume" #: data/ui/SearchView.ui:117 gnomemusic/views/songsview.py:52 msgid "Songs" msgstr "Melodii" #: data/ui/SelectionBarMenuButton.ui:7 msgid "Select All" msgstr "Selectează toate" #: data/ui/SelectionBarMenuButton.ui:11 msgid "Select None" msgstr "Deselectează toate" #: data/ui/SelectionBarMenuButton.ui:19 gnomemusic/widgets/headerbar.py:69 msgid "Click on items to select them" msgstr "Clic pe obiecte pentru a le selecta" #: data/ui/SelectionToolbar.ui:8 msgid "_Add to Playlist" msgstr "_Adaugă în lista de redare" #: data/ui/SongWidgetMenu.ui:19 msgid "_Remove from Playlist" msgstr "_Elimină din lista de redare" #: gnomemusic/about.py:245 msgid "The GNOME Project" msgstr "Proiectul GNOME" #: gnomemusic/about.py:249 msgid "translator-credits" msgstr "" "Florentina Mușat , " "2020-2023" #: gnomemusic/about.py:253 msgid "Copyright The GNOME Music Developers" msgstr "Drepturi de autor dezvoltatorii Music GNOME" #: gnomemusic/about.py:256 msgid "Translated by" msgstr "Tradus de" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:894 msgid "Most Played" msgstr "Cele mai redate" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:948 msgid "Never Played" msgstr "Niciodată redate" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1001 msgid "Recently Played" msgstr "Redate recent" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1064 msgid "Recently Added" msgstr "Adăugate recent" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1127 msgid "Favorite Songs" msgstr "Melodii favorite" #: gnomemusic/gstplayer.py:408 msgid "Unable to play the file" msgstr "Nu s-a putut reda fișierul" #: gnomemusic/gstplayer.py:414 msgid "_Find in {}" msgstr "_Caută în {}" #. TRANSLATORS: separator for two codecs #: gnomemusic/gstplayer.py:424 msgid " and " msgstr " și " #. TRANSLATORS: separator for a list of codecs #: gnomemusic/gstplayer.py:427 msgid ", " msgstr ", " #: gnomemusic/gstplayer.py:429 msgid "{} is required to play the file, but is not installed." msgid_plural "{} are required to play the file, but are not installed." msgstr[0] "{} este necesar pentru a reda fișierul, dar nu este instalat." msgstr[1] "{} sunt necesare pentru a reda fișierul, dar nu sunt instalate." msgstr[2] "{} sunt necesare pentru a reda fișierul, dar nu sunt instalate." #: gnomemusic/inhibitsuspend.py:63 msgid "Playing music" msgstr "Se redă muzica" #. Translators: "shuffle" causes tracks to play in random order. #: gnomemusic/player.py:44 msgid "Shuffle/Repeat Off" msgstr "Amestecare/Repetare oprită" #: gnomemusic/player.py:45 msgid "Repeat Song" msgstr "Repetă piesa" #: gnomemusic/player.py:46 msgid "Repeat All" msgstr "Repetă toate" #: gnomemusic/player.py:47 msgid "Shuffle" msgstr "Amestecă" #: gnomemusic/playlisttoast.py:55 msgid "Playlist {} removed" msgstr "Listă de redare {} eliminată" #: gnomemusic/playlisttoast.py:56 gnomemusic/songtoast.py:65 msgid "Undo" msgstr "Anulează" #: gnomemusic/songtoast.py:64 msgid "{} removed from {}" msgstr "{} eliminat de la {}" #: gnomemusic/utils.py:92 msgid "Unknown album" msgstr "Album necunoscut" #: gnomemusic/utils.py:113 msgid "Unknown Artist" msgstr "Artist necunoscut" #: gnomemusic/views/emptyview.py:65 msgid "Your XDG Music directory is not set." msgstr "Directorul de muzică XDG nu este stabilit." #: gnomemusic/views/emptyview.py:72 msgid "Music Folder" msgstr "Dosar de muzică" #. TRANSLATORS: This is a label to display a link to open user's music #. folder. {} will be replaced with the translated text 'Music folder' #: gnomemusic/views/emptyview.py:76 msgid "The contents of your {} will appear here." msgstr "Conținuturile a {} vor apărea aici." #: gnomemusic/views/emptyview.py:124 msgid "No Music Found" msgstr "Nu s-a găsit muzică" #: gnomemusic/views/emptyview.py:125 msgid "Try a Different Search" msgstr "Încercați o altă căutare" #: gnomemusic/views/emptyview.py:129 msgid "GNOME Music could not connect to Tracker." msgstr "Muzică GNOME nu s-a putut conecta la Tracker." #: gnomemusic/views/emptyview.py:131 msgid "Your music files cannot be indexed without Tracker running." msgstr "Fișierele de muzică nu pot fi indexate fără ca Tracker să ruleze." #: gnomemusic/views/emptyview.py:137 msgid "Your system Tracker version seems outdated." msgstr "Versiunea de Tracker din sistem pare învechită." #: gnomemusic/views/emptyview.py:139 msgid "Music needs Tracker version 3.0.0 or higher." msgstr "Muzică are nevoie de Tracker versiunea 3.0.0 sau mai nouă." #: gnomemusic/views/playlistsview.py:45 msgid "Playlists" msgstr "Liste de redare" #: gnomemusic/views/searchview.py:304 msgid "Artists Results" msgstr "Rezultate artiști" #: gnomemusic/views/searchview.py:318 msgid "Albums Results" msgstr "Rezultate albume" #: gnomemusic/widgets/albumwidget.py:245 msgid "{} minute" msgid_plural "{} minutes" msgstr[0] "{} minut" msgstr[1] "{} minute" msgstr[2] "{} de minute" #: gnomemusic/widgets/discbox.py:75 msgid "Disc {}" msgstr "Disc {}" #: gnomemusic/widgets/headerbar.py:66 msgid "Selected {} song" msgid_plural "Selected {} songs" msgstr[0] "A fost selectat {} cântec" msgstr[1] "A fost selectat {} cântece" msgstr[2] "A fost selectat {} de cântece" #: gnomemusic/widgets/lastfmdialog.py:64 msgid "Your music listening is reported to Last.fm." msgstr "Ascultarea de muzică este raportată la Last.fm." #: gnomemusic/widgets/lastfmdialog.py:66 msgid "Your music listening is not reported to Last.fm." msgstr "Ascultarea de muzică nu este raportată la Last.fm." #. TRANSLATORS: displays the username of the Last.fm account #: gnomemusic/widgets/lastfmdialog.py:70 msgid "Logged in as {}" msgstr "Autentificat ca {}" #: gnomemusic/widgets/lastfmdialog.py:71 msgid "Configure" msgstr "Configurează" #: gnomemusic/widgets/playertoolbar.py:167 msgid "Pause" msgstr "Pauză" #: gnomemusic/widgets/playlistcontrols.py:130 msgid "{} Song" msgid_plural "{} Songs" msgstr[0] "{} melodie" msgstr[1] "{} melodii" msgstr[2] "{} de melodii" #: gnomemusic/widgets/searchheaderbar.py:66 msgid "Search songs, artists, albums and playlists" msgstr "Caută melodii, artiști, albume și liste de redare" #~ msgid "GNOME Music" #~ msgstr "Muzică GNOME" #~ msgid "Window position" #~ msgstr "Poziție fereastră" #~ msgid "Window position (x and y)." #~ msgstr "Poziție fereastră (x și y)." #~ msgid "A music player and management application for GNOME." #~ msgstr "O aplicație de administrare și redare de muzică pentru GNOME." #~ msgid "Visit GNOME Music website" #~ msgstr "Vizitați situl web al GNOME Music" #~ msgid "" #~ "GNOME Music 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.\n" #~ "\n" #~ "GNOME Music 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.\n" #~ "\n" #~ "You should have received a copy of the GNU General Public License along " #~ "with GNOME Music; if not, write to the Free Software Foundation, Inc., 51 " #~ "Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ "\n" #~ "The GNOME Music authors hereby grant permission for non-GPL compatible " #~ "GStreamer plugins to be used and distributed together with GStreamer and " #~ "GNOME Music. This permission is above and beyond the permissions granted " #~ "by the GPL license by which GNOME Music is covered. If you modify this " #~ "code, you may extend this exception to your version of the code, but you " #~ "are not obligated to do so. If you do not wish to do so, delete this " #~ "exception statement from your version." #~ msgstr "" #~ "Muzică GNOME este un software liber; îl puteți redistribui și/sau " #~ "modifica în conformitate cu termenii Licenței Publice Generale GNU așa " #~ "cum este publicată de Free Software Foundation; fie versiunea 2 a " #~ "Licenței, fie (la latitudinea dumneavoastră) orice versiune ulterioară.\n" #~ "\n" #~ "Muzică GNOME este distribuit cu speranța că va fi util, dar FĂRĂ NICIO " #~ "GARANȚIE, fără nici măcar a garanției implicite de VANDABILITATE sau " #~ "CONFORMITATE UNUI ANUMIT SCOP. Citiți Licența Publică Generală GNU " #~ "pentru mai multe detalii.\n" #~ "\n" #~ "Ar trebui să fi primit o copie a Licenței Publice Generale GNU împreună " #~ "cu Muzică GNOME; dacă nu, scrieți la Free Software Foundation, Inc., 51 " #~ "Franklin St., Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ "\n" #~ "Autorii Muzică GNOME vă oferă permisiunea de a folosi module non-GPL " #~ "compatibile cu GStreamer și de a le distribui împreună cu GStreamer și " #~ "Muzică GNOME. Această permisiune depășește termenii licenței GPL sub " #~ "care Muzică GNOME este pus la dispoziția publicului. Dacă modificați " #~ "acest cod, aveți posibilitatea să adăugați această excepție la versiunea " #~ "dumneavoastră de cod, dar nu sunteți obligat să o faceți. Dacă nu doriți " #~ "acest lucru, ștergeți această declarație din versiunea dumneavoastră." #~ msgid "Loading" #~ msgstr "Se încarcă" #~ msgid "Add to Playlist…" #~ msgstr "_Adaugă în lista de redare…" #~ msgid "" #~ "An easy way to play your music. Automatically discover music on your " #~ "computer, the local network and internet services." #~ msgstr "" #~ "O modalitate ușoară de a reda muzica deținută. Descoperă automat muzica " #~ "de pe calculator, rețeaua locală și servicii de pe internet." #~ msgid "" #~ "Find tracks in your local collection, get music from DLNA servers or try " #~ "something new with the Jamendo and Magnatune services." #~ msgstr "" #~ "Găsește piese în colecția locală, obțineți muzică de la servere DLNA sau " #~ "încercați ceva nou cu noile servicii Jamendo și Magnatune." #~ msgid "Inital state has been displayed" #~ msgstr "Starea inițială a fost afișată" #~ msgid "Set to true when initial state has been displayed" #~ msgstr "Stabiliți la adevărat când starea inițială a fost afișată" #~ msgid "Released" #~ msgstr "Lansat" #~ msgid "Running Length" #~ msgstr "Lungimea piesei" #~ msgid "Composer" #~ msgstr "Compozitor" #~ msgctxt "context menu item" #~ msgid "Play" #~ msgstr "Redare" #~ msgid "Hey DJ" #~ msgstr "Salut DJ" #~ msgid "All" #~ msgstr "Toate" #~ msgid "Artist" #~ msgstr "Artist" #~ msgid "Album" #~ msgstr "Album" #~ msgid "Track Title" #~ msgstr "Titlul piesei" #~ msgid "Local" #~ msgstr "Local" #~ msgid "Sources" #~ msgstr "Surse" #~ msgid "Match" #~ msgstr "Potrivire" #~ msgid "Untitled" #~ msgstr "Fără titlu" #~ msgid "@icon@" #~ msgstr "@icon@" #~ msgid "_Quit" #~ msgstr "_Ieșire" #~ msgid "Music is the new GNOME music playing application." #~ msgstr "Muzică este noua aplicație GNOME pentru redare de muzică." #~ msgid "org.gnome.Music" #~ msgstr "org.gnome.Music" #~ msgid "Selected %d item" #~ msgid_plural "Selected %d items" #~ msgstr[0] "Selectat %d element" #~ msgstr[1] "Selectat %d elemente" #~ msgstr[2] "Selectat %d de elemente" #~ msgid "Empty" #~ msgstr "Gol" #~ msgid "%d min" #~ msgstr "%d min" #~ msgid "Search mode" #~ msgstr "Mod de căutare" #~ msgid "If true, the search bar is shown." #~ msgstr "Dacă este adevărat, bara de căutare va fi afișată." #~ msgid "Notifications mode" #~ msgstr "Mod de notificări" #~ msgid "Enables or disables playback notifications" #~ msgstr "Actvează sau dezactivează notificările de redare" #~ msgid "Select Playlist" #~ msgstr "Selectează lista de redare" #~ msgid "Not playing" #~ msgstr "Nu este în redare" #~ msgid "by %s, from %s" #~ msgstr "de %s, de la %s" #~ msgid "" #~ "No Music found!\n" #~ " Put some files into the folder %s" #~ msgstr "" #~ "Nu s-a găsit nicio muzică!\n" #~ " Adăugați câteva fișiere în dosarul %s" #~ msgid "All Artists" #~ msgstr "Toți artiștii" #~ msgid "_New Playlist" #~ msgstr "_Listă de redare nouă" #~ msgid "Load More" #~ msgstr "Încarcă mai mult" #~ msgid "Now _Playing" #~ msgstr "Acum _se redă" 0707010000010C000081A400000000000000000000000166968E4E000064BC000000000000000000000000000000000000001A00000000gnome-music-46.1/po/ru.po# Russian translation for gnome-music. # Copyright (C) 2012 gnome-music's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-music package. # Andrew Archer , 2014. # Mihail Gurin , 2014. # Ivan Komaritsyn , 2015. # Yuri Myasoedov , 2012, 2014, 2015. # Stas Solovey , 2012-2018, 2019. # Артемий Судаков , 2020. # msgid "" msgstr "" "Project-Id-Version: gnome-music master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-music/issues\n" "POT-Creation-Date: 2024-02-11 20:43+0000\n" "PO-Revision-Date: 2024-02-12 14:07+0300\n" "Last-Translator: Artur So \n" "Language-Team: Русский \n" "Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Generator: Poedit 3.4.2\n" #: data/org.gnome.Music.appdata.xml.in.in:6 #: data/org.gnome.Music.desktop.in.in:3 data/ui/StatusNavigationPage.ui:4 #: gnomemusic/about.py:138 gnomemusic/application.py:59 gnomemusic/window.py:65 msgid "Music" msgstr "Музыка" #: data/org.gnome.Music.appdata.xml.in.in:7 #: data/org.gnome.Music.desktop.in.in:5 msgid "Play and organize your music collection" msgstr "Воспроизведение и управление музыкальной коллекцией" #: data/org.gnome.Music.appdata.xml.in.in:9 msgid "An easy and pleasant way to play your music." msgstr "Лёгкий и приятный способ послушать вашу музыку." #: data/org.gnome.Music.appdata.xml.in.in:12 msgid "" "Find tracks in your local collection, use automatically generated playlists " "or curate a fresh one." msgstr "" "Ищите треки в вашей коллекции, пользуйтесь автоматическими списками " "воспроизведения или соберите свой свежий." #. developer_name tag deprecated with Appstream 1.0 #: data/org.gnome.Music.appdata.xml.in.in:188 msgid "The GNOME Music developers" msgstr "Разработчики приложения Музыка GNOME" #: data/org.gnome.Music.desktop.in.in:4 msgid "Music Player" msgstr "Музыкальный проигрыватель" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Music.desktop.in.in:13 msgid "Music;Player;" msgstr "Музыка;Проигрыватель;" #: data/org.gnome.Music.gschema.xml:12 msgid "Window size" msgstr "Размер окна" #: data/org.gnome.Music.gschema.xml:13 msgid "Window size (width and height)." msgstr "Размер окна (ширина и высота)." #: data/org.gnome.Music.gschema.xml:17 msgid "Window maximized" msgstr "Развёрнутое окно" #: data/org.gnome.Music.gschema.xml:18 msgid "Window maximized state." msgstr "Режим развёрнутого окна." #: data/org.gnome.Music.gschema.xml:22 msgid "Playback repeat mode" msgstr "Режим повторного воспроизведения" #. Translators: Don't translate allowed values, just the description in the brackets #: data/org.gnome.Music.gschema.xml:24 msgid "" "Value identifies whether to repeat or randomize playback through the " "collection. Allowed values are: “none” (repeat and shuffle are off), " "“song” (repeat current song), “all” (repeat playlist, no shuffle), " "“shuffle” (shuffle playlist, presumes repeat all)." msgstr "" "Значение управляет повтором или случайным воспроизведением коллекции. " "Допустимые значения: «none» (повтор и случайный порядок отключены), " "«song» (повторять текущую композицию), «all» (повторять список " "воспроизведения, случайный порядок отключён), «shuffle» (случайный порядок " "включён)." #: data/org.gnome.Music.gschema.xml:28 data/ui/PreferencesDialog.ui:27 msgid "Enable ReplayGain" msgstr "Включить ReplayGain" #: data/org.gnome.Music.gschema.xml:29 msgid "Enables or disables ReplayGain for albums" msgstr "Включает или выключает функцию ReplayGain для альбомов" #: data/org.gnome.Music.gschema.xml:33 msgid "Inhibit system suspend" msgstr "Запретить переход системы в режим ожидания" #: data/org.gnome.Music.gschema.xml:34 msgid "Enables or disables inhibiting system suspend while playing music" msgstr "" "Включает или выключает запрет перехода системы в режим ожидания при " "воспроизведении музыки" #: data/ui/AlbumsSearchNavigationPage.ui:5 data/ui/SearchView.ui:98 #: gnomemusic/views/albumsview.py:52 msgid "Albums" msgstr "Альбомы" #: data/ui/AlbumWidget.ui:84 data/ui/PlayerToolbar.ui:87 #: data/ui/PlaylistControls.ui:101 gnomemusic/widgets/playertoolbar.py:176 msgid "Play" msgstr "Воспроизвести" #: data/ui/AlbumWidget.ui:130 data/ui/PlaylistControls.ui:5 #: data/ui/SongWidgetMenu.ui:11 msgid "_Play" msgstr "_Воспроизвести" #: data/ui/AlbumWidget.ui:134 msgid "Add to _Favorite Songs" msgstr "Добавить в _избранные песни" #: data/ui/AlbumWidget.ui:138 data/ui/SongWidgetMenu.ui:15 msgid "_Add to Playlist…" msgstr "_Добавить в список воспроизведения…" #: data/ui/ArtistsSearchNavigationPage.ui:5 data/ui/SearchView.ui:41 #: gnomemusic/views/artistsview.py:51 msgid "Artists" msgstr "Исполнители" #: data/ui/HeaderBar.ui:14 msgid "Menu" msgstr "Меню" #: data/ui/HeaderBar.ui:22 data/ui/SearchHeaderBar.ui:12 msgid "Search" msgstr "Поиск" #: data/ui/HeaderBar.ui:31 data/ui/PreferencesDialog.ui:4 msgid "Preferences" msgstr "Настройки" #: data/ui/HeaderBar.ui:35 msgid "Keyboard Shortcuts" msgstr "Комбинации клавиш" #: data/ui/HeaderBar.ui:39 msgid "Help" msgstr "Справка" #: data/ui/HeaderBar.ui:43 msgid "About Music" msgstr "О приложении" #: data/ui/help-overlay.ui:11 msgctxt "shortcut window" msgid "General" msgstr "Основное" #: data/ui/help-overlay.ui:14 msgctxt "shortcut window" msgid "Close window" msgstr "Закрыть окно" #: data/ui/help-overlay.ui:20 msgctxt "shortcut window" msgid "Search" msgstr "Поиск" #: data/ui/help-overlay.ui:26 msgctxt "shortcut window" msgid "Help" msgstr "Справка" #: data/ui/help-overlay.ui:32 msgctxt "shortcut window" msgid "Shortcuts" msgstr "Комбинации" #: data/ui/help-overlay.ui:40 msgctxt "shortcut window" msgid "Playback" msgstr "Воспроизведение" #: data/ui/help-overlay.ui:43 msgctxt "shortcut window" msgid "Play/Pause" msgstr "Приостановить/Продолжить" #: data/ui/help-overlay.ui:49 msgctxt "shortcut window" msgid "Next song" msgstr "Следующая песня" #: data/ui/help-overlay.ui:55 msgctxt "shortcut window" msgid "Previous song" msgstr "Предыдущая песня" #: data/ui/help-overlay.ui:61 msgctxt "shortcut window" msgid "Toggle repeat" msgstr "Переключение режима повтора" #: data/ui/help-overlay.ui:67 msgctxt "shortcut window" msgid "Toggle shuffle" msgstr "Переключение режима случайного порядка" #: data/ui/help-overlay.ui:75 msgctxt "shortcut window" msgid "Navigation" msgstr "Навигация" #: data/ui/help-overlay.ui:78 msgctxt "shortcut window" msgid "Go to Albums" msgstr "Перейти к разделу Альбомы" #: data/ui/help-overlay.ui:84 msgctxt "shortcut window" msgid "Go to Artists" msgstr "Перейти к разделу Исполнители" #: data/ui/help-overlay.ui:90 msgctxt "shortcut window" msgid "Go to Songs" msgstr "Перейти к разделу Песни" #: data/ui/help-overlay.ui:96 msgctxt "shortcut window" msgid "Go to Playlists" msgstr "Перейти к разделу Списки воспроизведения" #: data/ui/help-overlay.ui:102 msgctxt "shortcut window" msgid "Go back" msgstr "Перейти назад" # Предыдущая композиция #: data/ui/PlayerToolbar.ui:74 msgid "Previous" msgstr "Предыдущая" # Следующая композиция #: data/ui/PlayerToolbar.ui:106 msgid "Next" msgstr "Следующая" #: data/ui/PlaylistControls.ui:9 msgid "_Delete" msgstr "_Удалить" #: data/ui/PlaylistControls.ui:13 msgid "_Rename…" msgstr "_Переименовать…" #: data/ui/PlaylistControls.ui:28 msgid "Playlist Name" msgstr "Имя списка воспроизведения" #: data/ui/PlaylistControls.ui:62 msgid "_Done" msgstr "_Готово" #: data/ui/PlaylistDialog.ui:16 msgid "Add to Playlist" msgstr "Добавить в список воспроизведения" #: data/ui/PlaylistDialog.ui:27 msgid "_Cancel" msgstr "_Отмена" #: data/ui/PlaylistDialog.ui:36 msgid "_Add" msgstr "_Добавить" #: data/ui/PlaylistDialog.ui:91 msgid "Enter a name for your first playlist" msgstr "Введите имя вашего первого списка воспроизведения" #: data/ui/PlaylistDialog.ui:116 msgid "C_reate" msgstr "_Создать" #: data/ui/PlaylistDialog.ui:177 msgid "New Playlist…" msgstr "Создать список воспроизведения…" #: data/ui/PlaylistDialog.ui:189 msgid "Add" msgstr "Добавить" #: data/ui/PreferencesDialog.ui:9 msgid "Player Settings" msgstr "Настройки проигрывателя" #: data/ui/PreferencesDialog.ui:12 msgid "Repeat Mode" msgstr "Режим повтора" #: data/ui/PreferencesDialog.ui:16 msgid "None" msgstr "Нет" #: data/ui/PreferencesDialog.ui:17 msgid "Song" msgstr "Песня" #: data/ui/PreferencesDialog.ui:18 msgid "All" msgstr "Все" #: data/ui/PreferencesDialog.ui:19 gnomemusic/player.py:51 msgid "Shuffle" msgstr "В случайном порядке" #: data/ui/PreferencesDialog.ui:28 msgid "Balance loudness between songs if ReplayGain metadata is found" msgstr "" "Выравнивать громкость между песнями, если найдены метаданные ReplayGain" #: data/ui/PreferencesDialog.ui:35 msgid "Power Settings" msgstr "Настройки питания" #: data/ui/PreferencesDialog.ui:38 msgid "Inhibit Suspend" msgstr "Запретить режим ожидания" #: data/ui/PreferencesDialog.ui:39 msgid "Only while playing" msgstr "Только при воспроизведении" #: data/ui/SearchView.ui:55 data/ui/SearchView.ui:112 msgid "View All" msgstr "Посмотреть все" #: data/ui/SearchView.ui:154 msgid "Songs" msgstr "Песни" #: data/ui/SongWidgetMenu.ui:19 msgid "_Remove from Playlist" msgstr "_Удалить из списка воспроизведения" #: data/ui/StatusNavigationPage.ui:36 msgid "Welcome to Music" msgstr "Добро пожаловать в Музыку" #: gnomemusic/about.py:140 msgid "The GNOME Project" msgstr "Проект GNOME" #. Translators should localize the following string which #. will be displayed at the bottom of the about box to give #. credit to the translator(s). #: gnomemusic/about.py:146 msgid "translator-credits" msgstr "" "Andrew Archer , 2014\n" "Mihail Gurin , 2014\n" "Ivan Komaritsyn , 2015\n" "Yuri Myasoedov , 2012, 2014, 2015\n" "Stas Solovey , 2012-2018, 2019\n" "Артемий Судаков , 2020\n" "Aleksandr Melman , 2022" #: gnomemusic/about.py:150 msgid "© The GNOME Music Developers" msgstr "Разработчики приложения Музыка GNOME" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:839 msgid "Most Played" msgstr "Часто воспроизводимое" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:893 msgid "Never Played" msgstr "Никогда не воспроизводилось" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:946 msgid "Recently Played" msgstr "Недавно воспроизводилось" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1025 msgid "Recently Added" msgstr "Недавно добавлено" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1088 msgid "Favorite Songs" msgstr "Избранные песни" #. TRANSLATORS: this is a playlist name indicating that the #. files are not tagged enough to be displayed in the albums #. or artists views. #: gnomemusic/grilowrappers/grltrackerplaylists.py:1142 msgid "Insufficiently Tagged" msgstr "Недостаточно отмеченные" #: gnomemusic/gstplayer.py:418 msgid "Unable to play the file" msgstr "Не удалось воспроизвести файл" #: gnomemusic/gstplayer.py:424 msgid "_Find in {}" msgstr "_Найти в {}" #. TRANSLATORS: separator for two codecs #: gnomemusic/gstplayer.py:434 msgid " and " msgstr " и " #. TRANSLATORS: separator for a list of codecs #: gnomemusic/gstplayer.py:437 msgid ", " msgstr ", " #: gnomemusic/gstplayer.py:439 msgid "{} is required to play the file, but is not installed." msgid_plural "{} are required to play the file, but are not installed." msgstr[0] "Для воспроизведения файла требуется {}, но не установлен." msgstr[1] "Для воспроизведения файла требуются {}, но не установлены." msgstr[2] "Для воспроизведения файла требуются {}, но не установлены." #: gnomemusic/inhibitsuspend.py:69 msgid "Playing music" msgstr "Воспроизведение музыки" #. Translators: "shuffle" causes tracks to play in random order. #: gnomemusic/player.py:48 msgid "Shuffle/Repeat Off" msgstr "Случайный порядок/Повтор выключены" #: gnomemusic/player.py:49 msgid "Repeat Song" msgstr "Повторять песню" #: gnomemusic/player.py:50 msgid "Repeat All" msgstr "Повторять все" #: gnomemusic/playlisttoast.py:55 msgid "Playlist {} removed" msgstr "Список воспроизведения {} удалён" #: gnomemusic/playlisttoast.py:56 gnomemusic/songtoast.py:65 msgid "Undo" msgstr "Отменить" #: gnomemusic/songtoast.py:64 msgid "{} removed from {}" msgstr "{} удалено из {}" #: gnomemusic/utils.py:89 msgid "Unknown album" msgstr "Неизвестный альбом" #: gnomemusic/utils.py:110 msgid "Unknown Artist" msgstr "Неизвестный исполнитель" #: gnomemusic/views/playlistsview.py:45 msgid "Playlists" msgstr "Списки воспроизведения" #: gnomemusic/views/searchview.py:220 msgid "No Search Started" msgstr "Поиск не начат" #: gnomemusic/views/searchview.py:222 msgid "Use the searchbar to start searching for albums, artists or songs" msgstr "" "Используйте панель поиска, чтобы начать поиск альбомов, исполнителей или " "песен" #: gnomemusic/views/searchview.py:226 msgid "No Results Found" msgstr "Результатов не найдено" #: gnomemusic/views/searchview.py:228 msgid "Try a different search" msgstr "Попробуйте другой поисковый запрос" #: gnomemusic/widgets/albumwidget.py:230 msgid "{} minute" msgid_plural "{} minutes" msgstr[0] "{} минута" msgstr[1] "{} минуты" msgstr[2] "{} минут" #: gnomemusic/widgets/discbox.py:74 msgid "Disc {}" msgstr "Диск {}" #: gnomemusic/widgets/playertoolbar.py:173 msgid "Pause" msgstr "Приостановить" #: gnomemusic/widgets/playlistcontrols.py:130 msgid "{} Song" msgid_plural "{} Songs" msgstr[0] "{} песня" msgstr[1] "{} песни" msgstr[2] "{} песен" #: gnomemusic/widgets/searchheaderbar.py:50 msgid "Search songs, artists and albums" msgstr "Поиск песен, исполнителей и альбомов" #. noqa: F841 #: gnomemusic/widgets/songwidgetmenu.py:94 msgid "_Open Location" msgstr "_Открыть расположение" #. TRANSLATORS: These are verbs, to (un)mark something as a #. favorite. #: gnomemusic/widgets/startoggle.py:36 msgid "Unstar" msgstr "Удалить из избранных" #: gnomemusic/widgets/startoggle.py:36 msgid "Star" msgstr "Добавить в избранные" #: gnomemusic/widgets/statusnavigationpage.py:51 msgid "Your XDG Music directory is not set." msgstr "Переменная директории XDG Музыки не установлена." #: gnomemusic/widgets/statusnavigationpage.py:58 msgid "Music Folder" msgstr "Папка Музыка" #. TRANSLATORS: This is a label to display a link to open user's music #. folder. {} will be replaced with the translated text 'Music folder' #: gnomemusic/widgets/statusnavigationpage.py:66 msgid "The contents of your {} will appear here." msgstr "Содержимое {} появится здесь." #: gnomemusic/widgets/statusnavigationpage.py:116 msgid "No Music Found" msgstr "Музыка не найдена" #: gnomemusic/widgets/statusnavigationpage.py:117 msgid "Try a Different Search" msgstr "Попробуйте изменить параметры поиска" #: gnomemusic/widgets/statusnavigationpage.py:121 msgid "GNOME Music could not connect to Tracker." msgstr "Музыке GNOME не удалось подключиться к Tracker." #: gnomemusic/widgets/statusnavigationpage.py:123 msgid "Your music files cannot be indexed without Tracker running." msgstr "" "Ваши музыкальные файлы не могут быть проиндексированы без запущенного " "Tracker." #: gnomemusic/widgets/statusnavigationpage.py:129 msgid "Your system Tracker version seems outdated." msgstr "Версия вашей системы Tracker кажется устаревшей." #: gnomemusic/widgets/statusnavigationpage.py:131 msgid "Music needs Tracker version 3.0.0 or higher." msgstr "Для Музыки необходим Tracker версии 3.0.0 или выше." #~ msgid "Copyright The GNOME Music Developers" #~ msgstr "Авторское право © Разработчики приложения Музыка GNOME" #~ msgid "Translated by" #~ msgstr "Перевод" #~ msgid "Select" #~ msgstr "Выбрать" #~ msgid "Select All" #~ msgstr "Выбрать все" #~ msgid "Select None" #~ msgstr "Снять выделение" #~ msgid "Click on items to select them" #~ msgstr "Нажмите, чтобы выбрать" #~ msgid "_Add to Playlist" #~ msgstr "_Добавить в список воспроизведения" #~ msgid "Selected {} song" #~ msgid_plural "Selected {} songs" #~ msgstr[0] "Выбрана {} песня" #~ msgstr[1] "Выбрано {} песни" #~ msgstr[2] "Выбрано {} песен" #~ msgid "Report music history to Last.fm" #~ msgstr "Отправлять историю прослушивания на Last.fm" #~ msgid "" #~ "Enables or disables sending scrobbles and the “currently playing” info to " #~ "Last.fm." #~ msgstr "" #~ "Включает или отключает отправку скробблов и информации о «текущем " #~ "воспроизведении» на Last.fm." #~ msgid "Last.fm Account" #~ msgstr "Аккаунт Last.fm" #~ msgid "Report Music Listening" #~ msgstr "Отправлять историю прослушивания" #~ msgid "_Help" #~ msgstr "_Справка" #~ msgid "Artist" #~ msgstr "Исполнитель" #~ msgid "Back" #~ msgstr "Назад" #~ msgid "" #~ "Last.fm is a music discovery service that gives you personalised " #~ "recommendations based on the music you listen to." #~ msgstr "" #~ "Last.fm — это сервис поиска музыки, который дает вам персональные " #~ "рекомендации на основе музыки, которую вы слушаете." #~ msgid "Music Reporting Not Setup" #~ msgstr "Отправка музыки не настроена" #~ msgid "Login to your Last.fm account to report your music listening." #~ msgstr "" #~ "Войдите в свою учетную запись Last.fm, чтобы отправлять историю " #~ "прослушивания музыки." #~ msgid "Login" #~ msgstr "Войти" #~ msgid "Artists Results" #~ msgstr "Результаты по исполнителям" #~ msgid "Albums Results" #~ msgstr "Результаты по альбомам" #~ msgid "Your music listening is reported to Last.fm." #~ msgstr "История воспроизведения отправлена на Last.fm." #~ msgid "Your music listening is not reported to Last.fm." #~ msgstr "История воспроизведения не отправлена на Last.fm." #~ msgid "Logged in as {}" #~ msgstr "Вы вошли как {}" #~ msgid "Configure" #~ msgstr "Настроить" #~ msgid "A music player and management application for GNOME." #~ msgstr "Воспроизведение и управление музыкальной коллекцией в GNOME." #~ msgid "Visit GNOME Music website" #~ msgstr "Посетить веб-сайт приложения" #~ msgid "" #~ "GNOME Music 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.\n" #~ "\n" #~ "GNOME Music 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.\n" #~ "\n" #~ "You should have received a copy of the GNU General Public License along " #~ "with GNOME Music; if not, write to the Free Software Foundation, Inc., 51 " #~ "Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ "\n" #~ "The GNOME Music authors hereby grant permission for non-GPL compatible " #~ "GStreamer plugins to be used and distributed together with GStreamer and " #~ "GNOME Music. This permission is above and beyond the permissions granted " #~ "by the GPL license by which GNOME Music is covered. If you modify this " #~ "code, you may extend this exception to your version of the code, but you " #~ "are not obligated to do so. If you do not wish to do so, delete this " #~ "exception statement from your version." #~ msgstr "" #~ "Приложение «Музыка GNOME» является свободным программным обеспечением, вы " #~ "можете распространять и/или изменять его в соответствии с условиями GNU " #~ "General Public License, опубликованной Free Software Foundation, либо GNU " #~ "General Public License v2, либо (на ваш выбор) любой более поздней " #~ "версии.\n" #~ "\n" #~ "Приложение «Музыка GNOME» распространяется в надежде, что оно будет " #~ "полезным, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, даже без подразумеваемых гарантий " #~ "КОММЕРЧЕСКОЙ ЦЕННОСТИ или ПРИГОДНОСТИ ДЛЯ КОНКРЕТНЫХ ЦЕЛЕЙ. См. GNU " #~ "General Public License для более подробной информации.\n" #~ "\n" #~ "Вы должны были получить копию GNU General Public License вместе с " #~ "приложением «Музыка GNOME»; а если нет, напишите в Free Software " #~ "Foundation, Inc, 51 Franklin Street, пятый этаж, Boston, MA 02110-1301 " #~ "США.\n" #~ "\n" #~ "Авторы приложения «Музыка GNOME» предоставляют разрешение на " #~ "использование не-GPL совместимых модулей GStreamer, которые будут " #~ "поставлены с GStreamer и «Музыка GNOME». Это разрешение выше и вне " #~ "разрешений, предоставленных лицензией GPL, которой защищено приложение " #~ "«Музыка GNOME». При изменении этого кода, вы можете распространить данное " #~ "исключение на вашу версию кода, но вы не обязаны это делать. Если вы не " #~ "хотите распространить данное исключение на вашу версию кода, просто " #~ "удалите данное заявление об исключении из вашей версии кода." #~ msgid "The contents of your Music Folder will appear here" #~ msgstr "Содержимое папки Музыка появится здесь" 0707010000010D000081A400000000000000000000000166968E4E000062F5000000000000000000000000000000000000001A00000000gnome-music-46.1/po/sk.po# Slovak translation for gnome-music. # Copyright (C) 2013 gnome-music's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-music package. # Dušan Kazik , 2013, 2014, 2015. # Jose Riha , 2024. # msgid "" msgstr "" "Project-Id-Version: gnome-music master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-music/issues\n" "POT-Creation-Date: 2024-02-11 20:43+0000\n" "PO-Revision-Date: 2024-05-30 21:48+0200\n" "Last-Translator: Jose Riha \n" "Language-Team: Slovak \n" "Language: sk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 1 : (n>=2 && n<=4) ? 2 : 0;\n" "X-Generator: Poedit 3.1.1\n" #: data/org.gnome.Music.appdata.xml.in.in:6 #: data/org.gnome.Music.desktop.in.in:3 data/ui/StatusNavigationPage.ui:4 #: gnomemusic/about.py:138 gnomemusic/application.py:59 gnomemusic/window.py:65 msgid "Music" msgstr "Hudba" #: data/org.gnome.Music.appdata.xml.in.in:7 #: data/org.gnome.Music.desktop.in.in:5 msgid "Play and organize your music collection" msgstr "Prehráva a organizuje vašu hudobnú zbierku" #: data/org.gnome.Music.appdata.xml.in.in:9 msgid "An easy and pleasant way to play your music." msgstr "Jednoduchý a príjemný spôsob prehrávania vašej hudby." #: data/org.gnome.Music.appdata.xml.in.in:12 msgid "" "Find tracks in your local collection, use automatically generated playlists " "or curate a fresh one." msgstr "" "Nájdite stopy vo vašej miestnej zbierke, použite automaticky vygenerované " "zoznamy skladieb alebo vytvorte svoj vlastný." #. developer_name tag deprecated with Appstream 1.0 #: data/org.gnome.Music.appdata.xml.in.in:188 msgid "The GNOME Music developers" msgstr "Vývojári aplikácie Hudba prostredia GNOME" #: data/org.gnome.Music.desktop.in.in:4 msgid "Music Player" msgstr "Prehrávač hudby" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Music.desktop.in.in:13 msgid "Music;Player;" msgstr "Hudba;Hudobný;Prehrávač;" #: data/org.gnome.Music.gschema.xml:12 msgid "Window size" msgstr "Veľkosť okna" #: data/org.gnome.Music.gschema.xml:13 msgid "Window size (width and height)." msgstr "Veľkosť okna (šírka a výška)." #: data/org.gnome.Music.gschema.xml:17 msgid "Window maximized" msgstr "Maximalizované okno" #: data/org.gnome.Music.gschema.xml:18 msgid "Window maximized state." msgstr "Maximalizovaný stav okna." #: data/org.gnome.Music.gschema.xml:22 msgid "Playback repeat mode" msgstr "Režim opakovaného prehrávania" #. Translators: Don't translate allowed values, just the description in the brackets #: data/org.gnome.Music.gschema.xml:24 msgid "" "Value identifies whether to repeat or randomize playback through the " "collection. Allowed values are: “none” (repeat and shuffle are off), " "“song” (repeat current song), “all” (repeat playlist, no shuffle), " "“shuffle” (shuffle playlist, presumes repeat all)." msgstr "" "Hodnota, ktorá udáva, či sa má opakovať alebo zamiešať prehrávanie zbierky. " "Dovolené hodnoty sú: „none“(opakovanie a zamiešanie je vypnuté), " "„song“(opakovanie aktuálnej skladby), „all“(opakovanie zoznamu piesní, bez " "zamiešania), „shuffle“(zamiešanie zoznamu skladieb, použije sa opakovanie " "všetkých skladieb)." #: data/org.gnome.Music.gschema.xml:28 data/ui/PreferencesDialog.ui:27 msgid "Enable ReplayGain" msgstr "Povoliť ReplayGain" #: data/org.gnome.Music.gschema.xml:29 msgid "Enables or disables ReplayGain for albums" msgstr "Povolí alebo zakáže ReplayGain pre albumy" #: data/org.gnome.Music.gschema.xml:33 msgid "Inhibit system suspend" msgstr "Potlačiť uspatie systému" #: data/org.gnome.Music.gschema.xml:34 msgid "Enables or disables inhibiting system suspend while playing music" msgstr "Povolí alebo zakáže potlačenie uspatia systému počas prehrávania hudby" #: data/ui/AlbumsSearchNavigationPage.ui:5 data/ui/SearchView.ui:98 #: gnomemusic/views/albumsview.py:52 msgid "Albums" msgstr "Albumy" # tooltip #: data/ui/AlbumWidget.ui:84 data/ui/PlayerToolbar.ui:87 #: data/ui/PlaylistControls.ui:101 gnomemusic/widgets/playertoolbar.py:176 msgid "Play" msgstr "Prehrá" #: data/ui/AlbumWidget.ui:130 data/ui/PlaylistControls.ui:5 #: data/ui/SongWidgetMenu.ui:11 msgid "_Play" msgstr "_Prehrať" #: data/ui/AlbumWidget.ui:134 msgid "Add to _Favorite Songs" msgstr "Pridať _medzi obľúbené skladby" # gtk button #: data/ui/AlbumWidget.ui:138 data/ui/SongWidgetMenu.ui:15 msgid "_Add to Playlist…" msgstr "_Pridať do zoznamu skladieb…" #: data/ui/ArtistsSearchNavigationPage.ui:5 data/ui/SearchView.ui:41 #: gnomemusic/views/artistsview.py:51 msgid "Artists" msgstr "Interpreti" #: data/ui/HeaderBar.ui:14 msgid "Menu" msgstr "Ponuka" # DK:tooltip #: data/ui/HeaderBar.ui:22 data/ui/SearchHeaderBar.ui:12 msgid "Search" msgstr "Vyhľadá" #: data/ui/HeaderBar.ui:31 data/ui/PreferencesDialog.ui:4 msgid "Preferences" msgstr "Predvoľby" #: data/ui/HeaderBar.ui:35 #| msgid "_Keyboard Shortcuts" msgid "Keyboard Shortcuts" msgstr "Klávesové skratky" #: data/ui/HeaderBar.ui:39 #| msgctxt "shortcut window" #| msgid "Help" msgid "Help" msgstr "Pomocník" #: data/ui/HeaderBar.ui:43 #| msgid "_About Music" msgid "About Music" msgstr "O aplikácii Hudba" #: data/ui/help-overlay.ui:11 msgctxt "shortcut window" msgid "General" msgstr "Všeobecné" #: data/ui/help-overlay.ui:14 msgctxt "shortcut window" msgid "Close window" msgstr "Zavrieť okna" #: data/ui/help-overlay.ui:20 msgctxt "shortcut window" msgid "Search" msgstr "Hľadať" #: data/ui/help-overlay.ui:26 msgctxt "shortcut window" msgid "Help" msgstr "Pomocník" #: data/ui/help-overlay.ui:32 msgctxt "shortcut window" msgid "Shortcuts" msgstr "Skratky" #: data/ui/help-overlay.ui:40 msgctxt "shortcut window" msgid "Playback" msgstr "Prehrávanie" #: data/ui/help-overlay.ui:43 msgctxt "shortcut window" msgid "Play/Pause" msgstr "Prehrať/pozastaviť" # DK: skladba #: data/ui/help-overlay.ui:49 msgctxt "shortcut window" msgid "Next song" msgstr "Nasledujúca skladba" #: data/ui/help-overlay.ui:55 msgctxt "shortcut window" msgid "Previous song" msgstr "Predchádzajúca skladba" #: data/ui/help-overlay.ui:61 msgctxt "shortcut window" msgid "Toggle repeat" msgstr "Prepnúť opakovanie" #: data/ui/help-overlay.ui:67 msgctxt "shortcut window" msgid "Toggle shuffle" msgstr "Prepnúť zamiešanie" #: data/ui/help-overlay.ui:75 msgctxt "shortcut window" msgid "Navigation" msgstr "Navigácia" #: data/ui/help-overlay.ui:78 msgctxt "shortcut window" msgid "Go to Albums" msgstr "Prejsť na albumy" #: data/ui/help-overlay.ui:84 msgctxt "shortcut window" msgid "Go to Artists" msgstr "Prejsť na interpretov" #: data/ui/help-overlay.ui:90 msgctxt "shortcut window" msgid "Go to Songs" msgstr "Prejsť na skladby" # gtk button #: data/ui/help-overlay.ui:96 msgctxt "shortcut window" msgid "Go to Playlists" msgstr "Prejsť na zoznamy skladieb" #: data/ui/help-overlay.ui:102 msgctxt "shortcut window" msgid "Go back" msgstr "Prejsť späť" #: data/ui/PlayerToolbar.ui:74 msgid "Previous" msgstr "Predchádzajúca" # DK: skladba #: data/ui/PlayerToolbar.ui:106 msgid "Next" msgstr "Nasledujúca" #: data/ui/PlaylistControls.ui:9 msgid "_Delete" msgstr "O_dstrániť" #: data/ui/PlaylistControls.ui:13 msgid "_Rename…" msgstr "_Premenovať…" #: data/ui/PlaylistControls.ui:28 msgid "Playlist Name" msgstr "Názov zoznamu skladieb" #: data/ui/PlaylistControls.ui:62 msgid "_Done" msgstr "_Dokončiť" # gtk button #: data/ui/PlaylistDialog.ui:16 msgid "Add to Playlist" msgstr "Pridanie do zoznamu skladieb" #: data/ui/PlaylistDialog.ui:27 msgid "_Cancel" msgstr "_Zrušiť" #: data/ui/PlaylistDialog.ui:36 msgid "_Add" msgstr "_Pridať" #: data/ui/PlaylistDialog.ui:91 msgid "Enter a name for your first playlist" msgstr "Zadajte názov vášho prvého zoznamu skladieb" #: data/ui/PlaylistDialog.ui:116 msgid "C_reate" msgstr "Vytvo_riť" #: data/ui/PlaylistDialog.ui:177 msgid "New Playlist…" msgstr "Nový zoznam skladieb…" #: data/ui/PlaylistDialog.ui:189 msgid "Add" msgstr "Pridať" #: data/ui/PreferencesDialog.ui:9 msgid "Player Settings" msgstr "Nastavenia prehrávača" #: data/ui/PreferencesDialog.ui:12 #| msgid "Repeat Song" msgid "Repeat Mode" msgstr "Režim opakovania" #: data/ui/PreferencesDialog.ui:16 msgid "None" msgstr "Žiadny" #: data/ui/PreferencesDialog.ui:17 #| msgid "Songs" msgid "Song" msgstr "Skladba" #: data/ui/PreferencesDialog.ui:18 msgid "All" msgstr "Všetko" # GtkRadioMenuItem #: data/ui/PreferencesDialog.ui:19 gnomemusic/player.py:51 msgid "Shuffle" msgstr "Zamiešať" #: data/ui/PreferencesDialog.ui:28 msgid "Balance loudness between songs if ReplayGain metadata is found" msgstr "" "Vyvážiť hlasitosť medzi skladbami, ak sa nájdu metadáta ReplayGain" #: data/ui/PreferencesDialog.ui:35 msgid "Power Settings" msgstr "Nastavenia napájania" #: data/ui/PreferencesDialog.ui:38 #| msgid "Inhibit system suspend" msgid "Inhibit Suspend" msgstr "Potlačiť spánok" #: data/ui/PreferencesDialog.ui:39 msgid "Only while playing" msgstr "Iba počas prehrávania" #: data/ui/SearchView.ui:55 data/ui/SearchView.ui:112 msgid "View All" msgstr "Zobraziť všetko" #: data/ui/SearchView.ui:154 msgid "Songs" msgstr "Skladby" # gtk button #: data/ui/SongWidgetMenu.ui:19 msgid "_Remove from Playlist" msgstr "O_dstrániť zo zoznamu skladieb" #: data/ui/StatusNavigationPage.ui:36 msgid "Welcome to Music" msgstr "Vitajte v aplikácii Hudba" #: gnomemusic/about.py:140 msgid "The GNOME Project" msgstr "Projekt GNOME" #. Translators should localize the following string which #. will be displayed at the bottom of the about box to give #. credit to the translator(s). #: gnomemusic/about.py:146 msgid "translator-credits" msgstr "Dušan Kazik " #: gnomemusic/about.py:150 #| msgid "The GNOME Music developers" msgid "© The GNOME Music Developers" msgstr "© Vývojári aplikácie Hudba prostredia GNOME" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:839 msgid "Most Played" msgstr "Najviac prehrávané" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:893 msgid "Never Played" msgstr "Nikdy neprehraté" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:946 msgid "Recently Played" msgstr "Nedávno prehrávané" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1025 msgid "Recently Added" msgstr "Nedávno pridané" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1088 msgid "Favorite Songs" msgstr "Obľúbené skladby" #. TRANSLATORS: this is a playlist name indicating that the #. files are not tagged enough to be displayed in the albums #. or artists views. #: gnomemusic/grilowrappers/grltrackerplaylists.py:1142 msgid "Insufficiently Tagged" msgstr "Nedostatočne otagované" #: gnomemusic/gstplayer.py:418 msgid "Unable to play the file" msgstr "Nie je možné prehrať tento súbor" #: gnomemusic/gstplayer.py:424 msgid "_Find in {}" msgstr "_Nájsť v aplikácii {}" #. TRANSLATORS: separator for two codecs #: gnomemusic/gstplayer.py:434 msgid " and " msgstr " a " #. TRANSLATORS: separator for a list of codecs #: gnomemusic/gstplayer.py:437 msgid ", " msgstr ", " #: gnomemusic/gstplayer.py:439 msgid "{} is required to play the file, but is not installed." msgid_plural "{} are required to play the file, but are not installed." msgstr[0] "" "Kodeky {} sú potrebné na prehranie tohto súboru, ale nie sú nainštalované." msgstr[1] "" "Kodek {} je potrebný na prehranie tohto súboru, ale nie je nainštalovaný." msgstr[2] "" "Kodeky {} sú potrebné na prehranie tohto súboru, ale nie sú nainštalované." #: gnomemusic/inhibitsuspend.py:69 msgid "Playing music" msgstr "Prehráva sa hudba" # GtkRadioMenuItem #. Translators: "shuffle" causes tracks to play in random order. #: gnomemusic/player.py:48 msgid "Shuffle/Repeat Off" msgstr "Vypnúť zamiešanie/opakovanie" #: gnomemusic/player.py:49 msgid "Repeat Song" msgstr "Opakovať skladbu" #: gnomemusic/player.py:50 msgid "Repeat All" msgstr "Opakovať všetko" #: gnomemusic/playlisttoast.py:55 msgid "Playlist {} removed" msgstr "Zoznam skladieb {} bol odstránený" #: gnomemusic/playlisttoast.py:56 gnomemusic/songtoast.py:65 msgid "Undo" msgstr "Vrátiť späť" #: gnomemusic/songtoast.py:64 msgid "{} removed from {}" msgstr "Skladba {} odstránená zo zoznamu skladieb {}" #: gnomemusic/utils.py:89 msgid "Unknown album" msgstr "Neznámy album" #: gnomemusic/utils.py:110 msgid "Unknown Artist" msgstr "Neznámy interpret" #: gnomemusic/views/playlistsview.py:45 msgid "Playlists" msgstr "Zoznamy skladieb" #: gnomemusic/views/searchview.py:220 msgid "No Search Started" msgstr "Vyhľadávanie nebolo zahájené" #: gnomemusic/views/searchview.py:222 msgid "Use the searchbar to start searching for albums, artists or songs" msgstr "" "Pomocou vyhľadávacieho pola začnite hľadať albumy, interpretov alebo skladby" #: gnomemusic/views/searchview.py:226 #| msgid "No Music Found" msgid "No Results Found" msgstr "Nenašli sa žiadne výsledky" #: gnomemusic/views/searchview.py:228 #| msgid "Try a Different Search" msgid "Try a different search" msgstr "Skúste vyhľadať niečo iné" #: gnomemusic/widgets/albumwidget.py:230 msgid "{} minute" msgid_plural "{} minutes" msgstr[0] "{} minút" msgstr[1] "{} minúta" msgstr[2] "{} minúty" #: gnomemusic/widgets/discbox.py:74 msgid "Disc {}" msgstr "Disk č. {}" # tooltip #: gnomemusic/widgets/playertoolbar.py:173 msgid "Pause" msgstr "Pozastaví" #: gnomemusic/widgets/playlistcontrols.py:130 msgid "{} Song" msgid_plural "{} Songs" msgstr[0] "{} skladieb" msgstr[1] "{} skladba" msgstr[2] "{} skladby" #: gnomemusic/widgets/searchheaderbar.py:50 msgid "Search songs, artists and albums" msgstr "Hľadajte skladby, interpretov a albumy" #. noqa: F841 #: gnomemusic/widgets/songwidgetmenu.py:94 msgid "_Open Location" msgstr "_Otvoriť umiestnenie" #. TRANSLATORS: These are verbs, to (un)mark something as a #. favorite. #: gnomemusic/widgets/startoggle.py:36 msgid "Unstar" msgstr "Odobrať hviezdičku" #: gnomemusic/widgets/startoggle.py:36 msgid "Star" msgstr "Pridať hviezdičku" #: gnomemusic/widgets/statusnavigationpage.py:51 msgid "Your XDG Music directory is not set." msgstr "Váš hudobný XDG adresár nie je nastavený." #: gnomemusic/widgets/statusnavigationpage.py:58 msgid "Music Folder" msgstr "priečinku s hudbou" #. TRANSLATORS: This is a label to display a link to open user's music #. folder. {} will be replaced with the translated text 'Music folder' #: gnomemusic/widgets/statusnavigationpage.py:66 msgid "The contents of your {} will appear here." msgstr "Tu sa zobrazí obsah vášho {}." #: gnomemusic/widgets/statusnavigationpage.py:116 msgid "No Music Found" msgstr "Nenašla sa žiadna hudba" #: gnomemusic/widgets/statusnavigationpage.py:117 msgid "Try a Different Search" msgstr "Skúste vyhľadať niečo iné" #: gnomemusic/widgets/statusnavigationpage.py:121 msgid "GNOME Music could not connect to Tracker." msgstr "Aplikácii Hudba prostredia GNOME sa nepodarilo pripojiť k sledovaču." #: gnomemusic/widgets/statusnavigationpage.py:123 msgid "Your music files cannot be indexed without Tracker running." msgstr "Vaše hudobné súbory nemôžu byť indexované bez spusteného sledovača." #: gnomemusic/widgets/statusnavigationpage.py:129 msgid "Your system Tracker version seems outdated." msgstr "Zdá sa, že verzia vášho systémového sledovača je zastaralá." #: gnomemusic/widgets/statusnavigationpage.py:131 msgid "Music needs Tracker version 3.0.0 or higher." msgstr "Aplikácia Hudba vyžaduje verziu sledovača 3.0.0 alebo vyššiu." #~ msgid "Report music history to Last.fm" #~ msgstr "Nahlásiť históriu hudby službe Last.fm" #~ msgid "" #~ "Enables or disables sending scrobbles and the “currently playing” info to " #~ "Last.fm." #~ msgstr "" #~ "Povolí alebo zakáže odosielanie názvov skladieb (scrobbling) a informáciu " #~ "„aktuálne prehrávané“ službe Last.fm." #~ msgid "Last.fm Account" #~ msgstr "Účet služby Last.fm" #~ msgid "Report Music Listening" #~ msgstr "Nahlásiť počúvanie hudby" #~ msgid "_Help" #~ msgstr "_Pomocník" # tooltip #~ msgid "Select" #~ msgstr "Vyberie" #~ msgid "Back" #~ msgstr "Späť" #~ msgid "" #~ "Last.fm is a music discovery service that gives you personalised " #~ "recommendations based on the music you listen to." #~ msgstr "" #~ "Last.fm je služba na objavovanie hudby, ktorá vám poskytuje " #~ "personalizované odporúčania založené na hudbe, ktorú počúvate." #~ msgid "Music Reporting Not Setup" #~ msgstr "Nahlásenie hudby nie je nastavené" #~ msgid "Login to your Last.fm account to report your music listening." #~ msgstr "" #~ "Pre nahlásenie vami počúvanej hudby, sa prihláste do služby Last.fm." #~ msgid "Login" #~ msgstr "Prihlásiť" #~ msgid "Select All" #~ msgstr "Vybrať všetko" #~ msgid "Select None" #~ msgstr "Zrušiť výber" #~ msgid "Click on items to select them" #~ msgstr "Kliknutím na položku ju vyberiete" # gtk button #~ msgid "_Add to Playlist" #~ msgstr "_Pridať do zoznamu skladieb" #~ msgid "Copyright The GNOME Music Developers" #~ msgstr "Autorské práva: vývojári aplikácie Hudba prostredia GNOME" #~ msgid "Translated by" #~ msgstr "Preložili" #~ msgid "Artists Results" #~ msgstr "Výsledky s interpretami" #~ msgid "Albums Results" #~ msgstr "Výsledky s albumami" #~ msgid "Selected {} song" #~ msgid_plural "Selected {} songs" #~ msgstr[0] "Vybraných {} skladieb" #~ msgstr[1] "Vybraná {} skladba" #~ msgstr[2] "Vybrané {} skladby" #~ msgid "Your music listening is reported to Last.fm." #~ msgstr "Vami počúvaná hudba je nahlásená službe Last.fm." #~ msgid "Your music listening is not reported to Last.fm." #~ msgstr "Vami počúvaná hudba nie je nahlásená službe Last.fm." #~ msgid "Logged in as {}" #~ msgstr "Prihlásený ako {}" #~ msgid "Configure" #~ msgstr "Nastaviť" #~ msgid "A music player and management application for GNOME." #~ msgstr "Aplikácia na prehrávanie a správu hudby prostredia GNOME." #~ msgid "Visit GNOME Music website" #~ msgstr "Navštíviť domovskú stránku aplikácie Hudba prostredia GNOME" #~ msgid "" #~ "GNOME Music 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.\n" #~ "\n" #~ "GNOME Music 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.\n" #~ "\n" #~ "You should have received a copy of the GNU General Public License along " #~ "with GNOME Music; if not, write to the Free Software Foundation, Inc., 51 " #~ "Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ "\n" #~ "The GNOME Music authors hereby grant permission for non-GPL compatible " #~ "GStreamer plugins to be used and distributed together with GStreamer and " #~ "GNOME Music. This permission is above and beyond the permissions granted " #~ "by the GPL license by which GNOME Music is covered. If you modify this " #~ "code, you may extend this exception to your version of the code, but you " #~ "are not obligated to do so. If you do not wish to do so, delete this " #~ "exception statement from your version." #~ msgstr "" #~ "Aplikácia Hudba prostredia GNOME je slobodný softvér; môžete ho ďalej " #~ "šíriť a upravovať podľa ustanovení licencie GNU General Public Licence " #~ "(Všeobecná zverejňovacia licencia GNU), vydávanej nadáciou Free Software " #~ "Foundation a to buď podľa 2. verzie tejto licencie, alebo (podľa vášho " #~ "uváženia) ktorejkoľvek neskoršej verzie.\n" #~ "\n" #~ "Tento program je rozširovaný v nádeji, že bude užitočný, avšak BEZ " #~ "AKEJKOĽVEK ZÁRUKY. Neposkytujú sa ani odvodené záruky PREDAJNOSTI alebo " #~ "VHODNOSTI NA URČITÝ ÚČEL. Ďalšie podrobnosti hľadajte v licencii GNU " #~ "General Public License.\n" #~ "\n" #~ "Kópiu licencie GNU General Public License by ste mali dostať spolu s " #~ "týmto programom. Ak sa tak nestalo, napíšte na adresu Free Software " #~ "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, " #~ "USA.\n" #~ "\n" #~ "Autori programu Hudba prostredia GNOME týmto vyhlasujú, že udeľujú právo " #~ "použiť a distribuovať zásuvné moduly knižnice GStreamer, ktoré nie sú " #~ "kompatibilné s GPL, spolu s týmto programom. Toto právo je nadrámec práv " #~ "zaručených licenciou GPL, pod ktorú tento program spadá. Ak upravíte " #~ "zdrojový kód tohto programu, môžete túto výnimku použiť aj na vašu verziu " #~ "kódu, no nie ste povinný tak urobiť. Ak to nechcete urobiť, vymažte z " #~ "túto výnimku z vyhlásenia vo vašej verzii kódu." #~ msgid "The contents of your Music Folder will appear here" #~ msgstr "Tu sa zobrazí obsah vášho priečinku s hudbou" #~ msgid "GNOME Music" #~ msgstr "Hudba prostredia GNOME" #~ msgid "Window position" #~ msgstr "Pozícia okna" #~ msgid "Window position (x and y)." #~ msgstr "Pozícia okna (x a y)." #~ msgid "Loading" #~ msgstr "Načítava sa" # gtk button #~ msgid "Add to Playlist…" #~ msgstr "Pridať do zoznamu skladieb…" #~ msgid "" #~ "An easy way to play your music. Automatically discover music on your " #~ "computer, the local network and internet services." #~ msgstr "" #~ "Jednoduchý spôsob ako prehrávať vašu hudbu. Automaticky objavujte hudbu " #~ "vo vašom počítači, sieti a internetových službách." #~ msgid "" #~ "Find tracks in your local collection, get music from DLNA servers or try " #~ "something new with the Jamendo and Magnatune services." #~ msgstr "" #~ "Nájdite skladby vo vašej miestnej zbierke, získajte hudbu zo serverov " #~ "DLNA, alebo vyskúšajte niečo nové so službami Jamendo a Magnatune." #~ msgid "Inital state has been displayed" #~ msgstr "Počiatočný stav bol zobrazený" #~ msgid "Set to true when initial state has been displayed" #~ msgstr "Nastavte na hodnotu TRUE, keď počiatočný stav bol zobrazený" #~ msgid "Released" #~ msgstr "Vydaný" #~ msgid "Running Length" #~ msgstr "Dĺžka" #~ msgid "Composer" #~ msgstr "Skladateľ" #~ msgctxt "context menu item" #~ msgid "Play" #~ msgstr "Prehrať" #~ msgid "Hey DJ" #~ msgstr "Hey DJ" #~ msgid "Music is the new GNOME music playing application." #~ msgstr "Hudba je nová aplikácia na prehrávanie hudby v prostredí GNOME." #~ msgid "org.gnome.Music" #~ msgstr "org.gnome.Music" #~ msgid "Search mode" #~ msgstr "Režim vyhľadávania" #~ msgid "If true, the search bar is shown." #~ msgstr "Ak je nastavené na true, bude zobrazený panel vyhľadávania." #~ msgid "Notifications mode" #~ msgstr "Režim oznámení" #~ msgid "Enables or disables playback notifications" #~ msgstr "Povolí alebo zakáže oznámenia o prehrávaní" #~ msgid "Artist" #~ msgstr "Interpret" #~ msgid "Album" #~ msgstr "Album" #~ msgid "Track Title" #~ msgstr "Názov stopy" #~ msgid "Local" #~ msgstr "Miestne" #~ msgid "Sources" #~ msgstr "Zdroje" #~ msgid "Match" #~ msgstr "Vhodné hľadanému výrazu" # uri #~ msgid "Untitled" #~ msgstr "Nepomenovaný" #~ msgid "Selected %d item" #~ msgid_plural "Selected %d items" #~ msgstr[0] "Vybraných %d položiek" #~ msgstr[1] "Vybraná %d položka" #~ msgstr[2] "Vybrané %d položky" #~ msgid "%d min" #~ msgstr "%d min" #~ msgid "Empty" #~ msgstr "Prázdne" #~ msgid "_Quit" #~ msgstr "U_končiť" # dialog title #~ msgid "Select Playlist" #~ msgstr "Výber zoznamu skladieb" #~ msgid "the|a|an" #~ msgstr "the|a|an" #~ msgid "Max chars to display in track name on Artist view" #~ msgstr "" #~ "Maximálne počet zobrazených znakov názvu stopy v zobrazení interpreta" #~ msgid "" #~ "This setting modifies the amount of chars for track title on Artist view " #~ "before its been ellipsized. Set this to -1 to disable" #~ msgstr "" #~ "Toto nastavenie upravuje počet znakov názvu skladby v zobrazení " #~ "interpreta. Znaky nad tento počet budú nahradené výpustkom. Na zakázanie " #~ "tejto funkcie zadajte hodnotu -1." #~ msgid "the a an" #~ msgstr "the" #~ msgid "All Artists" #~ msgstr "Všetci interpreti" #~ msgid "Not playing" #~ msgstr "Neprehráva sa" #~ msgid "by %s, from %s" #~ msgstr "od interpreta %s, z albumu %s" #~ msgid "" #~ "No Music found!\n" #~ " Put some files into the folder %s" #~ msgstr "" #~ "Nenašla sa žiadna hudba!\n" #~ "Vložte nejaké súbory do priečinka %s" #~ msgid "_New Playlist" #~ msgstr "_Nový zoznam skladieb" #~ msgid "Load More" #~ msgstr "Načítať viac" 0707010000010E000081A400000000000000000000000166968E4E00007ADF000000000000000000000000000000000000001A00000000gnome-music-46.1/po/sl.po# Slovenian translation for gnome-music. # Copyright (C) 2013 gnome-music's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-music package. # # Matej Urbančič , 2009–2024. # msgid "" msgstr "" "Project-Id-Version: gnome-music master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-music/issues\n" "POT-Creation-Date: 2024-02-14 23:57+0000\n" "PO-Revision-Date: 2024-03-25 22:31+0100\n" "Last-Translator: Matej Urbančič \n" "Language-Team: Slovenian GNOME Translation Team \n" "Language: sl_SI\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || " "n%100==4 ? 3 : 0);\n" "X-Poedit-SourceCharset: utf-8\n" "X-Generator: Poedit 3.4.2\n" #: data/org.gnome.Music.appdata.xml.in.in:6 #: data/org.gnome.Music.desktop.in.in:3 data/ui/StatusNavigationPage.ui:4 #: gnomemusic/about.py:138 gnomemusic/application.py:59 gnomemusic/window.py:65 msgid "Music" msgstr "Glasba" #: data/org.gnome.Music.appdata.xml.in.in:7 #: data/org.gnome.Music.desktop.in.in:5 msgid "Play and organize your music collection" msgstr "Predvajanje in upravljanje glasbene zbirke" #: data/org.gnome.Music.appdata.xml.in.in:9 msgid "An easy and pleasant way to play your music." msgstr "Enostaven in uporabniku prijazen način predvajanja glasbe." #: data/org.gnome.Music.appdata.xml.in.in:12 msgid "" "Find tracks in your local collection, use automatically generated playlists " "or curate a fresh one." msgstr "" "Iskanje posnetkov v krajevnih zbirkah in uporaba samodejnega ali " "načrtovanega pripravljanja seznamov predvajanja." #. developer_name tag deprecated with Appstream 1.0 #: data/org.gnome.Music.appdata.xml.in.in:188 msgid "The GNOME Music developers" msgstr "Razvijalci programa GNOME Glasba" #: data/org.gnome.Music.desktop.in.in:4 msgid "Music Player" msgstr "Predvajalnik glasbe" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Music.desktop.in.in:13 msgid "Music;Player;" msgstr "Glasba;Predvajalnik;Music;Albumi;izvajalci;skladbe;" #: data/org.gnome.Music.gschema.xml:12 msgid "Window size" msgstr "Velikost okna" #: data/org.gnome.Music.gschema.xml:13 msgid "Window size (width and height)." msgstr "Velikost okna (širina in višina)." #: data/org.gnome.Music.gschema.xml:17 msgid "Window maximized" msgstr "Razpeto okno" #: data/org.gnome.Music.gschema.xml:18 msgid "Window maximized state." msgstr "Razpeto stanje okna." #: data/org.gnome.Music.gschema.xml:22 msgid "Playback repeat mode" msgstr "Način ponavljanja predvajanja" #. Translators: Don't translate allowed values, just the description in the brackets #: data/org.gnome.Music.gschema.xml:24 msgid "" "Value identifies whether to repeat or randomize playback through the " "collection. Allowed values are: “none” (repeat and shuffle are off), " "“song” (repeat current song), “all” (repeat playlist, no shuffle), " "“shuffle” (shuffle playlist, presumes repeat all)." msgstr "" "Vrednost določa, ali naj se predvajanje posnetkov izvaja naključno ali " "ponavljajoče. Dovoljene možnosti so: »brez« (ponavljanje in mešanje skladb " "je onemogočeno, »posnetek« (ponavljaj trenutni posnetek) , »vse« (ponavljaj " "seznam predvajanja brez mešanja) in »premešano« (vrstni red je premešan, " "ponovljene pa bodo vse skladbe)." #: data/org.gnome.Music.gschema.xml:28 data/ui/PreferencesDialog.ui:27 msgid "Enable ReplayGain" msgstr "Omogoči ReplayGain" #: data/org.gnome.Music.gschema.xml:29 msgid "Enables or disables ReplayGain for albums" msgstr "Omogoči ali onemogoči podporo ReplayGain za albume" #: data/org.gnome.Music.gschema.xml:33 msgid "Inhibit system suspend" msgstr "Prepreči sistemski prehod v pripravljenost" #: data/org.gnome.Music.gschema.xml:34 msgid "Enables or disables inhibiting system suspend while playing music" msgstr "" "Preklopi možnost preprečevanja prehoda v stanje pripravljenosti med " "predvajanjem glasbe." #: data/ui/AlbumsSearchNavigationPage.ui:5 data/ui/SearchView.ui:98 #: gnomemusic/views/albumsview.py:52 msgid "Albums" msgstr "Albumi" #: data/ui/AlbumWidget.ui:84 data/ui/PlayerToolbar.ui:87 #: data/ui/PlaylistControls.ui:101 gnomemusic/widgets/playertoolbar.py:176 msgid "Play" msgstr "Predvajaj" #: data/ui/AlbumWidget.ui:130 data/ui/PlaylistControls.ui:5 #: data/ui/SongWidgetMenu.ui:11 msgid "_Play" msgstr "_Predvajaj" #: data/ui/AlbumWidget.ui:134 msgid "Add to _Favorite Songs" msgstr "_Dodaj med priljubljene" #: data/ui/AlbumWidget.ui:138 data/ui/SongWidgetMenu.ui:15 msgid "_Add to Playlist…" msgstr "_Dodaj na seznam predvajanja …" #: data/ui/ArtistsSearchNavigationPage.ui:5 data/ui/SearchView.ui:41 #: gnomemusic/views/artistsview.py:51 msgid "Artists" msgstr "Izvajalci" #: data/ui/HeaderBar.ui:14 msgid "Menu" msgstr "Meni" #: data/ui/HeaderBar.ui:22 data/ui/SearchHeaderBar.ui:12 msgid "Search" msgstr "Iskanje" #: data/ui/HeaderBar.ui:31 data/ui/PreferencesDialog.ui:4 msgid "Preferences" msgstr "Možnosti" #: data/ui/HeaderBar.ui:35 msgid "Keyboard Shortcuts" msgstr "Tipkovne bližnjice‫" #: data/ui/HeaderBar.ui:39 msgid "Help" msgstr "Pomoč" #: data/ui/HeaderBar.ui:43 msgid "About Music" msgstr "O programu" #: data/ui/help-overlay.ui:11 msgctxt "shortcut window" msgid "General" msgstr "Splošno" #: data/ui/help-overlay.ui:14 msgctxt "shortcut window" msgid "Close window" msgstr "Zapre okno" #: data/ui/help-overlay.ui:20 msgctxt "shortcut window" msgid "Search" msgstr "Začne iskanje" #: data/ui/help-overlay.ui:26 msgctxt "shortcut window" msgid "Help" msgstr "Pokaže pomoč" #: data/ui/help-overlay.ui:32 msgctxt "shortcut window" msgid "Shortcuts" msgstr "Pokaže tipkovne bližnjice" #: data/ui/help-overlay.ui:40 msgctxt "shortcut window" msgid "Playback" msgstr "Predvajanje" #: data/ui/help-overlay.ui:43 msgctxt "shortcut window" msgid "Play/Pause" msgstr "Preklopi Predvajanje/Premor" #: data/ui/help-overlay.ui:49 msgctxt "shortcut window" msgid "Next song" msgstr "Skoči na naslednjo skladbo" #: data/ui/help-overlay.ui:55 msgctxt "shortcut window" msgid "Previous song" msgstr "Skoči na predhodno skladbo" #: data/ui/help-overlay.ui:61 msgctxt "shortcut window" msgid "Toggle repeat" msgstr "Preklopi ponavljanje" #: data/ui/help-overlay.ui:67 msgctxt "shortcut window" msgid "Toggle shuffle" msgstr "Preklopi premešanje" #: data/ui/help-overlay.ui:75 msgctxt "shortcut window" msgid "Navigation" msgstr "Upravljanje" #: data/ui/help-overlay.ui:78 msgctxt "shortcut window" msgid "Go to Albums" msgstr "Skoči na pogled albumov" #: data/ui/help-overlay.ui:84 msgctxt "shortcut window" msgid "Go to Artists" msgstr "Skoči na pogled izvajalcev" #: data/ui/help-overlay.ui:90 msgctxt "shortcut window" msgid "Go to Songs" msgstr "Skoči na pogled skladb" #: data/ui/help-overlay.ui:96 msgctxt "shortcut window" msgid "Go to Playlists" msgstr "Skoči na sezname predvajanja" #: data/ui/help-overlay.ui:102 msgctxt "shortcut window" msgid "Go back" msgstr "Skoči na predhodni pogled" #: data/ui/PlayerToolbar.ui:74 msgid "Previous" msgstr "Predhodna" #: data/ui/PlayerToolbar.ui:106 msgid "Next" msgstr "Naslednja" #: data/ui/PlaylistControls.ui:9 msgid "_Delete" msgstr "_Izbriši" #: data/ui/PlaylistControls.ui:13 msgid "_Rename…" msgstr "P_reimenuj …" #: data/ui/PlaylistControls.ui:28 msgid "Playlist Name" msgstr "Ime seznama predvajanja" #: data/ui/PlaylistControls.ui:62 msgid "_Done" msgstr "_Končano" #: data/ui/PlaylistDialog.ui:16 msgid "Add to Playlist" msgstr "Dodaj na seznam predvajanja" #: data/ui/PlaylistDialog.ui:27 msgid "_Cancel" msgstr "_Prekliči" #: data/ui/PlaylistDialog.ui:36 msgid "_Add" msgstr "_Dodaj" #: data/ui/PlaylistDialog.ui:91 msgid "Enter a name for your first playlist" msgstr "Ime prvega seznama predvajanja" #: data/ui/PlaylistDialog.ui:116 msgid "C_reate" msgstr "_Ustvari" #: data/ui/PlaylistDialog.ui:177 msgid "New Playlist…" msgstr "Nov seznam predvajanja …" #: data/ui/PlaylistDialog.ui:189 msgid "Add" msgstr "Dodaj" #: data/ui/PreferencesDialog.ui:9 msgid "Player Settings" msgstr "Nastavitve predvajalnika" #: data/ui/PreferencesDialog.ui:12 msgid "Repeat Mode" msgstr "Način ponavljanja" #: data/ui/PreferencesDialog.ui:16 msgid "None" msgstr "Brez ponavljanja" #: data/ui/PreferencesDialog.ui:17 msgid "Song" msgstr "Ponovi skladbo" #: data/ui/PreferencesDialog.ui:18 msgid "All" msgstr "Ponovi vse" #: data/ui/PreferencesDialog.ui:19 gnomemusic/player.py:51 msgid "Shuffle" msgstr "Vsebino premešaj" #: data/ui/PreferencesDialog.ui:28 msgid "Balance loudness between songs if ReplayGain metadata is found" msgstr "Uravna glasnost med skladbami, če so vpisani metapodatki ReplayGain" #: data/ui/PreferencesDialog.ui:35 msgid "Power Settings" msgstr "Nastavitve delovanja" #: data/ui/PreferencesDialog.ui:38 msgid "Inhibit Suspend" msgstr "Prepreči sistemski prehod v pripravljenost" #: data/ui/PreferencesDialog.ui:39 msgid "Only while playing" msgstr "Prepreči le med predvajanjem" #: data/ui/SearchView.ui:55 data/ui/SearchView.ui:112 msgid "View All" msgstr "Pokaži vse" #: data/ui/SearchView.ui:154 msgid "Songs" msgstr "Skladbe" #: data/ui/SongWidgetMenu.ui:19 msgid "_Remove from Playlist" msgstr "_Odstrani s seznama predvajanja" #: data/ui/StatusNavigationPage.ui:36 msgid "Welcome to Music" msgstr "Dobrodošli" #: gnomemusic/about.py:140 msgid "The GNOME Project" msgstr "Projekt GNOME" #. Translators should localize the following string which #. will be displayed at the bottom of the about box to give #. credit to the translator(s). #: gnomemusic/about.py:146 msgid "translator-credits" msgstr "Matej Urbančič " #: gnomemusic/about.py:150 msgid "© The GNOME Music Developers" msgstr "© Razvijalci programa GNOME Glasba" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:839 msgid "Most Played" msgstr "Najpogosteje predvajano" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:893 msgid "Never Played" msgstr "Nikoli predvajano" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:946 msgid "Recently Played" msgstr "Nedavno predvajano" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1025 msgid "Recently Added" msgstr "Nedavno dodano" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1088 msgid "Favorite Songs" msgstr "Priljubljeni posnetki" #. TRANSLATORS: this is a playlist name indicating that the #. files are not tagged enough to be displayed in the albums #. or artists views. #: gnomemusic/grilowrappers/grltrackerplaylists.py:1142 msgid "Insufficiently Tagged" msgstr "Neustrezno označeno" #: gnomemusic/gstplayer.py:418 msgid "Unable to play the file" msgstr "Datoteke ni mogoče predvajati." #: gnomemusic/gstplayer.py:424 msgid "_Find in {}" msgstr "_Najdi v {}" #. TRANSLATORS: separator for two codecs #: gnomemusic/gstplayer.py:434 msgid " and " msgstr "in " #. TRANSLATORS: separator for a list of codecs #: gnomemusic/gstplayer.py:437 msgid ", " msgstr ", " #: gnomemusic/gstplayer.py:439 msgid "{} is required to play the file, but is not installed." msgid_plural "{} are required to play the file, but are not installed." msgstr[0] "{} so zahtevani za predvajanje datoteke, vendar niso nameščeni." msgstr[1] "{} je zahtevan za predvajanje datoteke, vendar ni nameščen." msgstr[2] "{} sta zahtevana za predvajanje datoteke, vendar nista nameščena." msgstr[3] "{} so zahtevani za predvajanje datoteke, vendar niso nameščeni." #: gnomemusic/inhibitsuspend.py:69 msgid "Playing music" msgstr "Predvajanje glasbe" #. Translators: "shuffle" causes tracks to play in random order. #: gnomemusic/player.py:48 msgid "Shuffle/Repeat Off" msgstr "Onemogoči premešanje/ponavljanje" #: gnomemusic/player.py:49 msgid "Repeat Song" msgstr "Ponovi skladbo" #: gnomemusic/player.py:50 msgid "Repeat All" msgstr "Ponovi vse" #: gnomemusic/playlisttoast.py:55 msgid "Playlist {} removed" msgstr "Seznam predvajanja {} je odstranjen" #: gnomemusic/playlisttoast.py:56 gnomemusic/songtoast.py:65 msgid "Undo" msgstr "Razveljavi" #: gnomemusic/songtoast.py:64 msgid "{} removed from {}" msgstr "{} odstranjen iz {}" #: gnomemusic/utils.py:89 msgid "Unknown album" msgstr "Neznan album" #: gnomemusic/utils.py:110 msgid "Unknown Artist" msgstr "Neznan izvajalec" #: gnomemusic/views/playlistsview.py:45 msgid "Playlists" msgstr "Seznami predvajanja" #: gnomemusic/views/searchview.py:220 msgid "No Search Started" msgstr "Ni še začetega iskanja" #: gnomemusic/views/searchview.py:222 msgid "Use the searchbar to start searching for albums, artists or songs" msgstr "Iskalna vrstica omogoča hitro iskanje albumov, izvajalcev in skladb" #: gnomemusic/views/searchview.py:226 msgid "No Results Found" msgstr "Ni najdenih zadetkov." #: gnomemusic/views/searchview.py:228 msgid "Try a different search" msgstr "Poskusite drugačno iskanje" #: gnomemusic/widgets/albumwidget.py:230 msgid "{} minute" msgid_plural "{} minutes" msgstr[0] "{} minut" msgstr[1] "{} minuta" msgstr[2] "{} minuti" msgstr[3] "{} minute" #: gnomemusic/widgets/discbox.py:74 msgid "Disc {}" msgstr "Disk {}" #: gnomemusic/widgets/playertoolbar.py:173 msgid "Pause" msgstr "Premor" #: gnomemusic/widgets/playlistcontrols.py:130 msgid "{} Song" msgid_plural "{} Songs" msgstr[0] "{} skladb" msgstr[1] "{} skladba" msgstr[2] "{} skladbi" msgstr[3] "{} skladbe" #: gnomemusic/widgets/searchheaderbar.py:50 msgid "Search songs, artists and albums" msgstr "Iskanje skladb, izvajalcev in albumov" #. noqa: F841 #: gnomemusic/widgets/songwidgetmenu.py:94 msgid "_Open Location" msgstr "_Odpri mesto" #. TRANSLATORS: These are verbs, to (un)mark something as a #. favorite. #: gnomemusic/widgets/startoggle.py:36 msgid "Unstar" msgstr "Odstrani zvezdico" #: gnomemusic/widgets/startoggle.py:36 msgid "Star" msgstr "Označi z zvezdico" #: gnomemusic/widgets/statusnavigationpage.py:51 msgid "Your XDG Music directory is not set." msgstr "Mapa glasbe XDG ni nastavljena." #: gnomemusic/widgets/statusnavigationpage.py:58 msgid "Music Folder" msgstr "mape Glasba" #. TRANSLATORS: This is a label to display a link to open user's music #. folder. {} will be replaced with the translated text 'Music folder' #: gnomemusic/widgets/statusnavigationpage.py:66 msgid "The contents of your {} will appear here." msgstr "Vsebina {} bo prikazana na tem mestu." #: gnomemusic/widgets/statusnavigationpage.py:116 msgid "No Music Found" msgstr "Ni shranjene glasbe" #: gnomemusic/widgets/statusnavigationpage.py:117 msgid "Try a Different Search" msgstr "Poskusite drugačno iskanje" #: gnomemusic/widgets/statusnavigationpage.py:121 msgid "GNOME Music could not connect to Tracker." msgstr "Ni mogoče vzpostaviti povezave s programom Tracker." #: gnomemusic/widgets/statusnavigationpage.py:123 msgid "Your music files cannot be indexed without Tracker running." msgstr "" "Glasbenih datotek brez zagnanega programa Tracker ni mogoče indeksirati." #: gnomemusic/widgets/statusnavigationpage.py:129 msgid "Your system Tracker version seems outdated." msgstr "Sistemska različica paketa Tracker je videti zastarela." #: gnomemusic/widgets/statusnavigationpage.py:131 msgid "Music needs Tracker version 3.0.0 or higher." msgstr "" "Program Music zahteva namestitev različice paketa Tracker 3.0.0 ali višje." #~ msgid "Report music history to Last.fm" #~ msgstr "Pošiljaj zgodovino poslušane glasbe na Last.fm" #~ msgid "" #~ "Enables or disables sending scrobbles and the “currently playing” info to " #~ "Last.fm." #~ msgstr "" #~ "Omogoči oziroma onemogoči pošiljanje podatkov »trenutno predvajanih " #~ "skladb« na Last.fm" #~ msgid "Last.fm Account" #~ msgstr "Račun Last.fm" #~ msgid "Report Music Listening" #~ msgstr "Poročaj o poslušanju glasbe" #~ msgid "_Help" #~ msgstr "Pomo_č" #~ msgid "Select" #~ msgstr "Izberi" #~ msgid "Back" #~ msgstr "Nazaj" #~ msgid "" #~ "Last.fm is a music discovery service that gives you personalised " #~ "recommendations based on the music you listen to." #~ msgstr "" #~ "Spletišče Last.fm je storitev odkrivanja glasbe, ki omogoča priporočila, " #~ "oblikovana po glasbi, ki jo najpogosteje poslušate." #~ msgid "Music Reporting Not Setup" #~ msgstr "Omejitev poročanja o poslušanju glasbe" #~ msgid "Login to your Last.fm account to report your music listening." #~ msgstr "Prijavite se v račun Last.fm za poročanje o poslušanju glasbe" #~ msgid "Login" #~ msgstr "Prijava" #~ msgid "Select All" #~ msgstr "Izberi vse" #~ msgid "Select None" #~ msgstr "Odstrani izbor" #~ msgid "Click on items to select them" #~ msgstr "S klikom se predmeti izberejo." #~ msgid "_Add to Playlist" #~ msgstr "Dodaj na _seznam predvajanja" #~ msgid "Copyright The GNOME Music Developers" #~ msgstr "Avtorske pravice razvijalcev programa GNOME Glasba" #~ msgid "Translated by" #~ msgstr "Prevod:" #~ msgid "Artists Results" #~ msgstr "Izvajalci" #~ msgid "Albums Results" #~ msgstr "Albumi" #~ msgid "Selected {} song" #~ msgid_plural "Selected {} songs" #~ msgstr[0] "Izbranih je {} skladb" #~ msgstr[1] "Izbrana je {} skladba" #~ msgstr[2] "Izbrani sta {} skladbi" #~ msgstr[3] "Izbrane so {} skladbe" #~ msgid "Your music listening is reported to Last.fm." #~ msgstr "Poročilo o poslušanju glasbe je poslano na Last.fm." #~ msgid "Your music listening is not reported to Last.fm." #~ msgstr "Podatki poslušanja glasbe niso posredovani na Last.fm." #~ msgid "Logged in as {}" #~ msgstr "Trenutno je dejavna prijava {}" #~ msgid "Configure" #~ msgstr "Nastavi" #~ msgid "A music player and management application for GNOME." #~ msgstr "Program GNOME za upravljanje in predvajanje glasbe." #~ msgid "Visit GNOME Music website" #~ msgstr "Spletna stran programa GNOME Glasba" #~ msgid "" #~ "GNOME Music 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.\n" #~ "\n" #~ "GNOME Music 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.\n" #~ "\n" #~ "You should have received a copy of the GNU General Public License along " #~ "with GNOME Music; if not, write to the Free Software Foundation, Inc., 51 " #~ "Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ "\n" #~ "The GNOME Music authors hereby grant permission for non-GPL compatible " #~ "GStreamer plugins to be used and distributed together with GStreamer and " #~ "GNOME Music. This permission is above and beyond the permissions granted " #~ "by the GPL license by which GNOME Music is covered. If you modify this " #~ "code, you may extend this exception to your version of the code, but you " #~ "are not obligated to do so. If you do not wish to do so, delete this " #~ "exception statement from your version." #~ msgstr "" #~ "Program GNOME Music je prosta programska oprema; dovoljeno je razširjanje " #~ "in spreminjanje pod pogoji Splošnega Javnega Dovoljenja (GNU), kot je " #~ "objavljena pri Free Software Foundation; različice 2 ali katerekoli " #~ "kasnejše.\n" #~ "\n" #~ "Program se razširja v upanju, da bo koristen, vendar pa brez VSAKRŠNEGA " #~ "JAMSTVA; tudi brez posredne zagotovitve CENOVNE VREDNOSTI ali PRIMERNOSTI " #~ "ZA DOLOČEN NAMEN. Za več podrobnosti si oglejte dovoljenje.\n" #~ "\n" #~ "\n" #~ "Skupaj s programom bi morali prejeti tudi kopijo Splošnega Javnega " #~ "dovoljenja GNU /GNU GPL). V primeru, da je niste, si oglejte .\n" #~ "\n" #~ "Avtorji programa GNOME Music dovolijo uporabo in razširjanje z " #~ "dovoljenjem neskladnih vstavkov programa GStreamer. Dovoljenje presega " #~ "Splošno Javno dovoljenje, s katerim je avtorsko zaščiten program GNOME " #~ "Music. V kolikor boste spreminjali to kodo, lahko razširite izjemo na " #~ "različico kode, vendar tega niste dolžni narediti. Če tega ne želite, " #~ "izbrišite izjavo izjeme iz vaše različice." #~ msgid "The contents of your Music Folder will appear here" #~ msgstr "Vsebina glasbene mape bo prikazana na tem mestu." #~ msgid "GNOME Music" #~ msgstr "GNOME Glasba" #~ msgid "Window position" #~ msgstr "Položaj okna" #~ msgid "Window position (x and y)." #~ msgstr "Položaj okna (osi x in y)." #~ msgid "Loading" #~ msgstr "Nalaganje" #~ msgid "Add to Playlist…" #~ msgstr "Dodaj na seznam predvajanja …" #~ msgid "Remove From Playlist" #~ msgstr "Odstrani s seznama predvajanja" #~ msgid "" #~ "An easy way to play your music. Automatically discover music on your " #~ "computer, the local network and internet services." #~ msgstr "" #~ "Enostaven način za predvajanje glasbe. Samodejno odkrivanje glasbe na " #~ "računalniku, v krajevnem omrežju in prek internetnih storitev." #~ msgid "" #~ "Find tracks in your local collection, get music from DLNA servers or try " #~ "something new with the Jamendo and Magnatune services." #~ msgstr "" #~ "Iskanje posnetkov v zbirki, pridobivanje glasbe prek strežnikov DLNA in " #~ "iskanje s storitvami Jamendo in Magnatune." #~ msgid "Inital state has been displayed" #~ msgstr "Začetno stanje je onemogočeno" #~ msgid "Set to true when initial state has been displayed" #~ msgstr "Izbrana možnost določa, da je bilo začetno stanje prikazano." #~ msgid "" #~ "GNOME Music 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.\n" #~ "\n" #~ "GNOME Music 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.\n" #~ "\n" #~ "You should have received a copy of the GNU General Public License along " #~ "with GNOME Music; if not, write to the Free Software Foundation, Inc., 51 " #~ "Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ "\n" #~ "The GNOME Music authors hereby grant permission for non-GPL compatible " #~ "GStreamer plugins to be used and distributed together with GStreamer and " #~ "GNOME Music. This permission is above and beyond the permissions granted " #~ "by the GPL license by which GNOME Music is covered. If you modify this " #~ "code, you may extend this exception to your version of the code, but you " #~ "are not obligated to do so. If you do not wish to do so, delete this " #~ "exception statement from your version.\n" #~ "\n" #~ "“Magic of the vinyl” by Sami Pyylampi image is licensed by CC-BY-SA 2.0 " #~ "https://www.flickr.com/photos/_spy_/12270839403" #~ msgstr "" #~ "GNOME Glasba je prosta programska oprema; program lahko razširjate in/ali " #~ "spreminjate pod pogoji Splošnega Javnega Dovoljenja GNU (angleško: GNU " #~ "General Public License), kot je objavljen s strani ustanove Free Software " #~ "Foundation; različice 2 ali (po želji) katerekoli kasnejše različice.\n" #~ "\n" #~ "Program se razširja v upanju, da bo uporabniku koristen, vendar BREZ " #~ "VSAKRŠNE GARANCIJE; tudi brez posrednega zagotovila JAMSTVA CENOVNE " #~ "VREDNOSTI in PRIMERNOSTI ZA DOLOČENO UPORABO. Za več podrobnosti si " #~ "poglejte določila Splošnega Javnega Dovoljenja GNU.\n" #~ "\n" #~ "Kopijo tega dokumenta bi morali prejeti skupaj s programom, v kolikor pa " #~ "je niste, si dovoljenje poglejte na spletni strani , oziroma pišite na naslov organizacije Free Software " #~ "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 " #~ "USA.\n" #~ "\n" #~ "Avtorji programa GNOME Music dovoljujejo uporabo ne-GPL skladnih vstavkov " #~ "GStreamer skupaj s programom. To dovoljenje presega dovoljenja GPL, ki " #~ "pokriva program. V kolikor spreminjate to kodo, lahko razširite izjemo na " #~ "vašo različico kode, ni pa to nujno. Če ne želite, izbrišite to trditev " #~ "iz vaše različice.\n" #~ "\n" #~ "Slika Samija Pyylampija »Magic of the vinyl« je objavljena z dovoljenjem " #~ "CC-BY-SA 2.0 https://www.flickr.com/photos/_spy_/12270839403" #~ msgid "Hey DJ" #~ msgstr "Hej, DJ" #~ msgid "Released" #~ msgstr "Izdano" #~ msgid "Running Length" #~ msgstr "Skupna dolžina" #~ msgid "Composer" #~ msgstr "Skladatelj" #~ msgctxt "context menu item" #~ msgid "Play" #~ msgstr "Predvajaj" #~ msgid "Artist" #~ msgstr "Izvajalec" #~ msgid "Album" #~ msgstr "Album" #~ msgid "Track Title" #~ msgstr "Naslov skladbe" #~ msgid "Local" #~ msgstr "Krajevno" #~ msgid "Sources" #~ msgstr "Viri" #~ msgid "Match" #~ msgstr "Se sklada" #~ msgid "Untitled" #~ msgstr "Neimenovano" #~ msgid "@icon@" #~ msgstr "@icon@" #~ msgid "_Quit" #~ msgstr "_Končaj" #~ msgid "Music is the new GNOME music playing application." #~ msgstr "Glasba je program za predvajanje glasbe za namizje GNOME." #~ msgid "org.gnome.Music" #~ msgstr "org.gnome.Music" #~ msgid "Selected %d item" #~ msgid_plural "Selected %d items" #~ msgstr[0] "Izbranih je %d predmetov" #~ msgstr[1] "Izbran je %d predmet" #~ msgstr[2] "Izbrana sta %d predmeta" #~ msgstr[3] "Izbrani so %d predmeti" #~ msgid "Empty" #~ msgstr "Prazno" #~ msgid "Search mode" #~ msgstr "Iskalni način" #~ msgid "If true, the search bar is shown." #~ msgstr "Izbrana možnost določa prikaz iskalne vrstice." #~ msgid "Notifications mode" #~ msgstr "Način obvestil" #~ msgid "Enables or disables playback notifications" #~ msgstr "Omogoči prikaz obvestil predvajanja" #~ msgid "%d min" #~ msgstr "%d min" #~ msgid "Select Playlist" #~ msgstr "Izbor seznama predvajanja" #~ msgid "the|a|an" #~ msgstr "the|a|an" #~ msgid "" #~ "Value identifies whether to repeat or randomize playback through the " #~ "collection. Allowed values are: \"none\" (repeat and shuffle are off), " #~ "\"song\" (repeat current song), \"all\" (repeat playlist, no shuffle), " #~ "\"shuffle\" (shuffle playlist, presumes repeat all)." #~ msgstr "" #~ "Vrednost določa, ali naj se predvajanje posnetkov izvaja naključno ali " #~ "ponavljajoče. Dovoljene možnosti so: \"brez\" (ponavljanje in mešanje " #~ "skladb je onemogočeno, \"posnetek\" (ponavljaj trenutni posnetek) , " #~ "\"vse\" (ponavljaj seznam predvajanja brez mešanja) in " #~ "\"premešano\" (vrstni red je premešan, ponovljene pa bodo vse skladbe)." #~ msgid "Max chars to display in track name on Artist view" #~ msgstr "Največje število znakov naslova sledi v pogledu izvajalca" #~ msgid "" #~ "This setting modifies the amount of chars for track title on Artist view " #~ "before its been ellipsized. Set this to -1 to disable" #~ msgstr "" #~ "Nastavitev določa število znakov naslova sledi v pogledu izvajalcev, " #~ "preden je okrajšan. Vrednost -1 onemogoči nastavitev." #~ msgid "the a an" #~ msgstr "the a an" #~ msgid "All Artists" #~ msgstr "Vsi izvajalci" #~ msgid "Copyright © 2013 GNOME Music Developers" #~ msgstr "Avtorske pravice © 2013 Razvijalci programa GNOME Music" #~ msgid "" #~ "GNOME Music 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.\n" #~ "\n" #~ "GNOME Music 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.\n" #~ "\n" #~ "You should have received a copy of the GNU General Public License along " #~ "with GNOME Music; if not, write to the Free Software Foundation, Inc., 51 " #~ "Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ "\n" #~ "The GNOME Music authors hereby grant permission for non-GPL compatible " #~ "GStreamer plugins to be used and distributed together with GStreamer and " #~ "GNOME Music. This permission is above and beyond the permissions granted " #~ "by the GPL license by which GNOME Music is covered. If you modify this " #~ "code, you may extend this exception to your version of the code, but you " #~ "are not obligated to do so. If you do not wish to do so, delete this " #~ "exception statement from your version.\n" #~ "\n" #~ "\"Magic of the vinyl\" by Sami Pyylampi image is licensed by CC-BY-SA 2.0 " #~ "https://www.flickr.com/photos/_spy_/12270839403\n" #~ msgstr "" #~ "Program Gnome Music je opredeljen kot prosta programska oprema; lahko ga " #~ "razširjate in/ali spreminjate pod pogoji Splošnega Javnega Dovoljenja GNU " #~ "(angleško: GNU General Public License), kot ga je objavila ustanova Free " #~ "Software Foundation; različice 3 ali (po želji) katerekoli kasnejše " #~ "različice.\n" #~ "\n" #~ "Program se razširja v upanju, da bo uporabniku koristen, vendar BREZ " #~ "VSAKRŠNE GARANCIJE; tudi brez posrednega zagotovila JAMSTVA CENOVNE " #~ "VREDNOSTI in PRIMERNOSTI ZA DOLOČENO UPORABO. Za več podrobnosti si " #~ "poglejte določila Splošnega Javnega Dovoljenja GNU.\n" #~ "\n" #~ "Kopijo tega dokumenta bi morali prejeti skupaj s programom, v kolikor pa " #~ "je niste, si dovoljenje poglejte na spletni strani .\n" #~ "\n" #~ "Avtorji programa GNOME Music dovoljujejo uporabo ne-GPL skladnih vstavkov " #~ "GStreamer skupaj s programom. To dovoljenje presega dovoljenja GPL, ki " #~ "pokriva program. V kolikor spreminjate to kodo, lahko razširite izjomo na " #~ "vašo različico kodo, ni pa to nujno. Če ne želite, izbrišite to trditev " #~ "iz vaše različice.\n" #~ "\n" #~ "Slika Samija Pyylampija \"Magic of the vinyl\" je objavljena z " #~ "dovoljenjem CC-BY-SA 2.0 https://www.flickr.com/photos/_spy_/12270839403\n" #~ msgid "Cancel" #~ msgstr "Prekliči" #~ msgid "Not playing" #~ msgstr "Ni predvajanja" #~ msgid "by %s, from %s" #~ msgstr "%s (album %s)" #~ msgid "" #~ "No Music found!\n" #~ " Put some files into the folder %s" #~ msgstr "" #~ "Posnetkov ni mogoče najti!\n" #~ " Nekaj datotek je treba kopirati v mapo %s" #~ msgid "_New Playlist" #~ msgstr "_Nov seznam predvajanja" #~ msgid "Load More" #~ msgstr "Naloži dodatne" #~ msgid "Now _Playing" #~ msgstr "_Predvajanje" #~ msgid "Released" #~ msgstr "Objavljeno" #~ msgid "Running Length" #~ msgstr "Dolžina predvajanja" #~ msgid "----" #~ msgstr "----" #~ msgid "--:--" #~ msgstr "--:--" #~ msgid "00:00" #~ msgstr "00:00" #~ msgid "/" #~ msgstr "/" #~ msgid "If true, do randomized playback through the collection" #~ msgstr "Izbrana možnost določa naključno predvajanje posnetkov v zbirki" 0707010000010F000081A400000000000000000000000166968E4E0000717B000000000000000000000000000000000000001A00000000gnome-music-46.1/po/sr.po# Serbian translation for gnome-music. # Courtesy of Prevod.org team (http://prevod.org/) -- 2013–2017. # This file is distributed under the same license as the gnome-music package. # Мирослав Николић , 2013–2021. # facyber , 2024. # msgid "" msgstr "" "Project-Id-Version: gnome-music master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-music/issues\n" "POT-Creation-Date: 2024-03-20 13:11+0000\n" "PO-Revision-Date: 2024-03-23 15:34+0100\n" "Last-Translator: facyber \n" "Language-Team: Serbian \n" "Language: sr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=n==1? 3 : n%10==1 && n%100!=11 ? 0 : " "n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2\n" "X-Project-Style: gnome\n" "X-Generator: Gtranslator 45.3\n" #: data/org.gnome.Music.appdata.xml.in.in:6 #: data/org.gnome.Music.desktop.in.in:3 data/ui/StatusNavigationPage.ui:4 #: gnomemusic/about.py:138 gnomemusic/application.py:59 gnomemusic/window.py:65 msgid "Music" msgstr "Музика" #: data/org.gnome.Music.appdata.xml.in.in:7 #: data/org.gnome.Music.desktop.in.in:5 msgid "Play and organize your music collection" msgstr "Слушајте и уређујте музичку збирку" #: data/org.gnome.Music.appdata.xml.in.in:9 msgid "An easy and pleasant way to play your music." msgstr "Лаган и угодан начин за пуштање музике." #: data/org.gnome.Music.appdata.xml.in.in:12 msgid "" "Find tracks in your local collection, use automatically generated playlists " "or curate a fresh one." msgstr "" "Нађите нумере у вашој локалној збирци, користите самостворене спискове " "нумера или направите нови." #. developer_name tag deprecated with Appstream 1.0 #: data/org.gnome.Music.appdata.xml.in.in:214 msgid "The GNOME Music developers" msgstr "Програмери Гномове Музике" #: data/org.gnome.Music.desktop.in.in:4 msgid "Music Player" msgstr "Програм за музику" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Music.desktop.in.in:13 msgid "Music;Player;" msgstr "Music;Player;музика;пусти;пуштач;плејер;muzika;pusti;puštač;plejer;" #: data/org.gnome.Music.gschema.xml:12 msgid "Window size" msgstr "Величина прозора" #: data/org.gnome.Music.gschema.xml:13 msgid "Window size (width and height)." msgstr "Величина прозора (ширина и висина)." #: data/org.gnome.Music.gschema.xml:17 msgid "Window maximized" msgstr "Увећан прозор" #: data/org.gnome.Music.gschema.xml:18 msgid "Window maximized state." msgstr "Стање увећаног прозора." #: data/org.gnome.Music.gschema.xml:22 msgid "Playback repeat mode" msgstr "Режим понављања пуштања" #. Translators: Don't translate allowed values, just the description in the brackets #: data/org.gnome.Music.gschema.xml:24 msgid "" "Value identifies whether to repeat or randomize playback through the " "collection. Allowed values are: “none” (repeat and shuffle are off), " "“song” (repeat current song), “all” (repeat playlist, no shuffle), " "“shuffle” (shuffle playlist, presumes repeat all)." msgstr "" "Вредност која одређује да ли ће пуштање кроз збирку бити поновљено или " "насумично. Допуштене вредности су: „none“ (понављање и мешање су искључени), " "„song“ (понавља текућу песму), „all“ (понавља списак нумера, не меша), " "„shuffle“ (меша списак нумера, подразумева понављање свега)." #: data/org.gnome.Music.gschema.xml:28 data/ui/PreferencesDialog.ui:27 msgid "Enable ReplayGain" msgstr "Укључује појачање понављања" #: data/org.gnome.Music.gschema.xml:29 msgid "Enables or disables ReplayGain for albums" msgstr "Укључује или искључује појачање понављања за албуме" #: data/org.gnome.Music.gschema.xml:33 msgid "Inhibit system suspend" msgstr "Спречи обуставу система" #: data/org.gnome.Music.gschema.xml:34 msgid "Enables or disables inhibiting system suspend while playing music" msgstr "" "Омогућава или онемогућава спречавање обуставе система док се пушта музика" #: data/ui/AlbumsSearchNavigationPage.ui:5 data/ui/SearchView.ui:98 #: gnomemusic/views/albumsview.py:52 msgid "Albums" msgstr "Албуми" #: data/ui/AlbumWidget.ui:84 data/ui/PlayerToolbar.ui:87 #: data/ui/PlaylistControls.ui:101 gnomemusic/widgets/playertoolbar.py:176 msgid "Play" msgstr "Пусти" #: data/ui/AlbumWidget.ui:130 data/ui/PlaylistControls.ui:5 #: data/ui/SongWidgetMenu.ui:11 msgid "_Play" msgstr "_Пусти" #: data/ui/AlbumWidget.ui:134 msgid "Add to _Favorite Songs" msgstr "Додај у _омиљене песме" #: data/ui/AlbumWidget.ui:138 data/ui/SongWidgetMenu.ui:15 msgid "_Add to Playlist…" msgstr "_Додај на списак нумера…" #: data/ui/ArtistsSearchNavigationPage.ui:5 data/ui/SearchView.ui:41 #: gnomemusic/views/artistsview.py:51 msgid "Artists" msgstr "Извођачи" #: data/ui/HeaderBar.ui:14 msgid "Menu" msgstr "Изборник" #: data/ui/HeaderBar.ui:22 data/ui/SearchHeaderBar.ui:12 msgid "Search" msgstr "Потражи" #: data/ui/HeaderBar.ui:31 data/ui/PreferencesDialog.ui:4 msgid "Preferences" msgstr "Поставке" #: data/ui/HeaderBar.ui:35 msgid "Keyboard Shortcuts" msgstr "Пречице на тастатури" # msgctxt "shortcut window" #: data/ui/HeaderBar.ui:39 msgid "Help" msgstr "Помоћ" #: data/ui/HeaderBar.ui:43 msgid "About Music" msgstr "О Музици" #: data/ui/help-overlay.ui:11 msgctxt "shortcut window" msgid "General" msgstr "Опште" #: data/ui/help-overlay.ui:14 msgctxt "shortcut window" msgid "Close window" msgstr "Затвара прозор" #: data/ui/help-overlay.ui:20 msgctxt "shortcut window" msgid "Search" msgstr "Претрага" #: data/ui/help-overlay.ui:26 msgctxt "shortcut window" msgid "Help" msgstr "Помоћ" #: data/ui/help-overlay.ui:32 msgctxt "shortcut window" msgid "Shortcuts" msgstr "Пречице" #: data/ui/help-overlay.ui:40 msgctxt "shortcut window" msgid "Playback" msgstr "Пуштање" #: data/ui/help-overlay.ui:43 msgctxt "shortcut window" msgid "Play/Pause" msgstr "Пушта/паузира" #: data/ui/help-overlay.ui:49 msgctxt "shortcut window" msgid "Next song" msgstr "Следећа песма" #: data/ui/help-overlay.ui:55 msgctxt "shortcut window" msgid "Previous song" msgstr "Претходна песма" #: data/ui/help-overlay.ui:61 msgctxt "shortcut window" msgid "Toggle repeat" msgstr "Прекидач за понављање" #: data/ui/help-overlay.ui:67 msgctxt "shortcut window" msgid "Toggle shuffle" msgstr "Прекидач за мешање" #: data/ui/help-overlay.ui:75 msgctxt "shortcut window" msgid "Navigation" msgstr "Навигација" #: data/ui/help-overlay.ui:78 msgctxt "shortcut window" msgid "Go to Albums" msgstr "Иде на албуме" #: data/ui/help-overlay.ui:84 msgctxt "shortcut window" msgid "Go to Artists" msgstr "Иде на извођаче" #: data/ui/help-overlay.ui:90 msgctxt "shortcut window" msgid "Go to Songs" msgstr "Иде на песме" #: data/ui/help-overlay.ui:96 msgctxt "shortcut window" msgid "Go to Playlists" msgstr "Иде на списак нумера" #: data/ui/help-overlay.ui:102 msgctxt "shortcut window" msgid "Go back" msgstr "Иде назад" #: data/ui/PlayerToolbar.ui:74 msgid "Previous" msgstr "Претходно" #: data/ui/PlayerToolbar.ui:106 msgid "Next" msgstr "Наредно" #: data/ui/PlaylistControls.ui:9 msgid "_Delete" msgstr "_Обриши" #: data/ui/PlaylistControls.ui:13 msgid "_Rename…" msgstr "_Преименуј…" #: data/ui/PlaylistControls.ui:28 msgid "Playlist Name" msgstr "Назив списка нумера" #: data/ui/PlaylistControls.ui:62 msgid "_Done" msgstr "_Готово" #: data/ui/PlaylistDialog.ui:16 msgid "Add to Playlist" msgstr "Додај на списак нумера" #: data/ui/PlaylistDialog.ui:27 msgid "_Cancel" msgstr "_Откажи" #: data/ui/PlaylistDialog.ui:36 msgid "_Add" msgstr "_Додај" #: data/ui/PlaylistDialog.ui:91 msgid "Enter a name for your first playlist" msgstr "Унесите назив за ваш први списак нумера" #: data/ui/PlaylistDialog.ui:116 msgid "C_reate" msgstr "_Направи" #: data/ui/PlaylistDialog.ui:177 msgid "New Playlist…" msgstr "Нови списак нумера…" #: data/ui/PlaylistDialog.ui:189 msgid "Add" msgstr "Додај" #: data/ui/PreferencesDialog.ui:9 msgid "Player Settings" msgstr "Поставке програма" #: data/ui/PreferencesDialog.ui:12 msgid "Repeat Mode" msgstr "Режим понављања" #: data/ui/PreferencesDialog.ui:16 msgid "None" msgstr "Ништа" #: data/ui/PreferencesDialog.ui:17 msgid "Song" msgstr "Песме" #: data/ui/PreferencesDialog.ui:18 msgid "All" msgstr "Све" #: data/ui/PreferencesDialog.ui:19 gnomemusic/player.py:51 msgid "Shuffle" msgstr "Насумично" #: data/ui/PreferencesDialog.ui:28 msgid "Balance loudness between songs if ReplayGain metadata is found" msgstr "" "Балансирајте гласноћу између песма ако су метаподаци појачања понављања " "пронађени" #: data/ui/PreferencesDialog.ui:35 msgid "Power Settings" msgstr "Поставке напајања" #: data/ui/PreferencesDialog.ui:38 msgid "Inhibit Suspend" msgstr "Забрана суспензије" #: data/ui/PreferencesDialog.ui:39 msgid "Only while playing" msgstr "Само док иде песма" #: data/ui/SearchView.ui:55 data/ui/SearchView.ui:112 msgid "View All" msgstr "Прикажи све" #: data/ui/SearchView.ui:154 msgid "Songs" msgstr "Песме" #: data/ui/SongWidgetMenu.ui:19 msgid "_Remove from Playlist" msgstr "_Уклони са списка нумера" #: data/ui/StatusNavigationPage.ui:36 msgid "Welcome to Music" msgstr "Добро дошли у Музику" #: gnomemusic/about.py:140 msgid "The GNOME Project" msgstr "Гномов пројекат" #. Translators should localize the following string which #. will be displayed at the bottom of the about box to give #. credit to the translator(s). #: gnomemusic/about.py:146 msgid "translator-credits" msgstr "" "Мирослав Николић \n" "Марко М. Костић \n" "https://гном.срб — превод Гнома на српски језик." #: gnomemusic/about.py:150 msgid "© The GNOME Music Developers" msgstr "© Програмери Гномове Музике" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:839 msgid "Most Played" msgstr "Највише пуштане" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:893 msgid "Never Played" msgstr "Никад пуштане" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:946 msgid "Recently Played" msgstr "Недавно пуштане" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1025 msgid "Recently Added" msgstr "Недавно додате" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1088 msgid "Favorite Songs" msgstr "Омиљене песме" #. TRANSLATORS: this is a playlist name indicating that the #. files are not tagged enough to be displayed in the albums #. or artists views. #: gnomemusic/grilowrappers/grltrackerplaylists.py:1142 msgid "Insufficiently Tagged" msgstr "Недовољно означено" #: gnomemusic/gstplayer.py:418 msgid "Unable to play the file" msgstr "Не могу да пустим датотеку" #: gnomemusic/gstplayer.py:424 msgid "_Find in {}" msgstr "_Пронађи у {}" #. TRANSLATORS: separator for two codecs #: gnomemusic/gstplayer.py:434 msgid " and " msgstr " и " #. TRANSLATORS: separator for a list of codecs #: gnomemusic/gstplayer.py:437 msgid ", " msgstr ", " #: gnomemusic/gstplayer.py:439 msgid "{} is required to play the file, but is not installed." msgid_plural "{} are required to play the file, but are not installed." msgstr[0] "{} је потребан за пуштање датотеке али није инсталиран." msgstr[1] "{} су потребни за пуштање датотеке али нису инсталирани." msgstr[2] "{} су потребни за пуштање датотеке али нису инсталирани." msgstr[3] "{} је потребан за пуштање датотеке али није инсталиран." #: gnomemusic/inhibitsuspend.py:69 msgid "Playing music" msgstr "Пуштам музику" #. Translators: "shuffle" causes tracks to play in random order. #: gnomemusic/player.py:48 msgid "Shuffle/Repeat Off" msgstr "Искључи мешање/понављање" #: gnomemusic/player.py:49 msgid "Repeat Song" msgstr "Понови песму" #: gnomemusic/player.py:50 msgid "Repeat All" msgstr "Понови све" #: gnomemusic/playlisttoast.py:55 msgid "Playlist {} removed" msgstr "Списак нумера {} је уклоњен" #: gnomemusic/playlisttoast.py:56 gnomemusic/songtoast.py:65 msgid "Undo" msgstr "Опозови" #: gnomemusic/songtoast.py:64 msgid "{} removed from {}" msgstr "Ставка {} уклоњена из {}" #: gnomemusic/utils.py:89 msgid "Unknown album" msgstr "Непознат албум" #: gnomemusic/utils.py:110 msgid "Unknown Artist" msgstr "Непознат извођач" #: gnomemusic/views/playlistsview.py:45 msgid "Playlists" msgstr "Списак нумера" #: gnomemusic/views/searchview.py:220 msgid "No Search Started" msgstr "Нема започетих претрага" #: gnomemusic/views/searchview.py:222 msgid "Use the searchbar to start searching for albums, artists or songs" msgstr "Користите поље за претрагу да претражите албуме, извођаче или песме" #: gnomemusic/views/searchview.py:226 msgid "No Results Found" msgstr "Нема резултата" #: gnomemusic/views/searchview.py:228 msgid "Try a different search" msgstr "Пробајте са другачијом претрагом" #: gnomemusic/widgets/albumwidget.py:230 msgid "{} minute" msgid_plural "{} minutes" msgstr[0] "{} минут" msgstr[1] "{} минута" msgstr[2] "{} минута" msgstr[3] "{} минут" #: gnomemusic/widgets/discbox.py:74 msgid "Disc {}" msgstr "Диск {}" #: gnomemusic/widgets/playertoolbar.py:173 msgid "Pause" msgstr "Застани" #: gnomemusic/widgets/playlistcontrols.py:130 msgid "{} Song" msgid_plural "{} Songs" msgstr[0] "{} песма" msgstr[1] "{} песме" msgstr[2] "{} песама" msgstr[3] "{} песма" #: gnomemusic/widgets/searchheaderbar.py:50 msgid "Search songs, artists and albums" msgstr "Претражи песме, извођаче и албуме" #. noqa: F841 #: gnomemusic/widgets/songwidgetmenu.py:94 msgid "_Open Location" msgstr "_Отвори локацију" #. TRANSLATORS: These are verbs, to (un)mark something as a #. favorite. #: gnomemusic/widgets/startoggle.py:36 msgid "Unstar" msgstr "Уклони звездицу" #: gnomemusic/widgets/startoggle.py:36 msgid "Star" msgstr "Означи звездицом" #: gnomemusic/widgets/statusnavigationpage.py:51 msgid "Your XDG Music directory is not set." msgstr "XDG музичка фасцикла није постављена." #: gnomemusic/widgets/statusnavigationpage.py:58 msgid "Music Folder" msgstr "Директоријум са музиком" #. TRANSLATORS: This is a label to display a link to open user's music #. folder. {} will be replaced with the translated text 'Music folder' #: gnomemusic/widgets/statusnavigationpage.py:66 msgid "The contents of your {} will appear here." msgstr "Садржај директоријума „{}“ ће се појавити овде." #: gnomemusic/widgets/statusnavigationpage.py:116 msgid "No Music Found" msgstr "Нисам пронашао музику" #: gnomemusic/widgets/statusnavigationpage.py:117 msgid "Try a Different Search" msgstr "Пробајте са другачијом претрагом" #: gnomemusic/widgets/statusnavigationpage.py:121 msgid "GNOME Music could not connect to Tracker." msgstr "Гномова Музика није могла да се повеже на Трагача." #: gnomemusic/widgets/statusnavigationpage.py:123 msgid "Your music files cannot be indexed without Tracker running." msgstr "" "Ваше музичке датотеке не могу бити пописане уколико Трагач није покренут." #: gnomemusic/widgets/statusnavigationpage.py:129 msgid "Your system Tracker version seems outdated." msgstr "Издање вашег системског трагача делује застарело." #: gnomemusic/widgets/statusnavigationpage.py:131 msgid "Music needs Tracker version 3.0.0 or higher." msgstr "Музици је потребан трагач (Tracker) издања 3.0.0 или новијег." #~ msgid "Report music history to Last.fm" #~ msgstr "Пошаљи музички историјат на Last.fm" #~ msgid "" #~ "Enables or disables sending scrobbles and the “currently playing” info to " #~ "Last.fm." #~ msgstr "" #~ "Омогућава или онемогућава слање скроблова и податке о тренутном слушању " #~ "на Last.fm." #~ msgid "Last.fm Account" #~ msgstr "Last.fm налог" #~ msgid "Report Music Listening" #~ msgstr "Пошаљи податке о слушању" #~ msgid "_Help" #~ msgstr "По_моћ" #~ msgid "Select" #~ msgstr "Изабери" #~ msgid "Back" #~ msgstr "Назад" #~ msgid "" #~ "Last.fm is a music discovery service that gives you personalised " #~ "recommendations based on the music you listen to." #~ msgstr "" #~ "Last.fm је услуга за откривање музике која вам даје персонализоване " #~ "препоруке на основу музике коју слушате." #~ msgid "Music Reporting Not Setup" #~ msgstr "Пријављивање музике није подешено" #~ msgid "Login to your Last.fm account to report your music listening." #~ msgstr "" #~ "Пријавите се уз помоћ вашег Last.fm налога да бите пријавили ваше " #~ "слушалачке навике." #~ msgid "Login" #~ msgstr "Пријава" #~ msgid "Select All" #~ msgstr "Изабери све" #~ msgid "Select None" #~ msgstr "Поништи избор" #~ msgid "Click on items to select them" #~ msgstr "Кликните на ставке да их изаберете" #~ msgid "_Add to Playlist" #~ msgstr "_Додај на списак нумера" #~ msgid "Copyright The GNOME Music Developers" #~ msgstr "Ауторска права програмери Гномове музике" #~ msgid "Translated by" #~ msgstr "Превод" #~ msgid "Artists Results" #~ msgstr "Резултати извођача" #~ msgid "Albums Results" #~ msgstr "Резултати албума" #~ msgid "Selected {} song" #~ msgid_plural "Selected {} songs" #~ msgstr[0] "Изабрана је {} песма" #~ msgstr[1] "Изабране су {} песме" #~ msgstr[2] "Изабрано је {} песми" #~ msgstr[3] "Изабрана је једна песма" #~ msgid "Your music listening is reported to Last.fm." #~ msgstr "Ваше слушалачке навике се шаљу на Last.fm." #~ msgid "Your music listening is not reported to Last.fm." #~ msgstr "Ваше слушалачке навике се не шаљу на Last.fm." #~ msgid "Logged in as {}" #~ msgstr "Пријављен као {}" #~ msgid "Configure" #~ msgstr "Подеси" #~ msgid "A music player and management application for GNOME." #~ msgstr "Гномов програм за пуштање и управљање музиком." #~ msgid "Visit GNOME Music website" #~ msgstr "Посетите веб страницу Гномове музике" #~ msgid "" #~ "GNOME Music 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.\n" #~ "\n" #~ "GNOME Music 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.\n" #~ "\n" #~ "You should have received a copy of the GNU General Public License along " #~ "with GNOME Music; if not, write to the Free Software Foundation, Inc., 51 " #~ "Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ "\n" #~ "The GNOME Music authors hereby grant permission for non-GPL compatible " #~ "GStreamer plugins to be used and distributed together with GStreamer and " #~ "GNOME Music. This permission is above and beyond the permissions granted " #~ "by the GPL license by which GNOME Music is covered. If you modify this " #~ "code, you may extend this exception to your version of the code, but you " #~ "are not obligated to do so. If you do not wish to do so, delete this " #~ "exception statement from your version." #~ msgstr "" #~ "Овај програм је слободан софтвер; можете га прослеђивати\n" #~ "и/или мењати под условима Гнуове опште јавне лиценце коју је\n" #~ "објавила Задужбина слободног софтвера; верзије 2 лиценце,\n" #~ "или (по вашем избору) било које новије верзије.\n" #~ "\n" #~ "Овај програм се расподељује у нади да ће бити користан,\n" #~ "али БЕЗ ИКАКВЕ ГАРАНЦИЈЕ; чак и без примењене гаранције\n" #~ "ТРЖИШНЕ ВРЕДНОСТИ или ПРИЛАГОЂЕНОСТИ ОДРЕЂЕНОЈ НАМЕНИ.\n" #~ "Погледајте Гнуову општу јавну лиценцу за више детаља.\n" #~ "\n" #~ "Требали сте да примите примерак ГНУ Опште јавне лиценце\n" #~ "уз овај програм; ако нисте, пишите Задужбини слободног\n" #~ "софтвера на адресу: „Free Software Foundation, Inc.,\n" #~ "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.“\n" #~ "\n" #~ "Аутори Гномове музике безусловно гарантују овлашћења за коришћење и " #~ "расподелу прикључака Гстримера који нису сагласни са ОЈЛ-ом уз Гстример и " #~ "Гномову музику. Ово овлашћење је изнад и испод овлашћења које обезбеђује " #~ "ОЈЛ дозвола којом је покривена Гномова музика. Ако измените овај код, " #~ "можете да проширите овај изузетак на ваше издање кода, али нисте обавезни " #~ "да то и урадите. Ако не желите да урадите ово, обришите стање овог " #~ "изузетка из вашег издања." #~ msgid "The contents of your Music Folder will appear here" #~ msgstr "Садржај фасцикле „Музика“ појавиће се овде" #~ msgid "GNOME Music" #~ msgstr "Гномова музика" #~ msgid "Window position" #~ msgstr "Положај прозора" #~ msgid "Window position (x and y)." #~ msgstr "Положај прозора (положено и усправно)." #~ msgid "Loading" #~ msgstr "Учитавам" #~ msgid "Add to Playlist…" #~ msgstr "Додај на списак нумера…" #~ msgid "" #~ "An easy way to play your music. Automatically discover music on your " #~ "computer, the local network and internet services." #~ msgstr "" #~ "Једноставан начин за слушање ваше музике. Аутоматски откријте музику на " #~ "вашем рачунару, локалној мрежи и на интернет услугама." #~ msgid "" #~ "Find tracks in your local collection, get music from DLNA servers or try " #~ "something new with the Jamendo and Magnatune services." #~ msgstr "" #~ "Нађите нумере у вашој локалној збирци, добавите музику са ДЛНА сервера " #~ "или пробајте нешто ново са Џамендо и Магнатјун услугама." #~ msgid "Inital state has been displayed" #~ msgstr "Почетно стање је приказано" #~ msgid "Set to true when initial state has been displayed" #~ msgstr "Постави на тачно када се почетно стање прикаже" #~ msgid "Released" #~ msgstr "Издат" #~ msgid "Running Length" #~ msgstr "Дужина трајања" #~ msgid "Composer" #~ msgstr "Композитор" #~ msgctxt "context menu item" #~ msgid "Play" #~ msgstr "Пусти" #~ msgid "Hey DJ" #~ msgstr "Хеј! Ди-џеј!" #~ msgid "Artist" #~ msgstr "Извођач" #~ msgid "Album" #~ msgstr "Албум" #~ msgid "Track Title" #~ msgstr "Наслов нумере" #~ msgid "Local" #~ msgstr "Месно" #~ msgid "Sources" #~ msgstr "Извори" #~ msgid "Match" #~ msgstr "Поклопи" #~ msgid "@icon@" #~ msgstr "@icon@" #~ msgid "Untitled" #~ msgstr "Без наслова" #~ msgid "_Quit" #~ msgstr "_Изађи" #~ msgid "Music is the new GNOME music playing application." #~ msgstr "Музика је нови Гномов програм за пуштање музике." #~ msgid "org.gnome.Music" #~ msgstr "org.gnome.Music" #~ msgid "Search mode" #~ msgstr "Режим претраге" #~ msgid "If true, the search bar is shown." #~ msgstr "Ако је изабрано, биће приказана трака за претрагу." #~ msgid "Notifications mode" #~ msgstr "Режим обавештавања" #~ msgid "Enables or disables playback notifications" #~ msgstr "Укључује или искључује обавештења пуштања" #~ msgid "Selected %d item" #~ msgid_plural "Selected %d items" #~ msgstr[0] "Изабрана је %d ставка" #~ msgstr[1] "Изабране су %d ставке" #~ msgstr[2] "Изабрано је %d ставки" #~ msgstr[3] "Изабрана је %d ставка" #~ msgid "%d min" #~ msgstr "%d min" #~ msgid "Empty" #~ msgstr "Празно" #~ msgid "Select Playlist" #~ msgstr "Изаберите списак нумера" #~ msgid "the|a|an" #~ msgstr "the|a|an" #~ msgid "Max chars to display in track name on Artist view" #~ msgstr "Највише знакова за приказ у називу нумере у прегледу извођача" #~ msgid "" #~ "This setting modifies the amount of chars for track title on Artist view " #~ "before its been ellipsized. Set this to -1 to disable" #~ msgstr "" #~ "Ово подешавање мења број знакова за наслов нумере у прегледу извођача пре " #~ "његовог скраћивања. Поставите на -1 да га искључите" #~ msgid "the a an" #~ msgstr "the" #~ msgid "All Artists" #~ msgstr "Сви извођачи" #~ msgid "Not playing" #~ msgstr "Сада пуштам" #~ msgid "by %s, from %s" #~ msgstr "изводи %s, са „%s“" #~ msgid "" #~ "No Music found!\n" #~ " Put some files into the folder %s" #~ msgstr "" #~ "Нисам пронашао музику!\n" #~ " Пребаците неке датотеке у фасциклу „%s“" #~ msgid "_New Playlist" #~ msgstr "_Нови списак нумера" #~ msgid "Load More" #~ msgstr "Учитај још" 07070100000110000081A400000000000000000000000166968E4E00005F5D000000000000000000000000000000000000002000000000gnome-music-46.1/po/sr@latin.po# Serbian translation for gnome-music. # Courtesy of Prevod.org team (http://prevod.org/) -- 2013–2017. # This file is distributed under the same license as the gnome-music package. # Miroslav Nikolić , 2013–2021. # facyber , 2024. # msgid "" msgstr "" "Project-Id-Version: gnome-music master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-music/issues\n" "POT-Creation-Date: 2024-03-20 13:11+0000\n" "PO-Revision-Date: 2024-03-23 15:34+0100\n" "Last-Translator: facyber \n" "Language-Team: Serbian \n" "Language: sr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=n==1? 3 : n%10==1 && n%100!=11 ? 0 : " "n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2\n" "X-Project-Style: gnome\n" "X-Generator: Gtranslator 45.3\n" #: data/org.gnome.Music.appdata.xml.in.in:6 #: data/org.gnome.Music.desktop.in.in:3 data/ui/StatusNavigationPage.ui:4 #: gnomemusic/about.py:138 gnomemusic/application.py:59 gnomemusic/window.py:65 msgid "Music" msgstr "Muzika" #: data/org.gnome.Music.appdata.xml.in.in:7 #: data/org.gnome.Music.desktop.in.in:5 msgid "Play and organize your music collection" msgstr "Slušajte i uređujte muzičku zbirku" #: data/org.gnome.Music.appdata.xml.in.in:9 msgid "An easy and pleasant way to play your music." msgstr "Lagan i ugodan način za puštanje muzike." #: data/org.gnome.Music.appdata.xml.in.in:12 msgid "" "Find tracks in your local collection, use automatically generated playlists " "or curate a fresh one." msgstr "" "Nađite numere u vašoj lokalnoj zbirci, koristite samostvorene spiskove " "numera ili napravite novi." #. developer_name tag deprecated with Appstream 1.0 #: data/org.gnome.Music.appdata.xml.in.in:214 msgid "The GNOME Music developers" msgstr "Programeri Gnomove Muzike" #: data/org.gnome.Music.desktop.in.in:4 msgid "Music Player" msgstr "Program za muziku" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Music.desktop.in.in:13 msgid "Music;Player;" msgstr "Music;Player;muzika;pusti;puštač;plejer;muzika;pusti;puštač;plejer;" #: data/org.gnome.Music.gschema.xml:12 msgid "Window size" msgstr "Veličina prozora" #: data/org.gnome.Music.gschema.xml:13 msgid "Window size (width and height)." msgstr "Veličina prozora (širina i visina)." #: data/org.gnome.Music.gschema.xml:17 msgid "Window maximized" msgstr "Uvećan prozor" #: data/org.gnome.Music.gschema.xml:18 msgid "Window maximized state." msgstr "Stanje uvećanog prozora." #: data/org.gnome.Music.gschema.xml:22 msgid "Playback repeat mode" msgstr "Režim ponavljanja puštanja" #. Translators: Don't translate allowed values, just the description in the brackets #: data/org.gnome.Music.gschema.xml:24 msgid "" "Value identifies whether to repeat or randomize playback through the " "collection. Allowed values are: “none” (repeat and shuffle are off), " "“song” (repeat current song), “all” (repeat playlist, no shuffle), " "“shuffle” (shuffle playlist, presumes repeat all)." msgstr "" "Vrednost koja određuje da li će puštanje kroz zbirku biti ponovljeno ili " "nasumično. Dopuštene vrednosti su: „none“ (ponavljanje i mešanje su isključeni), " "„song“ (ponavlja tekuću pesmu), „all“ (ponavlja spisak numera, ne meša), " "„shuffle“ (meša spisak numera, podrazumeva ponavljanje svega)." #: data/org.gnome.Music.gschema.xml:28 data/ui/PreferencesDialog.ui:27 msgid "Enable ReplayGain" msgstr "Uključuje pojačanje ponavljanja" #: data/org.gnome.Music.gschema.xml:29 msgid "Enables or disables ReplayGain for albums" msgstr "Uključuje ili isključuje pojačanje ponavljanja za albume" #: data/org.gnome.Music.gschema.xml:33 msgid "Inhibit system suspend" msgstr "Spreči obustavu sistema" #: data/org.gnome.Music.gschema.xml:34 msgid "Enables or disables inhibiting system suspend while playing music" msgstr "" "Omogućava ili onemogućava sprečavanje obustave sistema dok se pušta muzika" #: data/ui/AlbumsSearchNavigationPage.ui:5 data/ui/SearchView.ui:98 #: gnomemusic/views/albumsview.py:52 msgid "Albums" msgstr "Albumi" #: data/ui/AlbumWidget.ui:84 data/ui/PlayerToolbar.ui:87 #: data/ui/PlaylistControls.ui:101 gnomemusic/widgets/playertoolbar.py:176 msgid "Play" msgstr "Pusti" #: data/ui/AlbumWidget.ui:130 data/ui/PlaylistControls.ui:5 #: data/ui/SongWidgetMenu.ui:11 msgid "_Play" msgstr "_Pusti" #: data/ui/AlbumWidget.ui:134 msgid "Add to _Favorite Songs" msgstr "Dodaj u _omiljene pesme" #: data/ui/AlbumWidget.ui:138 data/ui/SongWidgetMenu.ui:15 msgid "_Add to Playlist…" msgstr "_Dodaj na spisak numera…" #: data/ui/ArtistsSearchNavigationPage.ui:5 data/ui/SearchView.ui:41 #: gnomemusic/views/artistsview.py:51 msgid "Artists" msgstr "Izvođači" #: data/ui/HeaderBar.ui:14 msgid "Menu" msgstr "Izbornik" #: data/ui/HeaderBar.ui:22 data/ui/SearchHeaderBar.ui:12 msgid "Search" msgstr "Potraži" #: data/ui/HeaderBar.ui:31 data/ui/PreferencesDialog.ui:4 msgid "Preferences" msgstr "Postavke" #: data/ui/HeaderBar.ui:35 msgid "Keyboard Shortcuts" msgstr "Prečice na tastaturi" # msgctxt "shortcut window" #: data/ui/HeaderBar.ui:39 msgid "Help" msgstr "Pomoć" #: data/ui/HeaderBar.ui:43 msgid "About Music" msgstr "O Muzici" #: data/ui/help-overlay.ui:11 msgctxt "shortcut window" msgid "General" msgstr "Opšte" #: data/ui/help-overlay.ui:14 msgctxt "shortcut window" msgid "Close window" msgstr "Zatvara prozor" #: data/ui/help-overlay.ui:20 msgctxt "shortcut window" msgid "Search" msgstr "Pretraga" #: data/ui/help-overlay.ui:26 msgctxt "shortcut window" msgid "Help" msgstr "Pomoć" #: data/ui/help-overlay.ui:32 msgctxt "shortcut window" msgid "Shortcuts" msgstr "Prečice" #: data/ui/help-overlay.ui:40 msgctxt "shortcut window" msgid "Playback" msgstr "Puštanje" #: data/ui/help-overlay.ui:43 msgctxt "shortcut window" msgid "Play/Pause" msgstr "Pušta/pauzira" #: data/ui/help-overlay.ui:49 msgctxt "shortcut window" msgid "Next song" msgstr "Sledeća pesma" #: data/ui/help-overlay.ui:55 msgctxt "shortcut window" msgid "Previous song" msgstr "Prethodna pesma" #: data/ui/help-overlay.ui:61 msgctxt "shortcut window" msgid "Toggle repeat" msgstr "Prekidač za ponavljanje" #: data/ui/help-overlay.ui:67 msgctxt "shortcut window" msgid "Toggle shuffle" msgstr "Prekidač za mešanje" #: data/ui/help-overlay.ui:75 msgctxt "shortcut window" msgid "Navigation" msgstr "Navigacija" #: data/ui/help-overlay.ui:78 msgctxt "shortcut window" msgid "Go to Albums" msgstr "Ide na albume" #: data/ui/help-overlay.ui:84 msgctxt "shortcut window" msgid "Go to Artists" msgstr "Ide na izvođače" #: data/ui/help-overlay.ui:90 msgctxt "shortcut window" msgid "Go to Songs" msgstr "Ide na pesme" #: data/ui/help-overlay.ui:96 msgctxt "shortcut window" msgid "Go to Playlists" msgstr "Ide na spisak numera" #: data/ui/help-overlay.ui:102 msgctxt "shortcut window" msgid "Go back" msgstr "Ide nazad" #: data/ui/PlayerToolbar.ui:74 msgid "Previous" msgstr "Prethodno" #: data/ui/PlayerToolbar.ui:106 msgid "Next" msgstr "Naredno" #: data/ui/PlaylistControls.ui:9 msgid "_Delete" msgstr "_Obriši" #: data/ui/PlaylistControls.ui:13 msgid "_Rename…" msgstr "_Preimenuj…" #: data/ui/PlaylistControls.ui:28 msgid "Playlist Name" msgstr "Naziv spiska numera" #: data/ui/PlaylistControls.ui:62 msgid "_Done" msgstr "_Gotovo" #: data/ui/PlaylistDialog.ui:16 msgid "Add to Playlist" msgstr "Dodaj na spisak numera" #: data/ui/PlaylistDialog.ui:27 msgid "_Cancel" msgstr "_Otkaži" #: data/ui/PlaylistDialog.ui:36 msgid "_Add" msgstr "_Dodaj" #: data/ui/PlaylistDialog.ui:91 msgid "Enter a name for your first playlist" msgstr "Unesite naziv za vaš prvi spisak numera" #: data/ui/PlaylistDialog.ui:116 msgid "C_reate" msgstr "_Napravi" #: data/ui/PlaylistDialog.ui:177 msgid "New Playlist…" msgstr "Novi spisak numera…" #: data/ui/PlaylistDialog.ui:189 msgid "Add" msgstr "Dodaj" #: data/ui/PreferencesDialog.ui:9 msgid "Player Settings" msgstr "Postavke programa" #: data/ui/PreferencesDialog.ui:12 msgid "Repeat Mode" msgstr "Režim ponavljanja" #: data/ui/PreferencesDialog.ui:16 msgid "None" msgstr "Ništa" #: data/ui/PreferencesDialog.ui:17 msgid "Song" msgstr "Pesme" #: data/ui/PreferencesDialog.ui:18 msgid "All" msgstr "Sve" #: data/ui/PreferencesDialog.ui:19 gnomemusic/player.py:51 msgid "Shuffle" msgstr "Nasumično" #: data/ui/PreferencesDialog.ui:28 msgid "Balance loudness between songs if ReplayGain metadata is found" msgstr "" "Balansirajte glasnoću između pesma ako su metapodaci pojačanja ponavljanja " "pronađeni" #: data/ui/PreferencesDialog.ui:35 msgid "Power Settings" msgstr "Postavke napajanja" #: data/ui/PreferencesDialog.ui:38 msgid "Inhibit Suspend" msgstr "Zabrana suspenzije" #: data/ui/PreferencesDialog.ui:39 msgid "Only while playing" msgstr "Samo dok ide pesma" #: data/ui/SearchView.ui:55 data/ui/SearchView.ui:112 msgid "View All" msgstr "Prikaži sve" #: data/ui/SearchView.ui:154 msgid "Songs" msgstr "Pesme" #: data/ui/SongWidgetMenu.ui:19 msgid "_Remove from Playlist" msgstr "_Ukloni sa spiska numera" #: data/ui/StatusNavigationPage.ui:36 msgid "Welcome to Music" msgstr "Dobro došli u Muziku" #: gnomemusic/about.py:140 msgid "The GNOME Project" msgstr "Gnomov projekat" #. Translators should localize the following string which #. will be displayed at the bottom of the about box to give #. credit to the translator(s). #: gnomemusic/about.py:146 msgid "translator-credits" msgstr "" "Miroslav Nikolić \n" "Marko M. Kostić \n" "https://gnom.srb — prevod Gnoma na srpski jezik." #: gnomemusic/about.py:150 msgid "© The GNOME Music Developers" msgstr "© Programeri Gnomove Muzike" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:839 msgid "Most Played" msgstr "Najviše puštane" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:893 msgid "Never Played" msgstr "Nikad puštane" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:946 msgid "Recently Played" msgstr "Nedavno puštane" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1025 msgid "Recently Added" msgstr "Nedavno dodate" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1088 msgid "Favorite Songs" msgstr "Omiljene pesme" #. TRANSLATORS: this is a playlist name indicating that the #. files are not tagged enough to be displayed in the albums #. or artists views. #: gnomemusic/grilowrappers/grltrackerplaylists.py:1142 msgid "Insufficiently Tagged" msgstr "Nedovoljno označeno" #: gnomemusic/gstplayer.py:418 msgid "Unable to play the file" msgstr "Ne mogu da pustim datoteku" #: gnomemusic/gstplayer.py:424 msgid "_Find in {}" msgstr "_Pronađi u {}" #. TRANSLATORS: separator for two codecs #: gnomemusic/gstplayer.py:434 msgid " and " msgstr " i " #. TRANSLATORS: separator for a list of codecs #: gnomemusic/gstplayer.py:437 msgid ", " msgstr ", " #: gnomemusic/gstplayer.py:439 msgid "{} is required to play the file, but is not installed." msgid_plural "{} are required to play the file, but are not installed." msgstr[0] "{} je potreban za puštanje datoteke ali nije instaliran." msgstr[1] "{} su potrebni za puštanje datoteke ali nisu instalirani." msgstr[2] "{} su potrebni za puštanje datoteke ali nisu instalirani." msgstr[3] "{} je potreban za puštanje datoteke ali nije instaliran." #: gnomemusic/inhibitsuspend.py:69 msgid "Playing music" msgstr "Puštam muziku" #. Translators: "shuffle" causes tracks to play in random order. #: gnomemusic/player.py:48 msgid "Shuffle/Repeat Off" msgstr "Isključi mešanje/ponavljanje" #: gnomemusic/player.py:49 msgid "Repeat Song" msgstr "Ponovi pesmu" #: gnomemusic/player.py:50 msgid "Repeat All" msgstr "Ponovi sve" #: gnomemusic/playlisttoast.py:55 msgid "Playlist {} removed" msgstr "Spisak numera {} je uklonjen" #: gnomemusic/playlisttoast.py:56 gnomemusic/songtoast.py:65 msgid "Undo" msgstr "Opozovi" #: gnomemusic/songtoast.py:64 msgid "{} removed from {}" msgstr "Stavka {} uklonjena iz {}" #: gnomemusic/utils.py:89 msgid "Unknown album" msgstr "Nepoznat album" #: gnomemusic/utils.py:110 msgid "Unknown Artist" msgstr "Nepoznat izvođač" #: gnomemusic/views/playlistsview.py:45 msgid "Playlists" msgstr "Spisak numera" #: gnomemusic/views/searchview.py:220 msgid "No Search Started" msgstr "Nema započetih pretraga" #: gnomemusic/views/searchview.py:222 msgid "Use the searchbar to start searching for albums, artists or songs" msgstr "Koristite polje za pretragu da pretražite albume, izvođače ili pesme" #: gnomemusic/views/searchview.py:226 msgid "No Results Found" msgstr "Nema rezultata" #: gnomemusic/views/searchview.py:228 msgid "Try a different search" msgstr "Probajte sa drugačijom pretragom" #: gnomemusic/widgets/albumwidget.py:230 msgid "{} minute" msgid_plural "{} minutes" msgstr[0] "{} minut" msgstr[1] "{} minuta" msgstr[2] "{} minuta" msgstr[3] "{} minut" #: gnomemusic/widgets/discbox.py:74 msgid "Disc {}" msgstr "Disk {}" #: gnomemusic/widgets/playertoolbar.py:173 msgid "Pause" msgstr "Zastani" #: gnomemusic/widgets/playlistcontrols.py:130 msgid "{} Song" msgid_plural "{} Songs" msgstr[0] "{} pesma" msgstr[1] "{} pesme" msgstr[2] "{} pesama" msgstr[3] "{} pesma" #: gnomemusic/widgets/searchheaderbar.py:50 msgid "Search songs, artists and albums" msgstr "Pretraži pesme, izvođače i albume" #. noqa: F841 #: gnomemusic/widgets/songwidgetmenu.py:94 msgid "_Open Location" msgstr "_Otvori lokaciju" #. TRANSLATORS: These are verbs, to (un)mark something as a #. favorite. #: gnomemusic/widgets/startoggle.py:36 msgid "Unstar" msgstr "Ukloni zvezdicu" #: gnomemusic/widgets/startoggle.py:36 msgid "Star" msgstr "Označi zvezdicom" #: gnomemusic/widgets/statusnavigationpage.py:51 msgid "Your XDG Music directory is not set." msgstr "XDG muzička fascikla nije postavljena." #: gnomemusic/widgets/statusnavigationpage.py:58 msgid "Music Folder" msgstr "Direktorijum sa muzikom" #. TRANSLATORS: This is a label to display a link to open user's music #. folder. {} will be replaced with the translated text 'Music folder' #: gnomemusic/widgets/statusnavigationpage.py:66 msgid "The contents of your {} will appear here." msgstr "Sadržaj direktorijuma „{}“ će se pojaviti ovde." #: gnomemusic/widgets/statusnavigationpage.py:116 msgid "No Music Found" msgstr "Nisam pronašao muziku" #: gnomemusic/widgets/statusnavigationpage.py:117 msgid "Try a Different Search" msgstr "Probajte sa drugačijom pretragom" #: gnomemusic/widgets/statusnavigationpage.py:121 msgid "GNOME Music could not connect to Tracker." msgstr "Gnomova Muzika nije mogla da se poveže na Tragača." #: gnomemusic/widgets/statusnavigationpage.py:123 msgid "Your music files cannot be indexed without Tracker running." msgstr "" "Vaše muzičke datoteke ne mogu biti popisane ukoliko Tragač nije pokrenut." #: gnomemusic/widgets/statusnavigationpage.py:129 msgid "Your system Tracker version seems outdated." msgstr "Izdanje vašeg sistemskog tragača deluje zastarelo." #: gnomemusic/widgets/statusnavigationpage.py:131 msgid "Music needs Tracker version 3.0.0 or higher." msgstr "Muzici je potreban tragač (Tracker) izdanja 3.0.0 ili novijeg." #~ msgid "Report music history to Last.fm" #~ msgstr "Pošalji muzički istorijat na Last.fm" #~ msgid "" #~ "Enables or disables sending scrobbles and the “currently playing” info to " #~ "Last.fm." #~ msgstr "" #~ "Omogućava ili onemogućava slanje skroblova i podatke o trenutnom slušanju " #~ "na Last.fm." #~ msgid "Last.fm Account" #~ msgstr "Last.fm nalog" #~ msgid "Report Music Listening" #~ msgstr "Pošalji podatke o slušanju" #~ msgid "_Help" #~ msgstr "Po_moć" #~ msgid "Select" #~ msgstr "Izaberi" #~ msgid "Back" #~ msgstr "Nazad" #~ msgid "" #~ "Last.fm is a music discovery service that gives you personalised " #~ "recommendations based on the music you listen to." #~ msgstr "" #~ "Last.fm je usluga za otkrivanje muzike koja vam daje personalizovane " #~ "preporuke na osnovu muzike koju slušate." #~ msgid "Music Reporting Not Setup" #~ msgstr "Prijavljivanje muzike nije podešeno" #~ msgid "Login to your Last.fm account to report your music listening." #~ msgstr "" #~ "Prijavite se uz pomoć vašeg Last.fm naloga da bite prijavili vaše " #~ "slušalačke navike." #~ msgid "Login" #~ msgstr "Prijava" #~ msgid "Select All" #~ msgstr "Izaberi sve" #~ msgid "Select None" #~ msgstr "Poništi izbor" #~ msgid "Click on items to select them" #~ msgstr "Kliknite na stavke da ih izaberete" #~ msgid "_Add to Playlist" #~ msgstr "_Dodaj na spisak numera" #~ msgid "Copyright The GNOME Music Developers" #~ msgstr "Autorska prava programeri Gnomove muzike" #~ msgid "Translated by" #~ msgstr "Prevod" #~ msgid "Artists Results" #~ msgstr "Rezultati izvođača" #~ msgid "Albums Results" #~ msgstr "Rezultati albuma" #~ msgid "Selected {} song" #~ msgid_plural "Selected {} songs" #~ msgstr[0] "Izabrana je {} pesma" #~ msgstr[1] "Izabrane su {} pesme" #~ msgstr[2] "Izabrano je {} pesmi" #~ msgstr[3] "Izabrana je jedna pesma" #~ msgid "Your music listening is reported to Last.fm." #~ msgstr "Vaše slušalačke navike se šalju na Last.fm." #~ msgid "Your music listening is not reported to Last.fm." #~ msgstr "Vaše slušalačke navike se ne šalju na Last.fm." #~ msgid "Logged in as {}" #~ msgstr "Prijavljen kao {}" #~ msgid "Configure" #~ msgstr "Podesi" #~ msgid "A music player and management application for GNOME." #~ msgstr "Gnomov program za puštanje i upravljanje muzikom." #~ msgid "Visit GNOME Music website" #~ msgstr "Posetite veb stranicu Gnomove muzike" #~ msgid "" #~ "GNOME Music 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.\n" #~ "\n" #~ "GNOME Music 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.\n" #~ "\n" #~ "You should have received a copy of the GNU General Public License along " #~ "with GNOME Music; if not, write to the Free Software Foundation, Inc., 51 " #~ "Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ "\n" #~ "The GNOME Music authors hereby grant permission for non-GPL compatible " #~ "GStreamer plugins to be used and distributed together with GStreamer and " #~ "GNOME Music. This permission is above and beyond the permissions granted " #~ "by the GPL license by which GNOME Music is covered. If you modify this " #~ "code, you may extend this exception to your version of the code, but you " #~ "are not obligated to do so. If you do not wish to do so, delete this " #~ "exception statement from your version." #~ msgstr "" #~ "Ovaj program je slobodan softver; možete ga prosleđivati\n" #~ "i/ili menjati pod uslovima Gnuove opšte javne licence koju je\n" #~ "objavila Zadužbina slobodnog softvera; verzije 2 licence,\n" #~ "ili (po vašem izboru) bilo koje novije verzije.\n" #~ "\n" #~ "Ovaj program se raspodeljuje u nadi da će biti koristan,\n" #~ "ali BEZ IKAKVE GARANCIJE; čak i bez primenjene garancije\n" #~ "TRŽIŠNE VREDNOSTI ili PRILAGOĐENOSTI ODREĐENOJ NAMENI.\n" #~ "Pogledajte Gnuovu opštu javnu licencu za više detalja.\n" #~ "\n" #~ "Trebali ste da primite primerak GNU Opšte javne licence\n" #~ "uz ovaj program; ako niste, pišite Zadužbini slobodnog\n" #~ "softvera na adresu: „Free Software Foundation, Inc.,\n" #~ "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.“\n" #~ "\n" #~ "Autori Gnomove muzike bezuslovno garantuju ovlašćenja za korišćenje i " #~ "raspodelu priključaka Gstrimera koji nisu saglasni sa OJL-om uz Gstrimer i " #~ "Gnomovu muziku. Ovo ovlašćenje je iznad i ispod ovlašćenja koje obezbeđuje " #~ "OJL dozvola kojom je pokrivena Gnomova muzika. Ako izmenite ovaj kod, " #~ "možete da proširite ovaj izuzetak na vaše izdanje koda, ali niste obavezni " #~ "da to i uradite. Ako ne želite da uradite ovo, obrišite stanje ovog " #~ "izuzetka iz vašeg izdanja." #~ msgid "The contents of your Music Folder will appear here" #~ msgstr "Sadržaj fascikle „Muzika“ pojaviće se ovde" #~ msgid "GNOME Music" #~ msgstr "Gnomova muzika" #~ msgid "Window position" #~ msgstr "Položaj prozora" #~ msgid "Window position (x and y)." #~ msgstr "Položaj prozora (položeno i uspravno)." #~ msgid "Loading" #~ msgstr "Učitavam" #~ msgid "Add to Playlist…" #~ msgstr "Dodaj na spisak numera…" #~ msgid "" #~ "An easy way to play your music. Automatically discover music on your " #~ "computer, the local network and internet services." #~ msgstr "" #~ "Jednostavan način za slušanje vaše muzike. Automatski otkrijte muziku na " #~ "vašem računaru, lokalnoj mreži i na internet uslugama." #~ msgid "" #~ "Find tracks in your local collection, get music from DLNA servers or try " #~ "something new with the Jamendo and Magnatune services." #~ msgstr "" #~ "Nađite numere u vašoj lokalnoj zbirci, dobavite muziku sa DLNA servera " #~ "ili probajte nešto novo sa Džamendo i Magnatjun uslugama." #~ msgid "Inital state has been displayed" #~ msgstr "Početno stanje je prikazano" #~ msgid "Set to true when initial state has been displayed" #~ msgstr "Postavi na tačno kada se početno stanje prikaže" #~ msgid "Released" #~ msgstr "Izdat" #~ msgid "Running Length" #~ msgstr "Dužina trajanja" #~ msgid "Composer" #~ msgstr "Kompozitor" #~ msgctxt "context menu item" #~ msgid "Play" #~ msgstr "Pusti" #~ msgid "Hey DJ" #~ msgstr "Hej! Di-džej!" #~ msgid "Artist" #~ msgstr "Izvođač" #~ msgid "Album" #~ msgstr "Album" #~ msgid "Track Title" #~ msgstr "Naslov numere" #~ msgid "Local" #~ msgstr "Mesno" #~ msgid "Sources" #~ msgstr "Izvori" #~ msgid "Match" #~ msgstr "Poklopi" #~ msgid "@icon@" #~ msgstr "@icon@" #~ msgid "Untitled" #~ msgstr "Bez naslova" #~ msgid "_Quit" #~ msgstr "_Izađi" #~ msgid "Music is the new GNOME music playing application." #~ msgstr "Muzika je novi Gnomov program za puštanje muzike." #~ msgid "org.gnome.Music" #~ msgstr "org.gnome.Music" #~ msgid "Search mode" #~ msgstr "Režim pretrage" #~ msgid "If true, the search bar is shown." #~ msgstr "Ako je izabrano, biće prikazana traka za pretragu." #~ msgid "Notifications mode" #~ msgstr "Režim obaveštavanja" #~ msgid "Enables or disables playback notifications" #~ msgstr "Uključuje ili isključuje obaveštenja puštanja" #~ msgid "Selected %d item" #~ msgid_plural "Selected %d items" #~ msgstr[0] "Izabrana je %d stavka" #~ msgstr[1] "Izabrane su %d stavke" #~ msgstr[2] "Izabrano je %d stavki" #~ msgstr[3] "Izabrana je %d stavka" #~ msgid "%d min" #~ msgstr "%d min" #~ msgid "Empty" #~ msgstr "Prazno" #~ msgid "Select Playlist" #~ msgstr "Izaberite spisak numera" #~ msgid "the|a|an" #~ msgstr "the|a|an" #~ msgid "Max chars to display in track name on Artist view" #~ msgstr "Najviše znakova za prikaz u nazivu numere u pregledu izvođača" #~ msgid "" #~ "This setting modifies the amount of chars for track title on Artist view " #~ "before its been ellipsized. Set this to -1 to disable" #~ msgstr "" #~ "Ovo podešavanje menja broj znakova za naslov numere u pregledu izvođača pre " #~ "njegovog skraćivanja. Postavite na -1 da ga isključite" #~ msgid "the a an" #~ msgstr "the" #~ msgid "All Artists" #~ msgstr "Svi izvođači" #~ msgid "Not playing" #~ msgstr "Sada puštam" #~ msgid "by %s, from %s" #~ msgstr "izvodi %s, sa „%s“" #~ msgid "" #~ "No Music found!\n" #~ " Put some files into the folder %s" #~ msgstr "" #~ "Nisam pronašao muziku!\n" #~ " Prebacite neke datoteke u fasciklu „%s“" #~ msgid "_New Playlist" #~ msgstr "_Novi spisak numera" #~ msgid "Load More" #~ msgstr "Učitaj još" 07070100000111000081A400000000000000000000000166968E4E00005C76000000000000000000000000000000000000001A00000000gnome-music-46.1/po/sv.po# Swedish translation for gnome-music. # Copyright © 2014-2024 gnome-music's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-music package. # Anders Jonsson , 2014, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024. # Sebastian Rasmussen , 2015. # Marcus Gisslén , 2015. # Luna Jernberg , 2021, 2022. # msgid "" msgstr "" "Project-Id-Version: gnome-music master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-music/issues\n" "POT-Creation-Date: 2024-02-11 21:26+0000\n" "PO-Revision-Date: 2024-02-12 00:52+0100\n" "Last-Translator: Anders Jonsson \n" "Language-Team: Swedish \n" "Language: sv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Poedit 3.4.2\n" #: data/org.gnome.Music.appdata.xml.in.in:6 #: data/org.gnome.Music.desktop.in.in:3 data/ui/StatusNavigationPage.ui:4 #: gnomemusic/about.py:138 gnomemusic/application.py:59 gnomemusic/window.py:65 msgid "Music" msgstr "Musik" #: data/org.gnome.Music.appdata.xml.in.in:7 #: data/org.gnome.Music.desktop.in.in:5 msgid "Play and organize your music collection" msgstr "Spela och organisera din musiksamling" #: data/org.gnome.Music.appdata.xml.in.in:9 msgid "An easy and pleasant way to play your music." msgstr "Ett lätt och behagligt sätt att spela upp din musik." #: data/org.gnome.Music.appdata.xml.in.in:12 msgid "" "Find tracks in your local collection, use automatically generated playlists " "or curate a fresh one." msgstr "" "Hitta spår i din lokala samling, använd automatiskt genererade spellistor " "eller sammanställ en ny." #. developer_name tag deprecated with Appstream 1.0 #: data/org.gnome.Music.appdata.xml.in.in:188 msgid "The GNOME Music developers" msgstr "GNOME Musik-utvecklarna" #: data/org.gnome.Music.desktop.in.in:4 msgid "Music Player" msgstr "Musikspelare" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Music.desktop.in.in:13 msgid "Music;Player;" msgstr "Musik;Spelare;" #: data/org.gnome.Music.gschema.xml:12 msgid "Window size" msgstr "Fönsterstorlek" #: data/org.gnome.Music.gschema.xml:13 msgid "Window size (width and height)." msgstr "Fönsterstorlek (bredd och höjd)." #: data/org.gnome.Music.gschema.xml:17 msgid "Window maximized" msgstr "Fönster maximerat" #: data/org.gnome.Music.gschema.xml:18 msgid "Window maximized state." msgstr "Tillstånd för maximerat fönster." #: data/org.gnome.Music.gschema.xml:22 msgid "Playback repeat mode" msgstr "Upprepningsläge för uppspelning" #. Translators: Don't translate allowed values, just the description in the brackets #: data/org.gnome.Music.gschema.xml:24 msgid "" "Value identifies whether to repeat or randomize playback through the " "collection. Allowed values are: “none” (repeat and shuffle are off), " "“song” (repeat current song), “all” (repeat playlist, no shuffle), " "“shuffle” (shuffle playlist, presumes repeat all)." msgstr "" "Värdet avgör om uppspelning av samlingen ska upprepas eller vara i " "slumpmässig ordning. Tillåtna värden är ”none” (låtar spelas i ordning utan " "att upprepas), ”song” (aktuell låt upprepas), ”all” (spellistan spelas i " "ordning och börjar sedan om), ”shuffle” (låtar spelas i slumpmässig ordning, " "detta medför upprepning av alla)." #: data/org.gnome.Music.gschema.xml:28 data/ui/PreferencesDialog.ui:27 msgid "Enable ReplayGain" msgstr "Aktivera uppspelningsförstärkning" #: data/org.gnome.Music.gschema.xml:29 msgid "Enables or disables ReplayGain for albums" msgstr "Aktiverar eller inaktiverar uppspelningsförstärkning för album" #: data/org.gnome.Music.gschema.xml:33 msgid "Inhibit system suspend" msgstr "Hindra vänteläge för systemet" #: data/org.gnome.Music.gschema.xml:34 msgid "Enables or disables inhibiting system suspend while playing music" msgstr "" "Aktiverar eller inaktiverar hindrande av vänteläge för systemet då musik " "spelas upp" #: data/ui/AlbumsSearchNavigationPage.ui:5 data/ui/SearchView.ui:98 #: gnomemusic/views/albumsview.py:52 msgid "Albums" msgstr "Album" #: data/ui/AlbumWidget.ui:84 data/ui/PlayerToolbar.ui:87 #: data/ui/PlaylistControls.ui:101 gnomemusic/widgets/playertoolbar.py:176 msgid "Play" msgstr "Spela" #: data/ui/AlbumWidget.ui:130 data/ui/PlaylistControls.ui:5 #: data/ui/SongWidgetMenu.ui:11 msgid "_Play" msgstr "_Spela" #: data/ui/AlbumWidget.ui:134 msgid "Add to _Favorite Songs" msgstr "Lägg till i _favoritlåtar" #: data/ui/AlbumWidget.ui:138 data/ui/SongWidgetMenu.ui:15 msgid "_Add to Playlist…" msgstr "_Lägg till i spellista…" #: data/ui/ArtistsSearchNavigationPage.ui:5 data/ui/SearchView.ui:41 #: gnomemusic/views/artistsview.py:51 msgid "Artists" msgstr "Artister" #: data/ui/HeaderBar.ui:14 msgid "Menu" msgstr "Meny" #: data/ui/HeaderBar.ui:22 data/ui/SearchHeaderBar.ui:12 msgid "Search" msgstr "Sök" #: data/ui/HeaderBar.ui:31 data/ui/PreferencesDialog.ui:4 msgid "Preferences" msgstr "Inställningar" #: data/ui/HeaderBar.ui:35 msgid "Keyboard Shortcuts" msgstr "Tangentbordsgenvägar" #: data/ui/HeaderBar.ui:39 msgid "Help" msgstr "Hjälp" #: data/ui/HeaderBar.ui:43 msgid "About Music" msgstr "Om Musik" #: data/ui/help-overlay.ui:11 msgctxt "shortcut window" msgid "General" msgstr "Allmänt" #: data/ui/help-overlay.ui:14 msgctxt "shortcut window" msgid "Close window" msgstr "Stäng fönster" #: data/ui/help-overlay.ui:20 msgctxt "shortcut window" msgid "Search" msgstr "Sök" #: data/ui/help-overlay.ui:26 msgctxt "shortcut window" msgid "Help" msgstr "Hjälp" #: data/ui/help-overlay.ui:32 msgctxt "shortcut window" msgid "Shortcuts" msgstr "Genvägar" #: data/ui/help-overlay.ui:40 msgctxt "shortcut window" msgid "Playback" msgstr "Uppspelning" #: data/ui/help-overlay.ui:43 msgctxt "shortcut window" msgid "Play/Pause" msgstr "Spela upp/Gör paus" #: data/ui/help-overlay.ui:49 msgctxt "shortcut window" msgid "Next song" msgstr "Nästa låt" #: data/ui/help-overlay.ui:55 msgctxt "shortcut window" msgid "Previous song" msgstr "Föregående låt" #: data/ui/help-overlay.ui:61 msgctxt "shortcut window" msgid "Toggle repeat" msgstr "Växla repetera" #: data/ui/help-overlay.ui:67 msgctxt "shortcut window" msgid "Toggle shuffle" msgstr "Växla blandad uppspelning" #: data/ui/help-overlay.ui:75 msgctxt "shortcut window" msgid "Navigation" msgstr "Navigering" #: data/ui/help-overlay.ui:78 msgctxt "shortcut window" msgid "Go to Albums" msgstr "Gå till Album" #: data/ui/help-overlay.ui:84 msgctxt "shortcut window" msgid "Go to Artists" msgstr "Gå till Artister" #: data/ui/help-overlay.ui:90 msgctxt "shortcut window" msgid "Go to Songs" msgstr "Gå till Låtar" #: data/ui/help-overlay.ui:96 msgctxt "shortcut window" msgid "Go to Playlists" msgstr "Gå till Spellistor" #: data/ui/help-overlay.ui:102 msgctxt "shortcut window" msgid "Go back" msgstr "Gå bakåt" #: data/ui/PlayerToolbar.ui:74 msgid "Previous" msgstr "Föregående" #: data/ui/PlayerToolbar.ui:106 msgid "Next" msgstr "Nästa" #: data/ui/PlaylistControls.ui:9 msgid "_Delete" msgstr "_Ta bort" #: data/ui/PlaylistControls.ui:13 msgid "_Rename…" msgstr "_Byt namn…" #: data/ui/PlaylistControls.ui:28 msgid "Playlist Name" msgstr "Namn på spellista" #: data/ui/PlaylistControls.ui:62 msgid "_Done" msgstr "_Färdig" #: data/ui/PlaylistDialog.ui:16 msgid "Add to Playlist" msgstr "Lägg till i spellista" #: data/ui/PlaylistDialog.ui:27 msgid "_Cancel" msgstr "_Avbryt" #: data/ui/PlaylistDialog.ui:36 msgid "_Add" msgstr "_Lägg till" #: data/ui/PlaylistDialog.ui:91 msgid "Enter a name for your first playlist" msgstr "Ange ett namn för din första spellista" #: data/ui/PlaylistDialog.ui:116 msgid "C_reate" msgstr "S_kapa" #: data/ui/PlaylistDialog.ui:177 msgid "New Playlist…" msgstr "Ny spellista…" #: data/ui/PlaylistDialog.ui:189 msgid "Add" msgstr "Lägg till" #: data/ui/PreferencesDialog.ui:9 msgid "Player Settings" msgstr "Spelarinställningar" #: data/ui/PreferencesDialog.ui:12 msgid "Repeat Mode" msgstr "Upprepningsläge" #: data/ui/PreferencesDialog.ui:16 msgid "None" msgstr "Inget" #: data/ui/PreferencesDialog.ui:17 msgid "Song" msgstr "Låt" #: data/ui/PreferencesDialog.ui:18 msgid "All" msgstr "Alla" #: data/ui/PreferencesDialog.ui:19 gnomemusic/player.py:51 msgid "Shuffle" msgstr "Spela i slumpmässig ordning" #: data/ui/PreferencesDialog.ui:28 msgid "Balance loudness between songs if ReplayGain metadata is found" msgstr "Balansera ljudstyrka mellan låtar om ReplayGain-metadata hittas" #: data/ui/PreferencesDialog.ui:35 msgid "Power Settings" msgstr "Ströminställningar" #: data/ui/PreferencesDialog.ui:38 msgid "Inhibit Suspend" msgstr "Hindra vänteläge" #: data/ui/PreferencesDialog.ui:39 msgid "Only while playing" msgstr "Endast under spelning" #: data/ui/SearchView.ui:55 data/ui/SearchView.ui:112 msgid "View All" msgstr "Visa alla" #: data/ui/SearchView.ui:154 msgid "Songs" msgstr "Låtar" #: data/ui/SongWidgetMenu.ui:19 msgid "_Remove from Playlist" msgstr "_Ta bort från spellista" #: data/ui/StatusNavigationPage.ui:36 msgid "Welcome to Music" msgstr "Välkommen till Musik" #: gnomemusic/about.py:140 msgid "The GNOME Project" msgstr "GNOME-projektet" #. Translators should localize the following string which #. will be displayed at the bottom of the about box to give #. credit to the translator(s). #: gnomemusic/about.py:146 msgid "translator-credits" msgstr "" "Anders Jonsson \n" "Sebastian Rasmussen \n" "Marcus Gisslén \n" "Luna Jernberg \n" "\n" "Skicka synpunkter på översättningen till\n" "." #: gnomemusic/about.py:150 msgid "© The GNOME Music Developers" msgstr "© GNOME Musik-utvecklarna" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:839 msgid "Most Played" msgstr "Mest spelade" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:893 msgid "Never Played" msgstr "Aldrig spelade" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:946 msgid "Recently Played" msgstr "Nyligen spelade" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1025 msgid "Recently Added" msgstr "Nyligen tillagda" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1088 msgid "Favorite Songs" msgstr "Favoritlåtar" #. TRANSLATORS: this is a playlist name indicating that the #. files are not tagged enough to be displayed in the albums #. or artists views. #: gnomemusic/grilowrappers/grltrackerplaylists.py:1142 msgid "Insufficiently Tagged" msgstr "Otillräckligt taggade" #: gnomemusic/gstplayer.py:418 msgid "Unable to play the file" msgstr "Kan inte spela upp filen" #: gnomemusic/gstplayer.py:424 msgid "_Find in {}" msgstr "_Hitta i {}" #. TRANSLATORS: separator for two codecs #: gnomemusic/gstplayer.py:434 msgid " and " msgstr " och " #. TRANSLATORS: separator for a list of codecs #: gnomemusic/gstplayer.py:437 msgid ", " msgstr ", " #: gnomemusic/gstplayer.py:439 msgid "{} is required to play the file, but is not installed." msgid_plural "{} are required to play the file, but are not installed." msgstr[0] "{} krävs för att spela upp filen men är inte installerad." msgstr[1] "{} krävs för att spela upp filen men är inte installerade." #: gnomemusic/inhibitsuspend.py:69 msgid "Playing music" msgstr "Spelar upp musik" #. Translators: "shuffle" causes tracks to play in random order. #: gnomemusic/player.py:48 msgid "Shuffle/Repeat Off" msgstr "Spela i ordning utan upprepning" #: gnomemusic/player.py:49 msgid "Repeat Song" msgstr "Upprepa låt" #: gnomemusic/player.py:50 msgid "Repeat All" msgstr "Upprepa alla" #: gnomemusic/playlisttoast.py:55 msgid "Playlist {} removed" msgstr "Spellista {} borttagen" #: gnomemusic/playlisttoast.py:56 gnomemusic/songtoast.py:65 msgid "Undo" msgstr "Ångra" #: gnomemusic/songtoast.py:64 msgid "{} removed from {}" msgstr "{} borttagen från {}" #: gnomemusic/utils.py:89 msgid "Unknown album" msgstr "Okänt album" #: gnomemusic/utils.py:110 msgid "Unknown Artist" msgstr "Okänd artist" #: gnomemusic/views/playlistsview.py:45 msgid "Playlists" msgstr "Spellistor" #: gnomemusic/views/searchview.py:220 msgid "No Search Started" msgstr "Ingen sökning startad" #: gnomemusic/views/searchview.py:222 msgid "Use the searchbar to start searching for albums, artists or songs" msgstr "Använd sökraden för att söka album, artister eller låtar" #: gnomemusic/views/searchview.py:226 msgid "No Results Found" msgstr "Inga resultat hittades" #: gnomemusic/views/searchview.py:228 msgid "Try a different search" msgstr "Försök med en annan sökning" #: gnomemusic/widgets/albumwidget.py:230 msgid "{} minute" msgid_plural "{} minutes" msgstr[0] "{} minut" msgstr[1] "{} minuter" #: gnomemusic/widgets/discbox.py:74 msgid "Disc {}" msgstr "Skiva {}" #: gnomemusic/widgets/playertoolbar.py:173 msgid "Pause" msgstr "Gör paus" #: gnomemusic/widgets/playlistcontrols.py:130 msgid "{} Song" msgid_plural "{} Songs" msgstr[0] "{} låt" msgstr[1] "{} låtar" #: gnomemusic/widgets/searchheaderbar.py:50 msgid "Search songs, artists and albums" msgstr "Sök låtar, artister och album" #. noqa: F841 #: gnomemusic/widgets/songwidgetmenu.py:94 msgid "_Open Location" msgstr "Ö_ppna plats" #. TRANSLATORS: These are verbs, to (un)mark something as a #. favorite. #: gnomemusic/widgets/startoggle.py:36 msgid "Unstar" msgstr "Ta bort stjärnmärkning" #: gnomemusic/widgets/startoggle.py:36 msgid "Star" msgstr "Stjärnmärk" #: gnomemusic/widgets/statusnavigationpage.py:51 msgid "Your XDG Music directory is not set." msgstr "Din XDG-musikkatalog är inte inställd." #: gnomemusic/widgets/statusnavigationpage.py:58 msgid "Music Folder" msgstr "Musikmapp" #. TRANSLATORS: This is a label to display a link to open user's music #. folder. {} will be replaced with the translated text 'Music folder' #: gnomemusic/widgets/statusnavigationpage.py:66 msgid "The contents of your {} will appear here." msgstr "Innehållet i din {} kommer att visas här." #: gnomemusic/widgets/statusnavigationpage.py:116 msgid "No Music Found" msgstr "Ingen musik hittades" #: gnomemusic/widgets/statusnavigationpage.py:117 msgid "Try a Different Search" msgstr "Försök med en annan sökning" #: gnomemusic/widgets/statusnavigationpage.py:121 msgid "GNOME Music could not connect to Tracker." msgstr "GNOME Musik kunde inte ansluta till Tracker." #: gnomemusic/widgets/statusnavigationpage.py:123 msgid "Your music files cannot be indexed without Tracker running." msgstr "Dina musikfiler kan inte indexeras utan att Tracker körs." #: gnomemusic/widgets/statusnavigationpage.py:129 msgid "Your system Tracker version seems outdated." msgstr "Ditt systems version av Tracker verkar gammal." #: gnomemusic/widgets/statusnavigationpage.py:131 msgid "Music needs Tracker version 3.0.0 or higher." msgstr "Musik kräver version 3.0.0 eller högre av Tracker." #~ msgid "Select" #~ msgstr "Välj" #~ msgid "Select All" #~ msgstr "Markera alla" #~ msgid "Select None" #~ msgstr "Avmarkera alla" #~ msgid "Click on items to select them" #~ msgstr "Klicka på objekt för att välja dem" #~ msgid "_Add to Playlist" #~ msgstr "_Lägg till i spellista" #~ msgid "Copyright The GNOME Music Developers" #~ msgstr "Copyright GNOME Musik-utvecklarna" #~ msgid "Translated by" #~ msgstr "Översatt av" #~ msgid "Selected {} song" #~ msgid_plural "Selected {} songs" #~ msgstr[0] "Markerade {} låt" #~ msgstr[1] "Markerade {} låtar" #~ msgid "_Help" #~ msgstr "_Hjälp" #~ msgid "Report music history to Last.fm" #~ msgstr "Rapportera musikhistorik till Last.fm" #~ msgid "" #~ "Enables or disables sending scrobbles and the “currently playing” info to " #~ "Last.fm." #~ msgstr "" #~ "Aktiverar eller inaktiverar sändning av skrobblingar och ”spelar nu”-info " #~ "till Last.fm." #~ msgid "Last.fm Account" #~ msgstr "Last.fm-konto" #~ msgid "Report Music Listening" #~ msgstr "Rapportera musiklyssnande" #~ msgid "Artist" #~ msgstr "Artist" #~ msgid "Back" #~ msgstr "Bakåt" #~ msgid "" #~ "Last.fm is a music discovery service that gives you personalised " #~ "recommendations based on the music you listen to." #~ msgstr "" #~ "Last.fm är en musikupptäcktstjänst som ger dig personliga " #~ "rekommendationer beroende på musiken du lyssnar på." #~ msgid "Music Reporting Not Setup" #~ msgstr "Musikrapportering ej konfigurerad" #~ msgid "Login to your Last.fm account to report your music listening." #~ msgstr "" #~ "Logga in på ditt Last.fm-konto för att rapportera ditt musiklyssnande." #~ msgid "Login" #~ msgstr "Logga in" #~ msgid "Artists Results" #~ msgstr "Artistresultat" #~ msgid "Albums Results" #~ msgstr "Albumresultat" #~ msgid "Your music listening is reported to Last.fm." #~ msgstr "Ditt musiklyssnande rapporteras till Last.fm." #~ msgid "Your music listening is not reported to Last.fm." #~ msgstr "Ditt musiklyssnande rapporteras inte till Last.fm." #~ msgid "Logged in as {}" #~ msgstr "Inloggad som {}" #~ msgid "Configure" #~ msgstr "Konfigurera" #~ msgid "A music player and management application for GNOME." #~ msgstr "Ett program för uppspelning och hantering av musik för GNOME." #~ msgid "Visit GNOME Music website" #~ msgstr "Besök webbplatsen för GNOME Musik" #~ msgid "" #~ "GNOME Music 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.\n" #~ "\n" #~ "GNOME Music 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.\n" #~ "\n" #~ "You should have received a copy of the GNU General Public License along " #~ "with GNOME Music; if not, write to the Free Software Foundation, Inc., 51 " #~ "Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ "\n" #~ "The GNOME Music authors hereby grant permission for non-GPL compatible " #~ "GStreamer plugins to be used and distributed together with GStreamer and " #~ "GNOME Music. This permission is above and beyond the permissions granted " #~ "by the GPL license by which GNOME Music is covered. If you modify this " #~ "code, you may extend this exception to your version of the code, but you " #~ "are not obligated to do so. If you do not wish to do so, delete this " #~ "exception statement from your version." #~ msgstr "" #~ "GNOME Musik är fri programvara. Du kan distribuera det och/eller " #~ "modifiera det under villkoren i GNU General Public License, publicerad av " #~ "Free Software Foundation, antingen version 2 eller (om du så vill) någon " #~ "senare version.\n" #~ "\n" #~ "GNOME Musik distribueras i hopp om att det ska vara användbart, men UTAN " #~ "NÅGON SOM HELST GARANTI, även utan underförstådd garanti om SÄLJBARHET " #~ "eller LÄMPLIGHET FÖR NÅGOT SPECIELLT ÄNDAMÅL. Se GNU General Public " #~ "License för ytterligare information.\n" #~ "\n" #~ "Du bör ha fått en kopia av GNU General Public License tillsammans med " #~ "GNOME Musik. Om inte, skriv till Free Software Foundation, Inc., 51 " #~ "Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ "\n" #~ "Upphovsmännen för GNOME Musik ger härmed tillåtelse för användning och " #~ "distribution av ej GPL-kompatibla GStreamer-insticksmoduler tillsammans " #~ "med GStreamer och GNOME Musik. Denna tillåtelse är bortom tillåtelserna " #~ "som ges av GPL-licensen, vilken täcker GNOME Musik. Om du ändrar denna " #~ "kod kan du om du vill överföra detta undantag till din version av koden, " #~ "men du är inte tvungen att göra det. Ta bort detta undantag från din " #~ "version om du inte vill använda det." #~ msgid "The contents of your Music Folder will appear here" #~ msgstr "Innehållet i din Musikmapp kommer att visas här" #~ msgid "GNOME Music" #~ msgstr "GNOME Musik" #~ msgid "Window position" #~ msgstr "Fönsterposition" #~ msgid "Window position (x and y)." #~ msgstr "Fönsterposition (x och y)." #~ msgid "Loading" #~ msgstr "Läser in" #~ msgid "Add to Playlist…" #~ msgstr "Lägg till i spellista…" #~ msgid "" #~ "An easy way to play your music. Automatically discover music on your " #~ "computer, the local network and internet services." #~ msgstr "" #~ "Ett lätt sätt att spela din musik. Upptäck automatiskt musik på din " #~ "dator, det lokala nätverket samt på internettjänster." #~ msgid "" #~ "Find tracks in your local collection, get music from DLNA servers or try " #~ "something new with the Jamendo and Magnatune services." #~ msgstr "" #~ "Hitta spår i din lokala samling, erhåll musik från DLNA-servrar eller " #~ "pröva någonting nytt med Jamendo och Magnatune-tjänsterna." #~ msgid "Inital state has been displayed" #~ msgstr "Initialtillstånd har visats" #~ msgid "Set to true when initial state has been displayed" #~ msgstr "Satt till true när initialtillstånd har visats" #~ msgid "Hey DJ" #~ msgstr "Hej DJ" #~ msgid "Released" #~ msgstr "Utgiven" #~ msgid "Running Length" #~ msgstr "Speltid" #~ msgid "Composer" #~ msgstr "Kompositör" #~ msgctxt "context menu item" #~ msgid "Play" #~ msgstr "Spela" #~ msgid "Album" #~ msgstr "Album" #~ msgid "Track Title" #~ msgstr "Låttitel" #~ msgid "Local" #~ msgstr "Lokal" #~ msgid "Sources" #~ msgstr "Källor" #~ msgid "Match" #~ msgstr "Träff" #~ msgid "Untitled" #~ msgstr "Namnlös" #~ msgid "@icon@" #~ msgstr "@icon@" #~ msgid "_Quit" #~ msgstr "A_vsluta" #~ msgid "Music is the new GNOME music playing application." #~ msgstr "Musik är det nya GNOME-programmet för att spela musik." #~ msgid "org.gnome.Music" #~ msgstr "org.gnome.Music" #~ msgid "Search mode" #~ msgstr "Sökläge" #~ msgid "If true, the search bar is shown." #~ msgstr "Visar sökraden om sant." #~ msgid "Notifications mode" #~ msgstr "Aviseringsläge" #~ msgid "Enables or disables playback notifications" #~ msgstr "Aktiverar eller inaktiverar uppspelningsaviseringar" #~ msgid "Selected %d item" #~ msgid_plural "Selected %d items" #~ msgstr[0] "Markerade %d objekt" #~ msgstr[1] "Markerade %d objekt" #~ msgid "%d min" #~ msgstr "%d min" #~ msgid "Empty" #~ msgstr "Tom" #~ msgid "Select Playlist" #~ msgstr "Välj spellista" #~ msgid "the|a|an" #~ msgstr "the|a|an" #~ msgid "Max chars to display in track name on Artist view" #~ msgstr "Maximalt antal tecken att visa i spårnamnet i artistvyn" #~ msgid "" #~ "This setting modifies the amount of chars for track title on Artist view " #~ "before its been ellipsized. Set this to -1 to disable" #~ msgstr "" #~ "Denna inställning modifierar antalet tecken för spårtiteln i artistvyn " #~ "innan den blir elliptiserad. Sätt denna till -1 för att inaktivera" #~ msgid "the a an" #~ msgstr "the" #~ msgid "All Artists" #~ msgstr "Alla artister" #~ msgid "Not playing" #~ msgstr "Spelar inte" #~ msgid "by %s, from %s" #~ msgstr "av %s, från %s" 07070100000112000081A400000000000000000000000166968E4E00002670000000000000000000000000000000000000001A00000000gnome-music-46.1/po/ta.po# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # அருள்ராஜன் அ லை , 2013. # msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" "music&keywords=I18N+L10N&component=general\n" "POT-Creation-Date: 2013-10-26 09:39+0000\n" "PO-Revision-Date: 2013-10-27 09:44+0530\n" "Last-Translator: அருள்ராஜன் அ லை \n" "Language-Team: தமிழ் <>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Gtranslator 2.91.6\n" #: ../data/org.gnome.Music.gschema.xml.h:1 msgid "Window size" msgstr "சாளர அளவு" #: ../data/org.gnome.Music.gschema.xml.h:2 msgid "Window size (width and height)." msgstr "சாளர அளவு (அகலம் மற்றும் உயரம்)" #: ../data/org.gnome.Music.gschema.xml.h:3 msgid "Window position" msgstr "சாளர அமைவிடம்" #: ../data/org.gnome.Music.gschema.xml.h:4 msgid "Window position (x and y)." msgstr "சாளர அமைவிடம் (x மற்றும் y)" #: ../data/org.gnome.Music.gschema.xml.h:5 msgid "Window maximized" msgstr "சாளரம் பெரிதாக்கப்பட்டது" #: ../data/org.gnome.Music.gschema.xml.h:6 msgid "Window maximized state." msgstr "சாளரம் பெரிதாக்கப்பட்ட நிலை." #: ../data/org.gnome.Music.gschema.xml.h:7 msgid "Playback repeat mode" msgstr "பாடலை மீண்டும் இயக்குமுறை" #. Translators: Don't translate allowed values, just the description in the brackets #: ../data/org.gnome.Music.gschema.xml.h:9 msgid "" "Value identifies whether to repeat or randomize playback through the " "collection. Allowed values are: \"none\" (repeat and shuffle are off), \"song" "\" (repeat current song), \"all\" (repeat playlist, no shuffle), \"shuffle" "\" (shuffle playlist, presumes repeat all)." msgstr "" "தொகுப்பில் பாடலை மீண்டும் இயக்க அல்லது வரிசையின்றி இயக்க மதிப்பு தீர்மானிக்கும். " "அனுமதிக்கப்பட்ட மதிப்புகள்: \"none\" (மீண்டும் மீண்டும் பாடுவதும் கலக்குவதுமில்லை), \"song" "\", \"all\", \"shuffle\"." #: ../data/org.gnome.Music.gschema.xml.h:10 msgid "Search mode" msgstr "தேடல் முறைமை" #: ../data/org.gnome.Music.gschema.xml.h:11 msgid "If true, the search bar is shown." msgstr "உண்மையெனில், தேடல் பட்டி காட்டப்படும்." #: ../data/gnome-music.desktop.in.h:1 ../gnomemusic/application.py:46 #: ../gnomemusic/application.py:102 ../gnomemusic/window.py:54 #: ../data/AboutDialog.ui.in.h:1 msgid "Music" msgstr "இசை" #: ../data/gnome-music.desktop.in.h:2 msgid "Music Player" msgstr "இசைப்பான்" #: ../data/gnome-music.desktop.in.h:3 ../data/gnome-music.appdata.xml.in.h:2 msgid "Play and organize your music collection" msgstr "இசை தொகுப்பைப் பாடவும் நிர்வகிக்கவும்" #: ../data/gnome-music.appdata.xml.in.h:1 msgid "GNOME Music" msgstr "GNOME இசை" #: ../data/gnome-music.appdata.xml.in.h:3 msgid "Music is the new GNOME music playing application." msgstr "Music என்பது GNOME-ன் புதிய இசை பயன்பாடு" #: ../gnomemusic/albumArtCache.py:235 msgid "Untitled" msgstr "தலைப்பிடப்படாத" #: ../gnomemusic/notification.py:70 msgid "Not playing" msgstr "பாடவில்லை" #: ../gnomemusic/notification.py:77 ../gnomemusic/player.py:350 #: ../gnomemusic/view.py:229 ../gnomemusic/view.py:377 #: ../gnomemusic/view.py:591 msgid "Unknown Artist" msgstr "கலைஞர் யாரெனத் தெரியவில்லை" #: ../gnomemusic/notification.py:79 ../gnomemusic/view.py:475 msgid "Unknown Album" msgstr "ஆல்பம் எதுவெனத் தெரியவில்லை" #. TRANSLATORS: by refers to the artist, from to the album #: ../gnomemusic/notification.py:83 #, python-format msgid "by %s, from %s" msgstr "%s-இலிருந்து %s-ஆல்" #: ../gnomemusic/notification.py:123 msgid "Previous" msgstr "முந்தைய" #: ../gnomemusic/notification.py:126 msgid "Pause" msgstr "இடைநிறுத்து" #: ../gnomemusic/notification.py:129 msgid "Play" msgstr "பாடு" #: ../gnomemusic/notification.py:131 msgid "Next" msgstr "அடுத்தது" #: ../gnomemusic/view.py:294 #, python-format msgid "" "No Music found!\n" " Put some files into the folder %s" msgstr "" "பாடல்கள் ஏதும் கிடைக்கவில்லை!\n" "அடைவு %s- சில கோப்புகளை இடவும்" #: ../gnomemusic/view.py:301 msgid "Albums" msgstr "ஆல்பங்கள்" #: ../gnomemusic/view.py:333 msgid "Songs" msgstr "பாடல்கள்" #: ../gnomemusic/view.py:484 msgid "Playlists" msgstr "பாடல்வரிசைகள்" #: ../gnomemusic/view.py:490 msgid "Artists" msgstr "கலைஞர்கள்" #: ../gnomemusic/view.py:526 ../gnomemusic/view.py:528 #: ../gnomemusic/widgets.py:443 msgid "All Artists" msgstr "அனைத்து கலைஞர்கள்" #: ../gnomemusic/widgets.py:73 ../gnomemusic/widgets.py:93 msgid "Load More" msgstr "இன்னும் ஏற்ற" #: ../gnomemusic/widgets.py:83 msgid "Loading..." msgstr "ஏற்றுகிறது ..." #: ../gnomemusic/window.py:165 msgid "Empty" msgstr "வெறுமையாக உள்ளது" #: ../data/AboutDialog.ui.in.h:2 msgid "Copyright © 2013 GNOME Music Developers" msgstr "காப்புரிமை © 2013 GNOME Music Developers" #: ../data/AboutDialog.ui.in.h:3 msgid "A music player and management application for GNOME." msgstr "GNOME-க்கான இசைப்பான் மற்றும் மேலாண்மைப் பயன்பாடு" #: ../data/AboutDialog.ui.in.h:4 msgid "Visit GNOME Music website" msgstr "GNOME Music வலைத்தளத்திற்கு வாருங்கள்" #: ../data/AboutDialog.ui.in.h:5 msgid "" "GNOME Music 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.\n" "\n" "GNOME Music 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.\n" "\n" "You should have received a copy of the GNU General Public License along with " "GNOME Music; if not, write to the Free Software Foundation, Inc., 51 " "Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" "\n" "The GNOME Music authors hereby grant permission for non-GPL compatible " "GStreamer plugins to be used and distributed together with GStreamer and " "GNOME Music. This permission is above and beyond the permissions granted by " "the GPL license by which GNOME Music is covered. If you modify this code, " "you may extend this exception to your version of the code, but you are not " "obligated to do so. If you do not wish to do so, delete this exception " "statement from your version." msgstr "" #: ../data/AlbumWidget.ui.h:1 msgid "Released" msgstr "வெளியிடப்பட்டது" #: ../data/AlbumWidget.ui.h:2 msgid "Running Length" msgstr "ஓடும் நீளம்" #: ../data/app-menu.ui.h:1 msgid "_New Playlist" msgstr "புதிய பாடல்வரிசை" #: ../data/app-menu.ui.h:2 msgid "Now _Playing" msgstr "தற்போது இசைப்பது" #: ../data/app-menu.ui.h:3 msgid "_About Music" msgstr "GNome Music -ப் பற்றி" #: ../data/app-menu.ui.h:4 msgid "_Quit" msgstr "வெளியேறு" #: ../data/PlayerToolbar.ui.h:1 msgid "Shuffle" msgstr "கலக்கு" #: ../data/PlayerToolbar.ui.h:2 msgid "Repeat All" msgstr "மறுமுறை அனைத்தும்" #: ../data/PlayerToolbar.ui.h:3 msgid "Repeat Song" msgstr "மறுமுறை பாடல்" #: ../data/PlayerToolbar.ui.h:4 msgid "Shuffle/Repeat Off" msgstr "கலக்குதல்/மறுமுறை நிறுத்து" #: ../data/NoMusic.ui.h:1 msgid "No Music Found" msgstr "பாடல்கள் ஏதும் கிடைக்கவில்லை" #: ../data/headerbar.ui.in.h:1 msgid "Select All" msgstr "அனைத்தும் தேர்ந்தெடு" #: ../data/headerbar.ui.in.h:2 msgid "Select None" msgstr "எதுவும் தேர்ந்தெடுக்க வேண்டாம்" #: ../data/headerbar.ui.in.h:3 msgid "Click on items to select them" msgstr "பொருட்களைத் தேர்ந்தெடுக்க அவற்றின் மீது சொடுக்கவும்" #: ../data/headerbar.ui.in.h:4 msgid "Cancel" msgstr "ரத்து" #: ../data/SelectionToolbar.ui.h:1 msgid "Add to Playlist" msgstr "பாடல்வரிசையில் சேர்" 07070100000113000081A400000000000000000000000166968E4E000036B6000000000000000000000000000000000000001A00000000gnome-music-46.1/po/te.po# Telugu translation for gnome-music. # Copyright (C) 2013 gnome-music's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-music package. # Praveen Illa , 2013, 2014. msgid "" msgstr "" "Project-Id-Version: gnome-music master\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" "music&keywords=I18N+L10N&component=general\n" "POT-Creation-Date: 2014-03-21 15:21+0000\n" "PO-Revision-Date: 2014-03-21 23:06+0530\n" "Last-Translator: Praveen Illa \n" "Language-Team: indlinux-telugu@lists.sourceforge.net\n" "Language: te\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Poedit 1.5.4\n" "X-Project-Style: gnome\n" #: ../data/org.gnome.Music.gschema.xml.h:1 msgid "Window size" msgstr "కిటికీ పరిమాణం" #: ../data/org.gnome.Music.gschema.xml.h:2 msgid "Window size (width and height)." msgstr "కిటికీ పరిమాణం (వెడల్పు మరియు ఎత్తు)." #: ../data/org.gnome.Music.gschema.xml.h:3 msgid "Window position" msgstr "కిటికీ స్థానము" #: ../data/org.gnome.Music.gschema.xml.h:4 msgid "Window position (x and y)." msgstr "కిటికీ స్థానము (x మరియు y)." #: ../data/org.gnome.Music.gschema.xml.h:5 msgid "Window maximized" msgstr "కిటికీ పెద్దగాచేయబడింది" #: ../data/org.gnome.Music.gschema.xml.h:6 msgid "Window maximized state." msgstr "కిటికీ పెద్దగాచేయబడిన స్థితి." #: ../data/org.gnome.Music.gschema.xml.h:7 msgid "Playback repeat mode" msgstr "ప్లేబ్యాక్ పునరావృత రీతి" #. Translators: Don't translate allowed values, just the description in the brackets #: ../data/org.gnome.Music.gschema.xml.h:9 msgid "" "Value identifies whether to repeat or randomize playback through the " "collection. Allowed values are: \"none\" (repeat and shuffle are off), \"song" "\" (repeat current song), \"all\" (repeat playlist, no shuffle), \"shuffle" "\" (shuffle playlist, presumes repeat all)." msgstr "" "మీ పాటల సేకరణను పునరావృతం చేయాలో లేదా యాదృచ్ఛికంగా ఆడాలో మీరిచ్చే ఈ విలువలు గుర్తిస్తాయి. అనుమతించబడిన " "విలువలు: \"none\" (పునరావృతం మరియు గులకరించు ఆపివేయబడి), \"song\" (ప్రస్థుత పాటను " "పునరావృతం చేస్తుంది), \"all\" (పాటలజాబితా పునరావృతం చేయబడుతుంది, గులకరించబడదు), \"shuffle" "\" (పాటలజాబితాను గులకరిస్తుంది, అన్నిటి పునరావృతాన్ని ప్రెస్యుమ్ చేస్తుంది)." #: ../data/org.gnome.Music.gschema.xml.h:10 msgid "Search mode" msgstr "శోధన రీతి" #: ../data/org.gnome.Music.gschema.xml.h:11 msgid "If true, the search bar is shown." msgstr "ఒకవేళ నిజమైతే, శోధన పట్టీ చూపించబడును." #: ../data/gnome-music.desktop.in.h:1 ../gnomemusic/application.py:46 #: ../gnomemusic/application.py:102 ../gnomemusic/window.py:58 #: ../data/AboutDialog.ui.in.h:1 msgid "Music" msgstr "సంగీతం" #: ../data/gnome-music.desktop.in.h:2 msgid "Music Player" msgstr "సంగీత ప్రదర్శకం" #: ../data/gnome-music.desktop.in.h:3 ../data/gnome-music.appdata.xml.in.h:2 msgid "Play and organize your music collection" msgstr "మీ సంగీత సేకరణను ప్రదర్శించి, నిర్వహించుకోండి" #: ../data/gnome-music.appdata.xml.in.h:1 msgid "GNOME Music" msgstr "గ్నోమ్ సంగీతం" #: ../data/gnome-music.appdata.xml.in.h:3 msgid "Music is the new GNOME music playing application." msgstr "సంగీతం అనేది సరికొత్త గ్నోమ్ సంగీత ప్రదర్శక అనువర్తనం." #: ../gnomemusic/albumArtCache.py:235 ../gnomemusic/albumArtCache.py:243 msgid "Untitled" msgstr "పేరులేదు" #: ../gnomemusic/notification.py:70 msgid "Not playing" msgstr "ప్రదర్శించుటలేదు" #: ../gnomemusic/notification.py:79 ../gnomemusic/player.py:365 #: ../gnomemusic/searchbar.py:31 ../gnomemusic/view.py:253 #: ../gnomemusic/view.py:455 ../gnomemusic/view.py:676 #: ../gnomemusic/view.py:990 msgid "Unknown Artist" msgstr "తెలియని కళాకారుడు" #: ../gnomemusic/notification.py:81 ../gnomemusic/searchbar.py:32 #: ../gnomemusic/view.py:553 msgid "Unknown Album" msgstr "తెలియని ఆల్బమ్" #. TRANSLATORS: by refers to the artist, from to the album #: ../gnomemusic/notification.py:85 #, python-format msgid "by %s, from %s" msgstr "గాయకులు %s, %s నుండి" #: ../gnomemusic/notification.py:125 msgid "Previous" msgstr "మునుపటిది" #: ../gnomemusic/notification.py:128 msgid "Pause" msgstr "నిలిపివేయి" #: ../gnomemusic/notification.py:131 msgid "Play" msgstr "ఆడించు" #: ../gnomemusic/notification.py:133 msgid "Next" msgstr "తరువాతది" #: ../gnomemusic/view.py:197 ../gnomemusic/widgets.py:261 #: ../gnomemusic/window.py:244 #, python-format msgid "Selected %d item" msgid_plural "Selected %d items" msgstr[0] "%d అంశం ఎంచుకోబడింది" msgstr[1] "%d అంశాలు ఎంచుకోబడ్డాయి" #: ../gnomemusic/view.py:199 ../gnomemusic/widgets.py:263 #: ../gnomemusic/window.py:248 ../gnomemusic/window.py:262 #: ../data/headerbar.ui.in.h:3 msgid "Click on items to select them" msgstr "అంశాలను ఎంచుకోవడానికి వాటిపై నొక్కండి" #: ../gnomemusic/view.py:322 #, python-format msgid "" "No Music found!\n" " Put some files into the folder %s" msgstr "" "ఎటువంటి సంగీతం కనపడలేదు!\n" " దయచేసి %s సంచయంలో కొన్ని సంగీత దస్త్రాలను పెట్టండి" #: ../gnomemusic/view.py:329 msgid "Albums" msgstr "ఆల్బమ్లు" #: ../gnomemusic/view.py:402 msgid "Songs" msgstr "పాటలు" #: ../gnomemusic/view.py:566 msgid "Artists" msgstr "గాయకులు" #: ../gnomemusic/view.py:611 ../gnomemusic/view.py:613 #: ../gnomemusic/widgets.py:451 msgid "All Artists" msgstr "అందరు గాయకులు" #: ../gnomemusic/view.py:743 msgid "Playlists" msgstr "పాటలజాబితాలు" #: ../gnomemusic/view.py:1007 #, python-format msgid "%d Song" msgid_plural "%d Songs" msgstr[0] "%d పాట" msgstr[1] "%d పాటలు" #: ../gnomemusic/widgets.py:75 ../gnomemusic/widgets.py:95 msgid "Load More" msgstr "మరిన్ని నింపు" #: ../gnomemusic/widgets.py:85 msgid "Loading..." msgstr "ఎక్కిస్తున్నాము..." #: ../gnomemusic/widgets.py:670 msgid "New Playlist" msgstr "కొత్త పాటలజాబితా" #: ../gnomemusic/window.py:209 msgid "Empty" msgstr "ఏమీలేవు" #: ../data/AboutDialog.ui.in.h:2 msgid "Copyright © 2013 GNOME Music Developers" msgstr "నకలుహక్కు © 2013 గ్నోమ్ సంగీతం వికాసకులు" #: ../data/AboutDialog.ui.in.h:3 msgid "A music player and management application for GNOME." msgstr "సంగీత నిర్వహణకై గ్నోమ్ కోసం రూపొందించిన సంగీత ప్రదర్శక అనువర్తనం." #: ../data/AboutDialog.ui.in.h:4 msgid "Visit GNOME Music website" msgstr "గ్నోమ్ సంగీతం జాలగూడును సందర్శించండి" #: ../data/AboutDialog.ui.in.h:5 msgid "" "GNOME Music 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.\n" "\n" "GNOME Music 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.\n" "\n" "You should have received a copy of the GNU General Public License along with " "GNOME Music; if not, write to the Free Software Foundation, Inc., 51 " "Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" "\n" "The GNOME Music authors hereby grant permission for non-GPL compatible " "GStreamer plugins to be used and distributed together with GStreamer and " "GNOME Music. This permission is above and beyond the permissions granted by " "the GPL license by which GNOME Music is covered. If you modify this code, " "you may extend this exception to your version of the code, but you are not " "obligated to do so. If you do not wish to do so, delete this exception " "statement from your version." msgstr "" "గ్నోమ్ సంగీతం అనేది ఒక స్వేచ్ఛా సాఫ్ట్‌వేర్: దీనిని మీరు ఫ్రీ సాఫ్ట్‌వేర్ ఫౌండేషన్ ప్రచురించిన గ్నూ జనరల్ పబ్లిక్ " "లైసెన్స్ రూపాంతరం ౨, లేదా (మీ ఇష్టాన్ని బట్టి) ఏదైనా తరువాత రూపాంతరపు నిబంధనలకు అనుగుణంగా " "పునఃపంపిణీ చెయ్యవచ్చు మరియు/లేదా సవరించుకోవచ్చు.\n" "\n" "గ్నోమ్ సంగీతం సమాజానికి ఉపయోగపడుతుంది అనే ఆశతో , ఏవిధమైన పూచీకత్తులు లేకుండా, కనీసం వ్యాపారానికి గాని " "లేదా ఒక ఖచ్చితమైన ప్రయోజనానికి ఉపయోగించవచ్చని భావించిన పూచీకత్తులు కూడా లేకుండా పంచబడుతుంది.మరిన్ని " "వివరాలకు గ్నూ జనరల్ పబ్లిక్ లైసెన్సుని చూడండి.\n" "\n" "గ్నోమ్ సంగీతంతో పాటు మీరు గ్నూ జనరల్ పబ్లిక్ లైసెన్సు నకలును పొంది ఉంటారు, లేనిపక్షంలో, Free " "Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston. " "MA02110-1301, USA కు వ్రాయండి.\n" "\n" "The GNOME Music authors hereby grant permission for non-GPL compatible " "GStreamer plugins to be used and distributed together with GStreamer and " "GNOME Music. This permission is above and beyond the permissions granted by " "the GPL license by which GNOME Music is covered. If you modify this code, " "you may extend this exception to your version of the code, but you are not " "obligated to do so. If you do not wish to do so, delete this exception " "statement from your version." #: ../data/AlbumWidget.ui.h:1 msgid "Released" msgstr "విడుదలైంది" #: ../data/AlbumWidget.ui.h:2 msgid "Running Length" msgstr "నిడివి" #: ../data/app-menu.ui.h:1 msgid "_New Playlist" msgstr "కొత్త పాటలజాబితా (_N)" #: ../data/app-menu.ui.h:2 msgid "_Help" msgstr "సహాయం (_H)" #: ../data/app-menu.ui.h:3 msgid "_About" msgstr "గురించి (_A)" #: ../data/app-menu.ui.h:4 msgid "_Quit" msgstr "నిష్క్రమించు (_Q)" #: ../data/PlayerToolbar.ui.h:1 msgid "Shuffle" msgstr "గులకరించు" #: ../data/PlayerToolbar.ui.h:2 msgid "Repeat All" msgstr "అన్నీ పునరావృతం" #: ../data/PlayerToolbar.ui.h:3 msgid "Repeat Song" msgstr "పాటను పునరావృతంచేయి" #: ../data/PlayerToolbar.ui.h:4 msgid "Shuffle/Repeat Off" msgstr "గులకరించు/పునరావృతించు ఆపు" #: ../data/NoMusic.ui.h:1 msgid "No Music Found" msgstr "ఎటువంటి సంగీతం దొరకలేదు" #: ../data/headerbar.ui.in.h:1 msgid "Select All" msgstr "అన్నీ ఎంచుకోండి" #: ../data/headerbar.ui.in.h:2 msgid "Select None" msgstr "ఎంపిక రద్దు" #: ../data/headerbar.ui.in.h:4 ../data/PlaylistDialog.ui.in.h:2 msgid "Cancel" msgstr "రద్దుచేయి" #: ../data/SelectionToolbar.ui.h:1 msgid "Add to Playlist" msgstr "పాటలజాబితాకు కలుపు" #: ../data/SelectionToolbar.ui.h:2 msgid "Remove from Playlist" msgstr "జాబితా నుండి తీసివేయి" #: ../data/PlaylistControls.ui.h:1 msgid "_Play" msgstr "ఆడించు (_P)" #: ../data/PlaylistControls.ui.h:2 msgid "_Delete" msgstr "తొలగించు (_D)" #: ../data/PlaylistDialog.ui.in.h:1 msgid "Select Playlist" msgstr "పాటలజాబితాను ఎంచుకోండి" #: ../data/PlaylistDialog.ui.in.h:3 msgid "Select" msgstr "ఎంచుకోండి" #~ msgid "Now _Playing" #~ msgstr "ఇప్పుడు ఆడుతున్నది (_P)" 07070100000114000081A400000000000000000000000166968E4E00004BC0000000000000000000000000000000000000001A00000000gnome-music-46.1/po/tg.po# Tajik translation for gnome-music. # Copyright (C) 2013 gnome-music's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-music package. # Victor Ibragimov , 2013, 2014, 2015 # msgid "" msgstr "" "Project-Id-Version: gnome-music master\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" "music&keywords=I18N+L10N&component=general\n" "POT-Creation-Date: 2015-06-24 19:21+0000\n" "PO-Revision-Date: 2015-06-25 10:34+0500\n" "Last-Translator: Victor Ibragimov \n" "Language-Team: Tajik \n" "Language: tg\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 1.7.5\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: ../data/org.gnome.Music.gschema.xml.h:1 msgid "Window size" msgstr "Андозаи равзана" #: ../data/org.gnome.Music.gschema.xml.h:2 msgid "Window size (width and height)." msgstr "Андозаи равзана (бар ва баландӣ)." #: ../data/org.gnome.Music.gschema.xml.h:3 msgid "Window position" msgstr "Мавқеи равзана" #: ../data/org.gnome.Music.gschema.xml.h:4 msgid "Window position (x and y)." msgstr "Мавқеи равзана (x ва y)." #: ../data/org.gnome.Music.gschema.xml.h:5 msgid "Window maximized" msgstr "Равзана дар ҳадди аксар" #: ../data/org.gnome.Music.gschema.xml.h:6 msgid "Window maximized state." msgstr "Вазъияти равзана дар ҳадди аксар" #: ../data/org.gnome.Music.gschema.xml.h:7 msgid "Playback repeat mode" msgstr "Ҳолати такрори пахш" #. Translators: Don't translate allowed values, just the description in the brackets #: ../data/org.gnome.Music.gschema.xml.h:9 msgid "" "Value identifies whether to repeat or randomize playback through the " "collection. Allowed values are: \"none\" (repeat and shuffle are off), \"song" "\" (repeat current song), \"all\" (repeat playlist, no shuffle), \"shuffle" "\" (shuffle playlist, presumes repeat all)." msgstr "" "Қиматҳо такрорӣ ё тасодуфии пахшро дар тамоми коллексия муайян мекунанд. " "Қиматҳои иҷозашуда: \"none\" (такрорӣ ва тасодуфӣ хомӯш мебошанд), \"song" "\" (такрор кардани суруди ҷорӣ), \"all\" (такрор кардани рӯйхати пахш, бе " "тасодуфӣ), \"shuffle\" (тасодуфии рӯйхати пахш, пахши ҳамаи сурудҳоро такрор " "мекунад)." #: ../data/org.gnome.Music.gschema.xml.h:10 msgid "Search mode" msgstr "Ҳолати ҷустуҷӯ" #: ../data/org.gnome.Music.gschema.xml.h:11 msgid "If true, the search bar is shown." msgstr "Агар \"true\" бошад, навори ҷустуҷӯ намоиш дода мешавад." #: ../data/org.gnome.Music.gschema.xml.h:12 msgid "Notifications mode" msgstr "Реҷаи огоҳӣ" #: ../data/org.gnome.Music.gschema.xml.h:13 msgid "Enables or disables playback notifications" msgstr "Огоҳиҳои пахшро фаъол ё ғайрифаъол мекунад" #: ../data/org.gnome.Music.gschema.xml.h:14 msgid "Max chars to display in track name on Artist view" msgstr "" "Шумораи имконпазири аломатҳо барои намоиш дар номи роҳча дар намуди ҳунарманд" #: ../data/org.gnome.Music.gschema.xml.h:15 msgid "" "This setting modifies the amount of chars for track title on Artist view " "before its been ellipsized. Set this to -1 to disable" msgstr "" "Ин танзим шумораи аломатҳоро дар унвони реҷаи ҳунарманд пеш аз гирд кардани " "он тағйир медиҳад. Барои ғайрифаъол кардан, онро ба -1 танзим кунед" #: ../data/org.gnome.Music.gschema.xml.h:16 msgid "Enable ReplayGain" msgstr "Фаъол кардани ReplayGain" #: ../data/org.gnome.Music.gschema.xml.h:17 msgid "Enables or disables ReplayGain for albums" msgstr "ReplayGain барои албомҳо фаъол ё ғайрифаъол мекунад" #: ../data/org.gnome.Music.gschema.xml.h:18 msgid "Inital state has been displayed" msgstr "Вазъияти ибтидоӣ намоиш дода шуд" #: ../data/org.gnome.Music.gschema.xml.h:19 msgid "Set to true when initial state has been displayed" msgstr "Вақте ки вазъияти ибтидоӣ намоиш дода мешавад, ба TRUE танзим кунед" #: ../data/gnome-music.desktop.in.h:1 ../gnomemusic/application.py:50 #: ../gnomemusic/application.py:113 ../gnomemusic/window.py:59 #: ../data/AboutDialog.ui.in.h:1 msgid "Music" msgstr "Мусиқӣ" #: ../data/gnome-music.desktop.in.h:2 msgid "Music Player" msgstr "Плеери мусиқӣ" #: ../data/gnome-music.desktop.in.h:3 ../data/gnome-music.appdata.xml.in.h:2 msgid "Play and organize your music collection" msgstr "Коллексияи мусиқии худро мураттаб ва пахш кунед" #: ../data/gnome-music.desktop.in.h:4 msgid "Music;Player;" msgstr "Мусиқӣ;Плеер;" #: ../data/gnome-music.appdata.xml.in.h:1 msgid "GNOME Music" msgstr "Мусиқии GNOME" #: ../data/gnome-music.appdata.xml.in.h:3 msgid "Music is the new GNOME music playing application." msgstr "Мусиқии GNOME - барномаи нави пахши мусиқӣ мебошад." #: ../gnomemusic/albumArtCache.py:103 ../gnomemusic/albumArtCache.py:111 msgid "Untitled" msgstr "Беном" #: ../gnomemusic/mpris.py:148 ../gnomemusic/notification.py:100 #: ../gnomemusic/player.py:571 ../gnomemusic/view.py:564 #: ../gnomemusic/view.py:995 ../gnomemusic/view.py:1451 msgid "Unknown Album" msgstr "Албоми номаълум" #: ../gnomemusic/mpris.py:164 ../gnomemusic/notification.py:98 #: ../gnomemusic/player.py:562 ../gnomemusic/view.py:223 #: ../gnomemusic/view.py:464 ../gnomemusic/view.py:737 #: ../gnomemusic/view.py:1177 ../gnomemusic/view.py:1449 #: ../gnomemusic/view.py:1496 ../gnomemusic/widgets.py:235 #: ../gnomemusic/widgets.py:638 msgid "Unknown Artist" msgstr "Ҳунарманди номаълум" #: ../gnomemusic/notification.py:89 msgid "Not playing" msgstr "Ҳозир пахш намекунад" #. TRANSLATORS: by refers to the artist, from to the album #: ../gnomemusic/notification.py:104 #, python-format msgid "by %s, from %s" msgstr "Ҳунарманди %s, албоми %s" #: ../gnomemusic/notification.py:125 ../data/PlayerToolbar.ui.h:5 msgid "Previous" msgstr "Қаблӣ" #: ../gnomemusic/notification.py:128 ../gnomemusic/player.py:519 msgid "Pause" msgstr "Таваққуф" #: ../gnomemusic/notification.py:131 ../gnomemusic/player.py:522 #: ../data/PlayerToolbar.ui.h:6 msgid "Play" msgstr "Пахш кардан" #: ../gnomemusic/notification.py:133 ../data/PlayerToolbar.ui.h:7 msgid "Next" msgstr "Навбатӣ" #: ../gnomemusic/player.py:980 msgid "Unable to play the file" msgstr "Файл пахш карда намешавад" #. TRANSLATORS: this is a button to launch a codec installer. #. %s will be replaced with the software installer's name, e.g. #. 'Software' in case of gnome-software. #: ../gnomemusic/player.py:985 #, python-format msgid "_Find in %s" msgstr "_Ёфтан дар %s" #. TRANSLATORS: separator for a list of codecs #: ../gnomemusic/player.py:995 msgid " and " msgstr " ва " #. TRANSLATORS: separator for a list of codecs #: ../gnomemusic/player.py:998 msgid ", " msgstr ", " #: ../gnomemusic/player.py:999 #, python-format msgid "%s is required to play the file, but is not installed." msgid_plural "%s are required to play the file, but are not installed." msgstr[0] "%s барои пахш кардани файл лозим аст, вале он насб нашудааст." msgstr[1] "%s барои пахш кардани файл лозим аст, вале он насб нашудааст." #. TRANSLATORS: this is a playlist name #: ../gnomemusic/playlists.py:49 msgid "Most Played" msgstr "Бисёр маротиба пахш карда шуд" #. TRANSLATORS: this is a playlist name #: ../gnomemusic/playlists.py:56 msgid "Never Played" msgstr "Ҳеҷ вақт пахш карда нашуд" #. TRANSLATORS: this is a playlist name #: ../gnomemusic/playlists.py:63 msgid "Recently Played" msgstr "Дар қарибӣ пахш карда шуд" #. TRANSLATORS: this is a playlist name #: ../gnomemusic/playlists.py:70 msgid "Recently Added" msgstr "Дар қарибӣ илова карда шуд" #. TRANSLATORS: this is a playlist name #: ../gnomemusic/playlists.py:77 msgid "Favorite Songs" msgstr "Сурудҳои баргузида" #. TRANSLATORS: _("the") should be a space-separated list of all-lowercase articles #. (such as 'the') that should be ignored when alphabetizing artists/albums. This #. list should include 'the' regardless of language. If some articles occur more #. frequently than others, most common should appear first, least common last. #: ../gnomemusic/query.py:69 msgid "the a an" msgstr "the a an" #: ../gnomemusic/searchbar.py:58 ../gnomemusic/searchbar.py:101 msgid "All" msgstr "Ҳама" #: ../gnomemusic/searchbar.py:59 msgid "Artist" msgstr "Ҳунарманд" #: ../gnomemusic/searchbar.py:60 msgid "Album" msgstr "Албом" #: ../gnomemusic/searchbar.py:61 msgid "Track Title" msgstr "Унвони роҳча" #: ../gnomemusic/searchbar.py:102 msgid "Local" msgstr "Маҳаллӣ" #: ../gnomemusic/searchbar.py:204 msgid "Sources" msgstr "Манбаҳо" #: ../gnomemusic/searchbar.py:211 msgid "Match" msgstr "Мутобиқат" #: ../gnomemusic/view.py:191 ../gnomemusic/widgets.py:267 #: ../gnomemusic/widgets.py:515 ../gnomemusic/window.py:302 #, python-format msgid "Selected %d item" msgid_plural "Selected %d items" msgstr[0] "%d объект интихоб шудааст" msgstr[1] "%d объект интихоб шудаанд" #: ../gnomemusic/view.py:193 ../gnomemusic/widgets.py:269 #: ../gnomemusic/widgets.py:517 ../gnomemusic/window.py:306 #: ../gnomemusic/window.py:318 ../data/headerbar.ui.h:3 msgid "Click on items to select them" msgstr "Барои интихоби объект онро зер кунед" #: ../gnomemusic/view.py:279 msgid "Music folder" msgstr "Ҷузвдони мусиқӣ" #: ../gnomemusic/view.py:298 msgid "Hey DJ" msgstr "Hey DJ" #: ../gnomemusic/view.py:306 ../gnomemusic/view.py:1720 msgid "Albums" msgstr "Албомҳо" #: ../gnomemusic/view.py:398 ../gnomemusic/view.py:1722 msgid "Songs" msgstr "Сурудҳо" #: ../gnomemusic/view.py:596 ../gnomemusic/view.py:1721 msgid "Artists" msgstr "Ҳунармандон" #: ../gnomemusic/view.py:642 ../gnomemusic/view.py:644 #: ../gnomemusic/widgets.py:524 msgid "All Artists" msgstr "Ҳамаи ҳунармандон" #: ../gnomemusic/view.py:822 ../gnomemusic/view.py:1723 msgid "Playlists" msgstr "Феҳристҳои пахш" #: ../gnomemusic/view.py:1188 #, python-format msgid "%d Song" msgid_plural "%d Songs" msgstr[0] "%d суруд" msgstr[1] "%d суруд" #: ../gnomemusic/view.py:1325 msgid "Try a different search" msgstr "Ҷустуҷӯи дигареро кӯшиш кунед" #: ../gnomemusic/widgets.py:308 ../gnomemusic/widgets.py:342 #, python-format msgid "%d min" msgstr "%d дақиқа" #: ../gnomemusic/widgets.py:762 msgid "New Playlist" msgstr "Феҳристи пахши нав" #: ../gnomemusic/window.py:248 msgid "Empty" msgstr "Холӣ кардан" #: ../gnomemusic/window.py:330 msgid "Loading" msgstr "Дар ҳоли боркунӣ" #: ../gnomemusic/window.py:345 msgid "_Undo" msgstr "_Ботил сохтан" #: ../gnomemusic/window.py:346 #, python-format msgid "Playlist %s removed" msgstr "Феҳристҳои пахши %s тоза шуд" #: ../data/AboutDialog.ui.in.h:2 msgid "Copyright © 2013 GNOME Music Developers" msgstr "Ҳуқуқи муаллиф © 2013 Барноманависони Мусиқии GNOME" #: ../data/AboutDialog.ui.in.h:3 msgid "A music player and management application for GNOME." msgstr "Плеери мусиқӣ ва барномаи идоракунӣ барои GNOME." #: ../data/AboutDialog.ui.in.h:4 msgid "Visit GNOME Music website" msgstr "Гузариш ба вебсайти Мусиқии GNOME" #: ../data/AboutDialog.ui.in.h:5 msgid "" "GNOME Music 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.\n" "\n" "GNOME Music 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.\n" "\n" "You should have received a copy of the GNU General Public License along with " "GNOME Music; if not, write to the Free Software Foundation, Inc., 51 " "Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" "\n" "The GNOME Music authors hereby grant permission for non-GPL compatible " "GStreamer plugins to be used and distributed together with GStreamer and " "GNOME Music. This permission is above and beyond the permissions granted by " "the GPL license by which GNOME Music is covered. If you modify this code, " "you may extend this exception to your version of the code, but you are not " "obligated to do so. If you do not wish to do so, delete this exception " "statement from your version.\n" "\n" "\"Magic of the vinyl\" by Sami Pyylampi image is licensed by CC-BY-SA 2.0 " "https://www.flickr.com/photos/_spy_/12270839403\n" msgstr "" "Мусиқии GNOME нармафзори ройгон аст; Шумо метавонед онро мувофиқи шартҳои " "Иҷозатномаи иҷтимоии умумии GNU, чи тавре ки Иҷозатномаи мазкур аз ҷониби " "Фонди Мусиқии GNOME - нармафзорест, ки ройнгон нашр шудааст, ва шумо " "метавонед онро дар асоси шартҳои Иҷозатномаи ҷамъиятии умумии GNU, версияи " "Иҷозатномаи рақами 2 ё ягон версияи охирин, пахш кунед ва/ё тағйир диҳед.\n" "\n" "Мо умедворем, ки шумо аз истифодабарии нармафзори Мусиқии GNOME фоида " "мегиред, вале мо ба шумо ЯГОН КАФОЛАТ НАМЕДИҲЕМ; ҳатто барои мақсадҳои " "ТИҶОРӢ шумо ё ягон МАҚСАДҲОИ МАХСУСИ ШУМО ягон кафолат намедиҳем. Барои " "маълумоти муфассал Иҷозатномаи иҷтимоии умумии GNU-ро мутолиа кунед.\n" "\n" "Шумо бояд нусхаи Иҷозатномаи иҷтимоии умумии GNU-ро якҷоя бо нармафзори " "Мусиқии GNOME қабул кунед. Агар қабул накунед, метавонед барои гирифтани " "нусхаи иҷозатнома ба суроғаи мо нависед: The Free Software Foundation, Inc., " "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n" "\n" "Муаллифони нармафзори Мусиқии GNOME иҷозат медиҳанд, то ки шумо тавонед " "плагинҳои GStreamer-ро, ки ба Иҷозатномаи GPL мувофиқа намекунанд, якҷоя бо " "GStreamer ва Мусиқии GNOME истифода баред. Ин иҷозат ба иҷозатномаи GPL-и " "нармафзори Мусиқии GNOME мувофиқат намекунад ва метавонад онро тавсиф " "накунад. Агар шумо ин рамзро тағйир диҳед, метавонед истисноро ба версияи " "рамзи худ васеъ кунед, вале шумо барои кардани ин вазифадор намебошед. Агар " "кардани ин нахоҳед, баёнияи ин истисноро аз версияи худ тоза кунед.\n" "\n" "\"Magic of the vinyl\" by Sami Pyylampi image is licensed by CC-BY-SA 2.0 " "https://www.flickr.com/photos/_spy_/12270839403\n" #: ../data/AlbumWidget.ui.h:1 msgid "Released" msgstr "Санаи нашр" #: ../data/AlbumWidget.ui.h:2 msgid "Running Length" msgstr "Давомнокии пахш" #: ../data/app-menu.ui.h:1 msgid "_Help" msgstr "_Кумак" #: ../data/app-menu.ui.h:2 msgid "_About" msgstr "_Дар бораи барнома" #: ../data/app-menu.ui.h:3 msgid "_Quit" msgstr "_Хуруҷ" #: ../data/PlayerToolbar.ui.h:1 msgid "Shuffle" msgstr "Тасодуфӣ" #: ../data/PlayerToolbar.ui.h:2 msgid "Repeat All" msgstr "Ҳамаро такрор кардан" #: ../data/PlayerToolbar.ui.h:3 msgid "Repeat Song" msgstr "Такрор кардани суруд" #: ../data/PlayerToolbar.ui.h:4 msgid "Shuffle/Repeat Off" msgstr "Хомӯш кардани тасодуфӣ/такрорӣ" #: ../data/NoMusic.ui.h:1 msgid "No music found" msgstr "Ягон мусиқӣ ёфт нашуд" #: ../data/NoMusic.ui.h:3 #, no-c-format msgid "The contents of your %s will appear here." msgstr "Муҳтавои %s дар ин ҷо намоиш дода мешавад." #: ../data/headerbar.ui.h:1 msgid "Select All" msgstr "Ҳамаро интихоб кардан" #: ../data/headerbar.ui.h:2 msgid "Select None" msgstr "Ҳеҷ чизро интихоб накардан" #: ../data/headerbar.ui.h:4 msgid "Search" msgstr "Ҷустуҷӯ" #: ../data/headerbar.ui.h:5 ../data/PlaylistDialog.ui.h:3 msgid "Select" msgstr "Интихоб кардан" #: ../data/headerbar.ui.h:6 ../data/PlaylistDialog.ui.h:2 msgid "Cancel" msgstr "Бекор кардан" #: ../data/headerbar.ui.h:7 msgid "Back" msgstr "Ба қафо" #: ../data/SelectionToolbar.ui.h:1 msgid "Add to Playlist" msgstr "Илова кардан ба феҳристи пахш" #: ../data/SelectionToolbar.ui.h:2 msgid "Remove from Playlist" msgstr "Тоза кардан аз феҳристи пахш" #: ../data/PlaylistControls.ui.h:1 msgid "_Play" msgstr "_Пахш кардан" #: ../data/PlaylistControls.ui.h:2 msgid "_Delete" msgstr "_Нест кардан" #: ../data/PlaylistControls.ui.h:3 msgid "Playlist Name" msgstr "Номи феҳристи пахш" #: ../data/PlaylistDialog.ui.h:1 msgid "Select Playlist" msgstr "Интихоби феҳристи пахш" #~ msgid "" #~ "No Music found!\n" #~ " Put some files into the folder %s" #~ msgstr "" #~ "Ягон мусиқӣ ёфт нашуд!\n" #~ "Баъзе файлҳоро ба ҷузвдони %s гузоред" #~ msgid "Load More" #~ msgstr "Бештар бор кардан" #~ msgid "_New Playlist" #~ msgstr "_Феҳристи пахши нав" #~ msgid "Selected %d items" #~ msgstr "%d объект интихоб шудаанд" #~| msgid "Songs" #~ msgid "%d Songs" #~ msgstr "%d суруд" #~ msgid "Now _Playing" #~ msgstr "_Ҳозир пахш мекунад" 07070100000115000081A400000000000000000000000166968E4E00005DFF000000000000000000000000000000000000001A00000000gnome-music-46.1/po/th.po# Thai translation for gnome-music. # Copyright (C) 2016 gnome-music's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-music package. # FIRST AUTHOR , YEAR. # Akom Chotiphantawanon , 2016. # msgid "" msgstr "" "Project-Id-Version: gnome-music master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-music/issues\n" "POT-Creation-Date: 2023-09-16 19:54+0000\n" "PO-Revision-Date: 2023-12-13 03:45+0700\n" "Last-Translator: Akom Chotiphantawanon \n" "Language-Team: ไทย \n" "Language: th\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Poedit 3.4.1\n" #: data/org.gnome.Music.appdata.xml.in.in:6 data/org.gnome.Music.desktop.in.in:3 #: gnomemusic/about.py:243 gnomemusic/application.py:61 gnomemusic/window.py:71 msgid "Music" msgstr "เพลง" #: data/org.gnome.Music.appdata.xml.in.in:7 data/org.gnome.Music.desktop.in.in:5 msgid "Play and organize your music collection" msgstr "เล่นและจัดการกับเพลงของคุณ" #: data/org.gnome.Music.appdata.xml.in.in:9 msgid "An easy and pleasant way to play your music." msgstr "" #: data/org.gnome.Music.appdata.xml.in.in:12 msgid "" "Find tracks in your local collection, use automatically generated playlists or curate a fresh one." msgstr "" #: data/org.gnome.Music.appdata.xml.in.in:187 msgid "The GNOME Music developers" msgstr "The GNOME Music developers" #: data/org.gnome.Music.desktop.in.in:4 msgid "Music Player" msgstr "ตัวเล่นเพลง" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Music.desktop.in.in:13 msgid "Music;Player;" msgstr "เพลง;ตัวเล่น;" #: data/org.gnome.Music.gschema.xml:12 msgid "Window size" msgstr "ขนาดหน้าต่าง" #: data/org.gnome.Music.gschema.xml:13 msgid "Window size (width and height)." msgstr "ขนาดหน้าต่าง (ความกว้างและความสูง)" #: data/org.gnome.Music.gschema.xml:17 msgid "Window maximized" msgstr "หน้าต่างขยายแผ่อยู่" #: data/org.gnome.Music.gschema.xml:18 msgid "Window maximized state." msgstr "สถานะขยายแผ่ของหน้าต่าง" #: data/org.gnome.Music.gschema.xml:22 msgid "Playback repeat mode" msgstr "โหมดเล่นเพลงซ้ำ" #. Translators: Don't translate allowed values, just the description in the brackets #: data/org.gnome.Music.gschema.xml:24 msgid "" "Value identifies whether to repeat or randomize playback through the collection. Allowed values " "are: “none” (repeat and shuffle are off), “song” (repeat current song), “all” (repeat playlist, " "no shuffle), “shuffle” (shuffle playlist, presumes repeat all)." msgstr "" "ค่าซึ่งบ่งชี้ว่าจะเล่นเพลงซ้ำหรือสุ่มตลอดชุด ค่าที่อนุญาตคือ: “none” (ปิดซ้ำและสลับ), “song” (ซ้ำเพลงปัจจุบัน), " "“all” (ซ้ำรายการเล่น, ไม่สลับ), “shuffle” (สลับรายการเล่น, ซ้ำทั้งหมด)" #: data/org.gnome.Music.gschema.xml:28 msgid "Enable ReplayGain" msgstr "เปิดใช้ ReplayGain" #: data/org.gnome.Music.gschema.xml:29 msgid "Enables or disables ReplayGain for albums" msgstr "เปิดหรือปิดใช้ ReplayGain สำหรับอัลบั้ม" #: data/org.gnome.Music.gschema.xml:33 msgid "Inhibit system suspend" msgstr "" #: data/org.gnome.Music.gschema.xml:34 msgid "Enables or disables inhibiting system suspend while playing music" msgstr "" #: data/org.gnome.Music.gschema.xml:38 msgid "Report music history to Last.fm" msgstr "" #: data/org.gnome.Music.gschema.xml:39 msgid "Enables or disables sending scrobbles and the “currently playing” info to Last.fm." msgstr "" #: data/ui/AlbumWidget.ui:84 data/ui/PlayerToolbar.ui:87 data/ui/PlaylistControls.ui:101 #: gnomemusic/widgets/playertoolbar.py:170 msgid "Play" msgstr "เล่น" #: data/ui/AlbumWidget.ui:130 data/ui/PlaylistControls.ui:5 data/ui/SongWidgetMenu.ui:11 msgid "_Play" msgstr "เ_ล่น" #: data/ui/AlbumWidget.ui:134 msgid "Add to _Favorite Songs" msgstr "เพิ่มในเพลงโ_ปรด" #: data/ui/AlbumWidget.ui:138 data/ui/SongWidgetMenu.ui:15 msgid "_Add to Playlist…" msgstr "เ_พิ่มในรายการเล่น…" #: data/ui/AppMenu.ui:23 data/ui/LastfmDialog.ui:8 msgid "Last.fm Account" msgstr "บัญชี Last.fm" #: data/ui/AppMenu.ui:36 msgid "Report Music Listening" msgstr "รายงานการฟังเพลง" #: data/ui/AppMenu.ui:58 msgid "_Keyboard Shortcuts" msgstr "ปุ่ม_ลัด" #: data/ui/AppMenu.ui:68 msgid "_Help" msgstr "_วิธีใช้" #: data/ui/AppMenu.ui:78 msgid "_About Music" msgstr "เ_กี่ยวกับเพลง" #: data/ui/EmptyView.ui:30 msgid "Welcome to Music" msgstr "ยินดีต้อนรับสู่เพลง" #: data/ui/HeaderBar.ui:17 msgid "Menu" msgstr "เมนู" #: data/ui/HeaderBar.ui:25 data/ui/SearchHeaderBar.ui:15 msgid "Select" msgstr "เลือก" #: data/ui/HeaderBar.ui:31 data/ui/PlaylistDialog.ui:213 data/ui/SearchHeaderBar.ui:20 msgid "_Cancel" msgstr "_ยกเลิก" #: data/ui/HeaderBar.ui:43 data/ui/SearchHeaderBar.ui:32 msgid "Search" msgstr "ค้นหา" #: data/ui/HeaderBar.ui:51 msgid "Back" msgstr "กลับ" #: data/ui/help-overlay.ui:11 msgctxt "shortcut window" msgid "General" msgstr "ทั่วไป" #: data/ui/help-overlay.ui:14 msgctxt "shortcut window" msgid "Close window" msgstr "ปิดหน้าต่าง" #: data/ui/help-overlay.ui:20 msgctxt "shortcut window" msgid "Search" msgstr "ค้นหา" #: data/ui/help-overlay.ui:26 msgctxt "shortcut window" msgid "Help" msgstr "วิธีใช้" #: data/ui/help-overlay.ui:32 msgctxt "shortcut window" msgid "Shortcuts" msgstr "ปุ่มลัด" #: data/ui/help-overlay.ui:40 msgctxt "shortcut window" msgid "Playback" msgstr "เล่นเพลง" #: data/ui/help-overlay.ui:43 msgctxt "shortcut window" msgid "Play/Pause" msgstr "เล่น/พัก" #: data/ui/help-overlay.ui:49 msgctxt "shortcut window" msgid "Next song" msgstr "เพลงถัดไป" #: data/ui/help-overlay.ui:55 msgctxt "shortcut window" msgid "Previous song" msgstr "เพลงก่อนหน้า" #: data/ui/help-overlay.ui:61 msgctxt "shortcut window" msgid "Toggle repeat" msgstr "สลับการซ้ำ" #: data/ui/help-overlay.ui:67 msgctxt "shortcut window" msgid "Toggle shuffle" msgstr "สลับ" #: data/ui/help-overlay.ui:75 msgctxt "shortcut window" msgid "Navigation" msgstr "ท่องดู" #: data/ui/help-overlay.ui:78 msgctxt "shortcut window" msgid "Go to Albums" msgstr "ไปยังอัลบั้ม" #: data/ui/help-overlay.ui:84 msgctxt "shortcut window" msgid "Go to Artists" msgstr "ไปยังศิลปิน" #: data/ui/help-overlay.ui:90 msgctxt "shortcut window" msgid "Go to Songs" msgstr "ไปยังเพลง" #: data/ui/help-overlay.ui:96 msgctxt "shortcut window" msgid "Go to Playlists" msgstr "ไปยังรายการเล่น" #: data/ui/help-overlay.ui:102 msgctxt "shortcut window" msgid "Go back" msgstr "ย้อนกลับ" #: data/ui/LastfmDialog.ui:21 msgid "" "Last.fm is a music discovery service that gives you personalised recommendations based on the " "music you listen to." msgstr "" #: data/ui/LastfmDialog.ui:31 gnomemusic/widgets/lastfmdialog.py:57 msgid "Music Reporting Not Setup" msgstr "ไม่ได้ตั้งค่าการรายงานเพลง" #: data/ui/LastfmDialog.ui:44 gnomemusic/widgets/lastfmdialog.py:60 msgid "Login to your Last.fm account to report your music listening." msgstr "เข้าระบบบัญชี Last.fm ของคุณเพื่อรายงานเกี่ยวกับการฟังเพลงของคุณ" #: data/ui/LastfmDialog.ui:55 gnomemusic/widgets/lastfmdialog.py:58 msgid "Login" msgstr "เข้าระบบ" #: data/ui/PlayerToolbar.ui:74 msgid "Previous" msgstr "ก่อนหน้า" #: data/ui/PlayerToolbar.ui:106 msgid "Next" msgstr "ถัดไป" #: data/ui/PlaylistControls.ui:9 msgid "_Delete" msgstr "_ลบ" #: data/ui/PlaylistControls.ui:13 msgid "_Rename…" msgstr "เ_ปลี่ยนชื่อ…" #: data/ui/PlaylistControls.ui:28 msgid "Playlist Name" msgstr "ชื่อรายการเล่น" #: data/ui/PlaylistControls.ui:62 msgid "_Done" msgstr "เ_สร็จ" #: data/ui/PlaylistDialog.ui:52 msgid "Enter a name for your first playlist" msgstr "ป้อนชื่อให้กับรายการเล่นแรกของคุณ" #: data/ui/PlaylistDialog.ui:77 msgid "C_reate" msgstr "_สร้าง" #: data/ui/PlaylistDialog.ui:146 msgid "New Playlist…" msgstr "รายการเล่นใหม่…" #: data/ui/PlaylistDialog.ui:161 msgid "Add" msgstr "เพิ่ม" #: data/ui/PlaylistDialog.ui:202 msgid "Add to Playlist" msgstr "เพิ่มในรายการเล่น" #: data/ui/PlaylistDialog.ui:222 msgid "_Add" msgstr "เ_พิ่ม" #: data/ui/SearchView.ui:33 gnomemusic/views/artistsview.py:51 msgid "Artists" msgstr "ศิลปิน" #: data/ui/SearchView.ui:42 data/ui/SearchView.ui:84 msgid "View All" msgstr "ดูทั้งหมด" #: data/ui/SearchView.ui:75 gnomemusic/views/albumsview.py:56 msgid "Albums" msgstr "อัลบั้ม" #: data/ui/SearchView.ui:117 gnomemusic/views/songsview.py:52 msgid "Songs" msgstr "เพลง" #: data/ui/SelectionBarMenuButton.ui:7 msgid "Select All" msgstr "เลือกทั้งหมด" #: data/ui/SelectionBarMenuButton.ui:11 msgid "Select None" msgstr "เลือกไม่มี" #: data/ui/SelectionBarMenuButton.ui:19 gnomemusic/widgets/headerbar.py:69 msgid "Click on items to select them" msgstr "คลิกที่รายการเพื่อเลือก" #: data/ui/SelectionToolbar.ui:8 msgid "_Add to Playlist" msgstr "เ_พิ่มในรายการเล่น" #: data/ui/SongWidgetMenu.ui:19 msgid "_Remove from Playlist" msgstr "_ลบจากรายการเล่น" #: gnomemusic/about.py:245 msgid "The GNOME Project" msgstr "" #: gnomemusic/about.py:249 msgid "translator-credits" msgstr "" #: gnomemusic/about.py:253 #, fuzzy #| msgid "Copyright © 2016 GNOME Music Developers" msgid "Copyright The GNOME Music Developers" msgstr "Copyright © 2016 GNOME Music Developers" #: gnomemusic/about.py:256 msgid "Translated by" msgstr "" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:894 msgid "Most Played" msgstr "เล่นมากที่สุด" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:948 msgid "Never Played" msgstr "ไม่เคยเล่น" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1001 msgid "Recently Played" msgstr "เล่นล่าสุด" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1064 msgid "Recently Added" msgstr "เพิ่มล่าสุด" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1127 msgid "Favorite Songs" msgstr "เพลงโปรด" #: gnomemusic/gstplayer.py:408 msgid "Unable to play the file" msgstr "ไม่สามารถเล่นไฟล์ได้" #: gnomemusic/gstplayer.py:414 msgid "_Find in {}" msgstr "_หาใน {}" #. TRANSLATORS: separator for two codecs #: gnomemusic/gstplayer.py:424 msgid " and " msgstr " และ " #. TRANSLATORS: separator for a list of codecs #: gnomemusic/gstplayer.py:427 msgid ", " msgstr ", " #: gnomemusic/gstplayer.py:429 msgid "{} is required to play the file, but is not installed." msgid_plural "{} are required to play the file, but are not installed." msgstr[0] "{} ต้องใช้เพื่อเล่นไฟล์ แต่ไม่ได้ติดตั้งไว้" #: gnomemusic/inhibitsuspend.py:63 msgid "Playing music" msgstr "กำลังเล่นเพลง" #. Translators: "shuffle" causes tracks to play in random order. #: gnomemusic/player.py:44 msgid "Shuffle/Repeat Off" msgstr "ปิดสลับ/ซ้ำ" #: gnomemusic/player.py:45 msgid "Repeat Song" msgstr "ซ้ำเพลง" #: gnomemusic/player.py:46 msgid "Repeat All" msgstr "ซ้ำทั้งหมด" #: gnomemusic/player.py:47 msgid "Shuffle" msgstr "สลับ" #: gnomemusic/playlisttoast.py:55 msgid "Playlist {} removed" msgstr "ลบรายการเล่น {} แล้ว" #: gnomemusic/playlisttoast.py:56 gnomemusic/songtoast.py:65 msgid "Undo" msgstr "เรียกคืน" #: gnomemusic/songtoast.py:64 msgid "{} removed from {}" msgstr "ลบ {} จาก {} แล้ว" #: gnomemusic/utils.py:92 msgid "Unknown album" msgstr "ไม่มีชื่ออัลบั้ม" #: gnomemusic/utils.py:113 msgid "Unknown Artist" msgstr "ไม่มีข้อมูลศิลปิน" #: gnomemusic/views/emptyview.py:65 msgid "Your XDG Music directory is not set." msgstr "ไม่ได้ตั้งไดเรกทอรี XDG Music ของคุณไว้" #: gnomemusic/views/emptyview.py:72 msgid "Music Folder" msgstr "โฟลเดอร์เพลง" #. TRANSLATORS: This is a label to display a link to open user's music #. folder. {} will be replaced with the translated text 'Music folder' #: gnomemusic/views/emptyview.py:76 msgid "The contents of your {} will appear here." msgstr "เนื้อหาใน{}ของคุณจะแสดงที่นี่" #: gnomemusic/views/emptyview.py:124 msgid "No Music Found" msgstr "ไม่พบเพลง" #: gnomemusic/views/emptyview.py:125 msgid "Try a Different Search" msgstr "ลองค้นหาเพลงอื่น" #: gnomemusic/views/emptyview.py:129 msgid "GNOME Music could not connect to Tracker." msgstr "GNOME เพลงไม่สามารถเชื่อมต่อกับ Tracker ได้" #: gnomemusic/views/emptyview.py:131 msgid "Your music files cannot be indexed without Tracker running." msgstr "" #: gnomemusic/views/emptyview.py:137 msgid "Your system Tracker version seems outdated." msgstr "" #: gnomemusic/views/emptyview.py:139 msgid "Music needs Tracker version 3.0.0 or higher." msgstr "" #: gnomemusic/views/playlistsview.py:45 msgid "Playlists" msgstr "รายการเล่น" #: gnomemusic/views/searchview.py:304 msgid "Artists Results" msgstr "ผลลัพธ์ศิลปิน" #: gnomemusic/views/searchview.py:318 msgid "Albums Results" msgstr "ผลลัพธ์อัลบั้ม" #: gnomemusic/widgets/albumwidget.py:245 msgid "{} minute" msgid_plural "{} minutes" msgstr[0] "{} นาที" #: gnomemusic/widgets/discbox.py:75 msgid "Disc {}" msgstr "Disc {}" #: gnomemusic/widgets/headerbar.py:66 msgid "Selected {} song" msgid_plural "Selected {} songs" msgstr[0] "เลือกอยู่ {} เพลง" #: gnomemusic/widgets/lastfmdialog.py:64 msgid "Your music listening is reported to Last.fm." msgstr "" #: gnomemusic/widgets/lastfmdialog.py:66 msgid "Your music listening is not reported to Last.fm." msgstr "" #. TRANSLATORS: displays the username of the Last.fm account #: gnomemusic/widgets/lastfmdialog.py:70 msgid "Logged in as {}" msgstr "เข้าระบบอยู่ในชื่อ {}" #: gnomemusic/widgets/lastfmdialog.py:71 msgid "Configure" msgstr "ตั้งค่า" #: gnomemusic/widgets/playertoolbar.py:167 msgid "Pause" msgstr "พัก" #: gnomemusic/widgets/playlistcontrols.py:130 msgid "{} Song" msgid_plural "{} Songs" msgstr[0] "{} เพลง" #: gnomemusic/widgets/searchheaderbar.py:66 msgid "Search songs, artists, albums and playlists" msgstr "" #~ msgid "Window position" #~ msgstr "ตำแหน่งหน้าต่าง" #~ msgid "Window position (x and y)." #~ msgstr "ตำแหน่งหน้าต่าง (x และ y)" #~ msgid "Search mode" #~ msgstr "โหมดค้นหา" #~ msgid "If true, the search bar is shown." #~ msgstr "ถ้าเลือก แถบค้นหาจะแสดง" #~ msgid "Notifications mode" #~ msgstr "โหมดการแจ้งเหตุ" #~ msgid "Enables or disables playback notifications" #~ msgstr "เปิดหรือปิดใช้การแจ้งเล่นเพลง" #~ msgid "Inital state has been displayed" #~ msgstr "แสดงสถานะเริ่มต้น" #~ msgid "Set to true when initial state has been displayed" #~ msgstr "กำหนดเป็นจริงเมื่อแสดงสถานะเริ่มต้น" #~ msgid "GNOME Music" #~ msgstr "เพลง GNOME" #~ msgid "Music is the new GNOME music playing application." #~ msgstr "Music เป็นโปรแกรมใหม่เล่นเพลงของ GNOME" #~ msgid "the|a|an" #~ msgstr "the|a|an" #~ msgid "All" #~ msgstr "ทั้งหมด" #~ msgid "Artist" #~ msgstr "ศิลปิน" #~ msgid "Album" #~ msgstr "อัลบั้ม" #~ msgid "Track Title" #~ msgstr "ชื่อเพลง" #~ msgid "Local" #~ msgstr "ในเครื่อง" #~ msgid "Sources" #~ msgstr "แหล่ง" #~ msgid "Match" #~ msgstr "ตรงกัน" #~ msgid "Untitled" #~ msgstr "ไม่มีชื่อ" #, python-format #~ msgid "Selected %d item" #~ msgid_plural "Selected %d items" #~ msgstr[0] "เลือกไว้ %d รายการ" #~ msgid "Hey DJ" #~ msgstr "สวัสดี นักจัดรายการ" #, python-format #~ msgid "%d min" #~ msgstr "%d นาที" #~ msgid "Empty" #~ msgstr "ว่าง" #~ msgid "Loading" #~ msgstr "กำลังโหลด" #~ msgid "A music player and management application for GNOME." #~ msgstr "ตัวเล่นเพลงและโปรแกรมจัดการสำหรับ GNOME" #~ msgid "Visit GNOME Music website" #~ msgstr "เยี่ยมชมเว็บไซต์เพลง GNOME" #~ msgid "" #~ "GNOME Music 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.\n" #~ "\n" #~ "GNOME Music 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.\n" #~ "\n" #~ "You should have received a copy of the GNU General Public License along with GNOME Music; if " #~ "not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA " #~ "02110-1301 USA.\n" #~ "\n" #~ "The GNOME Music authors hereby grant permission for non-GPL compatible GStreamer plugins to be " #~ "used and distributed together with GStreamer and GNOME Music. This permission is above and " #~ "beyond the permissions granted by the GPL license by which GNOME Music is covered. If you " #~ "modify this code, you may extend this exception to your version of the code, but you are not " #~ "obligated to do so. If you do not wish to do so, delete this exception statement from your " #~ "version.\n" #~ "\n" #~ "\"Magic of the vinyl\" by Sami Pyylampi image is licensed by CC-BY-SA 2.0 https://www.flickr." #~ "com/photos/_spy_/12270839403\n" #~ msgstr "" #~ "\\\"เพลง GNOME\\\" เป็นซอฟต์แวร์เสรี คุณสามารถแจกจ่ายต่อ และ/หรือ แก้ไขโปรแกรมได้ ภายใต้เงื่อนไขของ GNU " #~ "General Public License ที่เผยแพร่โดยมูลนิธิซอฟต์แวร์เสรี ไม่ว่าจะเป็นสัญญาอนุญาตรุ่นที่ 2 หรือรุ่นถัดมา " #~ "(ตามแต่คุณจะเลือก)\n" #~ "\n" #~ "\\\"เพลง GNOME\\\" เผยแพร่ด้วยความหวังว่าโปรแกรมจะมีประโยชน์ แต่ _ไม่มีการรับประกันใดๆ_ ไม่มีแม้การรับประกัน " #~ "_อรรถประโยชน์เชิงพาณิชย์_ หรือ _ความเหมาะสมสำหรับวัตถุประสงค์เฉพาะกิจใดๆ_ กรุณาอ่าน GNU General Public " #~ "License เพื่อดูรายละเอียดเพิ่มเติม\n" #~ "\n" #~ "คุณควรจะได้รับสำเนาของ GNU General Public License มาพร้อมกับ \\\"เพลง GNOME\\\" ถ้าคุณไม่ได้รับ " #~ "กรุณาติดต่อไปที่ Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA " #~ "02110-1301 USA\n" #~ "\n" #~ "ผู้เขียน \\\"เพลง GNOME\\\" อนุญาตสำหรับปลั๊กอิน GStreamer ที่ไม่เข้ากันกับ non-GPL ที่จะใช้ และเผยแพร่รวมกับ " #~ "GStreamer และ \\\"เพลง GNOME\\\" การอนุญาตข้างบนนี้และการอนุญาตที่มากกว่าโดยสัญญาอนุญาต GPL ซึ่ง \\\"เพลง " #~ "GNOME\\\" ครอบคลุมแล้ว ถ้าคุณแก้ไขโค้ดนี้ คุณจะขยายข้อยกเว้นเป็นรุ่นของคุณของโค้ด แต่คุณไม่ผูกมัดที่จะทำ " #~ "ถ้าคุณไม่ต้องการที่จะทำ ลบข้อความยกเว้นนี้จากรุ่นของคุณ\n" #~ "\n" #~ "\"Magic of the vinyl\" โดย Sami Pyylampi image โดยสัญญาอนุญาต CC-BY-SA 2.0 https://www.flickr." #~ "com/photos/_spy_/12270839403\n" #~ msgid "Released" #~ msgstr "รุ่น" #~ msgid "Running Length" #~ msgstr "กำลังทำงานความยาว" #~ msgid "_Quit" #~ msgstr "_ออก" #~ msgid "Max chars to display in track name on Artist view" #~ msgstr "อักขระสูงสุดที่จะแสดงในชื่อเพลงในมุมมองศิลปิน" #~ msgid "" #~ "This setting modifies the amount of chars for track title on Artist view before its been " #~ "ellipsized. Set this to -1 to disable" #~ msgstr "ค่าตั้งนี้จะเปลี่ยนจำนวนของอักขระสำหรับชื่อเพลงในมุมมองศิลปินก่อน ellipsize กำหนดค่านี้เป็น -1 เพื่อปิดใช้" #~ msgid "the a an" #~ msgstr "the a an" #~ msgid "All Artists" #~ msgstr "ศิลปินทั้งหมด" 07070100000116000081A400000000000000000000000166968E4E0000447D000000000000000000000000000000000000001A00000000gnome-music-46.1/po/tr.po# Turkish translation for gnome-music. # Copyright (C) 2013-2023 gnome-music's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-music package. # # Gökhan Gurbetoğlu , 2014, 2015. # Necdet Yücel , 2014, 2015. # Muhammet Kara , 2013, 2014, 2015. # Osman Karagöz , 2017. # Furkan Tokaç , 2017. # Doğa Deniz Arıcı , 2018. # Sabri Ünal , 2019-2020, 2023-2024. # Emin Tufan Çetin , 2013-2022, 2024. # msgid "" msgstr "" "Project-Id-Version: gnome-music master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-music/issues\n" "POT-Creation-Date: 2024-02-12 14:11+0000\n" "PO-Revision-Date: 2024-02-13 18:01+0300\n" "Last-Translator: Emin Tufan Çetin \n" "Language-Team: Turkish \n" "Language: tr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Poedit 3.4.2\n" "X-POOTLE-MTIME: 1433363480.000000\n" #: data/org.gnome.Music.appdata.xml.in.in:6 #: data/org.gnome.Music.desktop.in.in:3 data/ui/StatusNavigationPage.ui:4 #: gnomemusic/about.py:138 gnomemusic/application.py:59 gnomemusic/window.py:65 msgid "Music" msgstr "Müzik" #: data/org.gnome.Music.appdata.xml.in.in:7 #: data/org.gnome.Music.desktop.in.in:5 msgid "Play and organize your music collection" msgstr "Müzik derleminizi çalın ve yönetin" #: data/org.gnome.Music.appdata.xml.in.in:9 msgid "An easy and pleasant way to play your music." msgstr "Müziğinizi dinlemenin kolay ve hoş yolu." #: data/org.gnome.Music.appdata.xml.in.in:12 msgid "" "Find tracks in your local collection, use automatically generated playlists " "or curate a fresh one." msgstr "" "Yerel derleminizdeki parçaları bulun, kendiliğinden oluşturulan çalma " "listelerini kullanın veya yenisini oluşturun." #. developer_name tag deprecated with Appstream 1.0 #: data/org.gnome.Music.appdata.xml.in.in:188 msgid "The GNOME Music developers" msgstr "GNOME Müzik Geliştiricileri" #: data/org.gnome.Music.desktop.in.in:4 msgid "Music Player" msgstr "Müzik Çalar" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Music.desktop.in.in:13 msgid "Music;Player;" msgstr "Müzik;Çalar;Çalıcı;" #: data/org.gnome.Music.gschema.xml:12 msgid "Window size" msgstr "Pencere boyutu" #: data/org.gnome.Music.gschema.xml:13 msgid "Window size (width and height)." msgstr "Pencere boyutu (genişlik ve yükseklik)." #: data/org.gnome.Music.gschema.xml:17 msgid "Window maximized" msgstr "Pencere büyültüldüğünde" #: data/org.gnome.Music.gschema.xml:18 msgid "Window maximized state." msgstr "Pencerenin büyütülmüş durumu." #: data/org.gnome.Music.gschema.xml:22 msgid "Playback repeat mode" msgstr "Çalma yineleme kipi" #. Translators: Don't translate allowed values, just the description in the brackets #: data/org.gnome.Music.gschema.xml:24 msgid "" "Value identifies whether to repeat or randomize playback through the " "collection. Allowed values are: “none” (repeat and shuffle are off), " "“song” (repeat current song), “all” (repeat playlist, no shuffle), " "“shuffle” (shuffle playlist, presumes repeat all)." msgstr "" "Bu değer, derlemdeki parçaların yinelemeli mi yoksa karışık mı çalınacağını " "belirtir. İzin verilen değerler şunlardır: “none” (yineleme ve karıştırma " "kapalı), “song” (geçerli şarkıyı yinele), “all” (çalma listesini yinele, " "karıştırma), “shuffle” (çalma listesini karıştır, tümü yinelenebilir)." #: data/org.gnome.Music.gschema.xml:28 data/ui/PreferencesDialog.ui:27 msgid "Enable ReplayGain" msgstr "ReplayGain’i etkinleştir" #: data/org.gnome.Music.gschema.xml:29 msgid "Enables or disables ReplayGain for albums" msgstr "Albümler için ReplayGain’i etkinleştirir ya da devre dışı bırakır" #: data/org.gnome.Music.gschema.xml:33 msgid "Inhibit system suspend" msgstr "Sistemin askıya alınmasını önle" #: data/org.gnome.Music.gschema.xml:34 msgid "Enables or disables inhibiting system suspend while playing music" msgstr "" "Müzik çalarken sistemin askıya alınmasını önlemeyi etkinleştir veya devre " "dışı bırak" #: data/ui/AlbumsSearchNavigationPage.ui:5 data/ui/SearchView.ui:98 #: gnomemusic/views/albumsview.py:52 msgid "Albums" msgstr "Albümler" #: data/ui/AlbumWidget.ui:84 data/ui/PlayerToolbar.ui:87 #: data/ui/PlaylistControls.ui:101 gnomemusic/widgets/playertoolbar.py:176 msgid "Play" msgstr "Çal" #: data/ui/AlbumWidget.ui:130 data/ui/PlaylistControls.ui:5 #: data/ui/SongWidgetMenu.ui:11 msgid "_Play" msgstr "_Çal" #: data/ui/AlbumWidget.ui:134 msgid "Add to _Favorite Songs" msgstr "_Gözde Şarkılara Ekle" #: data/ui/AlbumWidget.ui:138 data/ui/SongWidgetMenu.ui:15 msgid "_Add to Playlist…" msgstr "Çalma Listesine _Ekle…" #: data/ui/ArtistsSearchNavigationPage.ui:5 data/ui/SearchView.ui:41 #: gnomemusic/views/artistsview.py:51 msgid "Artists" msgstr "Sanatçılar" #: data/ui/HeaderBar.ui:14 msgid "Menu" msgstr "Menü" #: data/ui/HeaderBar.ui:22 data/ui/SearchHeaderBar.ui:12 msgid "Search" msgstr "Ara" #: data/ui/HeaderBar.ui:31 data/ui/PreferencesDialog.ui:4 msgid "Preferences" msgstr "Tercihler" #: data/ui/HeaderBar.ui:35 msgid "Keyboard Shortcuts" msgstr "Klavye Kısayolları" #: data/ui/HeaderBar.ui:39 msgid "Help" msgstr "Yardım" #: data/ui/HeaderBar.ui:43 msgid "About Music" msgstr "Müzik Hakkında" #: data/ui/help-overlay.ui:11 msgctxt "shortcut window" msgid "General" msgstr "Genel" #: data/ui/help-overlay.ui:14 msgctxt "shortcut window" msgid "Close window" msgstr "Pencereyi kapat" #: data/ui/help-overlay.ui:20 msgctxt "shortcut window" msgid "Search" msgstr "Ara" #: data/ui/help-overlay.ui:26 msgctxt "shortcut window" msgid "Help" msgstr "Yardım" #: data/ui/help-overlay.ui:32 msgctxt "shortcut window" msgid "Shortcuts" msgstr "Kısayollar" #: data/ui/help-overlay.ui:40 msgctxt "shortcut window" msgid "Playback" msgstr "Kayıttan yürüt" #: data/ui/help-overlay.ui:43 msgctxt "shortcut window" msgid "Play/Pause" msgstr "Çal/Duraklat" #: data/ui/help-overlay.ui:49 msgctxt "shortcut window" msgid "Next song" msgstr "Sonraki şarkı" #: data/ui/help-overlay.ui:55 msgctxt "shortcut window" msgid "Previous song" msgstr "Önceki şarkı" #: data/ui/help-overlay.ui:61 msgctxt "shortcut window" msgid "Toggle repeat" msgstr "Yinelemeyi aç/kapa" #: data/ui/help-overlay.ui:67 msgctxt "shortcut window" msgid "Toggle shuffle" msgstr "Karıştırmayı aç/kapa" #: data/ui/help-overlay.ui:75 msgctxt "shortcut window" msgid "Navigation" msgstr "Gezinme" #: data/ui/help-overlay.ui:78 msgctxt "shortcut window" msgid "Go to Albums" msgstr "Albümlere git" #: data/ui/help-overlay.ui:84 msgctxt "shortcut window" msgid "Go to Artists" msgstr "Sanatçılara git" #: data/ui/help-overlay.ui:90 msgctxt "shortcut window" msgid "Go to Songs" msgstr "Şarkılara git" #: data/ui/help-overlay.ui:96 msgctxt "shortcut window" msgid "Go to Playlists" msgstr "Çalma Listelerine git" #: data/ui/help-overlay.ui:102 msgctxt "shortcut window" msgid "Go back" msgstr "Geri git" #: data/ui/PlayerToolbar.ui:74 msgid "Previous" msgstr "Önceki" #: data/ui/PlayerToolbar.ui:106 msgid "Next" msgstr "Sonraki" #: data/ui/PlaylistControls.ui:9 msgid "_Delete" msgstr "_Sil" #: data/ui/PlaylistControls.ui:13 msgid "_Rename…" msgstr "_Yeniden Adlandır…" #: data/ui/PlaylistControls.ui:28 msgid "Playlist Name" msgstr "Çalma Listesi Adı" #: data/ui/PlaylistControls.ui:62 msgid "_Done" msgstr "_Bitti" #: data/ui/PlaylistDialog.ui:16 msgid "Add to Playlist" msgstr "Çalma Listesine Ekle" #: data/ui/PlaylistDialog.ui:27 msgid "_Cancel" msgstr "İ_ptal" #: data/ui/PlaylistDialog.ui:36 msgid "_Add" msgstr "_Ekle" #: data/ui/PlaylistDialog.ui:91 msgid "Enter a name for your first playlist" msgstr "İlk çalma listeniz için ad girin" #: data/ui/PlaylistDialog.ui:116 msgid "C_reate" msgstr "Oluştu_r" #: data/ui/PlaylistDialog.ui:177 msgid "New Playlist…" msgstr "Yeni Çalma Listesi…" #: data/ui/PlaylistDialog.ui:189 msgid "Add" msgstr "Ekle" #: data/ui/PreferencesDialog.ui:9 msgid "Player Settings" msgstr "Oynatıcı Ayarları" #: data/ui/PreferencesDialog.ui:12 msgid "Repeat Mode" msgstr "Yineleme Kipi" #: data/ui/PreferencesDialog.ui:16 msgid "None" msgstr "Hiçbiri" #: data/ui/PreferencesDialog.ui:17 msgid "Song" msgstr "Şarkı" #: data/ui/PreferencesDialog.ui:18 msgid "All" msgstr "Tümü" #: data/ui/PreferencesDialog.ui:19 gnomemusic/player.py:51 msgid "Shuffle" msgstr "Karıştır" #: data/ui/PreferencesDialog.ui:28 msgid "Balance loudness between songs if ReplayGain metadata is found" msgstr "" "ReplayGain üst verisi bulunursa şarkılar arasındaki ses ayrımını dengele" #: data/ui/PreferencesDialog.ui:35 msgid "Power Settings" msgstr "Güç Ayarları" #: data/ui/PreferencesDialog.ui:38 msgid "Inhibit Suspend" msgstr "Askıya Alınmayı Önle" #: data/ui/PreferencesDialog.ui:39 msgid "Only while playing" msgstr "Yalnızca çalarken" #: data/ui/SearchView.ui:55 data/ui/SearchView.ui:112 msgid "View All" msgstr "Tümünü Görüntüle" #: data/ui/SearchView.ui:154 msgid "Songs" msgstr "Şarkılar" #: data/ui/SongWidgetMenu.ui:19 msgid "_Remove from Playlist" msgstr "Çalma Listesinden _Kaldır" #: data/ui/StatusNavigationPage.ui:36 msgid "Welcome to Music" msgstr "Müzikʼe Hoş Geldiniz" #: gnomemusic/about.py:140 msgid "The GNOME Project" msgstr "GNOME Projesi" #. Translators should localize the following string which #. will be displayed at the bottom of the about box to give #. credit to the translator(s). #: gnomemusic/about.py:146 msgid "translator-credits" msgstr "Emin Tufan Çetin " #: gnomemusic/about.py:150 msgid "© The GNOME Music Developers" msgstr "© GNOME Müzik Geliştiricileri" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:839 msgid "Most Played" msgstr "En Çok Çalınanlar" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:893 msgid "Never Played" msgstr "Hiç Çalınmayanlar" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:946 msgid "Recently Played" msgstr "Son Çalınanlar" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1025 msgid "Recently Added" msgstr "Yeni Eklenenler" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1088 msgid "Favorite Songs" msgstr "Gözde Şarkılar" #. TRANSLATORS: this is a playlist name indicating that the #. files are not tagged enough to be displayed in the albums #. or artists views. #: gnomemusic/grilowrappers/grltrackerplaylists.py:1142 msgid "Insufficiently Tagged" msgstr "Yetersiz Etiketlenme" #: gnomemusic/gstplayer.py:418 msgid "Unable to play the file" msgstr "Dosya çalınamıyor" #: gnomemusic/gstplayer.py:424 msgid "_Find in {}" msgstr "{} içinde _bul" #. TRANSLATORS: separator for two codecs #: gnomemusic/gstplayer.py:434 msgid " and " msgstr " ve " #. TRANSLATORS: separator for a list of codecs #: gnomemusic/gstplayer.py:437 msgid ", " msgstr ", " #: gnomemusic/gstplayer.py:439 msgid "{} is required to play the file, but is not installed." msgid_plural "{} are required to play the file, but are not installed." msgstr[0] "Dosyayı çalmak için {} gerekiyor ancak kurulu değil." #: gnomemusic/inhibitsuspend.py:69 msgid "Playing music" msgstr "Çalan müzik" #. Translators: "shuffle" causes tracks to play in random order. #: gnomemusic/player.py:48 msgid "Shuffle/Repeat Off" msgstr "Karıştırma/Yineleme Kapalı" #: gnomemusic/player.py:49 msgid "Repeat Song" msgstr "Şarkıyı Yinele" #: gnomemusic/player.py:50 msgid "Repeat All" msgstr "Tümünü Yinele" #: gnomemusic/playlisttoast.py:55 msgid "Playlist {} removed" msgstr "{} çalma listesi kaldırıldı" #: gnomemusic/playlisttoast.py:56 gnomemusic/songtoast.py:65 msgid "Undo" msgstr "Geri Al" #: gnomemusic/songtoast.py:64 msgid "{} removed from {}" msgstr "{}, {}ʼden silindi" #: gnomemusic/utils.py:89 msgid "Unknown album" msgstr "Bilinmeyen albüm" #: gnomemusic/utils.py:110 msgid "Unknown Artist" msgstr "Bilinmeyen Sanatçı" #: gnomemusic/views/playlistsview.py:45 msgid "Playlists" msgstr "Çalma Listeleri" #: gnomemusic/views/searchview.py:220 msgid "No Search Started" msgstr "Arama Başlatılmadı" #: gnomemusic/views/searchview.py:222 msgid "Use the searchbar to start searching for albums, artists or songs" msgstr "Albüm, sanatçı ya da şarkı aramak için arama çubuğunu kullan" #: gnomemusic/views/searchview.py:226 msgid "No Results Found" msgstr "Sonuç Bulunamadı" #: gnomemusic/views/searchview.py:228 msgid "Try a different search" msgstr "Başka arama deneyin" #: gnomemusic/widgets/albumwidget.py:230 msgid "{} minute" msgid_plural "{} minutes" msgstr[0] "{} dakika" #: gnomemusic/widgets/discbox.py:74 msgid "Disc {}" msgstr "Disk {}" #: gnomemusic/widgets/playertoolbar.py:173 msgid "Pause" msgstr "Duraklat" #: gnomemusic/widgets/playlistcontrols.py:130 msgid "{} Song" msgid_plural "{} Songs" msgstr[0] "{} Şarkı" #: gnomemusic/widgets/searchheaderbar.py:50 msgid "Search songs, artists and albums" msgstr "Şarkıları, sanatçıları ve albümleri ara" #. noqa: F841 #: gnomemusic/widgets/songwidgetmenu.py:94 msgid "_Open Location" msgstr "Konum _Aç" #. TRANSLATORS: These are verbs, to (un)mark something as a #. favorite. #: gnomemusic/widgets/startoggle.py:36 msgid "Unstar" msgstr "Yıldızı Kaldır" #: gnomemusic/widgets/startoggle.py:36 msgid "Star" msgstr "Yıldızla" #: gnomemusic/widgets/statusnavigationpage.py:51 msgid "Your XDG Music directory is not set." msgstr "XDG Müzik dizini ayarlanmadı." #: gnomemusic/widgets/statusnavigationpage.py:58 msgid "Music Folder" msgstr "Müzik Klasörü" #. TRANSLATORS: This is a label to display a link to open user's music #. folder. {} will be replaced with the translated text 'Music folder' #: gnomemusic/widgets/statusnavigationpage.py:66 msgid "The contents of your {} will appear here." msgstr "{} içeriğiniz burada görünecek." #: gnomemusic/widgets/statusnavigationpage.py:116 msgid "No Music Found" msgstr "Müzik Bulunamadı" #: gnomemusic/widgets/statusnavigationpage.py:117 msgid "Try a Different Search" msgstr "Başka Arama Deneyin" #: gnomemusic/widgets/statusnavigationpage.py:121 msgid "GNOME Music could not connect to Tracker." msgstr "GNOME Müzik, Trackerʼa bağlanamadı." #: gnomemusic/widgets/statusnavigationpage.py:123 msgid "Your music files cannot be indexed without Tracker running." msgstr "Müzik dosyalarınız Tracker çalışmadan dizinlenemez." #: gnomemusic/widgets/statusnavigationpage.py:129 msgid "Your system Tracker version seems outdated." msgstr "Sisteminizin Tracker sürümü eski görünüyor." #: gnomemusic/widgets/statusnavigationpage.py:131 msgid "Music needs Tracker version 3.0.0 or higher." msgstr "Müzik, Trackerʼın 3.0.0 sürümünü veya üstünü gerektirmektedir." #~ msgid "Report music history to Last.fm" #~ msgstr "Müzik geçmişini Last.fm’e bildir" #~ msgid "" #~ "Enables or disables sending scrobbles and the “currently playing” info to " #~ "Last.fm." #~ msgstr "" #~ "Last.fm’e skroplamaları ve “şu anda çalan” bilgilerini göndermeyi " #~ "etkinleştirir veya devre dışı bırakır." #~ msgid "Last.fm Account" #~ msgstr "Last.fm Hesabı" #~ msgid "Report Music Listening" #~ msgstr "Müzik Dinlemeyi Bildir" #~ msgid "_Help" #~ msgstr "_Yardım" #~ msgid "Artist" #~ msgstr "Sanatçı" #~ msgid "Select" #~ msgstr "Seç" #~ msgid "Back" #~ msgstr "Geri" #~ msgid "" #~ "Last.fm is a music discovery service that gives you personalised " #~ "recommendations based on the music you listen to." #~ msgstr "" #~ "Last.fm, dinlediğiniz müziğe göre kişiselleştirilmiş öneriler sunan müzik " #~ "keşif hizmetidir." #~ msgid "Music Reporting Not Setup" #~ msgstr "Müzik Bildirimi Kurulmadı" #~ msgid "Login to your Last.fm account to report your music listening." #~ msgstr "Müzik dinlemenizi bildirmek için Last.fm hesabınıza giriş yapın." #~ msgid "Login" #~ msgstr "Giriş" #~ msgid "Select All" #~ msgstr "Tümünü Seç" #~ msgid "Select None" #~ msgstr "Hiçbirini Seçme" #~ msgid "Click on items to select them" #~ msgstr "Seçmek için ögelere tıklayın" #~ msgid "_Add to Playlist" #~ msgstr "Çalma Listesine _Ekle" #~ msgid "Copyright The GNOME Music Developers" #~ msgstr "Telif Hakkı GNOME Müzik Geliştiricileri" #~ msgid "Translated by" #~ msgstr "Çeviren" #~ msgid "Artists Results" #~ msgstr "Sanatçı Sonuçları" #~ msgid "Albums Results" #~ msgstr "Albüm Sonuçları" #~ msgid "Selected {} song" #~ msgid_plural "Selected {} songs" #~ msgstr[0] "{} şarkı seçildi" #~ msgid "Your music listening is reported to Last.fm." #~ msgstr "Müzik dinlemeniz Last.fm’e bildirildi." #~ msgid "Your music listening is not reported to Last.fm." #~ msgstr "Müzik dinlemeniz Last.fm’e bildirilmedi." #~ msgid "Logged in as {}" #~ msgstr "{} olarak giriş yapıldı" #~ msgid "Configure" #~ msgstr "Yapılandır" 07070100000117000081A400000000000000000000000166968E4E000069C7000000000000000000000000000000000000001A00000000gnome-music-46.1/po/uk.po# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Daniel Korostil , 2013, 2014, 2015, 2016, 2017. # Eugene Strezhnev , 2019. # Danylo Korostil , 2019. # Yuri Chornoivan , 2020, 2021, 2022, 2023, 2024. msgid "" msgstr "" "Project-Id-Version: 1.0\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-music/issues\n" "POT-Creation-Date: 2024-02-11 20:43+0000\n" "PO-Revision-Date: 2024-02-13 20:46+0200\n" "Last-Translator: Yuri Chornoivan \n" "Language-Team: Ukrainian \n" "Language: uk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=n==1 ? 3 : n%10==1 && n%100!=11 ? 0 : n" "%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2\n" "X-Generator: Lokalize 23.04.1\n" "X-Project-Style: gnome\n" #: data/org.gnome.Music.appdata.xml.in.in:6 #: data/org.gnome.Music.desktop.in.in:3 data/ui/StatusNavigationPage.ui:4 #: gnomemusic/about.py:138 gnomemusic/application.py:59 gnomemusic/window.py:65 msgid "Music" msgstr "Музика" #: data/org.gnome.Music.appdata.xml.in.in:7 #: data/org.gnome.Music.desktop.in.in:5 msgid "Play and organize your music collection" msgstr "Грати та впорядковувати вашу музичну збірку" #: data/org.gnome.Music.appdata.xml.in.in:9 msgid "An easy and pleasant way to play your music." msgstr "Простий і приємний спосіб відтворення вашої музики." #: data/org.gnome.Music.appdata.xml.in.in:12 msgid "" "Find tracks in your local collection, use automatically generated playlists " "or curate a fresh one." msgstr "" "Шукайте композиції у вашій локальній збірці, користуйтеся автоматично " "створеними списками відтворення або створюйте вручну нові списки відтворення." #. developer_name tag deprecated with Appstream 1.0 #: data/org.gnome.Music.appdata.xml.in.in:188 msgid "The GNOME Music developers" msgstr "Розробники Музики GNOME" #: data/org.gnome.Music.desktop.in.in:4 msgid "Music Player" msgstr "Програвач музики" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Music.desktop.in.in:13 msgid "Music;Player;" msgstr "Музика;Програвач;Плеєр;" #: data/org.gnome.Music.gschema.xml:12 msgid "Window size" msgstr "Розмір вікна" #: data/org.gnome.Music.gschema.xml:13 msgid "Window size (width and height)." msgstr "Розмір вікна (ширина і висота)." #: data/org.gnome.Music.gschema.xml:17 msgid "Window maximized" msgstr "Вікно розгорнуто" #: data/org.gnome.Music.gschema.xml:18 msgid "Window maximized state." msgstr "Стан розгорнутого вікна." #: data/org.gnome.Music.gschema.xml:22 msgid "Playback repeat mode" msgstr "Режим повторного програвання" #. Translators: Don't translate allowed values, just the description in the brackets #: data/org.gnome.Music.gschema.xml:24 msgid "" "Value identifies whether to repeat or randomize playback through the " "collection. Allowed values are: “none” (repeat and shuffle are off), " "“song” (repeat current song), “all” (repeat playlist, no shuffle), " "“shuffle” (shuffle playlist, presumes repeat all)." msgstr "" "Значення, яке визначає, чи програвати збірку повторно, чи навмання. " "Допустимі значення: «none» (без повторювання і перемішування), " "«song» (повторювати одну пісню), «all» (повторювати список композицій, без " "змішування), «shuffle» (перемішати композиції у списку, допускаються " "повторювання)." #: data/org.gnome.Music.gschema.xml:28 data/ui/PreferencesDialog.ui:27 msgid "Enable ReplayGain" msgstr "Увімкнути ReplayGain" #: data/org.gnome.Music.gschema.xml:29 msgid "Enables or disables ReplayGain for albums" msgstr "Вмикає або вимикає ReplayGain для альбомів" #: data/org.gnome.Music.gschema.xml:33 msgid "Inhibit system suspend" msgstr "Пригнічення зупинки системи" #: data/org.gnome.Music.gschema.xml:34 msgid "Enables or disables inhibiting system suspend while playing music" msgstr "" "Вмикає або вимикає пригнічення зупинки системи під час програвання музики" #: data/ui/AlbumsSearchNavigationPage.ui:5 data/ui/SearchView.ui:98 #: gnomemusic/views/albumsview.py:52 msgid "Albums" msgstr "Альбоми" #: data/ui/AlbumWidget.ui:84 data/ui/PlayerToolbar.ui:87 #: data/ui/PlaylistControls.ui:101 gnomemusic/widgets/playertoolbar.py:176 msgid "Play" msgstr "Програти" #: data/ui/AlbumWidget.ui:130 data/ui/PlaylistControls.ui:5 #: data/ui/SongWidgetMenu.ui:11 msgid "_Play" msgstr "Про_грати" #: data/ui/AlbumWidget.ui:134 msgid "Add to _Favorite Songs" msgstr "Додати до _улюблених пісень" #: data/ui/AlbumWidget.ui:138 data/ui/SongWidgetMenu.ui:15 msgid "_Add to Playlist…" msgstr "_Додати до списку композицій…" #: data/ui/ArtistsSearchNavigationPage.ui:5 data/ui/SearchView.ui:41 #: gnomemusic/views/artistsview.py:51 msgid "Artists" msgstr "Виконавці" #: data/ui/HeaderBar.ui:14 msgid "Menu" msgstr "Меню" #: data/ui/HeaderBar.ui:22 data/ui/SearchHeaderBar.ui:12 msgid "Search" msgstr "Пошук" #: data/ui/HeaderBar.ui:31 data/ui/PreferencesDialog.ui:4 msgid "Preferences" msgstr "Налаштування" #: data/ui/HeaderBar.ui:35 #| msgid "_Keyboard Shortcuts" msgid "Keyboard Shortcuts" msgstr "Клавіатурні скорочення" #: data/ui/HeaderBar.ui:39 #| msgctxt "shortcut window" #| msgid "Help" msgid "Help" msgstr "Довідка" #: data/ui/HeaderBar.ui:43 #| msgid "_About Music" msgid "About Music" msgstr "Про «Музику»" #: data/ui/help-overlay.ui:11 msgctxt "shortcut window" msgid "General" msgstr "Загальне" #: data/ui/help-overlay.ui:14 msgctxt "shortcut window" msgid "Close window" msgstr "Закрити вікно" #: data/ui/help-overlay.ui:20 msgctxt "shortcut window" msgid "Search" msgstr "Пошук" #: data/ui/help-overlay.ui:26 msgctxt "shortcut window" msgid "Help" msgstr "Довідка" #: data/ui/help-overlay.ui:32 msgctxt "shortcut window" msgid "Shortcuts" msgstr "Скорочення" #: data/ui/help-overlay.ui:40 msgctxt "shortcut window" msgid "Playback" msgstr "Відтворення" #: data/ui/help-overlay.ui:43 msgctxt "shortcut window" msgid "Play/Pause" msgstr "Програти/призупинити" #: data/ui/help-overlay.ui:49 msgctxt "shortcut window" msgid "Next song" msgstr "Наступна пісня" #: data/ui/help-overlay.ui:55 msgctxt "shortcut window" msgid "Previous song" msgstr "Попередня пісня" #: data/ui/help-overlay.ui:61 msgctxt "shortcut window" msgid "Toggle repeat" msgstr "Перемкнути повторення" #: data/ui/help-overlay.ui:67 msgctxt "shortcut window" msgid "Toggle shuffle" msgstr "Перемкнути довільний порядок" #: data/ui/help-overlay.ui:75 msgctxt "shortcut window" msgid "Navigation" msgstr "Пересування" #: data/ui/help-overlay.ui:78 msgctxt "shortcut window" msgid "Go to Albums" msgstr "Перейти до альбомів" #: data/ui/help-overlay.ui:84 msgctxt "shortcut window" msgid "Go to Artists" msgstr "Перейти до виконавців" #: data/ui/help-overlay.ui:90 msgctxt "shortcut window" msgid "Go to Songs" msgstr "Перейти до пісень" #: data/ui/help-overlay.ui:96 msgctxt "shortcut window" msgid "Go to Playlists" msgstr "Перейти до списків композицій" #: data/ui/help-overlay.ui:102 msgctxt "shortcut window" msgid "Go back" msgstr "Повернутися" #: data/ui/PlayerToolbar.ui:74 msgid "Previous" msgstr "Попередня" #: data/ui/PlayerToolbar.ui:106 msgid "Next" msgstr "Наступна" #: data/ui/PlaylistControls.ui:9 msgid "_Delete" msgstr "В_илучити" #: data/ui/PlaylistControls.ui:13 msgid "_Rename…" msgstr "_Перейменувати…" #: data/ui/PlaylistControls.ui:28 msgid "Playlist Name" msgstr "Назва списку композицій" #: data/ui/PlaylistControls.ui:62 msgid "_Done" msgstr "_Зроблено" #: data/ui/PlaylistDialog.ui:16 msgid "Add to Playlist" msgstr "Додати до списку композицій" #: data/ui/PlaylistDialog.ui:27 msgid "_Cancel" msgstr "_Скасувати" #: data/ui/PlaylistDialog.ui:36 msgid "_Add" msgstr "_Додати" #: data/ui/PlaylistDialog.ui:91 msgid "Enter a name for your first playlist" msgstr "Введіть назву вашого першого списку композицій" #: data/ui/PlaylistDialog.ui:116 msgid "C_reate" msgstr "С_творити" #: data/ui/PlaylistDialog.ui:177 msgid "New Playlist…" msgstr "Створити список композицій…" #: data/ui/PlaylistDialog.ui:189 msgid "Add" msgstr "Додати" #: data/ui/PreferencesDialog.ui:9 msgid "Player Settings" msgstr "Параметри програвача" #: data/ui/PreferencesDialog.ui:12 #| msgid "Repeat Song" msgid "Repeat Mode" msgstr "Режим повтору" #: data/ui/PreferencesDialog.ui:16 msgid "None" msgstr "Немає" #: data/ui/PreferencesDialog.ui:17 #| msgid "Songs" msgid "Song" msgstr "Song" #: data/ui/PreferencesDialog.ui:18 msgid "All" msgstr "Усі" #: data/ui/PreferencesDialog.ui:19 gnomemusic/player.py:51 msgid "Shuffle" msgstr "У довільному порядку" #: data/ui/PreferencesDialog.ui:28 msgid "Balance loudness between songs if ReplayGain metadata is found" msgstr "Баланс гучності між композиціями, якщо виявлено метадані ReplayGain" #: data/ui/PreferencesDialog.ui:35 msgid "Power Settings" msgstr "Параметри живлення" #: data/ui/PreferencesDialog.ui:38 #| msgid "Inhibit system suspend" msgid "Inhibit Suspend" msgstr "Заборонити присипляння" #: data/ui/PreferencesDialog.ui:39 msgid "Only while playing" msgstr "Лише під час відтворення" #: data/ui/SearchView.ui:55 data/ui/SearchView.ui:112 msgid "View All" msgstr "Переглянути все" #: data/ui/SearchView.ui:154 msgid "Songs" msgstr "Пісні" #: data/ui/SongWidgetMenu.ui:19 msgid "_Remove from Playlist" msgstr "Ви_лучити зі списку" #: data/ui/StatusNavigationPage.ui:36 msgid "Welcome to Music" msgstr "Вітаємо у «Музиці»" #: gnomemusic/about.py:140 msgid "The GNOME Project" msgstr "Проєкт GNOME" #. Translators should localize the following string which #. will be displayed at the bottom of the about box to give #. credit to the translator(s). #: gnomemusic/about.py:146 msgid "translator-credits" msgstr "" "Данило Коростіль , 2013–2019\n" "Євген Стрежньов , 2019\n" "Юрій Чорноіван , 2020–2022" #: gnomemusic/about.py:150 #| msgid "The GNOME Music developers" msgid "© The GNOME Music Developers" msgstr "© Розробники «Музики» GNOME" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:839 msgid "Most Played" msgstr "Часто слухали" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:893 msgid "Never Played" msgstr "Ніколи не слухали" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:946 msgid "Recently Played" msgstr "Недавно слухали" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1025 msgid "Recently Added" msgstr "Недавно додано" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1088 msgid "Favorite Songs" msgstr "Улюблені пісні" #. TRANSLATORS: this is a playlist name indicating that the #. files are not tagged enough to be displayed in the albums #. or artists views. #: gnomemusic/grilowrappers/grltrackerplaylists.py:1142 msgid "Insufficiently Tagged" msgstr "Недостатньо міток" #: gnomemusic/gstplayer.py:418 msgid "Unable to play the file" msgstr "Неможливо відтворити файл" #: gnomemusic/gstplayer.py:424 msgid "_Find in {}" msgstr "_Знайти в {}" #. TRANSLATORS: separator for two codecs #: gnomemusic/gstplayer.py:434 msgid " and " msgstr " і " #. TRANSLATORS: separator for a list of codecs #: gnomemusic/gstplayer.py:437 msgid ", " msgstr ", " #: gnomemusic/gstplayer.py:439 msgid "{} is required to play the file, but is not installed." msgid_plural "{} are required to play the file, but are not installed." msgstr[0] "Потрібний {}, щоб програти файл, але його не встановлено." msgstr[1] "Потрібно {}, щоб програти файл, але їх не встановлено." msgstr[2] "Потрібно {}, щоб програти файл, але їх не встановлено." msgstr[3] "Потрібний {}, щоб програти файл, але його не встановлено." #: gnomemusic/inhibitsuspend.py:69 msgid "Playing music" msgstr "Програється музика" #. Translators: "shuffle" causes tracks to play in random order. #: gnomemusic/player.py:48 msgid "Shuffle/Repeat Off" msgstr "Довільний порядок/Повторення вимкнено" #: gnomemusic/player.py:49 msgid "Repeat Song" msgstr "Повторювати пісню" #: gnomemusic/player.py:50 msgid "Repeat All" msgstr "Повторювати все" #: gnomemusic/playlisttoast.py:55 msgid "Playlist {} removed" msgstr "Список композицій {} вилучено" #: gnomemusic/playlisttoast.py:56 gnomemusic/songtoast.py:65 msgid "Undo" msgstr "Скасувати" #: gnomemusic/songtoast.py:64 msgid "{} removed from {}" msgstr "{} вилучено з {}" #: gnomemusic/utils.py:89 msgid "Unknown album" msgstr "Невідомий альбом" #: gnomemusic/utils.py:110 msgid "Unknown Artist" msgstr "Невідомий виконавець" #: gnomemusic/views/playlistsview.py:45 msgid "Playlists" msgstr "Списки композицій" #: gnomemusic/views/searchview.py:220 msgid "No Search Started" msgstr "Пошук не розпочато" #: gnomemusic/views/searchview.py:222 msgid "Use the searchbar to start searching for albums, artists or songs" msgstr "" "Скористайтеся панеллю пошуку, щоб розпочати пошук альбомів, виконавців або" " композицій" #: gnomemusic/views/searchview.py:226 #| msgid "No Music Found" msgid "No Results Found" msgstr "Нічого не знайдено" #: gnomemusic/views/searchview.py:228 #| msgid "Try a Different Search" msgid "Try a different search" msgstr "Спробуйте інші критерії пошуку" #: gnomemusic/widgets/albumwidget.py:230 msgid "{} minute" msgid_plural "{} minutes" msgstr[0] "{} хвилина" msgstr[1] "{} хвилини" msgstr[2] "{} хвилин" msgstr[3] "{} хвилина" #: gnomemusic/widgets/discbox.py:74 msgid "Disc {}" msgstr "Диск {}" #: gnomemusic/widgets/playertoolbar.py:173 msgid "Pause" msgstr "Призупинити" #: gnomemusic/widgets/playlistcontrols.py:130 msgid "{} Song" msgid_plural "{} Songs" msgstr[0] "{} пісня" msgstr[1] "{} пісні" msgstr[2] "{} пісень" msgstr[3] "{} пісня" #: gnomemusic/widgets/searchheaderbar.py:50 #| msgid "Search songs, artists, albums and playlists" msgid "Search songs, artists and albums" msgstr "Пошук композицій, виконавців і альбомів" #. noqa: F841 #: gnomemusic/widgets/songwidgetmenu.py:94 msgid "_Open Location" msgstr "_Відкрити місце" #. TRANSLATORS: These are verbs, to (un)mark something as a #. favorite. #: gnomemusic/widgets/startoggle.py:36 msgid "Unstar" msgstr "Скасувати позначення зірками" #: gnomemusic/widgets/startoggle.py:36 msgid "Star" msgstr "Позначити зіркою" #: gnomemusic/widgets/statusnavigationpage.py:51 msgid "Your XDG Music directory is not set." msgstr "Не вказано музичної теки XDG." #: gnomemusic/widgets/statusnavigationpage.py:58 msgid "Music Folder" msgstr "Тека з музикою" #. TRANSLATORS: This is a label to display a link to open user's music #. folder. {} will be replaced with the translated text 'Music folder' #: gnomemusic/widgets/statusnavigationpage.py:66 msgid "The contents of your {} will appear here." msgstr "Тут з'явиться вміст {}." #: gnomemusic/widgets/statusnavigationpage.py:116 msgid "No Music Found" msgstr "Музики не знайдено" #: gnomemusic/widgets/statusnavigationpage.py:117 msgid "Try a Different Search" msgstr "Спробуйте пошукати інакше" #: gnomemusic/widgets/statusnavigationpage.py:121 msgid "GNOME Music could not connect to Tracker." msgstr "Музика GNOME не може з'єднатись з Tracker." #: gnomemusic/widgets/statusnavigationpage.py:123 msgid "Your music files cannot be indexed without Tracker running." msgstr "Музика не може бути індексована без запущеного Tracker." #: gnomemusic/widgets/statusnavigationpage.py:129 msgid "Your system Tracker version seems outdated." msgstr "Схоже, версія програми Tracker застаріла." #: gnomemusic/widgets/statusnavigationpage.py:131 msgid "Music needs Tracker version 3.0.0 or higher." msgstr "Для роботи «Музики» потрібна програма Tracker версії 3.0.0 або вище." #~ msgid "Report music history to Last.fm" #~ msgstr "Надсилати журнал відтворення на Last.fm" #~ msgid "" #~ "Enables or disables sending scrobbles and the “currently playing” info to " #~ "Last.fm." #~ msgstr "" #~ "Вмикає або вимикає надсилання журналу відтворення та даних щодо поточного " #~ "відтворення музики на Last.fm." #~ msgid "Last.fm Account" #~ msgstr "Обліковий запис Last.fm" #~ msgid "Report Music Listening" #~ msgstr "Сповіщати щодо відтворення музики" #~ msgid "_Help" #~ msgstr "_Довідка" #~| msgid "Artists" #~ msgid "Artist" #~ msgstr "Виконавець" #~ msgid "Select" #~ msgstr "Вибрати" #~ msgid "Back" #~ msgstr "Назад" #~ msgid "" #~ "Last.fm is a music discovery service that gives you personalised " #~ "recommendations based on the music you listen to." #~ msgstr "" #~ "Last.fm — служба ознайомлення з музикою, яка надає вам персоналізовані " #~ "рекомендації на основі даних щодо музики, яку ви слухаєте." #~ msgid "Music Reporting Not Setup" #~ msgstr "Надсилання журналів відтворення не налаштовано" #~ msgid "Login to your Last.fm account to report your music listening." #~ msgstr "" #~ "Увійдіть до вашого облікового запису на Last.fm, щоб надіслати дані " #~ "журналу відтворення." #~ msgid "Login" #~ msgstr "Увійти" #~ msgid "Select All" #~ msgstr "Вибрати все" #~ msgid "Select None" #~ msgstr "Не вибирати" #~ msgid "Click on items to select them" #~ msgstr "Натисніть на об'єкти, щоб вибрати їх" #~ msgid "_Add to Playlist" #~ msgstr "_Додати до списку композицій" #~ msgid "Copyright The GNOME Music Developers" #~ msgstr "© Розробники Музики GNOME" #~ msgid "Translated by" #~ msgstr "Переклад" #~ msgid "Artists Results" #~ msgstr "Виконавці" #~ msgid "Albums Results" #~ msgstr "Альбоми" #~ msgid "Selected {} song" #~ msgid_plural "Selected {} songs" #~ msgstr[0] "Вибрано {} композицію" #~ msgstr[1] "Вибрано {} композиції" #~ msgstr[2] "Вибрано {} композицій" #~ msgstr[3] "Вибрано {} композицію" #~ msgid "Your music listening is reported to Last.fm." #~ msgstr "Ваш журнал відтворення надіслано на Last.fm." #~ msgid "Your music listening is not reported to Last.fm." #~ msgstr "Ваш журнал відтворення не надіслано на Last.fm." #~ msgid "Logged in as {}" #~ msgstr "Вхід до системи від імені {}" #~ msgid "Configure" #~ msgstr "Налаштувати" #~ msgid "A music player and management application for GNOME." #~ msgstr "Програма для програвання і впорядкування музики в GNOME." #~ msgid "Visit GNOME Music website" #~ msgstr "Відвідати сайт Музики GNOME" #~ msgid "" #~ "GNOME Music 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.\n" #~ "\n" #~ "GNOME Music 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.\n" #~ "\n" #~ "You should have received a copy of the GNU General Public License along " #~ "with GNOME Music; if not, write to the Free Software Foundation, Inc., 51 " #~ "Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ "\n" #~ "The GNOME Music authors hereby grant permission for non-GPL compatible " #~ "GStreamer plugins to be used and distributed together with GStreamer and " #~ "GNOME Music. This permission is above and beyond the permissions granted " #~ "by the GPL license by which GNOME Music is covered. If you modify this " #~ "code, you may extend this exception to your version of the code, but you " #~ "are not obligated to do so. If you do not wish to do so, delete this " #~ "exception statement from your version." #~ msgstr "" #~ "«Музика GNOME» є вільним програмним забезпеченням (ПЗ); ви можете " #~ "розповсюджувати її та/чи модифікувати її згідно з умовами ЗАГАЛЬНОЇ " #~ "ГРОМАДСЬКОЇ ЛІЦЕНЗІЇ (GPL) GNU як опубліковано Free Software Foundation; " #~ "версії 2 цієї Ліцензії, або (на ваш розсуд) будь якої наступної версії.\n" #~ "\n" #~ "Музика GNOME розповсюджується з надією, що вона стане у пригоді, але БЕЗ " #~ "ЖОДНИХ ГАРАНТІЙ; навіть не маючи на увазі гарантії ПРИДАТНОСТІ ДЛЯ " #~ "ПРОДАЖУ або ПРИДАТНОСТІ ДО КОНКРЕТНОЇ МЕТИ. Див. ЗАГАЛЬНУ ГРОМАДСЬКУ " #~ "ЛІЦЕНЗІЮ (GPL) GNU для отримання детальної інформації.\n" #~ "\n" #~ "Ви маєте отримати копію ЗАГАЛЬНОЇ ГРОМАДСЬКОЇ ЛІЦЕНЗІЇ (GPL) GNU з цим " #~ "примірником Музика GNOME; якщо ні, напишіть в Free Software Foundation, " #~ "Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ "\n" #~ "Розробники Музики GNOME дають дозвіл на використання та розповсюдження " #~ "додатків GStreamer не сумісних з GPL, разом із GStreamer та Музикою " #~ "GNOME. Цей дозвіл вище і за межами дозволів, наданих ліцензією GPL, якою " #~ "охоплюється Музика GNOME.Якщо ви змінюєте цей код, ви можете розширити " #~ "цей виняток на свою версію коду, але не зобов'язані цього робити. У цьому " #~ "разі, вилучіть заяву про цей виняток зі своєї версії." #~| msgid "The contents of your {} will appear here." #~ msgid "The contents of your Music Folder will appear here" #~ msgstr "Тут з'явиться вміст вашої теки «Музика»." #~ msgid "GNOME Music" #~ msgstr "Музика GNOME" #~ msgid "Window position" #~ msgstr "Позиція вікна" #~ msgid "Window position (x and y)." #~ msgstr "Розташування вікна (x та y)." #~ msgid "Loading" #~ msgstr "Завантаження" #~ msgid "Add to Playlist…" #~ msgstr "Додати до списку композицій…" #~ msgid "Inital state has been displayed" #~ msgstr "Початковий стан вже було показано" #~ msgid "Set to true when initial state has been displayed" #~ msgstr "Увімкнуто, якщо початковий стан вже було показано" #~ msgid "Hey DJ" #~ msgstr "Агов, ді-джею!" #~ msgid "" #~ "An easy way to play your music. Automatically discover music on your " #~ "computer, the local network and internet services." #~ msgstr "" #~ "Простий спосіб слухати музику. Автоматично виявляє музику на комп'ютері, " #~ "у локальній мережі та в інтернеті." #~ msgid "" #~ "Find tracks in your local collection, get music from DLNA servers or try " #~ "something new with the Jamendo and Magnatune services." #~ msgstr "" #~ "Знаходь композиції у локальній збірці, отримай музику з DLNA серверів або " #~ "спробуй щось нове з сервісами Jamendo та Magnatune." #~ msgid "Released" #~ msgstr "Випущено" #~ msgid "Running Length" #~ msgstr "Тривалість виконання" #~ msgid "Composer" #~ msgstr "Композитор" #~ msgctxt "context menu item" #~ msgid "Play" #~ msgstr "Відтворити" 07070100000118000081A400000000000000000000000166968E4E00005725000000000000000000000000000000000000001A00000000gnome-music-46.1/po/vi.po# Vietnamese translations for gnome-music package # Bản dịch Tiếng Việt dành cho gói gnome-music. # This file is distributed under the same license as the gnome-music package. # Trần Ngọc Quân , 2016-2019, 2021. # msgid "" msgstr "" "Project-Id-Version: gnome-music master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-music/issues\n" "POT-Creation-Date: 2021-09-19 11:12+0000\n" "PO-Revision-Date: 2021-09-24 09:09+0700\n" "Last-Translator: Trần Ngọc Quân \n" "Language-Team: Vietnamese \n" "Language: vi\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Gtranslator 3.38.0\n" #: data/org.gnome.Music.appdata.xml.in.in:6 msgid "GNOME Music" msgstr "Nhạc GNOME" #: data/org.gnome.Music.appdata.xml.in.in:7 #: data/org.gnome.Music.desktop.in.in:5 msgid "Play and organize your music collection" msgstr "Phát nhạc và tổ chức các tập nhạc" #: data/org.gnome.Music.appdata.xml.in.in:9 msgid "An easy and pleasant way to play your music." msgstr "Một cách dễ dàng và thú vị để bạn phát nhạc của mình." #: data/org.gnome.Music.appdata.xml.in.in:12 msgid "" "Find tracks in your local collection, use automatically generated playlists " "or curate a fresh one." msgstr "" "Tìm các rãnh nhạc trong bộ sưu tập nội bộ của bạn, dùng các danh sách phát " "ddwwocj tạo tự động hay sắp xếp một danh sách mới." #: data/org.gnome.Music.appdata.xml.in.in:149 msgid "The GNOME Music developers" msgstr "Nhóm phát triển Nhạc GNOME" #: data/org.gnome.Music.desktop.in.in:3 gnomemusic/application.py:60 #: gnomemusic/window.py:71 msgid "Music" msgstr "Nhạc" #: data/org.gnome.Music.desktop.in.in:4 msgid "Music Player" msgstr "Bộ phát nhạc" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Music.desktop.in.in:13 msgid "Music;Player;" msgstr "Music;Player;Nhạc;Phát nhạc;Nhac;Phat Nhac;" #: data/org.gnome.Music.gschema.xml:12 msgid "Window size" msgstr "Kích cỡ cửa sổ" #: data/org.gnome.Music.gschema.xml:13 msgid "Window size (width and height)." msgstr "Kích thước cửa sổ (rộng và cao)." #: data/org.gnome.Music.gschema.xml:17 msgid "Window position" msgstr "Vị trí cửa sổ" #: data/org.gnome.Music.gschema.xml:18 msgid "Window position (x and y)." msgstr "Vị trí cửa sổ (x và y)." #: data/org.gnome.Music.gschema.xml:22 msgid "Window maximized" msgstr "Cửa sổ đã phóng to" #: data/org.gnome.Music.gschema.xml:23 msgid "Window maximized state." msgstr "Cửa sổ ở trạng thái phóng to hết cỡ." #: data/org.gnome.Music.gschema.xml:27 msgid "Playback repeat mode" msgstr "Chế độ lặp phát lại" #. Translators: Don't translate allowed values, just the description in the brackets #: data/org.gnome.Music.gschema.xml:29 msgid "" "Value identifies whether to repeat or randomize playback through the " "collection. Allowed values are: “none” (repeat and shuffle are off), " "“song” (repeat current song), “all” (repeat playlist, no shuffle), " "“shuffle” (shuffle playlist, presumes repeat all)." msgstr "" "Giá trị định nghĩa xem có lặp hay phát ngẫu nhiên xuyên suốt bộ sưu tập. Các " "giá trị được phép là: \"none\" (tắt lặp và xáo trộn), \"song\" (lặp bài hát " "hiện tại), \"all\" (lặp mọi danh sách phát, không xáo trộn), \"shuffle" "\" (xáo trộn danh sách phát, coi là lặp tất cả)." #: data/org.gnome.Music.gschema.xml:33 msgid "Enable ReplayGain" msgstr "Bật ReplayGain" #: data/org.gnome.Music.gschema.xml:34 msgid "Enables or disables ReplayGain for albums" msgstr "Bật hay tắt ReplayGain với các tuyển tập" #: data/org.gnome.Music.gschema.xml:38 msgid "Inhibit system suspend" msgstr "Ngăn cản hệ thống tạm ngưng" #: data/org.gnome.Music.gschema.xml:39 msgid "Enables or disables inhibiting system suspend while playing music" msgstr "Bật hay tắt việc ngăn cản hệ thống tạm ngưng khi đang phát nhạc" #: data/org.gnome.Music.gschema.xml:43 msgid "Report music history to Last.fm" msgstr "Báo cáo lịch sử sử dụng âm nhạc cho Last.fm" #: data/org.gnome.Music.gschema.xml:44 msgid "" "Enables or disables sending scrobbles and the “currently playing” info to " "Last.fm." msgstr "" "Cho phép hoặc vô hiệu hóa việc gửi scrobbles và thông tin \"hiện đang chơi\" " "cho Last.fm." #: data/ui/AboutDialog.ui.in:9 msgid "Copyright © 2018 GNOME Music Developers" msgstr "Bản quyền © 2018 Nhóm phát triển Nhạc GNOME" #: data/ui/AboutDialog.ui.in:10 msgid "A music player and management application for GNOME." msgstr "Một ứng dụng phát và quản lý nhạc dành cho GNOME." #: data/ui/AboutDialog.ui.in:12 msgid "Visit GNOME Music website" msgstr "Truy cập trang thông tin điện tử của Nhạc GNOME" #: data/ui/AboutDialog.ui.in:13 msgid "" "GNOME Music 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.\n" "\n" "GNOME Music 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.\n" "\n" "You should have received a copy of the GNU General Public License along with " "GNOME Music; if not, write to the Free Software Foundation, Inc., 51 " "Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" "\n" "The GNOME Music authors hereby grant permission for non-GPL compatible " "GStreamer plugins to be used and distributed together with GStreamer and " "GNOME Music. This permission is above and beyond the permissions granted by " "the GPL license by which GNOME Music is covered. If you modify this code, " "you may extend this exception to your version of the code, but you are not " "obligated to do so. If you do not wish to do so, delete this exception " "statement from your version." msgstr "" "Nhạc GNOME là phần mềm miễn phí; bạn có thể phân phối lại nó và/hoặc sửa đổi " "nó theo các điều khoản của Giấy phép Công cộng GNU như được xuất bản bởi Tổ " "chức Phần mềm Tự do; hoặc phiên bản 2 của Giấy phép, hoặc (tùy chọn của bạn) " "bất kỳ phiên bản nào mới hơn.\n" "\n" "Nhạc GNOME được phân phối với hy vọng rằng nó sẽ hữu ích, nhưng KHÔNG CÓ BẤT " "KỲ BẢO HÀNH NÀO; thậm chí không có bảo hành ngụ ý về KHẢ NĂNG BÁN ĐƯỢC HOẶC " "SỰ PHÙ HỢP CHO MỘT MỤC ĐÍCH CỤ THỂ. Xem Giấy phép Công cộng GNU để biết " "thêm chi tiết.\n" "\n" "Bạn nên nhận được một bản sao của Giấy phép Công cộng GNU cùng với Nhạc " "GNOME; nếu không, hãy viết thư cho Free Software Foundation, Inc., 51 " "Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" "\n" "Các tác giả Nhạc GNOME theo đây cấp quyền cho các plugin GStreamer không " "tương thích GPL được sử dụng và phân phối cùng với GStreamer và Nhạc GNOME. " "Quyền này ở trên và ngoài các quyền được cấp bởi giấy phép GPL mà Nhạc GNOME " "bao trùm. Nếu bạn sửa đổi mã này, bạn có thể mở rộng ngoại lệ này cho phiên " "bản mã của mình, nhưng bạn không bắt buộc phải làm như vậy. Nếu bạn không " "muốn làm như vậy, hãy xóa điều khoản ngoại lệ này khỏi phiên bản của bạn." #: data/ui/AlbumWidget.ui:104 data/ui/PlayerToolbar.ui:122 #: data/ui/PlaylistControls.ui:121 data/ui/SongWidgetMenu.ui:19 #: gnomemusic/widgets/playertoolbar.py:177 msgid "Play" msgstr "Phát" #: data/ui/AlbumWidget.ui:163 data/ui/PlaylistControls.ui:6 msgid "_Play" msgstr "_Phát" #: data/ui/AlbumWidget.ui:167 msgid "Add to _Favorite Songs" msgstr "Thêm vào _Bài hát ưa thích" #: data/ui/AlbumWidget.ui:171 msgid "_Add to Playlist…" msgstr "Thêm vào d_anh sách phát…" #: data/ui/AppMenu.ui:23 data/ui/LastfmDialog.ui:8 msgid "Last.fm Account" msgstr "Tài khoản Last.fm" #: data/ui/AppMenu.ui:38 msgid "Report Music Listening" msgstr "Báo cáo đang nghe Nhạc gì" #: data/ui/AppMenu.ui:63 msgid "_Keyboard Shortcuts" msgstr "_Phím tắt" #: data/ui/AppMenu.ui:74 msgid "_Help" msgstr "T_rợ giúp" #: data/ui/AppMenu.ui:85 msgid "_About Music" msgstr "G_iới thiệu Nhạc" #: data/ui/EmptyView.ui:35 msgid "Welcome to Music" msgstr "Chào mừng bạn dùng \"Nhạc\"" #: data/ui/HeaderBar.ui:16 msgid "Menu" msgstr "Trình đơn" #: data/ui/HeaderBar.ui:39 data/ui/SearchHeaderBar.ui:16 msgid "Select" msgstr "Chọn" #: data/ui/HeaderBar.ui:60 data/ui/PlaylistDialog.ui:211 #: data/ui/SearchHeaderBar.ui:37 msgid "_Cancel" msgstr "T_hôi" #: data/ui/HeaderBar.ui:79 data/ui/SearchHeaderBar.ui:56 msgid "Search" msgstr "Tìm kiếm" #: data/ui/HeaderBar.ui:102 msgid "Back" msgstr "Lùi" #: data/ui/help-overlay.ui:13 msgctxt "shortcut window" msgid "General" msgstr "Chung" #: data/ui/help-overlay.ui:17 msgctxt "shortcut window" msgid "Close window" msgstr "Đóng cửa sổ" #: data/ui/help-overlay.ui:24 msgctxt "shortcut window" msgid "Search" msgstr "Tìm kiếm" #: data/ui/help-overlay.ui:31 msgctxt "shortcut window" msgid "Help" msgstr "Trợ giúp" #: data/ui/help-overlay.ui:38 msgctxt "shortcut window" msgid "Shortcuts" msgstr "Phím tắt" #: data/ui/help-overlay.ui:47 msgctxt "shortcut window" msgid "Playback" msgstr "Phát lại" #: data/ui/help-overlay.ui:51 msgctxt "shortcut window" msgid "Play/Pause" msgstr "Phát/Dừng" #: data/ui/help-overlay.ui:58 msgctxt "shortcut window" msgid "Next song" msgstr "Bài hát kế tiếp" #: data/ui/help-overlay.ui:65 msgctxt "shortcut window" msgid "Previous song" msgstr "Bài hát kế trước" #: data/ui/help-overlay.ui:72 msgctxt "shortcut window" msgid "Toggle repeat" msgstr "Bật/tắt lặp" #: data/ui/help-overlay.ui:79 msgctxt "shortcut window" msgid "Toggle shuffle" msgstr "Bật/tắt xáo trộn" #: data/ui/help-overlay.ui:88 msgctxt "shortcut window" msgid "Navigation" msgstr "Điều hướng" #: data/ui/help-overlay.ui:92 msgctxt "shortcut window" msgid "Go to Albums" msgstr "Chuyển tới Tuyển tập" #: data/ui/help-overlay.ui:99 msgctxt "shortcut window" msgid "Go to Artists" msgstr "Chuyển tới Nghệ sỹ" #: data/ui/help-overlay.ui:106 msgctxt "shortcut window" msgid "Go to Songs" msgstr "Chuyển tới Bài hát" #: data/ui/help-overlay.ui:113 msgctxt "shortcut window" msgid "Go to Playlists" msgstr "Chuyển tới Danh sách phát" #: data/ui/help-overlay.ui:120 msgctxt "shortcut window" msgid "Go back" msgstr "Quay lại" #: data/ui/LastfmDialog.ui:24 msgid "" "Last.fm is a music discovery service that gives you personalised " "recommendations based on the music you listen to." msgstr "" "Last.fm là một dịch vụ khám phá âm nhạc cung cấp cho bạn các đề xuất được cá " "nhân hóa dựa trên nhạc bạn nghe." #: data/ui/LastfmDialog.ui:35 gnomemusic/widgets/lastfmdialog.py:58 msgid "Music Reporting Not Setup" msgstr "Chưa cài đặt báo cáo Nhạc" #: data/ui/LastfmDialog.ui:49 gnomemusic/widgets/lastfmdialog.py:61 msgid "Login to your Last.fm account to report your music listening." msgstr "" "Đăng nhập vào tài khoản Last.fm của bạn để báo cáo việc nghe nhạc của bạn." #: data/ui/LastfmDialog.ui:60 gnomemusic/widgets/lastfmdialog.py:59 msgid "Login" msgstr "Đăng nhập" #: data/ui/LoadingNotification.ui:16 msgid "Loading" msgstr "Đang tải" #: data/ui/PlayerToolbar.ui:105 msgid "Previous" msgstr "Kế trước" #: data/ui/PlayerToolbar.ui:139 msgid "Next" msgstr "Kế tiếp" #: data/ui/PlaylistControls.ui:10 msgid "_Delete" msgstr "_Xóa" #: data/ui/PlaylistControls.ui:14 msgid "_Rename…" msgstr "Đổ_i tên…" #: data/ui/PlaylistControls.ui:44 msgid "Playlist Name" msgstr "Tên Danh sách phát" #: data/ui/PlaylistControls.ui:77 msgid "_Done" msgstr "_Xong" #: data/ui/PlaylistDialog.ui:66 msgid "Enter a name for your first playlist" msgstr "Nhận vào tên cho danh sách phát đầu tiên của bạn" #: data/ui/PlaylistDialog.ui:88 msgid "C_reate" msgstr "Tạ_o" #: data/ui/PlaylistDialog.ui:156 msgid "New Playlist…" msgstr "Danh sách phát mới…" #: data/ui/PlaylistDialog.ui:167 msgid "Add" msgstr "Thêm" #: data/ui/PlaylistDialog.ui:208 msgid "Add to Playlist" msgstr "Thêm vào danh sách phát" #: data/ui/PlaylistDialog.ui:224 msgid "_Add" msgstr "T_hêm" #: data/ui/PlaylistNotification.ui:22 msgid "_Undo" msgstr "_Hủy bước" #: data/ui/SearchView.ui:47 gnomemusic/views/artistsview.py:46 msgid "Artists" msgstr "Nghệ sĩ" #: data/ui/SearchView.ui:57 data/ui/SearchView.ui:108 msgid "View All" msgstr "Hiện tất cả" #: data/ui/SearchView.ui:98 gnomemusic/views/albumsview.py:50 msgid "Albums" msgstr "Tuyển tập" #: data/ui/SearchView.ui:149 gnomemusic/views/songsview.py:47 msgid "Songs" msgstr "Bài hát" #: data/ui/SelectionBarMenuButton.ui:7 msgid "Select All" msgstr "Chọn tất cả" #: data/ui/SelectionBarMenuButton.ui:11 msgid "Select None" msgstr "Không chọn gì" #: data/ui/SelectionBarMenuButton.ui:30 gnomemusic/widgets/headerbar.py:71 msgid "Click on items to select them" msgstr "Bấm vào từng mục để chọn chúng" #: data/ui/SelectionToolbar.ui:9 msgid "_Add to Playlist" msgstr "T_hêm vào danh sách phát" #: data/ui/SongWidgetMenu.ui:29 msgid "Add to Playlist…" msgstr "Thêm vào danh sách phát…" #: data/ui/SongWidgetMenu.ui:39 msgid "Remove From Playlist" msgstr "Loại khỏi danh sách phát" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:884 msgid "Most Played" msgstr "Phát nhiều nhất" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:938 msgid "Never Played" msgstr "Chưa phát lần nào" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:991 msgid "Recently Played" msgstr "Mới phát" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1054 msgid "Recently Added" msgstr "Mới thêm" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1117 msgid "Favorite Songs" msgstr "Bài hát ưa thích" #: gnomemusic/gstplayer.py:408 msgid "Unable to play the file" msgstr "Không thể phát tập tin" #: gnomemusic/gstplayer.py:414 msgid "_Find in {}" msgstr "_Tìm trong {}" #. TRANSLATORS: separator for two codecs #: gnomemusic/gstplayer.py:424 msgid " and " msgstr " và " #. TRANSLATORS: separator for a list of codecs #: gnomemusic/gstplayer.py:427 msgid ", " msgstr ", " #: gnomemusic/gstplayer.py:429 msgid "{} is required to play the file, but is not installed." msgid_plural "{} are required to play the file, but are not installed." msgstr[0] "" "{} là cần thiết để có thể phát tập tin nhưng mà nó lại chưa được cài đặt." #: gnomemusic/inhibitsuspend.py:63 msgid "Playing music" msgstr "Đang phát nhạc" #. Translators: "shuffle" causes tracks to play in random order. #: gnomemusic/player.py:45 msgid "Shuffle" msgstr "Xáo trộn" #: gnomemusic/player.py:46 msgid "Repeat Song" msgstr "Lặp bài hát" #: gnomemusic/player.py:47 msgid "Repeat All" msgstr "Lặp tất cả" #: gnomemusic/player.py:48 msgid "Shuffle/Repeat Off" msgstr "Tắt xáo trộn/lặp" #: gnomemusic/utils.py:80 msgid "Unknown album" msgstr "Tập nhạc chưa biết" #: gnomemusic/utils.py:101 msgid "Unknown Artist" msgstr "Nghệ sĩ chưa biết" #: gnomemusic/views/emptyview.py:65 msgid "Your XDG Music directory is not set." msgstr "Thư mục Nhạc XDG của bạn chưa được đặt." #: gnomemusic/views/emptyview.py:72 msgid "Music Folder" msgstr "Thư mục nhạc" #. TRANSLATORS: This is a label to display a link to open user's music #. folder. {} will be replaced with the translated text 'Music folder' #: gnomemusic/views/emptyview.py:76 msgid "The contents of your {} will appear here." msgstr "Nội dung của {} của bạn sẽ xuất hiện ở đây." #: gnomemusic/views/emptyview.py:124 msgid "No Music Found" msgstr "Không tìm thấy bài hát nào" #: gnomemusic/views/emptyview.py:125 msgid "Try a Different Search" msgstr "Thử tìm kiếm khác" #: gnomemusic/views/emptyview.py:129 msgid "GNOME Music could not connect to Tracker." msgstr "Nhạc GNOME không thể kết nối đến Tracker." #: gnomemusic/views/emptyview.py:131 msgid "Your music files cannot be indexed without Tracker running." msgstr "" "Các tập tin nhạc của bạn không thể được đánh mục lục mà không có Tracker " "đang chạy." #: gnomemusic/views/emptyview.py:137 msgid "Your system Tracker version seems outdated." msgstr "Phiên bản Tracker của bạn có vẻ lỗi thời." #: gnomemusic/views/emptyview.py:139 msgid "Music needs Tracker version 3.0.0 or higher." msgstr "Nhạc cần Tracker phiên bản 3.0.0 trở lên." #: gnomemusic/views/playlistsview.py:45 msgid "Playlists" msgstr "Danh sách phát" #: gnomemusic/views/searchview.py:420 msgid "Artists Results" msgstr "Kết quả Nghệ sĩ" #: gnomemusic/views/searchview.py:435 msgid "Albums Results" msgstr "Kết quả Tuyển tập" #: gnomemusic/widgets/albumwidget.py:237 msgid "{} minute" msgid_plural "{} minutes" msgstr[0] "{} phút" #: gnomemusic/widgets/disclistboxwidget.py:75 msgid "Disc {}" msgstr "Đĩa {}" #: gnomemusic/widgets/headerbar.py:68 msgid "Selected {} song" msgid_plural "Selected {} songs" msgstr[0] "Đã chọn {} bài hát" #: gnomemusic/widgets/lastfmdialog.py:65 msgid "Your music listening is reported to Last.fm." msgstr "Nghe nhạc của bạn được báo cáo cho Last.fm." #: gnomemusic/widgets/lastfmdialog.py:67 msgid "Your music listening is not reported to Last.fm." msgstr "Nghe nhạc của bạn không được báo cáo cho Last.fm." #. TRANSLATORS: displays the username of the Last.fm account #: gnomemusic/widgets/lastfmdialog.py:71 msgid "Logged in as {}" msgstr "Đăng nhập dưới danh nghĩa {}" #: gnomemusic/widgets/lastfmdialog.py:72 msgid "Configure" msgstr "Cấu hình" #: gnomemusic/widgets/notificationspopup.py:216 msgid "Playlist {} removed" msgstr "Danh sách phát {} đã bị xóa bỏ" #: gnomemusic/widgets/notificationspopup.py:220 msgid "{} removed from {}" msgstr "{} bị xóa khỏi {}" #: gnomemusic/widgets/playertoolbar.py:174 msgid "Pause" msgstr "Tạm dừng" #: gnomemusic/widgets/playlistcontrols.py:132 msgid "{} Song" msgid_plural "{} Songs" msgstr[0] "{} bài hát" #~ msgid "" #~ "An easy way to play your music. Automatically discover music on your " #~ "computer, the local network and internet services." #~ msgstr "" #~ "Một cách đơn giản để phát nhạc. Tự động dò tìm nhạc trên máy tính của " #~ "bạn, mạng nội bộ hoặc các dịch vụ internet." #~ msgid "" #~ "Find tracks in your local collection, get music from DLNA servers or try " #~ "something new with the Jamendo and Magnatune services." #~ msgstr "" #~ "Tìm các rãnh trong bộ sưu tập nội bộ của bạn, lấy nhạc từ máy phục vụ " #~ "DLNA hoặc thử một số cái mới với các dịch vụ Jamendo và Magnatune." #~ msgid "Inital state has been displayed" #~ msgstr "Tình trạng khởi tạo đã được hiển thị" #~ msgid "Set to true when initial state has been displayed" #~ msgstr "Chọn nó khi muốn hiển thị tình trạng ban đầu" #~ msgid "Released" #~ msgstr "Được phát hành" #~ msgid "Running Length" #~ msgstr "Tổng thời lượng" #~ msgid "Composer" #~ msgstr "Nhà soạn nhạc" #~ msgctxt "context menu item" #~ msgid "Play" #~ msgstr "Phát" #~ msgid "Hey DJ" #~ msgstr "Hey DJ" #~ msgid "@icon@" #~ msgstr "@icon@" #~ msgid "Untitled" #~ msgstr "Không tiêu đề" #~ msgid "All" #~ msgstr "Tất cả" #~ msgid "Artist" #~ msgstr "Nghệ sĩ" #~ msgid "Album" #~ msgstr "Tuyển tập" #~ msgid "Track Title" #~ msgstr "Tiêu đề rãnh" #~ msgid "Local" #~ msgstr "Nội bộ" #~ msgid "Sources" #~ msgstr "Nguồn" #~ msgid "Match" #~ msgstr "Khớp" #~ msgid "_Quit" #~ msgstr "_Thoát" #~ msgid "Music is the new GNOME music playing application." #~ msgstr "Nhạc là một ứng dụng phát nhạc mới dành cho GNOME." #~ msgid "org.gnome.Music" #~ msgstr "org.gnome.Music" #~ msgid "Search mode" #~ msgstr "Chế độ tìm kiếm" #~ msgid "If true, the search bar is shown." #~ msgstr "Nếu được chọn, thanh tìm kiếm sẽ được hiển thị." #~ msgid "Notifications mode" #~ msgstr "Chế độ thông báo" #~ msgid "Enables or disables playback notifications" #~ msgstr "Bật hay tắt thông báo phát lại" #~ msgid "Selected %d item" #~ msgid_plural "Selected %d items" #~ msgstr[0] "Đã chọn %d mục" #~ msgid "%d min" #~ msgstr "%d phút" #~ msgid "Empty" #~ msgstr "Trống" #~ msgid "Select Playlist" #~ msgstr "Chọn Danh sách phát" #~ msgid "Max chars to display in track name on Artist view" #~ msgstr "" #~ "Số lượng ký tự tối đa được hiện thị trong tên rãnh trên bộ hiển thị Nghệ " #~ "sỹ" #~ msgid "" #~ "This setting modifies the amount of chars for track title on Artist view " #~ "before its been ellipsized. Set this to -1 to disable" #~ msgstr "" #~ "Cài đặt này sửa đổi số lượng ký tự cho tiêu đề rãnh trên bộ trình bày " #~ "Nghệ sỹ trước khi nó được lửng hóa. Đặt nó bằng -1 để tắt" #~ msgid "the a an" #~ msgstr "cái một" #~ msgid "All Artists" #~ msgstr "Mọi nghệ sỹ" 07070100000119000081A400000000000000000000000166968E4E00005B29000000000000000000000000000000000000001D00000000gnome-music-46.1/po/zh_CN.po# Chinese (China) translation for gnome-music. # Copyright (C) 2013-2019 gnome-music's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-music package. # tuhaihe <1132321739qq@gmail.com>, 2013. # Tong Hui , 2013. # sphinx , 2014. # Mingcong Bai , 2018. # Dingzhong Chen , 2018, 2019. # Cheng Lu , 2016, 2020. # lumingzh , 2022-2023. # msgid "" msgstr "" "Project-Id-Version: gnome-music master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-music/issues\n" "POT-Creation-Date: 2024-02-11 20:43+0000\n" "PO-Revision-Date: 2024-02-21 12:40+0800\n" "Last-Translator: lumingzh \n" "Language-Team: Chinese - China \n" "Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Poedit 3.4.2\n" "X-DamnedLies-Scope: partial\n" #: data/org.gnome.Music.appdata.xml.in.in:6 #: data/org.gnome.Music.desktop.in.in:3 data/ui/StatusNavigationPage.ui:4 #: gnomemusic/about.py:138 gnomemusic/application.py:59 gnomemusic/window.py:65 msgid "Music" msgstr "音乐" #: data/org.gnome.Music.appdata.xml.in.in:7 #: data/org.gnome.Music.desktop.in.in:5 msgid "Play and organize your music collection" msgstr "播放与管理您的音乐集" #: data/org.gnome.Music.appdata.xml.in.in:9 msgid "An easy and pleasant way to play your music." msgstr "简单而愉快的播放音乐的方式。" #: data/org.gnome.Music.appdata.xml.in.in:12 msgid "" "Find tracks in your local collection, use automatically generated playlists " "or curate a fresh one." msgstr "" "在您的本地收藏中寻找音轨,使用自动生成的播放列表或者自行编辑生成播放列表。" #. developer_name tag deprecated with Appstream 1.0 #: data/org.gnome.Music.appdata.xml.in.in:188 msgid "The GNOME Music developers" msgstr "GNOME“音乐”开发者" #: data/org.gnome.Music.desktop.in.in:4 msgid "Music Player" msgstr "音乐播放器" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Music.desktop.in.in:13 msgid "Music;Player;" msgstr "Music;Player;音乐;播放器;" #: data/org.gnome.Music.gschema.xml:12 msgid "Window size" msgstr "窗口大小" #: data/org.gnome.Music.gschema.xml:13 msgid "Window size (width and height)." msgstr "窗口大小(宽度与高度)。" #: data/org.gnome.Music.gschema.xml:17 msgid "Window maximized" msgstr "窗口最大化" #: data/org.gnome.Music.gschema.xml:18 msgid "Window maximized state." msgstr "窗口最大化状态。" #: data/org.gnome.Music.gschema.xml:22 msgid "Playback repeat mode" msgstr "重复播放模式" #. Translators: Don't translate allowed values, just the description in the brackets #: data/org.gnome.Music.gschema.xml:24 msgid "" "Value identifies whether to repeat or randomize playback through the " "collection. Allowed values are: “none” (repeat and shuffle are off), " "“song” (repeat current song), “all” (repeat playlist, no shuffle), " "“shuffle” (shuffle playlist, presumes repeat all)." msgstr "" "该值定义是否重复或随机播放音乐合集。有效值包括:“none”(关闭重复和随" "机)、“song”(重复当前歌曲)、“all”(重复播放列表,非随机)、“shuffle”(随机" "播放列表,假定重复全部)。" #: data/org.gnome.Music.gschema.xml:28 data/ui/PreferencesDialog.ui:27 msgid "Enable ReplayGain" msgstr "启用回放增益" #: data/org.gnome.Music.gschema.xml:29 msgid "Enables or disables ReplayGain for albums" msgstr "启用或禁用专辑的回放增益" #: data/org.gnome.Music.gschema.xml:33 msgid "Inhibit system suspend" msgstr "阻止系统挂起" #: data/org.gnome.Music.gschema.xml:34 msgid "Enables or disables inhibiting system suspend while playing music" msgstr "播放音乐时是否阻止系统休眠" #: data/ui/AlbumsSearchNavigationPage.ui:5 data/ui/SearchView.ui:98 #: gnomemusic/views/albumsview.py:52 msgid "Albums" msgstr "专辑" #: data/ui/AlbumWidget.ui:84 data/ui/PlayerToolbar.ui:87 #: data/ui/PlaylistControls.ui:101 gnomemusic/widgets/playertoolbar.py:176 msgid "Play" msgstr "播放" #: data/ui/AlbumWidget.ui:130 data/ui/PlaylistControls.ui:5 #: data/ui/SongWidgetMenu.ui:11 msgid "_Play" msgstr "播放(_P)" #: data/ui/AlbumWidget.ui:134 msgid "Add to _Favorite Songs" msgstr "添加至收藏歌曲(_F)" #: data/ui/AlbumWidget.ui:138 data/ui/SongWidgetMenu.ui:15 msgid "_Add to Playlist…" msgstr "添加到播放列表(_A)…" #: data/ui/ArtistsSearchNavigationPage.ui:5 data/ui/SearchView.ui:41 #: gnomemusic/views/artistsview.py:51 msgid "Artists" msgstr "艺术家" #: data/ui/HeaderBar.ui:14 msgid "Menu" msgstr "菜单" #: data/ui/HeaderBar.ui:22 data/ui/SearchHeaderBar.ui:12 msgid "Search" msgstr "搜索" #: data/ui/HeaderBar.ui:31 data/ui/PreferencesDialog.ui:4 msgid "Preferences" msgstr "首选项" #: data/ui/HeaderBar.ui:35 msgid "Keyboard Shortcuts" msgstr "键盘快捷键" #: data/ui/HeaderBar.ui:39 msgid "Help" msgstr "帮助" #: data/ui/HeaderBar.ui:43 msgid "About Music" msgstr "关于“音乐”" #: data/ui/help-overlay.ui:11 msgctxt "shortcut window" msgid "General" msgstr "常规" #: data/ui/help-overlay.ui:14 msgctxt "shortcut window" msgid "Close window" msgstr "关闭窗口" #: data/ui/help-overlay.ui:20 msgctxt "shortcut window" msgid "Search" msgstr "搜索" #: data/ui/help-overlay.ui:26 msgctxt "shortcut window" msgid "Help" msgstr "帮助" #: data/ui/help-overlay.ui:32 msgctxt "shortcut window" msgid "Shortcuts" msgstr "快捷键" #: data/ui/help-overlay.ui:40 msgctxt "shortcut window" msgid "Playback" msgstr "播放" #: data/ui/help-overlay.ui:43 msgctxt "shortcut window" msgid "Play/Pause" msgstr "播放/暂停" #: data/ui/help-overlay.ui:49 msgctxt "shortcut window" msgid "Next song" msgstr "下一首歌曲" #: data/ui/help-overlay.ui:55 msgctxt "shortcut window" msgid "Previous song" msgstr "上一首歌曲" #: data/ui/help-overlay.ui:61 msgctxt "shortcut window" msgid "Toggle repeat" msgstr "重复播放" #: data/ui/help-overlay.ui:67 msgctxt "shortcut window" msgid "Toggle shuffle" msgstr "随机播放" #: data/ui/help-overlay.ui:75 msgctxt "shortcut window" msgid "Navigation" msgstr "导航" #: data/ui/help-overlay.ui:78 msgctxt "shortcut window" msgid "Go to Albums" msgstr "转到专辑" #: data/ui/help-overlay.ui:84 msgctxt "shortcut window" msgid "Go to Artists" msgstr "转到艺术家" #: data/ui/help-overlay.ui:90 msgctxt "shortcut window" msgid "Go to Songs" msgstr "转到歌曲" #: data/ui/help-overlay.ui:96 msgctxt "shortcut window" msgid "Go to Playlists" msgstr "转到播放列表" #: data/ui/help-overlay.ui:102 msgctxt "shortcut window" msgid "Go back" msgstr "返回" #: data/ui/PlayerToolbar.ui:74 msgid "Previous" msgstr "上一首" #: data/ui/PlayerToolbar.ui:106 msgid "Next" msgstr "下一首" #: data/ui/PlaylistControls.ui:9 msgid "_Delete" msgstr "移除(_D)" #: data/ui/PlaylistControls.ui:13 msgid "_Rename…" msgstr "重命名(_R)…" #: data/ui/PlaylistControls.ui:28 msgid "Playlist Name" msgstr "播放列表名" #: data/ui/PlaylistControls.ui:62 msgid "_Done" msgstr "完成(_D)" #: data/ui/PlaylistDialog.ui:16 msgid "Add to Playlist" msgstr "添加到播放列表" #: data/ui/PlaylistDialog.ui:27 msgid "_Cancel" msgstr "取消(_C)" #: data/ui/PlaylistDialog.ui:36 msgid "_Add" msgstr "添加(_A)" #: data/ui/PlaylistDialog.ui:91 msgid "Enter a name for your first playlist" msgstr "输入您首个播放列表的名称" #: data/ui/PlaylistDialog.ui:116 msgid "C_reate" msgstr "创建(_R)" #: data/ui/PlaylistDialog.ui:177 msgid "New Playlist…" msgstr "新建播放列表…" #: data/ui/PlaylistDialog.ui:189 msgid "Add" msgstr "添加" #: data/ui/PreferencesDialog.ui:9 msgid "Player Settings" msgstr "播放器设置" #: data/ui/PreferencesDialog.ui:12 msgid "Repeat Mode" msgstr "重复模式" #: data/ui/PreferencesDialog.ui:16 msgid "None" msgstr "无" #: data/ui/PreferencesDialog.ui:17 msgid "Song" msgstr "歌曲" #: data/ui/PreferencesDialog.ui:18 msgid "All" msgstr "全部" #: data/ui/PreferencesDialog.ui:19 gnomemusic/player.py:51 msgid "Shuffle" msgstr "随机播放" #: data/ui/PreferencesDialog.ui:28 msgid "Balance loudness between songs if ReplayGain metadata is found" msgstr "如果找到了 ReplayGain 元数据,则平衡歌曲之间的响度" #: data/ui/PreferencesDialog.ui:35 msgid "Power Settings" msgstr "电源设置" #: data/ui/PreferencesDialog.ui:38 msgid "Inhibit Suspend" msgstr "禁止挂起" #: data/ui/PreferencesDialog.ui:39 msgid "Only while playing" msgstr "只在播放的时候" #: data/ui/SearchView.ui:55 data/ui/SearchView.ui:112 msgid "View All" msgstr "查看所有" #: data/ui/SearchView.ui:154 msgid "Songs" msgstr "歌曲" #: data/ui/SongWidgetMenu.ui:19 msgid "_Remove from Playlist" msgstr "从播放列表移除(_R)" #: data/ui/StatusNavigationPage.ui:36 msgid "Welcome to Music" msgstr "欢迎使用音乐应用" #: gnomemusic/about.py:140 msgid "The GNOME Project" msgstr "GNOME 项目" #. Translators should localize the following string which #. will be displayed at the bottom of the about box to give #. credit to the translator(s). #: gnomemusic/about.py:146 msgid "translator-credits" msgstr "" "tuhaihe <1132321739qq@gmail.com>, 2013\n" "Tong Hui , 2013\n" "sphinx , 2014\n" "Mingcong Bai , 2018\n" "Dingzhong Chen , 2018, 2019\n" "Cheng Lu , 2016, 2020\n" "lumingzh , 2022\n" "Boyuan Yang , 2022" #: gnomemusic/about.py:150 msgid "© The GNOME Music Developers" msgstr "© GNOME “音乐”开发者" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:839 msgid "Most Played" msgstr "最多播放" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:893 msgid "Never Played" msgstr "从未播放" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:946 msgid "Recently Played" msgstr "最近播放" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1025 msgid "Recently Added" msgstr "最近添加" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1088 msgid "Favorite Songs" msgstr "收藏歌曲" #. TRANSLATORS: this is a playlist name indicating that the #. files are not tagged enough to be displayed in the albums #. or artists views. #: gnomemusic/grilowrappers/grltrackerplaylists.py:1142 msgid "Insufficiently Tagged" msgstr "标记不足" #: gnomemusic/gstplayer.py:418 msgid "Unable to play the file" msgstr "无法播放该文件" #: gnomemusic/gstplayer.py:424 msgid "_Find in {}" msgstr "在 {} 中查找(_F)" #. TRANSLATORS: separator for two codecs #: gnomemusic/gstplayer.py:434 msgid " and " msgstr " 和 " #. TRANSLATORS: separator for a list of codecs #: gnomemusic/gstplayer.py:437 msgid ", " msgstr "、 " #: gnomemusic/gstplayer.py:439 msgid "{} is required to play the file, but is not installed." msgid_plural "{} are required to play the file, but are not installed." msgstr[0] "需要 {} 来播放该文件,但它尚未安装。" #: gnomemusic/inhibitsuspend.py:69 msgid "Playing music" msgstr "正在播放音乐" #. Translators: "shuffle" causes tracks to play in random order. #: gnomemusic/player.py:48 msgid "Shuffle/Repeat Off" msgstr "关闭“随机/重复播放”" #: gnomemusic/player.py:49 msgid "Repeat Song" msgstr "重复播放" #: gnomemusic/player.py:50 msgid "Repeat All" msgstr "全部重播" #: gnomemusic/playlisttoast.py:55 msgid "Playlist {} removed" msgstr "播放列表 {} 已移除" #: gnomemusic/playlisttoast.py:56 gnomemusic/songtoast.py:65 msgid "Undo" msgstr "撤消" #: gnomemusic/songtoast.py:64 msgid "{} removed from {}" msgstr "{} 已从 {} 移除" #: gnomemusic/utils.py:89 msgid "Unknown album" msgstr "未知专辑" #: gnomemusic/utils.py:110 msgid "Unknown Artist" msgstr "未知艺术家" #: gnomemusic/views/playlistsview.py:45 msgid "Playlists" msgstr "播放列表" #: gnomemusic/views/searchview.py:220 msgid "No Search Started" msgstr "未开始搜索" #: gnomemusic/views/searchview.py:222 msgid "Use the searchbar to start searching for albums, artists or songs" msgstr "使用搜索栏来搜索专辑、艺术家或歌曲" #: gnomemusic/views/searchview.py:226 msgid "No Results Found" msgstr "未找到结果" #: gnomemusic/views/searchview.py:228 msgid "Try a different search" msgstr "尝试不同的搜索" #: gnomemusic/widgets/albumwidget.py:230 msgid "{} minute" msgid_plural "{} minutes" msgstr[0] "{} 分钟" #: gnomemusic/widgets/discbox.py:74 msgid "Disc {}" msgstr "唱片 {}" #: gnomemusic/widgets/playertoolbar.py:173 msgid "Pause" msgstr "暂停" #: gnomemusic/widgets/playlistcontrols.py:130 msgid "{} Song" msgid_plural "{} Songs" msgstr[0] "{} 首歌曲" #: gnomemusic/widgets/searchheaderbar.py:50 msgid "Search songs, artists and albums" msgstr "搜索歌曲、艺术家、和专辑" #. noqa: F841 #: gnomemusic/widgets/songwidgetmenu.py:94 msgid "_Open Location" msgstr "打开位置(_O)" #. TRANSLATORS: These are verbs, to (un)mark something as a #. favorite. #: gnomemusic/widgets/startoggle.py:36 msgid "Unstar" msgstr "取消星标" #: gnomemusic/widgets/startoggle.py:36 msgid "Star" msgstr "星标" #: gnomemusic/widgets/statusnavigationpage.py:51 msgid "Your XDG Music directory is not set." msgstr "您的 XDG 音乐目录没有设置。" #: gnomemusic/widgets/statusnavigationpage.py:58 msgid "Music Folder" msgstr "音乐文件夹" #. TRANSLATORS: This is a label to display a link to open user's music #. folder. {} will be replaced with the translated text 'Music folder' #: gnomemusic/widgets/statusnavigationpage.py:66 msgid "The contents of your {} will appear here." msgstr "{} 的内容将会显示在此处。" #: gnomemusic/widgets/statusnavigationpage.py:116 msgid "No Music Found" msgstr "未找到音乐" #: gnomemusic/widgets/statusnavigationpage.py:117 msgid "Try a Different Search" msgstr "尝试不同的搜索" #: gnomemusic/widgets/statusnavigationpage.py:121 msgid "GNOME Music could not connect to Tracker." msgstr "GNOME 音乐无法连接到 Tracker。" #: gnomemusic/widgets/statusnavigationpage.py:123 msgid "Your music files cannot be indexed without Tracker running." msgstr "在 Tracker 未运行时无法对你的音乐文件进行索引。" #: gnomemusic/widgets/statusnavigationpage.py:129 msgid "Your system Tracker version seems outdated." msgstr "您的系统 Tracker 版本似乎已过时。" #: gnomemusic/widgets/statusnavigationpage.py:131 msgid "Music needs Tracker version 3.0.0 or higher." msgstr "音乐需要 Tracker 版本 3.0.0 或更高。" #~ msgid "Report music history to Last.fm" #~ msgstr "将您的音乐历史记录报告给 Last.fm" #~ msgid "" #~ "Enables or disables sending scrobbles and the “currently playing” info to " #~ "Last.fm." #~ msgstr "启用或禁用向 Last.fm 发送当前播放的曲目以及“正在播放”信息的功能。" #~ msgid "Last.fm Account" #~ msgstr "Last.fm 帐号" #~ msgid "Report Music Listening" #~ msgstr "报告音乐收听情况" #~ msgid "_Help" #~ msgstr "帮助(_H)" #~ msgid "Select" #~ msgstr "选择" #~ msgid "Back" #~ msgstr "后退" #~ msgid "" #~ "Last.fm is a music discovery service that gives you personalised " #~ "recommendations based on the music you listen to." #~ msgstr "" #~ "Last.fm 是一项音乐发现服务,可根据您的所收听的音乐为您提供个性化推荐。" #~ msgid "Music Reporting Not Setup" #~ msgstr "音乐报告没有设置" #~ msgid "Login to your Last.fm account to report your music listening." #~ msgstr "登录您的 Last.fm 帐号以便报告您的音乐收听情况。" #~ msgid "Login" #~ msgstr "登录" #~ msgid "Select All" #~ msgstr "全选" #~ msgid "Select None" #~ msgstr "全不选" #~ msgid "Click on items to select them" #~ msgstr "点击条目以选中它们" #~ msgid "_Add to Playlist" #~ msgstr "添加到播放列表(_A)" #~ msgid "Copyright The GNOME Music Developers" #~ msgstr "版权所有 GNOME“音乐”开发者" #~ msgid "Translated by" #~ msgstr "翻译贡献者" #~ msgid "Artists Results" #~ msgstr "艺术家结果" #~ msgid "Albums Results" #~ msgstr "专辑结果" #~ msgid "Selected {} song" #~ msgid_plural "Selected {} songs" #~ msgstr[0] "已选中 {} 首歌曲" #~ msgid "Your music listening is reported to Last.fm." #~ msgstr "您的音乐收听情况将报告给 Last.fm。" #~ msgid "Your music listening is not reported to Last.fm." #~ msgstr "您的音乐收听情况不会报告给 Last.fm。" #~ msgid "Logged in as {}" #~ msgstr "以 {} 登录" #~ msgid "Configure" #~ msgstr "设置" #~ msgid "A music player and management application for GNOME." #~ msgstr "GNOME 音乐播放及管理程序。" #~ msgid "Visit GNOME Music website" #~ msgstr "访问“GNOME 音乐”网站" #~ msgid "" #~ "GNOME Music 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.\n" #~ "\n" #~ "GNOME Music 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.\n" #~ "\n" #~ "You should have received a copy of the GNU General Public License along " #~ "with GNOME Music; if not, write to the Free Software Foundation, Inc., 51 " #~ "Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ "\n" #~ "The GNOME Music authors hereby grant permission for non-GPL compatible " #~ "GStreamer plugins to be used and distributed together with GStreamer and " #~ "GNOME Music. This permission is above and beyond the permissions granted " #~ "by the GPL license by which GNOME Music is covered. If you modify this " #~ "code, you may extend this exception to your version of the code, but you " #~ "are not obligated to do so. If you do not wish to do so, delete this " #~ "exception statement from your version." #~ msgstr "" #~ "GNOME 音乐是自由软件;您可以在自由软件基金会发布的 GNU 通用公共许可证的条" #~ "款下重新分发和(或)修改它;您可以选择使用 GPL 第二版,或(按照您的意愿)" #~ "任何更新的版本。\n" #~ "\n" #~ "GNOME 音乐分发的目的是希望它物有所用,但是没有任何担保;没有对其适销性和某" #~ "一特定目的下的适用性的任何即便是暗示的担保。请查阅 GNU 通用公共许可证以获" #~ "得更多信息。\n" #~ "\n" #~ "您应当已经跟 GNOME 音乐一起收到一份 GNU 通用公众许可证的副本;如果没有,请" #~ "写信至:Free Software Foundation, Inc.,\n" #~ "51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA\n" #~ "\n" #~ "GNOME 音乐的作者在此对非 GPL 兼容的 GStreamer 插件同 GNOME 音乐及 " #~ "GStreamer 一道使用及分发给予许可。该许可优于并覆盖在 GNOME 音乐的 GPL 授权" #~ "许可之上。如果您修改该代码,您可以将该例外扩展到您的代码,但非强制。如果您" #~ "不愿意如此,从您的版本中删除该例外声明。" #~ msgid "The contents of your Music Folder will appear here" #~ msgstr "您的音乐文件夹的内容将会显示在此处" #~ msgid "GNOME Music" #~ msgstr "GNOME 音乐" #~ msgid "Window position" #~ msgstr "窗口位置" #~ msgid "Window position (x and y)." #~ msgstr "窗口位置(水平和竖直)。" #~ msgid "Loading" #~ msgstr "正在加载" #~ msgid "Add to Playlist…" #~ msgstr "添加到播放列表…" #~ msgid "" #~ "An easy way to play your music. Automatically discover music on your " #~ "computer, the local network and internet services." #~ msgstr "简单易用的音乐播放器。自动探索电脑上和网络上的音乐。" #~ msgid "" #~ "Find tracks in your local collection, get music from DLNA servers or try " #~ "something new with the Jamendo and Magnatune services." #~ msgstr "" #~ "在你的本地收藏中寻找音乐,从 DLNA 服务器或是 Jamendo 和 Magnatune 上获得新" #~ "音乐。" #~ msgid "Inital state has been displayed" #~ msgstr "初始状态已被显示" #~ msgid "Set to true when initial state has been displayed" #~ msgstr "当初始状态被显示时设置为 true" #~ msgid "Released" #~ msgstr "发布时间" #~ msgid "Running Length" #~ msgstr "总时长" #~ msgid "Composer" #~ msgstr "作曲" #~ msgctxt "context menu item" #~ msgid "Play" #~ msgstr "播放" #~ msgid "Hey DJ" #~ msgstr "嘿 DJ" #~ msgid "Artist" #~ msgstr "艺术家" #~ msgid "Album" #~ msgstr "专辑" #~ msgid "Track Title" #~ msgstr "音轨标题" #~ msgid "Local" #~ msgstr "本地" #~ msgid "Sources" #~ msgstr "来源" #~ msgid "Match" #~ msgstr "匹配" #~ msgid "@icon@" #~ msgstr "@icon@" #~ msgid "Untitled" #~ msgstr "无标题" #~ msgid "_Quit" #~ msgstr "退出(_Q)" #~ msgid "Music is the new GNOME music playing application." #~ msgstr "“音乐”是一款新的 GNOME 音乐播放应用。" #~ msgid "org.gnome.Music" #~ msgstr "org.gnome.Music" #~ msgid "Selected %d item" #~ msgid_plural "Selected %d items" #~ msgstr[0] "已选择 %d 个项目" #~ msgid "Empty" #~ msgstr "空" #~ msgid "Search mode" #~ msgstr "搜索模式" #~ msgid "If true, the search bar is shown." #~ msgstr "如果为真,则显示搜索框。" #~ msgid "Notifications mode" #~ msgstr "通知模式" #~ msgid "Enables or disables playback notifications" #~ msgstr "启用或禁用播放的通知" #~ msgid "%d min" #~ msgstr "%d 分钟" #~ msgid "Select Playlist" #~ msgstr "选择播放列表" #~ msgid "Max chars to display in track name on Artist view" #~ msgstr "在艺术家视图中显示音轨名称的最多字符数" #~ msgid "" #~ "This setting modifies the amount of chars for track title on Artist view " #~ "before its been ellipsized. Set this to -1 to disable" #~ msgstr "" #~ "此设置改变艺术家视图中音轨标题在省略号前显示的字符数量。设为 -1 则禁用" #, fuzzy #~ msgid "the a an" #~ msgstr "the a an" #~ msgid "All Artists" #~ msgstr "全部艺术家" #~ msgid "Not playing" #~ msgstr "尚未播放" #~ msgid "by %s, from %s" #~ msgstr "艺术家:%s,专辑:%s" #~ msgid "" #~ "No Music found!\n" #~ " Put some files into the folder %s" #~ msgstr "" #~ "没有找到音乐!\n" #~ "请将音乐文件放入文件夹 %s" #~ msgid "_New Playlist" #~ msgstr "新建播放列表(_N)" #~ msgid "Load More" #~ msgstr "加载更多" #~ msgid "Now _Playing" #~ msgstr "正在播放(_P)" #~ msgid "----" #~ msgstr "----" #~ msgid "--:--" #~ msgstr "--:--" #, fuzzy #~ msgid "0:00" #~ msgstr "00:00" #~ msgid "/" #~ msgstr "/" 0707010000011A000081A400000000000000000000000166968E4E00002760000000000000000000000000000000000000001D00000000gnome-music-46.1/po/zh_HK.po# Chinese (Hong Kong) translation for gnome-music. # Copyright (C) 2013 gnome-music's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-music package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: gnome-music master\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" "music&keywords=I18N+L10N&component=general\n" "POT-Creation-Date: 2014-03-05 19:58+0000\n" "PO-Revision-Date: 2014-03-09 11:57+0800\n" "Last-Translator: Chao-Hsiung Liao \n" "Language-Team: Chinese (Hong Kong) \n" "Language: zh_TW\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 1.6.3\n" "Plural-Forms: nplurals=1; plural=0;\n" #: ../data/org.gnome.Music.gschema.xml.h:1 msgid "Window size" msgstr "視窗尺寸" #: ../data/org.gnome.Music.gschema.xml.h:2 msgid "Window size (width and height)." msgstr "視窗大小 (闊度與高度)。" #: ../data/org.gnome.Music.gschema.xml.h:3 msgid "Window position" msgstr "視窗位置" #: ../data/org.gnome.Music.gschema.xml.h:4 msgid "Window position (x and y)." msgstr "視窗位置 (x 與 y)。" #: ../data/org.gnome.Music.gschema.xml.h:5 msgid "Window maximized" msgstr "視窗已最大化" #: ../data/org.gnome.Music.gschema.xml.h:6 msgid "Window maximized state." msgstr "視窗為最大化狀態。" #: ../data/org.gnome.Music.gschema.xml.h:7 msgid "Playback repeat mode" msgstr "重複播放模式" #. Translators: Don't translate allowed values, just the description in the brackets #: ../data/org.gnome.Music.gschema.xml.h:9 msgid "" "Value identifies whether to repeat or randomize playback through the " "collection. Allowed values are: \"none\" (repeat and shuffle are off), \"song" "\" (repeat current song), \"all\" (repeat playlist, no shuffle), \"shuffle" "\" (shuffle playlist, presumes repeat all)." msgstr "用來辨別是要重複播放收藏集或是亂數播放的值。允許的值有:「none」(不重複也不隨機)、「song」(重複目前曲目)、「all」(重複播放清單曲目,不隨機) 和「shuffle」(隨機播放清單曲目,假定全部重複)。" #: ../data/org.gnome.Music.gschema.xml.h:10 msgid "Search mode" msgstr "搜尋模式" #: ../data/org.gnome.Music.gschema.xml.h:11 msgid "If true, the search bar is shown." msgstr "如果設定為 true,則顯示搜尋工具列。" #: ../data/gnome-music.desktop.in.h:1 ../gnomemusic/application.py:46 #: ../gnomemusic/application.py:102 ../gnomemusic/window.py:57 #: ../data/AboutDialog.ui.in.h:1 msgid "Music" msgstr "音樂" #: ../data/gnome-music.desktop.in.h:2 msgid "Music Player" msgstr "音樂播放器" #: ../data/gnome-music.desktop.in.h:3 ../data/gnome-music.appdata.xml.in.h:2 msgid "Play and organize your music collection" msgstr "播放與組織你的音樂收藏集" #: ../data/gnome-music.appdata.xml.in.h:1 msgid "GNOME Music" msgstr "GNOME Music" #: ../data/gnome-music.appdata.xml.in.h:3 msgid "Music is the new GNOME music playing application." msgstr "Music 是新的 GNOME 音樂播放應用程式。" #: ../gnomemusic/albumArtCache.py:235 ../gnomemusic/albumArtCache.py:243 msgid "Untitled" msgstr "無標題" #: ../gnomemusic/notification.py:70 msgid "Not playing" msgstr "不播放" #: ../gnomemusic/notification.py:79 ../gnomemusic/player.py:365 #: ../gnomemusic/view.py:249 ../gnomemusic/view.py:437 #: ../gnomemusic/view.py:650 ../gnomemusic/view.py:964 msgid "Unknown Artist" msgstr "不明的演出者" #: ../gnomemusic/notification.py:81 ../gnomemusic/view.py:535 msgid "Unknown Album" msgstr "不明的專輯" #. TRANSLATORS: by refers to the artist, from to the album #: ../gnomemusic/notification.py:85 #, python-format msgid "by %s, from %s" msgstr "歌手 %s,專輯 %s" #: ../gnomemusic/notification.py:125 msgid "Previous" msgstr "前一首" #: ../gnomemusic/notification.py:128 msgid "Pause" msgstr "暫停" #: ../gnomemusic/notification.py:131 msgid "Play" msgstr "播放" #: ../gnomemusic/notification.py:133 msgid "Next" msgstr "下一首" #: ../gnomemusic/view.py:193 ../gnomemusic/widgets.py:261 #: ../gnomemusic/window.py:211 #, python-format msgid "Selected %d item" msgid_plural "Selected %d items" msgstr[0] "己選擇 %d 項目" #: ../gnomemusic/view.py:195 ../gnomemusic/widgets.py:263 #: ../gnomemusic/window.py:215 ../gnomemusic/window.py:229 #: ../data/headerbar.ui.in.h:3 msgid "Click on items to select them" msgstr "點按項目來選取它們" #: ../gnomemusic/view.py:318 #, python-format msgid "" "No Music found!\n" " Put some files into the folder %s" msgstr "" "找不到音樂!\n" " 請將檔案放到資料夾 %s" #: ../gnomemusic/view.py:325 msgid "Albums" msgstr "專輯" #: ../gnomemusic/view.py:391 msgid "Songs" msgstr "歌曲" #: ../gnomemusic/view.py:548 msgid "Artists" msgstr "演出者" #: ../gnomemusic/view.py:585 ../gnomemusic/view.py:587 #: ../gnomemusic/widgets.py:451 msgid "All Artists" msgstr "所有演出者" #: ../gnomemusic/view.py:717 msgid "Playlists" msgstr "播放清單" #: ../gnomemusic/view.py:981 #, python-format #| msgid "Songs" msgid "%d Song" msgid_plural "%d Songs" msgstr[0] "%d 歌曲" #: ../gnomemusic/widgets.py:75 ../gnomemusic/widgets.py:95 msgid "Load More" msgstr "載入更多" #: ../gnomemusic/widgets.py:85 msgid "Loading..." msgstr "正在載入…" #: ../gnomemusic/widgets.py:670 #| msgid "_New Playlist" msgid "New Playlist" msgstr "新增播放清單" #: ../gnomemusic/window.py:181 msgid "Empty" msgstr "清空" #: ../data/AboutDialog.ui.in.h:2 msgid "Copyright © 2013 GNOME Music Developers" msgstr "版權所有 © 2013 GNOME Music 開發隊伍" #: ../data/AboutDialog.ui.in.h:3 msgid "A music player and management application for GNOME." msgstr "GNOME 的音樂播放器與管理程式。" #: ../data/AboutDialog.ui.in.h:4 msgid "Visit GNOME Music website" msgstr "參訪 GNOME Music 網站" #: ../data/AboutDialog.ui.in.h:5 msgid "" "GNOME Music 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.\n" "\n" "GNOME Music 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.\n" "\n" "You should have received a copy of the GNU General Public License along with " "GNOME Music; if not, write to the Free Software Foundation, Inc., 51 " "Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" "\n" "The GNOME Music authors hereby grant permission for non-GPL compatible " "GStreamer plugins to be used and distributed together with GStreamer and " "GNOME Music. This permission is above and beyond the permissions granted by " "the GPL license by which GNOME Music is covered. If you modify this code, " "you may extend this exception to your version of the code, but you are not " "obligated to do so. If you do not wish to do so, delete this exception " "statement from your version." msgstr "" "GNOME Music 是自由軟件,你可以遵照自由軟件基金會 (Free Software Foundation) 出版的 GNU 通用公共授權條款 (GNU General Public License) 第二版來修改和重新發佈這一程式,或者自由選擇使用之後的任何版本。\n" "\n" "發佈 GNOME Music 程式的目的是希望它有用,但「沒有任何擔保」;甚至也沒有「可以銷售」或「適合特定目的」等隱示性擔保。詳細內容請參閱 GNU 通用公共授權。\n" "\n" "你應該已經隨程式一起收到一份 GNU 通用公共授權的副本。如果還沒有,請寫信給:Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" "\n" "GNOME Music 作者羣特此授予不兼容於 GPL 授權的 GStreamer 外掛程式能隨 GStreamer 及 GNOME Music 一同使用、散佈之許可。這項許可高於且超出 GNOME Music 遵照之 GPL 授權所授予之許可範圍。如果你修改此份程式碼,你可以將此例外條款擴及至你自身的版本上,但你沒有義務必須也這麼作。如果你不希望有此例外條款,請將例外聲明從你的版本中移除。" #: ../data/AlbumWidget.ui.h:1 msgid "Released" msgstr "發行" #: ../data/AlbumWidget.ui.h:2 msgid "Running Length" msgstr "播放長度" #: ../data/app-menu.ui.h:1 msgid "_New Playlist" msgstr "新增播放清單(_N)" #: ../data/app-menu.ui.h:2 msgid "_Help" msgstr "求助(_H)" #: ../data/app-menu.ui.h:3 msgid "_About" msgstr "關於(_A)" #: ../data/app-menu.ui.h:4 msgid "_Quit" msgstr "結束(_Q)" #: ../data/PlayerToolbar.ui.h:1 msgid "Shuffle" msgstr "亂數" #: ../data/PlayerToolbar.ui.h:2 msgid "Repeat All" msgstr "全部重複播放" #: ../data/PlayerToolbar.ui.h:3 msgid "Repeat Song" msgstr "重複播放歌曲" #: ../data/PlayerToolbar.ui.h:4 msgid "Shuffle/Repeat Off" msgstr "亂數/重複播放關閉" #: ../data/NoMusic.ui.h:1 msgid "No Music Found" msgstr "找不到音樂" #: ../data/headerbar.ui.in.h:1 msgid "Select All" msgstr "全選" #: ../data/headerbar.ui.in.h:2 msgid "Select None" msgstr "取消全選" #: ../data/headerbar.ui.in.h:4 ../data/PlaylistDialog.ui.in.h:2 msgid "Cancel" msgstr "取消" #: ../data/SelectionToolbar.ui.h:1 msgid "Add to Playlist" msgstr "加入至播放清單" #: ../data/SelectionToolbar.ui.h:2 #| msgid "Add to Playlist" msgid "Remove from Playlist" msgstr "從播放清單移除" #: ../data/PlaylistControls.ui.h:1 #| msgid "Play" msgid "_Play" msgstr "播放(_P)" #: ../data/PlaylistControls.ui.h:2 msgid "_Delete" msgstr "刪除(_D)" #: ../data/PlaylistDialog.ui.in.h:1 #| msgid "Select All" msgid "Select Playlist" msgstr "選擇播放清單" #: ../data/PlaylistDialog.ui.in.h:3 #| msgid "Select All" msgid "Select" msgstr "選擇" #~ msgid "Now _Playing" #~ msgstr "現正播放(_N)" 0707010000011B000081A400000000000000000000000166968E4E00005948000000000000000000000000000000000000001D00000000gnome-music-46.1/po/zh_TW.po# Chinese (Taiwan) translation for gnome-music. # Copyright (C) 2013 gnome-music's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-music package. # # pan93412 , 2019. # Freddy Cheng , 2022. # msgid "" msgstr "" "Project-Id-Version: gnome-music master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-music/issues\n" "POT-Creation-Date: 2022-08-31 19:15+0000\n" "PO-Revision-Date: 2022-10-18 21:08+0800\n" "Last-Translator: Cheng-Chia Tseng \n" "Language-Team: Chinese - Taiwan \n" "Language: zh_TW\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Poedit 3.1.1\n" #: data/org.gnome.Music.appdata.xml.in.in:6 #: data/org.gnome.Music.desktop.in.in:3 gnomemusic/about.py:236 #: gnomemusic/application.py:61 gnomemusic/window.py:71 msgid "Music" msgstr "音樂" #: data/org.gnome.Music.appdata.xml.in.in:7 #: data/org.gnome.Music.desktop.in.in:5 msgid "Play and organize your music collection" msgstr "播放與管理您所收藏的音樂" #: data/org.gnome.Music.appdata.xml.in.in:9 msgid "An easy and pleasant way to play your music." msgstr "一種輕鬆且愉悅的音樂播放方式。" #: data/org.gnome.Music.appdata.xml.in.in:12 msgid "" "Find tracks in your local collection, use automatically generated playlists " "or curate a fresh one." msgstr "尋找您電腦中的音樂,並能自動產生或是自行編排播放列表。" #: data/org.gnome.Music.appdata.xml.in.in:167 msgid "The GNOME Music developers" msgstr "GNOME 音樂開發群" #: data/org.gnome.Music.desktop.in.in:4 msgid "Music Player" msgstr "音樂播放器" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Music.desktop.in.in:13 msgid "Music;Player;" msgstr "Music;Player;音樂;播放器;mp3;聽音樂;歌;lastfm;" #: data/org.gnome.Music.gschema.xml:12 msgid "Window size" msgstr "視窗尺寸" #: data/org.gnome.Music.gschema.xml:13 msgid "Window size (width and height)." msgstr "視窗大小 (寬度,高度)。" #: data/org.gnome.Music.gschema.xml:17 msgid "Window maximized" msgstr "視窗最大化" #: data/org.gnome.Music.gschema.xml:18 msgid "Window maximized state." msgstr "是否要最大化視窗。" #: data/org.gnome.Music.gschema.xml:22 msgid "Playback repeat mode" msgstr "重複播放模式" #. Translators: Don't translate allowed values, just the description in the brackets #: data/org.gnome.Music.gschema.xml:24 msgid "" "Value identifies whether to repeat or randomize playback through the " "collection. Allowed values are: “none” (repeat and shuffle are off), " "“song” (repeat current song), “all” (repeat playlist, no shuffle), " "“shuffle” (shuffle playlist, presumes repeat all)." msgstr "" "用來辨別是要重複播放蒐藏或隨機播放的值。允許的值有:\n" "「none」(不重複也不隨機)\n" "「song」(重複目前曲目)\n" "「all」(重複播放清單曲目,不隨機)\n" "「shuffle」(隨機播放清單曲目,假定全部重複)" #: data/org.gnome.Music.gschema.xml:28 msgid "Enable ReplayGain" msgstr "啟用播放增益" #: data/org.gnome.Music.gschema.xml:29 msgid "Enables or disables ReplayGain for albums" msgstr "啟用或停用專輯的播放增益" #: data/org.gnome.Music.gschema.xml:33 msgid "Inhibit system suspend" msgstr "防止系統暫停" #: data/org.gnome.Music.gschema.xml:34 msgid "Enables or disables inhibiting system suspend while playing music" msgstr "啟用或停用音樂播放時的防止系統進入暫停" #: data/org.gnome.Music.gschema.xml:38 msgid "Report music history to Last.fm" msgstr "將音樂記錄上傳至《Last.fm》" #: data/org.gnome.Music.gschema.xml:39 msgid "" "Enables or disables sending scrobbles and the “currently playing” info to " "Last.fm." msgstr "啟用/停用上傳音樂記錄及「目前播放」資訊至《Last.fm》。" #: data/ui/AlbumWidget.ui:84 data/ui/PlayerToolbar.ui:87 #: data/ui/PlaylistControls.ui:101 gnomemusic/widgets/playertoolbar.py:170 msgid "Play" msgstr "播放" #: data/ui/AlbumWidget.ui:130 data/ui/PlaylistControls.ui:5 #: data/ui/SongWidgetMenu.ui:11 msgid "_Play" msgstr "播放(_P)" #: data/ui/AlbumWidget.ui:134 msgid "Add to _Favorite Songs" msgstr "加入喜愛的歌曲(_F)" #: data/ui/AlbumWidget.ui:138 data/ui/SongWidgetMenu.ui:15 msgid "_Add to Playlist…" msgstr "加入播放清單(_A)…" #: data/ui/AppMenu.ui:23 data/ui/LastfmDialog.ui:8 msgid "Last.fm Account" msgstr "Last.fm 帳號" #: data/ui/AppMenu.ui:36 msgid "Report Music Listening" msgstr "上傳音樂聆聽紀錄" #: data/ui/AppMenu.ui:58 msgid "_Keyboard Shortcuts" msgstr "鍵盤捷徑鍵(_K)" #: data/ui/AppMenu.ui:68 msgid "_Help" msgstr "求助(_H)" #: data/ui/AppMenu.ui:78 msgid "_About Music" msgstr "關於音樂(_A)" #: data/ui/EmptyView.ui:30 msgid "Welcome to Music" msgstr "歡迎使用《音樂》" #: data/ui/HeaderBar.ui:16 msgid "Menu" msgstr "選單" #: data/ui/HeaderBar.ui:24 data/ui/SearchHeaderBar.ui:15 msgid "Select" msgstr "選取音樂" #: data/ui/HeaderBar.ui:30 data/ui/PlaylistDialog.ui:213 #: data/ui/SearchHeaderBar.ui:20 msgid "_Cancel" msgstr "取消(_C)" #: data/ui/HeaderBar.ui:42 data/ui/SearchHeaderBar.ui:32 msgid "Search" msgstr "搜尋" #: data/ui/HeaderBar.ui:50 msgid "Back" msgstr "返回" #: data/ui/help-overlay.ui:11 msgctxt "shortcut window" msgid "General" msgstr "一般" #: data/ui/help-overlay.ui:14 msgctxt "shortcut window" msgid "Close window" msgstr "關閉視窗" #: data/ui/help-overlay.ui:20 msgctxt "shortcut window" msgid "Search" msgstr "搜尋" #: data/ui/help-overlay.ui:26 msgctxt "shortcut window" msgid "Help" msgstr "求助" #: data/ui/help-overlay.ui:32 msgctxt "shortcut window" msgid "Shortcuts" msgstr "捷徑鍵" #: data/ui/help-overlay.ui:40 msgctxt "shortcut window" msgid "Playback" msgstr "播放控制" #: data/ui/help-overlay.ui:43 msgctxt "shortcut window" msgid "Play/Pause" msgstr "播放/暫停" #: data/ui/help-overlay.ui:49 msgctxt "shortcut window" msgid "Next song" msgstr "下一首" #: data/ui/help-overlay.ui:55 msgctxt "shortcut window" msgid "Previous song" msgstr "上一首" #: data/ui/help-overlay.ui:61 msgctxt "shortcut window" msgid "Toggle repeat" msgstr "切換重複播放模式" #: data/ui/help-overlay.ui:67 msgctxt "shortcut window" msgid "Toggle shuffle" msgstr "切換隨機播放模式" #: data/ui/help-overlay.ui:75 msgctxt "shortcut window" msgid "Navigation" msgstr "導覽" #: data/ui/help-overlay.ui:78 msgctxt "shortcut window" msgid "Go to Albums" msgstr "前往專輯分頁" #: data/ui/help-overlay.ui:84 msgctxt "shortcut window" msgid "Go to Artists" msgstr "前往演出者分頁" #: data/ui/help-overlay.ui:90 msgctxt "shortcut window" msgid "Go to Songs" msgstr "前往歌曲分頁" #: data/ui/help-overlay.ui:96 msgctxt "shortcut window" msgid "Go to Playlists" msgstr "前往播放清單分頁" #: data/ui/help-overlay.ui:102 msgctxt "shortcut window" msgid "Go back" msgstr "返回" #: data/ui/LastfmDialog.ui:21 msgid "" "Last.fm is a music discovery service that gives you personalised " "recommendations based on the music you listen to." msgstr "" "《Last.fm》是一種音樂探索服務,能根據您的聆聽習慣提供個人化的音樂建議。" #: data/ui/LastfmDialog.ui:31 gnomemusic/widgets/lastfmdialog.py:57 msgid "Music Reporting Not Setup" msgstr "音樂聆聽紀錄上傳功能尚未初始化" #: data/ui/LastfmDialog.ui:44 gnomemusic/widgets/lastfmdialog.py:60 msgid "Login to your Last.fm account to report your music listening." msgstr "登入您的《Last.fm》帳號後便能上傳音樂聆聽紀錄。" #: data/ui/LastfmDialog.ui:55 gnomemusic/widgets/lastfmdialog.py:58 msgid "Login" msgstr "登入" #: data/ui/PlayerToolbar.ui:74 msgid "Previous" msgstr "上一曲" #: data/ui/PlayerToolbar.ui:106 msgid "Next" msgstr "下一曲" #: data/ui/PlaylistControls.ui:9 msgid "_Delete" msgstr "刪除(_D)" #: data/ui/PlaylistControls.ui:13 msgid "_Rename…" msgstr "重新命名(_R)…" #: data/ui/PlaylistControls.ui:28 msgid "Playlist Name" msgstr "播放清單名稱" #: data/ui/PlaylistControls.ui:62 msgid "_Done" msgstr "完成(_D)" #: data/ui/PlaylistDialog.ui:52 msgid "Enter a name for your first playlist" msgstr "為您的第一個播放清單命名" #: data/ui/PlaylistDialog.ui:77 msgid "C_reate" msgstr "建立(_R)" #: data/ui/PlaylistDialog.ui:146 msgid "New Playlist…" msgstr "新播放清單…" #: data/ui/PlaylistDialog.ui:161 msgid "Add" msgstr "加入" #: data/ui/PlaylistDialog.ui:202 msgid "Add to Playlist" msgstr "加入播放清單" #: data/ui/PlaylistDialog.ui:222 msgid "_Add" msgstr "加入(_A)" #: data/ui/SearchView.ui:33 gnomemusic/views/artistsview.py:51 msgid "Artists" msgstr "演出者" #: data/ui/SearchView.ui:42 data/ui/SearchView.ui:84 msgid "View All" msgstr "檢視全部" #: data/ui/SearchView.ui:75 gnomemusic/views/albumsview.py:56 msgid "Albums" msgstr "專輯" #: data/ui/SearchView.ui:117 gnomemusic/views/songsview.py:52 msgid "Songs" msgstr "歌曲" #: data/ui/SelectionBarMenuButton.ui:7 msgid "Select All" msgstr "全選" #: data/ui/SelectionBarMenuButton.ui:11 msgid "Select None" msgstr "取消全選" #: data/ui/SelectionBarMenuButton.ui:19 gnomemusic/widgets/headerbar.py:69 msgid "Click on items to select them" msgstr "點一下即可選取項目" #: data/ui/SelectionToolbar.ui:8 msgid "_Add to Playlist" msgstr "加入播放清單(_A)" #: data/ui/SongWidgetMenu.ui:19 msgid "_Remove from Playlist" msgstr "自播放清單中移除(_R)" #: gnomemusic/about.py:238 msgid "The GNOME Project" msgstr "GNOME 專案" #: gnomemusic/about.py:242 msgid "translator-credits" msgstr "" "Yi-Jyun Pan , 2019.\n" "Freddy Cheng , 2922." #: gnomemusic/about.py:246 msgid "Copyright The GNOME Music Developers" msgstr "著作權所有 ©《音樂》開發者群" #: gnomemusic/about.py:249 msgid "Translated by" msgstr "翻譯者" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:894 msgid "Most Played" msgstr "最常播放" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:948 msgid "Never Played" msgstr "從未播放" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1001 msgid "Recently Played" msgstr "近期播放" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1064 msgid "Recently Added" msgstr "近期加入" #. TRANSLATORS: this is a playlist name #: gnomemusic/grilowrappers/grltrackerplaylists.py:1127 msgid "Favorite Songs" msgstr "喜愛的歌曲" #: gnomemusic/gstplayer.py:408 msgid "Unable to play the file" msgstr "無法播放該檔案" #: gnomemusic/gstplayer.py:414 msgid "_Find in {}" msgstr "於「{}」中尋找(_F)" #. TRANSLATORS: separator for two codecs #: gnomemusic/gstplayer.py:424 msgid " and " msgstr " 與 " #. TRANSLATORS: separator for a list of codecs #: gnomemusic/gstplayer.py:427 msgid ", " msgstr "、" #: gnomemusic/gstplayer.py:429 msgid "{} is required to play the file, but is not installed." msgid_plural "{} are required to play the file, but are not installed." msgstr[0] "需安裝「{}」後才能播放該檔案。" #: gnomemusic/inhibitsuspend.py:63 msgid "Playing music" msgstr "播放中的音樂" #. Translators: "shuffle" causes tracks to play in random order. #: gnomemusic/player.py:44 msgid "Shuffle" msgstr "隨機播放" #: gnomemusic/player.py:45 msgid "Repeat Song" msgstr "單曲重複播放" #: gnomemusic/player.py:46 msgid "Repeat All" msgstr "全部重複播放" #: gnomemusic/player.py:47 msgid "Shuffle/Repeat Off" msgstr "隨機/重複播放關閉" #: gnomemusic/playlisttoast.py:55 msgid "Playlist {} removed" msgstr "已移除「{}」" #: gnomemusic/playlisttoast.py:56 gnomemusic/songtoast.py:65 msgid "Undo" msgstr "還原" #: gnomemusic/songtoast.py:64 msgid "{} removed from {}" msgstr "「{}」已從「{}」中移除" #: gnomemusic/utils.py:92 msgid "Unknown album" msgstr "不明專輯" #: gnomemusic/utils.py:113 msgid "Unknown Artist" msgstr "不明演出者" #: gnomemusic/views/emptyview.py:65 msgid "Your XDG Music directory is not set." msgstr "尚未設定 XDG 音樂目錄。" #: gnomemusic/views/emptyview.py:72 msgid "Music Folder" msgstr "音樂資料夾" #. TRANSLATORS: This is a label to display a link to open user's music #. folder. {} will be replaced with the translated text 'Music folder' #: gnomemusic/views/emptyview.py:76 msgid "The contents of your {} will appear here." msgstr "您位於{}中的內容會顯示於此。" #: gnomemusic/views/emptyview.py:124 msgid "No Music Found" msgstr "找不到音樂" #: gnomemusic/views/emptyview.py:125 msgid "Try a Different Search" msgstr "請嘗試不同的搜尋內容" #: gnomemusic/views/emptyview.py:129 msgid "GNOME Music could not connect to Tracker." msgstr "《音樂》無法連接《Tracker》。" #: gnomemusic/views/emptyview.py:131 msgid "Your music files cannot be indexed without Tracker running." msgstr "倘若《Tracker》未執行便無法檢索音樂檔案。" #: gnomemusic/views/emptyview.py:137 msgid "Your system Tracker version seems outdated." msgstr "系統所安裝的《Tracker》版本似乎過舊。" #: gnomemusic/views/emptyview.py:139 msgid "Music needs Tracker version 3.0.0 or higher." msgstr "《音樂》需要《Tracker》3.0.0 以上的版本。" #: gnomemusic/views/playlistsview.py:45 msgid "Playlists" msgstr "播放清單" #: gnomemusic/views/searchview.py:304 msgid "Artists Results" msgstr "演出者搜尋結果" #: gnomemusic/views/searchview.py:318 msgid "Albums Results" msgstr "專輯搜尋結果" #: gnomemusic/widgets/albumwidget.py:245 msgid "{} minute" msgid_plural "{} minutes" msgstr[0] "{} 分鐘" #: gnomemusic/widgets/discbox.py:75 msgid "Disc {}" msgstr "光碟 {}" #: gnomemusic/widgets/headerbar.py:66 msgid "Selected {} song" msgid_plural "Selected {} songs" msgstr[0] "己選取 {} 首歌" #: gnomemusic/widgets/lastfmdialog.py:64 msgid "Your music listening is reported to Last.fm." msgstr "您的音樂聆聽紀錄將會上傳至《Last.fm》。" #: gnomemusic/widgets/lastfmdialog.py:66 msgid "Your music listening is not reported to Last.fm." msgstr "您的音樂聆聽紀錄不會上傳至《Last.fm》。" #. TRANSLATORS: displays the username of the Last.fm account #: gnomemusic/widgets/lastfmdialog.py:70 msgid "Logged in as {}" msgstr "以「{}」登入" #: gnomemusic/widgets/lastfmdialog.py:71 msgid "Configure" msgstr "設定" #: gnomemusic/widgets/playertoolbar.py:167 msgid "Pause" msgstr "暫停" #: gnomemusic/widgets/playlistcontrols.py:130 msgid "{} Song" msgid_plural "{} Songs" msgstr[0] "{} 首歌曲" #~ msgid "A music player and management application for GNOME." #~ msgstr "GNOME 的音樂播放與管理應用程式。" #~ msgid "Visit GNOME Music website" #~ msgstr "造訪《音樂》網站" #~| msgid "" #~| "GNOME Music 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.\n" #~| "\n" #~| "GNOME Music 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.\n" #~| "\n" #~| "You should have received a copy of the GNU General Public License along " #~| "with GNOME Music; if not, write to the Free Software Foundation, Inc., " #~| "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~| "\n" #~| "The GNOME Music authors hereby grant permission for non-GPL compatible " #~| "GStreamer plugins to be used and distributed together with GStreamer and " #~| "GNOME Music. This permission is above and beyond the permissions " #~| "granted by the GPL license by which GNOME Music is covered. If you " #~| "modify this code, you may extend this exception to your version of the " #~| "code, but you are not obligated to do so. If you do not wish to do so, " #~| "delete this exception statement from your version.\n" #~| "\n" #~| "“Magic of the vinyl” by Sami Pyylampi image is licensed by CC-BY-SA 2.0 " #~| "https://www.flickr.com/photos/_spy_/12270839403" #~ msgid "" #~ "GNOME Music 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.\n" #~ "\n" #~ "GNOME Music 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.\n" #~ "\n" #~ "You should have received a copy of the GNU General Public License along " #~ "with GNOME Music; if not, write to the Free Software Foundation, Inc., 51 " #~ "Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ "\n" #~ "The GNOME Music authors hereby grant permission for non-GPL compatible " #~ "GStreamer plugins to be used and distributed together with GStreamer and " #~ "GNOME Music. This permission is above and beyond the permissions granted " #~ "by the GPL license by which GNOME Music is covered. If you modify this " #~ "code, you may extend this exception to your version of the code, but you " #~ "are not obligated to do so. If you do not wish to do so, delete this " #~ "exception statement from your version." #~ msgstr "" #~ "《音樂》為自由軟體,您可以遵照自由軟體基金會 (Free Software Foundation) 所" #~ "出版的 《GNU 通用公共授權條款》 (GNU General Public License) 第二版來修改" #~ "和重新發布這一程式;您也能自由選擇之後的任何版本做使用。\n" #~ "\n" #~ "我們將《音樂》無償提供給所有人使用,但「沒有任何擔保責任」;甚至也沒有「可" #~ "以銷售」或「適合特定目的」等隱示性擔保。詳情請參閱《GNU 通用公共授權條" #~ "款》。\n" #~ "\n" #~ "您應該已隨本程式一起收到一份《GNU 通用公共授權條款》的副本。倘若您尚未收" #~ "到,請寫封信至:Free Software Foundation, Inc., 51 Franklin Street, Fifth " #~ "Floor, Boston, MA 02110-1301 USA.\n" #~ "\n" #~ "《GNOME 音樂》作者群特此授予不相容於 GPL 授權的 GStreamer 外掛程式能隨 " #~ "GStreamer 及《GNOME 音樂》一同使用、散佈之許可。這項許可高於且超出《GNOME " #~ "音樂》遵照之 GPL 授權所授予之許可範圍。如果您修改此份程式碼,您可以將此例" #~ "外條款擴及至您自身的版本上,但您沒有義務必須跟著這麼作。如果您不希望有此例" #~ "外條款,請將例外聲明從您的版本中移除。" #~| msgid "The contents of your {} will appear here." #~ msgid "The contents of your Music Folder will appear here" #~ msgstr "您位於音樂資料夾中的內容會顯示於此" #~ msgid "GNOME Music" #~ msgstr "GNOME 音樂" #~ msgid "" #~ "An easy way to play your music. Automatically discover music on your " #~ "computer, the local network and internet services." #~ msgstr "" #~ "用簡單的方式播放音樂,自動探索您電腦、區域網路和網際網路服務中的音樂。" #~ msgid "" #~ "Find tracks in your local collection, get music from DLNA servers or try " #~ "something new with the Jamendo and Magnatune services." #~ msgstr "" #~ "在您的本地集合中找尋曲目,從 DLNA 伺服器取得音樂或透過 Jamendo 和 " #~ "Magnatune 服務找尋些新音樂。" #~ msgid "Window position" #~ msgstr "視窗位置" #~ msgid "Window position (x and y)." #~ msgstr "視窗位置 (x 與 y)。" #~ msgid "Inital state has been displayed" #~ msgstr "已顯示初始狀態" #~ msgid "Set to true when initial state has been displayed" #~ msgstr "當顯示初始狀態設定為 true" #~ msgid "Released" #~ msgstr "發行" #~ msgid "Running Length" #~ msgstr "播放長度" #~ msgid "Composer" #~ msgstr "作曲家" #~ msgid "Loading" #~ msgstr "正在載入" #~ msgctxt "context menu item" #~ msgid "Play" #~ msgstr "播放" #~ msgid "Hey DJ" #~ msgstr "嘿 DJ" #~ msgid "Untitled" #~ msgstr "無標題" #~ msgid "All" #~ msgstr "全部" #~ msgid "Artist" #~ msgstr "演出者" #~ msgid "Album" #~ msgstr "專輯" #~ msgid "Track Title" #~ msgstr "曲目標題" #~ msgid "Local" #~ msgstr "本機" #~ msgid "Sources" #~ msgstr "來源" #~ msgid "Match" #~ msgstr "比對" #~ msgid "@icon@" #~ msgstr "@icon@" #~ msgid "_Quit" #~ msgstr "結束(_Q)" #~ msgid "Music is the new GNOME music playing application." #~ msgstr "《音樂》是新的 GNOME 音樂播放應用程式。" #~ msgid "org.gnome.Music" #~ msgstr "org.gnome.Music" #~ msgid "Search mode" #~ msgstr "搜尋模式" #~ msgid "If true, the search bar is shown." #~ msgstr "如果設定為 true,則顯示搜尋工具列。" #~ msgid "Notifications mode" #~ msgstr "通知模式" #~ msgid "Enables or disables playback notifications" #~ msgstr "啟用或停用播放通知" #~ msgid "Selected %d item" #~ msgid_plural "Selected %d items" #~ msgstr[0] "己選擇 %d 項目" #~ msgid "%d min" #~ msgstr "%d 分鐘" #~ msgid "Empty" #~ msgstr "清空" #~ msgid "Select Playlist" #~ msgstr "選擇播放清單" #~ msgid "the|a|an" #~ msgstr "the|a|an" #~ msgid "Max chars to display in track name on Artist view" #~ msgstr "在演出者檢視的音軌名稱中顯示的最大字元數" #~ msgid "" #~ "This setting modifies the amount of chars for track title on Artist view " #~ "before its been ellipsized. Set this to -1 to disable" #~ msgstr "" #~ "這個設定值會修改演出者檢視的音軌名稱在省略前顯示的最大字元數。將其設定為 " #~ "-1 則為停用" #~ msgid "the a an" #~ msgstr "the a an" #~ msgid "All Artists" #~ msgstr "所有演出者" #~ msgid "Not playing" #~ msgstr "不播放" #~ msgid "by %s, from %s" #~ msgstr "歌手 %s,專輯 %s" #~ msgid "" #~ "No Music found!\n" #~ " Put some files into the folder %s" #~ msgstr "" #~ "找不到音樂!\n" #~ " 請將檔案放到資料夾 %s" #~ msgid "_New Playlist" #~ msgstr "新增播放清單(_N)" #~ msgid "Load More" #~ msgstr "載入更多" #~ msgid "Now _Playing" #~ msgstr "現正播放(_N)" 0707010000011C000041ED00000000000000000000000266968E4E00000000000000000000000000000000000000000000001D00000000gnome-music-46.1/subprojects0707010000011D000081A400000000000000000000000166968E4E00000003000000000000000000000000000000000000002800000000gnome-music-46.1/subprojects/.gitignore*/ 0707010000011E000081A400000000000000000000000166968E4E0000006C000000000000000000000000000000000000003000000000gnome-music-46.1/subprojects/grilo-plugins.wrap[wrap-git] directory = grilo-plugins url = https://gitlab.gnome.org/GNOME/grilo-plugins.git revision = head 0707010000011F000081A400000000000000000000000166968E4E0000005C000000000000000000000000000000000000002800000000gnome-music-46.1/subprojects/grilo.wrap[wrap-git] directory = grilo url = https://gitlab.gnome.org/GNOME/grilo.git revision = head 07070100000120000041ED00000000000000000000000266968E4E00000000000000000000000000000000000000000000002C00000000gnome-music-46.1/subprojects/shared-modules07070100000121000081A400000000000000000000000166968E4E00000269000000000000000000000000000000000000003700000000gnome-music-46.1/subprojects/shared-modules/CODEOWNERS# Fallback on Flathub admins for unowned shared modules * @flathub/reviewers /dbus-glib/ @TingPing /clutter/ @A6GibKm /gtk2/ @TingPing /gudev/ @Erick555 /intltool/ @TingPing /libappindicator/ @TingPing /libcanberra/ @hadess /libsecret/ @Lctrs /libusb/ @A6GibKm /openjpeg/ @mbridon /physfs/ @Mailaender /python2.7/ @bilelmoussaoui /linux-audio/ @hfiguiere /lua5.1/ @Unrud /mac/ @enzo1982 @Eonfge /pygtk/ @Eonfge /gzdoom/ @Eonfge /vorbisgain/ @Eonfge 07070100000122000081A400000000000000000000000166968E4E0000036F000000000000000000000000000000000000003600000000gnome-music-46.1/subprojects/shared-modules/README.mdThis repository contains commonly shared modules and is intended to be used as a git submodule. To use shared modules for packaging an application, add the submodule: ``` git submodule add https://github.com/flathub/shared-modules.git ``` Then modules from this repository can be specified in a manifest JSON file like this: ```json "modules": [ "shared-modules/SDL/SDL-1.2.15.json", { "name": "foo" } ] ``` To update the submodule: ``` git submodule update --remote --merge ``` To remove the submodule: ``` git submodule deinit -f -- shared-modules rm -rf .git/modules/shared-modules git rm -f shared-modules rm .gitmodules ``` [See the description in the Flathub wiki](https://github.com/flathub/flathub/wiki/App-Requirements#shared-modules) for more information. Please do not request adding modules unless they have many users in the Flathub repository. 07070100000123000041ED00000000000000000000000266968E4E00000000000000000000000000000000000000000000003000000000gnome-music-46.1/subprojects/shared-modules/SDL07070100000124000081A400000000000000000000000166968E4E00000433000000000000000000000000000000000000004000000000gnome-music-46.1/subprojects/shared-modules/SDL/SDL-1.2.15.json{ "name": "SDL1", "rm-configure": true, "config-opts": ["--disable-static"], "cleanup": [ "/bin", "/share/man", "/share/aclocal", "/include", "/lib/pkgconfig", "/lib/*.la", "/lib/*.a" ], "sources": [ { "type": "archive", "url": "https://www.libsdl.org/release/SDL-1.2.15.tar.gz", "sha256": "d6d316a793e5e348155f0dd93b979798933fb98aa1edebcc108829d6474aad00" }, { "type": "patch", "path": "sdl-libx11-build.patch" }, { "type": "patch", "path": "sdl-check-for-SDL_VIDEO_X11_BACKINGSTORE.patch" }, { "type": "script", "dest-filename": "autogen.sh", "commands": [ "sed -i -e 's/.*AM_PATH_ESD.*//' configure.in", "cp -p /usr/share/automake-*/config.{sub,guess} build-scripts", "aclocal", "libtoolize", "autoconf" ] } ] } 07070100000125000081A400000000000000000000000166968E4E00000FCA000000000000000000000000000000000000004F00000000gnome-music-46.1/subprojects/shared-modules/SDL/SDL_Pango-0.1.2-API-adds.patchdiff -Naupr SDL_Pango-0.1.2.orig/src/SDL_Pango.c SDL_Pango-0.1.2/src/SDL_Pango.c --- SDL_Pango-0.1.2.orig/src/SDL_Pango.c 2004-12-10 10:06:33.000000000 +0100 +++ SDL_Pango-0.1.2/src/SDL_Pango.c 2006-09-29 17:42:09.000000000 +0200 @@ -723,13 +723,8 @@ SDLPango_CopyFTBitmapToSurface( SDL_UnlockSurface(surface); } -/*! - Create a context which contains Pango objects. - - @return A pointer to the context as a SDLPango_Context*. -*/ SDLPango_Context* -SDLPango_CreateContext() +SDLPango_CreateContext_GivenFontDesc(const char* font_desc) { SDLPango_Context *context = g_malloc(sizeof(SDLPango_Context)); G_CONST_RETURN char *charset; @@ -743,8 +738,7 @@ SDLPango_CreateContext() pango_context_set_language (context->context, pango_language_from_string (charset)); pango_context_set_base_dir (context->context, PANGO_DIRECTION_LTR); - context->font_desc = pango_font_description_from_string( - MAKE_FONT_NAME (DEFAULT_FONT_FAMILY, DEFAULT_FONT_SIZE)); + context->font_desc = pango_font_description_from_string(font_desc); context->layout = pango_layout_new (context->context); @@ -762,6 +756,17 @@ SDLPango_CreateContext() } /*! + Create a context which contains Pango objects. + + @return A pointer to the context as a SDLPango_Context*. +*/ +SDLPango_Context* +SDLPango_CreateContext() +{ + SDLPango_CreateContext_GivenFontDesc(MAKE_FONT_NAME(DEFAULT_FONT_FAMILY, DEFAULT_FONT_SIZE)); +} + +/*! Free a context. @param *context [i/o] Context to be free @@ -1053,6 +1058,20 @@ SDLPango_SetMarkup( pango_layout_set_font_description (context->layout, context->font_desc); } +void +SDLPango_SetText_GivenAlignment( + SDLPango_Context *context, + const char *text, + int length, + SDLPango_Alignment alignment) +{ + pango_layout_set_attributes(context->layout, NULL); + pango_layout_set_text (context->layout, text, length); + pango_layout_set_auto_dir (context->layout, TRUE); + pango_layout_set_alignment (context->layout, alignment); + pango_layout_set_font_description (context->layout, context->font_desc); +} + /*! Set plain text to context. Text must be utf-8. @@ -1067,11 +1086,7 @@ SDLPango_SetText( const char *text, int length) { - pango_layout_set_attributes(context->layout, NULL); - pango_layout_set_text (context->layout, text, length); - pango_layout_set_auto_dir (context->layout, TRUE); - pango_layout_set_alignment (context->layout, PANGO_ALIGN_LEFT); - pango_layout_set_font_description (context->layout, context->font_desc); + SDLPango_SetText_GivenAlignment(context, text, length, SDLPANGO_ALIGN_LEFT); } /*! diff -Naupr SDL_Pango-0.1.2.orig/src/SDL_Pango.h SDL_Pango-0.1.2/src/SDL_Pango.h --- SDL_Pango-0.1.2.orig/src/SDL_Pango.h 2004-12-10 10:06:33.000000000 +0100 +++ SDL_Pango-0.1.2/src/SDL_Pango.h 2006-09-29 17:42:09.000000000 +0200 @@ -109,12 +109,20 @@ typedef enum { SDLPANGO_DIRECTION_NEUTRAL /*! Neutral */ } SDLPango_Direction; - +/*! + Specifies alignment of text. See Pango reference for detail +*/ +typedef enum { + SDLPANGO_ALIGN_LEFT, + SDLPANGO_ALIGN_CENTER, + SDLPANGO_ALIGN_RIGHT +} SDLPango_Alignment; extern DECLSPEC int SDLCALL SDLPango_Init(); extern DECLSPEC int SDLCALL SDLPango_WasInit(); +extern DECLSPEC SDLPango_Context* SDLCALL SDLPango_CreateContext_GivenFontDesc(const char* font_desc); extern DECLSPEC SDLPango_Context* SDLCALL SDLPango_CreateContext(); extern DECLSPEC void SDLCALL SDLPango_FreeContext( @@ -157,6 +165,12 @@ extern DECLSPEC void SDLCALL SDLPango_Se const char *markup, int length); +extern DECLSPEC void SDLCALL SDLPango_SetText_GivenAlignment( + SDLPango_Context *context, + const char *text, + int length, + SDLPango_Alignment alignment); + extern DECLSPEC void SDLCALL SDLPango_SetText( SDLPango_Context *context, const char *markup, 07070100000126000081A400000000000000000000000166968E4E0000022B000000000000000000000000000000000000004600000000gnome-music-46.1/subprojects/shared-modules/SDL/SDL_image-1.2.12.json{ "name": "SDL_image", "config-opts": ["--disable-static"], "rm-configure": true, "sources": [ { "type": "archive", "url": "https://www.libsdl.org/projects/SDL_image/release/SDL_image-1.2.12.tar.gz", "sha256": "0b90722984561004de84847744d566809dbb9daf732a9e503b91a1b5a84e5699" }, { "type": "script", "dest-filename": "autogen.sh", "commands": [ "AUTOMAKE=\"automake --foreign\" autoreconf -vfi" ] } ] } 07070100000127000081A400000000000000000000000166968E4E000002D7000000000000000000000000000000000000004600000000gnome-music-46.1/subprojects/shared-modules/SDL/SDL_mixer-1.2.12.json{ "name": "SDL_mixer", "config-opts": ["--disable-static"], "rm-configure": true, "sources": [ { "type": "archive", "url": "https://www.libsdl.org/projects/SDL_mixer/release/SDL_mixer-1.2.12.tar.gz", "sha256": "1644308279a975799049e4826af2cfc787cad2abb11aa14562e402521f86992a" }, { "type": "script", "dest-filename": "autogen.sh", "commands": [ "rm acinclude/libtool.m4", "rm acinclude/lt*", "AUTOMAKE=\"automake --foreign\" autoreconf -vfi -I acinclude", "cp -p /usr/share/automake-*/config.{sub,guess} build-scripts" ] } ] } 07070100000128000081A400000000000000000000000166968E4E00000224000000000000000000000000000000000000004300000000gnome-music-46.1/subprojects/shared-modules/SDL/SDL_net-1.2.8.json{ "name": "SDL_net", "config-opts": ["--disable-static"], "rm-configure": true, "sources": [ { "type": "archive", "url": "https://www.libsdl.org/projects/SDL_net/release/SDL_net-1.2.8.tar.gz", "sha256": "5f4a7a8bb884f793c278ac3f3713be41980c5eedccecff0260411347714facb4" }, { "type": "script", "dest-filename": "autogen.sh", "commands": [ "AUTOMAKE=\"automake --foreign\" autoreconf -vfi" ] } ] } 07070100000129000081A400000000000000000000000166968E4E00000282000000000000000000000000000000000000004500000000gnome-music-46.1/subprojects/shared-modules/SDL/SDL_pango-0.1.2.json{ "name": "SDL_pango", "config-opts": ["--disable-static"], "rm-configure": true, "sources": [ { "type": "archive", "url": "https://downloads.sourceforge.net/project/sdlpango/SDL_Pango/0.1.2/SDL_Pango-0.1.2.tar.gz", "sha256": "7f75d3b97acf707c696ea126424906204ebfa07660162de925173cdd0257eba4" }, { "type": "patch", "path": "SDL_Pango-0.1.2-API-adds.patch" }, { "type": "script", "dest-filename": "autogen.sh", "commands": [ "autoreconf -vfi" ] } ] } 0707010000012A000081A400000000000000000000000166968E4E0000027B000000000000000000000000000000000000004400000000gnome-music-46.1/subprojects/shared-modules/SDL/SDL_ttf-2.0.11.json{ "name": "SDL_ttf", "config-opts": ["--disable-static"], "rm-configure": true, "config-opts": [ "ac_cv_path_FREETYPE_CONFIG=pkg-config freetype2" ], "sources": [ { "type": "archive", "url": "https://www.libsdl.org/projects/SDL_ttf/release/SDL_ttf-2.0.11.tar.gz", "sha256": "724cd895ecf4da319a3ef164892b72078bd92632a5d812111261cde248ebcdb7" }, { "type": "script", "dest-filename": "autogen.sh", "commands": [ "AUTOMAKE=\"automake --foreign\" autoreconf -vfi" ] } ] } 0707010000012B000081A400000000000000000000000166968E4E000003AA000000000000000000000000000000000000005F00000000gnome-music-46.1/subprojects/shared-modules/SDL/sdl-check-for-SDL_VIDEO_X11_BACKINGSTORE.patchDescription: Do not harness backing store by default xorg-server 1.15 enables backing store if composite extension is enabled (default settings). Harnessing backing store through compositor leads to tearing effect. This patch reverts default harnessing backing store to conditional use if SDL_VIDEO_X11_BACKINGSTORE environment variable exists. Origin: https://bugs.launchpad.net/ubuntu/+source/libsdl1.2/+bug/1280665/comments/1 Bug: https://bugzilla.libsdl.org/show_bug.cgi?id=2383 Bug-Debian: https://bugs.debian.org/747168 --- a/src/video/x11/SDL_x11video.c +++ b/src/video/x11/SDL_x11video.c @@ -1088,10 +1088,8 @@ } } -#if 0 /* This is an experiment - are the graphics faster now? - nope. */ if ( SDL_getenv("SDL_VIDEO_X11_BACKINGSTORE") ) -#endif - /* Cache the window in the server, when possible */ + /* Cache the window in the server when possible, on request */ { Screen *xscreen; XSetWindowAttributes a; 0707010000012C000081A400000000000000000000000166968E4E000008BE000000000000000000000000000000000000004700000000gnome-music-46.1/subprojects/shared-modules/SDL/sdl-libx11-build.patch # HG changeset patch # User Azamat H. Hackimov # Date 1370184533 -21600 # Node ID 91ad7b43317a6387e115ecdf63a49137f47e42c8 # Parent f7fd5c3951b9ed922fdf696f7182e71b58a13268 Fix compilation with libX11 >= 1.5.99.902. These changes fixes bug #1769 for SDL 1.2 (http://bugzilla.libsdl.org/show_bug.cgi?id=1769). diff -r f7fd5c3951b9 -r 91ad7b43317a configure.in --- a/configure.in Wed Apr 17 00:56:53 2013 -0700 +++ b/configure.in Sun Jun 02 20:48:53 2013 +0600 @@ -1169,6 +1169,17 @@ if test x$definitely_enable_video_x11_xrandr = xyes; then AC_DEFINE(SDL_VIDEO_DRIVER_X11_XRANDR) fi + AC_MSG_CHECKING(for const parameter to _XData32) + have_const_param_xdata32=no + AC_TRY_COMPILE([ + #include + extern int _XData32(Display *dpy,register _Xconst long *data,unsigned len); + ],[ + ],[ + have_const_param_xdata32=yes + AC_DEFINE(SDL_VIDEO_DRIVER_X11_CONST_PARAM_XDATA32) + ]) + AC_MSG_RESULT($have_const_param_xdata32) fi fi } diff -r f7fd5c3951b9 -r 91ad7b43317a include/SDL_config.h.in --- a/include/SDL_config.h.in Wed Apr 17 00:56:53 2013 -0700 +++ b/include/SDL_config.h.in Sun Jun 02 20:48:53 2013 +0600 @@ -283,6 +283,7 @@ #undef SDL_VIDEO_DRIVER_WINDIB #undef SDL_VIDEO_DRIVER_WSCONS #undef SDL_VIDEO_DRIVER_X11 +#undef SDL_VIDEO_DRIVER_X11_CONST_PARAM_XDATA32 #undef SDL_VIDEO_DRIVER_X11_DGAMOUSE #undef SDL_VIDEO_DRIVER_X11_DYNAMIC #undef SDL_VIDEO_DRIVER_X11_DYNAMIC_XEXT diff -r f7fd5c3951b9 -r 91ad7b43317a src/video/x11/SDL_x11sym.h --- a/src/video/x11/SDL_x11sym.h Wed Apr 17 00:56:53 2013 -0700 +++ b/src/video/x11/SDL_x11sym.h Sun Jun 02 20:48:53 2013 +0600 @@ -165,7 +165,11 @@ */ #ifdef LONG64 SDL_X11_MODULE(IO_32BIT) +#if SDL_VIDEO_DRIVER_X11_CONST_PARAM_XDATA32 +SDL_X11_SYM(int,_XData32,(Display *dpy,register _Xconst long *data,unsigned len),(dpy,data,len),return) +#else SDL_X11_SYM(int,_XData32,(Display *dpy,register long *data,unsigned len),(dpy,data,len),return) +#endif SDL_X11_SYM(void,_XRead32,(Display *dpy,register long *data,long len),(dpy,data,len),) #endif 0707010000012D000081A400000000000000000000000166968E4E0000017D000000000000000000000000000000000000004200000000gnome-music-46.1/subprojects/shared-modules/SDL/sdl12-compat.json{ "name": "sdl12-compat", "buildsystem": "cmake-ninja", "cleanup": [ "bin/sdl-config" ], "sources": [ { "type": "archive", "url": "https://github.com/libsdl-org/sdl12-compat/archive/refs/tags/release-1.2.52.tar.gz", "sha256": "5bd7942703575554670a8767ae030f7921a0ac3c5e2fd173a537b7c7a8599014" } ] } 0707010000012E000041ED00000000000000000000000266968E4E00000000000000000000000000000000000000000000003100000000gnome-music-46.1/subprojects/shared-modules/cld20707010000012F000081A400000000000000000000000166968E4E0000171A000000000000000000000000000000000000004000000000gnome-music-46.1/subprojects/shared-modules/cld2/CMakeLists.txtcmake_minimum_required(VERSION 2.8) project (cld2) enable_language(CXX) set (VERSION "0.0.197") set (common_SOURCE_FILES internal/cldutil.cc internal/cldutil_shared.cc internal/compact_lang_det.cc internal/compact_lang_det_hint_code.cc internal/compact_lang_det_impl.cc internal/debug.cc internal/fixunicodevalue.cc internal/generated_entities.cc internal/generated_language.cc internal/generated_ulscript.cc internal/getonescriptspan.cc internal/lang_script.cc internal/offsetmap.cc internal/scoreonescriptspan.cc internal/tote.cc internal/utf8statetable.cc ) set (cld2_SOURCE_FILES internal/generated_distinct_bi_0.cc internal/cld_generated_cjk_uni_prop_80.cc internal/cld2_generated_cjk_compatible.cc internal/cld_generated_cjk_delta_bi_4.cc internal/cld2_generated_quadchrome_2.cc internal/cld2_generated_deltaoctachrome.cc internal/cld2_generated_distinctoctachrome.cc internal/cld_generated_score_quad_octa_2.cc ) set (cld2_full_SOURCE_FILES internal/generated_distinct_bi_0.cc internal/cld_generated_cjk_uni_prop_80.cc internal/cld2_generated_cjk_compatible.cc internal/cld_generated_cjk_delta_bi_32.cc internal/cld2_generated_quad0122.cc internal/cld2_generated_deltaocta0122.cc internal/cld2_generated_distinctocta0122.cc internal/cld_generated_score_quad_octa_0122.cc ) set (cld2_dynamic_SOURCE_FILES internal/cld2_dynamic_data.cc internal/cld2_dynamic_data_loader.cc ) add_library(cld2 SHARED ${common_SOURCE_FILES} ${cld2_SOURCE_FILES}) set_target_properties(cld2 PROPERTIES ENABLE_EXPORTS On OUTPUT_NAME cld2 VERSION ${VERSION} SOVERSION 0 ) add_library(cld2_full SHARED ${cld2_full_SOURCE_FILES}) set_target_properties(cld2_full PROPERTIES ENABLE_EXPORTS On OUTPUT_NAME cld2_full VERSION ${VERSION} SOVERSION 0 ) add_library(cld2_dynamic SHARED ${cld2_dynamic_SOURCE_FILES}) set_target_properties(cld2_dynamic PROPERTIES ENABLE_EXPORTS On OUTPUT_NAME cld2_dynamic VERSION ${VERSION} SOVERSION 0 COMPILE_FLAGS "-DCLD2_DYNAMIC_MODE" ) install(TARGETS cld2 DESTINATION lib/${CMAKE_LIBRARY_ARCHITECTURE}) install(TARGETS cld2_full DESTINATION lib/${CMAKE_LIBRARY_ARCHITECTURE}) install(TARGETS cld2_dynamic DESTINATION lib/${CMAKE_LIBRARY_ARCHITECTURE}) set (cld2_internal_HEADERS internal/cld2_dynamic_compat.h internal/cld2_dynamic_data_extractor.h internal/cld2_dynamic_data.h internal/cld2_dynamic_data_loader.h internal/cld2tablesummary.h internal/cldutil.h internal/cldutil_offline.h internal/cldutil_shared.h internal/compact_lang_det_hint_code.h internal/compact_lang_det_impl.h internal/debug.h internal/fixunicodevalue.h internal/generated_language.h internal/generated_ulscript.h internal/getonescriptspan.h internal/integral_types.h internal/lang_script.h internal/langspan.h internal/offsetmap.h internal/port.h internal/scoreonescriptspan.h internal/stringpiece.h internal/tote.h internal/unittest_data.h internal/utf8acceptinterchange.h internal/utf8prop_lettermarkscriptnum.h internal/utf8repl_lettermarklower.h internal/utf8scannot_lettermarkspecial.h internal/utf8statetable.h ) install(FILES ${cld2_internal_HEADERS} DESTINATION include/cld2/internal) set (cld2_public_HEADERS public/compact_lang_det.h public/encodings.h ) install(FILES ${cld2_public_HEADERS} DESTINATION include/cld2/public) set (full_SOURCE_FILES internal/cld_generated_cjk_uni_prop_80.cc internal/cld2_generated_cjk_compatible.cc internal/cld_generated_cjk_delta_bi_32.cc internal/generated_distinct_bi_0.cc internal/cld2_generated_quad0122.cc internal/cld2_generated_deltaocta0122.cc internal/cld2_generated_distinctocta0122.cc internal/cld_generated_score_quad_octa_0122.cc ) add_executable(compact_lang_det_test_full ${full_SOURCE_FILES} internal/compact_lang_det_test.cc) add_executable(cld2_unittest_full ${full_SOURCE_FILES} internal/cld2_unittest_full.cc) add_executable(cld2_unittest_full_avoid ${full_SOURCE_FILES} internal/cld2_unittest_full.cc) set_target_properties(cld2_unittest_full_avoid PROPERTIES COMPILE_FLAGS "-Davoid_utf8_string_constants") add_executable(cld2_dynamic_data_tool internal/cld2_dynamic_data_extractor.cc internal/cld2_dynamic_data_tool.cc) add_executable(compact_lang_det_dynamic_test_chrome ${common_SOURCE_FILES} internal/cld2_dynamic_data_extractor.cc internal/compact_lang_det_test.cc) add_executable(cld2_dynamic_unittest ${common_SOURCE_FILES} internal/cld2_unittest.cc) set_target_properties(compact_lang_det_dynamic_test_chrome PROPERTIES COMPILE_FLAGS "-DCLD2_DYNAMIC_MODE") set_target_properties(cld2_dynamic_unittest PROPERTIES COMPILE_FLAGS "-DCLD2_DYNAMIC_MODE") add_executable(compact_lang_det_test_chrome_2 internal/compact_lang_det_test.cc) add_executable(compact_lang_det_test_chrome_16 internal/compact_lang_det_test.cc) add_executable(cld2_unittest_chrome_2 internal/cld2_unittest.cc) add_executable(cld2_unittest_avoid_chrome_2 internal/cld2_unittest.cc) set_target_properties(cld2_unittest_avoid_chrome_2 PROPERTIES COMPILE_FLAGS "-Davoid_utf8_string_constants") target_link_libraries(compact_lang_det_test_full cld2) target_link_libraries(cld2_unittest_full cld2) target_link_libraries(cld2_unittest_full_avoid cld2) target_link_libraries(cld2_dynamic_data_tool cld2 cld2_dynamic) target_link_libraries(compact_lang_det_dynamic_test_chrome cld2_dynamic) target_link_libraries(cld2_dynamic_unittest cld2_dynamic) target_link_libraries(compact_lang_det_test_chrome_2 cld2) target_link_libraries(compact_lang_det_test_chrome_16 cld2) target_link_libraries(cld2_unittest_chrome_2 cld2) target_link_libraries(cld2_unittest_avoid_chrome_2 cld2) 07070100000130000081A400000000000000000000000166968E4E00000271000000000000000000000000000000000000003B00000000gnome-music-46.1/subprojects/shared-modules/cld2/cld2.json{ "name": "cld2", "buildsystem": "simple", "build-options": { "cxxflags": "-std=c++98" }, "build-commands": [ "cp CMakeLists.txt ./cld2", "cd cld2 && mkdir build && cd build && cmake .. -DCMAKE_INSTALL_PREFIX=/app -DCMAKE_BUILD_TYPE=Release", "cd cld2/build && make && make install" ], "sources":[ { "type": "git", "url": "https://github.com/CLD2Owners/cld2.git", "commit": "84b58a5d7690ebf05a91406f371ce00c3daf31c0", "dest": "cld2" }, { "type": "file", "path": "CMakeLists.txt" } ] } 07070100000131000041ED00000000000000000000000266968E4E00000000000000000000000000000000000000000000003400000000gnome-music-46.1/subprojects/shared-modules/clutter07070100000132000081A400000000000000000000000166968E4E00000880000000000000000000000000000000000000004100000000gnome-music-46.1/subprojects/shared-modules/clutter/clutter.json{ "name": "clutter-gtk", "cleanup": [ "/share/gtk-doc" ], "sources": [ { "type": "archive", "url": "https://download.gnome.org/sources/clutter-gtk/1.8/clutter-gtk-1.8.4.tar.xz", "sha256": "521493ec038973c77edcb8bc5eac23eed41645117894aaee7300b2487cb42b06" } ], "modules": [ { "name": "cogl", "config-opts": [ "--disable-cogl-gst", "--disable-gtk-doc", "--enable-xlib-egl-platform", "--enable-wayland-egl-platform" ], "cleanup": [ "/share/gtk-doc", "/share/cogl/examples-data" ], "sources": [ { "type": "archive", "url": "https://download.gnome.org/sources/cogl/1.22/cogl-1.22.8.tar.xz", "sha256": "a805b2b019184710ff53d0496f9f0ce6dcca420c141a0f4f6fcc02131581d759" } ] }, { "name": "clutter", "config-opts": [ "--disable-gtk-doc", "--enable-egl-backend", "--enable-wayland-backend" ], "cleanup": [ "/share/gtk-doc" ], "sources": [ { "type": "archive", "url": "https://download.gnome.org/sources/clutter/1.26/clutter-1.26.4.tar.xz", "sha256": "8b48fac159843f556d0a6be3dbfc6b083fc6d9c58a20a49a6b4919ab4263c4e6" } ] }, { "name": "clutter-gst", "config-opts": [ "--disable-gtk-doc" ], "cleanup": [ "/share/gtk-doc" ], "sources": [ { "type": "archive", "url": "https://download.gnome.org/sources/clutter-gst/3.0/clutter-gst-3.0.27.tar.xz", "sha256": "fe69bd6c659d24ab30da3f091eb91cd1970026d431179b0724f13791e8ad9f9d" } ] } ] } 07070100000133000041ED00000000000000000000000266968E4E00000000000000000000000000000000000000000000003600000000gnome-music-46.1/subprojects/shared-modules/dbus-glib07070100000134000081A400000000000000000000000166968E4E00000210000000000000000000000000000000000000004500000000gnome-music-46.1/subprojects/shared-modules/dbus-glib/dbus-glib.json{ "name": "dbus-glib", "cleanup": [ "*.la", "/bin", "/etc", "/include", "/libexec", "/share/gtk-doc", "/share/man" ], "config-opts": [ "--disable-static", "--disable-gtk-doc" ], "sources": [ { "type": "archive", "url": "https://dbus.freedesktop.org/releases/dbus-glib/dbus-glib-0.112.tar.gz", "sha256": "7d550dccdfcd286e33895501829ed971eeb65c614e73aadb4a08aeef719b143a" } ] } 07070100000135000041ED00000000000000000000000266968E4E00000000000000000000000000000000000000000000003100000000gnome-music-46.1/subprojects/shared-modules/glew07070100000136000081A400000000000000000000000166968E4E00000407000000000000000000000000000000000000003B00000000gnome-music-46.1/subprojects/shared-modules/glew/glew.json{ "name": "glew", "no-autogen": true, "make-args": [ "GLEW_PREFIX=${FLATPAK_DEST}", "GLEW_DEST=${FLATPAK_DEST}", "LIBDIR=${FLATPAK_DEST}/lib", "CFLAGS.EXTRA:=${CFLAGS} -fPIC", "LDFLAGS.EXTRA=${LDFLAGS}" ], "make-install-args": [ "GLEW_PREFIX=${FLATPAK_DEST}", "GLEW_DEST=${FLATPAK_DEST}", "LIBDIR=${FLATPAK_DEST}/lib", "CFLAGS.EXTRA:=${CFLAGS} -fPIC", "LDFLAGS.EXTRA=${LDFLAGS}" ], "sources": [ { "type": "archive", "url": "https://downloads.sourceforge.net/project/glew/glew/2.2.0/glew-2.2.0.tgz", "sha256": "d4fc82893cfb00109578d0a1a2337fb8ca335b3ceccf97b97e5cc7f08e4353e1" } ], "cleanup": [ "/include", "/lib/pkgconfig", "/lib/*.a" ] } 07070100000137000041ED00000000000000000000000266968E4E00000000000000000000000000000000000000000000003000000000gnome-music-46.1/subprojects/shared-modules/glu07070100000138000081A400000000000000000000000166968E4E00000159000000000000000000000000000000000000003B00000000gnome-music-46.1/subprojects/shared-modules/glu/glu-9.json{ "name": "glu", "config-opts": ["--disable-static"], "sources": [ { "type": "archive", "url": "https://mesa.freedesktop.org/archive/glu/glu-9.0.2.tar.xz", "sha256": "6e7280ff585c6a1d9dfcdf2fca489251634b3377bfc33c29e4002466a38d02d4" } ], "cleanup": [ "/include", "/lib/*.a", "/lib/*.la", "/lib/pkgconfig" ] } 07070100000139000041ED00000000000000000000000266968E4E00000000000000000000000000000000000000000000003100000000gnome-music-46.1/subprojects/shared-modules/gtk20707010000013A000081A400000000000000000000000166968E4E00001DED000000000000000000000000000000000000007400000000gnome-music-46.1/subprojects/shared-modules/gtk2/arc-gtk2-theme-Replace-Inkscape-dependency-with-rsvg-convert.patchFrom d5e0034183564df5fec8e4dde1705116c7b38021 Mon Sep 17 00:00:00 2001 From: Patrick Griffis Date: Sat, 16 May 2020 18:00:36 -0700 Subject: [PATCH] Replace Inkscape dependency with rsvg-convert rsvg-convert is a *much* smaller dependency that all systems with a functioning GTK installation should have easy access to. --- common/gtk-2.0/Makefile.am | 6 +----- common/gtk-2.0/render-asset.sh | 16 ++++++++-------- common/gtk-3.0/common.am | 12 ++---------- common/xfwm4/Makefile.am | 6 +----- common/xfwm4/render-asset.sh | 16 ++++++++-------- configure.ac | 8 ++------ 6 files changed, 22 insertions(+), 42 deletions(-) diff --git a/common/gtk-2.0/Makefile.am b/common/gtk-2.0/Makefile.am index 010823a..873013a 100644 --- a/common/gtk-2.0/Makefile.am +++ b/common/gtk-2.0/Makefile.am @@ -35,11 +35,7 @@ $(light): $(srcdir)/light/assets.svg | light/assets $(dark): $(srcdir)/dark/assets.svg | dark/assets $(light) $(dark): -if INKSCAPE_1_0_OR_NEWER - $(INKSCAPE) --export-id-only --export-filename="$@" --export-id="$(basename $(notdir $@))" --export-dpi=$(if $(filter $(OPTION_GTK2_HIDPI),true),192,96) "$<" >/dev/null -else !INKSCAPE_1_0_OR_NEWER - $(INKSCAPE) --export-id-only --export-png="$@" --export-id="$(basename $(notdir $@))" --export-dpi=$(if $(filter $(OPTION_GTK2_HIDPI),true),192,96) "$<" >/dev/null -endif + $(RSVG_CONVERT) --format=png --output="$@" --export-id="$(basename $(notdir $@))" --dpi-x=$(if $(filter $(OPTION_GTK2_HIDPI),true),192,96) --dpi-y=$(if $(filter $(OPTION_GTK2_HIDPI),true),192,96) "$<" >/dev/null $(OPTIPNG) -o7 --quiet "$@" menubar-toolbar/%-dark.png: dark/assets/%.png | menubar-toolbar diff --git a/common/gtk-2.0/render-asset.sh b/common/gtk-2.0/render-asset.sh index 6685414..f6198af 100755 --- a/common/gtk-2.0/render-asset.sh +++ b/common/gtk-2.0/render-asset.sh @@ -1,7 +1,7 @@ #!/bin/bash set -ueo pipefail -INKSCAPE="$(which inkscape)" +RSVG_CONVERT="$(which rsvg-convert)" OPTIPNG="$(which optipng)" ASSETS_DIR="$1" @@ -14,9 +14,9 @@ if [[ -f "${result_file}" ]] ; then echo "${result_file} already exists." else echo "Rendering '${result_file}'" - "$INKSCAPE" --export-id="$i" \ - --export-id-only \ - --export-png="${result_file}" "$SRC_FILE" >/dev/null \ + "$RSVG_CONVERT" --export-id="$i" \ + --format=png + --output="${result_file}" "$SRC_FILE" >/dev/null \ && "$OPTIPNG" -o7 --quiet "${result_file}" fi @@ -26,10 +26,10 @@ if [[ "$OPTION_GTK2_HIDPI" == "true" ]]; then echo "${result_file_hidpi} already exists." else echo "Rendering '${result_file_hidpi}'" - "$INKSCAPE" --export-id="$i" \ - --export-id-only \ - --export-dpi=192 \ - --export-png="${result_file_hidpi}" "$SRC_FILE" >/dev/null \ + "$RSVG_CONVERT" --export-id="$i" \ + --dpi-x=192 --dpi-y=192 \ + --format=png + --output="${result_file_hidpi}" "$SRC_FILE" >/dev/null \ && "$OPTIPNG" -o7 --quiet "${result_file_hidpi}" fi fi diff --git a/common/gtk-3.0/common.am b/common/gtk-3.0/common.am index a93d01d..9e4b102 100644 --- a/common/gtk-3.0/common.am +++ b/common/gtk-3.0/common.am @@ -14,19 +14,11 @@ clean: rm -rf assets/ light/ dark/ darker/ lighter/ $(normal): $(srcdir)/assets.svg | assets -if INKSCAPE_1_0_OR_NEWER - $(INKSCAPE) --export-id-only --export-filename="$@" --export-id="$(basename $(notdir $@))" --export-dpi=96 "$<" >/dev/null -else !INKSCAPE_1_0_OR_NEWER - $(INKSCAPE) --export-id-only --export-png="$@" --export-id="$(basename $(notdir $@))" --export-dpi=96 "$<" >/dev/null -endif + $(RSVG_CONVERT) --format=png --output="$@" --export-id="$(basename $(notdir $@))" --dpi-y=96 --dpi-x=96 "$<" >/dev/null $(OPTIPNG) -o7 --quiet "$@" $(hidpi): $(srcdir)/assets.svg | assets -if INKSCAPE_1_0_OR_NEWER - $(INKSCAPE) --export-id-only --export-filename="$@" --export-id="$(patsubst %@2,%,$(basename $(notdir $@)))" --export-dpi=192 "$<" >/dev/null -else !INKSCAPE_1_0_OR_NEWER - $(INKSCAPE) --export-id-only --export-png="$@" --export-id="$(patsubst %@2,%,$(basename $(notdir $@)))" --export-dpi=192 "$<" >/dev/null -endif + $(RSVG_CONVERT) --format=png --output="$@" --export-id="$(patsubst %@2,%,$(basename $(notdir $@)))" --dpi-y=192 --dpi-x=192 "$<" >/dev/null $(OPTIPNG) -o7 --quiet "$@" .PHONY: normal hidpi clean diff --git a/common/xfwm4/Makefile.am b/common/xfwm4/Makefile.am index e5fbdc5..1f21183 100644 --- a/common/xfwm4/Makefile.am +++ b/common/xfwm4/Makefile.am @@ -17,11 +17,7 @@ $(light): $(srcdir)/light/assets.svg | light/assets $(dark): $(srcdir)/dark/assets.svg | dark/assets $(light) $(dark): -if INKSCAPE_1_0_OR_NEWER - $(INKSCAPE) --export-id-only --export-filename="$@" --export-id="$(basename $(notdir $@))" --export-dpi=$(if $(filter $(OPTION_GTK2_HIDPI),true),192,96) "$<" >/dev/null -else !INKSCAPE_1_0_OR_NEWER - $(INKSCAPE) --export-id-only --export-png="$@" --export-id="$(basename $(notdir $@))" --export-dpi=$(if $(filter $(OPTION_GTK2_HIDPI),true),192,96) "$<" >/dev/null -endif + $(RSVG_CONVERT) --format=png --output="$@" --export-id="$(basename $(notdir $@))" --dpi-y=$(if $(filter $(OPTION_GTK2_HIDPI),true),192,96) --dpi-x=$(if $(filter $(OPTION_GTK2_HIDPI),true),192,96) "$<" >/dev/null $(OPTIPNG) -o7 --quiet "$@" .PHONY: light dark clean diff --git a/common/xfwm4/render-asset.sh b/common/xfwm4/render-asset.sh index 6685414..f6198af 100755 --- a/common/xfwm4/render-asset.sh +++ b/common/xfwm4/render-asset.sh @@ -1,7 +1,7 @@ #!/bin/bash set -ueo pipefail -INKSCAPE="$(which inkscape)" +RSVG_CONVERT="$(which rsvg-convert)" OPTIPNG="$(which optipng)" ASSETS_DIR="$1" @@ -14,9 +14,9 @@ if [[ -f "${result_file}" ]] ; then echo "${result_file} already exists." else echo "Rendering '${result_file}'" - "$INKSCAPE" --export-id="$i" \ - --export-id-only \ - --export-png="${result_file}" "$SRC_FILE" >/dev/null \ + "$RSVG_CONVERT" --export-id="$i" \ + --format=png + --output="${result_file}" "$SRC_FILE" >/dev/null \ && "$OPTIPNG" -o7 --quiet "${result_file}" fi @@ -26,10 +26,10 @@ if [[ "$OPTION_GTK2_HIDPI" == "true" ]]; then echo "${result_file_hidpi} already exists." else echo "Rendering '${result_file_hidpi}'" - "$INKSCAPE" --export-id="$i" \ - --export-id-only \ - --export-dpi=192 \ - --export-png="${result_file_hidpi}" "$SRC_FILE" >/dev/null \ + "$RSVG_CONVERT" --export-id="$i" \ + --dpi-x=192 --dpi-y=192 \ + --format=png + --output="${result_file_hidpi}" "$SRC_FILE" >/dev/null \ && "$OPTIPNG" -o7 --quiet "${result_file_hidpi}" fi fi diff --git a/configure.ac b/configure.ac index f0725f1..1a52cc7 100644 --- a/configure.ac +++ b/configure.ac @@ -48,12 +48,8 @@ AM_CONDITIONAL([GNOME_SHELL_3_32_OR_NEWER], [test "0$GNOME_SHELL_VERSMNR" -ge 31 AS_IF([test "x$ENABLE_CINNAMON" != xno], [ARC_CINNAMON]) AS_IF([test "x$ENABLE_GTK2" != xno -o "x$ENABLE_GTK3" != xno -o "x$ENABLE_XFWM" != xno], [ - AC_PATH_PROG([INKSCAPE], [inkscape]) - AS_IF([test "x$ac_cv_path_INKSCAPE" = x], [AC_MSG_ERROR([inkscape not found])]) - AS_IF([test "x$ac_cv_path_INKSCAPE" != x], - [INKSCAPE_VERSMJR=`inkscape --version 2> /dev/null | cut -d' ' -f2 | cut -d'.' -f1`] - AM_CONDITIONAL([INKSCAPE_1_0_OR_NEWER], [test "x$INKSCAPE_VERSMJR" = x1]) - ) + AC_PATH_PROG([RSVG_CONVERT], [rsvg-convert]) + AS_IF([test "x$ac_cv_path_RSVG_CONVERT" = x], [AC_MSG_ERROR([rsvg-convert not found])]) AC_PATH_PROG([OPTIPNG], [optipng]) AS_IF([test "x$ac_cv_path_OPTIPNG" = x], [AC_MSG_ERROR([optipng not found])]) ]) -- 2.26.0 0707010000013B000081A400000000000000000000000166968E4E00001D75000000000000000000000000000000000000004900000000gnome-music-46.1/subprojects/shared-modules/gtk2/gtk2-common-themes.json{ "name": "gtk2-common-themes", "buildsystem": "simple", "build-commands": [], "modules": [ { "name": "sassc", "// NOTE": "This is used by Yaru, Greybird, and Materia", "cleanup": ["*"], "sources": [ { "type": "archive", "url": "https://github.com/sass/sassc/archive/3.5.0.tar.gz", "sha256": "26f54e31924b83dd706bc77df5f8f5553a84d51365f0e3c566df8de027918042" }, { "type": "script", "commands": ["autoreconf -si"] } ], "modules": [ { "name": "libsass", "cleanup": ["*"], "sources": [ { "type": "archive", "url": "https://github.com/sass/libsass/archive/3.5.4.tar.gz", "sha256": "5f61cbcddaf8e6ef7a725fcfa5d05297becd7843960f245197ebb655ff868770" }, { "type": "script", "commands": ["autoreconf -si"] } ] } ] }, { "name": "gtk2-murrine-engine", "rm-configure": true, "// NOTE": "Used by Arc and CrosAdapta", "cleanup": [ "*.la" ], "sources": [ { "type": "archive", "url": "https://download.gnome.org/sources/murrine/0.98/murrine-0.98.2.tar.xz", "sha256": "e9c68ae001b9130d0f9d1b311e8121a94e5c134b82553ba03971088e57d12c89" }, { "type": "patch", "path": "murrine-engine-fix-crash.patch" }, { "type": "script", "commands": [ "rm config.guess", "autoreconf -si" ] } ] }, { "name": "cros-adapta-gtk2-theme", "// NOTE": "This is used by Chrome OS", "buildsystem": "simple", "build-commands": [ "install -Dm644 index.theme ${FLATPAK_DEST}/share/themes/CrosAdapta/index.theme", "cp -r gtk-2.0 ${FLATPAK_DEST}/share/themes/CrosAdapta" ], "sources": [ { "type": "git", "url": "https://chromium.googlesource.com/chromiumos/third_party/cros-adapta", "commit": "eb6d8c1832b9181926df107faf41a80887fd982c" } ] }, { "name": "arc-gtk2-theme", "// NOTE": "This is used by Solus and is popular", "// FIXME": "This has a dependency on inkscape and my patch isn't quite good enough sadly", "disabled": true, "config-opts": [ "--disable-gnome-shell", "--disable-cinnamon", "--disable-gtk3", "--disable-metacity", "--disable-xfwm", "--disable-plank", "--disable-openbox", "--disable-unity" ], "sources": [ { "type": "archive", "url": "https://github.com/jnsh/arc-theme/releases/download/20200513/arc-theme-20200513.tar.xz", "sha256": "cd268b878d6ad7c81b7acc0f89b66e26ee9a9a92eafb03b792318d51707f1962" }, { "type": "patch", "path": "arc-gtk2-theme-Replace-Inkscape-dependency-with-rsvg-convert.patch" }, { "type": "shell", "commands": ["sed -i 's|\"$srcdir/configure\" $@||' autogen.sh"] } ], "modules": [ { "name": "optipng", "cleanup": ["*"], "sources": [ { "type": "archive", "url": "https://prdownloads.sourceforge.net/optipng/optipng-0.7.7.tar.gz", "sha256": "4f32f233cef870b3f95d3ad6428bfe4224ef34908f1b42b0badf858216654452" } ] } ] }, { "name": "breeze-gtk2-theme", "// NOTE": "This is used by some KDE distros", "// FIXME": "This is disabled because breeze depends on KDecoration/Qt5...", "disabled": true, "buildsystem": "cmake-ninja", "sources": [ { "type": "archive", "url": "https://github.com/KDE/breeze-gtk/archive/v5.18.90.tar.gz", "sha256": "73ff1fee8afb2fc498075d1693a664f6a749b763606d4548f74e225983107730" } ], "modules": [ { "name": "extra-cmake-modules", "buildsystem": "cmake-ninja", "cleanup": ["*"], "sources": [ { "type": "archive", "url": "https://github.com/KDE/extra-cmake-modules/archive/v5.70.0.tar.gz", "sha256": "0e6d0694b2372cbdbc9e64abcaaac21196a15355b360e02e2e833885ae0c62f2" } ] }, { "name": "breeze", "buildsystem": "cmake-ninja", "cleanup": ["*"], "sources": [ { "type": "archive", "url": "https://github.com/KDE/breeze/archive/v5.18.90.tar.gz", "sha256": "55e42656601dd79db1bc40589764606ec203c7f99c84340deed6e3847a4fdaf6" } ] } ] }, { "name": "elementary-gtk2-theme", "// NOTE": "This is used by Elementary OS", "buildsystem": "meson", "cleanup": [ "/share/themes/elementary/gtk-3.0", "/share/themes/elementary/plank", "/share/plank" ], "sources": [ { "type": "archive", "url": "https://github.com/elementary/stylesheet/archive/5.4.2.tar.gz", "sha256": "3bc37723daf4ce0b7c9ce4c125ef0055affe8d6654981388ec87d4a23a1ae0ec" } ] }, { "name": "yaru-gtk2-theme", "// NOTE": "This is used by Ubuntu", "buildsystem": "meson", "config-opts": [ "-Dicons=false", "-Dsounds=false", "-Dgnome-shell=false", "-Dsessions=false" ], "cleanup": [ "/share/themes/Yaru*/gtk-3.0", "/share/themes/Yaru*/gtk-3.20", "/share/themes/Yaru*/unity" ], "sources": [ { "type": "archive", "url": "https://github.com/ubuntu/yaru/archive/20.10.1.tar.gz", "sha256": "9da2605088674edf2694a8215b7344fb5209b308dd8220ea21667a914dc8c55d" } ] }, { "name": "greybird-gtk2-theme", "// NOTE": "This is used by many XFCE distros", "buildsystem": "meson", "cleanup": [ "/share/themes/Greybird*/xfwm4", "/share/themes/Greybird*/gnome-shell", "/share/themes/Greybird*/gtk-3.0", "/share/themes/Greybird*/metacity-1", "/share/themes/Greybird*/xfce-notify-4.0", "/share/themes/Greybird*/plank", "/share/themes/Greybird*/unity", "/share/themes/Greybird*/*.emerald" ], "sources": [ { "type": "archive", "url": "https://github.com/shimmerproject/Greybird/archive/v3.22.12.tar.gz", "sha256": "410804cd5daca33cbc5c7c4a179f3a334ced87f408e515fc5d9c083a04bec4bc" } ] }, { "name": "materia-gtk2-theme", "// NOTE": "This is used by Ubuntu Studio", "buildsystem": "meson", "cleanup": [ "/share/themes/Materia*/xfwm4", "/share/themes/Materia*/gnome-shell", "/share/themes/Materia*/gtk-3.0", "/share/themes/Materia*/metacity-1", "/share/themes/Materia*/cinnamon", "/share/themes/Materia*/chrome", "/share/themes/Materia*/plank", "/share/themes/Materia*/unity" ], "sources": [ { "type": "git", "url": "https://github.com/nana-4/materia-theme.git", "commit": "b36b379c9256b67e5f63a60c6faf6912f1845b66" } ] } ] } 0707010000013C000081A400000000000000000000000166968E4E00000349000000000000000000000000000000000000005200000000gnome-music-46.1/subprojects/shared-modules/gtk2/gtk2-fix-crash-in-show-uri.patchFrom 536da7a15c1737bc63c8ecba5ccac40cc2170860 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Mon, 19 Apr 2021 16:39:53 -0400 Subject: [PATCH] Fix a possible crash in gtk_show_uri g_file_get_basename can return NULL. Deal with it somehow. Fixes: #3883 --- gdk/x11/gdkapplaunchcontext-x11.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/gdk/x11/gdkapplaunchcontext-x11.c b/gdk/x11/gdkapplaunchcontext-x11.c index 8051229ba5..2341bb2e1f 100644 --- a/gdk/x11/gdkapplaunchcontext-x11.c +++ b/gdk/x11/gdkapplaunchcontext-x11.c @@ -45,6 +45,9 @@ get_display_name (GFile *file, if (name == NULL) { name = g_file_get_basename (file); + if (name == NULL) + name = g_file_get_uri (file); + if (!g_utf8_validate (name, -1, NULL)) { tmp = name; -- GitLab 0707010000013D000081A400000000000000000000000166968E4E00000840000000000000000000000000000000000000004E00000000gnome-music-46.1/subprojects/shared-modules/gtk2/gtk2-use-adwaita-theme.patchdiff --git a/gdk/x11/gdkevents-x11.c b/gdk/x11/gdkevents-x11.c index 186a8f5cb2..f5c39b5afe 100644 --- a/gdk/x11/gdkevents-x11.c +++ b/gdk/x11/gdkevents-x11.c @@ -3000,6 +3000,50 @@ check_transform (const gchar *xsettings_name, return TRUE; } +static gchar * +gtk_rc_get_theme_dir (void) +{ + const gchar *var; + gchar *path; + + var = g_getenv ("GTK_DATA_PREFIX"); + + if (var) + path = g_build_filename (var, "share", "themes", NULL); + else + path = g_build_filename ("/app", "share", "themes", NULL); + + return path; +} + +static gboolean +theme_name_valid (XSettingsSetting *setting) +{ + gboolean res = FALSE; + + if (setting->type == XSETTINGS_TYPE_STRING) + { + char *theme_name = setting->data.v_string; + gchar *theme_dir = gtk_rc_get_theme_dir (); + gchar *path = g_build_filename (theme_dir, theme_name, "gtk-2.0", "gtkrc", NULL); + + if (g_file_test (path, G_FILE_TEST_EXISTS)) + res = TRUE; + else if (g_str_has_suffix (theme_name, "-Dark") || + g_str_has_suffix (theme_name, "-dark")) + { + setting->data.v_string = g_strdup ("Adwaita-dark"); + g_free (theme_name); + res = TRUE; + } + + g_free (theme_dir); + g_free (path); + } + + return res; +} + /** * gdk_screen_get_setting: * @screen: the #GdkScreen where the setting is located @@ -3050,6 +3094,11 @@ gdk_screen_get_setting (GdkScreen *screen, if (result != XSETTINGS_SUCCESS) goto out; + if (strcmp (name, "gtk-theme-name") == 0 && + (setting->type != XSETTINGS_TYPE_STRING || + !theme_name_valid (setting))) + goto out; + switch (setting->type) { case XSETTINGS_TYPE_INT: diff --git a/gtk/gtksettings.c b/gtk/gtksettings.c index 3fbbf00548..5c0a4b33d2 100644 --- a/gtk/gtksettings.c +++ b/gtk/gtksettings.c @@ -312,7 +312,7 @@ gtk_settings_class_init (GtkSettingsClass *class) #ifdef G_OS_WIN32 "MS-Windows", #else - "Raleigh", + "Adwaita", #endif GTK_PARAM_READWRITE), NULL); 0707010000013E000081A400000000000000000000000166968E4E00000BAE000000000000000000000000000000000000003B00000000gnome-music-46.1/subprojects/shared-modules/gtk2/gtk2.json{ "name": "gnome-themes-extra", "rm-configure": true, "config-opts": [ "--disable-dependency-tracking", "--disable-gtk3-engine" ], "cleanup": [ "/share/themes/Adwaita/gtk-3.0", "/share/themes/Adwaita-dark/gtk-3.0", "/share/themes/HighContrast/gtk-3.0", "*.la" ], "sources": [ { "type": "archive", "url": "https://download.gnome.org/sources/gnome-themes-extra/3.28/gnome-themes-extra-3.28.tar.xz", "sha256": "7c4ba0bff001f06d8983cfc105adaac42df1d1267a2591798a780bac557a5819" }, { "type": "shell", "//": "We want to avoid generating icons as its 99% of the build time and gnome runtime has it", "commands": [ "sed -i 's/icons//' themes/HighContrast/Makefile.am" ] }, { "type": "script", "commands": [ "autoreconf -fsi" ] } ], "modules": [ "../intltool/intltool-0.51.json", { "name": "gtk2", "cleanup": [ "/bin", "/share/gtk-2.0", "/share/aclocal", "/share/gtk-doc", "/lib/pkgconfig", "/lib/gtk-2.0/include", "/include", "*.la" ], "x-cpe": { "product": "gtk+" }, "config-opts": [ "--disable-dependency-tracking", "--disable-gtk-doc-html", "--disable-introspection", "--with-xinput=xfree" ], "sources": [ { "type": "archive", "url": "https://download.gnome.org/sources/gtk+/2.24/gtk+-2.24.33.tar.xz", "sha256": "ac2ac757f5942d318a311a54b0c80b5ef295f299c2a73c632f6bfb1ff49cc6da" }, { "type": "patch", "path": "gtk2-use-adwaita-theme.patch" }, { "type": "patch", "path": "gtk2-fix-crash-in-show-uri.patch" } ] }, { "name": "ibus-gtk2", "config-opts": [ "--disable-xim", "--disable-dconf", "--disable-gconf", "--disable-memconf", "--disable-schemas-compile", "--disable-schemas-install", "--disable-gtk3", "--disable-setup", "--disable-ui", "--disable-engine", "--disable-python-library", "--disable-libnotify", "--disable-emoji-dict", "--disable-appindicator", "--disable-glibtest", "--disable-tests", "--disable-unicode-dict", "--disable-introspection", "--disable-python2" ], "make-install-args": [ "-C", "client/gtk2" ], "post-install": [ "gtk-query-immodules-2.0 > immodules.cache", "install immodules.cache -t $(pkg-config --variable=libdir gtk+-2.0)/gtk-2.0/2.10.0/" ], "sources": [ { "type": "archive", "url": "https://github.com/ibus/ibus/releases/download/1.5.23/ibus-1.5.23.tar.gz", "sha256": "b7e8d5bdb7d71a5ba4ee43cdf374675f77121a71c1679c9b9e7e02875bd0e150" } ] } ] } 0707010000013F000081A400000000000000000000000166968E4E00000225000000000000000000000000000000000000005000000000gnome-music-46.1/subprojects/shared-modules/gtk2/murrine-engine-fix-crash.patchIndex: gtk2-engines-murrine-0.98.2/src/murrine_style.c =================================================================== --- gtk2-engines-murrine-0.98.2.orig/src/murrine_style.c +++ gtk2-engines-murrine-0.98.2/src/murrine_style.c @@ -2171,6 +2171,7 @@ murrine_style_draw_layout (GtkStyle cairo_t *cr; cr = murrine_begin_paint (window, area); cairo_translate (cr, x+xos, y+yos); + pango_cairo_update_layout (cr, layout); pango_cairo_layout_path (cr, layout); murrine_set_color_rgba (cr, &temp, 0.5); cairo_stroke (cr); 07070100000140000041ED00000000000000000000000266968E4E00000000000000000000000000000000000000000000003200000000gnome-music-46.1/subprojects/shared-modules/gudev07070100000141000081A400000000000000000000000166968E4E0000028E000000000000000000000000000000000000003D00000000gnome-music-46.1/subprojects/shared-modules/gudev/gudev.json{ "name": "gudev", "buildsystem": "meson", "config-opts": [ "-Dtests=disabled", "-Dvapi=disabled", "-Dintrospection=disabled", "-Dgtk_doc=false" ], "cleanup": [ "/include", "/etc", "/libexec", "/sbin", "/lib/pkgconfig", "/lib/systemd", "/man", "/share/aclocal", "/share/doc", "/share/gtk-doc", "/share/man", "/share/pkgconfig", "*.la", "*.a" ], "sources": [ { "type": "archive", "url": "https://download.gnome.org/sources/libgudev/237/libgudev-237.tar.xz", "sha256": "0d06b21170d20c93e4f0534dbb9b0a8b4f1119ffb00b4031aaeb5b9148b686aa" } ] } 07070100000142000041ED00000000000000000000000266968E4E00000000000000000000000000000000000000000000003300000000gnome-music-46.1/subprojects/shared-modules/gzdoom07070100000143000081A400000000000000000000000166968E4E00000458000000000000000000000000000000000000004500000000gnome-music-46.1/subprojects/shared-modules/gzdoom/description.patchdiff --git a/src/d_iwad.cpp b/src/d_iwad.cpp index b421b1b35..9f0b16948 100644 --- a/src/d_iwad.cpp +++ b/src/d_iwad.cpp @@ -683,9 +683,10 @@ int FIWadManager::IdentifyVersion (TArray &wadfiles, const char *iwad, "2. Edit your ~/Library/Preferences/" GAMENAMELOWERCASE ".ini and add the directories\n" "of your iwads to the list beneath [IWADSearch.Directories]"); #else - "1. Place one or more of these wads in ~/.config/" GAMENAMELOWERCASE "/.\n" - "2. Edit your ~/.config/" GAMENAMELOWERCASE "/" GAMENAMELOWERCASE ".ini and add the directories of your\n" - "iwads to the list beneath [IWADSearch.Directories]"); + "1. Place one or more of these wads in ~/.var/app/org.zdoom.GZDoom/.config/" GAMENAMELOWERCASE "/\n" + "2. Edit your ~/.var/app/org.zdoom.GZDoom/.config/" GAMENAMELOWERCASE "/" GAMENAMELOWERCASE ".ini and\n" + " add the directories of your iwads to the list beneath [IWADSearch.Directories]\n" + "3. Validate your Flatpak permissions, so that Flatpak has access to your directories with wads"); #endif } int pick = 0; 07070100000144000081A400000000000000000000000166968E4E000005D8000000000000000000000000000000000000003F00000000gnome-music-46.1/subprojects/shared-modules/gzdoom/gzdoom.json{ "name": "gzdoom", "buildsystem": "cmake-ninja", "config-opts": [ "-DCMAKE_BUILD_TYPE=RelWithDebInfo" ], "cleanup": [ "/lib/*.a", "/lib/*.la", "/lib/pkgconfig", "/include" ], "sources": [ { "type": "git", "url": "https://github.com/coelckers/gzdoom.git", "tag": "g4.7.1", "commit": "107ff702423686414680d6458fea63a2647692c4" }, { "type": "file", "url": "https://github.com/coelckers/gzdoom/raw/g4.7.1/soundfont/gzdoom.sf2", "sha256": "fca3e514b635a21789d4224e84865d2954a2a914d46b64aa8219ddb565c44869" }, /* I've discussed these patches upstream and a special -DFLATPAK_BUNDLE has been approved */ { "type": "patch", "path": "description.patch" } ], "post-install": [ "install -Dm 644 gzdoom.sf2 /app/share/sounds/sf2/gzdoom.sf2" ], "modules": [ { "name": "zmusic", "buildsystem": "cmake-ninja", "config-opts": [ "-DCMAKE_BUILD_TYPE=RelWithDebInfo" ], "sources": [ { "type": "archive", "url": "https://github.com/coelckers/ZMusic/archive/1.1.8.tar.gz", "sha256": "73082f661b7b0bb33348d1d186c132deec9132a1613480348a00172b49c9fd68" } ] } ] } 07070100000145000041ED00000000000000000000000266968E4E00000000000000000000000000000000000000000000003500000000gnome-music-46.1/subprojects/shared-modules/intltool07070100000146000081A400000000000000000000000166968E4E00000170000000000000000000000000000000000000004800000000gnome-music-46.1/subprojects/shared-modules/intltool/intltool-0.51.json{ "name": "intltool", "cleanup": [ "*" ], "sources": [ { "type": "archive", "url": "https://launchpad.net/intltool/trunk/0.51.0/+download/intltool-0.51.0.tar.gz", "sha256": "67c74d94196b153b774ab9f89b2fa6c6ba79352407037c8c14d5aeb334e959cd" }, { "type": "patch", "path": "intltool-perl5.26-regex-fixes.patch" } ] } 07070100000147000081A400000000000000000000000166968E4E00000B08000000000000000000000000000000000000005900000000gnome-music-46.1/subprojects/shared-modules/intltool/intltool-perl5.26-regex-fixes.patchDescription: Escape "{", to prevent complaints from perl 5.22 and 5.26 Author: Roderich Schupp Author: gregor herrmann Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=788705 Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=826471 Bug-Upstream: https://bugs.launchpad.net/intltool/+bug/1490906 Index: intltool-0.51.0/intltool-update.in =================================================================== --- intltool-0.51.0.orig/intltool-update.in 2017-07-23 17:24:35.113169465 +0200 +++ intltool-0.51.0/intltool-update.in 2017-07-23 17:24:35.109169052 +0200 @@ -1062,13 +1062,13 @@ } } - if ($str =~ /^(.*)\${?([A-Z_]+)}?(.*)$/) + if ($str =~ /^(.*)\$\{?([A-Z_]+)}?(.*)$/) { my $rest = $3; my $untouched = $1; my $sub = ""; # Ignore recursive definitions of variables - $sub = $varhash{$2} if defined $varhash{$2} and $varhash{$2} !~ /\${?$2}?/; + $sub = $varhash{$2} if defined $varhash{$2} and $varhash{$2} !~ /\$\{?$2}?/; return SubstituteVariable ("$untouched$sub$rest"); } @@ -1190,10 +1190,10 @@ $name =~ s/\(+$//g; $version =~ s/\(+$//g; - $varhash{"PACKAGE_NAME"} = $name if (not $name =~ /\${?AC_PACKAGE_NAME}?/); - $varhash{"PACKAGE"} = $name if (not $name =~ /\${?PACKAGE}?/); - $varhash{"PACKAGE_VERSION"} = $version if (not $name =~ /\${?AC_PACKAGE_VERSION}?/); - $varhash{"VERSION"} = $version if (not $name =~ /\${?VERSION}?/); + $varhash{"PACKAGE_NAME"} = $name if (not $name =~ /\$\{?AC_PACKAGE_NAME}?/); + $varhash{"PACKAGE"} = $name if (not $name =~ /\$\{?PACKAGE}?/); + $varhash{"PACKAGE_VERSION"} = $version if (not $name =~ /\$\{?AC_PACKAGE_VERSION}?/); + $varhash{"VERSION"} = $version if (not $name =~ /\$\{?VERSION}?/); } if ($conf_source =~ /^AC_INIT\(([^,\)]+),([^,\)]+)[,]?([^,\)]+)?/m) @@ -1219,11 +1219,11 @@ $version =~ s/\(+$//g; $bugurl =~ s/\(+$//g if (defined $bugurl); - $varhash{"PACKAGE_NAME"} = $name if (not $name =~ /\${?AC_PACKAGE_NAME}?/); - $varhash{"PACKAGE"} = $name if (not $name =~ /\${?PACKAGE}?/); - $varhash{"PACKAGE_VERSION"} = $version if (not $name =~ /\${?AC_PACKAGE_VERSION}?/); - $varhash{"VERSION"} = $version if (not $name =~ /\${?VERSION}?/); - $varhash{"PACKAGE_BUGREPORT"} = $bugurl if (defined $bugurl and not $bugurl =~ /\${?\w+}?/); + $varhash{"PACKAGE_NAME"} = $name if (not $name =~ /\$\{?AC_PACKAGE_NAME}?/); + $varhash{"PACKAGE"} = $name if (not $name =~ /\$\{?PACKAGE}?/); + $varhash{"PACKAGE_VERSION"} = $version if (not $name =~ /\$\{?AC_PACKAGE_VERSION}?/); + $varhash{"VERSION"} = $version if (not $name =~ /\$\{?VERSION}?/); + $varhash{"PACKAGE_BUGREPORT"} = $bugurl if (defined $bugurl and not $bugurl =~ /\$\{?\w+}?/); } # \s makes this not work, why? 07070100000148000041ED00000000000000000000000266968E4E00000000000000000000000000000000000000000000003100000000gnome-music-46.1/subprojects/shared-modules/lame07070100000149000081A400000000000000000000000166968E4E00000339000000000000000000000000000000000000004200000000gnome-music-46.1/subprojects/shared-modules/lame/lame-3.99.5.json{ "name": "lame", "rm-configure": true, "config-opts": ["--disable-static"], "sources": [ { "type": "archive", "url": "https://downloads.sourceforge.net/lame/lame-3.99.5.tar.gz", "sha256": "24346b4158e4af3bd9f2e194bb23eb473c75fb7377011523353196b19b9a23ff" }, { "type": "patch", "path": "lame-msse.patch" }, { "type": "patch", "path": "lame-gtk1-ac-directives.patch" }, { "type": "patch", "path": "lame-ansi2knr2devnull.patch" }, { "type": "patch", "path": "lame-tinfo.patch", "strip-components": 0 }, { "type": "script", "dest-filename": "autogen.sh", "commands": [ "autoreconf -vfi" ] } ], "cleanup": ["/bin", "/include", "/share/doc", "/share/man", "*.la"] } 0707010000014A000081A400000000000000000000000166968E4E00000456000000000000000000000000000000000000004D00000000gnome-music-46.1/subprojects/shared-modules/lame/lame-ansi2knr2devnull.patchDescription: Patch out remaining ansi2knr. Author: Dimitri John Ledkov Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=755111 --- a/configure.in +++ b/configure.in @@ -78,7 +78,6 @@ fi dnl more automake stuff -AM_C_PROTOTYPES AC_CHECK_HEADER(dmalloc.h) if test "${ac_cv_header_dmalloc_h}" = "yes"; then --- a/doc/man/Makefile.am +++ b/doc/man/Makefile.am @@ -1,6 +1,6 @@ ## $Id: Makefile.am,v 1.1 2000/10/22 11:39:44 aleidinger Exp $ -AUTOMAKE_OPTIONS = foreign ansi2knr +AUTOMAKE_OPTIONS = foreign man_MANS = lame.1 EXTRA_DIST = ${man_MANS} --- a/libmp3lame/i386/Makefile.am +++ b/libmp3lame/i386/Makefile.am @@ -1,6 +1,6 @@ ## $Id: Makefile.am,v 1.26 2011/04/04 09:42:34 aleidinger Exp $ -AUTOMAKE_OPTIONS = foreign $(top_srcdir)/ansi2knr +AUTOMAKE_OPTIONS = foreign DEFS = @DEFS@ @CONFIG_DEFS@ --- a/doc/html/Makefile.am +++ b/doc/html/Makefile.am @@ -1,6 +1,6 @@ ## $Id: Makefile.am,v 1.7 2010/09/30 20:58:40 jaz001 Exp $ -AUTOMAKE_OPTIONS = foreign ansi2knr +AUTOMAKE_OPTIONS = foreign docdir = $(datadir)/doc pkgdocdir = $(docdir)/$(PACKAGE) 0707010000014B000081A400000000000000000000000166968E4E000022B8000000000000000000000000000000000000004F00000000gnome-music-46.1/subprojects/shared-modules/lame/lame-gtk1-ac-directives.patchDescription: Include GTK-1 autoconf directives in build system. Origin: http://anonscm.debian.org/gitweb/?p=pkg-multimedia/lame.git;a=tree;f=debian/patches Forwarded: yes Applied-Upstream: http://lame.cvs.sf.net/viewvc/lame/lame/acinclude.m4?revision=1.6 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -85,4 +85,197 @@ [AC_MSG_WARN(can't check for IEEE854 compliant 80 bit floats)] )])]) # alex_IEEE854_FLOAT80 +# Configure paths for GTK+ +# Owen Taylor 97-11-3 +dnl AM_PATH_GTK([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]]) +dnl Test for GTK, and define GTK_CFLAGS and GTK_LIBS +dnl +AC_DEFUN([AM_PATH_GTK], +[dnl +dnl Get the cflags and libraries from the gtk-config script +dnl +AC_ARG_WITH(gtk-prefix,[ --with-gtk-prefix=PFX Prefix where GTK is installed (optional)], + gtk_config_prefix="$withval", gtk_config_prefix="") +AC_ARG_WITH(gtk-exec-prefix,[ --with-gtk-exec-prefix=PFX Exec prefix where GTK is installed (optional)], + gtk_config_exec_prefix="$withval", gtk_config_exec_prefix="") +AC_ARG_ENABLE(gtktest, [ --disable-gtktest Do not try to compile and run a test GTK program], + , enable_gtktest=yes) + + for module in . $4 + do + case "$module" in + gthread) + gtk_config_args="$gtk_config_args gthread" + ;; + esac + done + + if test x$gtk_config_exec_prefix != x ; then + gtk_config_args="$gtk_config_args --exec-prefix=$gtk_config_exec_prefix" + if test x${GTK_CONFIG+set} != xset ; then + GTK_CONFIG=$gtk_config_exec_prefix/bin/gtk-config + fi + fi + if test x$gtk_config_prefix != x ; then + gtk_config_args="$gtk_config_args --prefix=$gtk_config_prefix" + if test x${GTK_CONFIG+set} != xset ; then + GTK_CONFIG=$gtk_config_prefix/bin/gtk-config + fi + fi + + AC_PATH_PROG(GTK_CONFIG, gtk-config, no) + min_gtk_version=ifelse([$1], ,0.99.7,$1) + AC_MSG_CHECKING(for GTK - version >= $min_gtk_version) + no_gtk="" + if test "$GTK_CONFIG" = "no" ; then + no_gtk=yes + else + GTK_CFLAGS=`$GTK_CONFIG $gtk_config_args --cflags` + GTK_LIBS=`$GTK_CONFIG $gtk_config_args --libs` + gtk_config_major_version=`$GTK_CONFIG $gtk_config_args --version | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` + gtk_config_minor_version=`$GTK_CONFIG $gtk_config_args --version | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` + gtk_config_micro_version=`$GTK_CONFIG $gtk_config_args --version | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` + if test "x$enable_gtktest" = "xyes" ; then + ac_save_CFLAGS="$CFLAGS" + ac_save_LIBS="$LIBS" + CFLAGS="$CFLAGS $GTK_CFLAGS" + LIBS="$GTK_LIBS $LIBS" +dnl +dnl Now check if the installed GTK is sufficiently new. (Also sanity +dnl checks the results of gtk-config to some extent +dnl + rm -f conf.gtktest + AC_TRY_RUN([ +#include +#include +#include + +int +main () +{ + int major, minor, micro; + char *tmp_version; + + system ("touch conf.gtktest"); + + /* HP/UX 9 (%@#!) writes to sscanf strings */ + tmp_version = g_strdup("$min_gtk_version"); + if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) { + printf("%s, bad version string\n", "$min_gtk_version"); + exit(1); + } + + if ((gtk_major_version != $gtk_config_major_version) || + (gtk_minor_version != $gtk_config_minor_version) || + (gtk_micro_version != $gtk_config_micro_version)) + { + printf("\n*** 'gtk-config --version' returned %d.%d.%d, but GTK+ (%d.%d.%d)\n", + $gtk_config_major_version, $gtk_config_minor_version, $gtk_config_micro_version, + gtk_major_version, gtk_minor_version, gtk_micro_version); + printf ("*** was found! If gtk-config was correct, then it is best\n"); + printf ("*** to remove the old version of GTK+. You may also be able to fix the error\n"); + printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n"); + printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n"); + printf("*** required on your system.\n"); + printf("*** If gtk-config was wrong, set the environment variable GTK_CONFIG\n"); + printf("*** to point to the correct copy of gtk-config, and remove the file config.cache\n"); + printf("*** before re-running configure\n"); + } +#if defined (GTK_MAJOR_VERSION) && defined (GTK_MINOR_VERSION) && defined (GTK_MICRO_VERSION) + else if ((gtk_major_version != GTK_MAJOR_VERSION) || + (gtk_minor_version != GTK_MINOR_VERSION) || + (gtk_micro_version != GTK_MICRO_VERSION)) + { + printf("*** GTK+ header files (version %d.%d.%d) do not match\n", + GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION); + printf("*** library (version %d.%d.%d)\n", + gtk_major_version, gtk_minor_version, gtk_micro_version); + } +#endif /* defined (GTK_MAJOR_VERSION) ... */ + else + { + if ((gtk_major_version > major) || + ((gtk_major_version == major) && (gtk_minor_version > minor)) || + ((gtk_major_version == major) && (gtk_minor_version == minor) && (gtk_micro_version >= micro))) + { + return 0; + } + else + { + printf("\n*** An old version of GTK+ (%d.%d.%d) was found.\n", + gtk_major_version, gtk_minor_version, gtk_micro_version); + printf("*** You need a version of GTK+ newer than %d.%d.%d. The latest version of\n", + major, minor, micro); + printf("*** GTK+ is always available from ftp://ftp.gtk.org.\n"); + printf("***\n"); + printf("*** If you have already installed a sufficiently new version, this error\n"); + printf("*** probably means that the wrong copy of the gtk-config shell script is\n"); + printf("*** being found. The easiest way to fix this is to remove the old version\n"); + printf("*** of GTK+, but you can also set the GTK_CONFIG environment to point to the\n"); + printf("*** correct copy of gtk-config. (In this case, you will have to\n"); + printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n"); + printf("*** so that the correct libraries are found at run-time))\n"); + } + } + return 1; +} +],, no_gtk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"]) + CFLAGS="$ac_save_CFLAGS" + LIBS="$ac_save_LIBS" + fi + fi + if test "x$no_gtk" = x ; then + AC_MSG_RESULT(yes) + ifelse([$2], , :, [$2]) + else + AC_MSG_RESULT(no) + if test "$GTK_CONFIG" = "no" ; then + echo "*** The gtk-config script installed by GTK could not be found" + echo "*** If GTK was installed in PREFIX, make sure PREFIX/bin is in" + echo "*** your path, or set the GTK_CONFIG environment variable to the" + echo "*** full path to gtk-config." + else + if test -f conf.gtktest ; then + : + else + echo "*** Could not run GTK test program, checking why..." + CFLAGS="$CFLAGS $GTK_CFLAGS" + LIBS="$LIBS $GTK_LIBS" + AC_TRY_LINK([ +#include +#include +], [ return ((gtk_major_version) || (gtk_minor_version) || (gtk_micro_version)); ], + [ echo "*** The test program compiled, but did not run. This usually means" + echo "*** that the run-time linker is not finding GTK or finding the wrong" + echo "*** version of GTK. If it is not finding GTK, you'll need to set your" + echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" + echo "*** to the installed location Also, make sure you have run ldconfig if that" + echo "*** is required on your system" + echo "***" + echo "*** If you have an old version installed, it is best to remove it, although" + echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" + echo "***" + echo "*** If you have a RedHat 5.0 system, you should remove the GTK package that" + echo "*** came with the system with the command" + echo "***" + echo "*** rpm --erase --nodeps gtk gtk-devel" ], + [ echo "*** The test program failed to compile or link. See the file config.log for the" + echo "*** exact error that occured. This usually means GTK was incorrectly installed" + echo "*** or that you have moved GTK since it was installed. In the latter case, you" + echo "*** may want to edit the gtk-config script: $GTK_CONFIG" ]) + CFLAGS="$ac_save_CFLAGS" + LIBS="$ac_save_LIBS" + fi + fi + GTK_CFLAGS="" + GTK_LIBS="" + ifelse([$3], , :, [$3]) + fi + AC_SUBST(GTK_CFLAGS) + AC_SUBST(GTK_LIBS) + rm -f conf.gtktest +]) 0707010000014C000081A400000000000000000000000166968E4E0000023F000000000000000000000000000000000000004100000000gnome-music-46.1/subprojects/shared-modules/lame/lame-msse.patchDescription: Build xmm_quantize_sub.c with -msse Author: Sebastian Ramacher Bug: http://sourceforge.net/p/lame/bugs/443/ Bug-Debian: https://bugs.debian.org/760047 Forwarded: http://sourceforge.net/p/lame/bugs/443/ Last-Update: 2014-08-31 --- lame-3.99.5+repack1.orig/libmp3lame/vector/Makefile.am +++ lame-3.99.5+repack1/libmp3lame/vector/Makefile.am @@ -20,6 +20,7 @@ xmm_sources = xmm_quantize_sub.c if WITH_XMM liblamevectorroutines_la_SOURCES = $(xmm_sources) +liblamevectorroutines_la_CFLAGS = -msse endif noinst_HEADERS = lame_intrin.h 0707010000014D000081A400000000000000000000000166968E4E000002FC000000000000000000000000000000000000004200000000gnome-music-46.1/subprojects/shared-modules/lame/lame-tinfo.patchinitscr is not used anywhere in lame sourcetree, check for used tgetent instead check for separate tinfo library optionally built out from libncurses source tree, like used in debian and gentoo - ssuominen@g.o http://bugs.gentoo.org/454322 --- configure.in +++ configure.in @@ -372,9 +372,10 @@ AC_CHECK_HEADERS(termcap.h) AC_CHECK_HEADERS(ncurses/termcap.h) -AC_CHECK_LIB(termcap, initscr, HAVE_TERMCAP="termcap") -AC_CHECK_LIB(curses, initscr, HAVE_TERMCAP="curses") -AC_CHECK_LIB(ncurses, initscr, HAVE_TERMCAP="ncurses") +AC_CHECK_LIB(termcap, tgetent, HAVE_TERMCAP="termcap") +AC_CHECK_LIB(curses, tgetent, HAVE_TERMCAP="curses") +AC_CHECK_LIB(ncurses, tgetent, HAVE_TERMCAP="ncurses") +AC_CHECK_LIB(tinfo, tgetent, HAVE_TERMCAP="tinfo") AM_ICONV 0707010000014E000041ED00000000000000000000000266968E4E00000000000000000000000000000000000000000000003C00000000gnome-music-46.1/subprojects/shared-modules/libappindicator0707010000014F000081A400000000000000000000000166968E4E000001E9000000000000000000000000000000000000004500000000gnome-music-46.1/subprojects/shared-modules/libappindicator/Makefileall: libappindicator-gtk3-introspection-12.10.json libappindicator-gtk3-12.10.json libappindicator-gtk2-12.10.json libappindicator-gtk3-introspection-12.10.json: libappindicator.json.in sed -e 's/@GTK_VER@/3/g' -e 's/@INTROSPECTION@/yes/g' $< > $@ libappindicator-gtk3-12.10.json: libappindicator.json.in sed -e 's/@GTK_VER@/3/g' -e 's/@INTROSPECTION@/no/g' $< > $@ libappindicator-gtk2-12.10.json: libappindicator.json.in sed -e 's/@GTK_VER@/2/g' -e 's/@INTROSPECTION@/no/g' $< > $@07070100000150000081A400000000000000000000000166968E4E00000B91000000000000000000000000000000000000007B00000000gnome-music-46.1/subprojects/shared-modules/libappindicator/libappindicator-fix-crash-from-incorrect-signal-emission.patch--- libappindicator-12.10.0/src/app-indicator.c 2012-07-11 13:28:34.415113869 -0400 +++ wrk/src/app-indicator.c 2020-03-19 12:14:47.813191652 -0400 @@ -443,7 +443,7 @@ G_STRUCT_OFFSET (AppIndicatorClass, new_icon), NULL, NULL, g_cclosure_marshal_VOID__VOID, - G_TYPE_NONE, 0, G_TYPE_NONE); + G_TYPE_NONE, 0); /** * AppIndicator::new-attention-icon: @@ -457,7 +457,7 @@ G_STRUCT_OFFSET (AppIndicatorClass, new_attention_icon), NULL, NULL, g_cclosure_marshal_VOID__VOID, - G_TYPE_NONE, 0, G_TYPE_NONE); + G_TYPE_NONE, 0); /** * AppIndicator::new-status: @@ -505,7 +505,7 @@ G_STRUCT_OFFSET (AppIndicatorClass, connection_changed), NULL, NULL, g_cclosure_marshal_VOID__BOOLEAN, - G_TYPE_NONE, 1, G_TYPE_BOOLEAN, G_TYPE_NONE); + G_TYPE_NONE, 1, G_TYPE_BOOLEAN); /** * AppIndicator::new-icon-theme-path: @@ -1175,7 +1175,7 @@ gchar * guide = priv->label_guide != NULL ? priv->label_guide : ""; g_signal_emit(G_OBJECT(self), signals[NEW_LABEL], 0, - label, guide, TRUE); + label, guide); if (priv->dbus_registration != 0 && priv->connection != NULL) { GError * error = NULL; @@ -1490,7 +1490,7 @@ static void theme_changed_cb (GtkIconTheme * theme, gpointer user_data) { - g_signal_emit (user_data, signals[NEW_ICON], 0, TRUE); + g_signal_emit (user_data, signals[NEW_ICON], 0); AppIndicator * self = (AppIndicator *)user_data; AppIndicatorPrivate *priv = self->priv; @@ -1904,7 +1904,7 @@ } if (changed) { - g_signal_emit (self, signals[NEW_ATTENTION_ICON], 0, TRUE); + g_signal_emit (self, signals[NEW_ATTENTION_ICON], 0); if (self->priv->dbus_registration != 0 && self->priv->connection != NULL) { GError * error = NULL; @@ -1982,7 +1982,7 @@ } if (changed) { - g_signal_emit (self, signals[NEW_ICON], 0, TRUE); + g_signal_emit (self, signals[NEW_ICON], 0); if (self->priv->dbus_registration != 0 && self->priv->connection != NULL) { GError * error = NULL; @@ -2048,7 +2048,7 @@ self->priv->icon_theme_path = g_strdup(icon_theme_path); - g_signal_emit (self, signals[NEW_ICON_THEME_PATH], 0, self->priv->icon_theme_path, TRUE); + g_signal_emit (self, signals[NEW_ICON_THEME_PATH], 0, self->priv->icon_theme_path); if (self->priv->dbus_registration != 0 && self->priv->connection != NULL) { GError * error = NULL; 07070100000151000081A400000000000000000000000166968E4E000001D7000000000000000000000000000000000000007200000000gnome-music-46.1/subprojects/shared-modules/libappindicator/libappindicator-fix-crash-iterating-icon-themes.patch--- libappindicator-12.10.0/src/app-indicator.c +++ libappindicator-12.10.0/src/app-indicator.c @@ -1606,7 +1606,7 @@ status_icon_changes (AppIndicator * self, gpointer data) gint n_elements, i; gboolean found=FALSE; gtk_icon_theme_get_search_path(icon_theme, &path, &n_elements); - for (i=0; i< n_elements || path[i] == NULL; i++) { + for (i=0; i< n_elements; i++) { if(g_strcmp0(path[i], self->priv->icon_theme_path) == 0) { found=TRUE; break; 07070100000152000081A400000000000000000000000166968E4E00000334000000000000000000000000000000000000005800000000gnome-music-46.1/subprojects/shared-modules/libappindicator/libappindicator-ftbfs.patchFrom: Olivier Tilloy Date: Tue 2018-03-20 12:47:56 +0000 Subject: [PATCH] libappindicator FTBFS on bionic Fix build failures on bionic, and update Vcs-* fields in debian/control. (LP: #1757121) Approved by: Marco Trevisan (Treviño) --- --- libappindicator-12.10.0/src/app-indicator.c 2017-02-15 14:10:41 +0000 +++ libappindicator-12.10.0/src/app-indicator.c 2018-03-20 12:38:59 +0000 @@ -2196,7 +2196,7 @@ app_indicator_set_secondary_activate_tar g_return_if_fail (GTK_IS_WIDGET (menuitem)); - priv->sec_activate_target = g_object_ref(G_OBJECT(menuitem)); + priv->sec_activate_target = g_object_ref(menuitem); priv->sec_activate_enabled = widget_is_menu_child(self, menuitem); g_signal_connect(menuitem, "parent-set", G_CALLBACK(sec_activate_target_parent_changed), self); } 07070100000153000081A400000000000000000000000166968E4E00000C7E000000000000000000000000000000000000005C00000000gnome-music-46.1/subprojects/shared-modules/libappindicator/libappindicator-gtk2-12.10.json{ "name": "libappindicator", "build-options": { "cflags": "-Wno-error", "make-args": [ "-j1" ] }, "rm-configure": true, "config-opts": [ "--disable-static", "--disable-gtk-doc", "--disable-tests", "--disable-mono-tests", "--enable-introspection=no", "--with-gtk=2" ], "cleanup": [ "/include", "/lib/pkgconfig", "/lib/*.la", "/share/gtk-doc", "/share/gir-1.0" ], "sources": [ { "type": "archive", "url": "https://launchpad.net/libappindicator/12.10/12.10.0/+download/libappindicator-12.10.0.tar.gz", "sha256": "d5907c1f98084acf28fd19593cb70672caa0ca1cf82d747ba6f4830d4cc3b49f" }, { "type": "patch", "path": "libappindicator-ftbfs.patch" }, { "type": "patch", "path": "libappindicator-no-python.patch" }, { "type": "patch", "path": "libappindicator-fix-crash-from-incorrect-signal-emission.patch" }, { "type": "patch", "path": "libappindicator-fix-crash-iterating-icon-themes.patch" }, { "type": "script", "commands": ["autoreconf -sfi"], "dest-filename": "autogen.sh" } ], "modules": [ "../intltool/intltool-0.51.json", "../dbus-glib/dbus-glib.json", { "name": "libdbusmenu", "build-options": { "cflags": "-Wno-error", "env": { "HAVE_VALGRIND_FALSE": "#", "HAVE_VALGRIND_TRUE": "" } }, "cleanup": [ "/include", "/libexec", "/lib/pkgconfig", "/lib/*.la", "/share/doc", "/share/libdbusmenu", "/share/gtk-doc", "/share/gir-1.0" ], "config-opts": [ "--disable-static", "--disable-gtk-doc", "--enable-introspection=no", "--disable-vala", "--disable-dumper", "--disable-tests", "--with-gtk=2" ], "sources": [ { "type": "archive", "url": "https://launchpad.net/libdbusmenu/16.04/16.04.0/+download/libdbusmenu-16.04.0.tar.gz", "sha256": "b9cc4a2acd74509435892823607d966d424bd9ad5d0b00938f27240a1bfa878a" } ] }, { "name": "libindicator", "build-options": { "cflags": "-Wno-error" }, "cleanup": [ "/include", "/libexec", "/lib/pkgconfig", "/lib/*.la", "/share/libindicator", "/share/gtk-doc", "/share/gir-1.0" ], "config-opts": [ "--disable-static", "--disable-tests", "--with-gtk=2" ], "sources": [ { "type": "archive", "url": "https://launchpad.net/libindicator/12.10/12.10.1/+download/libindicator-12.10.1.tar.gz", "sha256": "b2d2e44c10313d5c9cd60db455d520f80b36dc39562df079a3f29495e8f9447f" }, { "type": "shell", "commands": [ "# FTBFS fix", "sed -e '/LIBINDICATOR_LIBS/ s/\\$LIBM/ $LIBM/' -i configure.ac" ] }, { "type": "script", "commands": ["autoreconf -sfi"], "dest-filename": "autogen.sh" } ] } ] } 07070100000154000081A400000000000000000000000166968E4E00000C7E000000000000000000000000000000000000005C00000000gnome-music-46.1/subprojects/shared-modules/libappindicator/libappindicator-gtk3-12.10.json{ "name": "libappindicator", "build-options": { "cflags": "-Wno-error", "make-args": [ "-j1" ] }, "rm-configure": true, "config-opts": [ "--disable-static", "--disable-gtk-doc", "--disable-tests", "--disable-mono-tests", "--enable-introspection=no", "--with-gtk=3" ], "cleanup": [ "/include", "/lib/pkgconfig", "/lib/*.la", "/share/gtk-doc", "/share/gir-1.0" ], "sources": [ { "type": "archive", "url": "https://launchpad.net/libappindicator/12.10/12.10.0/+download/libappindicator-12.10.0.tar.gz", "sha256": "d5907c1f98084acf28fd19593cb70672caa0ca1cf82d747ba6f4830d4cc3b49f" }, { "type": "patch", "path": "libappindicator-ftbfs.patch" }, { "type": "patch", "path": "libappindicator-no-python.patch" }, { "type": "patch", "path": "libappindicator-fix-crash-from-incorrect-signal-emission.patch" }, { "type": "patch", "path": "libappindicator-fix-crash-iterating-icon-themes.patch" }, { "type": "script", "commands": ["autoreconf -sfi"], "dest-filename": "autogen.sh" } ], "modules": [ "../intltool/intltool-0.51.json", "../dbus-glib/dbus-glib.json", { "name": "libdbusmenu", "build-options": { "cflags": "-Wno-error", "env": { "HAVE_VALGRIND_FALSE": "#", "HAVE_VALGRIND_TRUE": "" } }, "cleanup": [ "/include", "/libexec", "/lib/pkgconfig", "/lib/*.la", "/share/doc", "/share/libdbusmenu", "/share/gtk-doc", "/share/gir-1.0" ], "config-opts": [ "--disable-static", "--disable-gtk-doc", "--enable-introspection=no", "--disable-vala", "--disable-dumper", "--disable-tests", "--with-gtk=3" ], "sources": [ { "type": "archive", "url": "https://launchpad.net/libdbusmenu/16.04/16.04.0/+download/libdbusmenu-16.04.0.tar.gz", "sha256": "b9cc4a2acd74509435892823607d966d424bd9ad5d0b00938f27240a1bfa878a" } ] }, { "name": "libindicator", "build-options": { "cflags": "-Wno-error" }, "cleanup": [ "/include", "/libexec", "/lib/pkgconfig", "/lib/*.la", "/share/libindicator", "/share/gtk-doc", "/share/gir-1.0" ], "config-opts": [ "--disable-static", "--disable-tests", "--with-gtk=3" ], "sources": [ { "type": "archive", "url": "https://launchpad.net/libindicator/12.10/12.10.1/+download/libindicator-12.10.1.tar.gz", "sha256": "b2d2e44c10313d5c9cd60db455d520f80b36dc39562df079a3f29495e8f9447f" }, { "type": "shell", "commands": [ "# FTBFS fix", "sed -e '/LIBINDICATOR_LIBS/ s/\\$LIBM/ $LIBM/' -i configure.ac" ] }, { "type": "script", "commands": ["autoreconf -sfi"], "dest-filename": "autogen.sh" } ] } ] } 07070100000155000081A400000000000000000000000166968E4E00000C80000000000000000000000000000000000000006A00000000gnome-music-46.1/subprojects/shared-modules/libappindicator/libappindicator-gtk3-introspection-12.10.json{ "name": "libappindicator", "build-options": { "cflags": "-Wno-error", "make-args": [ "-j1" ] }, "rm-configure": true, "config-opts": [ "--disable-static", "--disable-gtk-doc", "--disable-tests", "--disable-mono-tests", "--enable-introspection=yes", "--with-gtk=3" ], "cleanup": [ "/include", "/lib/pkgconfig", "/lib/*.la", "/share/gtk-doc", "/share/gir-1.0" ], "sources": [ { "type": "archive", "url": "https://launchpad.net/libappindicator/12.10/12.10.0/+download/libappindicator-12.10.0.tar.gz", "sha256": "d5907c1f98084acf28fd19593cb70672caa0ca1cf82d747ba6f4830d4cc3b49f" }, { "type": "patch", "path": "libappindicator-ftbfs.patch" }, { "type": "patch", "path": "libappindicator-no-python.patch" }, { "type": "patch", "path": "libappindicator-fix-crash-from-incorrect-signal-emission.patch" }, { "type": "patch", "path": "libappindicator-fix-crash-iterating-icon-themes.patch" }, { "type": "script", "commands": ["autoreconf -sfi"], "dest-filename": "autogen.sh" } ], "modules": [ "../intltool/intltool-0.51.json", "../dbus-glib/dbus-glib.json", { "name": "libdbusmenu", "build-options": { "cflags": "-Wno-error", "env": { "HAVE_VALGRIND_FALSE": "#", "HAVE_VALGRIND_TRUE": "" } }, "cleanup": [ "/include", "/libexec", "/lib/pkgconfig", "/lib/*.la", "/share/doc", "/share/libdbusmenu", "/share/gtk-doc", "/share/gir-1.0" ], "config-opts": [ "--disable-static", "--disable-gtk-doc", "--enable-introspection=yes", "--disable-vala", "--disable-dumper", "--disable-tests", "--with-gtk=3" ], "sources": [ { "type": "archive", "url": "https://launchpad.net/libdbusmenu/16.04/16.04.0/+download/libdbusmenu-16.04.0.tar.gz", "sha256": "b9cc4a2acd74509435892823607d966d424bd9ad5d0b00938f27240a1bfa878a" } ] }, { "name": "libindicator", "build-options": { "cflags": "-Wno-error" }, "cleanup": [ "/include", "/libexec", "/lib/pkgconfig", "/lib/*.la", "/share/libindicator", "/share/gtk-doc", "/share/gir-1.0" ], "config-opts": [ "--disable-static", "--disable-tests", "--with-gtk=3" ], "sources": [ { "type": "archive", "url": "https://launchpad.net/libindicator/12.10/12.10.1/+download/libindicator-12.10.1.tar.gz", "sha256": "b2d2e44c10313d5c9cd60db455d520f80b36dc39562df079a3f29495e8f9447f" }, { "type": "shell", "commands": [ "# FTBFS fix", "sed -e '/LIBINDICATOR_LIBS/ s/\\$LIBM/ $LIBM/' -i configure.ac" ] }, { "type": "script", "commands": ["autoreconf -sfi"], "dest-filename": "autogen.sh" } ] } ] } 07070100000156000081A400000000000000000000000166968E4E00007264000000000000000000000000000000000000005C00000000gnome-music-46.1/subprojects/shared-modules/libappindicator/libappindicator-no-python.patchdiff --git a/bindings/Makefile.am b/bindings/Makefile.am index d1f6d73..dccca6c 100644 --- a/bindings/Makefile.am +++ b/bindings/Makefile.am @@ -3,7 +3,6 @@ SUBDIRS = \ vala else SUBDIRS = \ - python \ vala endif diff --git a/bindings/python/Makefile.am b/bindings/python/Makefile.am deleted file mode 100644 index fe95c02..0000000 --- a/bindings/python/Makefile.am +++ /dev/null @@ -1,39 +0,0 @@ -defsdir = $(datadir)/pygtk/2.0/defs -defs_DATA = appindicator.defs - -#CFLAGS = -Wall -Werror -INCLUDES = \ - -I$(top_srcdir)/src \ - -DG_LOG_DOMAIN=\"appindicator-python\" \ - -DDATADIR=\"$(datadir)\" \ - -DLIBDIR=\"$(libdir)\" \ - $(APPINDICATOR_PYTHON_CFLAGS) \ - $(PYTHON_INCLUDES) - -pkgpythondir = $(pyexecdir) -pkgpyexecdir = $(pyexecdir) - -pkgappindicatordir = $(pkgpythondir)/appindicator -pkgappindicator_PYTHON = __init__.py - -appindicatordir = $(pkgpyexecdir)/appindicator -appindicator_LTLIBRARIES = _appindicator.la - -_appindicator_la_LDFLAGS = -module -avoid-version -export-symbols-regex init_appindicator -_appindicator_la_LIBADD = $(APPINDICATOR_PYTHON_LIBS) -L$(top_builddir)/src/.libs -lappindicator -_appindicator_la_SOURCES = appindicatormodule.c -nodist__appindicator_la_SOURCES = appindicator.c - -CLEANFILES = appindicator.c -EXTRA_DIST = appindicator.override.in appindicator-arg-types.py $(defs_DATA) -appindicator.c: $(defs_DATA) appindicator.override - -%.c: %.defs - ($(PYGTK_CODEGEN) \ - --register $(PYGTK_DEFSDIR)/gtk-types.defs \ - --register $(PYGTK_DEFSDIR)/gdk-types.defs \ - --load-types $(srcdir)/appindicator-arg-types.py \ - --override $*.override \ - --prefix py$* $(srcdir)/$*.defs) > gen-$*.c \ - && cp gen-$*.c $*.c \ - && rm -f gen-$*.c diff --git a/bindings/python/__init__.py b/bindings/python/__init__.py deleted file mode 100644 index 20e2140..0000000 --- a/bindings/python/__init__.py +++ /dev/null @@ -1,27 +0,0 @@ -# Python bindings for libappindicator. -# -# Copyright 2009 Canonical Ltd. -# -# Authors: -# Eitan Isaacson -# Neil Jagdish Patel -# -# This program is free software: you can redistribute it and/or modify it -# under the terms of either or both of the following licenses: -# -# 1) the GNU Lesser General Public License version 3, as published by the -# Free Software Foundation; and/or -# 2) the GNU Lesser General Public License version 2.1, as published by -# the Free Software Foundation. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranties of -# MERCHANTABILITY, SATISFACTORY QUALITY or FITNESS FOR A PARTICULAR -# PURPOSE. See the applicable version of the GNU Lesser General Public -# License for more details. -# -# You should have received a copy of both the GNU Lesser General Public -# License version 3 and version 2.1 along with this program. If not, see -# - -from _appindicator import * diff --git a/bindings/python/appindicator-arg-types.py b/bindings/python/appindicator-arg-types.py deleted file mode 100644 index 9d74aa0..0000000 --- a/bindings/python/appindicator-arg-types.py +++ /dev/null @@ -1,27 +0,0 @@ -# Python bindings for libappindicator. -# -# Copyright 2009 Canonical Ltd. -# -# Authors: -# Eitan Isaacson -# -# This program is free software: you can redistribute it and/or modify it -# under the terms of either or both of the following licenses: -# -# 1) the GNU Lesser General Public License version 3, as published by the -# Free Software Foundation; and/or -# 2) the GNU Lesser General Public License version 2.1, as published by -# the Free Software Foundation. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranties of -# MERCHANTABILITY, SATISFACTORY QUALITY or FITNESS FOR A PARTICULAR -# PURPOSE. See the applicable version of the GNU Lesser General Public -# License for more details. -# -# You should have received a copy of both the GNU Lesser General Public -# License version 3 and version 2.1 along with this program. If not, see -# - -import argtypes - diff --git a/bindings/python/appindicator.defs b/bindings/python/appindicator.defs deleted file mode 100644 index 4fcc2d5..0000000 --- a/bindings/python/appindicator.defs +++ /dev/null @@ -1,200 +0,0 @@ -;; -*- scheme -*- -; object definitions ... -(define-object Indicator - (in-module "App") - (parent "GObject") - (c-name "AppIndicator") - (gtype-id "APP_TYPE_INDICATOR") -) - -;; Enumerations and flags ... - -(define-enum IndicatorCategory - (in-module "App") - (c-name "AppIndicatorCategory") - (gtype-id "APP_INDICATOR_TYPE_INDICATOR_CATEGORY") - (values - '("ApplicationStatus" "APP_INDICATOR_CATEGORY_APPLICATION_STATUS") - '("Communications" "APP_INDICATOR_CATEGORY_COMMUNICATIONS") - '("SystemServices" "APP_INDICATOR_CATEGORY_SYSTEM_SERVICES") - '("Hardware" "APP_INDICATOR_CATEGORY_HARDWARE") - '("Other" "APP_INDICATOR_CATEGORY_OTHER") - ) -) - -(define-enum IndicatorStatus - (in-module "App") - (c-name "AppIndicatorStatus") - (gtype-id "APP_INDICATOR_TYPE_INDICATOR_STATUS") - (values - '("Passive" "APP_INDICATOR_STATUS_PASSIVE") - '("Active" "APP_INDICATOR_STATUS_ACTIVE") - '("NeedsAttention" "APP_INDICATOR_STATUS_ATTENTION") - ) -) - -;; From app-indicator.h - -(define-function app_indicator_get_type - (c-name "app_indicator_get_type") - (return-type "GType") -) - -(define-function app_indicator_new_with_path - (c-name "app_indicator_new_with_path") - (is-constructor-of "AppIndicator") - (return-type "AppIndicator*") - (parameters - '("const-gchar*" "id") - '("const-gchar*" "icon_name") - '("AppIndicatorCategory" "category") - '("const-gchar*" "icon_theme_path" (null-ok) (default "NULL")) - ) -) - -(define-method set_status - (of-object "AppIndicator") - (c-name "app_indicator_set_status") - (return-type "none") - (parameters - '("AppIndicatorStatus" "status") - ) -) - -(define-method set_attention_icon - (of-object "AppIndicator") - (c-name "app_indicator_set_attention_icon_full") - (return-type "none") - (parameters - '("const-gchar*" "icon_name") - '("const-gchar*" "icon_desc" (null-ok) (default "NULL")) - ) -) - -(define-method set_menu - (of-object "AppIndicator") - (c-name "app_indicator_set_menu") - (return-type "none") - (parameters - '("GtkMenu*" "menu") - ) -) - -(define-method set_icon - (of-object "AppIndicator") - (c-name "app_indicator_set_icon_full") - (return-type "none") - (parameters - '("const-gchar*" "icon_name") - '("const-gchar*" "icon_desc" (null-ok) (default "NULL")) - ) -) - -(define-method set_label - (of-object "AppIndicator") - (c-name "app_indicator_set_label") - (return-type "none") - (parameters - '("const-gchar*" "label" (null-ok)) - '("const-gchar*" "guide" (null-ok) (default "NULL")) - ) -) - -(define-method set_ordering_index - (of-object "AppIndicator") - (c-name "app_indicator_set_ordering_index") - (parameters - '("guint32" "ordering_index") - ) -) - -(define-method set_icon_theme_path - (of-object "AppIndicator") - (c-name "app_indicator_set_icon_theme_path") - (return-type "none") - (parameters - '("const-gchar*" "icon_theme_path" (null-ok)) - ) -) - -(define-method get_id - (of-object "AppIndicator") - (c-name "app_indicator_get_id") - (return-type "const-gchar*") -) - -(define-method get_category - (of-object "AppIndicator") - (c-name "app_indicator_get_category") - (return-type "AppIndicatorCategory") -) - -(define-method get_status - (of-object "AppIndicator") - (c-name "app_indicator_get_status") - (return-type "AppIndicatorStatus") -) - -(define-method get_icon - (of-object "AppIndicator") - (c-name "app_indicator_get_icon") - (return-type "const-gchar*") -) - -(define-method get_icon_desc - (of-object "AppIndicator") - (c-name "app_indicator_get_icon_desc") - (return-type "const-gchar*") -) - -(define-method get_icon_theme_path - (of-object "AppIndicator") - (c-name "app_indicator_get_icon_theme_path") - (return-type "const-gchar*") -) - -(define-method get_attention_icon - (of-object "AppIndicator") - (c-name "app_indicator_get_attention_icon") - (return-type "const-gchar*") -) - -(define-method get_attention_icon_desc - (of-object "AppIndicator") - (c-name "app_indicator_get_attention_icon_desc") - (return-type "const-gchar*") -) - -(define-method get_menu - (of-object "AppIndicator") - (c-name "app_indicator_get_menu") - (return-type "GtkMenu*") -) - -(define-method get_label - (of-object "AppIndicator") - (c-name "app_indicator_get_label") - (return-type "const-gchar*") -) - -(define-method get_label_guide - (of-object "AppIndicator") - (c-name "app_indicator_get_label_guide") - (return-type "const-gchar*") -) - -(define-method get_ordering_index - (of-object "AppIndicator") - (c-name "app_indicator_get_ordering_index") - (return-type "guint32") -) - -(define-method build_menu_from_desktop - (of-object "AppIndicator") - (c-name "app_indicator_build_menu_from_desktop") - (return-type "none") - (parameters - '("const-gchar*" "desktop_file") - '("const-gchar*" "desktop_profile") - ) -) diff --git a/bindings/python/appindicator.override.in b/bindings/python/appindicator.override.in deleted file mode 100644 index 84d3159..0000000 --- a/bindings/python/appindicator.override.in +++ /dev/null @@ -1,65 +0,0 @@ -/* -Python bindings for libappindicator. - -Copyright 2009 Canonical Ltd. - -Authors: - Eitan Isaacson (original) - Neil Jagdish Patel - -This program is free software: you can redistribute it and/or modify it -under the terms of either or both of the following licenses: - -1) the GNU Lesser General Public License version 3, as published by the -Free Software Foundation; and/or -2) the GNU Lesser General Public License version 2.1, as published by -the Free Software Foundation. - -This program is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranties of -MERCHANTABILITY, SATISFACTORY QUALITY or FITNESS FOR A PARTICULAR -PURPOSE. See the applicable version of the GNU Lesser General Public -License for more details. - -You should have received a copy of both the GNU Lesser General Public -License version 3 and version 2.1 along with this program. If not, see - -*/ -%% -headers -#include -#include "@top_srcdir@/src/app-indicator.h" -#include "@top_builddir@/src/app-indicator-enum-types.h" -#include -#include "pygobject.h" -#include "pyglib.h" -#include - -typedef PyObject* (*to_pyobject_func) (gpointer data); - -#define APP_TYPE_INDICATOR APP_INDICATOR_TYPE - -void -_appindicator_add_constants(PyObject *module, const gchar *strip_prefix) -{ -#ifdef VERSION - PyModule_AddStringConstant(module, "__version__", VERSION); -#endif - pyg_enum_add(module, - "IndicatorCategory", - strip_prefix, - APP_INDICATOR_TYPE_INDICATOR_CATEGORY); - - pyg_enum_add(module, - "IndicatorStatus", - strip_prefix, - APP_INDICATOR_TYPE_INDICATOR_STATUS); - - if (PyErr_Occurred()) - PyErr_Print(); -} -%% -modulename appindicator -%% -import gobject.GObject as PyGObject_Type -import gtk.Menu as PyGtkMenu_Type diff --git a/bindings/python/appindicatormodule.c b/bindings/python/appindicatormodule.c deleted file mode 100644 index b66639c..0000000 --- a/bindings/python/appindicatormodule.c +++ /dev/null @@ -1,49 +0,0 @@ -/* -Python bindings for libappindicator. - -Copyright 2009 Canonical Ltd. - -Authors: - Eitan Isaacson - Neil Jagdish Patel - -This program is free software: you can redistribute it and/or modify it -under the terms of either or both of the following licenses: - -1) the GNU Lesser General Public License version 3, as published by the -Free Software Foundation; and/or -2) the GNU Lesser General Public License version 2.1, as published by -the Free Software Foundation. - -This program is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranties of -MERCHANTABILITY, SATISFACTORY QUALITY or FITNESS FOR A PARTICULAR -PURPOSE. See the applicable version of the GNU Lesser General Public -License for more details. - -You should have received a copy of both the GNU Lesser General Public -License version 3 and version 2.1 along with this program. If not, see - -*/ -#include - -void pyappindicator_register_classes (PyObject *d); -extern PyMethodDef pyappindicator_functions[]; - -DL_EXPORT(void) -init_appindicator(void) -{ - PyObject *m, *d; - - init_pygobject (); - - m = Py_InitModule ("_appindicator", pyappindicator_functions); - d = PyModule_GetDict (m); - - pyappindicator_register_classes (d); - - _appindicator_add_constants (m, "APP_INDICATOR_"); - if (PyErr_Occurred ()) { - Py_FatalError ("can't initialise module appindicator"); - } -} diff --git a/configure b/configure index 5174b3f..8ff732c 100755 --- a/configure +++ b/configure @@ -13703,363 +13703,6 @@ else fi -########################### -# Python -########################### - -PYGTK_REQUIRED=2.14.0 -PYGOBJECT_REQUIRED=0.22 - - - - - - if test -n "$PYTHON"; then - # If the user set $PYTHON, use it and don't search something else. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $PYTHON version >= 2.3.5" >&5 -$as_echo_n "checking whether $PYTHON version >= 2.3.5... " >&6; } - prog="import sys, string -# split strings by '.' and convert to numeric. Append some zeros -# because we need at least 4 digits for the hex conversion. -minver = map(int, string.split('2.3.5', '.')) + [0, 0, 0] -minverhex = 0 -for i in xrange(0, 4): minverhex = (minverhex << 8) + minver[i] -sys.exit(sys.hexversion < minverhex)" - if { echo "$as_me:$LINENO: $PYTHON -c "$prog"" >&5 - ($PYTHON -c "$prog") >&5 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - as_fn_error $? "too old" "$LINENO" 5 -fi - am_display_PYTHON=$PYTHON - else - # Otherwise, try each interpreter until we find one that satisfies - # VERSION. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a Python interpreter with version >= 2.3.5" >&5 -$as_echo_n "checking for a Python interpreter with version >= 2.3.5... " >&6; } -if ${am_cv_pathless_PYTHON+:} false; then : - $as_echo_n "(cached) " >&6 -else - - for am_cv_pathless_PYTHON in python python2 python2.4 python2.3 python2.2 python2.1 python2.0 python1.6 python1.5 none; do - test "$am_cv_pathless_PYTHON" = none && break - prog="import sys, string -# split strings by '.' and convert to numeric. Append some zeros -# because we need at least 4 digits for the hex conversion. -minver = map(int, string.split('2.3.5', '.')) + [0, 0, 0] -minverhex = 0 -for i in xrange(0, 4): minverhex = (minverhex << 8) + minver[i] -sys.exit(sys.hexversion < minverhex)" - if { echo "$as_me:$LINENO: $am_cv_pathless_PYTHON -c "$prog"" >&5 - ($am_cv_pathless_PYTHON -c "$prog") >&5 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then : - break -fi - done -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_pathless_PYTHON" >&5 -$as_echo "$am_cv_pathless_PYTHON" >&6; } - # Set $PYTHON to the absolute path of $am_cv_pathless_PYTHON. - if test "$am_cv_pathless_PYTHON" = none; then - PYTHON=: - else - # Extract the first word of "$am_cv_pathless_PYTHON", so it can be a program name with args. -set dummy $am_cv_pathless_PYTHON; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_PYTHON+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $PYTHON in - [\\/]* | ?:[\\/]*) - ac_cv_path_PYTHON="$PYTHON" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_PYTHON="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -PYTHON=$ac_cv_path_PYTHON -if test -n "$PYTHON"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON" >&5 -$as_echo "$PYTHON" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - fi - am_display_PYTHON=$am_cv_pathless_PYTHON - fi - - - if test "$PYTHON" = :; then - as_fn_error $? "no suitable Python interpreter found" "$LINENO" 5 - else - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON version" >&5 -$as_echo_n "checking for $am_display_PYTHON version... " >&6; } -if ${am_cv_python_version+:} false; then : - $as_echo_n "(cached) " >&6 -else - am_cv_python_version=`$PYTHON -c "import sys; print sys.version[:3]"` -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_version" >&5 -$as_echo "$am_cv_python_version" >&6; } - PYTHON_VERSION=$am_cv_python_version - - - - PYTHON_PREFIX='${prefix}' - - PYTHON_EXEC_PREFIX='${exec_prefix}' - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON platform" >&5 -$as_echo_n "checking for $am_display_PYTHON platform... " >&6; } -if ${am_cv_python_platform+:} false; then : - $as_echo_n "(cached) " >&6 -else - am_cv_python_platform=`$PYTHON -c "import sys; print sys.platform"` -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_platform" >&5 -$as_echo "$am_cv_python_platform" >&6; } - PYTHON_PLATFORM=$am_cv_python_platform - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON script directory" >&5 -$as_echo_n "checking for $am_display_PYTHON script directory... " >&6; } -if ${am_cv_python_pythondir+:} false; then : - $as_echo_n "(cached) " >&6 -else - am_cv_python_pythondir=`$PYTHON -c "from distutils import sysconfig; print sysconfig.get_python_lib(0,0,prefix='$PYTHON_PREFIX')" 2>/dev/null || - echo "$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages"` -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_pythondir" >&5 -$as_echo "$am_cv_python_pythondir" >&6; } - pythondir=$am_cv_python_pythondir - - - - pkgpythondir=\${pythondir}/$PACKAGE - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON extension module directory" >&5 -$as_echo_n "checking for $am_display_PYTHON extension module directory... " >&6; } -if ${am_cv_python_pyexecdir+:} false; then : - $as_echo_n "(cached) " >&6 -else - am_cv_python_pyexecdir=`$PYTHON -c "from distutils import sysconfig; print sysconfig.get_python_lib(1,0,prefix='$PYTHON_EXEC_PREFIX')" 2>/dev/null || - echo "${PYTHON_EXEC_PREFIX}/lib/python${PYTHON_VERSION}/site-packages"` -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_pyexecdir" >&5 -$as_echo "$am_cv_python_pyexecdir" >&6; } - pyexecdir=$am_cv_python_pyexecdir - - - - pkgpyexecdir=\${pyexecdir}/$PACKAGE - - - - fi - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for headers required to compile python extensions" >&5 -$as_echo_n "checking for headers required to compile python extensions... " >&6; } -py_prefix=`$PYTHON -c "import sys; print sys.prefix"` -py_exec_prefix=`$PYTHON -c "import sys; print sys.exec_prefix"` -PYTHON_INCLUDES="-I${py_prefix}/include/python${PYTHON_VERSION}" -if test "$py_prefix" != "$py_exec_prefix"; then - PYTHON_INCLUDES="$PYTHON_INCLUDES -I${py_exec_prefix}/include/python${PYTHON_VERSION}" -fi - -save_CPPFLAGS="$CPPFLAGS" -CPPFLAGS="$CPPFLAGS $PYTHON_INCLUDES" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5 -$as_echo "found" >&6; } - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } -as_fn_error $? "could not find Python headers" "$LINENO" 5 -fi -rm -f conftest.err conftest.i conftest.$ac_ext -CPPFLAGS="$save_CPPFLAGS" - - - -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for APPINDICATOR_PYTHON" >&5 -$as_echo_n "checking for APPINDICATOR_PYTHON... " >&6; } - -if test -n "$APPINDICATOR_PYTHON_CFLAGS"; then - pkg_cv_APPINDICATOR_PYTHON_CFLAGS="$APPINDICATOR_PYTHON_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \" - pygtk-2.0 >= \$PYGTK_REQUIRED - gtk+-2.0 >= \$GTK_REQUIRED_VERSION - pygobject-2.0 >= \$PYGOBJECT_REQUIRED - \""; } >&5 - ($PKG_CONFIG --exists --print-errors " - pygtk-2.0 >= $PYGTK_REQUIRED - gtk+-2.0 >= $GTK_REQUIRED_VERSION - pygobject-2.0 >= $PYGOBJECT_REQUIRED - ") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_APPINDICATOR_PYTHON_CFLAGS=`$PKG_CONFIG --cflags " - pygtk-2.0 >= $PYGTK_REQUIRED - gtk+-2.0 >= $GTK_REQUIRED_VERSION - pygobject-2.0 >= $PYGOBJECT_REQUIRED - " 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$APPINDICATOR_PYTHON_LIBS"; then - pkg_cv_APPINDICATOR_PYTHON_LIBS="$APPINDICATOR_PYTHON_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \" - pygtk-2.0 >= \$PYGTK_REQUIRED - gtk+-2.0 >= \$GTK_REQUIRED_VERSION - pygobject-2.0 >= \$PYGOBJECT_REQUIRED - \""; } >&5 - ($PKG_CONFIG --exists --print-errors " - pygtk-2.0 >= $PYGTK_REQUIRED - gtk+-2.0 >= $GTK_REQUIRED_VERSION - pygobject-2.0 >= $PYGOBJECT_REQUIRED - ") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_APPINDICATOR_PYTHON_LIBS=`$PKG_CONFIG --libs " - pygtk-2.0 >= $PYGTK_REQUIRED - gtk+-2.0 >= $GTK_REQUIRED_VERSION - pygobject-2.0 >= $PYGOBJECT_REQUIRED - " 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi - - - -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - APPINDICATOR_PYTHON_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs " - pygtk-2.0 >= $PYGTK_REQUIRED - gtk+-2.0 >= $GTK_REQUIRED_VERSION - pygobject-2.0 >= $PYGOBJECT_REQUIRED - " 2>&1` - else - APPINDICATOR_PYTHON_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs " - pygtk-2.0 >= $PYGTK_REQUIRED - gtk+-2.0 >= $GTK_REQUIRED_VERSION - pygobject-2.0 >= $PYGOBJECT_REQUIRED - " 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$APPINDICATOR_PYTHON_PKG_ERRORS" >&5 - - as_fn_error $? "Package requirements ( - pygtk-2.0 >= $PYGTK_REQUIRED - gtk+-2.0 >= $GTK_REQUIRED_VERSION - pygobject-2.0 >= $PYGOBJECT_REQUIRED - ) were not met: - -$APPINDICATOR_PYTHON_PKG_ERRORS - -Consider adjusting the PKG_CONFIG_PATH environment variable if you -installed software in a non-standard prefix. - -Alternatively, you may set the environment variables APPINDICATOR_PYTHON_CFLAGS -and APPINDICATOR_PYTHON_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details." "$LINENO" 5 -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it -is in your PATH or set the PKG_CONFIG environment variable to the full -path to pkg-config. - -Alternatively, you may set the environment variables APPINDICATOR_PYTHON_CFLAGS -and APPINDICATOR_PYTHON_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details. - -To get pkg-config, see . -See \`config.log' for more details" "$LINENO" 5; } -else - APPINDICATOR_PYTHON_CFLAGS=$pkg_cv_APPINDICATOR_PYTHON_CFLAGS - APPINDICATOR_PYTHON_LIBS=$pkg_cv_APPINDICATOR_PYTHON_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for pygtk defs" >&5 -$as_echo_n "checking for pygtk defs... " >&6; } -PYGTK_DEFSDIR=`$PKG_CONFIG --variable=defsdir pygtk-2.0` - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYGTK_DEFSDIR" >&5 -$as_echo "$PYGTK_DEFSDIR" >&6; } - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for pygtk codegen" >&5 -$as_echo_n "checking for pygtk codegen... " >&6; } -PYGTK_CODEGEN="$PYTHON `$PKG_CONFIG --variable=codegendir pygtk-2.0`/codegen.py" - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYGTK_CODEGEN" >&5 -$as_echo "$PYGTK_CODEGEN" >&6; } ######################### # Check if build tests @@ -14358,7 +14001,7 @@ fi # Files ########################### -ac_config_files="$ac_config_files Makefile src/Makefile src/appindicator-0.1.pc src/appindicator3-0.1.pc bindings/Makefile bindings/python/Makefile bindings/python/appindicator.override bindings/vala/Makefile bindings/vala/examples/Makefile tests/Makefile example/Makefile docs/Makefile docs/reference/Makefile docs/reference/version.xml docs/reference/libappindicator-docs.sgml" +ac_config_files="$ac_config_files Makefile src/Makefile src/appindicator-0.1.pc src/appindicator3-0.1.pc bindings/Makefile bindings/vala/Makefile bindings/vala/examples/Makefile tests/Makefile example/Makefile docs/Makefile docs/reference/Makefile docs/reference/version.xml docs/reference/libappindicator-docs.sgml" if test "x$has_mono" = "xtrue" ; then @@ -15437,8 +15080,6 @@ do "src/appindicator-0.1.pc") CONFIG_FILES="$CONFIG_FILES src/appindicator-0.1.pc" ;; "src/appindicator3-0.1.pc") CONFIG_FILES="$CONFIG_FILES src/appindicator3-0.1.pc" ;; "bindings/Makefile") CONFIG_FILES="$CONFIG_FILES bindings/Makefile" ;; - "bindings/python/Makefile") CONFIG_FILES="$CONFIG_FILES bindings/python/Makefile" ;; - "bindings/python/appindicator.override") CONFIG_FILES="$CONFIG_FILES bindings/python/appindicator.override" ;; "bindings/vala/Makefile") CONFIG_FILES="$CONFIG_FILES bindings/vala/Makefile" ;; "bindings/vala/examples/Makefile") CONFIG_FILES="$CONFIG_FILES bindings/vala/examples/Makefile" ;; "tests/Makefile") CONFIG_FILES="$CONFIG_FILES tests/Makefile" ;; diff --git a/configure.ac b/configure.ac index ee03390..4713b22 100644 --- a/configure.ac +++ b/configure.ac @@ -181,33 +181,6 @@ AM_CONDITIONAL(BUILD_MONO_TEST, test x${have_nunit} = xyes) with_localinstall="no" AC_ARG_ENABLE(localinstall, AS_HELP_STRING([--enable-localinstall], [install all of the files localy instead of system directories (for distcheck)]), with_localinstall=$enableval, with_localinstall=no) -########################### -# Python -########################### - -PYGTK_REQUIRED=2.14.0 -PYGOBJECT_REQUIRED=0.22 - -AM_PATH_PYTHON(2.3.5) -AM_CHECK_PYTHON_HEADERS(,[AC_MSG_ERROR(could not find Python headers)]) - -PKG_CHECK_MODULES(APPINDICATOR_PYTHON, - [ - pygtk-2.0 >= $PYGTK_REQUIRED - gtk+-2.0 >= $GTK_REQUIRED_VERSION - pygobject-2.0 >= $PYGOBJECT_REQUIRED - ]) - -AC_MSG_CHECKING(for pygtk defs) -PYGTK_DEFSDIR=`$PKG_CONFIG --variable=defsdir pygtk-2.0` -AC_SUBST(PYGTK_DEFSDIR) -AC_MSG_RESULT($PYGTK_DEFSDIR) - -AC_MSG_CHECKING(for pygtk codegen) -PYGTK_CODEGEN="$PYTHON `$PKG_CONFIG --variable=codegendir pygtk-2.0`/codegen.py" -AC_SUBST(PYGTK_CODEGEN) -AC_MSG_RESULT($PYGTK_CODEGEN) - ######################### # Check if build tests ######################### @@ -239,8 +212,6 @@ src/Makefile src/appindicator-0.1.pc src/appindicator3-0.1.pc bindings/Makefile -bindings/python/Makefile -bindings/python/appindicator.override bindings/vala/Makefile bindings/vala/examples/Makefile tests/Makefile07070100000157000081A400000000000000000000000166968E4E00000CB0000000000000000000000000000000000000005400000000gnome-music-46.1/subprojects/shared-modules/libappindicator/libappindicator.json.in{ "name": "libappindicator", "build-options": { "cflags": "-Wno-error", "make-args": [ "-j1" ] }, "rm-configure": true, "config-opts": [ "--disable-static", "--disable-gtk-doc", "--disable-tests", "--disable-mono-tests", "--enable-introspection=@INTROSPECTION@", "--with-gtk=@GTK_VER@" ], "cleanup": [ "/include", "/lib/pkgconfig", "/lib/*.la", "/share/gtk-doc", "/share/gir-1.0" ], "sources": [ { "type": "archive", "url": "https://launchpad.net/libappindicator/12.10/12.10.0/+download/libappindicator-12.10.0.tar.gz", "sha256": "d5907c1f98084acf28fd19593cb70672caa0ca1cf82d747ba6f4830d4cc3b49f" }, { "type": "patch", "path": "libappindicator-ftbfs.patch" }, { "type": "patch", "path": "libappindicator-no-python.patch" }, { "type": "patch", "path": "libappindicator-fix-crash-from-incorrect-signal-emission.patch" }, { "type": "patch", "path": "libappindicator-fix-crash-iterating-icon-themes.patch" }, { "type": "script", "commands": ["autoreconf -sfi"], "dest-filename": "autogen.sh" } ], "modules": [ "../intltool/intltool-0.51.json", "../dbus-glib/dbus-glib.json", { "name": "libdbusmenu", "build-options": { "cflags": "-Wno-error", "env": { "HAVE_VALGRIND_FALSE": "#", "HAVE_VALGRIND_TRUE": "" } }, "cleanup": [ "/include", "/libexec", "/lib/pkgconfig", "/lib/*.la", "/share/doc", "/share/libdbusmenu", "/share/gtk-doc", "/share/gir-1.0" ], "config-opts": [ "--disable-static", "--disable-gtk-doc", "--enable-introspection=@INTROSPECTION@", "--disable-vala", "--disable-dumper", "--disable-tests", "--with-gtk=@GTK_VER@" ], "sources": [ { "type": "archive", "url": "https://launchpad.net/libdbusmenu/16.04/16.04.0/+download/libdbusmenu-16.04.0.tar.gz", "sha256": "b9cc4a2acd74509435892823607d966d424bd9ad5d0b00938f27240a1bfa878a" } ] }, { "name": "libindicator", "build-options": { "cflags": "-Wno-error" }, "cleanup": [ "/include", "/libexec", "/lib/pkgconfig", "/lib/*.la", "/share/libindicator", "/share/gtk-doc", "/share/gir-1.0" ], "config-opts": [ "--disable-static", "--disable-tests", "--with-gtk=@GTK_VER@" ], "sources": [ { "type": "archive", "url": "https://launchpad.net/libindicator/12.10/12.10.1/+download/libindicator-12.10.1.tar.gz", "sha256": "b2d2e44c10313d5c9cd60db455d520f80b36dc39562df079a3f29495e8f9447f" }, { "type": "shell", "commands": [ "# FTBFS fix", "sed -e '/LIBINDICATOR_LIBS/ s/\\$LIBM/ $LIBM/' -i configure.ac" ] }, { "type": "script", "commands": ["autoreconf -sfi"], "dest-filename": "autogen.sh" } ] } ] } 07070100000158000041ED00000000000000000000000266968E4E00000000000000000000000000000000000000000000003800000000gnome-music-46.1/subprojects/shared-modules/libcanberra07070100000159000081A400000000000000000000000166968E4E00001427000000000000000000000000000000000000007800000000gnome-music-46.1/subprojects/shared-modules/libcanberra/0001-gtk-Don-t-assume-all-GdkDisplays-are-GdkX11Displays-.patchFrom d6dd5cdf45c1aac6c0519c8a4f5f89321770fb53 Mon Sep 17 00:00:00 2001 From: Michael Meeks Date: Fri, 9 Nov 2012 16:16:40 +0000 Subject: [PATCH] gtk: Don't assume all GdkDisplays are GdkX11Displays: broadway/wayland Co-Authored-By: Bastien Nocera --- src/canberra-gtk-module.c | 15 +++++++++++++++ src/canberra-gtk.c | 28 ++++++++++++++++++++++------ 2 files changed, 37 insertions(+), 6 deletions(-) diff --git a/src/canberra-gtk-module.c b/src/canberra-gtk-module.c index 67791f0..c1532ab 100644 --- a/src/canberra-gtk-module.c +++ b/src/canberra-gtk-module.c @@ -307,6 +307,11 @@ static gint window_get_desktop(GdkDisplay *d, GdkWindow *w) { guchar *data = NULL; gint ret = -1; +#ifdef GDK_IS_X11_DISPLAY + if (!GDK_IS_X11_DISPLAY(d)) + return 0; +#endif + if (XGetWindowProperty(GDK_DISPLAY_XDISPLAY(d), GDK_WINDOW_XID(w), gdk_x11_get_xatom_by_name_for_display(d, "_NET_WM_DESKTOP"), 0, G_MAXLONG, False, XA_CARDINAL, &type_return, @@ -335,6 +340,11 @@ static gint display_get_desktop(GdkDisplay *d) { guchar *data = NULL; gint ret = -1; +#ifdef GDK_IS_X11_DISPLAY + if (!GDK_IS_X11_DISPLAY(d)) + return 0; +#endif + if (XGetWindowProperty(GDK_DISPLAY_XDISPLAY(d), DefaultRootWindow(GDK_DISPLAY_XDISPLAY(d)), gdk_x11_get_xatom_by_name_for_display(d, "_NET_CURRENT_DESKTOP"), 0, G_MAXLONG, False, XA_CARDINAL, &type_return, @@ -365,6 +375,11 @@ static gboolean window_is_xembed(GdkDisplay *d, GdkWindow *w) { gboolean ret = FALSE; Atom xembed; +#ifdef GDK_IS_X11_DISPLAY + if (!GDK_IS_X11_DISPLAY(d)) + return FALSE; +#endif + /* Gnome Panel applets are XEMBED windows. We need to make sure we * ignore them */ diff --git a/src/canberra-gtk.c b/src/canberra-gtk.c index 34446f5..47285f8 100644 --- a/src/canberra-gtk.c +++ b/src/canberra-gtk.c @@ -185,6 +185,11 @@ static gint window_get_desktop(GdkDisplay *d, GdkWindow *w) { guchar *data = NULL; gint ret = -1; +#ifdef GDK_IS_X11_DISPLAY + if (!GDK_IS_X11_DISPLAY(d)) + return 0; +#endif + if (XGetWindowProperty(GDK_DISPLAY_XDISPLAY(d), GDK_WINDOW_XID(w), gdk_x11_get_xatom_by_name_for_display(d, "_NET_WM_DESKTOP"), 0, G_MAXLONG, False, XA_CARDINAL, &type_return, @@ -254,18 +259,28 @@ int ca_gtk_proplist_set_for_widget(ca_proplist *p, GtkWidget *widget) { if (gtk_widget_get_realized(GTK_WIDGET(w))) { GdkWindow *dw = NULL; +#ifdef GDK_IS_X11_DISPLAY GdkScreen *screen = NULL; +#endif GdkDisplay *display = NULL; gint x = -1, y = -1, width = -1, height = -1, screen_width = -1, screen_height = -1; - if ((dw = gtk_widget_get_window(GTK_WIDGET(w)))) - if ((ret = ca_proplist_setf(p, CA_PROP_WINDOW_X11_XID, "%lu", (unsigned long) GDK_WINDOW_XID(dw))) < 0) - return ret; + if ((dw = gtk_widget_get_window(GTK_WIDGET(w)))) { +#ifdef GDK_IS_X11_DISPLAY + if (GDK_IS_X11_DISPLAY(display)) { + if ((ret = ca_proplist_setf(p, CA_PROP_WINDOW_X11_XID, "%lu", (unsigned long) GDK_WINDOW_XID(dw))) < 0) + return ret; + } +#endif + } if ((display = gtk_widget_get_display(GTK_WIDGET(w)))) { - if ((t = gdk_display_get_name(display))) +#ifdef GDK_IS_X11_DISPLAY + if (GDK_IS_X11_DISPLAY(display) && (t = gdk_display_get_name(display))) { if ((ret = ca_proplist_sets(p, CA_PROP_WINDOW_X11_DISPLAY, t)) < 0) return ret; + } +#endif if (dw) { gint desktop = window_get_desktop(display, dw); @@ -276,7 +291,8 @@ int ca_gtk_proplist_set_for_widget(ca_proplist *p, GtkWidget *widget) { } } - if ((screen = gtk_widget_get_screen(GTK_WIDGET(w)))) { +#ifdef GDK_IS_X11_DISPLAY + if (GDK_IS_X11_DISPLAY(display) && (screen = gtk_widget_get_screen(GTK_WIDGET(w)))) { if ((ret = ca_proplist_setf(p, CA_PROP_WINDOW_X11_SCREEN, "%i", gdk_screen_get_number(screen))) < 0) return ret; @@ -285,7 +301,7 @@ int ca_gtk_proplist_set_for_widget(ca_proplist *p, GtkWidget *widget) { if ((ret = ca_proplist_setf(p, CA_PROP_WINDOW_X11_MONITOR, "%i", gdk_screen_get_monitor_at_window(screen, dw))) < 0) return ret; } - +#endif /* FIXME, this might cause a round trip */ if (dw) { -- 2.34.1 0707010000015A000081A400000000000000000000000166968E4E00000373000000000000000000000000000000000000004900000000gnome-music-46.1/subprojects/shared-modules/libcanberra/libcanberra.json{ "name": "libcanberra", "cleanup": [ "*.la", "/bin", "/etc", "/include", "/libexec", "/share/gtk-doc", "/share/man" ], "config-opts": [ "--disable-static", "--disable-gtk-doc", "--disable-oss", "--enable-pulse", "--disable-udev", "--disable-gtk", "--enable-gtk3", "--disable-lynx" ], "sources": [ { "type": "archive", "url": "http://0pointer.de/lennart/projects/libcanberra/libcanberra-0.30.tar.xz", "sha256": "c2b671e67e0c288a69fc33dc1b6f1b534d07882c2aceed37004bf48c601afa72", "git-init" : true }, { "type": "patch", "path": "0001-gtk-Don-t-assume-all-GdkDisplays-are-GdkX11Displays-.patch", "use-git-am": true } ] } 0707010000015B000041ED00000000000000000000000266968E4E00000000000000000000000000000000000000000000003300000000gnome-music-46.1/subprojects/shared-modules/libmad0707010000015C000081A400000000000000000000000166968E4E000003EA000000000000000000000000000000000000006700000000gnome-music-46.1/subprojects/shared-modules/libmad/Provide-Thumb-2-alternative-code-for-MAD_F_MLN.diffFrom: Dave Martin Subject: "rsc" doesnt exist anymore in thumb2 diff --git a/fixed.h b/fixed.h index 4b58abf..ba4bc26 100644 --- a/fixed.h +++ b/fixed.h @@ -275,12 +275,25 @@ mad_fixed_t mad_f_mul_inline(mad_fixed_t x, mad_fixed_t y) : "+r" (lo), "+r" (hi) \ : "%r" (x), "r" (y)) +#ifdef __thumb__ +/* In Thumb-2, the RSB-immediate instruction is only allowed with a zero + operand. If needed this code can also support Thumb-1 + (simply append "s" to the end of the second two instructions). */ +# define MAD_F_MLN(hi, lo) \ + asm ("rsbs %0, %0, #0\n\t" \ + "sbc %1, %1, %1\n\t" \ + "sub %1, %1, %2" \ + : "+&r" (lo), "=&r" (hi) \ + : "r" (hi) \ + : "cc") +#else /* ! __thumb__ */ # define MAD_F_MLN(hi, lo) \ asm ("rsbs %0, %2, #0\n\t" \ "rsc %1, %3, #0" \ - : "=r" (lo), "=r" (hi) \ + : "=&r" (lo), "=r" (hi) \ : "0" (lo), "1" (hi) \ : "cc") +#endif /* __thumb__ */ # define mad_f_scale64(hi, lo) \ ({ mad_fixed_t __result; \ 0707010000015D000081A400000000000000000000000166968E4E0000015B000000000000000000000000000000000000005200000000gnome-music-46.1/subprojects/shared-modules/libmad/libmad-0.15.1b-cflags-O2.patchdiff -Naur libmad-0.15.1b-orig/configure.ac libmad-0.15.1b/configure.ac --- libmad-0.15.1b-orig/configure.ac 2007-07-01 12:58:13.000000000 -0600 +++ libmad-0.15.1b/configure.ac 2007-07-01 12:59:13.000000000 -0600 @@ -105,7 +105,7 @@ shift ;; -O2) - optimize="-O" + optimize="-O2" shift ;; -fomit-frame-pointer) 0707010000015E000081A400000000000000000000000166968E4E00001303000000000000000000000000000000000000004F00000000gnome-music-46.1/subprojects/shared-modules/libmad/libmad-0.15.1b-cflags.patchdiff -Naur libmad-0.15.1b-orig/configure.ac libmad-0.15.1b/configure.ac --- libmad-0.15.1b-orig/configure.ac 2007-06-30 20:22:31.000000000 -0600 +++ libmad-0.15.1b/configure.ac 2007-06-30 20:25:31.000000000 -0600 @@ -122,74 +122,74 @@ esac done -if test "$GCC" = yes -then - if test -z "$arch" - then - case "$host" in - i386-*) ;; - i?86-*) arch="-march=i486" ;; - arm*-empeg-*) arch="-march=armv4 -mtune=strongarm1100" ;; - armv4*-*) arch="-march=armv4 -mtune=strongarm" ;; - powerpc-*) ;; - mips*-agenda-*) arch="-mcpu=vr4100" ;; - mips*-luxsonor-*) arch="-mips1 -mcpu=r3000 -Wa,-m4010" ;; - esac - fi - - case "$optimize" in - -O|"-O "*) - optimize="-O" - optimize="$optimize -fforce-mem" - optimize="$optimize -fforce-addr" - : #x optimize="$optimize -finline-functions" - : #- optimize="$optimize -fstrength-reduce" - optimize="$optimize -fthread-jumps" - optimize="$optimize -fcse-follow-jumps" - optimize="$optimize -fcse-skip-blocks" - : #x optimize="$optimize -frerun-cse-after-loop" - : #x optimize="$optimize -frerun-loop-opt" - : #x optimize="$optimize -fgcse" - optimize="$optimize -fexpensive-optimizations" - optimize="$optimize -fregmove" - : #* optimize="$optimize -fdelayed-branch" - : #x optimize="$optimize -fschedule-insns" - optimize="$optimize -fschedule-insns2" - : #? optimize="$optimize -ffunction-sections" - : #? optimize="$optimize -fcaller-saves" - : #> optimize="$optimize -funroll-loops" - : #> optimize="$optimize -funroll-all-loops" - : #x optimize="$optimize -fmove-all-movables" - : #x optimize="$optimize -freduce-all-givs" - : #? optimize="$optimize -fstrict-aliasing" - : #* optimize="$optimize -fstructure-noalias" - - case "$host" in - arm*-*) - optimize="$optimize -fstrength-reduce" - ;; - mips*-*) - optimize="$optimize -fstrength-reduce" - optimize="$optimize -finline-functions" - ;; - i?86-*) - optimize="$optimize -fstrength-reduce" - ;; - powerpc-apple-*) - # this triggers an internal compiler error with gcc2 - : #optimize="$optimize -fstrength-reduce" - - # this is really only beneficial with gcc3 - : #optimize="$optimize -finline-functions" - ;; - *) - # this sometimes provokes bugs in gcc 2.95.2 - : #optimize="$optimize -fstrength-reduce" - ;; - esac - ;; - esac -fi +#if test "$GCC" = yes +#then +# if test -z "$arch" +# then +# case "$host" in +# i386-*) ;; +# i?86-*) arch="-march=i486" ;; +# arm*-empeg-*) arch="-march=armv4 -mtune=strongarm1100" ;; +# armv4*-*) arch="-march=armv4 -mtune=strongarm" ;; +# powerpc-*) ;; +# mips*-agenda-*) arch="-mcpu=vr4100" ;; +# mips*-luxsonor-*) arch="-mips1 -mcpu=r3000 -Wa,-m4010" ;; +# esac +# fi +# +# case "$optimize" in +# -O|"-O "*) +# optimize="-O" +# optimize="$optimize -fforce-mem" +# optimize="$optimize -fforce-addr" +# : #x optimize="$optimize -finline-functions" +# : #- optimize="$optimize -fstrength-reduce" +# optimize="$optimize -fthread-jumps" +# optimize="$optimize -fcse-follow-jumps" +# optimize="$optimize -fcse-skip-blocks" +# : #x optimize="$optimize -frerun-cse-after-loop" +# : #x optimize="$optimize -frerun-loop-opt" +# : #x optimize="$optimize -fgcse" +# optimize="$optimize -fexpensive-optimizations" +# optimize="$optimize -fregmove" +# : #* optimize="$optimize -fdelayed-branch" +# : #x optimize="$optimize -fschedule-insns" +# optimize="$optimize -fschedule-insns2" +# : #? optimize="$optimize -ffunction-sections" +# : #? optimize="$optimize -fcaller-saves" +# : #> optimize="$optimize -funroll-loops" +# : #> optimize="$optimize -funroll-all-loops" +# : #x optimize="$optimize -fmove-all-movables" +# : #x optimize="$optimize -freduce-all-givs" +# : #? optimize="$optimize -fstrict-aliasing" +# : #* optimize="$optimize -fstructure-noalias" +# +# case "$host" in +# arm*-*) +# optimize="$optimize -fstrength-reduce" +# ;; +# mips*-*) +# optimize="$optimize -fstrength-reduce" +# optimize="$optimize -finline-functions" +# ;; +# i?86-*) +# optimize="$optimize -fstrength-reduce" +# ;; +# powerpc-apple-*) +# # this triggers an internal compiler error with gcc2 +# : #optimize="$optimize -fstrength-reduce" +# +# # this is really only beneficial with gcc3 +# : #optimize="$optimize -finline-functions" +# ;; +# *) +# # this sometimes provokes bugs in gcc 2.95.2 +# : #optimize="$optimize -fstrength-reduce" +# ;; +# esac +# ;; +# esac +#fi case "$host" in mips*-agenda-*) 0707010000015F000081A400000000000000000000000166968E4E0000055B000000000000000000000000000000000000005200000000gnome-music-46.1/subprojects/shared-modules/libmad/libmad-0.15.1b-multiarch.patchdiff -up libmad-0.15.1b/Makefile.am.orig libmad-0.15.1b/Makefile.am --- libmad-0.15.1b/Makefile.am.orig 2009-01-25 14:35:56.000000000 +0200 +++ libmad-0.15.1b/Makefile.am 2009-01-25 18:35:07.000000000 +0200 @@ -110,15 +110,28 @@ mad.h: config.status config.h Makefile.a echo "# ifdef __cplusplus"; \ echo 'extern "C" {'; \ echo "# endif"; echo; \ - if [ ".$(FPM)" != "." ]; then \ - echo ".$(FPM)" | sed -e 's|^\.-D|# define |'; echo; \ - fi; \ + echo "# ifdef __i386__"; \ + echo "# define FPM_INTEL"; \ + echo "# define SIZEOF_LONG 4"; \ + echo "# endif"; \ + echo "#ifdef __x86_64__";\ + echo "# define FPM_64BIT"; \ + echo "# define SIZEOF_LONG 8"; \ + echo "# endif"; \ + echo "#ifdef __powerpc__"; \ + echo "#define FPM_PPC"; \ + echo "#define SIZEOF_LONG 4"; \ + echo "#endif"; \ + echo "#ifdef __powerpc64__"; \ + echo "#define FPM_PPC"; \ + echo "#define SIZEOF_LONG 8"; \ + echo "#endif"; echo; \ sed -ne 's/^# *define *\(HAVE_.*_ASM\).*/# define \1/p' \ config.h; echo; \ sed -ne 's/^# *define *OPT_\(SPEED\|ACCURACY\).*/# define OPT_\1/p' \ config.h; echo; \ - sed -ne 's/^# *define *\(SIZEOF_.*\)/# define \1/p' \ - config.h; echo; \ + echo "# define SIZEOF_INT 4"; \ + echo "# define SIZEOF_LONG_LONG 8"; echo; \ for header in $(exported_headers); do \ echo; \ sed -n -f $(srcdir)/mad.h.sed $(srcdir)/$$header; \ 07070100000160000081A400000000000000000000000166968E4E000001C0000000000000000000000000000000000000004C00000000gnome-music-46.1/subprojects/shared-modules/libmad/libmad-0.15.1b-ppc.patch--- libmad-0.15.1b/fixed.h~ 2004-02-17 02:02:03.000000000 +0000 +++ libmad-0.15.1b/fixed.h 2009-07-19 13:03:08.000000000 +0100 @@ -379,8 +379,8 @@ mad_fixed_t mad_f_mul_inline(mad_fixed_t asm ("addc %0,%2,%3\n\t" \ "adde %1,%4,%5" \ : "=r" (lo), "=r" (hi) \ - : "%r" (lo), "r" (__lo), \ - "%r" (hi), "r" (__hi) \ + : "0" (lo), "r" (__lo), \ + "1" (hi), "r" (__hi) \ : "xer"); \ }) # endif 07070100000161000081A400000000000000000000000166968E4E0000045B000000000000000000000000000000000000003F00000000gnome-music-46.1/subprojects/shared-modules/libmad/libmad.json{ "name" : "libmad", "post-install": [ "install -d $FLATPAK_DEST/lib/pkgconfig", "install -Dm644 -t $FLATPAK_DEST/lib/pkgconfig mad.pc" ], "sources" : [ { "type" : "archive", "url" : "https://downloads.sourceforge.net/project/mad/libmad/0.15.1b/libmad-0.15.1b.tar.gz", "sha256" : "bbfac3ed6bfbc2823d3775ebb931087371e142bb0e9bb1bee51a76a6e0078690" }, { "type": "patch", "path": "libmad-0.15.1b-multiarch.patch" }, { "type": "patch", "path": "libmad-0.15.1b-ppc.patch" }, { "type": "patch", "path": "Provide-Thumb-2-alternative-code-for-MAD_F_MLN.diff" }, { "type": "patch", "path": "libmad.thumb.diff" }, { "type": "patch", "path": "libmad-0.15.1b-cflags.patch" }, { "type": "patch", "path": "libmad-0.15.1b-cflags-O2.patch" }, { "type": "file", "path": "mad.pc" }, { "type": "shell", "commands": [ "cp /usr/share/gnu-config/config.sub .", "cp /usr/share/gnu-config/config.guess ." ] } ] } 07070100000162000081A400000000000000000000000166968E4E00000128000000000000000000000000000000000000004500000000gnome-music-46.1/subprojects/shared-modules/libmad/libmad.thumb.diff--- ./imdct_l_arm.S.orig 2010-02-25 13:25:23.000000000 +0100 +++ ./imdct_l_arm.S 2010-02-25 13:27:26.000000000 +0100 @@ -468,7 +468,7 @@ @---- - add r2, pc, #(imdct36_long_karray-.-8) @ r2 = base address of Knn array (PIC safe ?) + adr r2, imdct36_long_karray loop: 07070100000163000081A400000000000000000000000166968E4E000000BD000000000000000000000000000000000000003A00000000gnome-music-46.1/subprojects/shared-modules/libmad/mad.pcprefix=/app exec_prefix=/app libdir=/app/lib includedir=/app/include Name: mad Description: MPEG Audio Decoder Requires: Version: 0.15.1b Libs: -L/app/lib} -lmad -lm Cflags: -I/app/include07070100000164000041ED00000000000000000000000266968E4E00000000000000000000000000000000000000000000003600000000gnome-music-46.1/subprojects/shared-modules/libsecret07070100000165000081A400000000000000000000000166968E4E000001E7000000000000000000000000000000000000004500000000gnome-music-46.1/subprojects/shared-modules/libsecret/libsecret.json{ "name": "libsecret", "buildsystem": "meson", "config-opts": [ "-Dmanpage=false", "-Dvapi=false", "-Dgtk_doc=false", "-Dintrospection=false" ], "cleanup": [ "/bin", "/include", "/lib/pkgconfig", "/share/man" ], "sources": [ { "type": "archive", "url": "https://download.gnome.org/sources/libsecret/0.20/libsecret-0.20.5.tar.xz", "sha256": "3fb3ce340fcd7db54d87c893e69bfc2b1f6e4d4b279065ffe66dac9f0fd12b4d" } ] } 07070100000166000041ED00000000000000000000000266968E4E00000000000000000000000000000000000000000000003300000000gnome-music-46.1/subprojects/shared-modules/libusb07070100000167000081A400000000000000000000000166968E4E0000020A000000000000000000000000000000000000003F00000000gnome-music-46.1/subprojects/shared-modules/libusb/libusb.json{ "name": "libusb", "config-opts": [ "--disable-static" ], "cleanup": [ "/lib/*.la", "/lib/pkgconfig", "/include" ], "sources": [ { "type": "archive", "url": "https://github.com/libusb/libusb/releases/download/v1.0.26/libusb-1.0.26.tar.bz2", "sha256": "12ce7a61fc9854d1d2a1ffe095f7b5fac19ddba095c259e6067a46500381b5a5" } ], "post-install": [ "install -Dm644 COPYING /app/share/licenses/libusb/COPYING" ] } 07070100000168000041ED00000000000000000000000266968E4E00000000000000000000000000000000000000000000003800000000gnome-music-46.1/subprojects/shared-modules/linux-audio07070100000169000081A400000000000000000000000166968E4E00000288000000000000000000000000000000000000004200000000gnome-music-46.1/subprojects/shared-modules/linux-audio/dssi.json{ "name": "dssi", "rm-configure": true, "config-opts": [ "--disable-static" ], "cleanup": [ "/bin", "/include", "/lib/dssi", "/lib/pkgconfig", "/share/man", "*.la" ], "sources": [ { "type": "archive", "url": "http://download.sf.net/sourceforge/dssi/dssi-1.1.1.tar.gz", "sha256": "f2c82b073a947c8255284249097667f9b14e660bf86186f3fcd3b3b3e087814e" }, { "type": "script", "commands": [ "autoreconf -fiv" ], "dest-filename": "autogen.sh" } ] } 0707010000016A000081A400000000000000000000000166968E4E00000327000000000000000000000000000000000000004B00000000gnome-music-46.1/subprojects/shared-modules/linux-audio/fftw3f-static.json{ "name": "fftw3f", "config-opts": [ "--enable-threads", "--enable-static", "--disable-shared", "--enable-float" ], "build-options": { "cflags": "-fPIC", "arch": { "x86_64": { "config-opts": [ "--enable-sse2", "--enable-avx", "--enable-avx-128-fma" ] }, "aarch64": { "config-opts": [ "--enable-neon" ] } } }, "sources": [ { "type": "archive", "url": "https://www.fftw.org/fftw-3.3.10.tar.gz", "sha256": "56c932549852cddcfafdab3820b0200c7742675be92179e59e6215b340e26467" } ], "cleanup": [ "/bin", "/include", "/lib/cmake", "/lib/pkgconfig", "/share/info", "/share/man", "*.a", "*.la", "*.so" ] } 0707010000016B000081A400000000000000000000000166968E4E000003AA000000000000000000000000000000000000004400000000gnome-music-46.1/subprojects/shared-modules/linux-audio/fftw3f.json{ "name": "fftw3f", "config-opts": [ "--enable-threads", "--enable-shared", "--disable-static", "--enable-float" ], "build-options": { "arch": { "x86_64": { "config-opts": [ "--enable-sse2", "--enable-avx", "--enable-avx-128-fma" ] }, "aarch64": { "config-opts": [ "--enable-neon" ] } } }, "sources": [ { "type": "archive", "url": "https://www.fftw.org/fftw-3.3.10.tar.gz", "sha256": "56c932549852cddcfafdab3820b0200c7742675be92179e59e6215b340e26467" } ], "cleanup": [ "/bin", "/include", "/lib/cmake", "/lib/pkgconfig", "/share/man", "*.la", "*.so" ] } 0707010000016C000081A400000000000000000000000166968E4E00000218000000000000000000000000000000000000005000000000gnome-music-46.1/subprojects/shared-modules/linux-audio/fluidsynth2-static.json{ "name": "fluidsynth", "buildsystem": "cmake-ninja", "build-options": { "cflags": "-fPIC", "cxxflags": "-fPIC" }, "config-opts": [ "-DLIB_SUFFIX=", "-DBUILD_SHARED_LIBS=OFF" ], "cleanup": [ "/bin", "/include", "/lib/pkgconfig", "/share/man", "*.so", "*.a" ], "sources": [ { "type": "archive", "url": "https://github.com/FluidSynth/fluidsynth/archive/v2.2.8.tar.gz", "sha256": "7c29a5cb7a2755c8012d941d1335da7bda957bbb0a86b7c59215d26773bb51fe" } ] } 0707010000016D000081A400000000000000000000000166968E4E000001E7000000000000000000000000000000000000004900000000gnome-music-46.1/subprojects/shared-modules/linux-audio/fluidsynth2.json{ "name": "fluidsynth", "buildsystem": "cmake-ninja", "config-opts": [ "-DLIB_SUFFIX=" ], "cleanup": [ "/bin", "/include", "/lib/pkgconfig", "/share/man", "*.so" ], "sources": [ { "type": "archive", "url": "https://github.com/FluidSynth/fluidsynth/archive/v2.2.8.tar.gz", "sha256": "7c29a5cb7a2755c8012d941d1335da7bda957bbb0a86b7c59215d26773bb51fe" } ] } 0707010000016E000081A400000000000000000000000166968E4E0000027F000000000000000000000000000000000000004300000000gnome-music-46.1/subprojects/shared-modules/linux-audio/jack2.json{ "name": "jack2", "buildsystem": "simple", "build-commands": [ "./waf configure --prefix=$FLATPAK_DEST --htmldir=$FLATPAK_DEST/share/doc/jack/ --classic", "./waf build -j $FLATPAK_BUILDER_N_JOBS", "./waf install" ], "cleanup": [ "/include", "/lib/jack", "/lib/libjack*", "/lib/pkgconfig", "/share/man" ], "sources": [ { "type": "archive", "url": "https://github.com/jackaudio/jack2/archive/v1.9.17.tar.gz", "sha256": "38f674bbc57852a8eb3d9faa1f96a0912d26f7d5df14c11005ad499c8ae352f2" } ] } 0707010000016F000081A400000000000000000000000166968E4E000001D6000000000000000000000000000000000000004400000000gnome-music-46.1/subprojects/shared-modules/linux-audio/ladspa.json{ "name": "ladspa", "no-autogen": true, "subdir": "src", "make-install-args": [ "INSTALL_PLUGINS_DIR=/app/lib/ladspa", "INSTALL_INCLUDE_DIR=/app/include", "INSTALL_BINARY_DIR=/app/bin" ], "sources": [ { "type": "archive", "url": "http://www.ladspa.org/download/ladspa_sdk_1.17.tgz", "sha256": "27d24f279e4b81bd17ecbdcc38e4c42991bb388826c0b200067ce0eb59d3da5b" } ] } 07070100000170000081A400000000000000000000000166968E4E00000429000000000000000000000000000000000000004200000000gnome-music-46.1/subprojects/shared-modules/linux-audio/lash.json{ "name": "lash", "rm-configure": true, "config-opts": [ "--disable-static", "--disable-serv-inst", "CFLAGS=-D_GNU_SOURCE" ], "sources": [ { "type": "archive", "url": "https://download.savannah.gnu.org/releases/lash/lash-0.5.4.tar.gz", "sha256": "105a7da84415c4725c6bcad28e70f23aeb4534f94fc80ca262b6a2cef2226c16" }, { "type": "patch", "strip-components": 0, "path": "patches/lash-0.5.3-no-static-lib.patch" }, { "type": "patch", "path": "patches/lash-gcc47.patch" }, { "type": "patch", "path": "patches/lash-linking.patch" }, { "type": "patch", "strip-components": 0, "path": "patches/lash-configure.patch" }, { "type": "script", "commands": [ "autoreconf -fiv" ], "dest-filename": "autogen.sh" } ] } 07070100000171000081A400000000000000000000000166968E4E00000191000000000000000000000000000000000000004A00000000gnome-music-46.1/subprojects/shared-modules/linux-audio/libinstpatch.json{ "name": "libinstpatch", "buildsystem": "cmake-ninja", "config-opts": [ "-DLIB_SUFFIX=" ], "cleanup": [ "/share/doc" ], "sources": [ { "type": "archive", "url": "https://github.com/swami/libinstpatch/archive/v1.1.6.tar.gz", "sha256": "8e9861b04ede275d712242664dab6ffa9166c7940fea3b017638681d25e10299" } ] } 07070100000172000081A400000000000000000000000166968E4E000001CB000000000000000000000000000000000000004A00000000gnome-music-46.1/subprojects/shared-modules/linux-audio/liblo-static.json{ "name": "liblo", "cleanup": [ "/bin", "/include", "/lib/pkgconfig", "*.la", "*.a", "*.so" ], "build-options": { "cflags": "-fPIC" }, "config-opts": [ "--enable-static", "--disable-shared" ], "sources": [ { "type": "archive", "url": "http://download.sf.net/sourceforge/liblo/liblo-0.31.tar.gz", "sha256": "2b4f446e1220dcd624ecd8405248b08b7601e9a0d87a0b94730c2907dbccc750" } ] } 07070100000173000081A400000000000000000000000166968E4E0000014A000000000000000000000000000000000000004300000000gnome-music-46.1/subprojects/shared-modules/linux-audio/liblo.json{ "name": "liblo", "cleanup": [ "/bin", "/include", "/lib/pkgconfig", "*.la", "*.so" ], "sources": [ { "type": "archive", "url": "http://download.sf.net/sourceforge/liblo/liblo-0.31.tar.gz", "sha256": "2b4f446e1220dcd624ecd8405248b08b7601e9a0d87a0b94730c2907dbccc750" } ] } 07070100000174000081A400000000000000000000000166968E4E00000A47000000000000000000000000000000000000004200000000gnome-music-46.1/subprojects/shared-modules/linux-audio/lilv.json{ "name": "lilv", "buildsystem": "simple", "build-commands": [ "python3 ./waf configure --prefix=$FLATPAK_DEST", "python3 ./waf build -j $FLATPAK_BUILDER_N_JOBS", "python3 ./waf install" ], "modules": [ { "name": "serd", "buildsystem": "simple", "build-commands": [ "python3 ./waf configure --prefix=$FLATPAK_DEST", "python3 ./waf build -j $FLATPAK_BUILDER_N_JOBS", "python3 ./waf install" ], "sources": [ { "type": "archive", "url": "https://download.drobilla.net/serd-0.30.10.tar.bz2", "sha256": "affa80deec78921f86335e6fc3f18b80aefecf424f6a5755e9f2fa0eb0710edf" } ], "post-install": [ "install -Dm644 -t /app/share/licenses/serd COPYING" ], "cleanup": [ "/bin", "/include", "/lib/pkgconfig", "/share/man" ] }, { "name": "sord", "buildsystem": "simple", "build-commands": [ "python3 ./waf configure --prefix=$FLATPAK_DEST", "python3 ./waf build -j $FLATPAK_BUILDER_N_JOBS", "python3 ./waf install" ], "sources": [ { "type": "archive", "url": "https://download.drobilla.net/sord-0.16.8.tar.bz2", "sha256": "7c289d2eaabf82fa6ac219107ce632d704672dcfb966e1a7ff0bbc4ce93f5e14" } ], "post-install": [ "install -Dm644 -t /app/share/licenses/sord COPYING" ], "cleanup": [ "/bin", "/include", "/lib/pkgconfig", "/share/man" ] }, { "name": "sratom", "buildsystem": "simple", "build-commands": [ "python3 ./waf configure --prefix=$FLATPAK_DEST", "python3 ./waf build -j $FLATPAK_BUILDER_N_JOBS", "python3 ./waf install" ], "cleanup": [ "/include", "/lib/pkgconfig" ], "sources": [ { "type": "archive", "url": "https://download.drobilla.net/sratom-0.6.8.tar.bz2", "sha256": "3acb32b1adc5a2b7facdade2e0818bcd6c71f23f84a1ebc17815bb7a0d2d02df" } ], "post-install": [ "install -Dm644 -t /app/share/licenses/sratom COPYING" ] } ], "sources": [ { "type": "archive", "url": "https://download.drobilla.net/lilv-0.24.12.tar.bz2", "sha256": "26a37790890c9c1f838203b47f5b2320334fe92c02a4d26ebbe2669dbd769061" } ], "post-install": [ "install -Dm644 -t /app/share/licenses/lilv COPYING" ], "cleanup": [ "/bin", "/etc", "/lib/pkgconfig", "/share/man" ] } 07070100000175000081A400000000000000000000000166968E4E0000052E000000000000000000000000000000000000004200000000gnome-music-46.1/subprojects/shared-modules/linux-audio/lrdf.json{ "name": "lrdf", "rm-configure": true, "cleanup": [ "/include", "/lib/pkgconfig", "*.so" ], "config-opts": [ "--disable-static" ], "modules": [ "ladspa.json", { "name": "raptor2", "cleanup": [ "/include", "/lib/pkgconfig", "/share/gtk-doc", "*.so" ], "config-opts": [ "--disable-documentation", "--disable-static" ], "sources": [ { "type": "archive", "url": "http://download.librdf.org/source/raptor2-2.0.15.tar.gz", "sha256": "ada7f0ba54787b33485d090d3d2680533520cd4426d2f7fb4782dd4a6a1480ed" } ] } ], "sources": [ { "type": "archive", "url": "https://github.com/swh/LRDF/tarball/0.5.0", "dest-filename": "swh-LRDF-0.5.0-0-g7ebc032.tar.gz", "sha256": "013002b91ef209827fe99552b8c7f0b569cddb3d6f1439bedbd8bafe1956a93c" }, { "type": "script", "commands": [ "autoreconf -fiv" ], "dest-filename": "autogen.sh" } ] } 07070100000176000081A400000000000000000000000166968E4E00000302000000000000000000000000000000000000004100000000gnome-music-46.1/subprojects/shared-modules/linux-audio/lv2.json{ "name": "lv2", "buildsystem": "simple", "build-commands": [ "python3 ./waf configure --prefix=$FLATPAK_DEST --lv2dir=$FLATPAK_DEST/lib/lv2 --copy-headers", "python3 ./waf build -j $FLATPAK_BUILDER_N_JOBS", "python3 ./waf install" ], "cleanup": [ "/bin", "/include", "/lib/pkgconfig", "/share" ], "sources": [ { "type": "archive", "url": "https://lv2plug.in/spec/lv2-1.18.2.tar.bz2", "sha256": "4e891fbc744c05855beb5dfa82e822b14917dd66e98f82b8230dbd1c7ab2e05e" } ], "post-install": [ "install -Dm644 -t $FLATPAK_DEST/share/licenses/lv2 COPYING", "ln -sf lv2.pc $FLATPAK_DEST/lib/pkgconfig/lv2core.pc" ] } 07070100000177000041ED00000000000000000000000266968E4E00000000000000000000000000000000000000000000004000000000gnome-music-46.1/subprojects/shared-modules/linux-audio/patches07070100000178000081A400000000000000000000000166968E4E00000149000000000000000000000000000000000000005F00000000gnome-music-46.1/subprojects/shared-modules/linux-audio/patches/lash-0.5.3-no-static-lib.patch--- lash-1.0.pc.in~ 2007-10-07 06:33:27.000000000 -0700 +++ lash-1.0.pc.in 2007-10-07 06:35:00.000000000 -0700 @@ -7,6 +7,5 @@ Description: Audio session management Requires: @PC_REQUIRES@ Version: @PACKAGE_VERSION@ -Libs: -llash -Libs.static: -lpthread -luuid +Libs: -llash -lpthread -luuid Cflags: -I${includedir}/lash-1.0 07070100000179000081A400000000000000000000000166968E4E00000134000000000000000000000000000000000000005500000000gnome-music-46.1/subprojects/shared-modules/linux-audio/patches/lash-configure.patch--- configure.ac 2007-11-14 16:58:51.000000000 -0500 +++ configure.ac.new 2019-01-24 13:48:46.284377086 -0500 @@ -2,7 +2,7 @@ AC_CONFIG_SRCDIR([lash/types.h]) AC_CONFIG_HEADER([config.h]) AM_INIT_AUTOMAKE -AM_ACLOCAL_INCLUDE([m4]) +dnl AM_ACLOCAL_INCLUDE([m4]) ### Check for programs ### AC_LANG([C]) 0707010000017A000081A400000000000000000000000166968E4E00000181000000000000000000000000000000000000005100000000gnome-music-46.1/subprojects/shared-modules/linux-audio/patches/lash-gcc47.patchdiff -rupN lash-0.5.4.old/liblash/lash.c lash-0.5.4/liblash/lash.c --- lash-0.5.4.old/liblash/lash.c 2007-03-09 10:34:40.000000000 -0500 +++ lash-0.5.4/liblash/lash.c 2012-07-22 18:17:46.003963521 -0400 @@ -22,6 +22,7 @@ #include #include #include +#include #include #include #include 0707010000017B000081A400000000000000000000000166968E4E00000D30000000000000000000000000000000000000005300000000gnome-music-46.1/subprojects/shared-modules/linux-audio/patches/lash-linking.patchdiff -rupN lash-0.5.4.old/clients/control/Makefile.am lash-0.5.4/clients/control/Makefile.am --- lash-0.5.4.old/clients/control/Makefile.am 2007-01-13 13:20:03.000000000 -0500 +++ lash-0.5.4/clients/control/Makefile.am 2010-02-10 03:08:04.000000000 -0500 @@ -18,6 +18,6 @@ lash_control_CFLAGS = $(LASH_CFLAGS) lash_control_LDADD = \ $(top_builddir)/liblash/liblash.la \ - $(LASH_LIBS) @READLINE_LIBS@ + $(LASH_LIBS) @READLINE_LIBS@ -luuid endif diff -rupN lash-0.5.4.old/clients/control/Makefile.in lash-0.5.4/clients/control/Makefile.in --- lash-0.5.4.old/clients/control/Makefile.in 2007-11-14 17:00:09.000000000 -0500 +++ lash-0.5.4/clients/control/Makefile.in 2010-02-10 03:09:26.000000000 -0500 @@ -236,7 +236,7 @@ AM_CPPFLAGS = -I$(top_srcdir) @HAVE_READLINE_TRUE@lash_control_CFLAGS = $(LASH_CFLAGS) @HAVE_READLINE_TRUE@lash_control_LDADD = \ @HAVE_READLINE_TRUE@ $(top_builddir)/liblash/liblash.la \ -@HAVE_READLINE_TRUE@ $(LASH_LIBS) @READLINE_LIBS@ +@HAVE_READLINE_TRUE@ $(LASH_LIBS) @READLINE_LIBS@ -luuid all: all-am diff -rupN lash-0.5.4.old/clients/panel/Makefile.am lash-0.5.4/clients/panel/Makefile.am --- lash-0.5.4.old/clients/panel/Makefile.am 2005-09-13 01:22:59.000000000 -0400 +++ lash-0.5.4/clients/panel/Makefile.am 2010-02-10 03:17:10.000000000 -0500 @@ -13,7 +13,7 @@ lash_panel_CFLAGS = \ lash_panel_LDADD = \ $(top_builddir)/liblash/liblash.la \ - $(GTK2_LIBS) + $(GTK2_LIBS) -luuid if HAVE_GTK2 bin_PROGRAMS = lash_panel diff -rupN lash-0.5.4.old/clients/panel/Makefile.in lash-0.5.4/clients/panel/Makefile.in --- lash-0.5.4.old/clients/panel/Makefile.in 2007-11-14 17:00:09.000000000 -0500 +++ lash-0.5.4/clients/panel/Makefile.in 2010-02-10 03:17:23.000000000 -0500 @@ -230,7 +230,7 @@ lash_panel_CFLAGS = \ lash_panel_LDADD = \ $(top_builddir)/liblash/liblash.la \ - $(GTK2_LIBS) + $(GTK2_LIBS) -luuid all: all-am diff -rupN lash-0.5.4.old/clients/synth/Makefile.am lash-0.5.4/clients/synth/Makefile.am --- lash-0.5.4.old/clients/synth/Makefile.am 2005-09-13 01:22:59.000000000 -0400 +++ lash-0.5.4/clients/synth/Makefile.am 2010-02-10 03:22:39.000000000 -0500 @@ -20,4 +20,4 @@ lash_synth_LDADD = \ $(JACK_LIBS) \ $(ALSA_LIBS) \ $(GTK2_LIBS) \ - -lpthread + -lpthread -lm diff -rupN lash-0.5.4.old/clients/synth/Makefile.in lash-0.5.4/clients/synth/Makefile.in --- lash-0.5.4.old/clients/synth/Makefile.in 2007-11-14 17:00:10.000000000 -0500 +++ lash-0.5.4/clients/synth/Makefile.in 2010-02-10 03:22:51.000000000 -0500 @@ -238,7 +238,7 @@ lash_synth_LDADD = \ $(JACK_LIBS) \ $(ALSA_LIBS) \ $(GTK2_LIBS) \ - -lpthread + -lpthread -lm all: all-am diff -rupN lash-0.5.4.old/lashd/Makefile.am lash-0.5.4/lashd/Makefile.am --- lash-0.5.4.old/lashd/Makefile.am 2006-09-16 16:27:46.000000000 -0400 +++ lash-0.5.4/lashd/Makefile.am 2010-07-23 15:13:59.000000000 -0400 @@ -32,6 +32,7 @@ lashd_LDADD = \ $(ALSA_LIBS) \ $(XML2_LIBS) \ $(UUID_LIBS) \ + -lpthread \ $(top_builddir)/liblash/liblash.la lashd_CFLAGS = \ diff -rupN lash-0.5.4.old/lashd/Makefile.in lash-0.5.4/lashd/Makefile.in --- lash-0.5.4.old/lashd/Makefile.in 2007-11-14 17:00:10.000000000 -0500 +++ lash-0.5.4/lashd/Makefile.in 2010-07-23 15:14:29.000000000 -0400 @@ -262,6 +262,7 @@ lashd_LDADD = \ $(ALSA_LIBS) \ $(XML2_LIBS) \ $(UUID_LIBS) \ + -lpthread \ $(top_builddir)/liblash/liblash.la lashd_CFLAGS = \ 0707010000017C000081A400000000000000000000000166968E4E00000862000000000000000000000000000000000000004F00000000gnome-music-46.1/subprojects/shared-modules/linux-audio/patches/stk-install.sh INCLUDE_DIR=/app/include DATA_DIR=/app/share LIB_DIR=/app/lib BIN_DIR=/app/bin install -Dm644 -t $INCLUDE_DIR/stk include/* install -Dm644 -t $LIB_DIR src/libstk.* install -Dm644 -t $DATA_DIR/stk/rawwaves rawwaves/*.raw #cp -pr projects/demo/tcl $DATA_DIR/stk/demo #cp -pr projects/demo/scores $DATA_DIR/stk/demo #cp -p projects/demo/demo $BIN_DIR/stk-demo #cp -p projects/demo/Md2Skini $BIN_DIR/Md2Skini #for f in Banded Drums Modal Physical Shakers StkDemo Voice ; do # chmod +x projects/demo/$f # sed -e 's,\./demo,$BIN_DIR/stk-demo,' -e '1i#! /bin/sh' \ # -i projects/demo/$f # cp -p projects/demo/$f $DATA_DIR/stk/demo #done #cp -pr projects/examples/midifiles $DATA_DIR/stk/examples #cp -pr projects/examples/rawwaves $DATA_DIR/stk/examples #cp -pr projects/examples/scores $DATA_DIR/stk/examples #for f in sine sineosc foursine audioprobe midiprobe duplex play \ # record inetIn inetOut rtsine crtsine bethree controlbee \ # threebees playsmf grains ; do # cp -p projects/examples/$f $BIN_DIR/stk-$f # # absolute links, will be shortened later # ln -s $BIN_DIR/stk-$f $DATA_DIR/stk/examples/$f #done install -Dm644 -t $DATA_DIR/stk/effects projects/effects/tcl install -Dm644 -t $BIN_DIR/stk-effects projects/effects/effects sed -e 's,\./effects,$BIN_DIR/stk-effects,' -e '1i#! /bin/sh' \ -i projects/effects/StkEffects install -Dm644 -t $DATA_DIR/stk/effects projects/effects/StkEffects install -Dm644 -t $DATA_DIR/stk/ragamatic projects/ragamatic/tcl install -Dm644 -t $DATA_DIR/stk/ragamatic projects/ragamatic/rawwaves install -Dm644 -t $BIN_DIR/stk-ragamat projects/ragamatic/ragamat sed -e 's,\./ragamat,$BIN_DIR/stk-ragamat,' -e '1i#! /bin/sh' \ -i projects/ragamatic/Raga install -Dm644 -t $DATA_DIR/stk/ragamatic projects/ragamatic/Raga install -Dm644 -t $DATA_DIR/stk/eguitar projects/eguitar/tcl install -Dm644 -t $DATA_DIR/stk/eguitar projects/eguitar/scores install -Dm644 -t $BIN_DIR/stk-eguitar projects/eguitar/eguitar sed -e 's,\./eguitar,$BIN_DIR/stk-eguitar,' -e '1i#! /bin/sh' \ -i projects/eguitar/ElectricGuitar install -Dm644 -t $DATA_DIR/stk/eguitar projects/eguitar/ElectricGuitar 0707010000017D000081A400000000000000000000000166968E4E00000325000000000000000000000000000000000000004100000000gnome-music-46.1/subprojects/shared-modules/linux-audio/stk.json{ "name": "stk", "build-commands": [ "make -j $FLATPAK_BUILDER_N_JOBS -C src", "make -j $FLATPAK_BUILDER_N_JOBS -C projects/effects libeffects", "make -j $FLATPAK_BUILDER_N_JOBS -C projects/ragamatic libragamat", "make -j $FLATPAK_BUILDER_N_JOBS -C projects/eguitar libeguitar" ], "post-install": [ "sh ./stk-install.sh" ], "cleanup": [ "/bin/*", "/include", "*.a" ], "sources": [ { "type": "archive", "url": "http://ccrma.stanford.edu/software/stk/release/stk-4.6.1.tar.gz", "sha256": "e77ba3c80cdd93ca02c34098b9b7f918df3d648c87f1ed5d94fe854debd6d101" }, { "type": "file", "path": "patches/stk-install.sh" } ] } 0707010000017E000041ED00000000000000000000000266968E4E00000000000000000000000000000000000000000000003300000000gnome-music-46.1/subprojects/shared-modules/lua5.10707010000017F000081A400000000000000000000000166968E4E00000508000000000000000000000000000000000000004600000000gnome-music-46.1/subprojects/shared-modules/lua5.1/lua-5.1.5-so.patchdiff -ur lua-5.1.4/src/Makefile lua-5.1.4-new/src/Makefile --- lua-5.1.4/src/Makefile 2008-01-19 20:37:58.000000000 +0100 +++ lua-5.1.4-new/src/Makefile 2012-02-23 18:26:43.000000000 +0100 @@ -23,6 +23,7 @@ PLATS= aix ansi bsd freebsd generic linux macosx mingw posix solaris LUA_A= liblua.a +LUA_SO= liblua.so CORE_O= lapi.o lcode.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o lmem.o \ lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o ltm.o \ lundump.o lvm.o lzio.o @@ -36,7 +37,7 @@ LUAC_O= luac.o print.o ALL_O= $(CORE_O) $(LIB_O) $(LUA_O) $(LUAC_O) -ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T) +ALL_T= $(LUA_A) $(LUA_SO) $(LUA_T) $(LUAC_T) ALL_A= $(LUA_A) default: $(PLAT) @@ -51,6 +52,11 @@ $(AR) $@ $? $(RANLIB) $@ +$(LUA_SO): $(CORE_O) $(LIB_O) + $(CC) -shared -ldl -Wl,-soname,$(LUA_SO).$(V) -o $@.$(R) $? -lm $(MYLDFLAGS) + ln -sf $(LUA_SO).$(R) $(LUA_SO).$(V) + ln -sf $(LUA_SO).$(R) $(LUA_SO) + $(LUA_T): $(LUA_O) $(LUA_A) $(CC) -o $@ $(MYLDFLAGS) $(LUA_O) $(LUA_A) $(LIBS) --- lua-5.1.4/Makefile 2008-08-12 02:40:48.000000000 +0200 +++ lua-5.1.4-new/Makefile 2012-02-23 19:06:32.000000000 +0100 @@ -53,7 +53,7 @@ all: $(PLAT) $(PLATS) clean: - cd src && $(MAKE) $@ + cd src && $(MAKE) $@ V=$(V) R=$(R) test: dummy src/lua test/hello.lua 07070100000180000081A400000000000000000000000166968E4E000004E7000000000000000000000000000000000000004200000000gnome-music-46.1/subprojects/shared-modules/lua5.1/lua-5.1.5.json{ "name": "lua-5.1", "buildsystem": "simple", "build-commands": [ "make -j $FLATPAK_BUILDER_N_JOBS CFLAGS=\"$CFLAGS -fPIC -DLUA_USE_LINUX\" linux", "make INSTALL_TOP=$FLATPAK_DEST TO_LIB='liblua.a liblua.so.5.1.5' install", "ln -sf liblua.so.5.1.5 $FLATPAK_DEST/lib/liblua.so", "ln -sf liblua.so.5.1.5 $FLATPAK_DEST/lib/liblua.so.5.1", "install -Dm0644 etc/lua.pc $FLATPAK_DEST/lib/pkgconfig/lua.pc", "ln -sf lua.pc $FLATPAK_DEST/lib/pkgconfig/lua51.pc", "ln -sf lua.pc $FLATPAK_DEST/lib/pkgconfig/lua5.1.pc", "ln -sf lua.pc $FLATPAK_DEST/lib/pkgconfig/lua-5.1.pc" ], "sources": [ { "type": "archive", "url": "https://www.lua.org/ftp/lua-5.1.5.tar.gz", "sha256": "2640fc56a795f29d28ef15e13c34a47e223960b0240e8cb0a82d9b0738695333" }, { "type": "patch", "path": "lua-5.1.5-so.patch" }, { "type": "shell", "commands": [ "sed -i \"s|/usr/local|$FLATPAK_DEST|\" etc/lua.pc src/luaconf.h" ] } ], "cleanup": [ "*.a", "/bin", "/include", "/lib/pkgconfig", "/man" ] } 07070100000181000041ED00000000000000000000000266968E4E00000000000000000000000000000000000000000000003300000000gnome-music-46.1/subprojects/shared-modules/lua5.307070100000182000081A400000000000000000000000166968E4E00000690000000000000000000000000000000000000004200000000gnome-music-46.1/subprojects/shared-modules/lua5.3/lua-5.3.5.json{ "name": "lua-5.3", "buildsystem": "simple", "build-commands": [ "make -j $FLATPAK_BUILDER_N_JOBS CFLAGS=\"$CFLAGS -fPIC -DLUA_USE_LINUX\" linux", "make TO_LIB=liblua.so.5.3.5 INSTALL_TOP=$FLATPAK_DEST install", "ln -sf liblua.so.5.3.5 $FLATPAK_DEST/lib/liblua.so", "ln -sf liblua.so.5.3.5 $FLATPAK_DEST/lib/liblua.so.5.3", "make INSTALL_TOP=${FLATPAK_DEST} pc > lua.pc", "cat lua.pc.in >> lua.pc", "install -Dm644 lua.pc $FLATPAK_DEST/lib/pkgconfig/lua.pc", "ln -sf lua.pc $FLATPAK_DEST/lib/pkgconfig/lua53.pc", "ln -sf lua.pc $FLATPAK_DEST/lib/pkgconfig/lua5.3.pc", "ln -sf lua.pc $FLATPAK_DEST/lib/pkgconfig/lua-5.3.pc" ], "sources": [ { "type": "archive", "url": "https://www.lua.org/ftp/lua-5.3.5.tar.gz", "sha256": "0c2eed3f960446e1a3e4b9a1ca2f3ff893b6ce41942cf54d5dd59ab4b3b058ac" }, { "type": "patch", "path": "makefile-add-liblua.so-rule.patch" }, { "type": "file", "path": "lua.pc.in" }, { "type": "shell", "commands": [ "sed -i \"s|/usr/local/|$FLATPAK_DEST/|;s|LUA_IDSIZE 60|LUA_IDSIZE 512|\" src/luaconf.h", "# Lua 5.3.5 has wrong release version in its Makefile. Fix it.", "sed 's/^R= \$V.4/R= \$V.5/' -i Makefile", "sed -i '12 a\\\\n#define LUA_COMPAT_5_1\\n#define LUA_COMPAT_5_2' src/luaconf.h" ] } ], "cleanup": [ "/bin", "/include", "/lib/pkgconfig", "/share/man" ] } 07070100000183000081A400000000000000000000000166968E4E000000A1000000000000000000000000000000000000003D00000000gnome-music-46.1/subprojects/shared-modules/lua5.3/lua.pc.inexec_prefix=${prefix} Name: Lua Description: An Extensible Extension Language Version: ${version} Requires: Libs: -L${libdir} -llua -lm Cflags: -I${includedir}07070100000184000081A400000000000000000000000166968E4E000004C1000000000000000000000000000000000000005500000000gnome-music-46.1/subprojects/shared-modules/lua5.3/makefile-add-liblua.so-rule.patchdiff --git a/Makefile b/Makefile index 7fa91c8..dccf485 100644 --- a/Makefile +++ b/Makefile @@ -52,7 +52,7 @@ R= $V.0 all: $(PLAT) $(PLATS) clean: - cd src && $(MAKE) $@ + cd src && $(MAKE) $@ V=$(V) R=$(R) test: dummy src/lua -v diff --git a/src/Makefile b/src/Makefile index 2e7a412..fa5769f 100644 --- a/src/Makefile +++ b/src/Makefile @@ -29,6 +29,7 @@ MYOBJS= PLATS= aix bsd c89 freebsd generic linux macosx mingw posix solaris LUA_A= liblua.a +LUA_SO= liblua.so CORE_O= lapi.o lcode.o lctype.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o \ lmem.o lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o \ ltm.o lundump.o lvm.o lzio.o @@ -43,7 +44,7 @@ LUAC_T= luac LUAC_O= luac.o ALL_O= $(BASE_O) $(LUA_O) $(LUAC_O) -ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T) +ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T) $(LUA_SO) ALL_A= $(LUA_A) # Targets start here. @@ -59,6 +60,12 @@ $(LUA_A): $(BASE_O) $(AR) $@ $(BASE_O) $(RANLIB) $@ +$(LUA_SO): $(CORE_O) $(LIB_O) + $(CC) -shared -ldl -Wl,-soname,$(LUA_SO).$(V) -o $@.$(R) $? -lm $(MYLDFLAGS) + ln -sf $(LUA_SO).$(R) $(LUA_SO).$(V) + ln -sf $(LUA_SO).$(R) $(LUA_SO) + + $(LUA_T): $(LUA_O) $(LUA_A) $(CC) -o $@ $(LDFLAGS) $(LUA_O) $(LUA_A) $(LIBS) 07070100000185000041ED00000000000000000000000266968E4E00000000000000000000000000000000000000000000003300000000gnome-music-46.1/subprojects/shared-modules/lua5.407070100000186000081A400000000000000000000000166968E4E00000603000000000000000000000000000000000000004000000000gnome-music-46.1/subprojects/shared-modules/lua5.4/lua-5.4.json{ "name": "lua-5.4", "buildsystem": "simple", "build-commands": [ "make -j $FLATPAK_BUILDER_N_JOBS CFLAGS=\"$CFLAGS -fPIC -DLUA_USE_LINUX\" linux", "make TO_LIB=liblua.so.5.4.4 INSTALL_TOP=$FLATPAK_DEST install", "ln -sf liblua.so.5.4.4 $FLATPAK_DEST/lib/liblua.so", "ln -sf liblua.so.5.4.4 $FLATPAK_DEST/lib/liblua.so.5.4", "make INSTALL_TOP=${FLATPAK_DEST} pc > lua.pc", "cat lua.pc.in >> lua.pc", "install -Dm644 lua.pc $FLATPAK_DEST/lib/pkgconfig/lua.pc", "ln -sf lua.pc $FLATPAK_DEST/lib/pkgconfig/lua54.pc", "ln -sf lua.pc $FLATPAK_DEST/lib/pkgconfig/lua5.4.pc", "ln -sf lua.pc $FLATPAK_DEST/lib/pkgconfig/lua-5.4.pc" ], "sources": [ { "type": "archive", "url": "https://www.lua.org/ftp/lua-5.4.4.tar.gz", "sha256": "164c7849653b80ae67bec4b7473b884bf5cc8d2dca05653475ec2ed27b9ebf61" }, { "type": "patch", "path": "makefile-add-liblua.so-rule.patch" }, { "type": "file", "path": "lua.pc.in" }, { "type": "shell", "commands": [ "sed -i \"s|/usr/local/|$FLATPAK_DEST/|;s|LUA_IDSIZE 60|LUA_IDSIZE 512|\" src/luaconf.h", "sed -i '12 a\\\\n#define LUA_COMPAT_5_1\\n#define LUA_COMPAT_5_2' src/luaconf.h" ] } ], "cleanup": [ "/bin", "/include", "/lib/pkgconfig", "/share/man" ] } 07070100000187000081A400000000000000000000000166968E4E000000A1000000000000000000000000000000000000003D00000000gnome-music-46.1/subprojects/shared-modules/lua5.4/lua.pc.inexec_prefix=${prefix} Name: Lua Description: An Extensible Extension Language Version: ${version} Requires: Libs: -L${libdir} -llua -lm Cflags: -I${includedir}07070100000188000081A400000000000000000000000166968E4E000005BE000000000000000000000000000000000000005500000000gnome-music-46.1/subprojects/shared-modules/lua5.4/makefile-add-liblua.so-rule.patch--- a/Makefile 2021-12-24 10:55:05.836294155 -0500 +++ b/Makefile 2021-03-02 15:04:35.000000000 -0500 @@ -52,7 +52,7 @@ all: $(PLAT) $(PLATS) help test clean: - @cd src && $(MAKE) $@ + @cd src && $(MAKE) $@ V=$(V) R=$(R) install: dummy cd src && $(MKDIR) $(INSTALL_BIN) $(INSTALL_INC) $(INSTALL_LIB) $(INSTALL_MAN) $(INSTALL_LMOD) $(INSTALL_CMOD) --- a/src/Makefile 2021-12-24 10:56:23.279935521 -0500 +++ b/src/Makefile 2021-02-09 13:47:17.000000000 -0500 @@ -32,6 +32,7 @@ PLATS= guess aix bsd c89 freebsd generic linux linux-readline macosx mingw posix solaris LUA_A= liblua.a +LUA_SO= liblua.so CORE_O= lapi.o lcode.o lctype.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o lmem.o lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o ltm.o lundump.o lvm.o lzio.o LIB_O= lauxlib.o lbaselib.o lcorolib.o ldblib.o liolib.o lmathlib.o loadlib.o loslib.o lstrlib.o ltablib.o lutf8lib.o linit.o BASE_O= $(CORE_O) $(LIB_O) $(MYOBJS) @@ -44,7 +44,7 @@ LUAC_O= luac.o ALL_O= $(BASE_O) $(LUA_O) $(LUAC_O) -ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T) +ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T) $(LUA_SO) ALL_A= $(LUA_A) # Targets start here. @@ -60,6 +60,11 @@ $(AR) $@ $(BASE_O) $(RANLIB) $@ +$(LUA_SO): $(CORE_O) $(LIB_O) + $(CC) -shared -ldl -Wl,-soname,$(LUA_SO).$(V) -o $@.$(R) $? -lm $(MYLDFLAGS) + ln -sf $(LUA_SO).$(R) $(LUA_SO).$(V) + ln -sf $(LUA_SO).$(R) $(LUA_SO) + $(LUA_T): $(LUA_O) $(LUA_A) $(CC) -o $@ $(LDFLAGS) $(LUA_O) $(LUA_A) $(LIBS) 07070100000189000041ED00000000000000000000000266968E4E00000000000000000000000000000000000000000000003000000000gnome-music-46.1/subprojects/shared-modules/mac0707010000018A000081A400000000000000000000000166968E4E00000199000000000000000000000000000000000000003900000000gnome-music-46.1/subprojects/shared-modules/mac/mac.json{ "name": "libmac", "subdir": "Source/Projects/NonWindows", "no-autogen": true, "make-install-args": [ "prefix=/app" ], "cleanup": [ "/include/MAC" ], "sources": [ { "type": "archive", "url": "https://freac.org/patches/MAC_SDK_723.zip", "sha256": "1d17d469dd2b4652e19cb91aa7cf76786fec999871a8f5729cd24064f989e9ae", "strip-components": 0 } ] } 0707010000018B000041ED00000000000000000000000266968E4E00000000000000000000000000000000000000000000003300000000gnome-music-46.1/subprojects/shared-modules/physfs0707010000018C000081A400000000000000000000000166968E4E000001F2000000000000000000000000000000000000003F00000000gnome-music-46.1/subprojects/shared-modules/physfs/physfs.json{ "name": "PhysicsFS", "buildsystem": "cmake-ninja", "config-opts": [ "-DPHYSFS_BUILD_TEST=OFF", "-DPHYSFS_BUILD_STATIC=OFF" ], "cleanup": [ "/include", "/lib/pkgconfig", "/bin" ], "sources": [ { "type": "archive", "url": "https://icculus.org/physfs/downloads/physfs-3.0.2.tar.bz2", "sha256": "304df76206d633df5360e738b138c94e82ccf086e50ba84f456d3f8432f9f863", "size": 194888 } ] } 0707010000018D000041ED00000000000000000000000266968E4E00000000000000000000000000000000000000000000003300000000gnome-music-46.1/subprojects/shared-modules/pygame0707010000018E000081A400000000000000000000000166968E4E000003BB000000000000000000000000000000000000004800000000gnome-music-46.1/subprojects/shared-modules/pygame/audiofile-gcc6.patchFrom b62c902dd258125cac86cd2df21fc898035a43d3 Mon Sep 17 00:00:00 2001 From: Michael Pruett Date: Mon, 29 Aug 2016 23:08:26 -0500 Subject: [PATCH] Fix undefined behavior in sign conversion. Origin: https://github.com/mpruett/audiofile/commit/b62c902dd258125cac86cd2df21fc898035a43d3 --- diff --git a/libaudiofile/modules/SimpleModule.h b/libaudiofile/modules/SimpleModule.h index 03c6c69..bad85ad 100644 --- a/libaudiofile/modules/SimpleModule.h +++ b/libaudiofile/modules/SimpleModule.h @@ -123,7 +123,8 @@ struct signConverter typedef typename IntTypes::UnsignedType UnsignedType; static const int kScaleBits = (Format + 1) * CHAR_BIT - 1; - static const int kMinSignedValue = -1 << kScaleBits; + static const int kMaxSignedValue = (((1 << (kScaleBits - 1)) - 1) << 1) + 1; + static const int kMinSignedValue = -kMaxSignedValue - 1; struct signedToUnsigned : public std::unary_function { 0707010000018F000081A400000000000000000000000166968E4E00000853000000000000000000000000000000000000004F00000000gnome-music-46.1/subprojects/shared-modules/pygame/fluidsynth-no-rawmidi.patchdiff -rupN fluidsynth-1.1.6.orig/src/drivers/fluid_alsa.c fluidsynth-1.1.6/src/drivers/fluid_alsa.c --- fluidsynth-1.1.6.orig/src/drivers/fluid_alsa.c 2012-08-16 05:01:13.000000000 +0100 +++ fluidsynth-1.1.6/src/drivers/fluid_alsa.c 2017-02-28 21:26:57.033244239 +0000 @@ -96,7 +96,7 @@ struct fluid_alsa_formats_t fluid_alsa_f }; - +#if 0 /* * fluid_alsa_rawmidi_driver_t * @@ -119,7 +119,7 @@ fluid_midi_driver_t* new_fluid_alsa_rawm int delete_fluid_alsa_rawmidi_driver(fluid_midi_driver_t* p); static void fluid_alsa_midi_run(void* d); - +#endif /* * fluid_alsa_seq_driver_t @@ -535,7 +535,7 @@ static void fluid_alsa_audio_run_s16 (vo * */ - +#if 0 void fluid_alsa_rawmidi_driver_settings(fluid_settings_t* settings) { fluid_settings_register_str(settings, "midi.alsa.device", "default", 0, NULL, NULL); @@ -698,7 +698,7 @@ fluid_alsa_midi_run(void* d) } } } - +#endif /************************************************************** * * Alsa sequencer diff -rupN fluidsynth-1.1.6.orig/src/drivers/fluid_mdriver.c fluidsynth-1.1.6/src/drivers/fluid_mdriver.c --- fluidsynth-1.1.6.orig/src/drivers/fluid_mdriver.c 2012-08-16 05:01:13.000000000 +0100 +++ fluidsynth-1.1.6/src/drivers/fluid_mdriver.c 2017-02-28 21:24:43.887833321 +0000 @@ -24,11 +24,13 @@ /* ALSA */ #if ALSA_SUPPORT +#if 0 fluid_midi_driver_t* new_fluid_alsa_rawmidi_driver(fluid_settings_t* settings, handle_midi_event_func_t handler, void* event_handler_data); int delete_fluid_alsa_rawmidi_driver(fluid_midi_driver_t* p); void fluid_alsa_rawmidi_driver_settings(fluid_settings_t* settings); +#endif fluid_midi_driver_t* new_fluid_alsa_seq_driver(fluid_settings_t* settings, handle_midi_event_func_t handler, @@ -109,10 +111,12 @@ struct fluid_mdriver_definition_t fluid_ fluid_oss_midi_driver_settings }, #endif #if ALSA_SUPPORT +#if 0 { "alsa_raw", new_fluid_alsa_rawmidi_driver, delete_fluid_alsa_rawmidi_driver, fluid_alsa_rawmidi_driver_settings }, +#endif { "alsa_seq", new_fluid_alsa_seq_driver, delete_fluid_alsa_seq_driver, 07070100000190000081A400000000000000000000000166968E4E000011CB000000000000000000000000000000000000004A00000000gnome-music-46.1/subprojects/shared-modules/pygame/portmidi-no-java.patchdiff -rupN portmidi.orig/CMakeLists.txt portmidi/CMakeLists.txt --- portmidi.orig/CMakeLists.txt 2010-09-20 15:57:48.000000000 +0100 +++ portmidi/CMakeLists.txt 2017-03-03 13:50:58.494561245 +0000 @@ -71,7 +71,3 @@ add_subdirectory(pm_common) add_subdirectory(pm_test) add_subdirectory(pm_dylib) - -# Cannot figure out how to make an xcode Java application with CMake -add_subdirectory(pm_java) - diff -rupN portmidi.orig/pm_common/CMakeLists.txt portmidi/pm_common/CMakeLists.txt --- portmidi.orig/pm_common/CMakeLists.txt 2010-09-20 15:57:48.000000000 +0100 +++ portmidi/pm_common/CMakeLists.txt 2017-03-03 14:02:32.851938051 +0000 @@ -67,14 +67,6 @@ if(UNIX) message(STATUS "SYSROOT: " ${CMAKE_OSX_SYSROOT}) else(APPLE) # LINUX settings... - include(FindJNI) - message(STATUS "JAVA_JVM_LIB_PATH is " ${JAVA_JVM_LIB_PATH}) - message(STATUS "JAVA_INCLUDE_PATH is " ${JAVA_INCLUDE_PATH}) - message(STATUS "JAVA_INCLUDE_PATH2 is " ${JAVA_INCLUDE_PATH2}) - message(STATUS "JAVA_JVM_LIBRARY is " ${JAVA_JVM_LIBRARY}) - set(JAVA_INCLUDE_PATHS ${JAVA_INCLUDE_PATH} ${JAVA_INCLUDE_PATH2}) - # libjvm.so is found relative to JAVA_INCLUDE_PATH: - set(JAVAVM_LIB ${JAVA_JVM_LIBRARY}/libjvm.so) set(LINUXSRC pmlinuxalsa pmlinux finddefault) prepend_path(LIBSRC ../pm_linux/ ${LINUXSRC}) @@ -99,7 +91,6 @@ else(UNIX) set(PM_NEEDED_LIBS winmm.lib) endif(WIN32) endif(UNIX) -set(JNI_EXTRA_LIBS ${PM_NEEDED_LIBS} ${JAVA_JVM_LIBRARY}) # this completes the list of library sources by adding shared code list(APPEND LIBSRC pmutil portmidi) @@ -109,19 +100,11 @@ add_library(portmidi-static ${LIBSRC}) set_target_properties(portmidi-static PROPERTIES OUTPUT_NAME "portmidi_s") target_link_libraries(portmidi-static ${PM_NEEDED_LIBS}) -# define the jni library -include_directories(${JAVA_INCLUDE_PATHS}) - -set(JNISRC ${LIBSRC} ../pm_java/pmjni/pmjni.c) -add_library(pmjni SHARED ${JNISRC}) -target_link_libraries(pmjni ${JNI_EXTRA_LIBS}) -set_target_properties(pmjni PROPERTIES EXECUTABLE_EXTENSION "jnilib") - # install the libraries (Linux and Mac OS X command line) if(UNIX) - INSTALL(TARGETS portmidi-static pmjni - LIBRARY DESTINATION /usr/local/lib - ARCHIVE DESTINATION /usr/local/lib) + INSTALL(TARGETS portmidi-static + LIBRARY DESTINATION /app/lib + ARCHIVE DESTINATION /app/lib) # .h files installed by pm_dylib/CMakeLists.txt, so don't need them here # INSTALL(FILES portmidi.h ../porttime/porttime.h # DESTINATION /usr/local/include) diff -rupN portmidi.orig/pm_dylib/CMakeLists.txt portmidi/pm_dylib/CMakeLists.txt --- portmidi.orig/pm_dylib/CMakeLists.txt 2009-11-20 00:41:10.000000000 +0000 +++ portmidi/pm_dylib/CMakeLists.txt 2017-03-03 14:03:56.807104521 +0000 @@ -63,7 +63,6 @@ if(UNIX) message(STATUS "SYSROOT: " ${CMAKE_OSX_SYSROOT}) else(APPLE) # LINUX settings... - include(FindJNI) # message(STATUS "JAVA_JVM_LIB_PATH is " ${JAVA_JVM_LIB_PATH}) # message(STATUS "JAVA_INCLUDE_PATH is " ${JAVA_INCLUDE_PATH}) # note: should use JAVA_JVM_LIB_PATH, but it is not set properly @@ -75,12 +74,7 @@ if(UNIX) # JAVA_INCLUDE_PATH2; if no, then we need to make both JAVA_INCLUDE_PATH # and JAVA_INCLUDE_PATH2 set by user (will need clear documentation # because JAVA_INCLUDE_PATH2 is pretty obscure) - set(JAVA_INCLUDE_PATH ${JAVA_INCLUDE_PATH-UNKNOWN} - CACHE STRING "where to find Java SDK include directory") - set(JAVA_INCLUDE_PATHS ${JAVA_INCLUDE_PATH} ${JAVA_INCLUDE_PATH}/linux) - # libjvm.so is found relative to JAVA_INCLUDE_PATH: - set(JAVAVM_LIB ${JAVA_INCLUDE_PATH}/../jre/lib/i386/client/libjvm.so) - + set(LINUXSRC pmlinuxalsa pmlinux finddefault) prepend_path(LIBSRC ../pm_linux/ ${LINUXSRC}) list(APPEND LIBSRC ../porttime/ptlinux) @@ -106,7 +100,6 @@ else(UNIX) # message(STATUS "JAVAVM_LIB: " ${JAVAVM_LIB}) endif(WIN32) endif(UNIX) -set(JNI_EXTRA_LIBS ${PM_NEEDED_LIBS} ${JAVAVM_LIB}) # this completes the list of library sources by adding shared code set(SHARED_FILES pmutil portmidi) @@ -120,8 +113,8 @@ target_link_libraries(portmidi-dynamic $ # install the libraries (Linux and Mac OS X command line) if(UNIX) INSTALL(TARGETS portmidi-dynamic - LIBRARY DESTINATION /usr/local/lib - ARCHIVE DESTINATION /usr/local/lib) + LIBRARY DESTINATION /app/lib + ARCHIVE DESTINATION /app/lib) INSTALL(FILES ../pm_common/portmidi.h ../porttime/porttime.h - DESTINATION /usr/local/include) + DESTINATION /app/include) endif(UNIX) 07070100000191000081A400000000000000000000000166968E4E00000EB9000000000000000000000000000000000000004500000000gnome-music-46.1/subprojects/shared-modules/pygame/pygame-1.9.6.json{ "name": "pygame", "sources": [ { "type": "archive", "url": "https://files.pythonhosted.org/packages/0f/9c/78626be04e193c0624842090fe5555b3805c050dfaa81c8094d6441db2be/pygame-1.9.6.tar.gz", "sha256": "301c6428c0880ecd4a9e3951b80e539c33863b6ff356a443db1758de4f297957" } ], "buildsystem": "simple", "build-commands": [ "pip3 install --ignore-installed --no-deps --prefix=/app ." ], "build-options": { "env": { "PORTMIDI_INC_PORTTIME": "1", "PYGAME_EXTRA_BASE": "/app" }, "arch": { "aarch64": { "env": { "ORIGLIBDIRS": "/lib:/lib64:/lib/aarch64-linux-gnu" } }, "arm": { "env": { "ORIGLIBDIRS": "/lib:/lib/arm-linux-gnueabihf" } }, "i386": { "env": { "ORIGLIBDIRS": "/lib:/lib/i386-linux-gnu" } }, "x86_64": { "env": { "ORIGLIBDIRS": "/lib:/lib64:/lib/x86_64-linux-gnu" } } } }, "modules": [ "../SDL/SDL-1.2.15.json", "../SDL/SDL_image-1.2.12.json", "../SDL/SDL_ttf-2.0.11.json", "../smpeg/smpeg-0.4.5.json", "../SDL/SDL_mixer-1.2.12.json", { "name": "audiofile", "sources": [ { "type": "archive", "url": "http://audiofile.68k.org/audiofile-0.3.6.tar.gz", "sha256": "cdc60df19ab08bfe55344395739bb08f50fc15c92da3962fac334d3bff116965" }, { "type": "patch", "path": "audiofile-gcc6.patch" } ] }, { "name": "libmikmod", "sources": [ { "type": "archive", "url": "https://sourceforge.net/projects/mikmod/files/libmikmod/3.3.11.1/libmikmod-3.3.11.1.tar.gz", "sha256": "ad9d64dfc8f83684876419ea7cd4ff4a41d8bcd8c23ef37ecb3a200a16b46d19" } ] }, { "name": "fluidsynth", "buildsystem": "cmake-ninja", "config-opts": [ "-DCMAKE_BUILD_TYPE=Release" ], "sources": [ { "type": "archive", "url": "https://github.com/FluidSynth/fluidsynth/archive/refs/tags/v1.1.11.tar.gz", "sha256": "da8878ff374d12392eecf87e96bad8711b8e76a154c25a571dd8614d1af80de8" }, { "type": "patch", "path": "fluidsynth-no-rawmidi.patch" } ] }, { "name": "portmidi", "buildsystem": "cmake-ninja", "config-opts": [ "-DCMAKE_BUILD_TYPE=Release", "-DCMAKE_LIBRARY_OUTPUT_DIRECTORY:STRING=/app/lib", "-DCMAKE_ARCHIVE_OUTPUT_DIRECTORY:STRING=/app/lib", "-DCMAKE_RUNTIME_OUTPUT_DIRECTORY:STRING=/app/bin" ], "sources": [ { "type": "archive", "url": "http://downloads.sourceforge.net/project/portmedia/portmidi/217/portmidi-src-217.zip", "sha256": "08e9a892bd80bdb1115213fb72dc29a7bf2ff108b378180586aa65f3cfd42e0f" }, { "type": "patch", "path": "portmidi-no-java.patch" } ] } ] } 07070100000192000041ED00000000000000000000000266968E4E00000000000000000000000000000000000000000000003200000000gnome-music-46.1/subprojects/shared-modules/pygtk07070100000193000081A400000000000000000000000166968E4E000009BE000000000000000000000000000000000000003D00000000gnome-music-46.1/subprojects/shared-modules/pygtk/pygtk.json{ "name": "pygtk", "config-opts": [ "--disable-docs" ], "sources": [ { "type": "archive", "url": "https://download.gnome.org/sources/pygtk/2.24/pygtk-2.24.0.tar.gz", "sha256": "6e3e54fa6e65a69ac60bd58cb2e60a57f3346ac52efe995f3d10b6c38c972fd8" }, { "type": "patch", "path": "pygtk.patch" }, { "type": "shell", "commands": [ "cp -p /usr/share/automake-*/config.{sub,guess} ." ] } ], "cleanup": [ "/bin", "/include/pygtk-2.0", "*.la", "/lib/pkgconfig", "/lib/pygtk", "/share/gtk-doc", "/share/pygtk" ], "modules": [ { "name": "python2-pycairo", "buildsystem": "meson", "config-opts": [ "-Dpython=python2" ], "cleanup": [ "/include/pycairo", "/lib/pkgconfig", "/lib/python2.7/site-packages/cairo/include" ], "sources": [ { "type": "archive", "url": "https://github.com/pygobject/pycairo/releases/download/v1.18.2/pycairo-1.18.2.tar.gz", "sha256": "dcb853fd020729516e8828ad364084e752327d4cff8505d20b13504b32b16531" } ] }, { "name": "pygobject", "config-opts": [ "--disable-glibtest" ], "cleanup": [ "/bin", "/include/pygtk-2.0", "*.la", "/lib/pkgconfig", "/share/gtk-doc", "/share/pygobject" ], "sources": [ { "type": "archive", "url": "https://download.gnome.org/sources/pygobject/2.28/pygobject-2.28.7.tar.xz", "sha256": "bb9d25a3442ca7511385a7c01b057492095c263784ef31231ffe589d83a96a5a" } ] }, { "name": "libglade", "rm-configure": true, "cleanup": [ "/bin", "/include/libglade-2.0", "*.a", "*.la", "/lib/pkgconfig", "/share/gtk-doc", "/share/xml/libglade" ], "sources": [ { "type": "archive", "url": "https://download.gnome.org/sources/libglade/2.6/libglade-2.6.4.tar.gz", "sha256": "c41d189b68457976069073e48d6c14c183075d8b1d8077cb6dfb8b7c5097add3" }, { "type": "shell", "commands": [ "rm -f config.guess" ] }, { "type": "script", "commands": [ "autoreconf -fiv" ], "dest-filename": "autogen.sh" } ] } ] } 07070100000194000081A400000000000000000000000166968E4E00000393000000000000000000000000000000000000003E00000000gnome-music-46.1/subprojects/shared-modules/pygtk/pygtk.patchFrom 877164b6b70780468a31d8211f29421b6f34b0c8 Mon Sep 17 00:00:00 2001 From: Mathieu Bridon Date: Thu, 24 Oct 2019 22:58:36 +0200 Subject: [PATCH] Drop the PangoFont find_shaper virtual method This API has been removed from Pango 1.44.6, because it was completely unused by anything. However, PyGTK tries to bind everything, even unused API. Removing this from PyGTK means we can build it against the latest Pango again. --- pango.defs | 9 --------- 1 file changed, 9 deletions(-) diff --git a/pango.defs b/pango.defs index 2a79ecc..862667a 100644 --- a/pango.defs +++ b/pango.defs @@ -1391,15 +1391,6 @@ ) ) -(define-virtual find_shaper - (of-object "PangoFont") - (return-type "PangoEngineShape*") - (parameters - '("PangoLanguage*" "lang") - '("guint32" "ch") - ) -) - (define-virtual get_glyph_extents (of-object "PangoFont") (return-type "none") -- 2.21.0 07070100000195000041ED00000000000000000000000266968E4E00000000000000000000000000000000000000000000003600000000gnome-music-46.1/subprojects/shared-modules/python2.707070100000196000081A400000000000000000000000166968E4E000005D2000000000000000000000000000000000000004600000000gnome-music-46.1/subprojects/shared-modules/python2.7/python-2.7.json{ "name": "python-2.7", "sources": [ { "type": "archive", "url": "https://www.python.org/ftp/python/2.7.18/Python-2.7.18.tar.xz", "sha256": "b62c0e7937551d0cc02b8fd5cb0f544f9405bafc9a54d3808ed4594812edef43" } ], "config-opts": [ "--enable-shared", "--with-ensurepip=yes", "--with-system-expat", "--with-system-ffi", "--enable-loadable-sqlite-extensions", "--with-dbmliborder=gdbm", "--enable-unicode=ucs4" ], "post-install": [ /* Theres seem to be a permissions missmatch that causes the debug stripping to fail */ "chmod 644 $FLATPAK_DEST/lib/libpython2.7.so.1.0" ], "cleanup": [ "/bin/2to3*", "/bin/easy_install*", "/bin/idle*", "/bin/pydoc*", "/bin/python*-config", "/bin/pyvenv*", "/include", "/lib/pkgconfig", "/lib/python*/config", "/share", /* Test scripts */ "/lib/python*/test", "/lib/python*/*/test", "/lib/python*/*/tests", "/lib/python*/lib-tk/test", "/lib/python*/lib-dynload/_*_test.*.so", "/lib/python*/lib-dynload/_test*.*.so", /* Unused modules */ "/lib/python*/idlelib", "/lib/python*/tkinter*", "/lib/python*/turtle*", "/lib/python*/lib2to3*", /* Static library */ "/lib/python2.7/config/libpython2.7.a" ] } 07070100000197000041ED00000000000000000000000266968E4E00000000000000000000000000000000000000000000003000000000gnome-music-46.1/subprojects/shared-modules/qt407070100000198000081A400000000000000000000000166968E4E00000A5D000000000000000000000000000000000000004400000000gnome-music-46.1/subprojects/shared-modules/qt4/disable-sslv3.patchdiff -u -r qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslsocket_openssl.cpp qt-everywhere-opensource-src-4.8.7-nossl3/src/network/ssl/qsslsocket_openssl.cpp --- qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslsocket_openssl.cpp 2015-05-07 16:14:44.000000000 +0200 +++ qt-everywhere-opensource-src-4.8.7-nossl3/src/network/ssl/qsslsocket_openssl.cpp 2016-03-04 11:29:17.119300898 +0100 @@ -267,7 +267,11 @@ #endif break; case QSsl::SslV3: +#ifndef OPENSSL_NO_SSL3 ctx = q_SSL_CTX_new(client ? q_SSLv3_client_method() : q_SSLv3_server_method()); +#else + ctx = 0; // SSL 3 not supported by the system, but chosen deliberately -> error +#endif break; case QSsl::SecureProtocols: // SslV2 will be disabled below case QSsl::TlsV1SslV3: // SslV2 will be disabled below diff -u -r qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslsocket_openssl_symbols.cpp qt-everywhere-opensource-src-4.8.7-nossl3/src/network/ssl/qsslsocket_openssl_symbols.cpp --- qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslsocket_openssl_symbols.cpp 2015-05-07 16:14:44.000000000 +0200 +++ qt-everywhere-opensource-src-4.8.7-nossl3/src/network/ssl/qsslsocket_openssl_symbols.cpp 2016-03-04 11:28:52.806050135 +0100 @@ -228,13 +228,17 @@ #ifndef OPENSSL_NO_SSL2 DEFINEFUNC(const SSL_METHOD *, SSLv2_client_method, DUMMYARG, DUMMYARG, return 0, return) #endif +#ifndef OPENSSL_NO_SSL3 DEFINEFUNC(const SSL_METHOD *, SSLv3_client_method, DUMMYARG, DUMMYARG, return 0, return) +#endif DEFINEFUNC(const SSL_METHOD *, SSLv23_client_method, DUMMYARG, DUMMYARG, return 0, return) DEFINEFUNC(const SSL_METHOD *, TLSv1_client_method, DUMMYARG, DUMMYARG, return 0, return) #ifndef OPENSSL_NO_SSL2 DEFINEFUNC(const SSL_METHOD *, SSLv2_server_method, DUMMYARG, DUMMYARG, return 0, return) #endif +#ifndef OPENSSL_NO_SSL3 DEFINEFUNC(const SSL_METHOD *, SSLv3_server_method, DUMMYARG, DUMMYARG, return 0, return) +#endif DEFINEFUNC(const SSL_METHOD *, SSLv23_server_method, DUMMYARG, DUMMYARG, return 0, return) DEFINEFUNC(const SSL_METHOD *, TLSv1_server_method, DUMMYARG, DUMMYARG, return 0, return) #else @@ -822,13 +826,17 @@ #ifndef OPENSSL_NO_SSL2 RESOLVEFUNC(SSLv2_client_method) #endif +#ifndef OPENSSL_NO_SSL3 RESOLVEFUNC(SSLv3_client_method) +#endif RESOLVEFUNC(SSLv23_client_method) RESOLVEFUNC(TLSv1_client_method) #ifndef OPENSSL_NO_SSL2 RESOLVEFUNC(SSLv2_server_method) #endif +#ifndef OPENSSL_NO_SSL3 RESOLVEFUNC(SSLv3_server_method) +#endif RESOLVEFUNC(SSLv23_server_method) RESOLVEFUNC(TLSv1_server_method) RESOLVEFUNC(X509_NAME_entry_count) 07070100000199000081A400000000000000000000000166968E4E0000022D000000000000000000000000000000000000003F00000000gnome-music-46.1/subprojects/shared-modules/qt4/fixgcc11.patch--- a/tools/linguist/linguist/messagemodel.cpp 2021-06-07 12:18:43.713434493 +0200 +++ b/tools/linguist/linguist/messagemodel.cpp 2021-06-07 12:24:24.828016548 +0200 @@ -183,7 +183,7 @@ if (ContextItem *c = one->findContext(oc->context())) { for (int j = 0; j < oc->messageCount(); ++j) { MessageItem *m = oc->messageItem(j); - if (c->findMessage(m->text(), m->comment()) >= 0) + if (c->findMessage(m->text(), m->comment())) ++inBoth; } } 0707010000019A000081A400000000000000000000000166968E4E00000568000000000000000000000000000000000000003E00000000gnome-music-46.1/subprojects/shared-modules/qt4/fixgcc9.patch--- qt-everywhere-opensource-src-4.8.7/src/corelib/global/qglobal.h 2015-05-07 16:14:48.000000000 +0200 +++ qt-everywhere-opensource-src-4.8.7-gcc9/src/corelib/global/qglobal.h 2020-05-28 16:24:45.160340385 +0200 @@ -2482,22 +2482,22 @@ #endif /* Q_NO_TYPESAFE_FLAGS */ -#if defined(Q_CC_GNU) && !defined(Q_CC_INTEL) && !defined(Q_CC_RVCT) +#if (defined(Q_CC_GNU) && !defined(Q_CC_RVCT)) /* make use of typeof-extension */ template class QForeachContainer { public: - inline QForeachContainer(const T& t) : c(t), brk(0), i(c.begin()), e(c.end()) { } + inline QForeachContainer(const T& t) : c(t), i(c.begin()), e(c.end()), control(1) { } const T c; - int brk; typename T::const_iterator i, e; + int control; }; #define Q_FOREACH(variable, container) \ for (QForeachContainer<__typeof__(container)> _container_(container); \ - !_container_.brk && _container_.i != _container_.e; \ - __extension__ ({ ++_container_.brk; ++_container_.i; })) \ - for (variable = *_container_.i;; __extension__ ({--_container_.brk; break;})) + _container_.control && _container_.i != _container_.e; \ + ++_container_.i, _container_.control ^= 1) \ + for (variable = *_container_.i; _container_.control; _container_.control = 0) #else 0707010000019B000081A400000000000000000000000166968E4E00000CDF000000000000000000000000000000000000004700000000gnome-music-46.1/subprojects/shared-modules/qt4/qt4-4.8.7-minimal.json{ "name": "qt4", "config-opts": [ "-verbose", "-confirm-license", "-opensource", "-release", "-shared", "-no-static", "-fast", "-datadir", "/app/lib/qt4", "-importdir", "/app/lib/qt4/imports", "-plugindir", "/app/lib/qt4/plugins", "-translationdir", "/app/share/qt4/translations", "-accessibility", "-exceptions", "-fontconfig", "-glib", "-dbus-linked", "-openssl-linked", "-optimized-qmake", "-system-libjpeg", "-system-libpng", "-system-libtiff", "-system-proxies", "-system-zlib", "-no-cups", "-no-declarative", "-no-gtkstyle", "-no-javascript-jit", "-no-libmng", "-no-multimedia", "-no-nis", "-no-opengl", "-no-phonon", "-no-phonon-backend", "-no-qt3support", "-no-rpath", "-no-script", "-no-scripttools", "-no-sql-db2", "-no-sql-ibase", "-no-sql-mysql", "-no-sql-oci", "-no-sql-odbc", "-no-sql-psql", "-no-sql-sqlite", "-no-sql-sqlite2", "-no-sql-sqlite_symbian", "-no-sql-symsql", "-no-sql-tds", "-no-svg", "-no-webkit", "-no-xmlpatterns", "-nomake", "demos", "-nomake", "docs", "-nomake", "examples" ], "build-options": { "env": { "CXXFLAGS": "-std=gnu++98 -O2", "LD_LIBRARY_PATH": "/run/build/qt4/lib/" } }, "sources": [ { "type": "archive", "url": "https://download.qt.io/archive/qt/4.8/4.8.7/qt-everywhere-opensource-src-4.8.7.tar.gz", "sha256": "e2882295097e47fe089f8ac741a95fef47e0a73a3f3cdf21b56990638f626ea0" }, { "type": "patch", "path": "qt4-aarch64.patch" }, { "type": "patch", "path": "disable-sslv3.patch" }, { "type": "patch", "path": "fixgcc9.patch" }, { "type": "patch", "path": "fixgcc11.patch" }, { "type": "shell", "commands": [ "sed -i \"s|-O2|${CXXFLAGS}|\" mkspecs/common/{g++,gcc}-base.conf", "sed -i \"/^QMAKE_LFLAGS_RPATH/s| -Wl,-rpath,||g\" mkspecs/common/gcc-base-unix.conf", "sed -i \"/^QMAKE_LFLAGS\s/s|+=|+= ${LDFLAGS}|g\" mkspecs/common/gcc-base.conf" ] }, { "type": "file", "path": "qt4-openssl-1.1.patch" }, { "type": "shell", "commands": [ "echo -e '#include\nint main(){return OPENSSL_VERSION_NUMBER>=0x010100000L?0:1;}' >has_openssl_1_1.c", "gcc ${CFLAGS} has_openssl_1_1.c -o has_openssl_1_1", "if ./has_openssl_1_1; then patch -p1 -i qt4-openssl-1.1.patch; fi" ] } ], "cleanup": [ "/bin", "/include", "/lib/*.a", "/lib/*.la", "/lib/*.prl", "/lib/pkgconfig", "/lib/qt4/mkspecs", "/lib/qt4/q3porting.xml" ] } 0707010000019C000081A400000000000000000000000166968E4E0000AB14000000000000000000000000000000000000004200000000gnome-music-46.1/subprojects/shared-modules/qt4/qt4-aarch64.patchdiff -up qt-everywhere-opensource-src-4.8.7/include/QtCore/headers.pri.aarch64 qt-everywhere-opensource-src-4.8.7/include/QtCore/headers.pri --- qt-everywhere-opensource-src-4.8.7/include/QtCore/headers.pri.aarch64 2015-05-08 21:48:32.714057739 -0500 +++ qt-everywhere-opensource-src-4.8.7/include/QtCore/headers.pri 2015-05-08 21:53:21.088761971 -0500 @@ -1,3 +1,3 @@ -SYNCQT.HEADER_FILES = ../corelib/kernel/qabstracteventdispatcher.h ../corelib/kernel/qabstractitemmodel.h ../corelib/kernel/qbasictimer.h ../corelib/kernel/qcoreapplication.h ../corelib/kernel/qcoreevent.h ../corelib/kernel/qeventloop.h ../corelib/kernel/qfunctions_nacl.h ../corelib/kernel/qfunctions_vxworks.h ../corelib/kernel/qfunctions_wince.h ../corelib/kernel/qmath.h ../corelib/kernel/qmetaobject.h ../corelib/kernel/qmetatype.h ../corelib/kernel/qmimedata.h ../corelib/kernel/qobject.h ../corelib/kernel/qobjectcleanuphandler.h ../corelib/kernel/qobjectdefs.h ../corelib/kernel/qpointer.h ../corelib/kernel/qsharedmemory.h ../corelib/kernel/qsignalmapper.h ../corelib/kernel/qsocketnotifier.h ../corelib/kernel/qsystemsemaphore.h ../corelib/kernel/qtimer.h ../corelib/kernel/qtranslator.h ../corelib/kernel/qvariant.h ../corelib/animation/qabstractanimation.h ../corelib/animation/qanimationgroup.h ../corelib/animation/qparallelanimationgroup.h ../corelib/animation/qpauseanimation.h ../corelib/animation/qpropertyanimation.h ../corelib/animation/qsequentialanimationgroup.h ../corelib/animation/qvariantanimation.h ../corelib/arch/qatomic_alpha.h ../corelib/arch/qatomic_arch.h ../corelib/arch/qatomic_arm.h ../corelib/arch/qatomic_armv5.h ../corelib/arch/qatomic_armv6.h ../corelib/arch/qatomic_armv7.h ../corelib/arch/qatomic_avr32.h ../corelib/arch/qatomic_bfin.h ../corelib/arch/qatomic_bootstrap.h ../corelib/arch/qatomic_generic.h ../corelib/arch/qatomic_i386.h ../corelib/arch/qatomic_ia64.h ../corelib/arch/qatomic_integrity.h ../corelib/arch/qatomic_m68k.h ../corelib/arch/qatomic_macosx.h ../corelib/arch/qatomic_mips.h ../corelib/arch/qatomic_parisc.h ../corelib/arch/qatomic_powerpc.h ../corelib/arch/qatomic_s390.h ../corelib/arch/qatomic_sh.h ../corelib/arch/qatomic_sh4a.h ../corelib/arch/qatomic_sparc.h ../corelib/arch/qatomic_symbian.h ../corelib/arch/qatomic_vxworks.h ../corelib/arch/qatomic_windows.h ../corelib/arch/qatomic_windowsce.h ../corelib/arch/qatomic_x86_64.h ../corelib/tools/qalgorithms.h ../corelib/tools/qbitarray.h ../corelib/tools/qbytearray.h ../corelib/tools/qbytearraymatcher.h ../corelib/tools/qcache.h ../corelib/tools/qchar.h ../corelib/tools/qcontainerfwd.h ../corelib/tools/qcontiguouscache.h ../corelib/tools/qcryptographichash.h ../corelib/tools/qdatetime.h ../corelib/tools/qeasingcurve.h ../corelib/tools/qelapsedtimer.h ../corelib/tools/qhash.h ../corelib/tools/qiterator.h ../corelib/tools/qline.h ../corelib/tools/qlinkedlist.h ../corelib/tools/qlist.h ../corelib/tools/qlocale.h ../corelib/tools/qlocale_blackberry.h ../corelib/tools/qmap.h ../corelib/tools/qmargins.h ../corelib/tools/qpair.h ../corelib/tools/qpoint.h ../corelib/tools/qqueue.h ../corelib/tools/qrect.h ../corelib/tools/qregexp.h ../corelib/tools/qscopedpointer.h ../corelib/tools/qscopedvaluerollback.h ../corelib/tools/qset.h ../corelib/tools/qshareddata.h ../corelib/tools/qsharedpointer.h ../corelib/tools/qsharedpointer_impl.h ../corelib/tools/qsize.h ../corelib/tools/qstack.h ../corelib/tools/qstring.h ../corelib/tools/qstringbuilder.h ../corelib/tools/qstringlist.h ../corelib/tools/qstringmatcher.h ../corelib/tools/qtextboundaryfinder.h ../corelib/tools/qtimeline.h ../corelib/tools/qvarlengtharray.h ../corelib/tools/qvector.h ../corelib/plugin/qfactoryinterface.h ../corelib/plugin/qlibrary.h ../corelib/plugin/qplugin.h ../corelib/plugin/qpluginloader.h ../corelib/plugin/quuid.h ../corelib/xml/qxmlstream.h ../corelib/thread/qatomic.h ../corelib/thread/qbasicatomic.h ../corelib/thread/qmutex.h ../corelib/thread/qreadwritelock.h ../corelib/thread/qsemaphore.h ../corelib/thread/qthread.h ../corelib/thread/qthreadstorage.h ../corelib/thread/qwaitcondition.h ../corelib/statemachine/qabstractstate.h ../corelib/statemachine/qabstracttransition.h ../corelib/statemachine/qeventtransition.h ../corelib/statemachine/qfinalstate.h ../corelib/statemachine/qhistorystate.h ../corelib/statemachine/qsignaltransition.h ../corelib/statemachine/qstate.h ../corelib/statemachine/qstatemachine.h ../corelib/concurrent/qfuture.h ../corelib/concurrent/qfutureinterface.h ../corelib/concurrent/qfuturesynchronizer.h ../corelib/concurrent/qfuturewatcher.h ../corelib/concurrent/qrunnable.h ../corelib/concurrent/qtconcurrentcompilertest.h ../corelib/concurrent/qtconcurrentexception.h ../corelib/concurrent/qtconcurrentfilter.h ../corelib/concurrent/qtconcurrentfilterkernel.h ../corelib/concurrent/qtconcurrentfunctionwrappers.h ../corelib/concurrent/qtconcurrentiteratekernel.h ../corelib/concurrent/qtconcurrentmap.h ../corelib/concurrent/qtconcurrentmapkernel.h ../corelib/concurrent/qtconcurrentmedian.h ../corelib/concurrent/qtconcurrentreducekernel.h ../corelib/concurrent/qtconcurrentresultstore.h ../corelib/concurrent/qtconcurrentrun.h ../corelib/concurrent/qtconcurrentrunbase.h ../corelib/concurrent/qtconcurrentstoredfunctioncall.h ../corelib/concurrent/qtconcurrentthreadengine.h ../corelib/concurrent/qthreadpool.h ../corelib/io/qabstractfileengine.h ../corelib/io/qbuffer.h ../corelib/io/qdatastream.h ../corelib/io/qdebug.h ../corelib/io/qdir.h ../corelib/io/qdiriterator.h ../corelib/io/qfile.h ../corelib/io/qfileinfo.h ../corelib/io/qfilesystemwatcher.h ../corelib/io/qfsfileengine.h ../corelib/io/qiodevice.h ../corelib/io/qprocess.h ../corelib/io/qresource.h ../corelib/io/qsettings.h ../corelib/io/qtemporaryfile.h ../corelib/io/qtextstream.h ../corelib/io/qurl.h ../corelib/global/qconfig-dist.h ../corelib/global/qconfig-large.h ../corelib/global/qconfig-medium.h ../corelib/global/qconfig-minimal.h ../corelib/global/qconfig-nacl.h ../corelib/global/qconfig-small.h ../corelib/global/qendian.h ../corelib/global/qfeatures.h ../corelib/global/qglobal.h ../corelib/global/qlibraryinfo.h ../corelib/global/qnamespace.h ../corelib/global/qnumeric.h ../corelib/global/qt_windows.h ../corelib/global/qconfig.h ../corelib/codecs/qtextcodec.h ../corelib/codecs/qtextcodecplugin.h ../../include/QtCore/QtCore +SYNCQT.HEADER_FILES = ../corelib/kernel/qabstracteventdispatcher.h ../corelib/kernel/qabstractitemmodel.h ../corelib/kernel/qbasictimer.h ../corelib/kernel/qcoreapplication.h ../corelib/kernel/qcoreevent.h ../corelib/kernel/qeventloop.h ../corelib/kernel/qfunctions_nacl.h ../corelib/kernel/qfunctions_vxworks.h ../corelib/kernel/qfunctions_wince.h ../corelib/kernel/qmath.h ../corelib/kernel/qmetaobject.h ../corelib/kernel/qmetatype.h ../corelib/kernel/qmimedata.h ../corelib/kernel/qobject.h ../corelib/kernel/qobjectcleanuphandler.h ../corelib/kernel/qobjectdefs.h ../corelib/kernel/qpointer.h ../corelib/kernel/qsharedmemory.h ../corelib/kernel/qsignalmapper.h ../corelib/kernel/qsocketnotifier.h ../corelib/kernel/qsystemsemaphore.h ../corelib/kernel/qtimer.h ../corelib/kernel/qtranslator.h ../corelib/kernel/qvariant.h ../corelib/animation/qabstractanimation.h ../corelib/animation/qanimationgroup.h ../corelib/animation/qparallelanimationgroup.h ../corelib/animation/qpauseanimation.h ../corelib/animation/qpropertyanimation.h ../corelib/animation/qsequentialanimationgroup.h ../corelib/animation/qvariantanimation.h ../corelib/arch/qatomic_aarch64.h ../corelib/arch/qatomic_alpha.h ../corelib/arch/qatomic_arch.h ../corelib/arch/qatomic_arm.h ../corelib/arch/qatomic_armv5.h ../corelib/arch/qatomic_armv6.h ../corelib/arch/qatomic_armv7.h ../corelib/arch/qatomic_avr32.h ../corelib/arch/qatomic_bfin.h ../corelib/arch/qatomic_bootstrap.h ../corelib/arch/qatomic_generic.h ../corelib/arch/qatomic_i386.h ../corelib/arch/qatomic_ia64.h ../corelib/arch/qatomic_integrity.h ../corelib/arch/qatomic_m68k.h ../corelib/arch/qatomic_macosx.h ../corelib/arch/qatomic_mips.h ../corelib/arch/qatomic_parisc.h ../corelib/arch/qatomic_powerpc.h ../corelib/arch/qatomic_s390.h ../corelib/arch/qatomic_sh.h ../corelib/arch/qatomic_sh4a.h ../corelib/arch/qatomic_sparc.h ../corelib/arch/qatomic_symbian.h ../corelib/arch/qatomic_vxworks.h ../corelib/arch/qatomic_windows.h ../corelib/arch/qatomic_windowsce.h ../corelib/arch/qatomic_x86_64.h ../corelib/tools/qalgorithms.h ../corelib/tools/qbitarray.h ../corelib/tools/qbytearray.h ../corelib/tools/qbytearraymatcher.h ../corelib/tools/qcache.h ../corelib/tools/qchar.h ../corelib/tools/qcontainerfwd.h ../corelib/tools/qcontiguouscache.h ../corelib/tools/qcryptographichash.h ../corelib/tools/qdatetime.h ../corelib/tools/qeasingcurve.h ../corelib/tools/qelapsedtimer.h ../corelib/tools/qhash.h ../corelib/tools/qiterator.h ../corelib/tools/qline.h ../corelib/tools/qlinkedlist.h ../corelib/tools/qlist.h ../corelib/tools/qlocale.h ../corelib/tools/qlocale_blackberry.h ../corelib/tools/qmap.h ../corelib/tools/qmargins.h ../corelib/tools/qpair.h ../corelib/tools/qpoint.h ../corelib/tools/qqueue.h ../corelib/tools/qrect.h ../corelib/tools/qregexp.h ../corelib/tools/qscopedpointer.h ../corelib/tools/qscopedvaluerollback.h ../corelib/tools/qset.h ../corelib/tools/qshareddata.h ../corelib/tools/qsharedpointer.h ../corelib/tools/qsharedpointer_impl.h ../corelib/tools/qsize.h ../corelib/tools/qstack.h ../corelib/tools/qstring.h ../corelib/tools/qstringbuilder.h ../corelib/tools/qstringlist.h ../corelib/tools/qstringmatcher.h ../corelib/tools/qtextboundaryfinder.h ../corelib/tools/qtimeline.h ../corelib/tools/qvarlengtharray.h ../corelib/tools/qvector.h ../corelib/plugin/qfactoryinterface.h ../corelib/plugin/qlibrary.h ../corelib/plugin/qplugin.h ../corelib/plugin/qpluginloader.h ../corelib/plugin/quuid.h ../corelib/xml/qxmlstream.h ../corelib/thread/qatomic.h ../corelib/thread/qbasicatomic.h ../corelib/thread/qmutex.h ../corelib/thread/qreadwritelock.h ../corelib/thread/qsemaphore.h ../corelib/thread/qthread.h ../corelib/thread/qthreadstorage.h ../corelib/thread/qwaitcondition.h ../corelib/statemachine/qabstractstate.h ../corelib/statemachine/qabstracttransition.h ../corelib/statemachine/qeventtransition.h ../corelib/statemachine/qfinalstate.h ../corelib/statemachine/qhistorystate.h ../corelib/statemachine/qsignaltransition.h ../corelib/statemachine/qstate.h ../corelib/statemachine/qstatemachine.h ../corelib/concurrent/qfuture.h ../corelib/concurrent/qfutureinterface.h ../corelib/concurrent/qfuturesynchronizer.h ../corelib/concurrent/qfuturewatcher.h ../corelib/concurrent/qrunnable.h ../corelib/concurrent/qtconcurrentcompilertest.h ../corelib/concurrent/qtconcurrentexception.h ../corelib/concurrent/qtconcurrentfilter.h ../corelib/concurrent/qtconcurrentfilterkernel.h ../corelib/concurrent/qtconcurrentfunctionwrappers.h ../corelib/concurrent/qtconcurrentiteratekernel.h ../corelib/concurrent/qtconcurrentmap.h ../corelib/concurrent/qtconcurrentmapkernel.h ../corelib/concurrent/qtconcurrentmedian.h ../corelib/concurrent/qtconcurrentreducekernel.h ../corelib/concurrent/qtconcurrentresultstore.h ../corelib/concurrent/qtconcurrentrun.h ../corelib/concurrent/qtconcurrentrunbase.h ../corelib/concurrent/qtconcurrentstoredfunctioncall.h ../corelib/concurrent/qtconcurrentthreadengine.h ../corelib/concurrent/qthreadpool.h ../corelib/io/qabstractfileengine.h ../corelib/io/qbuffer.h ../corelib/io/qdatastream.h ../corelib/io/qdebug.h ../corelib/io/qdir.h ../corelib/io/qdiriterator.h ../corelib/io/qfile.h ../corelib/io/qfileinfo.h ../corelib/io/qfilesystemwatcher.h ../corelib/io/qfsfileengine.h ../corelib/io/qiodevice.h ../corelib/io/qprocess.h ../corelib/io/qresource.h ../corelib/io/qsettings.h ../corelib/io/qtemporaryfile.h ../corelib/io/qtextstream.h ../corelib/io/qurl.h ../corelib/global/qconfig-dist.h ../corelib/global/qconfig-large.h ../corelib/global/qconfig-medium.h ../corelib/global/qconfig-minimal.h ../corelib/global/qconfig-nacl.h ../corelib/global/qconfig-small.h ../corelib/global/qendian.h ../corelib/global/qfeatures.h ../corelib/global/qglobal.h ../corelib/global/qlibraryinfo.h ../corelib/global/qnamespace.h ../corelib/global/qnumeric.h ../corelib/global/qt_windows.h ../corelib/global/qconfig.h ../corelib/codecs/qtextcodec.h ../corelib/codecs/qtextcodecplugin.h ../../include/QtCore/QtCore SYNCQT.HEADER_CLASSES = ../../include/QtCore/QAbstractEventDispatcher ../../include/QtCore/QModelIndex ../../include/QtCore/QPersistentModelIndex ../../include/QtCore/QModelIndexList ../../include/QtCore/QAbstractItemModel ../../include/QtCore/QAbstractTableModel ../../include/QtCore/QAbstractListModel ../../include/QtCore/QBasicTimer ../../include/QtCore/QCoreApplication ../../include/QtCore/QtCleanUpFunction ../../include/QtCore/QEvent ../../include/QtCore/QTimerEvent ../../include/QtCore/QChildEvent ../../include/QtCore/QCustomEvent ../../include/QtCore/QDynamicPropertyChangeEvent ../../include/QtCore/QEventLoop ../../include/QtCore/QMetaMethod ../../include/QtCore/QMetaEnum ../../include/QtCore/QMetaProperty ../../include/QtCore/QMetaClassInfo ../../include/QtCore/QMetaType ../../include/QtCore/QMetaTypeId ../../include/QtCore/QMetaTypeId2 ../../include/QtCore/QMimeData ../../include/QtCore/QObjectList ../../include/QtCore/QObjectData ../../include/QtCore/QObject ../../include/QtCore/QObjectUserData ../../include/QtCore/QObjectCleanupHandler ../../include/QtCore/QGenericArgument ../../include/QtCore/QGenericReturnArgument ../../include/QtCore/QArgument ../../include/QtCore/QReturnArgument ../../include/QtCore/QMetaObject ../../include/QtCore/QMetaObjectAccessor ../../include/QtCore/QMetaObjectExtraData ../../include/QtCore/QPointer ../../include/QtCore/QSharedMemory ../../include/QtCore/QSignalMapper ../../include/QtCore/QSocketNotifier ../../include/QtCore/QSystemSemaphore ../../include/QtCore/QTimer ../../include/QtCore/QTranslator ../../include/QtCore/QVariant ../../include/QtCore/QVariantList ../../include/QtCore/QVariantMap ../../include/QtCore/QVariantHash ../../include/QtCore/QVariantComparisonHelper ../../include/QtCore/QAbstractAnimation ../../include/QtCore/QAnimationDriver ../../include/QtCore/QAnimationGroup ../../include/QtCore/QParallelAnimationGroup ../../include/QtCore/QPauseAnimation ../../include/QtCore/QPropertyAnimation ../../include/QtCore/QSequentialAnimationGroup ../../include/QtCore/QVariantAnimation ../../include/QtCore/QtAlgorithms ../../include/QtCore/QBitArray ../../include/QtCore/QBitRef ../../include/QtCore/QByteArray ../../include/QtCore/QByteRef ../../include/QtCore/QByteArrayMatcher ../../include/QtCore/QCache ../../include/QtCore/QLatin1Char ../../include/QtCore/QChar ../../include/QtCore/QtContainerFwd ../../include/QtCore/QContiguousCacheData ../../include/QtCore/QContiguousCacheTypedData ../../include/QtCore/QContiguousCache ../../include/QtCore/QCryptographicHash ../../include/QtCore/QDate ../../include/QtCore/QTime ../../include/QtCore/QDateTime ../../include/QtCore/QEasingCurve ../../include/QtCore/QElapsedTimer ../../include/QtCore/QHashData ../../include/QtCore/QHashDummyValue ../../include/QtCore/QHashDummyNode ../../include/QtCore/QHashNode ../../include/QtCore/QHash ../../include/QtCore/QMultiHash ../../include/QtCore/QHashIterator ../../include/QtCore/QMutableHashIterator ../../include/QtCore/QLine ../../include/QtCore/QLineF ../../include/QtCore/QLinkedListData ../../include/QtCore/QLinkedListNode ../../include/QtCore/QLinkedList ../../include/QtCore/QLinkedListIterator ../../include/QtCore/QMutableLinkedListIterator ../../include/QtCore/QListData ../../include/QtCore/QList ../../include/QtCore/QListIterator ../../include/QtCore/QMutableListIterator ../../include/QtCore/QSystemLocale ../../include/QtCore/QLocale ../../include/QtCore/QBBSystemLocaleData ../../include/QtCore/QMapData ../../include/QtCore/QMapNode ../../include/QtCore/QMapPayloadNode ../../include/QtCore/QMap ../../include/QtCore/QMultiMap ../../include/QtCore/QMapIterator ../../include/QtCore/QMutableMapIterator ../../include/QtCore/QMargins ../../include/QtCore/QPair ../../include/QtCore/QPoint ../../include/QtCore/QPointF ../../include/QtCore/QQueue ../../include/QtCore/QRect ../../include/QtCore/QRectF ../../include/QtCore/QRegExp ../../include/QtCore/QScopedPointerDeleter ../../include/QtCore/QScopedPointerArrayDeleter ../../include/QtCore/QScopedPointerPodDeleter ../../include/QtCore/QScopedPointer ../../include/QtCore/QScopedArrayPointer ../../include/QtCore/QScopedValueRollback ../../include/QtCore/QSet ../../include/QtCore/QSetIterator ../../include/QtCore/QMutableSetIterator ../../include/QtCore/QSharedData ../../include/QtCore/QSharedDataPointer ../../include/QtCore/QExplicitlySharedDataPointer ../../include/QtCore/QSharedPointer ../../include/QtCore/QWeakPointer ../../include/QtCore/QSize ../../include/QtCore/QSizeF ../../include/QtCore/QStack ../../include/QtCore/QStdWString ../../include/QtCore/QString ../../include/QtCore/QLatin1String ../../include/QtCore/QCharRef ../../include/QtCore/QConstString ../../include/QtCore/QStringRef ../../include/QtCore/QLatin1Literal ../../include/QtCore/QAbstractConcatenable ../../include/QtCore/QConcatenable ../../include/QtCore/QStringBuilder ../../include/QtCore/QStringListIterator ../../include/QtCore/QMutableStringListIterator ../../include/QtCore/QStringList ../../include/QtCore/QStringMatcher ../../include/QtCore/QTextBoundaryFinder ../../include/QtCore/QTimeLine ../../include/QtCore/QVarLengthArray ../../include/QtCore/QVectorData ../../include/QtCore/QVectorTypedData ../../include/QtCore/QVector ../../include/QtCore/QVectorIterator ../../include/QtCore/QMutableVectorIterator ../../include/QtCore/QFactoryInterface ../../include/QtCore/QLibrary ../../include/QtCore/QtPlugin ../../include/QtCore/QtPluginInstanceFunction ../../include/QtCore/QPluginLoader ../../include/QtCore/QUuid ../../include/QtCore/QXmlStreamStringRef ../../include/QtCore/QXmlStreamAttribute ../../include/QtCore/QXmlStreamAttributes ../../include/QtCore/QXmlStreamNamespaceDeclaration ../../include/QtCore/QXmlStreamNamespaceDeclarations ../../include/QtCore/QXmlStreamNotationDeclaration ../../include/QtCore/QXmlStreamNotationDeclarations ../../include/QtCore/QXmlStreamEntityDeclaration ../../include/QtCore/QXmlStreamEntityDeclarations ../../include/QtCore/QXmlStreamEntityResolver ../../include/QtCore/QXmlStreamReader ../../include/QtCore/QXmlStreamWriter ../../include/QtCore/QAtomicInt ../../include/QtCore/QAtomicPointer ../../include/QtCore/QBasicAtomicInt ../../include/QtCore/QBasicAtomicPointer ../../include/QtCore/QMutex ../../include/QtCore/QMutexLocker ../../include/QtCore/QMutexData ../../include/QtCore/QReadWriteLock ../../include/QtCore/QReadLocker ../../include/QtCore/QWriteLocker ../../include/QtCore/QSemaphore ../../include/QtCore/QThread ../../include/QtCore/QThreadStorageData ../../include/QtCore/QThreadStorage ../../include/QtCore/QWaitCondition ../../include/QtCore/QAbstractState ../../include/QtCore/QAbstractTransition ../../include/QtCore/QEventTransition ../../include/QtCore/QFinalState ../../include/QtCore/QHistoryState ../../include/QtCore/QSignalTransition ../../include/QtCore/QState ../../include/QtCore/QStateMachine ../../include/QtCore/QFuture ../../include/QtCore/QFutureIterator ../../include/QtCore/QMutableFutureIterator ../../include/QtCore/QFutureInterfaceBase ../../include/QtCore/QFutureInterface ../../include/QtCore/QFutureSynchronizer ../../include/QtCore/QFutureWatcherBase ../../include/QtCore/QFutureWatcher ../../include/QtCore/QRunnable ../../include/QtCore/QtConcurrentFilter ../../include/QtCore/QtConcurrentMap ../../include/QtCore/QtConcurrentRun ../../include/QtCore/QThreadPool ../../include/QtCore/QAbstractFileEngine ../../include/QtCore/QAbstractFileEngineHandler ../../include/QtCore/QAbstractFileEngineIterator ../../include/QtCore/QBuffer ../../include/QtCore/QDataStream ../../include/QtCore/QtDebug ../../include/QtCore/QDebug ../../include/QtCore/QNoDebug ../../include/QtCore/QDir ../../include/QtCore/QDirIterator ../../include/QtCore/QFile ../../include/QtCore/QFileInfo ../../include/QtCore/QFileInfoList ../../include/QtCore/QFileInfoListIterator ../../include/QtCore/QFileSystemWatcher ../../include/QtCore/QFSFileEngine ../../include/QtCore/QIODevice ../../include/QtCore/Q_PID ../../include/QtCore/QProcessEnvironment ../../include/QtCore/QProcess ../../include/QtCore/QResource ../../include/QtCore/QSettings ../../include/QtCore/QTemporaryFile ../../include/QtCore/QTextStream ../../include/QtCore/QTextStreamFunction ../../include/QtCore/QTextStreamManipulator ../../include/QtCore/QTS ../../include/QtCore/QTextIStream ../../include/QtCore/QTextOStream ../../include/QtCore/QUrl ../../include/QtCore/QtEndian ../../include/QtCore/QtGlobal ../../include/QtCore/QIntegerForSize ../../include/QtCore/QNoImplicitBoolCast ../../include/QtCore/Q_INT8 ../../include/QtCore/Q_UINT8 ../../include/QtCore/Q_INT16 ../../include/QtCore/Q_UINT16 ../../include/QtCore/Q_INT32 ../../include/QtCore/Q_UINT32 ../../include/QtCore/Q_INT64 ../../include/QtCore/Q_UINT64 ../../include/QtCore/Q_LLONG ../../include/QtCore/Q_ULLONG ../../include/QtCore/Q_LONG ../../include/QtCore/Q_ULONG ../../include/QtCore/QSysInfo ../../include/QtCore/QtMsgHandler ../../include/QtCore/QGlobalStatic ../../include/QtCore/QGlobalStaticDeleter ../../include/QtCore/QBool ../../include/QtCore/QTypeInfo ../../include/QtCore/QFlag ../../include/QtCore/QIncompatibleFlag ../../include/QtCore/QFlags ../../include/QtCore/QForeachContainer ../../include/QtCore/QForeachContainerBase ../../include/QtCore/QLibraryInfo ../../include/QtCore/Qt ../../include/QtCore/QInternal ../../include/QtCore/QCOORD ../../include/QtCore/QtConfig ../../include/QtCore/QTextCodec ../../include/QtCore/QTextEncoder ../../include/QtCore/QTextDecoder ../../include/QtCore/QTextCodecFactoryInterface ../../include/QtCore/QTextCodecPlugin SYNCQT.PRIVATE_HEADER_FILES = ../corelib/kernel/qabstracteventdispatcher_p.h ../corelib/kernel/qabstractitemmodel_p.h ../corelib/kernel/qcore_mac_p.h ../corelib/kernel/qcore_symbian_p.h ../corelib/kernel/qcore_unix_p.h ../corelib/kernel/qcoreapplication_p.h ../corelib/kernel/qcorecmdlineargs_p.h ../corelib/kernel/qcoreglobaldata_p.h ../corelib/kernel/qcrashhandler_p.h ../corelib/kernel/qeventdispatcher_blackberry_p.h ../corelib/kernel/qeventdispatcher_glib_p.h ../corelib/kernel/qeventdispatcher_symbian_p.h ../corelib/kernel/qeventdispatcher_unix_p.h ../corelib/kernel/qeventdispatcher_win_p.h ../corelib/kernel/qfunctions_p.h ../corelib/kernel/qmetaobject_p.h ../corelib/kernel/qobject_p.h ../corelib/kernel/qsharedmemory_p.h ../corelib/kernel/qsystemerror_p.h ../corelib/kernel/qsystemsemaphore_p.h ../corelib/kernel/qtranslator_p.h ../corelib/kernel/qvariant_p.h ../corelib/kernel/qwineventnotifier_p.h ../corelib/animation/qabstractanimation_p.h ../corelib/animation/qanimationgroup_p.h ../corelib/animation/qparallelanimationgroup_p.h ../corelib/animation/qpropertyanimation_p.h ../corelib/animation/qsequentialanimationgroup_p.h ../corelib/animation/qvariantanimation_p.h ../corelib/tools/qbytedata_p.h ../corelib/tools/qdatetime_p.h ../corelib/tools/qharfbuzz_p.h ../corelib/tools/qlocale_data_p.h ../corelib/tools/qlocale_p.h ../corelib/tools/qlocale_tools_p.h ../corelib/tools/qpodlist_p.h ../corelib/tools/qringbuffer_p.h ../corelib/tools/qscopedpointer_p.h ../corelib/tools/qsimd_p.h ../corelib/tools/qtools_p.h ../corelib/tools/qunicodetables_p.h ../corelib/plugin/qelfparser_p.h ../corelib/plugin/qfactoryloader_p.h ../corelib/plugin/qlibrary_p.h ../corelib/plugin/qsystemlibrary_p.h ../corelib/xml/qxmlstream_p.h ../corelib/xml/qxmlutils_p.h ../corelib/thread/qmutex_p.h ../corelib/thread/qmutexpool_p.h ../corelib/thread/qorderedmutexlocker_p.h ../corelib/thread/qreadwritelock_p.h ../corelib/thread/qthread_p.h ../corelib/statemachine/qabstractstate_p.h ../corelib/statemachine/qabstracttransition_p.h ../corelib/statemachine/qeventtransition_p.h ../corelib/statemachine/qhistorystate_p.h ../corelib/statemachine/qsignaleventgenerator_p.h ../corelib/statemachine/qsignaltransition_p.h ../corelib/statemachine/qstate_p.h ../corelib/statemachine/qstatemachine_p.h ../corelib/concurrent/qfutureinterface_p.h ../corelib/concurrent/qfuturewatcher_p.h ../corelib/concurrent/qthreadpool_p.h ../corelib/io/qabstractfileengine_p.h ../corelib/io/qdatastream_p.h ../corelib/io/qdataurl_p.h ../corelib/io/qdir_p.h ../corelib/io/qfile_p.h ../corelib/io/qfileinfo_p.h ../corelib/io/qfilesystemengine_p.h ../corelib/io/qfilesystementry_p.h ../corelib/io/qfilesystemiterator_p.h ../corelib/io/qfilesystemmetadata_p.h ../corelib/io/qfilesystemwatcher_dnotify_p.h ../corelib/io/qfilesystemwatcher_fsevents_p.h ../corelib/io/qfilesystemwatcher_inotify_p.h ../corelib/io/qfilesystemwatcher_kqueue_p.h ../corelib/io/qfilesystemwatcher_p.h ../corelib/io/qfilesystemwatcher_symbian_p.h ../corelib/io/qfilesystemwatcher_win_p.h ../corelib/io/qfsfileengine_iterator_p.h ../corelib/io/qfsfileengine_p.h ../corelib/io/qiodevice_p.h ../corelib/io/qnoncontiguousbytedevice_p.h ../corelib/io/qprocess_p.h ../corelib/io/qresource_iterator_p.h ../corelib/io/qresource_p.h ../corelib/io/qsettings_p.h ../corelib/io/qtldurl_p.h ../corelib/io/qurltlds_p.h ../corelib/io/qwindowspipewriter_p.h ../corelib/global/qnumeric_p.h ../corelib/global/qt_pch.h ../corelib/codecs/qfontlaocodec_p.h ../corelib/codecs/qiconvcodec_p.h ../corelib/codecs/qisciicodec_p.h ../corelib/codecs/qlatincodec_p.h ../corelib/codecs/qsimplecodec_p.h ../corelib/codecs/qtextcodec_p.h ../corelib/codecs/qtsciicodec_p.h ../corelib/codecs/qutfcodec_p.h diff -up qt-everywhere-opensource-src-4.8.7/include/QtCore/qatomic_aarch64.h.aarch64 qt-everywhere-opensource-src-4.8.7/include/QtCore/qatomic_aarch64.h --- qt-everywhere-opensource-src-4.8.7/include/QtCore/qatomic_aarch64.h.aarch64 2015-05-08 21:48:32.715057744 -0500 +++ qt-everywhere-opensource-src-4.8.7/include/QtCore/qatomic_aarch64.h 2015-05-08 21:48:32.715057744 -0500 @@ -0,0 +1 @@ +#include "../../src/corelib/arch/qatomic_aarch64.h" diff -up qt-everywhere-opensource-src-4.8.7/src/3rdparty/javascriptcore/JavaScriptCore/JavaScriptCore.pri.aarch64 qt-everywhere-opensource-src-4.8.7/src/3rdparty/javascriptcore/JavaScriptCore/JavaScriptCore.pri --- qt-everywhere-opensource-src-4.8.7/src/3rdparty/javascriptcore/JavaScriptCore/JavaScriptCore.pri.aarch64 2015-05-07 09:14:47.000000000 -0500 +++ qt-everywhere-opensource-src-4.8.7/src/3rdparty/javascriptcore/JavaScriptCore/JavaScriptCore.pri 2015-05-08 21:48:33.268061013 -0500 @@ -66,6 +66,12 @@ contains(JAVASCRIPTCORE_JIT,no) { } } +# Hack around AARCH64 fail wrt JSValue.h +equals(QT_ARCH, aarch64) { + message("JavaScriptCore aarch64 hack: -fpermissive") + QMAKE_CXXFLAGS += -fpermissive +} + wince* { INCLUDEPATH += $$QT_SOURCE_TREE/src/3rdparty/ce-compat SOURCES += $$QT_SOURCE_TREE/src/3rdparty/ce-compat/ce_time.c diff -up qt-everywhere-opensource-src-4.8.7/src/3rdparty/webkit/Source/JavaScriptCore/JavaScriptCore.pri.aarch64 qt-everywhere-opensource-src-4.8.7/src/3rdparty/webkit/Source/JavaScriptCore/JavaScriptCore.pri --- qt-everywhere-opensource-src-4.8.7/src/3rdparty/webkit/Source/JavaScriptCore/JavaScriptCore.pri.aarch64 2015-05-07 09:14:45.000000000 -0500 +++ qt-everywhere-opensource-src-4.8.7/src/3rdparty/webkit/Source/JavaScriptCore/JavaScriptCore.pri 2015-05-08 21:48:33.268061013 -0500 @@ -63,6 +63,12 @@ contains (CONFIG, text_breaking_with_icu DEFINES += WTF_USE_QT_ICU_TEXT_BREAKING=1 } +# Hack around AARCH64 fail wrt JSValue.h +equals(QT_ARCH, aarch64) { + message("JavaScriptCore aarch64 hack: -fpermissive") + QMAKE_CXXFLAGS += -fpermissive +} + wince* { INCLUDEPATH += $$QT_SOURCE_TREE/src/3rdparty/ce-compat INCLUDEPATH += $$PWD/../JavaScriptCore/os-win32 diff -up qt-everywhere-opensource-src-4.8.7/src/3rdparty/webkit/Source/JavaScriptCore/wtf/Platform.h.aarch64 qt-everywhere-opensource-src-4.8.7/src/3rdparty/webkit/Source/JavaScriptCore/wtf/Platform.h --- qt-everywhere-opensource-src-4.8.7/src/3rdparty/webkit/Source/JavaScriptCore/wtf/Platform.h.aarch64 2015-05-07 09:14:45.000000000 -0500 +++ qt-everywhere-opensource-src-4.8.7/src/3rdparty/webkit/Source/JavaScriptCore/wtf/Platform.h 2015-05-08 21:48:33.269061019 -0500 @@ -369,7 +369,16 @@ #endif /* ARM */ -#if CPU(ARM) || CPU(MIPS) || CPU(SH4) +/* CPU(AARCH64) - AArch64 */ +#if defined(__aarch64__) +#define WTF_CPU_AARCH64 1 +#if defined(__AARCH64EB__) +#define WTF_CPU_BIG_ENDIAN 1 +#endif +#endif + +/* Not sure about this one, qt5-qtwebkit doesn't include it -- rex */ +#if CPU(ARM) || CPU(MIPS) || CPU(SH4) || CPU(AARCH64) #define WTF_CPU_NEEDS_ALIGNED_ACCESS 1 #endif @@ -1003,7 +1012,7 @@ || CPU(SPARC64) \ || CPU(S390X) \ || CPU(PPC64) \ - || CPU(MIPS64) + || CPU(MIPS64) || CPU(AARCH64) #define WTF_USE_JSVALUE64 1 #else #define WTF_USE_JSVALUE32_64 1 diff -up qt-everywhere-opensource-src-4.8.7/src/corelib/arch/aarch64/qatomic_aarch64.cpp.aarch64 qt-everywhere-opensource-src-4.8.7/src/corelib/arch/aarch64/qatomic_aarch64.cpp --- qt-everywhere-opensource-src-4.8.7/src/corelib/arch/aarch64/qatomic_aarch64.cpp.aarch64 2015-05-08 21:48:33.269061019 -0500 +++ qt-everywhere-opensource-src-4.8.7/src/corelib/arch/aarch64/qatomic_aarch64.cpp 2015-05-08 21:48:33.269061019 -0500 @@ -0,0 +1,70 @@ +/**************************************************************************** +** +** Copyright (C) 2012, 2013 Digia Plc and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/legal +** +** This file is part of the QtCore module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information +** use the contact form at http://qt.digia.com/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Digia gives you certain additional +** rights. These rights are described in the Digia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include + +#include +#ifdef _POSIX_PRIORITY_SCHEDULING +# include +#endif +#include + +QT_BEGIN_NAMESPACE + +QT_USE_NAMESPACE + +Q_CORE_EXPORT void qt_atomic_yield(int *count) +{ +#ifdef _POSIX_PRIORITY_SCHEDULING + if((*count)++ < 50) { + sched_yield(); + } else +#endif + { + struct timespec tm; + tm.tv_sec = 0; + tm.tv_nsec = 2000001; + nanosleep(&tm, NULL); + *count = 0; + } +} + +QT_END_NAMESPACE diff -up qt-everywhere-opensource-src-4.8.7/src/corelib/arch/arch.pri.aarch64 qt-everywhere-opensource-src-4.8.7/src/corelib/arch/arch.pri --- qt-everywhere-opensource-src-4.8.7/src/corelib/arch/arch.pri.aarch64 2015-05-07 09:14:48.000000000 -0500 +++ qt-everywhere-opensource-src-4.8.7/src/corelib/arch/arch.pri 2015-05-08 21:48:33.270061025 -0500 @@ -31,7 +31,9 @@ integrity:HEADERS += arch/qatomic_integr arch/qatomic_s390.h \ arch/qatomic_x86_64.h \ arch/qatomic_sh.h \ - arch/qatomic_sh4a.h + arch/qatomic_sh4a.h \ + arch/qatomic_aarch64.h \ + QT_ARCH_CPP = $$QT_SOURCE_TREE/src/corelib/arch/$$QT_ARCH DEPENDPATH += $$QT_ARCH_CPP diff -up qt-everywhere-opensource-src-4.8.7/src/corelib/arch/qatomic_aarch64.h.aarch64 qt-everywhere-opensource-src-4.8.7/src/corelib/arch/qatomic_aarch64.h --- qt-everywhere-opensource-src-4.8.7/src/corelib/arch/qatomic_aarch64.h.aarch64 2015-05-08 21:48:33.270061025 -0500 +++ qt-everywhere-opensource-src-4.8.7/src/corelib/arch/qatomic_aarch64.h 2015-05-08 21:48:33.270061025 -0500 @@ -0,0 +1,335 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/legal +** +** This file is part of the QtCore module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information +** use the contact form at http://qt.digia.com/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Digia gives you certain additional +** rights. These rights are described in the Digia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QATOMIC_AARCH64_H +#define QATOMIC_AARCH64_H + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +#define Q_ATOMIC_INT_REFERENCE_COUNTING_IS_ALWAYS_NATIVE + +inline bool QBasicAtomicInt::isReferenceCountingNative() +{ return true; } +inline bool QBasicAtomicInt::isReferenceCountingWaitFree() +{ return false; } + +#define Q_ATOMIC_INT_TEST_AND_SET_IS_ALWAYS_NATIVE + +inline bool QBasicAtomicInt::isTestAndSetNative() +{ return true; } +inline bool QBasicAtomicInt::isTestAndSetWaitFree() +{ return false; } + +#define Q_ATOMIC_INT_FETCH_AND_STORE_IS_ALWAYS_NATIVE + +inline bool QBasicAtomicInt::isFetchAndStoreNative() +{ return true; } +inline bool QBasicAtomicInt::isFetchAndStoreWaitFree() +{ return false; } + +#define Q_ATOMIC_INT_FETCH_AND_ADD_IS_ALWAYS_NATIVE + +inline bool QBasicAtomicInt::isFetchAndAddNative() +{ return true; } +inline bool QBasicAtomicInt::isFetchAndAddWaitFree() +{ return false; } + +#define Q_ATOMIC_POINTER_TEST_AND_SET_IS_ALWAYS_NATIVE + +template +Q_INLINE_TEMPLATE bool QBasicAtomicPointer::isTestAndSetNative() +{ return true; } +template +Q_INLINE_TEMPLATE bool QBasicAtomicPointer::isTestAndSetWaitFree() +{ return false; } + +#define Q_ATOMIC_POINTER_FETCH_AND_STORE_IS_ALWAYS_NATIVE + +template +Q_INLINE_TEMPLATE bool QBasicAtomicPointer::isFetchAndStoreNative() +{ return true; } +template +Q_INLINE_TEMPLATE bool QBasicAtomicPointer::isFetchAndStoreWaitFree() +{ return false; } + +#define Q_ATOMIC_POINTER_FETCH_AND_ADD_IS_ALWAYS_NATIVE + +template +Q_INLINE_TEMPLATE bool QBasicAtomicPointer::isFetchAndAddNative() +{ return true; } +template +Q_INLINE_TEMPLATE bool QBasicAtomicPointer::isFetchAndAddWaitFree() +{ return false; } + +#ifndef Q_DATA_MEMORY_BARRIER +# define Q_DATA_MEMORY_BARRIER asm volatile("dmb sy\n":::"memory") +#endif +#ifndef Q_COMPILER_MEMORY_BARRIER +# define Q_COMPILER_MEMORY_BARRIER asm volatile("":::"memory") +#endif + +inline bool QBasicAtomicInt::ref() +{ + int newValue; + + Q_COMPILER_MEMORY_BARRIER; + newValue = __atomic_add_fetch(&_q_value, 1, __ATOMIC_ACQ_REL); + Q_COMPILER_MEMORY_BARRIER; + + return newValue != 0; +} + +inline bool QBasicAtomicInt::deref() +{ + int newValue; + + Q_COMPILER_MEMORY_BARRIER; + newValue = __atomic_sub_fetch(&_q_value, 1, __ATOMIC_ACQ_REL); + Q_COMPILER_MEMORY_BARRIER; + + return newValue != 0; +} + +inline bool QBasicAtomicInt::testAndSetRelaxed(int expectedValue, int newValue) +{ + bool val; + + Q_COMPILER_MEMORY_BARRIER; + val = __atomic_compare_exchange_n (&_q_value, &expectedValue, newValue, + false, __ATOMIC_RELAXED, __ATOMIC_RELAXED); + Q_COMPILER_MEMORY_BARRIER; + return val; +} + +inline int QBasicAtomicInt::fetchAndStoreRelaxed(int newValue) +{ + int val; + Q_COMPILER_MEMORY_BARRIER; + val = __atomic_exchange_n(&_q_value, newValue, __ATOMIC_RELAXED); + Q_COMPILER_MEMORY_BARRIER; + return val; +} + +inline int QBasicAtomicInt::fetchAndAddRelaxed(int valueToAdd) +{ + int val; + Q_COMPILER_MEMORY_BARRIER; + val = __atomic_fetch_add(&_q_value, valueToAdd, __ATOMIC_RELAXED); + Q_COMPILER_MEMORY_BARRIER; + return val; +} + +template +Q_INLINE_TEMPLATE bool QBasicAtomicPointer::testAndSetRelaxed(T *expectedValue, T *newValue) +{ + bool val; + Q_COMPILER_MEMORY_BARRIER; + val = __atomic_compare_exchange_n (&_q_value, &expectedValue, newValue, + false, __ATOMIC_RELAXED, __ATOMIC_RELAXED); + Q_COMPILER_MEMORY_BARRIER; + return val; +} + +template +Q_INLINE_TEMPLATE T *QBasicAtomicPointer::fetchAndStoreRelaxed(T *newValue) +{ + T *val; + Q_COMPILER_MEMORY_BARRIER; + val = __atomic_exchange_n(&_q_value, newValue, __ATOMIC_RELAXED); + Q_COMPILER_MEMORY_BARRIER; + return val; +} + +template +Q_INLINE_TEMPLATE T *QBasicAtomicPointer::fetchAndAddRelaxed(qptrdiff valueToAdd) +{ + T *val; + Q_COMPILER_MEMORY_BARRIER; + val = __atomic_fetch_add(&_q_value, valueToAdd, __ATOMIC_RELAXED); + Q_COMPILER_MEMORY_BARRIER; + return val; +} + +inline bool QBasicAtomicInt::testAndSetAcquire(int expectedValue, int newValue) +{ + bool returnValue = testAndSetRelaxed(expectedValue, newValue); + Q_DATA_MEMORY_BARRIER; + return returnValue; +} + +inline bool QBasicAtomicInt::testAndSetRelease(int expectedValue, int newValue) +{ + Q_DATA_MEMORY_BARRIER; + return testAndSetRelaxed(expectedValue, newValue); +} + +inline bool QBasicAtomicInt::testAndSetOrdered(int expectedValue, int newValue) +{ + Q_DATA_MEMORY_BARRIER; + bool returnValue = testAndSetRelaxed(expectedValue, newValue); + Q_COMPILER_MEMORY_BARRIER; + return returnValue; +} + +inline int QBasicAtomicInt::fetchAndStoreAcquire(int newValue) +{ + int returnValue = fetchAndStoreRelaxed(newValue); + Q_DATA_MEMORY_BARRIER; + return returnValue; +} + +inline int QBasicAtomicInt::fetchAndStoreRelease(int newValue) +{ + Q_DATA_MEMORY_BARRIER; + return fetchAndStoreRelaxed(newValue); +} + +inline int QBasicAtomicInt::fetchAndStoreOrdered(int newValue) +{ + Q_DATA_MEMORY_BARRIER; + int returnValue = fetchAndStoreRelaxed(newValue); + Q_COMPILER_MEMORY_BARRIER; + return returnValue; +} + +inline int QBasicAtomicInt::fetchAndAddAcquire(int valueToAdd) +{ + int returnValue = fetchAndAddRelaxed(valueToAdd); + Q_DATA_MEMORY_BARRIER; + return returnValue; +} + +inline int QBasicAtomicInt::fetchAndAddRelease(int valueToAdd) +{ + Q_DATA_MEMORY_BARRIER; + return fetchAndAddRelaxed(valueToAdd); +} + +inline int QBasicAtomicInt::fetchAndAddOrdered(int valueToAdd) +{ + Q_DATA_MEMORY_BARRIER; + int returnValue = fetchAndAddRelaxed(valueToAdd); + Q_COMPILER_MEMORY_BARRIER; + return returnValue; +} + +template +Q_INLINE_TEMPLATE bool QBasicAtomicPointer::testAndSetAcquire(T *expectedValue, T *newValue) +{ + bool returnValue = testAndSetRelaxed(expectedValue, newValue); + Q_DATA_MEMORY_BARRIER; + return returnValue; +} + +template +Q_INLINE_TEMPLATE bool QBasicAtomicPointer::testAndSetRelease(T *expectedValue, T *newValue) +{ + Q_DATA_MEMORY_BARRIER; + return testAndSetRelaxed(expectedValue, newValue); +} + +template +Q_INLINE_TEMPLATE bool QBasicAtomicPointer::testAndSetOrdered(T *expectedValue, T *newValue) +{ + Q_DATA_MEMORY_BARRIER; + bool returnValue = testAndSetAcquire(expectedValue, newValue); + Q_COMPILER_MEMORY_BARRIER; + return returnValue; +} + +template +Q_INLINE_TEMPLATE T *QBasicAtomicPointer::fetchAndStoreAcquire(T *newValue) +{ + T *returnValue = fetchAndStoreRelaxed(newValue); + Q_DATA_MEMORY_BARRIER; + return returnValue; +} + +template +Q_INLINE_TEMPLATE T *QBasicAtomicPointer::fetchAndStoreRelease(T *newValue) +{ + Q_DATA_MEMORY_BARRIER; + return fetchAndStoreRelaxed(newValue); +} + +template +Q_INLINE_TEMPLATE T *QBasicAtomicPointer::fetchAndStoreOrdered(T *newValue) +{ + Q_DATA_MEMORY_BARRIER; + T *returnValue = fetchAndStoreRelaxed(newValue); + Q_COMPILER_MEMORY_BARRIER; + return returnValue; +} + +template +Q_INLINE_TEMPLATE T *QBasicAtomicPointer::fetchAndAddAcquire(qptrdiff valueToAdd) +{ + T *returnValue = fetchAndAddRelaxed(valueToAdd); + Q_DATA_MEMORY_BARRIER; + return returnValue; +} + +template +Q_INLINE_TEMPLATE T *QBasicAtomicPointer::fetchAndAddRelease(qptrdiff valueToAdd) +{ + Q_DATA_MEMORY_BARRIER; + return fetchAndAddRelaxed(valueToAdd); +} + +template +Q_INLINE_TEMPLATE T *QBasicAtomicPointer::fetchAndAddOrdered(qptrdiff valueToAdd) +{ + Q_DATA_MEMORY_BARRIER; + T *returnValue = fetchAndAddRelaxed(valueToAdd); + Q_COMPILER_MEMORY_BARRIER; + return returnValue; +} + +#undef Q_DATA_MEMORY_BARRIER +#undef Q_COMPILER_MEMORY_BARRIER + +QT_END_NAMESPACE + +QT_END_HEADER + +#endif // QATOMIC_AARCH64_H diff -up qt-everywhere-opensource-src-4.8.7/src/corelib/arch/qatomic_arch.h.aarch64 qt-everywhere-opensource-src-4.8.7/src/corelib/arch/qatomic_arch.h --- qt-everywhere-opensource-src-4.8.7/src/corelib/arch/qatomic_arch.h.aarch64 2015-05-07 09:14:48.000000000 -0500 +++ qt-everywhere-opensource-src-4.8.7/src/corelib/arch/qatomic_arch.h 2015-05-08 21:48:33.271061031 -0500 @@ -94,6 +94,8 @@ QT_BEGIN_HEADER # include "QtCore/qatomic_sh4a.h" #elif defined(QT_ARCH_NACL) # include "QtCore/qatomic_generic.h" +#elif defined(QT_ARCH_AARCH64) +# include "QtCore/qatomic_aarch64.h" #else # error "Qt has not been ported to this architecture" #endif 0707010000019D000081A400000000000000000000000166968E4E0000406A000000000000000000000000000000000000004600000000gnome-music-46.1/subprojects/shared-modules/qt4/qt4-openssl-1.1.patchDescription: Compile with openssl-1.1.0 * Most changes are related to openssl structures are now opaque. * The network/ssl threading setup has been disabled because the old openssl threading model has been removed and is apparently no longer needed. * A number of new functions had to be imported (see changes to src/network/ssl/qsslsocket_openssl_symbols.cpp) Author: Gert Wollny Last-Update: 2016-06-28 Bug-Debian: http://bugs.debian.org/828522 --- a/src/network/ssl/qsslcertificate.cpp +++ b/src/network/ssl/qsslcertificate.cpp @@ -259,10 +259,10 @@ QByteArray QSslCertificate::version() const { QMutexLocker lock(QMutexPool::globalInstanceGet(d.data())); - if (d->versionString.isEmpty() && d->x509) + if (d->versionString.isEmpty() && d->x509) { d->versionString = - QByteArray::number(qlonglong(q_ASN1_INTEGER_get(d->x509->cert_info->version)) + 1); - + QByteArray::number(qlonglong(q_X509_get_version(d->x509)) + 1); + } return d->versionString; } @@ -276,7 +276,7 @@ { QMutexLocker lock(QMutexPool::globalInstanceGet(d.data())); if (d->serialNumberString.isEmpty() && d->x509) { - ASN1_INTEGER *serialNumber = d->x509->cert_info->serialNumber; + ASN1_INTEGER *serialNumber = q_X509_get_serialNumber(d->x509); // if we cannot convert to a long, just output the hexadecimal number if (serialNumber->length > 4) { QByteArray hexString; @@ -489,24 +489,33 @@ QSslKey key; key.d->type = QSsl::PublicKey; +#if OPENSSL_VERSION_NUMBER < 0x10100000L X509_PUBKEY *xkey = d->x509->cert_info->key; +#else + X509_PUBKEY *xkey = q_X509_get_X509_PUBKEY(d->x509); +#endif EVP_PKEY *pkey = q_X509_PUBKEY_get(xkey); Q_ASSERT(pkey); - if (q_EVP_PKEY_type(pkey->type) == EVP_PKEY_RSA) { + int key_id; +#if OPENSSL_VERSION_NUMBER < 0x10100000L + key_id = q_EVP_PKEY_type(pkey->type); +#else + key_id = q_EVP_PKEY_base_id(pkey); +#endif + if (key_id == EVP_PKEY_RSA) { key.d->rsa = q_EVP_PKEY_get1_RSA(pkey); key.d->algorithm = QSsl::Rsa; key.d->isNull = false; - } else if (q_EVP_PKEY_type(pkey->type) == EVP_PKEY_DSA) { + } else if (key_id == EVP_PKEY_DSA) { key.d->dsa = q_EVP_PKEY_get1_DSA(pkey); key.d->algorithm = QSsl::Dsa; key.d->isNull = false; - } else if (q_EVP_PKEY_type(pkey->type) == EVP_PKEY_DH) { + } else if (key_id == EVP_PKEY_DH) { // DH unsupported } else { // error? } - q_EVP_PKEY_free(pkey); return key; } --- a/src/network/ssl/qsslkey.cpp +++ b/src/network/ssl/qsslkey.cpp @@ -321,8 +321,19 @@ { if (d->isNull) return -1; +#if OPENSSL_VERSION_NUMBER < 0x10100000L return (d->algorithm == QSsl::Rsa) ? q_BN_num_bits(d->rsa->n) : q_BN_num_bits(d->dsa->p); +#else + if (d->algorithm == QSsl::Rsa) { + return q_RSA_bits(d->rsa); + }else{ + BIGNUM *p = NULL; + q_DSA_get0_pqg(d->dsa, &p, NULL, NULL); + return q_BN_num_bits(p); + } +#endif + } /*! --- a/src/network/ssl/qsslsocket_openssl.cpp +++ b/src/network/ssl/qsslsocket_openssl.cpp @@ -93,6 +93,7 @@ bool QSslSocketPrivate::s_loadedCiphersAndCerts = false; bool QSslSocketPrivate::s_loadRootCertsOnDemand = false; +#if OPENSSL_VERSION_NUMBER < 0x10100000L /* \internal From OpenSSL's thread(3) manual page: @@ -174,6 +175,8 @@ } } // extern "C" +#endif //OPENSSL_VERSION_NUMBER >= 0x10100000L + QSslSocketBackendPrivate::QSslSocketBackendPrivate() : ssl(0), ctx(0), @@ -222,9 +225,12 @@ ciph.d->encryptionMethod = descriptionList.at(4).mid(4); ciph.d->exportable = (descriptionList.size() > 6 && descriptionList.at(6) == QLatin1String("export")); +#if OPENSSL_VERSION_NUMBER < 0x10100000L ciph.d->bits = cipher->strength_bits; ciph.d->supportedBits = cipher->alg_bits; - +#else + ciph.d->bits = q_SSL_CIPHER_get_bits(cipher, &ciph.d->supportedBits); +#endif } return ciph; } @@ -367,7 +373,7 @@ // // See also: QSslContext::fromConfiguration() if (caCertificate.expiryDate() >= QDateTime::currentDateTime()) { - q_X509_STORE_add_cert(ctx->cert_store, (X509 *)caCertificate.handle()); + q_X509_STORE_add_cert(q_SSL_CTX_get_cert_store(ctx), (X509 *)caCertificate.handle()); } } @@ -504,8 +510,10 @@ */ void QSslSocketPrivate::deinitialize() { +#if OPENSSL_VERSION_NUMBER < 0x10100000L q_CRYPTO_set_id_callback(0); q_CRYPTO_set_locking_callback(0); +#endif } /*! @@ -526,13 +534,17 @@ return false; // Check if the library itself needs to be initialized. +#if OPENSSL_VERSION_NUMBER < 0x10100000L QMutexLocker locker(openssl_locks()->initLock()); +#endif if (!s_libraryLoaded) { s_libraryLoaded = true; // Initialize OpenSSL. +#if OPENSSL_VERSION_NUMBER < 0x10100000L q_CRYPTO_set_id_callback(id_function); q_CRYPTO_set_locking_callback(locking_function); +#endif if (q_SSL_library_init() != 1) return false; q_SSL_load_error_strings(); @@ -571,7 +583,9 @@ void QSslSocketPrivate::ensureCiphersAndCertsLoaded() { - QMutexLocker locker(openssl_locks()->initLock()); +#if OPENSSL_VERSION_NUMBER < 0x10100000L + QMutexLocker locker(openssl_locks()->initLock()); +#endif if (s_loadedCiphersAndCerts) return; s_loadedCiphersAndCerts = true; @@ -663,13 +677,18 @@ STACK_OF(SSL_CIPHER) *supportedCiphers = q_SSL_get_ciphers(mySsl); for (int i = 0; i < q_sk_SSL_CIPHER_num(supportedCiphers); ++i) { if (SSL_CIPHER *cipher = q_sk_SSL_CIPHER_value(supportedCiphers, i)) { - if (cipher->valid) { + +#if OPENSSL_VERSION_NUMBER < 0x10100000L + if (cipher->valid) { +#endif QSslCipher ciph = QSslSocketBackendPrivate::QSslCipher_from_SSL_CIPHER(cipher); if (!ciph.isNull()) { if (!ciph.name().toLower().startsWith(QLatin1String("adh"))) ciphers << ciph; } +#if OPENSSL_VERSION_NUMBER < 0x10100000L } +#endif } } --- a/src/network/ssl/qsslsocket_openssl_symbols_p.h +++ b/src/network/ssl/qsslsocket_openssl_symbols_p.h @@ -399,7 +399,25 @@ PEM_ASN1_write_bio((int (*)(void*, unsigned char**))q_i2d_DSAPrivateKey,PEM_STRING_DSA,\ bp,(char *)x,enc,kstr,klen,cb,u) #endif + +X509_STORE * q_SSL_CTX_get_cert_store(const SSL_CTX *ctx); +ASN1_INTEGER * q_X509_get_serialNumber(X509 *x); + +#if OPENSSL_VERSION_NUMBER < 0x10100000L #define q_SSL_CTX_set_options(ctx,op) q_SSL_CTX_ctrl((ctx),SSL_CTRL_OPTIONS,(op),NULL) +#define q_X509_get_version(x) X509_get_version(x) +#else +int q_EVP_PKEY_id(const EVP_PKEY *pkey); +int q_EVP_PKEY_base_id(const EVP_PKEY *pkey); +int q_SSL_CIPHER_get_bits(const SSL_CIPHER *cipher, int *alg_bits); +long q_SSL_CTX_set_options(SSL_CTX *ctx, long options); +long q_X509_get_version(X509 *x); +X509_PUBKEY * q_X509_get_X509_PUBKEY(X509 *x); +int q_RSA_bits(const RSA *rsa); +int q_DSA_security_bits(const DSA *dsa); +void q_DSA_get0_pqg(const DSA *d, BIGNUM **p, BIGNUM **q, BIGNUM **g); +#endif + #define q_SKM_sk_num(type, st) ((int (*)(const STACK_OF(type) *))q_sk_num)(st) #define q_SKM_sk_value(type, st,i) ((type * (*)(const STACK_OF(type) *, int))q_sk_value)(st, i) #define q_sk_GENERAL_NAME_num(st) q_SKM_sk_num(GENERAL_NAME, (st)) @@ -410,8 +428,15 @@ #define q_sk_SSL_CIPHER_value(st, i) q_SKM_sk_value(SSL_CIPHER, (st), (i)) #define q_SSL_CTX_add_extra_chain_cert(ctx,x509) \ q_SSL_CTX_ctrl(ctx,SSL_CTRL_EXTRA_CHAIN_CERT,0,(char *)x509) + +#if OPENSSL_VERSION_NUMBER < 0x10100000L #define q_X509_get_notAfter(x) X509_get_notAfter(x) #define q_X509_get_notBefore(x) X509_get_notBefore(x) +#else +ASN1_TIME *q_X509_get_notAfter(X509 *x); +ASN1_TIME *q_X509_get_notBefore(X509 *x); +#endif + #define q_EVP_PKEY_assign_RSA(pkey,rsa) q_EVP_PKEY_assign((pkey),EVP_PKEY_RSA,\ (char *)(rsa)) #define q_EVP_PKEY_assign_DSA(pkey,dsa) q_EVP_PKEY_assign((pkey),EVP_PKEY_DSA,\ --- a/src/network/ssl/qsslsocket_openssl_symbols.cpp +++ b/src/network/ssl/qsslsocket_openssl_symbols.cpp @@ -290,6 +290,22 @@ DEFINEFUNC(void, OPENSSL_add_all_algorithms_conf, void, DUMMYARG, return, DUMMYARG) DEFINEFUNC3(int, SSL_CTX_load_verify_locations, SSL_CTX *ctx, ctx, const char *CAfile, CAfile, const char *CApath, CApath, return 0, return) DEFINEFUNC(long, SSLeay, void, DUMMYARG, return 0, return) +DEFINEFUNC(X509_STORE *, SSL_CTX_get_cert_store, const SSL_CTX *ctx, ctx, return 0, return) + +DEFINEFUNC(ASN1_INTEGER *, X509_get_serialNumber, X509 *x, x, return 0, return) +#if OPENSSL_VERSION_NUMBER >= 0x10100000L +DEFINEFUNC(int, EVP_PKEY_id, const EVP_PKEY *pkey, pkey, return 0, return) +DEFINEFUNC(int, EVP_PKEY_base_id, const EVP_PKEY *pkey, pkey, return 0, return) +DEFINEFUNC2(int, SSL_CIPHER_get_bits, const SSL_CIPHER *cipher, cipher, int *alg_bits, alg_bits, return 0, return) +DEFINEFUNC2(long, SSL_CTX_set_options, SSL_CTX *ctx, ctx, long options, options, return 0, return) +DEFINEFUNC(long, X509_get_version, X509 *x, x, return 0, return) +DEFINEFUNC(X509_PUBKEY *, X509_get_X509_PUBKEY, X509 *x, x, return 0, return) +DEFINEFUNC(int, RSA_bits, const RSA *rsa, rsa, return 0, return) +DEFINEFUNC(int, DSA_security_bits, const DSA *dsa, dsa, return 0, return) +DEFINEFUNC(ASN1_TIME *, X509_get_notAfter, X509 *x, x, return 0, return) +DEFINEFUNC(ASN1_TIME *, X509_get_notBefore, X509 *x, x, return 0, return) +DEFINEFUNC4(void, DSA_get0_pqg, const DSA *d, d, BIGNUM **p, p, BIGNUM **q, q, BIGNUM **g, g, return, return) +#endif #ifdef Q_OS_SYMBIAN #define RESOLVEFUNC(func, ordinal, lib) \ @@ -801,6 +817,7 @@ RESOLVEFUNC(SSL_CTX_use_PrivateKey) RESOLVEFUNC(SSL_CTX_use_RSAPrivateKey) RESOLVEFUNC(SSL_CTX_use_PrivateKey_file) + RESOLVEFUNC(SSL_CTX_get_cert_store) RESOLVEFUNC(SSL_accept) RESOLVEFUNC(SSL_clear) RESOLVEFUNC(SSL_connect) @@ -823,6 +840,23 @@ RESOLVEFUNC(SSL_set_connect_state) RESOLVEFUNC(SSL_shutdown) RESOLVEFUNC(SSL_write) + + RESOLVEFUNC(X509_get_serialNumber) +#if OPENSSL_VERSION_NUMBER >= 0x10100000L + RESOLVEFUNC(SSL_CTX_ctrl) + RESOLVEFUNC(EVP_PKEY_id) + RESOLVEFUNC(EVP_PKEY_base_id) + RESOLVEFUNC(SSL_CIPHER_get_bits) + RESOLVEFUNC(SSL_CTX_set_options) + RESOLVEFUNC(X509_get_version) + RESOLVEFUNC(X509_get_X509_PUBKEY) + RESOLVEFUNC(RSA_bits) + RESOLVEFUNC(DSA_security_bits) + RESOLVEFUNC(DSA_get0_pqg) + RESOLVEFUNC(X509_get_notAfter) + RESOLVEFUNC(X509_get_notBefore) +#endif + #ifndef OPENSSL_NO_SSL2 RESOLVEFUNC(SSLv2_client_method) #endif --- qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslkey.cpp.0131~ 2017-03-15 02:22:37.053244125 +0100 +++ qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslkey.cpp 2017-03-15 02:22:37.055244057 +0100 @@ -328,7 +328,7 @@ int QSslKey::length() const if (d->algorithm == QSsl::Rsa) { return q_RSA_bits(d->rsa); }else{ - BIGNUM *p = NULL; + const BIGNUM *p = NULL; q_DSA_get0_pqg(d->dsa, &p, NULL, NULL); return q_BN_num_bits(p); } --- qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslsocket_openssl_symbols.cpp.0131~ 2017-03-15 02:22:37.054244091 +0100 +++ qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslsocket_openssl_symbols.cpp 2017-03-15 02:29:41.155236836 +0100 @@ -111,16 +111,16 @@ DEFINEFUNC(int, ASN1_STRING_length, ASN1 DEFINEFUNC2(int, ASN1_STRING_to_UTF8, unsigned char **a, a, ASN1_STRING *b, b, return 0, return); DEFINEFUNC4(long, BIO_ctrl, BIO *a, a, int b, b, long c, c, void *d, d, return -1, return) DEFINEFUNC(int, BIO_free, BIO *a, a, return 0, return) -DEFINEFUNC(BIO *, BIO_new, BIO_METHOD *a, a, return 0, return) +DEFINEFUNC(BIO *, BIO_new, const BIO_METHOD *a, a, return 0, return) DEFINEFUNC2(BIO *, BIO_new_mem_buf, void *a, a, int b, b, return 0, return) DEFINEFUNC3(int, BIO_read, BIO *a, a, void *b, b, int c, c, return -1, return) -DEFINEFUNC(BIO_METHOD *, BIO_s_mem, void, DUMMYARG, return 0, return) +DEFINEFUNC(const BIO_METHOD *, BIO_s_mem, void, DUMMYARG, return 0, return) DEFINEFUNC3(int, BIO_write, BIO *a, a, const void *b, b, int c, c, return -1, return) DEFINEFUNC(int, BN_num_bits, const BIGNUM *a, a, return 0, return) DEFINEFUNC(int, CRYPTO_num_locks, DUMMYARG, DUMMYARG, return 0, return) DEFINEFUNC(void, CRYPTO_set_locking_callback, void (*a)(int, int, const char *, int), a, return, DUMMYARG) DEFINEFUNC(void, CRYPTO_set_id_callback, unsigned long (*a)(), a, return, DUMMYARG) -DEFINEFUNC(void, CRYPTO_free, void *a, a, return, DUMMYARG) +DEFINEFUNC(void, OPENSSL_free, void *a, a, return, DUMMYARG) DEFINEFUNC(void, DSA_free, DSA *a, a, return, DUMMYARG) #if OPENSSL_VERSION_NUMBER < 0x00908000L DEFINEFUNC3(X509 *, d2i_X509, X509 **a, a, unsigned char **b, b, long c, c, return 0, return) @@ -300,7 +300,7 @@ DEFINEFUNC(int, RSA_bits, const RSA *rs DEFINEFUNC(int, DSA_security_bits, const DSA *dsa, dsa, return 0, return) DEFINEFUNC(ASN1_TIME *, X509_get_notAfter, X509 *x, x, return 0, return) DEFINEFUNC(ASN1_TIME *, X509_get_notBefore, X509 *x, x, return 0, return) -DEFINEFUNC4(void, DSA_get0_pqg, const DSA *d, d, BIGNUM **p, p, BIGNUM **q, q, BIGNUM **g, g, return, return) +DEFINEFUNC4(void, DSA_get0_pqg, const DSA *d, d, const BIGNUM **p, p, const BIGNUM **q, q, const BIGNUM **g, g, return, return) #endif #ifdef Q_OS_SYMBIAN --- qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslsocket_openssl_symbols_p.h.0131~ 2017-03-15 02:22:37.054244091 +0100 +++ qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslsocket_openssl_symbols_p.h 2017-03-15 02:29:50.192986268 +0100 @@ -59,6 +59,9 @@ QT_BEGIN_NAMESPACE #define DUMMYARG +#ifndef OPENSSL_NO_SSL2 +#define OPENSSL_NO_SSL2 1 +#endif #if !defined QT_LINKED_OPENSSL // **************** Shared declarations ****************** @@ -207,16 +210,16 @@ int q_ASN1_STRING_length(ASN1_STRING *a) int q_ASN1_STRING_to_UTF8(unsigned char **a, ASN1_STRING *b); long q_BIO_ctrl(BIO *a, int b, long c, void *d); int q_BIO_free(BIO *a); -BIO *q_BIO_new(BIO_METHOD *a); +BIO *q_BIO_new(const BIO_METHOD *a); BIO *q_BIO_new_mem_buf(void *a, int b); int q_BIO_read(BIO *a, void *b, int c); -BIO_METHOD *q_BIO_s_mem(); +const BIO_METHOD *q_BIO_s_mem(); int q_BIO_write(BIO *a, const void *b, int c); int q_BN_num_bits(const BIGNUM *a); int q_CRYPTO_num_locks(); void q_CRYPTO_set_locking_callback(void (*a)(int, int, const char *, int)); void q_CRYPTO_set_id_callback(unsigned long (*a)()); -void q_CRYPTO_free(void *a); +void q_OPENSSL_free(void *a); void q_DSA_free(DSA *a); #if OPENSSL_VERSION_NUMBER >= 0x00908000L // 0.9.8 broke SC and BC by changing this function's signature. @@ -326,7 +329,6 @@ void q_SSL_set_accept_state(SSL *a); void q_SSL_set_connect_state(SSL *a); int q_SSL_shutdown(SSL *a); #if OPENSSL_VERSION_NUMBER >= 0x10000000L -const SSL_METHOD *q_SSLv2_client_method(); const SSL_METHOD *q_SSLv3_client_method(); const SSL_METHOD *q_SSLv23_client_method(); const SSL_METHOD *q_TLSv1_client_method(); @@ -335,7 +337,6 @@ const SSL_METHOD *q_SSLv3_server_method( const SSL_METHOD *q_SSLv23_server_method(); const SSL_METHOD *q_TLSv1_server_method(); #else -SSL_METHOD *q_SSLv2_client_method(); SSL_METHOD *q_SSLv3_client_method(); SSL_METHOD *q_SSLv23_client_method(); SSL_METHOD *q_TLSv1_client_method(); @@ -415,7 +416,7 @@ long q_X509_get_version(X509 *x); X509_PUBKEY * q_X509_get_X509_PUBKEY(X509 *x); int q_RSA_bits(const RSA *rsa); int q_DSA_security_bits(const DSA *dsa); -void q_DSA_get0_pqg(const DSA *d, BIGNUM **p, BIGNUM **q, BIGNUM **g); +void q_DSA_get0_pqg(const DSA *d, const BIGNUM **p, const BIGNUM **q, const BIGNUM **g); #endif #define q_SKM_sk_num(type, st) ((int (*)(const STACK_OF(type) *))q_sk_num)(st) --- qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslcertificate.cpp.omv~ 2017-03-15 02:27:18.143322736 +0100 +++ qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslcertificate.cpp 2017-03-15 02:29:56.215819741 +0100 @@ -696,7 +696,7 @@ unsigned char *data = 0; int size = q_ASN1_STRING_to_UTF8(&data, q_X509_NAME_ENTRY_get_data(e)); info[QString::fromUtf8(obj)] = QString::fromUtf8((char*)data, size); - q_CRYPTO_free(data); + q_OPENSSL_free(data); } return info; } 0707010000019E000041ED00000000000000000000000266968E4E00000000000000000000000000000000000000000000003200000000gnome-music-46.1/subprojects/shared-modules/smpeg0707010000019F000081A400000000000000000000000166968E4E000004A1000000000000000000000000000000000000004300000000gnome-music-46.1/subprojects/shared-modules/smpeg/smpeg-0.4.5.json{ "name": "smpeg", "config-opts": ["--disable-static"], "cleanup": [ "/bin", "/man" ], "rm-configure": true, "sources": [ { "type": "archive", "url": "http://http.debian.net/debian/pool/main/s/smpeg/smpeg_0.4.5+cvs20030824.orig.tar.gz", "sha256": "1276ea797dd9fde8a12dd3f33f180153922544c28ca9fc7b477c018876be1916" }, { "type": "shell", "commands": [ "sed -i '/^## libtool.m4/,/^#####/d' acinclude.m4" ] }, { "type": "script", "dest-filename": "autogen.sh", "commands": [ "AUTOMAKE=\"automake --foreign --add-missing --force-missing\" autoreconf -vfi" ] }, { "type": "patch", "path": "smpeg-am-prog-as.patch" }, { "type": "patch", "path": "smpeg-export-mpegaudio-class.patch" }, { "type": "patch", "path": "smpeg-no-gtk.patch" }, { "type": "patch", "path": "smpeg-gcc6.patch" } ] } 070701000001A0000081A400000000000000000000000166968E4E00000133000000000000000000000000000000000000004900000000gnome-music-46.1/subprojects/shared-modules/smpeg/smpeg-am-prog-as.patchIndex: smpeg-0.4.5+cvs20030824/configure.in =================================================================== --- smpeg-0.4.5+cvs20030824.orig/configure.in +++ smpeg-0.4.5+cvs20030824/configure.in @@ -57,6 +57,7 @@ AC_LIBTOOL_WIN32_DLL AM_PROG_LIBTOOL AC_PROG_INSTALL +AM_PROG_AS dnl Ugh. AS="$CC" 070701000001A1000081A400000000000000000000000166968E4E000001F2000000000000000000000000000000000000005500000000gnome-music-46.1/subprojects/shared-modules/smpeg/smpeg-export-mpegaudio-class.patch--- smpeg-0.4.5+cvs20030824.orig/MPEGaudio.h +++ smpeg-0.4.5+cvs20030824/MPEGaudio.h @@ -149,6 +149,14 @@ }; /* The actual MPEG audio class */ + +class MPEGaudio; +void Play_MPEGaudioSDL(void *udata, Uint8 *stream, int len); +int Play_MPEGaudio(MPEGaudio *audio, Uint8 *stream, int len); +#ifdef THREADED_AUDIO +int Decode_MPEGaudio(void *udata); +#endif + class MPEGaudio : public MPEGerror, public MPEGaudioaction { friend void Play_MPEGaudioSDL(void *udata, Uint8 *stream, int len); 070701000001A2000081A400000000000000000000000166968E4E0000050C000000000000000000000000000000000000004300000000gnome-music-46.1/subprojects/shared-modules/smpeg/smpeg-gcc6.patchDescription: Fix compiling with GCC 6. Author: Johannes Brandstätter Bug-Debian: https://bugs.debian.org/811742 Last-Update: <2016-09-24> Index: smpeg-0.4.5+cvs20030824/audio/huffmantable.cpp =================================================================== --- smpeg-0.4.5+cvs20030824.orig/audio/huffmantable.cpp +++ smpeg-0.4.5+cvs20030824/audio/huffmantable.cpp @@ -9,6 +9,7 @@ #include "config.h" #endif +#include #include "MPEGaudio.h" static const unsigned int @@ -550,11 +551,11 @@ htd33[ 31][2]={{ 16, 1},{ 8, 1},{ 4, const HUFFMANCODETABLE MPEGaudio::ht[HTN]= { - { 0, 0-1, 0-1, 0, 0, htd33}, + { 0, UINT_MAX, UINT_MAX, 0, 0, htd33}, { 1, 2-1, 2-1, 0, 7,htd01}, { 2, 3-1, 3-1, 0, 17,htd02}, { 3, 3-1, 3-1, 0, 17,htd03}, - { 4, 0-1, 0-1, 0, 0, htd33}, + { 4, UINT_MAX, UINT_MAX, 0, 0, htd33}, { 5, 4-1, 4-1, 0, 31,htd05}, { 6, 4-1, 4-1, 0, 31,htd06}, { 7, 6-1, 6-1, 0, 71,htd07}, @@ -564,7 +565,7 @@ const HUFFMANCODETABLE MPEGaudio::ht[HTN {11, 8-1, 8-1, 0,127,htd11}, {12, 8-1, 8-1, 0,127,htd12}, {13,16-1,16-1, 0,511,htd13}, - {14, 0-1, 0-1, 0, 0, htd33}, + {14, UINT_MAX, UINT_MAX, 0, 0, htd33}, {15,16-1,16-1, 0,511,htd15}, {16,16-1,16-1, 1,511,htd16}, {17,16-1,16-1, 2,511,htd16}, 070701000001A3000081A400000000000000000000000166968E4E0000043A000000000000000000000000000000000000004500000000gnome-music-46.1/subprojects/shared-modules/smpeg/smpeg-no-gtk.patchFrom 62cda978596a323cd7042722f906df906007e5b5 Mon Sep 17 00:00:00 2001 From: Cosimo Cecchi Date: Sat, 15 Apr 2017 13:24:39 -0700 Subject: [PATCH] Comment out GTK detection --- configure.in | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/configure.in b/configure.in index 20b1355..2cb4753 100644 --- a/configure.in +++ b/configure.in @@ -208,13 +208,13 @@ AC_ARG_ENABLE(gtk_player, [ --enable-gtk-player build a GTk sample SMPEG player [default=yes]], , enable_gtk_player=yes) have_gtk=no -if test x$enable_gtk_player = xyes; then - AM_PATH_GTK(1.2.1, have_gtk=yes) - if test x$have_gtk = xyes; then - CFLAGS="$CFLAGS $GTK_CFLAGS" - fi - AC_SUBST(GTK_LIBS) -fi +dnl if test x$enable_gtk_player = xyes; then +dnl AM_PATH_GTK(1.2.1, have_gtk=yes) +dnl if test x$have_gtk = xyes; then +dnl CFLAGS="$CFLAGS $GTK_CFLAGS" +dnl fi +dnl AC_SUBST(GTK_LIBS) +dnl fi AM_CONDITIONAL(HAVE_GTK, test x$have_gtk = xyes) dnl See if we can build the Mesa player -- 2.12.2 070701000001A4000041ED00000000000000000000000266968E4E00000000000000000000000000000000000000000000003700000000gnome-music-46.1/subprojects/shared-modules/vorbisgain070701000001A5000081A400000000000000000000000166968E4E00000861000000000000000000000000000000000000004D00000000gnome-music-46.1/subprojects/shared-modules/vorbisgain/0001-temp_files.patchDescription: Apply patch to use temp files, which are dependent on the file which is beeing processed, instead always using the same filename, which can result to data loss in scenarios where two or more vorbis processes are running parallel. Author: Pavel N. Krivitsky Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=505164 Forwarded: no --- vorbis.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) --- a/vorbis.c +++ b/vorbis.c @@ -56,7 +56,7 @@ #define PROGRESS_FORMAT_SIZE 8 #define MIN_FILENAME_SIZE 5 #define MIN_MIDDLE_TRUNCATE_SIZE 20 -#define TEMP_NAME "vorbisgain.tmpXXXXXX" +#define TEMP_EXT ".vgain.tmpXXXXXX" /** @@ -684,11 +684,10 @@ } } - /* Make sure temp is in same folder as file. And yes, the malloc is larger - * than necessary (and not always needed). Lets keep it simple though (at - * the expense of a few bytes)... + /* Construct a temporary file name by appending TEMP_EXT to + * the name of the file being modified. */ - temp_name = malloc(strlen(filename) + sizeof(TEMP_NAME)); + temp_name = malloc(strlen(filename)*sizeof(char) + sizeof(TEMP_EXT)); if (temp_name == NULL) { @@ -697,7 +696,7 @@ } strcpy(temp_name, filename); - strcpy((char *) last_path(temp_name), TEMP_NAME); + strcat(temp_name, TEMP_EXT); #ifdef WIN32 temp_name = _mktemp(temp_name); @@ -779,6 +778,7 @@ file_error(_("Note: Couldn't set mode for file '%s': "), filename); } +#if 0 /* Disable for Debian, this surprises people and is not useful --liw */ utime_buf.actime = stat_buf.st_atime; utime_buf.modtime = stat_buf.st_mtime; @@ -786,6 +786,7 @@ { file_error(_("Note: Couldn't set time for file '%s': "), filename); } +#endif result = 0; @@ -817,10 +818,10 @@ if (delete_temp) { - if (remove(TEMP_NAME) != 0) + if (remove(temp_name) != 0) { file_error(_("Note: Couldn't remove temporary file '%s': "), - TEMP_NAME); + temp_name); } } 070701000001A6000081A400000000000000000000000166968E4E000002CD000000000000000000000000000000000000004800000000gnome-music-46.1/subprojects/shared-modules/vorbisgain/0002-errno.patchDescription: Zero errno before readdir call. From: http://bugs.debian.org/375110 Forwarded: no --- recurse.c | 3 +++ 1 file changed, 3 insertions(+) --- a/recurse.c +++ b/recurse.c @@ -408,6 +408,7 @@ */ static int read_dir(DIRECTORY *directory) { + errno = 0; directory->entry = readdir(directory->dir); if (directory->entry != NULL) @@ -622,6 +623,7 @@ /* Check for wildcards */ settings->pattern = last_path(my_path); +#if 0 /* Disable for Debian, as it suprises people. --liw */ if (contains_pattern(settings->pattern)) { /* Strip last part of path */ @@ -637,6 +639,7 @@ } } else +#endif { settings->pattern = NULL; } 070701000001A7000081A400000000000000000000000166968E4E00001A7B000000000000000000000000000000000000004A00000000gnome-music-46.1/subprojects/shared-modules/vorbisgain/0003-manpage.patchDescription: Man page says --silent, should be --skip From: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=355783 Forwarded: no --- vorbisgain.1 | 60 ++++++++++++----------------------------------------------- 1 file changed, 13 insertions(+), 47 deletions(-) --- a/vorbisgain.1 +++ b/vorbisgain.1 @@ -2,10 +2,8 @@ .\" groff -man -Tascii vorbisgain.1 .\" .TH vorbisgain 1 "2004 Jan 3" "" "VorbisGain" - .SH NAME vorbisgain \- calculate the replay gain for Ogg Vorbis files - .SH SYNOPSIS .B vorbisgain [ @@ -16,7 +14,6 @@ .I album gain ] .I input_files \fR... - .SH DESCRIPTION .B vorbisgain calculates the ReplayGain values for the named Ogg Vorbis input files and @@ -27,7 +24,6 @@ uses a default target level of 89 dB, rather than the 83 dB recommended by the ReplayGain standard, when calculating the gain to apply. (Some players include a pre-amplification setting with which the target level can be changed.) - .PP .B vorbisgain input files must be Ogg Vorbis I files with 1 or 2 channels and a sample rate @@ -35,21 +31,16 @@ kHz. If an input file contains multiple streams (i.e., it is chained), the streams must all have the same format, in terms of sampling frequency and number of channels. - .PP All streams in a chained file are processed, but the ReplayGain tags are only written to (or removed from) the first stream. - .SH OPTIONS - .IP "-h, --help" Show command help. - .IP "-a, --album" Activates album mode, in which the album gain (sometimes called the audiophile gain) is calculated in addition to the track gain (sometimes called the radio gain). - .IP "-g n, --album-gain=n" Sets the album gain value to use. Default is to calculate it, if .I -a @@ -59,38 +50,31 @@ dB, specifying the .B change in volume that should be applied. - .IP "-c, --clean" Remove any ReplayGain tags from the specified files. If a file does not contain any ReplayGain tags, the file is not modified. - .IP "-C, --convert" Convert old format ReplayGain tags to a new format (see section TAG FORMAT below for details). If a file does not contain all ReplayGain tags that are needed for a conversion, the file is not modified. The album peak tag is only created if .I -a -is specified, and the album gain value is then checked for concistency. +is specified, and the album gain value is then checked for consistency. Otherwise any album gain is converted without any checks. - .IP "-d, --display-only" Display the result only; do not write anything to disk. This applies to all options. - .IP "-f, --fast" Only calculate the gain for files that do not contain all replay gain tags needed (the album gain and peak tags are only considered if .I -a has been specified). - .IP "-n, --no-progress" Only display results, but don't show progress in percentages and times. This can be useful if the output is piped into other programs. - .IP "-q, --quiet" Do not display any output while processing. Only error and warning messages will be printed. - .IP "-r, --recursive" Enter directories (recursively) and search for files, if directories or file patterns are specified. @@ -98,65 +82,51 @@ Only available if .B vorbisgain was configured with --enable-recursive. - -.IP "-s, --silent" -Sliently skip any non-Vorbis files found. Vorbis files that can't be processed +.IP "-s, --skip" +Silently skip any non-Vorbis files found. Vorbis files that can't be processed for some reason are skipped as well, though not silently. Default is to stop when such files are encountered. - .IP "-v, --version" Display the version of the program. - .SH EXAMPLES - Simplest version. Calculate the track gain and peak only. .PP .RS vorbisgain somefile.ogg .RE - .PP Note that the following examples are only possible if .B vorbisgain was configured with --enable-recursive. - .PP Calculate the album gain and peak, in addition to the track gain and peak, for all .ogg files in the directory "music" (and all subdirectories). All files in one directory are treated as belonging to the same album. Files that already have ReplayGain tags are not re-calculated. Note the quotes, as they cause the shell to not do any filename globbing: - .PP .RS vorbisgain -a -f -r "music/*.ogg" .RE - .PP Calculate the album gain. The files specified before the directory "album" are treated as one album, the files in the directory "album" as another album and the remaining files as a third album: - .PP .RS vorbisgain -a -r a.ogg b.ogg c.ogg album d.ogg e.ogg f.ogg .RE - .PP Remove all replaygain tags from a collection of oggs: - .PP .RS vorbisgain -c -r "music/*.ogg" .RE - .SH TAG FORMAT - .B vorbisgain creates tags like these (when in .I -a mode): - .PP .RS REPLAYGAIN_TRACK_GAIN=-7.03 dB @@ -170,18 +140,15 @@ .RS REPLAYGAIN_ALBUM_PEAK=1.21822226 .RE - .PP Gain specifies how much the volume should be changed before playback, in dB. Peak is the maximum sample value of the file before any gain has been applied, where 1.0 means "full sample value" (32,767 when decoding to signed 16 bit samples). - .PP Earlier versions of .B vorbisgain (before 0.30) created the following tags: - .PP .RS RG_RADIO @@ -192,7 +159,6 @@ .RS RG_AUDIOPHILE .RE - .PP When .I -c @@ -200,44 +166,44 @@ REPLAYGAIN_TRACK_PEAK, RG_AUDIOPHILE to REPLAYGAIN_ALBUM_GAIN and REPLAYGAIN_ALBUM_PEAK is calculated as the maximum of all RG_PEAK tags in the album. - .SH AUTHORS - .TP Program Code: .br Gian-Carlo Pascutto .br Magnus Holmgren - .TP ReplayGain Analysis Code: .br Glen Sawyer .br Frank Klemm (http://www.uni-jena.de/~pfk/) - .TP Man Page: .br Magnus Holmgren - .SH BUGS - None known. - .SH SEE ALSO - .TP http://sjeng.org/vorbisgain.html Home page for VorbisGain. The latest version, and a Windows executable, can be found here. - .TP http://www.replaygain.org/ Contains detailed information about ReplayGain and how it is calculated. - .TP http://www.hydrogenaudio.org/ Discussion forum for audio compression and related issues, including Ogg Vorbis and VorbisGain. +.SH NOTE +The version of vorbisgain packaged for Debian differs in two ways from +the upstream version. First, it does not retain the modification time +of the input file: if tags are changed in a file, the mtime will change. +Second, it does not try to process wildcards in filenames. This makes +it impossible to say "process all foo*.ogg in all subdirectories", but +also avoids problems with filenames that actually contain wildcards. +Without this change, "vorbisgain *.ogg" in a directory with a file that +contains a question mark would result in that file being treated as +being in a different album. 070701000001A8000081A400000000000000000000000166968E4E00001957000000000000000000000000000000000000005300000000gnome-music-46.1/subprojects/shared-modules/vorbisgain/0004-vorbisgain_mtime.patchDescription: When a file's metadata is updated, the mtime is changed to the current time. Whether this is correct or not is often a religious issue (metadata-vs-data), but, generally, all other tag-editing software choose to keep the timestamp. . Since the upstream fixed the issue, it is bad to ignore the fix altogether. At the very least, there should be a command-line option to follow the upstream and The Only Right(tm) behaviour. Author: Adam Borowski Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=445958 --- vorbis.c | 18 ++++++++++-------- vorbis.h | 2 +- vorbisgain.1 | 7 ++++++- vorbisgain.c | 20 ++++++++++++++------ vorbisgain.h | 1 + 5 files changed, 32 insertions(+), 16 deletions(-) --- a/vorbis.c +++ b/vorbis.c @@ -557,7 +557,8 @@ * message has been printed). */ int write_gains(const char *filename, float track_peak, float track_gain, - float album_peak, float album_gain, int verbose, int remove_tags) + float album_peak, float album_gain, int verbose, int remove_tags, + SETTINGS* settings) { struct stat stat_buf; struct utimbuf utime_buf; @@ -778,15 +779,16 @@ file_error(_("Note: Couldn't set mode for file '%s': "), filename); } -#if 0 /* Disable for Debian, this surprises people and is not useful --liw */ - utime_buf.actime = stat_buf.st_atime; - utime_buf.modtime = stat_buf.st_mtime; - - if (utime(filename, &utime_buf) != 0) + if (!settings->trample_mtime) { - file_error(_("Note: Couldn't set time for file '%s': "), filename); + utime_buf.actime = stat_buf.st_atime; + utime_buf.modtime = stat_buf.st_mtime; + + if (utime(filename, &utime_buf) != 0) + { + file_error(_("Note: Couldn't set time for file '%s': "), filename); + } } -#endif result = 0; --- a/vorbisgain.1 +++ b/vorbisgain.1 @@ -72,6 +72,10 @@ .IP "-n, --no-progress" Only display results, but don't show progress in percentages and times. This can be useful if the output is piped into other programs. +.IP "-p, --preserve-mtime" +Do not trample upon the timestamps of any files being worked on. This obeys +the expected data-vs-metadata behaviour, but can confuse some naive +archivers. .IP "-q, --quiet" Do not display any output while processing. Only error and warning messages will be printed. @@ -200,7 +204,8 @@ .SH NOTE The version of vorbisgain packaged for Debian differs in two ways from the upstream version. First, it does not retain the modification time -of the input file: if tags are changed in a file, the mtime will change. +of the input file by default: if tags are changed in a file, the mtime will +change; you can specify "-p" to get the normal behaviour. Second, it does not try to process wildcards in filenames. This makes it impossible to say "process all foo*.ogg in all subdirectories", but also avoids problems with filenames that actually contain wildcards. --- a/vorbisgain.c +++ b/vorbisgain.c @@ -235,7 +235,7 @@ { if (write_gains(file->filename, file->track_peak, file->track_gain, album_peak, file->album_gain, - !settings->quiet, 0) < 0) + !settings->quiet, 0, settings) < 0) { return -1; } @@ -288,7 +288,7 @@ else { if (write_gains(file->filename, NO_PEAK, NO_GAIN, - NO_PEAK, NO_GAIN, !settings->quiet, 1) < 0) + NO_PEAK, NO_GAIN, !settings->quiet, 1, settings) < 0) { return -1; } @@ -425,7 +425,8 @@ if (!settings->album) { if (!settings->display_only && write_gains(file->filename, - file->track_peak, file->track_gain, NO_PEAK, NO_GAIN, 0, 0) < 0) + file->track_peak, file->track_gain, NO_PEAK, NO_GAIN, 0, 0, + settings) < 0) { return -1; } @@ -466,7 +467,7 @@ if (write_gains(file->filename, file->track_peak, file->track_gain, album_peak, album_gain, - !settings->quiet, 0) < 0) + !settings->quiet, 0, settings) < 0) { return -1; } @@ -497,6 +498,7 @@ fprintf(stderr, _(" -h, --help Print this help text\n")); fprintf(stderr, _(" -n, --no-progress Don't show progress, just print results\n")); fprintf(stderr, _(" -q, --quiet Don't print any output (except errors)\n")); + fprintf(stderr, _(" -p, --preserve-mtime Don't change the timestamps\n")); #ifdef ENABLE_RECURSIVE fprintf(stderr, _(" -r, --recursive Search for files recursivly, each folder as an album\n")); #endif @@ -522,6 +524,7 @@ {"fast", 0, NULL, 'f'}, {"help", 0, NULL, 'h'}, {"no-progress", 0, NULL, 'n'}, + {"preserve-mtime",0,NULL, 'p'}, {"quiet", 0, NULL, 'q'}, #ifdef ENABLE_RECURSIVE {"recursive", 0, NULL, 'r'}, @@ -533,9 +536,9 @@ #ifdef ENABLE_RECURSIVE -#define ARG_STRING "acCdfg:hnqrst:v" +#define ARG_STRING "acCdfg:hnpqrst:v" #else -#define ARG_STRING "acCdfg:hnqst:v" +#define ARG_STRING "acCdfg:hnpqst:v" #endif @@ -549,6 +552,7 @@ memset(&settings, 0, sizeof(settings)); settings.first_file = 1; settings.album_gain = NO_GAIN; + settings.trample_mtime = 1; settings.show_progress = 1; #ifdef WIN32 @@ -623,6 +627,10 @@ settings.show_progress = 0; break; + case 'p': + settings.trample_mtime = 0; + break; + case 'q': settings.quiet = 1; break; --- a/vorbisgain.h +++ b/vorbisgain.h @@ -31,6 +31,7 @@ int convert; /**< Convert old format tags to new format */ int display_only; int fast; /**< Skip files that already have all needed tags */ + int trample_mtime; int quiet; #ifdef ENABLE_RECURSIVE int recursive; --- a/vorbis.h +++ b/vorbis.h @@ -15,6 +15,6 @@ SETTINGS *settings); extern int write_gains(const char *filename, float track_peak, float track_gain, float album_gain, float album_peak, int verbose, - int remove_tags); + int remove_tags, SETTINGS *settings); #endif /* VG_VORBIS_H */ 070701000001A9000081A400000000000000000000000166968E4E000001B6000000000000000000000000000000000000005000000000gnome-music-46.1/subprojects/shared-modules/vorbisgain/0005-double_fclose.patchDescription: Don't call fclose() twice. Author: Jonathan Neuschäfer Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=632947 --- vorbis.c | 5 ----- 1 file changed, 5 deletions(-) --- a/vorbis.c +++ b/vorbis.c @@ -813,11 +813,6 @@ fclose(infile); } - if (infile != NULL) - { - fclose(infile); - } - if (delete_temp) { if (remove(temp_name) != 0) 070701000001AA000081A400000000000000000000000166968E4E000007B1000000000000000000000000000000000000005200000000gnome-music-46.1/subprojects/shared-modules/vorbisgain/0006-manpage_hyphens.patchDescription: Resolved hyphen-used-as-minus-sign lintian complaints. Forwarded: no --- a/vorbisgain.1 +++ b/vorbisgain.1 @@ -85,7 +85,7 @@ .I Note: Only available if .B vorbisgain -was configured with --enable-recursive. +was configured with \-\-enable\-recursive. .IP "-s, --skip" Silently skip any non-Vorbis files found. Vorbis files that can't be processed for some reason are skipped as well, though not silently. Default is to stop @@ -101,7 +101,7 @@ .PP Note that the following examples are only possible if .B vorbisgain -was configured with --enable-recursive. +was configured with \-\-enable\-recursive. .PP Calculate the album gain and peak, in addition to the track gain and peak, for all .ogg files in the directory "music" (and all subdirectories). All files in @@ -110,7 +110,7 @@ shell to not do any filename globbing: .PP .RS -vorbisgain -a -f -r "music/*.ogg" +vorbisgain \-a \-f \-r "music/*.ogg" .RE .PP Calculate the album gain. The files specified before the directory "album" @@ -118,13 +118,13 @@ album and the remaining files as a third album: .PP .RS -vorbisgain -a -r a.ogg b.ogg c.ogg album d.ogg e.ogg f.ogg +vorbisgain \-a \-r a.ogg b.ogg c.ogg album d.ogg e.ogg f.ogg .RE .PP Remove all replaygain tags from a collection of oggs: .PP .RS -vorbisgain -c -r "music/*.ogg" +vorbisgain \-c \-r "music/*.ogg" .RE .SH TAG FORMAT .B vorbisgain @@ -205,7 +205,7 @@ The version of vorbisgain packaged for Debian differs in two ways from the upstream version. First, it does not retain the modification time of the input file by default: if tags are changed in a file, the mtime will -change; you can specify "-p" to get the normal behaviour. +change; you can specify "\-p" to get the normal behaviour. Second, it does not try to process wildcards in filenames. This makes it impossible to say "process all foo*.ogg in all subdirectories", but also avoids problems with filenames that actually contain wildcards. 070701000001AB000081A400000000000000000000000166968E4E0000031D000000000000000000000000000000000000005700000000gnome-music-46.1/subprojects/shared-modules/vorbisgain/0007-recursively_spelling.patchDescription: "recursivly" should be spelled "recursively". Thanks Adam. From: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=661999 Forwarded: no --- a/vorbisgain.c +++ b/vorbisgain.c @@ -500,7 +500,7 @@ fprintf(stderr, _(" -q, --quiet Don't print any output (except errors)\n")); fprintf(stderr, _(" -p, --preserve-mtime Don't change the timestamps\n")); #ifdef ENABLE_RECURSIVE - fprintf(stderr, _(" -r, --recursive Search for files recursivly, each folder as an album\n")); + fprintf(stderr, _(" -r, --recursive Search for files recursively, each folder as an album\n")); #endif fprintf(stderr, _(" -s, --skip Skip non-Vorbis or faulty files\n")); fprintf(stderr, _(" -v, --version Display version number and exit\n\n")); 070701000001AC000081A400000000000000000000000166968E4E0000025A000000000000000000000000000000000000005C00000000gnome-music-46.1/subprojects/shared-modules/vorbisgain/0008-manpage_recursion_mistake.patchDescription: The manpage shows methods that don't work. They have been replaced. From: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=447402 Forwarded: no --- a/vorbisgain.1 +++ b/vorbisgain.1 @@ -110,7 +110,7 @@ shell to not do any filename globbing: .PP .RS -vorbisgain \-a \-f \-r "music/*.ogg" +vorbisgain \-a \-f \-r music/ .RE .PP Calculate the album gain. The files specified before the directory "album" @@ -124,7 +124,7 @@ Remove all replaygain tags from a collection of oggs: .PP .RS -vorbisgain \-c \-r "music/*.ogg" +vorbisgain \-c \-r music/ .RE .SH TAG FORMAT .B vorbisgain 070701000001AD000081A400000000000000000000000166968E4E00000133000000000000000000000000000000000000004C00000000gnome-music-46.1/subprojects/shared-modules/vorbisgain/0009-hardening.patchDescription: Allow build with dh compat level 9 (debian build flags) Forwarded: no --- a/misc.c +++ b/misc.c @@ -56,7 +56,7 @@ vfprintf(stderr, message, args); va_end(args); - fprintf(stderr, strerror(err_num)); + fputs(strerror(err_num), stderr); fprintf(stderr, "\n"); } 070701000001AE000081A400000000000000000000000166968E4E00000199000000000000000000000000000000000000004900000000gnome-music-46.1/subprojects/shared-modules/vorbisgain/0010-fclose.patchSolve "too many open files" by closing those which are not compatible with vorbisgain. Thanks to Marcel Rehberg for the patch. --- a/vorbis.c +++ b/vorbis.c @@ -357,7 +357,8 @@ { vorbis_error(result, _("Couldn't process '%s': "), filename); } - + // make sure file is closed, since ov_open failed we are still responsible + fclose(file); return -1; } 070701000001AF000081A400000000000000000000000166968E4E00000303000000000000000000000000000000000000004100000000gnome-music-46.1/subprojects/shared-modules/vorbisgain/README.mdVorbisgain comes in two version; - The main source: https://sjeng.org/ftp/vorbis/ - The Debian version: http://deb.debian.org/debian/pool/main/v/vorbisgain/ The catch is... Debian has 10 patches: - 0001-temp_files.patch - 0002-errno.patch - 0003-manpage.patch - 0004-vorbisgain_mtime.patch - 0005-double_fclose.patch - 0006-manpage_hyphens.patch - 0007-recursively_spelling.patch - 0008-manpage_recursion_mistake.patch - 0009-hardening.patch - 0010-fclose.patch Of particular concern are 0005, 0009 and 0010 which might have implications for memory-leaks and string inputs. ## Other points of concern https://pkgs.org/download/vorbisgain Lots of distributions don't include these patches as well, but I prefer to stick with the tried and tested package from Debian. 070701000001B0000081A400000000000000000000000166968E4E00000378000000000000000000000000000000000000004E00000000gnome-music-46.1/subprojects/shared-modules/vorbisgain/vorbisgain_0.37-2.json{ "name": "vorbisgain", "buildsystem": "autotools", "cleanup": [ "/man" ], "sources": [ { "type": "archive", "url": "http://deb.debian.org/debian/pool/main/v/vorbisgain/vorbisgain_0.37.orig.tar.gz", "sha256": "dd6db051cad972bcac25d47b4a9e40e217bb548a1f16328eddbb4e66613530ec" }, { "type": "patch", "paths": [ "0001-temp_files.patch", "0002-errno.patch", "0003-manpage.patch", "0004-vorbisgain_mtime.patch", "0005-double_fclose.patch", "0006-manpage_hyphens.patch", "0007-recursively_spelling.patch", "0008-manpage_recursion_mistake.patch", "0009-hardening.patch", "0010-fclose.patch" ] } ] } 07070100000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000B00000000TRAILER!!!8230 blocks